|
|
@@ -317,6 +317,15 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
|
|
|
// 下单后不清空购物车,允许加餐(加餐时添加到同一订单)
|
|
|
// 只有在支付完成后才清空购物车
|
|
|
|
|
|
+ // 创建订单成功后,自动解锁订单锁定
|
|
|
+ try {
|
|
|
+ diningService.unlockOrder(dto.getTableId(), userId);
|
|
|
+ log.info("订单创建成功后自动解锁订单锁定, tableId={}, userId={}", dto.getTableId(), userId);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("自动解锁订单锁定失败, tableId={}, userId={}, error={}", dto.getTableId(), userId, e.getMessage());
|
|
|
+ // 解锁失败不影响订单创建,只记录警告日志
|
|
|
+ }
|
|
|
+
|
|
|
if (isUpdate) {
|
|
|
log.info("订单更新成功, orderId={}, orderNo={}", finalOrder.getId(), finalOrderNo);
|
|
|
} else {
|
|
|
@@ -381,6 +390,15 @@ public class StoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, StoreOr
|
|
|
// resetTableAfterPayment 方法会完全清空购物车,所以不需要单独调用 clearCart
|
|
|
resetTableAfterPayment(order.getTableId());
|
|
|
|
|
|
+ // 支付订单成功后,自动解锁结算锁定
|
|
|
+ try {
|
|
|
+ diningService.unlockSettlement(orderId, userId);
|
|
|
+ log.info("订单支付成功后自动解锁结算锁定, orderId={}, userId={}", orderId, userId);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("自动解锁结算锁定失败, orderId={}, userId={}, error={}", orderId, userId, e.getMessage());
|
|
|
+ // 解锁失败不影响订单支付,只记录警告日志
|
|
|
+ }
|
|
|
+
|
|
|
log.info("订单支付成功, orderId={}", orderId);
|
|
|
return order;
|
|
|
}
|