Quellcode durchsuchen

插入订单流转记录

wangzhijun vor 2 Tagen
Ursprung
Commit
6f3602d5dd

+ 15 - 3
nightFragrance-massage/src/main/java/com/ylx/order/service/impl/TOrderServiceImpl.java

@@ -289,7 +289,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
 
 
         // 10. 处理余额支付逻辑
         // 10. 处理余额支付逻辑
         if (ObjectUtil.equals(PaymentMethodEnum.BALANCE.getCode(), dto.getPaymentMethod())) {
         if (ObjectUtil.equals(PaymentMethodEnum.BALANCE.getCode(), dto.getPaymentMethod())) {
-            handleBalancePayment(userId, finalAmount, order.getOrderNo());
+            handleBalancePayment(userId, finalAmount, order);
             map.put("orderId", order.getId());
             map.put("orderId", order.getId());
             return map;
             return map;
         } else {
         } else {
@@ -380,6 +380,12 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                 .set(TOrder::getStatus, OrderStatusEnum.PENDING_DISPATCH.getCode())
                 .set(TOrder::getStatus, OrderStatusEnum.PENDING_DISPATCH.getCode())
                 .eq(TOrder::getId, order.getId())
                 .eq(TOrder::getId, order.getId())
                 .update();
                 .update();
+
+        // 插入订单流转记录
+        OrderUpdateStatusDTO dto = new OrderUpdateStatusDTO();
+        dto.setOrderId(order.getId());
+        dto.setStatus(OrderStatusEnum.PENDING_DISPATCH.getCode());
+        this.updateOrderStatus(dto);
     }
     }
 
 
     /**
     /**
@@ -517,7 +523,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
     /**
     /**
      * 处理余额支付 (核心优化:数据库原子操作防并发)
      * 处理余额支付 (核心优化:数据库原子操作防并发)
      */
      */
-    private void handleBalancePayment(Long userId, BigDecimal finalAmount, String orderNo) {
+    private void handleBalancePayment(Long userId, BigDecimal finalAmount, TOrder order) {
         // 1. 数据库层面原子扣减余额,并校验余额是否充足
         // 1. 数据库层面原子扣减余额,并校验余额是否充足
         boolean deductSuccess = this.wxUserService.lambdaUpdate()
         boolean deductSuccess = this.wxUserService.lambdaUpdate()
                 .setSql("d_balance = d_balance - " + finalAmount)
                 .setSql("d_balance = d_balance - " + finalAmount)
@@ -537,10 +543,16 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         ShoppingFundsDetailAddDto detailDto = new ShoppingFundsDetailAddDto();
         ShoppingFundsDetailAddDto detailDto = new ShoppingFundsDetailAddDto();
         detailDto.setUserId(userId.toString());
         detailDto.setUserId(userId.toString());
         detailDto.setAmount(finalAmount);
         detailDto.setAmount(finalAmount);
-        detailDto.setOrderNo(orderNo);
+        detailDto.setOrderNo(order.getOrderNo());
         detailDto.setExpenseType(ShoppingFundsExpenseTypeEnum.CONSUMPTION.getCode());
         detailDto.setExpenseType(ShoppingFundsExpenseTypeEnum.CONSUMPTION.getCode());
         detailDto.setBalance(user.getdBalance());
         detailDto.setBalance(user.getdBalance());
         this.shoppingFundsDetailService.addShoppingFundsDetail(detailDto);
         this.shoppingFundsDetailService.addShoppingFundsDetail(detailDto);
+
+        // 4. 记录状态流转流水
+        OrderUpdateStatusDTO dto = new OrderUpdateStatusDTO();
+        dto.setOrderId(order.getId());
+        dto.setStatus(order.getStatus());
+        this.updateOrderStatus(dto);
     }
     }
 
 
     /**
     /**