From a013ce0bcae91228f418b83bc66d019ff1dd021e Mon Sep 17 00:00:00 2001 From: VictoriaPresnyakova Date: Mon, 22 May 2023 22:07:09 +0400 Subject: [PATCH] favors done --- data.mv.db | Bin 40960 -> 57344 bytes .../ulstu/is/sbapp/repair/dtos/FavorDTO.java | 14 +++- .../ulstu/is/sbapp/repair/dtos/OrderDTO.java | 4 +- .../mvcController/FavorMvcController.java | 21 +++--- .../is/sbapp/repair/service/FavorService.java | 6 +- src/main/resources/templates/favor-edit.html | 70 +++++++++++++++++- src/main/resources/templates/favors.html | 52 ++++++++++++- 7 files changed, 141 insertions(+), 26 deletions(-) diff --git a/data.mv.db b/data.mv.db index eca9438125cad424eba4032bba7a152b5d174e23..04a1b7be8da837388d05d253bd478427f623a88c 100644 GIT binary patch literal 57344 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 qKq4R!kO)WwBm&p>Hh~oviW`h literal 40960 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 fk>>h;=ScrA;@=_v*JJ!&(?P1vnx>FG x.getFavors().contains(favor.getId())) - .map(y -> new ComponentDTO(y)) + .filter(x -> x.getFavors().contains(favor)) + .map(ComponentDTO::new) .toList(); this.ordersDTOList = favor.getOrders() == null ? null: favor.getOrders() .stream() - .filter(x -> x.getFavorsList().contains(favor.getId())) - .map(y -> new OrderDTO(y)) + .filter(x -> x.getFavorsList().contains(favor)) + .map(OrderDTO::new) .toList(); } @@ -61,5 +61,11 @@ public class FavorDTO { } public List getcomponentIds() { return this.componentIds; } + public void setFavorName(String modelName) { + this.favorName = modelName; + } + public void setPrice(Integer modelPrice) { + this.price = modelPrice; + } public void setcomponentIds(List componentIds) { this.componentIds = componentIds; } } diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/dtos/OrderDTO.java b/src/main/java/ru/ulstu/is/sbapp/repair/dtos/OrderDTO.java index 450a4c7..1051e0c 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/dtos/OrderDTO.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/dtos/OrderDTO.java @@ -33,8 +33,8 @@ public class OrderDTO { } this.favorsDTOList = order.getFavorsList() == null ? null: order.getFavorsList() .stream() - .filter(x -> x.getOrders().contains(order.getId())) - .map(y -> new FavorDTO(y)) + .filter(x -> x.getOrders().contains(order)) + .map(FavorDTO::new) .toList(); } public OrderDTO(){ diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/mvcController/FavorMvcController.java b/src/main/java/ru/ulstu/is/sbapp/repair/mvcController/FavorMvcController.java index aa122ed..def7c32 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/mvcController/FavorMvcController.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/mvcController/FavorMvcController.java @@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import ru.ulstu.is.sbapp.repair.dtos.ComponentDTO; import ru.ulstu.is.sbapp.repair.dtos.FavorDTO; +import ru.ulstu.is.sbapp.repair.model.Favor; import ru.ulstu.is.sbapp.repair.service.ComponentService; import ru.ulstu.is.sbapp.repair.service.FavorService; import org.springframework.web.bind.annotation.*; @@ -37,17 +38,17 @@ public class FavorMvcController { @GetMapping(value = {"/edit", "/edit/{id}"}) public String editFavor(@PathVariable(required = false) Long id, Model model) { + FavorDTO favorDTO = new FavorDTO(); if (id == null || id <= 0) { model.addAttribute("favorDto", new FavorDTO()); } else { model.addAttribute("favorId", id); - model.addAttribute("favorDto", new FavorDTO(favorService.findFavor(id))); + favorDTO = new FavorDTO(favorService.findFavor(id)); + model.addAttribute("favorDto", favorDTO); + model.addAttribute("componentsList", favorDTO.getComponentsDTOList()); } - // model.addAttribute("componentsList", - // componentService.findFilteredComponents(null, null, null, null, id).stream() - // .map(ComponentDTO::new) - // .toList()); - model.addAttribute("allComputers", + + model.addAttribute("allComponents", componentService.findAllComponent().stream() .map(ComponentDTO::new) .toList()); @@ -69,15 +70,15 @@ public class FavorMvcController { } return "redirect:/favors"; } - @PostMapping(value = "/{id}/computer/{computerId}") + @PostMapping(value = "/{id}/component/{componentId}") public String addFavorComponent(@PathVariable(value = "id") Long id, - @PathVariable(value = "computerId") Long componentId) { + @PathVariable(value = "componentId") Long componentId) { favorService.addComponentToFavor(id, componentId); return "redirect:/favors"; } - @PostMapping(value = "/{id}/computerDelete/{computerId}") + @PostMapping(value = "/{id}/componentDelete/{componentId}") public String deleteFavorComponent(@PathVariable(value = "id") Long id, - @PathVariable(value = "computerId") Long componentId) { + @PathVariable(value = "componentId") Long componentId) { favorService.deleteComponentfromFavor(id, componentId); return "redirect:/favors"; } diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/service/FavorService.java b/src/main/java/ru/ulstu/is/sbapp/repair/service/FavorService.java index f0b3712..2882c1a 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/service/FavorService.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/service/FavorService.java @@ -51,15 +51,15 @@ public class FavorService { } @Transactional - public Favor updateFavor(Long id, String componentName, Integer price) { - if (!StringUtils.hasText(componentName)) { + public Favor updateFavor(Long id, String favorName, Integer price) { + if (!StringUtils.hasText(favorName)) { throw new IllegalArgumentException("Favor name is null or empty"); } if (price == null){ throw new IllegalArgumentException("Price is null or empty"); } final Favor currentFavor = findFavor(id); - currentFavor.setFavorName(componentName); + currentFavor.setFavorName(favorName); currentFavor.setPrice(price); validatorUtil.validate(currentFavor); return favorRepository.save(currentFavor); diff --git a/src/main/resources/templates/favor-edit.html b/src/main/resources/templates/favor-edit.html index 566549b..1fd635b 100644 --- a/src/main/resources/templates/favor-edit.html +++ b/src/main/resources/templates/favor-edit.html @@ -1,10 +1,74 @@ - + - - Title +
+
+
+
+ + +
+
+ + +
+
+ + + + + + + + + + + + + + +
#НазваниеКоличество
+ + + +
+ +
+ + + +
+
+
+ + + Назад + +
+ +
+
+ + + +
+
+
\ No newline at end of file diff --git a/src/main/resources/templates/favors.html b/src/main/resources/templates/favors.html index 566549b..18f60d9 100644 --- a/src/main/resources/templates/favors.html +++ b/src/main/resources/templates/favors.html @@ -1,10 +1,54 @@ - + - - Title + Сайт - +
+ +
+ + + + + + + + + + + + + + +
#Название Цена
+ + + +
+ + Изменить + + +
+
+ +
+
+
+
\ No newline at end of file