## 直推升级撤单处理等级;

This commit is contained in:
cabbage 2025-09-24 14:53:29 +08:00
parent ee86c4de8c
commit fffe667561
1 changed files with 52 additions and 37 deletions

View File

@ -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);
}
}