lishiqiang před 1 týdnem
rodič
revize
7f61623bc1

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeOrderBindDO.java

@@ -33,7 +33,7 @@ public class TradeOrderBindDO extends TenantBaseDO {
      */
     private Long orderId;
     /**
-     * 关联类型1下单金额修改审核 2确定后修改审核信息
+     * 关联类型1下单金额修改审核 2确定后修改审核信息 3政策审核
      */
     private Integer type;
     /**

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

@@ -162,6 +162,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private ShipApi shipApi;
     @Resource
+    private PolicyApi policyApi;
+    @Resource
     private NotifyMessageSendApi notifyMessageSendApi;
 
     @Resource
@@ -245,9 +247,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private OrderPolicyMapper orderPolicyMapper;
 
-    @Resource
-    private PolicyApi policyApi;
-
     @Resource
     private RedissonClient redissonClient;
 
@@ -425,7 +424,16 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 } catch (Exception e) {
                     log.error("发送短信异常", e);
                 }
-
+                try {
+                    List<OrderPolicyDO> orderPolicyList = orderPolicyMapper.selectList(OrderPolicyDO::getOrderId, orderId);
+                    if (!orderPolicyList.isEmpty()) {
+                        orderPolicyList.forEach(item -> {
+                            policyApi.updatePolicySurplusNum(item.getId(), tradeOrderDO.getVoyageId(), item.getPreUseNum());
+                        });
+                    }
+                }catch (Exception e){
+                    log.error("政策执行异常", e);
+                }
                 Map<String, Object> extMap = new HashMap<>();
                 extMap.put("result", "审核通过");
                 TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus(), extMap);
@@ -1596,7 +1604,16 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             }
 
             shipTradeOrderCreateReqVO.setOrderProperty(orderProperty);
-
+            if (!createVO.getPolicyList().isEmpty()) {
+                shipTradeOrderCreateReqVO.setConfirmType(1);
+                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+                tradeOrderBindDO.setId(IdWorker.getId());
+                tradeOrderBindDO.setType(3);
+                tradeOrderBindDO.setBindId(null);
+                tradeOrderBindDO.setCustom("");
+                tradeOrderBindDO.setRemark("提交营销政策");
+                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
+            }
             ShipTradeOrderCreateReqVO.OrderItem orderItem = new ShipTradeOrderCreateReqVO.OrderItem();
             List<ShipTradeOrderCreateReqVO.OrderDetail> detailList = new ArrayList<>();
             ShipTradeOrderCreateReqVO.OrderDetail orderDetail = new ShipTradeOrderCreateReqVO.OrderDetail();
@@ -1734,10 +1751,16 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             if (otherMoney1 != null && otherMoney1.compareTo(new BigDecimal(0)) > 0) {
                 auditType = 4;
             }
-            if (auditType > 0 && createVO.getIsYd() != 1) {
+            if (!CollUtil.isEmpty(createVO.getPolicyList())) {
                 orderStatus = TradeOrderStatusEnum.TRANSFER.getStatus();
                 AuditUserDO auditUserDO = auditUserMapper.selectOne(new LambdaQueryWrapperX<AuditUserDO>().eq(AuditUserDO::getType, auditType).eq(AuditUserDO::getAuditStatus, 1).eq(AuditUserDO::getDeleted, 0).orderByDesc(AuditUserDO::getCreateTime).last("limit 1"));
                 tradeOrderMapper.update(new UpdateWrapper<TradeOrderDO>().set("audit_type", auditType).set("order_status", TradeOrderStatusEnum.TRANSFER.getStatus()).set("audit_user",auditUserDO.getAuditUser()).set("audit_status", 1).eq("id", orderId));
+            }else {
+                if (auditType > 0 && createVO.getIsYd() != 1) {
+                    orderStatus = TradeOrderStatusEnum.TRANSFER.getStatus();
+                    AuditUserDO auditUserDO = auditUserMapper.selectOne(new LambdaQueryWrapperX<AuditUserDO>().eq(AuditUserDO::getType, auditType).eq(AuditUserDO::getAuditStatus, 1).eq(AuditUserDO::getDeleted, 0).orderByDesc(AuditUserDO::getCreateTime).last("limit 1"));
+                    tradeOrderMapper.update(new UpdateWrapper<TradeOrderDO>().set("audit_type", auditType).set("order_status", TradeOrderStatusEnum.TRANSFER.getStatus()).set("audit_user", auditUserDO.getAuditUser()).set("audit_status", 1).eq("id", orderId));
+                }
             }
             if (!tradeOrderRoomDOList.isEmpty()) {
                 tradeOrderRoomModelMapper.deleteByOrderId(orderId);
@@ -1845,6 +1868,15 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 tradeOrderBindDO.setRemark("modify定金金额修改,订单原定金:" + tradeOrderDO.getDeposi() + ",订单修改后定金金额:" + shipTradeOrderCreateReqVO.getDeposi());
                 shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
                 shipTradeOrderCreateReqVO.setDeposiStatus(1);
+            }else if (!createVO.getPolicyList().isEmpty()) {
+                shipTradeOrderCreateReqVO.setConfirmType(1);
+                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+                tradeOrderBindDO.setId(IdWorker.getId());
+                tradeOrderBindDO.setType(3);
+                tradeOrderBindDO.setBindId(orderId);
+                tradeOrderBindDO.setCustom("");
+                tradeOrderBindDO.setRemark("提交营销政策");
+                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
             } else {
                 shipTradeOrderCreateReqVO.setConfirmType(0);
             }