Browse Source

修改订单状态设置问题

Yangzw 10 months ago
parent
commit
5d78820065

+ 1 - 0
feifan-module-mall/feifan-module-trade-api/src/main/java/cn/newfeifan/mall/module/trade/enums/ErrorCodeConstants.java

@@ -94,5 +94,6 @@ public interface ErrorCodeConstants {
     ErrorCode BROKERAGE_WITHDRAW_USER_BALANCE_NOT_ENOUGH = new ErrorCode(1_011_008_003, "您当前最多可提现 {} 元");
     ErrorCode NOT_SUFFICIENT_FUNDS = new ErrorCode(1_011_008_004, "账号无可用单量,需要充值");
     ErrorCode CALLBACK_PARAMETER_ERROR = new ErrorCode(1_011_008_005, "第三方回调参数为Null");
+    ErrorCode SUBSCRIBER_ERROR = new ErrorCode(1_011_008_006, "订阅异常");
 
 }

+ 8 - 6
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -368,12 +368,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
             // 2.2 无需发货
             updateOrderObj.setLogisticsId(0L).setLogisticsNo("");
         }
-        // 执行更新
-        updateOrderObj.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus()).setDeliveryTime(LocalDateTime.now());
-        int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), updateOrderObj);
-        if (updateCount == 0) {
-            throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
-        }
 
         try {
             //发送订单订阅
@@ -382,6 +376,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
             throw new RuntimeException(e);
         }
 
+        // 执行更新
+        updateOrderObj.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus()).setDeliveryTime(LocalDateTime.now());
+        int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), updateOrderObj);
+        TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(order.getId());
+        if (updateCount == 0) {
+            throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
+        }
+
         // 3. 记录订单日志
         TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.DELIVERED.getStatus(),
                 MapUtil.<String, Object>builder().put("deliveryName", express != null ? express.getName() : "")