остались фильтры для заказа

This commit is contained in:
VictoriaPresnyakova 2023-05-12 14:41:12 +04:00
parent 4bfe12eb0f
commit b12fee9a0c
7 changed files with 46 additions and 35 deletions

View File

@ -16,14 +16,13 @@ export default {
dataUrl: 'order', dataUrl: 'order',
transformer: (data) => new Order(data), transformer: (data) => new Order(data),
headers: [ headers: [
{ name: 'number', label: 'Номер кабинета' } { name: 'date', label: 'Дата' }
], ],
headersComps: [ headersFavs: [
{ name: 'modelName', label: 'Модель' }, { name: 'favorName', label: 'Название услуги' },
{ name: 'serialNum', label: 'Серийный номер' }, { name: 'price', label: 'Цена' },
{ name: 'componentName', label: 'Модель монитора' }
], ],
selectedItemsComps: [], selectedItemsFavs: [],
dataFilterUrl: 'order/filter?', dataFilterUrl: 'order/filter?',
favorUrl: 'favor/', favorUrl: 'favor/',
favors: [], favors: [],
@ -36,7 +35,7 @@ export default {
.then(data => { .then(data => {
this.favors = data; this.favors = data;
}); });
DataService.readAll(this.componentUrl, (data) => new component(data)) DataService.readAll(this.componentUrl, (data) => new Component(data))
.then(data => { .then(data => {
this.components = data; this.components = data;
}); });
@ -59,7 +58,7 @@ export default {
}, },
addFavorInOrder(orderId) { addFavorInOrder(orderId) {
let favorId = document.getElementById('favors').value; 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); console.log(response);
}, },
itemsComps(favorIds) { itemsComps(favorIds) {
@ -70,11 +69,6 @@ export default {
this.favors.forEach(favor => { this.favors.forEach(favor => {
for (let i = 0; i < favorIds.length; i++) { for (let i = 0; i < favorIds.length; i++) {
if (favor.id === favorIds[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); result.push(favor);
} }
} }
@ -110,22 +104,18 @@ export default {
:confirm="this.modal.confirm" :confirm="this.modal.confirm"
v-model:visible="this.modalShow" v-model:visible="this.modalShow"
@done="saveItem"> @done="saveItem">
<div class="mb-3">
<label for="number" class="form-label">Номер кабинета</label>
<input type="text" class="form-control" id="number" required v-model="data.number">
</div>
<DataTable <DataTable
:headers="this.headersComps" :headers="this.headersFavs"
:items="itemsComps(data.favorIds)" :items="itemsComps(data.favorIds)"
:selectedItems="this.selectedItemsComps"> :selectedItems="this.selectedItemsFavs">
</DataTable> </DataTable>
<div class="mb-3"> <div class="mb-3">
<label for="favors" class="form-label">Добавить компьютер</label> <label for="favors" class="form-label">Добавить услуги</label>
<select class="form-select" id="favors" required> <select class="form-select" id="favors" required>
<option disabled value="">Выберите компьютер</option> <option disabled value="">Выберите услуги</option>
<option v-for="favor in this.favors" <option v-for="favor in this.favors"
:value="favor.id"> :value="favor.id">
{{ favor.modelName }} {{ favor.favorName }}
</option> </option>
</select> </select>
</div> </div>

View File

@ -1,9 +1,11 @@
package ru.ulstu.is.sbapp.repair.controller; package ru.ulstu.is.sbapp.repair.controller;
import org.springframework.web.bind.annotation.*; 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.dtos.OrderDTO;
import ru.ulstu.is.sbapp.repair.service.OrderService; import ru.ulstu.is.sbapp.repair.service.OrderService;
import javax.validation.Valid;
import java.util.List; import java.util.List;
@RestController @RestController
@ -14,16 +16,16 @@ public class OrderController {
this.orderService = productService; this.orderService = productService;
} }
@PostMapping @PostMapping
public OrderDTO addOrder(@RequestParam("date") String date) { public OrderDTO addOrder(@RequestBody @Valid OrderDTO orderDTO) {
return new OrderDTO(orderService.addOrder(date)); return new OrderDTO(orderService.addOrder());
} }
@PutMapping("/{id}") @PutMapping("/{id}")
public OrderDTO updateOrder(@PathVariable Long id,@RequestParam("date") String date) { public OrderDTO updateOrder(@PathVariable Long id) {
return new OrderDTO(orderService.updateOrder(id,date)); return new OrderDTO(orderService.updateOrder(id));
} }
@PutMapping("/{id}/favor") @PostMapping("/{id}/favor")
public OrderDTO putIntoOrder(@PathVariable Long id, @RequestParam("favId") Long favId){ public OrderDTO putIntoOrder(@PathVariable Long id, @RequestParam("favId") Long favId){
return new OrderDTO(orderService.addFavorToOrder(id, favId)); return new OrderDTO(orderService.addFavorToOrder(id, favId));
} }

View File

@ -1,8 +1,11 @@
package ru.ulstu.is.sbapp.repair.dtos; package ru.ulstu.is.sbapp.repair.dtos;
import ru.ulstu.is.sbapp.repair.dtos.FavorDTO; 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 ru.ulstu.is.sbapp.repair.model.Order;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -11,9 +14,23 @@ public class OrderDTO {
private Date date; private Date date;
private List<FavorDTO> favorsDTOList; private List<FavorDTO> favorsDTOList;
private List<Long> favorIds;
public OrderDTO(Order order){ public OrderDTO(Order order){
this.id =order.getId(); this.id =order.getId();
this.date = order.getDate(); this.date = order.getDate();
if (order.getFavorsList() == null){
this. favorIds = new ArrayList<>();
}
else {
this.favorIds = new ArrayList<>();
List<Favor> favors = order.getFavorsList();
for (Favor favor : favors) {
favorIds.add(favor.getId());
}
}
this.favorsDTOList = order.getFavorsList() == null ? null: order.getFavorsList() this.favorsDTOList = order.getFavorsList() == null ? null: order.getFavorsList()
.stream() .stream()
.filter(x -> x.getOrders().contains(order.getId())) .filter(x -> x.getOrders().contains(order.getId()))
@ -31,4 +48,6 @@ public class OrderDTO {
public List<FavorDTO> getFavorsDTOList() { public List<FavorDTO> getFavorsDTOList() {
return favorsDTOList; return favorsDTOList;
} }
public List<Long> getfavorIds() { return this.favorIds; }
public void setfavorIds(List<Long> favorIds) { this.favorIds = favorIds; }
} }

View File

@ -18,7 +18,7 @@ public class Component {
@Column(name = "amount") @Column(name = "amount")
private Integer amount; private Integer amount;
@ManyToMany(fetch = FetchType.EAGER, mappedBy = "componentsList", cascade = CascadeType.REMOVE) @ManyToMany(fetch = FetchType.EAGER, mappedBy = "componentsList", cascade = {CascadeType.MERGE})
private List<Favor> favorsListFromComponents; private List<Favor> favorsListFromComponents;
public Component() { public Component() {

View File

@ -20,10 +20,10 @@ public class Favor {
@Column(name = "price") @Column(name = "price")
private Integer price; private Integer price;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE) @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE})
private List<Order> ordersList; private List<Order> ordersList;
@ManyToMany(cascade = CascadeType.REMOVE) @ManyToMany(cascade = {CascadeType.MERGE})
@LazyCollection(LazyCollectionOption.FALSE) @LazyCollection(LazyCollectionOption.FALSE)
private List<Component> componentsList; private List<Component> componentsList;

View File

@ -17,7 +17,7 @@ public class Order {
@Column(name = "date") @Column(name = "date")
private Date date; private Date date;
@ManyToMany (fetch = FetchType.EAGER, mappedBy = "ordersList", cascade = CascadeType.REMOVE) @ManyToMany (fetch = FetchType.EAGER, mappedBy = "ordersList", cascade = CascadeType.REFRESH)
private List<Favor> favorsList; private List<Favor> favorsList;
public Order(){ public Order(){

View File

@ -26,8 +26,9 @@ public class OrderService {
} }
@Transactional @Transactional
public Order addOrder(String date) { public Order addOrder() {
final Order order = new Order(getDate(date)); Date today = new Date();
final Order order = new Order(today);
validatorUtil.validate(order); validatorUtil.validate(order);
return orderRepository.save(order); return orderRepository.save(order);
} }
@ -56,9 +57,8 @@ public class OrderService {
} }
@Transactional @Transactional
public Order updateOrder(Long id, String date) { public Order updateOrder(Long id) {
final Order currentOrder = findOrder(id); final Order currentOrder = findOrder(id);
currentOrder.setDate(getDate(date));
validatorUtil.validate(currentOrder); validatorUtil.validate(currentOrder);
return orderRepository.save(currentOrder); return orderRepository.save(currentOrder);
} }