## 赠点如果直推下没有可以填充的,则按血缘上逻辑走;
This commit is contained in:
parent
a41cd10d4d
commit
1fea92b74b
|
@ -1106,7 +1106,62 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 阶段奖金处理列表
|
||||
List<BonusStageData> bonusStageDataList = new ArrayList<>();
|
||||
|
||||
if (EBonusStageType.NORMAL.getValue() == newRetailDetail.getPointType()) {
|
||||
boolean giftBool = false;
|
||||
if (EBonusStageType.GIFT.getValue() == newRetailDetail.getPointType()) {
|
||||
// 赠送点位处理,赠送点位给自己直推会员轮流布点
|
||||
iCuMemberRetailDetailService.listChildRetailDetail(rangeTableName, rangeDetailTableName, memberRangeExtMap,
|
||||
sourceMember, eBonusStage);
|
||||
// 判断是不是都已经填充过一轮了,如果是则需要重新开始从第一个开始填充
|
||||
LinkedHashMap<Date, CuMemberRetailRangeExt> childRetailMap = sourceMember.getChildRetailMap();
|
||||
if (childRetailMap.size() > 0) {
|
||||
// 获取最后一条数据 key
|
||||
Date lastKey = new ArrayList<>(childRetailMap.keySet()).get(childRetailMap.size() - 1);
|
||||
// 获取最新的会员注册时间,如果没有则设置一个初始化时间
|
||||
Date giftPayTime = sourceMember.getGiftPayTime();
|
||||
if (null == giftPayTime || giftPayTime.compareTo(lastKey) == 0) {
|
||||
giftPayTime = BonusConstants.GIFT_PAY_TIME;
|
||||
}
|
||||
|
||||
for (Date keyDate : childRetailMap.keySet()) {
|
||||
if (keyDate.compareTo(giftPayTime) > 0) {
|
||||
// 当前会员注册比之前的要晚,则顺序进行填充
|
||||
giftPayTime = keyDate;
|
||||
// 需要填充的直推会员
|
||||
CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate);
|
||||
// 推荐人一阶段子点位列表
|
||||
LinkedHashMap<Integer, CuMemberRetailDetail> parentDetailList = targetMember.getOneDetailMap();
|
||||
|
||||
// 推荐人第一层点位处理
|
||||
giftBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
||||
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
||||
if (giftBool) {
|
||||
// 在第一层找到并填充点位,就开始下一个点位的处理
|
||||
break;
|
||||
}
|
||||
// 推荐人第二层点位处理
|
||||
giftBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
||||
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
||||
if (giftBool) {
|
||||
// 在第二层找到并填充点位,就开始下一个点位的处理
|
||||
break;
|
||||
}
|
||||
// 推荐人第三层点位处理
|
||||
giftBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
||||
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
||||
if (giftBool) {
|
||||
// 在第三层找到并填充点位,就开始下一个点位的处理
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (giftBool) {
|
||||
sourceMember.setGiftPayTime(giftPayTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (EBonusStageType.NORMAL.getValue() == newRetailDetail.getPointType()
|
||||
|| !giftBool) {
|
||||
// 普通点位处理
|
||||
// 推荐人
|
||||
Long pkParent = sourceMember.getPkParent();
|
||||
|
@ -1154,56 +1209,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 赠送点位处理,赠送点位给自己直推会员轮流布点
|
||||
iCuMemberRetailDetailService.listChildRetailDetail(rangeTableName, rangeDetailTableName, memberRangeExtMap,
|
||||
sourceMember, eBonusStage);
|
||||
// 判断是不是都已经填充过一轮了,如果是则需要重新开始从第一个开始填充
|
||||
LinkedHashMap<Date, CuMemberRetailRangeExt> childRetailMap = sourceMember.getChildRetailMap();
|
||||
if (childRetailMap.size() > 0) {
|
||||
// 获取最后一条数据 key
|
||||
Date lastKey = new ArrayList<>(childRetailMap.keySet()).get(childRetailMap.size() - 1);
|
||||
// 获取最新的会员注册时间,如果没有则设置一个初始化时间
|
||||
Date giftPayTime = sourceMember.getGiftPayTime();
|
||||
if (null == giftPayTime || giftPayTime.compareTo(lastKey) == 0) {
|
||||
giftPayTime = BonusConstants.GIFT_PAY_TIME;
|
||||
}
|
||||
|
||||
for (Date keyDate : childRetailMap.keySet()) {
|
||||
if (keyDate.compareTo(giftPayTime) > 0) {
|
||||
// 当前会员注册比之前的要晚,则顺序进行填充
|
||||
giftPayTime = keyDate;
|
||||
|
||||
// 需要填充的直推会员
|
||||
CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate);
|
||||
// 推荐人一阶段子点位列表
|
||||
LinkedHashMap<Integer, CuMemberRetailDetail> parentDetailList = targetMember.getOneDetailMap();
|
||||
|
||||
// 推荐人第一层点位处理
|
||||
boolean forBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
||||
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
||||
if (forBool) {
|
||||
// 在第一层找到并填充点位,就开始下一个点位的处理
|
||||
break;
|
||||
}
|
||||
// 推荐人第二层点位处理
|
||||
forBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
||||
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
||||
if (forBool) {
|
||||
// 在第二层找到并填充点位,就开始下一个点位的处理
|
||||
break;
|
||||
}
|
||||
// 推荐人第三层点位处理
|
||||
forBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName,
|
||||
memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList);
|
||||
if (forBool) {
|
||||
// 在第三层找到并填充点位,就开始下一个点位的处理
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
sourceMember.setGiftPayTime(giftPayTime);
|
||||
}
|
||||
}
|
||||
|
||||
if (CollectionUtil.isNotEmpty(bonusStageDataList)) {
|
||||
|
|
Loading…
Reference in New Issue