feat: 订单创建时扣减库存,确认完成时不再扣减,取消时恢复库存
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Agent
2026-04-03 04:19:20 +00:00
parent 4da4b1f922
commit a0aa1432ab

View File

@@ -119,8 +119,8 @@ public class OrderServiceImpl implements OrderService {
item.setSubtotal(subtotal); item.setSubtotal(subtotal);
orderItems.add(item); orderItems.add(item);
// 4. 暂时不扣减库存,等确认完成时再扣减 // 4. 创建订单时立即扣减库存
// decreaseStock(product.getProductId(), itemDTO.getQuantity(), order.getOrderId(), operatorId); decreaseStock(product.getProductId(), itemDTO.getQuantity(), order.getOrderId(), operatorId);
} }
// 设置订单原价 // 设置订单原价
@@ -253,7 +253,13 @@ public class OrderServiceImpl implements OrderService {
throw new RuntimeException("订单状态不允许取消"); throw new RuntimeException("订单状态不允许取消");
} }
// 未完成订单没有扣减库存,不需要恢复 // 取消订单需要恢复库存(因为创建时已扣减库存)
List<OrderItem> items = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
.eq(OrderItem::getOrderId, orderId));
for (OrderItem item : items) {
increaseStock(item.getProductId(), item.getQuantity(), orderId, operatorId);
}
// 更新订单状态 // 更新订单状态
order.setStatus(2); // 已取消 order.setStatus(2); // 已取消
orderMapper.updateById(order); orderMapper.updateById(order);
@@ -302,14 +308,11 @@ public class OrderServiceImpl implements OrderService {
} }
if (status == 1) { if (status == 1) {
// 确认完成:扣减库存 // 确认完成:订单在创建时已扣减库存,此处不再扣减
List<OrderItem> items = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>() // 只需更新状态为已完成
.eq(OrderItem::getOrderId, orderId));
for (OrderItem item : items) {
decreaseStock(item.getProductId(), item.getQuantity(), orderId, operatorId);
}
} }
// 取消需要恢复库存(因为创建时扣减) // 取消订单需要恢复库存(因为创建时扣减)
if (status == 2) {
order.setStatus(status); order.setStatus(status);
orderMapper.updateById(order); orderMapper.updateById(order);