Explorar o código

订单修改逻辑调整

lishiqiang hai 2 días
pai
achega
c6835ad195

+ 18 - 15
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -495,6 +495,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 } catch (Exception e) {
                     log.error("发送短信异常", e);
                 }
+                TradeOrderTotalDO tradeOrderTotal = tradeOrderTotalMapper.selectByOrderId(tradeOrderDO.getId());
                 List<BigDecimal> amountList = new ArrayList<>();
                 List<OrderPolicyDO> orderPolicyList = orderPolicyMapper.selectList(OrderPolicyDO::getOrderId, orderId);
                 if (!orderPolicyList.isEmpty()) {
@@ -509,16 +510,18 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     orderStatus = 6;
                 }
                 LocalDateTime confireDate = tradeOrderDO.getConfirmDate();
-                BigDecimal newPayAmount = tradeOrderDO.getAmount().subtract(amount);
+                BigDecimal newPayAmount = tradeOrderTotal.getRealMoney().subtract(amount);
                 LambdaUpdateWrapper<TradeOrderDO> updateWrapper = Wrappers.<TradeOrderDO>lambdaUpdate()
                         .set(TradeOrderDO::getOrderStatus, orderStatus)
                         .set(TradeOrderDO::getConfirmDate, confireDate)
                         .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
                         .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
                         .set(TradeOrderDO::getDeposiStatus, 1)
-                        .set(TradeOrderDO::getPayAmount, newPayAmount)
-                        .set(TradeOrderDO::getFreeAmount, amount)
                         .eq(TradeOrderDO::getId, orderId);
+                if(amount.compareTo(BigDecimal.ZERO) != 0){
+                    updateWrapper.set(TradeOrderDO::getPayAmount, newPayAmount);
+                    updateWrapper.set(TradeOrderDO::getFreeAmount, amount);
+                }
                 if(confireDate == null){
                     updateWrapper.set(TradeOrderDO::getConfirmDate, LocalDateTime.now());
                 }
@@ -3064,18 +3067,18 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
                 log.error("{}>>>>>>>>>>>>>>>>>>>>>> motifyOtcOrder 进入审核流程2 <<<<<<<<<<<<<<<<<<<<<<" + 3 + ";{}", orderNo, auditUserDO == null ? "" : auditUserDO.getAuditUser());
             }
-            if(Objects.equals(TradeOrderStatusEnum.TRANSFER.getStatus(), neworderStatus)) {
-                TradeOrderLogDO tradeOrderLogDO = new TradeOrderLogDO();
-                tradeOrderLogDO.setId(IdWorker.getId());
-                tradeOrderLogDO.setOrderId(tradeOrderDO.getId());
-                tradeOrderLogDO.setUserId(getLoginUserId());
-                tradeOrderLogDO.setUserType(2);
-                tradeOrderLogDO.setOperateType(TradeOrderOperateTypeEnum.ORDER_AUDIT_LOG.getType());
-                tradeOrderLogDO.setBeforeStatus(tradeOrderDO.getOrderStatus());
-                tradeOrderLogDO.setAfterStatus(TradeOrderStatusEnum.TRANSFER.getStatus());
-                tradeOrderLogDO.setContent(desc);
-                tradeOrderLogMapper.insert(tradeOrderLogDO);
-            }
+//            if(Objects.equals(TradeOrderStatusEnum.TRANSFER.getStatus(), neworderStatus)) {
+//                TradeOrderLogDO tradeOrderLogDO = new TradeOrderLogDO();
+//                tradeOrderLogDO.setId(IdWorker.getId());
+//                tradeOrderLogDO.setOrderId(tradeOrderDO.getId());
+//                tradeOrderLogDO.setUserId(getLoginUserId());
+//                tradeOrderLogDO.setUserType(2);
+//                tradeOrderLogDO.setOperateType(TradeOrderOperateTypeEnum.ORDER_AUDIT_LOG.getType());
+//                tradeOrderLogDO.setBeforeStatus(tradeOrderDO.getOrderStatus());
+//                tradeOrderLogDO.setAfterStatus(TradeOrderStatusEnum.TRANSFER.getStatus());
+//                tradeOrderLogDO.setContent(desc);
+//                tradeOrderLogMapper.insert(tradeOrderLogDO);
+//            }
 
             try {
                 if(!Objects.equals(tradeOrderDO.getOrderStatus(), neworderStatus)) {