소스 검색

订单修改逻辑调整

lishiqiang 6 일 전
부모
커밋
cdf0adb8a4

+ 1 - 0
ship-module-trade/ship-module-trade-api/src/main/java/com/yc/ship/module/trade/enums/ErrorCodeConstants.java

@@ -151,6 +151,7 @@ public interface ErrorCodeConstants {
     ErrorCode ORDER_ISINVOICE = new ErrorCode(30_100, "订单已开票不能修改");
     ErrorCode ORDER_ISBILL = new ErrorCode(30_100, "订单已生成账单不能修改");
     ErrorCode ORDER_NOT_VOYAGE_CHANGE = new ErrorCode(30_101, "航次不能修改");
+    ErrorCode ORDER_NOT_ORDER_CHANGE = new ErrorCode(30_101, "留位订单不支持添加营销政策");
     ErrorCode ORDER_NOT_VOYAGE = new ErrorCode(30_101, "航次不能为空");
     ErrorCode USE_DATE_RANGE_ERROR = new ErrorCode(30_102, "使用日期范围不正确");
     ErrorCode TRAVEL_DATE_ERROR = new ErrorCode(30_103, "游玩日期不正确");

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

@@ -2680,6 +2680,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         String orderNo = tradeOrderDO.getOrderNo();
         Long oldvoyageId = tradeOrderDO.getVoyageId();
         Long newvoyageId = createVO.getVoyageId();
+        List<TradeOrderPolicyReqVO> policyList = createVO.getPolicyList();
         // 航次ID
         if (newvoyageId == null) {
             return CommonResult.error(ORDER_NOT_VOYAGE);
@@ -2688,6 +2689,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         if(!Objects.equals(oldvoyageId, newvoyageId)){
             return CommonResult.error(ORDER_NOT_VOYAGE_CHANGE);
         }
+        if(policyList!=null && createVO.getIsYd() == 1){
+            return CommonResult.error(ORDER_NOT_ORDER_CHANGE);
+        }
         //现在给整个订单号的加锁
         String lockKey = String.format(ProductRedisKeyConstants.ORDER_REDIS_KEY_PREFIX, orderNo);
         RLock lock = redissonClient.getLock(lockKey);
@@ -2706,10 +2710,13 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             // 订单金额
             TradeOrderTotalVO summary = createVO.getSummary();
             BigDecimal realAmount = summary.getRealMoney()==null?BigDecimal.ZERO:summary.getRealMoney()  ;
+            BigDecimal freeAmount = tradeOrderDO.getFreeAmount()==null?BigDecimal.ZERO:tradeOrderDO.getFreeAmount();
             BigDecimal orderMoney = summary.getOrderMoney();
             Long discountId = summary.getDiscountId();
             shipTradeOrderCreateReqVO.setAmount(orderMoney);
-            shipTradeOrderCreateReqVO.setPayAmount(realAmount);
+            //减去优惠金额
+            shipTradeOrderCreateReqVO.setPayAmount(realAmount.subtract(freeAmount));
+            shipTradeOrderCreateReqVO.setFreeAmount(freeAmount);
             if (createVO.getSummary().getDeposi() != null && shipTradeOrderCreateReqVO.getDeposi().compareTo(tradeOrderDO.getDeposi())!=0) {
                 // 判断定金金额是否发生变化,记录变更日志
                 shipTradeOrderCreateReqVO.setDeposiStatus(1);
@@ -2889,13 +2896,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             if (!CollUtil.isEmpty(createVO.getPolicyList())) {
                 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;
@@ -2923,24 +2923,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 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());
@@ -2980,7 +2962,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
             insertHisOrderPolicy(orderPolicyList,orderId);
             List<OrderPolicyDO> orderPolicyDOList = new ArrayList<>();
-            List<TradeOrderPolicyReqVO> policyList = createVO.getPolicyList();
+
             List<OrderPolicyDO> insetOrderPolicyDOList = new ArrayList<>();
             List<OrderPolicyDO> updateOrderPolicyDOList = new ArrayList<>();
             if (policyList != null) {
@@ -3029,9 +3011,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 }
                 if (!orderPolicyDOList.isEmpty()) {
                     //TODO: 判断优惠政策是否需要审核
-                    if(orderPolicyList.isEmpty()){
-                        isAudit = true;
-                    }else {
+                    if(!orderPolicyList.isEmpty()){
                         String changedFields11 = com.yc.ship.module.trade.utils.BeanUtils.getChangedFields(orderPolicyList.get(0), orderPolicyDOList.get(0));
                         if (StringUtils.isEmpty(changedFields11)) {
                             isAudit = false;
@@ -3040,7 +3020,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                             }
                         }
                     }
-//                    orderPolicyMapper.insertBatch(orderPolicyDOList);
                 }
             }
             int oldSize = orderPolicyList==null?0:orderPolicyList.size();
@@ -3048,13 +3027,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             if ((!CollUtil.isEmpty(createVO.getPolicyList()) &&isAudit)||oldSize!=newSize) {
                 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);
             }
 
             //1.取消订单,四级审核,销售-计调-运营主管-营销经理
@@ -3067,7 +3039,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             if (auditType > 0 && createVO.getIsYd() != 1) {
                 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("audit_user", auditUserDO == null ? "" : auditUserDO.getAuditUser()).set("order_status", TradeOrderStatusEnum.TRANSFER.getStatus()).set("audit_status", 1).set("confirm_type",1).eq("id", neworderId));
-                log.error(orderNo+">>>>>>>>>>>>>>>>>>>>>> motifyOtcOrder 进入审核流程 <<<<<<<<<<<<<<<<<<<<<<"+auditType+";"+(auditUserDO == null ? "" : auditUserDO.getAuditUser()));
+                log.error("{}>>>>>>>>>>>>>>>>>>>>>> motifyOtcOrder 进入审核流程 <<<<<<<<<<<<<<<<<<<<<<{};{}", orderNo, auditType, auditUserDO == null ? "" : auditUserDO.getAuditUser());
                 msg = "修改提交成功,等待管理员审核";
                 neworderStatus = TradeOrderStatusEnum.TRANSFER.getStatus();
                 TradeOrderBindDO tradeOrderBindDO = new TradeOrderBindDO();
@@ -3089,7 +3061,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 tradeOrderBindDO.setCustom("");
                 tradeOrderBindDO.setRemark(desc);
                 shipTradeOrderCreateReqVO.setTradeOrderBindDO(tradeOrderBindDO);
-                log.error(orderNo+">>>>>>>>>>>>>>>>>>>>>> motifyOtcOrder 进入审核流程2 <<<<<<<<<<<<<<<<<<<<<<"+3+";"+(auditUserDO == null ? "" : auditUserDO.getAuditUser()));
+                log.error("{}>>>>>>>>>>>>>>>>>>>>>> motifyOtcOrder 进入审核流程2 <<<<<<<<<<<<<<<<<<<<<<" + 3 + ";{}", orderNo, auditUserDO == null ? "" : auditUserDO.getAuditUser());
             }
             if(Objects.equals(TradeOrderStatusEnum.TRANSFER.getStatus(), neworderStatus)) {
                 TradeOrderLogDO tradeOrderLogDO = new TradeOrderLogDO();
@@ -3136,7 +3108,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
             //支付倒计时--不超时,有预订单
             Map<String, Object> append = TradeOrderLogUtils.append("result", "订单修改成功");
-            if(StringUtils.isNotEmpty(desc) && Objects.equals(tradeOrderDO.getOrderStatus(), neworderStatus)){
+            if(StringUtils.isNotEmpty(desc) && !Objects.equals(tradeOrderDO.getOrderStatus(), neworderStatus)){
                 content = content + "," + desc;
             }
             append.put("content", content);