This commit is contained in:
@@ -366,10 +366,17 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
// 重新计算金额
|
// 重新计算金额
|
||||||
BigDecimal totalAmount = BigDecimal.ZERO;
|
BigDecimal totalAmount = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
// 删除旧的订单明细前,先恢复库存
|
||||||
|
List<OrderItem> oldItems = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
|
||||||
|
.eq(OrderItem::getOrderId, orderId));
|
||||||
|
for (OrderItem oldItem : oldItems) {
|
||||||
|
increaseStock(oldItem.getProductId(), oldItem.getQuantity(), orderId, operatorId);
|
||||||
|
}
|
||||||
|
|
||||||
// 删除旧的订单明细
|
// 删除旧的订单明细
|
||||||
orderItemMapper.delete(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderId, orderId));
|
orderItemMapper.delete(new LambdaQueryWrapper<OrderItem>().eq(OrderItem::getOrderId, orderId));
|
||||||
|
|
||||||
// 重新创建订单明细
|
// 重新创建订单明细,并扣减库存
|
||||||
List<OrderItem> orderItems = new ArrayList<>();
|
List<OrderItem> orderItems = new ArrayList<>();
|
||||||
for (CreateOrderRequest.OrderItemDTO itemDTO : request.getItems()) {
|
for (CreateOrderRequest.OrderItemDTO itemDTO : request.getItems()) {
|
||||||
Product product = productMapper.selectById(itemDTO.getProductId());
|
Product product = productMapper.selectById(itemDTO.getProductId());
|
||||||
@@ -403,6 +410,8 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
item.setSubtotal(subtotal);
|
item.setSubtotal(subtotal);
|
||||||
orderItems.add(item);
|
orderItems.add(item);
|
||||||
orderItemMapper.insert(item);
|
orderItemMapper.insert(item);
|
||||||
|
// 扣减库存
|
||||||
|
decreaseStock(product.getProductId(), itemDTO.getQuantity(), orderId, operatorId);
|
||||||
}
|
}
|
||||||
|
|
||||||
order.setTotalAmount(totalAmount);
|
order.setTotalAmount(totalAmount);
|
||||||
|
|||||||
Reference in New Issue
Block a user