остались фильтры для заказа
This commit is contained in:
parent
4bfe12eb0f
commit
b12fee9a0c
@ -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">
|
||||
<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
|
||||
:headers="this.headersComps"
|
||||
:headers="this.headersFavs"
|
||||
:items="itemsComps(data.favorIds)"
|
||||
:selectedItems="this.selectedItemsComps">
|
||||
:selectedItems="this.selectedItemsFavs">
|
||||
</DataTable>
|
||||
<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>
|
||||
<option disabled value="">Выберите компьютер</option>
|
||||
<option disabled value="">Выберите услуги</option>
|
||||
<option v-for="favor in this.favors"
|
||||
:value="favor.id">
|
||||
{{ favor.modelName }}
|
||||
{{ favor.favorName }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
@ -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));
|
||||
}
|
||||
|
@ -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<FavorDTO> favorsDTOList;
|
||||
|
||||
private List<Long> 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<Favor> 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<FavorDTO> getFavorsDTOList() {
|
||||
return favorsDTOList;
|
||||
}
|
||||
public List<Long> getfavorIds() { return this.favorIds; }
|
||||
public void setfavorIds(List<Long> favorIds) { this.favorIds = favorIds; }
|
||||
}
|
||||
|
@ -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<Favor> favorsListFromComponents;
|
||||
|
||||
public Component() {
|
||||
|
@ -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<Order> ordersList;
|
||||
|
||||
@ManyToMany(cascade = CascadeType.REMOVE)
|
||||
@ManyToMany(cascade = {CascadeType.MERGE})
|
||||
@LazyCollection(LazyCollectionOption.FALSE)
|
||||
private List<Component> componentsList;
|
||||
|
||||
|
@ -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<Favor> favorsList;
|
||||
|
||||
public Order(){
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user