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);
|
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user