From d3d2e13d06d961c0de22689e977627027761d9f1 Mon Sep 17 00:00:00 2001 From: VictoriaPresnyakova Date: Mon, 22 May 2023 22:57:26 +0400 Subject: [PATCH] favors added need fixes --- data.mv.db | Bin 57344 -> 61440 bytes .../repair/controller/OrderController.java | 5 + .../ulstu/is/sbapp/repair/dtos/OrderDTO.java | 1 + .../ru/ulstu/is/sbapp/repair/model/Order.java | 2 + .../mvcController/OrderMvcController.java | 93 ++++++++++++++++++ .../is/sbapp/repair/service/OrderService.java | 9 ++ src/main/resources/templates/order-edit.html | 66 +++++++++++++ src/main/resources/templates/orders.html | 52 ++++++++++ 8 files changed, 228 insertions(+) create mode 100644 src/main/java/ru/ulstu/is/sbapp/repair/mvcController/OrderMvcController.java create mode 100644 src/main/resources/templates/order-edit.html create mode 100644 src/main/resources/templates/orders.html diff --git a/data.mv.db b/data.mv.db index 04a1b7be8da837388d05d253bd478427f623a88c..14eedeb4fbbbe4a37dc1a8526e7527e5f1252d04 100644 GIT binary patch literal 61440 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 OZ3W8VT<3XbPyQeLQi^c^ literal 57344 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 qKq4R!kO)WwBm&p>Hh~oviW`h diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/controller/OrderController.java b/src/main/java/ru/ulstu/is/sbapp/repair/controller/OrderController.java index a335fb1..cf9d5bc 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/controller/OrderController.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/controller/OrderController.java @@ -30,6 +30,11 @@ public class OrderController { return new OrderDTO(orderService.addFavorToOrder(id, favId)); } + @DeleteMapping("/{id}/favor") + public OrderDTO removeFavorFromOrder(@PathVariable Long id, @RequestParam("favId") Long favId) { + return new OrderDTO(orderService.deleteFavorfromOrder(id, favId)); + } + @DeleteMapping("/{id}") public OrderDTO removeOrder(@PathVariable Long id) { return new OrderDTO(orderService.deleteOrder(id)); 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 1051e0c..7bef5cd 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 @@ -50,4 +50,5 @@ public class OrderDTO { } public List getfavorIds() { return this.favorIds; } public void setfavorIds(List favorIds) { this.favorIds = favorIds; } + public void setDate(Date modeldate) { this.date = modeldate; } } diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/model/Order.java b/src/main/java/ru/ulstu/is/sbapp/repair/model/Order.java index b2146d6..c17eefb 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/model/Order.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/model/Order.java @@ -66,4 +66,6 @@ public class Order { public int hashCode() { return Objects.hash(getId(), getDate()); } + + public void deleteFavor(Favor favor) {favorsList.remove(favor);} } \ No newline at end of file diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/mvcController/OrderMvcController.java b/src/main/java/ru/ulstu/is/sbapp/repair/mvcController/OrderMvcController.java new file mode 100644 index 0000000..e1bd877 --- /dev/null +++ b/src/main/java/ru/ulstu/is/sbapp/repair/mvcController/OrderMvcController.java @@ -0,0 +1,93 @@ +package ru.ulstu.is.sbapp.repair.mvcController; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; +import ru.ulstu.is.sbapp.repair.dtos.ComponentDTO; +import ru.ulstu.is.sbapp.repair.dtos.FavorDTO; +import ru.ulstu.is.sbapp.repair.dtos.OrderDTO; +import ru.ulstu.is.sbapp.repair.service.ComponentService; +import ru.ulstu.is.sbapp.repair.service.FavorService; +import ru.ulstu.is.sbapp.repair.service.OrderService; +import org.springframework.web.bind.annotation.*; + + +import javax.validation.Valid; + +@Controller +@RequestMapping("/orders") +public class OrderMvcController { + private final OrderService orderService; + private final FavorService favorService; + + public OrderMvcController(OrderService orderService, + FavorService favorService) { + this.orderService = orderService; + this.favorService = favorService; + } + + @GetMapping + public String getOrders(Model model) { + model.addAttribute("orders", + orderService.findAllOrders().stream() + .map(OrderDTO::new) + .toList()); + return "orders"; + } + + @GetMapping(value = {"/edit", "/edit/{id}"}) + public String editOrder(@PathVariable(required = false) Long id, + Model model) { + OrderDTO orderDTO = new OrderDTO(); + if (id == null || id <= 0) { + model.addAttribute("orderDto", new OrderDTO()); + } else { + model.addAttribute("orderId", id); + orderDTO = new OrderDTO(orderService.findOrder(id)); + model.addAttribute("orderDto", orderDTO); + model.addAttribute("favorsList", orderDTO.getFavorsDTOList()); + } + + model.addAttribute("allFavors", + favorService.findAllFavor().stream() + .map(FavorDTO::new) + .toList()); + return "order-edit"; + } + + @PostMapping(value = {"", "/{id}"}) + public String saveOrder(@PathVariable(required = false) Long id, + @ModelAttribute @Valid OrderDTO orderDTO, + BindingResult bindingResult, + Model model) { + if (bindingResult.hasErrors()) { + model.addAttribute("errors", bindingResult.getAllErrors()); + return "order-edit"; + } + if (id == null || id <= 0) { + orderService.addOrder(); + } + return "redirect:/orders"; + } + + @PostMapping(value = "/{id}/favor/{favorId}") + public String addOrderFavor(@PathVariable(value = "id") Long id, + @PathVariable(value = "favorId") Long favorId) { + orderService.addFavorToOrder(id, favorId); + return "redirect:/orders"; + } + + @PostMapping(value = "/{id}/favorDelete/{favorId}") + public String deleteOrderFavor(@PathVariable(value = "id") Long id, + @PathVariable(value = "favorId") Long favorId) { + orderService.deleteFavorfromOrder(id, favorId); + return "redirect:/orders"; + } + + @PostMapping("/delete/{id}") + public String deleteOrder(@PathVariable Long id) { + orderService.deleteOrder(id); + return "redirect:/orders"; + } +} diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/service/OrderService.java b/src/main/java/ru/ulstu/is/sbapp/repair/service/OrderService.java index e92f9f9..f358037 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/service/OrderService.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/service/OrderService.java @@ -4,6 +4,7 @@ package ru.ulstu.is.sbapp.repair.service; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import ru.ulstu.is.sbapp.repair.exception.OrderNotFoundException; +import ru.ulstu.is.sbapp.repair.model.Component; import ru.ulstu.is.sbapp.repair.model.Favor; import ru.ulstu.is.sbapp.repair.model.Order; import ru.ulstu.is.sbapp.repair.repository.OrderRepository; @@ -84,4 +85,12 @@ public class OrderService { public void deleteAllOrder() { orderRepository.deleteAll(); } + + @Transactional + public Order deleteFavorfromOrder(Long id, Long favId){ + final Order currentOrder = findOrder(id); + final Favor currentFavor = favorService.findFavor(favId); + currentOrder.deleteFavor(currentFavor); + return currentOrder; + } } diff --git a/src/main/resources/templates/order-edit.html b/src/main/resources/templates/order-edit.html new file mode 100644 index 0000000..1307b6f --- /dev/null +++ b/src/main/resources/templates/order-edit.html @@ -0,0 +1,66 @@ + + + + + +
+
+
+
+ + + + + + + + + + + + + + +
#Название Цена
+ + + +
+ +
+ + + +
+
+
+ + + Назад + +
+ + +
+
+ + + +
+
+
+ + \ No newline at end of file diff --git a/src/main/resources/templates/orders.html b/src/main/resources/templates/orders.html new file mode 100644 index 0000000..4bf122a --- /dev/null +++ b/src/main/resources/templates/orders.html @@ -0,0 +1,52 @@ + + + + Сайт + + +
+ +
+ + + + + + + + + + + + + +
#Дата
+ + +
+ + Изменить + + +
+
+ +
+
+
+
+ + \ No newline at end of file