feat: 订单创建时扣减库存,确认完成时不再扣减,取消时恢复库存
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
@@ -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<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); // 已取消
|
||||
orderMapper.updateById(order);
|
||||
@@ -302,14 +308,11 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
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);
|
||||
orderMapper.updateById(order);
|
||||
|
||||
Reference in New Issue
Block a user