From a0aa1432abe56134f7d4698ace8da613d678306b Mon Sep 17 00:00:00 2001 From: Agent Date: Fri, 3 Apr 2026 04:19:20 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AE=A2=E5=8D=95=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=97=B6=E6=89=A3=E5=87=8F=E5=BA=93=E5=AD=98=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E5=AE=8C=E6=88=90=E6=97=B6=E4=B8=8D=E5=86=8D=E6=89=A3?= =?UTF-8?q?=E5=87=8F=EF=BC=8C=E5=8F=96=E6=B6=88=E6=97=B6=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderServiceImpl.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) 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 76ce3d5..34e879d 100644 --- a/src/main/java/com/example/building/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/example/building/service/impl/OrderServiceImpl.java @@ -119,8 +119,8 @@ public class OrderServiceImpl implements OrderService { item.setSubtotal(subtotal); orderItems.add(item); - // 4. 暂时不扣减库存,等确认完成时再扣减 - // decreaseStock(product.getProductId(), itemDTO.getQuantity(), order.getOrderId(), operatorId); + // 4. 创建订单时立即扣减库存 + decreaseStock(product.getProductId(), itemDTO.getQuantity(), order.getOrderId(), operatorId); } // 设置订单原价 @@ -253,7 +253,13 @@ public class OrderServiceImpl implements OrderService { throw new RuntimeException("订单状态不允许取消"); } - // 未完成订单没有扣减库存,不需要恢复 + // 取消订单需要恢复库存(因为创建时已扣减库存) + List items = orderItemMapper.selectList(new LambdaQueryWrapper() + .eq(OrderItem::getOrderId, orderId)); + for (OrderItem item : items) { + increaseStock(item.getProductId(), item.getQuantity(), orderId, operatorId); + } + // 更新订单状态 order.setStatus(2); // 已取消 orderMapper.updateById(order); @@ -302,14 +308,11 @@ public class OrderServiceImpl implements OrderService { } if (status == 1) { - // 确认完成:扣减库存 - List items = orderItemMapper.selectList(new LambdaQueryWrapper() - .eq(OrderItem::getOrderId, orderId)); - for (OrderItem item : items) { - decreaseStock(item.getProductId(), item.getQuantity(), orderId, operatorId); - } + // 确认完成:订单在创建时已扣减库存,此处不再扣减 + // 只需更新状态为已完成 } - // 取消不需要恢复库存(因为创建时没扣减) + // 取消订单需要恢复库存(因为创建时已扣减) + if (status == 2) { order.setStatus(status); orderMapper.updateById(order);