Przeglądaj źródła

审核相关代码优化

lishiqiang 1 tydzień temu
rodzic
commit
12a01029ba

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

@@ -2653,43 +2653,11 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             Long discountId = summary.getDiscountId();
             shipTradeOrderCreateReqVO.setAmount(orderMoney);
             shipTradeOrderCreateReqVO.setPayAmount(realAmount);
-            if ((orderMoney != null && realAmount != null && (realAmount.compareTo(orderMoney) != 0) || shipTradeOrderCreateReqVO.getAmount().compareTo(tradeOrderDO.getAmount())!=0)) {
-                // 判断订单金额是否发生变化,记录变更日志
-                //shipTradeOrderCreateReqVO.setConfirmType(1);
-                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
-                tradeOrderBindDO.setId(IdWorker.getId());
-                tradeOrderBindDO.setType(1);
-                tradeOrderBindDO.setBindId(orderId);
-                tradeOrderBindDO.setCustom("");
-                tradeOrderBindDO.setRemark("modify订单金额修改,订单金额:" + orderMoney + ",订单修改后实际金额:" + realAmount);
-                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
-            } else if (createVO.getSummary().getDeposi() != null && shipTradeOrderCreateReqVO.getDeposi().compareTo(tradeOrderDO.getDeposi())!=0) {
+            if (createVO.getSummary().getDeposi() != null && shipTradeOrderCreateReqVO.getDeposi().compareTo(tradeOrderDO.getDeposi())!=0) {
                 // 判断定金金额是否发生变化,记录变更日志
-                //shipTradeOrderCreateReqVO.setConfirmType(1);
-                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
-                tradeOrderBindDO.setId(IdWorker.getId());
-                tradeOrderBindDO.setType(1);
-                tradeOrderBindDO.setBindId(orderId);
-                tradeOrderBindDO.setCustom("");
-                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);
             }
-//            if (tradeOrderDO.getOrderStatus() == 6) {
-//                shipTradeOrderCreateReqVO.setConfirmType(1);
-//            }
+
             shipTradeOrderCreateReqVO.setDiscountId(discountId);
             if (createVO.getSummary().getRealOrderMoney() != null) {
                 shipTradeOrderCreateReqVO.setPayAmount(createVO.getSummary().getRealOrderMoney());
@@ -2723,7 +2691,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             for (TradeVistorReqVO tradeVistorReqVO : createVO.getTourist()) {
                 List<ShipTradeOrderCreateReqVO.Visitor> visitorList = new ArrayList<>();
                 ShipTradeOrderCreateReqVO.OrderDetail visitorDetailId = new ShipTradeOrderCreateReqVO.OrderDetail();
-//                BeanUtils.copyProperties(orderDetail, ShipTradeOrderCreateReqVO.OrderDetail.class);
                 String visitorId = tradeVistorReqVO.getId();
                 if(StrUtil.isNotBlank(visitorId)){
                     visitorDetailId.setVisitorId(Long.valueOf(visitorId));
@@ -2817,11 +2784,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     }
                 }
             }
-//            List<TradeDetailRespVO> orderDetailByOrderId = tradeDetailMapper.getOrderDetailByOrderId(orderId);
-//            if(orderDetailByOrderId!=null){
-//
-//            }
-
             if(tradeOrderDO.getPayStatus()==1 && tradeOrderDO.getPayAmount().subtract(shipTradeOrderCreateReqVO.getPayAmount()).compareTo(BigDecimal.ZERO)!=0){
                 return CommonResult.error(500, "已支付订单金额发生变化"+tradeOrderDO.getPayAmount()+"->"+shipTradeOrderCreateReqVO.getPayAmount());
             }
@@ -2830,6 +2792,83 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             System.err.println("changedFields1=" + changedFields1);
 
             shipTradeOrderCreateReqVO.setChangedFields1(changedFields0 + ";" + changedFields1);
+            boolean isAudit = true;
+            BigDecimal oldleaderAmount = oldTradeOrderTotal.getLeaderAmount();
+            BigDecimal oldwithAmount = oldTradeOrderTotal.getWithAmount();
+            BigDecimal oldotherMoney = oldTradeOrderTotal.getOtherMoney();
+
+            BigDecimal leaderAmount = summary.getLeaderAmount();
+            BigDecimal withAmount = summary.getWithAmount();
+            BigDecimal otherMoney = summary.getOtherMoney();
+
+            String desc = "";
+            if (!Objects.equals(shipTradeOrderCreateReqVO.getRemark(), tradeOrderDO.getRemark()) || !Objects.equals(shipTradeOrderCreateReqVO.getLinkMobile(), tradeOrderDO.getLinkMobile()) || !Objects.equals(shipTradeOrderCreateReqVO.getLinkMan(), tradeOrderDO.getLinkMan())) {
+                auditType = 2;
+                desc = "订单联系人信息修改,订单进入二级审核";
+                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+                tradeOrderBindDO.setId(IdWorker.getId());
+                tradeOrderBindDO.setType(1);
+                tradeOrderBindDO.setBindId(orderId);
+                tradeOrderBindDO.setCustom("");
+                tradeOrderBindDO.setRemark(desc);
+                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
+
+            }
+            if (!CollUtil.isEmpty(createVO.getPolicyList()) &&isAudit) {
+                auditType = 2;
+                desc = "政策优惠提交,订单进入二级审核";
+                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+                tradeOrderBindDO.setId(IdWorker.getId());
+                tradeOrderBindDO.setType(1);
+                tradeOrderBindDO.setBindId(orderId);
+                tradeOrderBindDO.setCustom("");
+                tradeOrderBindDO.setRemark(desc);
+                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
+            }
+            if (shipTradeOrderCreateReqVO.getAmount().compareTo(tradeOrderDO.getAmount())!=0 && loginUser.getDistributorId() == null) {
+                auditType = 4;
+                desc = "平台修改订单金额发生变化,订单进入四级审核,"+tradeOrderDO.getAmount()+"->"+shipTradeOrderCreateReqVO.getAmount();
+            }
+            BigDecimal oldDeposi = tradeOrderDO.getDeposi()==null?BigDecimal.ZERO:tradeOrderDO.getDeposi();
+            BigDecimal newDeposi = shipTradeOrderCreateReqVO.getDeposi()==null?BigDecimal.ZERO:shipTradeOrderCreateReqVO.getDeposi();
+            if (oldDeposi.compareTo(newDeposi)!=0) {
+                auditType = 3;
+                desc = "平台修改定金金额,订单进入三级审核,"+oldDeposi+"->"+newDeposi;
+            }
+            if (realAmount.compareTo(tradeOrderDO.getPayAmount())!=0 && loginUser.getDistributorId() == null) {
+                auditType = 4;
+                desc = "平台修改实际金额,订单进入四级审核,"+tradeOrderDO.getPayAmount()+"->"+realAmount;
+            }
+            if (oldleaderAmount.compareTo(leaderAmount)!=0 || oldwithAmount.compareTo(withAmount)!=0 || oldotherMoney.compareTo(otherMoney)!=0) {
+                auditType = 4;
+                desc = "领队陪同修改,订单进入四级审核";
+            }
+            if (shipTradeOrderCreateReqVO.getAmount().compareTo(tradeOrderDO.getAmount())!=0 && loginUser.getDistributorId() != null) {
+                auditType = 4;
+                desc = "分销商修改订单金额,订单进入四级审核,"+tradeOrderDO.getAmount()+"->"+shipTradeOrderCreateReqVO.getAmount();
+            }
+            if (realAmount.compareTo(tradeOrderDO.getPayAmount())!=0 && loginUser.getDistributorId() != null) {
+                auditType = 4;
+                desc = "分销商修改实际金额,订单进入四级审核,"+tradeOrderDO.getPayAmount()+"->"+realAmount;
+            }
+            if (auditType > 0 && createVO.getIsYd() != 1) {
+                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+                tradeOrderBindDO.setId(IdWorker.getId());
+                tradeOrderBindDO.setType(1);
+                tradeOrderBindDO.setBindId(orderId);
+                tradeOrderBindDO.setCustom("");
+                tradeOrderBindDO.setRemark(desc);
+                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
+            } else if (oldDeposi.compareTo(newDeposi)!=0) {
+                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+                tradeOrderBindDO.setId(IdWorker.getId());
+                tradeOrderBindDO.setType(1);
+                tradeOrderBindDO.setBindId(orderId);
+                tradeOrderBindDO.setCustom("");
+                tradeOrderBindDO.setRemark(desc);
+                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
+            }
+
             CommonResult<TradeOrderRespDTO> result = doShipModifyOrder(loginUser, shipTradeOrderCreateReqVO);
             if (result.isError()) {
                 return CommonResult.error(result.getCode(), result.getMsg());
@@ -2857,41 +2896,16 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     .eq(HisTradeOrderTotalDO::getId, oldTradeOrderTotal.getId()));
             hisTradeOrderTotalMapper.insert(hisTradeOrderTotalDO);
 
-            // 20260427 以前删除逻辑
-//            tradeOrderTotalMapper.update(new LambdaUpdateWrapper<TradeOrderTotalDO>()
-//                    .set(TradeOrderTotalDO::getDeleted, 1)
-//                    .set(TradeOrderTotalDO::getUpdateTime, updateTime)
-//                    .eq(TradeOrderTotalDO::getOldOrderId, orderId)
-//            );
             tradeOrderTotalDO.setId(oldTradeOrderTotal.getId());
             tradeOrderTotalDO.setOldOrderId(orderId);
             tradeOrderTotalMapper.updateById(tradeOrderTotalDO);
             // 处理订单房型数据
             updateRoomModel(createVO.getRoomModelList(),orderId,orderNo);
-            //创建订单房型数据
-            /*List<TradeOrderRoomModelDO> list = new ArrayList<>();
-            List<TradeOrderRoomModelVO> roomModelList = createVO.getRoomModelList();
-            roomModelList.forEach(item -> {
-                TradeOrderRoomModelDO tradeOrderRoomModelDO = BeanUtils.toBean(item, TradeOrderRoomModelDO.class);
-                tradeOrderRoomModelDO.setId(IdWorker.getId());
-                tradeOrderRoomModelDO.setOrderId(neworderId);
-                tradeOrderRoomModelDO.setDiscount(tradeOrderRoomModelDO.getUnitPrice().subtract(tradeOrderRoomModelDO.getRealMoney()));
-                tradeOrderRoomModelDO.setOrderNo(orderNo);
-                list.add(tradeOrderRoomModelDO);
-            });*/
-            BigDecimal oldleaderAmount = oldTradeOrderTotal.getLeaderAmount();
-            BigDecimal oldwithAmount = oldTradeOrderTotal.getWithAmount();
-            BigDecimal oldotherMoney = oldTradeOrderTotal.getOtherMoney();
-
-            BigDecimal leaderAmount = summary.getLeaderAmount();
-            BigDecimal withAmount = summary.getWithAmount();
-            BigDecimal otherMoney = summary.getOtherMoney();
 
             // 创建订单优惠政策数据
             //1.先删除原来的
             List<OrderPolicyDO> orderPolicyList = orderPolicyMapper.selectList(OrderPolicyDO::getOrderId, orderId);
-            boolean isAudit = true;
-//            orderPolicyMapper.deleteByOrderId(orderId);
+
             insertHisOrderPolicy(orderPolicyList,orderId);
             List<OrderPolicyDO> orderPolicyDOList = new ArrayList<>();
             List<TradeOrderPolicyReqVO> policyList = createVO.getPolicyList();
@@ -2920,15 +2934,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     orderPolicyDO.setPreUseNum(policy.getUseNum());
                     // 只要不是审核,都是预占,实占和预占一样,不用区分了,其实实占没有意义了
                     orderPolicyDO.setRealUseNum(policy.getUseNum());
-//                    if (Objects.equals(tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus())) {
-//                        orderPolicyDO.setRealUseNum(policy.getUseNum());
-//                        orderPolicyDO.setPreUseNum(BigDecimal.ZERO);
-//                        policyApi.updatePolicySurplusNum(policy.getPolicyId(), createVO.getVoyageId(), policy.getUseNum());
-//                        //TODO: 需要修改订单金额,参考文档
-//                    } else {
-//                        orderPolicyDO.setRealUseNum(BigDecimal.ZERO);
-//                        orderPolicyDO.setPreUseNum(policy.getUseNum());
-//                    }
                     orderPolicyDO.setAmount(policy.getAmount());
                     orderPolicyDO.setRooms(policy.getRooms());
                     if(policy.getId()!=null){
@@ -2937,7 +2942,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     }else{
                         insetOrderPolicyDOList.add(orderPolicyDO);
                     }
-//                    orderPolicyDOList.add(orderPolicyDO);
                 });
                 // 执行删除操作
                 if (CollUtil.isNotEmpty(deleteOrderPolicyIds)) {
@@ -2956,46 +2960,25 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     String changedFields11 = com.yc.ship.module.trade.utils.BeanUtils.getChangedFields(orderPolicyList, orderPolicyDOList);
                     if(StringUtils.isEmpty(changedFields11)){
                         isAudit = false;
+                        if(auditType==2 && "政策优惠提交,订单进入二级审核".equals(desc)){
+                            auditType = 0;
+                        }
                     }
                     orderPolicyMapper.insertBatch(orderPolicyDOList);
                 }
             }
-
-            String desc = "";
-            if (!Objects.equals(shipTradeOrderCreateReqVO.getRemark(), tradeOrderDO.getRemark()) || !Objects.equals(shipTradeOrderCreateReqVO.getLinkMobile(), tradeOrderDO.getLinkMobile()) || !Objects.equals(shipTradeOrderCreateReqVO.getLinkMan(), tradeOrderDO.getLinkMan())) {
-                auditType = 2;
-                desc = "订单联系人信息修改,订单进入二级审核";
-            }
             if (!CollUtil.isEmpty(createVO.getPolicyList()) &&isAudit) {
                 auditType = 2;
                 desc = "政策优惠提交,订单进入二级审核";
+                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+                tradeOrderBindDO.setId(IdWorker.getId());
+                tradeOrderBindDO.setType(1);
+                tradeOrderBindDO.setBindId(orderId);
+                tradeOrderBindDO.setCustom("");
+                tradeOrderBindDO.setRemark(desc);
+                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
             }
-            if (shipTradeOrderCreateReqVO.getAmount().compareTo(tradeOrderDO.getAmount())!=0 && loginUser.getDistributorId() == null) {
-                auditType = 4;
-                desc = "平台修改订单金额发生变化,订单进入四级审核";
-            }
-            BigDecimal oldDeposi = tradeOrderDO.getDeposi()==null?BigDecimal.ZERO:tradeOrderDO.getDeposi();
-            BigDecimal newDeposi = shipTradeOrderCreateReqVO.getDeposi()==null?BigDecimal.ZERO:shipTradeOrderCreateReqVO.getDeposi();
-            if (oldDeposi.compareTo(newDeposi)!=0) {
-                auditType = 3;
-                desc = "平台修改定金金额,订单进入三级审核";
-            }
-            if (realAmount.compareTo(tradeOrderDO.getPayAmount())!=0 && loginUser.getDistributorId() == null) {
-                auditType = 4;
-                desc = "平台修改实际金额,订单进入四级审核";
-            }
-            if (oldleaderAmount.compareTo(leaderAmount)!=0 || oldwithAmount.compareTo(withAmount)!=0 || oldotherMoney.compareTo(otherMoney)!=0) {
-                auditType = 4;
-                desc = "领队陪同修改,订单进入四级审核";
-            }
-            if (shipTradeOrderCreateReqVO.getAmount().compareTo(tradeOrderDO.getAmount())!=0 && loginUser.getDistributorId() != null) {
-                auditType = 4;
-                desc = "分销商修改订单金额,订单进入四级审核";
-            }
-            if (realAmount.compareTo(tradeOrderDO.getPayAmount())!=0 && loginUser.getDistributorId() != null) {
-                auditType = 4;
-                desc = "分销商修改实际金额,订单进入四级审核";
-            }
+
             //1.取消订单,四级审核,销售-计调-运营主管-营销经理
             //2.重要信息修改(修改游客信息,价格变动),四级审核,销售-计调-运营主管-营销经理
             //3.普通信息修改(联系电话,联系人,备注),二级审核,计调-运营主管
@@ -3009,11 +2992,25 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 log.error(orderNo+">>>>>>>>>>>>>>>>>>>>>> motifyOtcOrder 进入审核流程 <<<<<<<<<<<<<<<<<<<<<<"+auditType+";"+(auditUserDO == null ? "" : auditUserDO.getAuditUser()));
                 msg = "修改提交成功,等待管理员审核";
                 neworderStatus = TradeOrderStatusEnum.TRANSFER.getStatus();
+                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+                tradeOrderBindDO.setId(IdWorker.getId());
+                tradeOrderBindDO.setType(1);
+                tradeOrderBindDO.setBindId(orderId);
+                tradeOrderBindDO.setCustom("");
+                tradeOrderBindDO.setRemark(desc);
+                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
             } else if (oldDeposi.compareTo(newDeposi)!=0) {
                 AuditUserDO auditUserDO = auditUserMapper.selectOne(new LambdaQueryWrapperX<AuditUserDO>().eq(AuditUserDO::getType, 3).eq(AuditUserDO::getAuditStatus, 1).eq(AuditUserDO::getDeleted, 0).orderByDesc(AuditUserDO::getCreateTime).last("limit 1"));
                 tradeOrderMapper.update(new UpdateWrapper<TradeOrderDO>().set("audit_type", 3).set("audit_user", auditUserDO == null ? "" : auditUserDO.getAuditUser()).set("order_status", TradeOrderStatusEnum.TRANSFER.getStatus()).set("audit_status", 1).set("confirm_type",1).eq("id", neworderId));
                 msg = "修改提交成功,等待管理员审核";
                 neworderStatus = TradeOrderStatusEnum.TRANSFER.getStatus();
+                TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
+                tradeOrderBindDO.setId(IdWorker.getId());
+                tradeOrderBindDO.setType(1);
+                tradeOrderBindDO.setBindId(orderId);
+                tradeOrderBindDO.setCustom("");
+                tradeOrderBindDO.setRemark(desc);
+                shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
                 log.error(orderNo+">>>>>>>>>>>>>>>>>>>>>> motifyOtcOrder 进入审核流程2 <<<<<<<<<<<<<<<<<<<<<<"+3+";"+(auditUserDO == null ? "" : auditUserDO.getAuditUser()));
             }
             if(Objects.equals(TradeOrderStatusEnum.TRANSFER.getStatus(), neworderStatus)) {