From b12fee9a0c07da4abb627e0965516917dcb077de Mon Sep 17 00:00:00 2001 From: VictoriaPresnyakova Date: Fri, 12 May 2023 14:41:12 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B0=D0=BB=D0=B8=D1=81?= =?UTF-8?q?=D1=8C=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D1=8B=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/vue-project/src/components/Orders.vue | 34 +++++++------------ .../repair/controller/OrderController.java | 12 ++++--- .../ulstu/is/sbapp/repair/dtos/OrderDTO.java | 19 +++++++++++ .../is/sbapp/repair/model/Component.java | 2 +- .../ru/ulstu/is/sbapp/repair/model/Favor.java | 4 +-- .../ru/ulstu/is/sbapp/repair/model/Order.java | 2 +- .../is/sbapp/repair/service/OrderService.java | 8 ++--- 7 files changed, 46 insertions(+), 35 deletions(-) diff --git a/front/vue-project/src/components/Orders.vue b/front/vue-project/src/components/Orders.vue index d11e923..9ca9f89 100644 --- a/front/vue-project/src/components/Orders.vue +++ b/front/vue-project/src/components/Orders.vue @@ -16,14 +16,13 @@ export default { dataUrl: 'order', transformer: (data) => new Order(data), headers: [ - { name: 'number', label: 'Номер кабинета' } + { name: 'date', label: 'Дата' } ], - headersComps: [ - { name: 'modelName', label: 'Модель' }, - { name: 'serialNum', label: 'Серийный номер' }, - { name: 'componentName', label: 'Модель монитора' } + headersFavs: [ + { name: 'favorName', label: 'Название услуги' }, + { name: 'price', label: 'Цена' }, ], - selectedItemsComps: [], + selectedItemsFavs: [], dataFilterUrl: 'order/filter?', favorUrl: 'favor/', favors: [], @@ -36,7 +35,7 @@ export default { .then(data => { this.favors = data; }); - DataService.readAll(this.componentUrl, (data) => new component(data)) + DataService.readAll(this.componentUrl, (data) => new Component(data)) .then(data => { this.components = data; }); @@ -59,7 +58,7 @@ export default { }, addFavorInOrder(orderId) { let favorId = document.getElementById('favors').value; - let response = axios.post(`http://localhost:8080/api/order/${orderId}/favor?favorId=${favorId}`); + let response = axios.post(`http://localhost:8080/order/${orderId}/favor?favId=${favorId}`); console.log(response); }, itemsComps(favorIds) { @@ -70,11 +69,6 @@ export default { this.favors.forEach(favor => { for (let i = 0; i < favorIds.length; i++) { if (favor.id === favorIds[i]) { - for (let j = 0; j < this.components.length; j++) { - if (favor.componentId === this.components[j].id) { - favor._component = this.components[j]; - } - } result.push(favor); } } @@ -110,22 +104,18 @@ export default { :confirm="this.modal.confirm" v-model:visible="this.modalShow" @done="saveItem"> -
- - -
+ :selectedItems="this.selectedItemsFavs">
- +
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 71623de..a335fb1 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 @@ -1,9 +1,11 @@ package ru.ulstu.is.sbapp.repair.controller; import org.springframework.web.bind.annotation.*; +import ru.ulstu.is.sbapp.repair.dtos.FavorDTO; import ru.ulstu.is.sbapp.repair.dtos.OrderDTO; import ru.ulstu.is.sbapp.repair.service.OrderService; +import javax.validation.Valid; import java.util.List; @RestController @@ -14,16 +16,16 @@ public class OrderController { this.orderService = productService; } @PostMapping - public OrderDTO addOrder(@RequestParam("date") String date) { - return new OrderDTO(orderService.addOrder(date)); + public OrderDTO addOrder(@RequestBody @Valid OrderDTO orderDTO) { + return new OrderDTO(orderService.addOrder()); } @PutMapping("/{id}") - public OrderDTO updateOrder(@PathVariable Long id,@RequestParam("date") String date) { - return new OrderDTO(orderService.updateOrder(id,date)); + public OrderDTO updateOrder(@PathVariable Long id) { + return new OrderDTO(orderService.updateOrder(id)); } - @PutMapping("/{id}/favor") + @PostMapping("/{id}/favor") public OrderDTO putIntoOrder(@PathVariable Long id, @RequestParam("favId") Long favId){ return new OrderDTO(orderService.addFavorToOrder(id, favId)); } 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 ac8c95a..450a4c7 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 @@ -1,8 +1,11 @@ package ru.ulstu.is.sbapp.repair.dtos; import ru.ulstu.is.sbapp.repair.dtos.FavorDTO; +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 java.util.ArrayList; import java.util.Date; import java.util.List; @@ -11,9 +14,23 @@ public class OrderDTO { private Date date; private List favorsDTOList; + private List favorIds; + + public OrderDTO(Order order){ this.id =order.getId(); this.date = order.getDate(); + + if (order.getFavorsList() == null){ + this. favorIds = new ArrayList<>(); + } + else { + this.favorIds = new ArrayList<>(); + List favors = order.getFavorsList(); + for (Favor favor : favors) { + favorIds.add(favor.getId()); + } + } this.favorsDTOList = order.getFavorsList() == null ? null: order.getFavorsList() .stream() .filter(x -> x.getOrders().contains(order.getId())) @@ -31,4 +48,6 @@ public class OrderDTO { public List getFavorsDTOList() { return favorsDTOList; } + public List getfavorIds() { return this.favorIds; } + public void setfavorIds(List favorIds) { this.favorIds = favorIds; } } diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/model/Component.java b/src/main/java/ru/ulstu/is/sbapp/repair/model/Component.java index 971a605..7c6377f 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/model/Component.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/model/Component.java @@ -18,7 +18,7 @@ public class Component { @Column(name = "amount") private Integer amount; - @ManyToMany(fetch = FetchType.EAGER, mappedBy = "componentsList", cascade = CascadeType.REMOVE) + @ManyToMany(fetch = FetchType.EAGER, mappedBy = "componentsList", cascade = {CascadeType.MERGE}) private List favorsListFromComponents; public Component() { diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java b/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java index dc54cf8..2bcf8b5 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java @@ -20,10 +20,10 @@ public class Favor { @Column(name = "price") private Integer price; - @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE) + @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE}) private List ordersList; - @ManyToMany(cascade = CascadeType.REMOVE) + @ManyToMany(cascade = {CascadeType.MERGE}) @LazyCollection(LazyCollectionOption.FALSE) private List componentsList; 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 3da0ffe..a80524a 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 @@ -17,7 +17,7 @@ public class Order { @Column(name = "date") private Date date; - @ManyToMany (fetch = FetchType.EAGER, mappedBy = "ordersList", cascade = CascadeType.REMOVE) + @ManyToMany (fetch = FetchType.EAGER, mappedBy = "ordersList", cascade = CascadeType.REFRESH) private List favorsList; public Order(){ 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 720f444..e92f9f9 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 @@ -26,8 +26,9 @@ public class OrderService { } @Transactional - public Order addOrder(String date) { - final Order order = new Order(getDate(date)); + public Order addOrder() { + Date today = new Date(); + final Order order = new Order(today); validatorUtil.validate(order); return orderRepository.save(order); } @@ -56,9 +57,8 @@ public class OrderService { } @Transactional - public Order updateOrder(Long id, String date) { + public Order updateOrder(Long id) { final Order currentOrder = findOrder(id); - currentOrder.setDate(getDate(date)); validatorUtil.validate(currentOrder); return orderRepository.save(currentOrder); }