From 1427538598fc75dd004430a1987660e78376ae37 Mon Sep 17 00:00:00 2001 From: Agent Date: Fri, 3 Apr 2026 12:25:39 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BC=96=E8=BE=91=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=97=B6=E6=81=A2=E5=A4=8D=E6=97=A7=E5=BA=93=E5=AD=98=E5=B9=B6?= =?UTF-8?q?=E6=89=A3=E5=87=8F=E6=96=B0=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../building/service/impl/OrderServiceImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/building/service/impl/OrderServiceImpl.java b/src/main/java/com/example/building/service/impl/OrderServiceImpl.java index f71d880..fcd50ca 100644 --- a/src/main/java/com/example/building/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/example/building/service/impl/OrderServiceImpl.java @@ -366,10 +366,17 @@ public class OrderServiceImpl implements OrderService { // 重新计算金额 BigDecimal totalAmount = BigDecimal.ZERO; + // 删除旧的订单明细前,先恢复库存 + List oldItems = orderItemMapper.selectList(new LambdaQueryWrapper() + .eq(OrderItem::getOrderId, orderId)); + for (OrderItem oldItem : oldItems) { + increaseStock(oldItem.getProductId(), oldItem.getQuantity(), orderId, operatorId); + } + // 删除旧的订单明细 orderItemMapper.delete(new LambdaQueryWrapper().eq(OrderItem::getOrderId, orderId)); - // 重新创建订单明细 + // 重新创建订单明细,并扣减库存 List orderItems = new ArrayList<>(); for (CreateOrderRequest.OrderItemDTO itemDTO : request.getItems()) { Product product = productMapper.selectById(itemDTO.getProductId()); @@ -403,6 +410,8 @@ public class OrderServiceImpl implements OrderService { item.setSubtotal(subtotal); orderItems.add(item); orderItemMapper.insert(item); + // 扣减库存 + decreaseStock(product.getProductId(), itemDTO.getQuantity(), orderId, operatorId); } order.setTotalAmount(totalAmount);