## 直推升级撤单处理等级;
This commit is contained in:
		
							parent
							
								
									491655b6b8
								
							
						
					
					
						commit
						71c74fecca
					
				| 
						 | 
					@ -703,8 +703,6 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
				
			||||||
        Date nowDate = new Date();
 | 
					        Date nowDate = new Date();
 | 
				
			||||||
        // 订单信息
 | 
					        // 订单信息
 | 
				
			||||||
        SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
 | 
					        SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
 | 
				
			||||||
        // 订单ID
 | 
					 | 
				
			||||||
        Long pkOrderId = saOrderExt.getPkId();
 | 
					 | 
				
			||||||
        // 推荐人
 | 
					        // 推荐人
 | 
				
			||||||
        Long pkMember = saOrderExt.getPkReference();
 | 
					        Long pkMember = saOrderExt.getPkReference();
 | 
				
			||||||
        // 订单年月
 | 
					        // 订单年月
 | 
				
			||||||
| 
						 | 
					@ -735,42 +733,59 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
				
			||||||
                        .pkSettleGrade(referenceMember.getPkSettleGrade())
 | 
					                        .pkSettleGrade(referenceMember.getPkSettleGrade())
 | 
				
			||||||
                        .build();
 | 
					                        .build();
 | 
				
			||||||
                iMemberServiceApi.reduceMemberLevel(cuMember, recomUpgradeRecord.getPkOrderId());
 | 
					                iMemberServiceApi.reduceMemberLevel(cuMember, recomUpgradeRecord.getPkOrderId());
 | 
				
			||||||
            } else {
 | 
					                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);
 | 
					 | 
				
			||||||
                iMemberServiceApi.changeMemberLevel(saOrderExt, newOrder);
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            // 活动基础配置
 | 
				
			||||||
 | 
					            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