## 直推升级撤单处理等级;
This commit is contained in:
		
							parent
							
								
									491655b6b8
								
							
						
					
					
						commit
						71c74fecca
					
				| 
						 | 
				
			
			@ -703,8 +703,6 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
			
		|||
        Date nowDate = new Date();
 | 
			
		||||
        // 订单信息
 | 
			
		||||
        SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
 | 
			
		||||
        // 订单ID
 | 
			
		||||
        Long pkOrderId = saOrderExt.getPkId();
 | 
			
		||||
        // 推荐人
 | 
			
		||||
        Long pkMember = saOrderExt.getPkReference();
 | 
			
		||||
        // 订单年月
 | 
			
		||||
| 
						 | 
				
			
			@ -735,42 +733,59 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
			
		|||
                        .pkSettleGrade(referenceMember.getPkSettleGrade())
 | 
			
		||||
                        .build();
 | 
			
		||||
                iMemberServiceApi.reduceMemberLevel(cuMember, recomUpgradeRecord.getPkOrderId());
 | 
			
		||||
            } else {
 | 
			
		||||
                // 活动基础配置
 | 
			
		||||
                AcBaseConfig baseConfig = iAcBaseConfigService.getById(recomUpgradeRecord.getPkBaseId());
 | 
			
		||||
                // 活动基础配置
 | 
			
		||||
                AcRecomUpgradeRuleConfig upgradeRuleConfig = iAcRecomUpgradeRuleConfigService.getById(recomUpgradeRecord.getPkRuleId());
 | 
			
		||||
                // 查询订单时间范围
 | 
			
		||||
                // 默认活动开始时间
 | 
			
		||||
                Date startTime = baseConfig.getActStartDate();
 | 
			
		||||
                // 默认活动结束时间
 | 
			
		||||
                Date endTime = baseConfig.getActEndDate();
 | 
			
		||||
                // 当月第一天
 | 
			
		||||
                Date monthFirst = DateUtils.getFirstDayOfMonth(nowDate);
 | 
			
		||||
                if (monthFirst.compareTo(startTime) > 0) {
 | 
			
		||||
                    startTime = monthFirst;
 | 
			
		||||
                }
 | 
			
		||||
                // 当月最后一天
 | 
			
		||||
                Date monthLast = DateUtils.getLastDayOfMonth(nowDate);
 | 
			
		||||
                if (monthLast.compareTo(endTime) < 0) {
 | 
			
		||||
                    endTime = monthLast;
 | 
			
		||||
                }
 | 
			
		||||
                List<SaOrder> recomOrderList = iAcRecomUpgradeRecordService.listRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime);
 | 
			
		||||
                // 校验推荐人是否可以升级
 | 
			
		||||
                if (CollectionUtil.isEmpty(recomOrderList)
 | 
			
		||||
                        || recomOrderList.size() != upgradeRuleConfig.getRecommendNumber()) {
 | 
			
		||||
                    // 订单撤单后,目前订单不够升级了,需要降级
 | 
			
		||||
                    CuMember cuMember = CuMember.builder()
 | 
			
		||||
                            .pkId(pkMember)
 | 
			
		||||
                            .pkSettleGrade(recomUpgradeRecord.getPkSettleGrade())
 | 
			
		||||
                            .build();
 | 
			
		||||
                    iMemberServiceApi.reduceMemberLevel(cuMember, recomUpgradeRecord.getPkOrderId());
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
                // 足够升级,更新升级记录时间
 | 
			
		||||
                SaOrder newOrder = recomOrderList.get(recomOrderList.size() - 1);
 | 
			
		||||
                iMemberServiceApi.changeMemberLevel(saOrderExt, newOrder);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            // 活动基础配置
 | 
			
		||||
            AcBaseConfig baseConfig = iAcBaseConfigService.getById(recomUpgradeRecord.getPkBaseId());
 | 
			
		||||
            // 活动基础配置
 | 
			
		||||
            AcRecomUpgradeRuleConfig upgradeRuleConfig = iAcRecomUpgradeRuleConfigService.getById(recomUpgradeRecord.getPkRuleId());
 | 
			
		||||
            // 查询订单时间范围
 | 
			
		||||
            // 默认活动开始时间
 | 
			
		||||
            Date startTime = baseConfig.getActStartDate();
 | 
			
		||||
            // 默认活动结束时间
 | 
			
		||||
            Date endTime = baseConfig.getActEndDate();
 | 
			
		||||
            // 当月第一天
 | 
			
		||||
            Date monthFirst = DateUtils.getFirstDayOfMonth(nowDate);
 | 
			
		||||
            if (monthFirst.compareTo(startTime) > 0) {
 | 
			
		||||
                startTime = monthFirst;
 | 
			
		||||
            }
 | 
			
		||||
            // 当月最后一天
 | 
			
		||||
            Date monthLast = DateUtils.getLastDayOfMonth(nowDate);
 | 
			
		||||
            if (monthLast.compareTo(endTime) < 0) {
 | 
			
		||||
                endTime = monthLast;
 | 
			
		||||
            }
 | 
			
		||||
            List<SaOrder> recomOrderList = iAcRecomUpgradeRecordService.listRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime);
 | 
			
		||||
            // 校验推荐人是否可以升级
 | 
			
		||||
            if (CollectionUtil.isEmpty(recomOrderList)
 | 
			
		||||
                    || recomOrderList.size() != upgradeRuleConfig.getRecommendNumber()) {
 | 
			
		||||
                // 订单撤单后,目前订单不够升级了,需要降级
 | 
			
		||||
                CuMember cuMember = CuMember.builder()
 | 
			
		||||
                        .pkId(pkMember)
 | 
			
		||||
                        .pkSettleGrade(recomUpgradeRecord.getPkSettleGrade())
 | 
			
		||||
                        .build();
 | 
			
		||||
                iMemberServiceApi.reduceMemberLevel(cuMember, recomUpgradeRecord.getPkOrderId());
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // 足够升级,更新升级记录时间
 | 
			
		||||
            SaOrder newOrder = recomOrderList.get(recomOrderList.size() - 1);
 | 
			
		||||
 | 
			
		||||
            // 封装规则升级记录
 | 
			
		||||
            AcRecomUpgradeRecord newUpgradeRecord = AcRecomUpgradeRecord.builder()
 | 
			
		||||
                    .pkBaseId(baseConfig.getPkId())
 | 
			
		||||
                    .pkRuleId(upgradeRuleConfig.getPkId())
 | 
			
		||||
                    .pkMember(pkMember)
 | 
			
		||||
                    .pkSettleGrade(recomUpgradeRecord.getPkSettleGrade())
 | 
			
		||||
                    .pkRecommendGrade(recomUpgradeRecord.getPkRecommendGrade())
 | 
			
		||||
                    .pkOrderId(newOrder.getPkId())
 | 
			
		||||
                    .upgradeTime(upgradeTime)
 | 
			
		||||
                    .build();
 | 
			
		||||
            newUpgradeRecord.setPkCreator(referenceMember.getPkId());
 | 
			
		||||
            newUpgradeRecord.setPkCountry(referenceMember.getPkSettleCountry());
 | 
			
		||||
            iAcRecomUpgradeRecordService.save(newUpgradeRecord);
 | 
			
		||||
 | 
			
		||||
            saOrderExt.setPkId(recomUpgradeRecord.getPkOrderId());
 | 
			
		||||
            iMemberServiceApi.changeMemberLevel(saOrderExt, newOrder);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue