## 三阶段奖金生成;
This commit is contained in:
parent
d2a4c012c7
commit
90ed8f5c7c
|
@ -366,9 +366,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// TODO 处理升三阶段点位
|
||||
if (CollectionUtil.isNotEmpty(stageList)) {
|
||||
List<Long> stageMemberList = stageList.stream().map(CuMemberRetailDetail::getPkMember).collect(Collectors.toList());
|
||||
// 查询血缘会员明细数据(三段)
|
||||
// 查询血缘会员明细数据(三阶段)
|
||||
iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.THREE, stageMemberList);
|
||||
// 二阶段收益
|
||||
// 三阶段收益
|
||||
this.calculateStageIncomeTwoThree(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
||||
memberRangeExtMap, settleStartDate, rangeTableName, rangeDetailTableName, EBonusStage.THREE, stageList);
|
||||
}
|
||||
|
@ -1028,7 +1028,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 订单会员
|
||||
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(memberRetailDetail.getPkMember());
|
||||
if (null == sourceMember) {
|
||||
log.error("阶段收益处理失败,{}会员不存在. pkMember: {}", eBonusStage.getLabel(), memberRetailDetail.getPkMember());
|
||||
log.error("阶段收益处理失败,{} 会员不存在. pkMember: {}", eBonusStage.getLabel(), memberRetailDetail.getPkMember());
|
||||
return returnRetailDetailList;
|
||||
}
|
||||
|
||||
|
@ -1135,7 +1135,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
targetMember.getThreeDetailMap().put(threeRetailDetail.getChildNode(), threeRetailDetail);
|
||||
returnRetailDetailList.add(threeRetailDetail);
|
||||
} else if (EBonusStage.THREE.getValue() == bonusStageData.getStage()) {
|
||||
// TODO 三阶段需要赠送点位
|
||||
// TODO 三阶段填充满,判断是否需要赠送点位
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -339,12 +339,94 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
|||
break;
|
||||
}
|
||||
} else {
|
||||
// TODO 三阶段发放特殊处理
|
||||
// TODO 三阶段填充满,判断是否需要赠送点位
|
||||
// 三阶段发放特殊处理
|
||||
switch (point) {
|
||||
case BonusConstants.POINT_11:
|
||||
case BonusConstants.POINT_12:
|
||||
// 一阶段填满就给奖金
|
||||
if (targetRetailDetail.getThirdBonus1() < 1) {
|
||||
if (null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_11)
|
||||
&& null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_12)
|
||||
) {
|
||||
// 第一层满,需要发放奖金
|
||||
BonusStageData bonusStageData = BonusStageData.builder()
|
||||
.bonusIncome(BonusConstants.THREE_BONUS_1)
|
||||
.targetPkMember(targetRetailDetail.getPkMember())
|
||||
.targetChildNode(targetRetailDetail.getChildNode())
|
||||
.stage(eBonusStage.getValue())
|
||||
.stageNum(2)
|
||||
.build();
|
||||
bonusStageDataList.add(bonusStageData);
|
||||
// 第一层发放过1次
|
||||
targetRetailDetail.setThirdBonus1(1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BonusConstants.POINT_21:
|
||||
case BonusConstants.POINT_22:
|
||||
case BonusConstants.POINT_23:
|
||||
case BonusConstants.POINT_24:
|
||||
// 二阶段填满就给奖金
|
||||
if (targetRetailDetail.getThirdBonus2() < 1) {
|
||||
if (null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_21)
|
||||
&& null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_22)
|
||||
&& null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_23)
|
||||
&& null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + BonusConstants.POINT_24)
|
||||
) {
|
||||
// 第二层满,需要发放奖金
|
||||
BonusStageData bonusStageData = BonusStageData.builder()
|
||||
.bonusIncome(BonusConstants.THREE_BONUS_2)
|
||||
.targetPkMember(targetRetailDetail.getPkMember())
|
||||
.targetChildNode(targetRetailDetail.getChildNode())
|
||||
.stage(eBonusStage.getValue())
|
||||
.stageNum(4)
|
||||
.build();
|
||||
bonusStageDataList.add(bonusStageData);
|
||||
// 第二层发放过1次
|
||||
targetRetailDetail.setThirdBonus2(1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BonusConstants.POINT_31:
|
||||
case BonusConstants.POINT_32:
|
||||
case BonusConstants.POINT_33:
|
||||
case BonusConstants.POINT_34:
|
||||
case BonusConstants.POINT_35:
|
||||
case BonusConstants.POINT_36:
|
||||
case BonusConstants.POINT_37:
|
||||
case BonusConstants.POINT_38:
|
||||
// 三阶段填每个点位都给奖金,8个全满给的多
|
||||
if (targetRetailDetail.getThirdBonus3() < 8) {
|
||||
int tmpInt = 0;
|
||||
for (String suffix : BonusConstants.THREE_FIELD_LIST) {
|
||||
if (null != ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + suffix)) {
|
||||
tmpInt += 1;
|
||||
}
|
||||
}
|
||||
if (tmpInt - targetRetailDetail.getThirdBonus3() == 1) {
|
||||
// 默认第三层前7个点位奖金
|
||||
BigDecimal bonus = BonusConstants.THREE_BONUS_3;
|
||||
if (tmpInt == 8) {
|
||||
// 第三层第8个点位
|
||||
bonus = BonusConstants.THREE_BONUS_38;
|
||||
|
||||
// 三层全满
|
||||
targetRetailDetail.setStageStatus(EBonusStageStatus.YES.getValue());
|
||||
targetRetailDetail.setStageDate(settleDate);
|
||||
// TODO 三阶段填充满,判断是否需要赠送点位
|
||||
|
||||
}
|
||||
BonusStageData bonusStageData = BonusStageData.builder()
|
||||
.bonusIncome(bonus)
|
||||
.targetPkMember(targetRetailDetail.getPkMember())
|
||||
.targetChildNode(targetRetailDetail.getChildNode())
|
||||
.stage(eBonusStage.getValue())
|
||||
.stageNum(tmpInt)
|
||||
.build();
|
||||
bonusStageDataList.add(bonusStageData);
|
||||
targetRetailDetail.setThirdBonus3(tmpInt);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,8 +52,11 @@ public class BonusConstants {
|
|||
public static final String POINT_37 = "37";
|
||||
public static final String POINT_38 = "38";
|
||||
|
||||
// 全部字段
|
||||
public static final List<String> FIELD_LIST = Arrays.asList(POINT_11, POINT_12, POINT_21, POINT_22, POINT_23, POINT_24,
|
||||
POINT_31, POINT_32, POINT_33, POINT_34, POINT_35, POINT_36, POINT_37, POINT_38);
|
||||
// 第三层字段
|
||||
public static final List<String> THREE_FIELD_LIST = Arrays.asList(POINT_31, POINT_32, POINT_33, POINT_34, POINT_35, POINT_36, POINT_37, POINT_38);
|
||||
|
||||
// 会员ID字段
|
||||
public static final String POINT_MEMBER_FIELD_NAME = "pointMember";
|
||||
|
|
|
@ -385,7 +385,10 @@
|
|||
#{item.creationTime, jdbcType=TIMESTAMP} creation_time,
|
||||
#{item.pointFirst, jdbcType=NUMERIC} point_first, #{item.pointMemberFirst, jdbcType=NUMERIC} point_member_first,
|
||||
#{item.pointSecond, jdbcType=NUMERIC} point_second, #{item.pointMemberSecond, jdbcType=NUMERIC} point_member_second,
|
||||
#{item.pointThird, jdbcType=NUMERIC} point_third, #{item.pointMemberThird, jdbcType=NUMERIC} point_member_third
|
||||
#{item.pointThird, jdbcType=NUMERIC} point_third, #{item.pointMemberThird, jdbcType=NUMERIC} point_member_third,
|
||||
#{item.thirdBonus1, jdbcType=NUMERIC} third_bonus_1,
|
||||
#{item.thirdBonus2, jdbcType=NUMERIC} third_bonus_2,
|
||||
#{item.thirdBonus3, jdbcType=NUMERIC} third_bonus_2
|
||||
from dual
|
||||
</foreach>
|
||||
) b
|
||||
|
@ -411,7 +414,8 @@
|
|||
creation_time,
|
||||
point_first, point_member_first,
|
||||
point_second, point_member_second,
|
||||
point_third, point_member_third)
|
||||
point_third, point_member_third,
|
||||
third_bonus_1, third_bonus_2, third_bonus_3)
|
||||
values (b.pk_member, b.child_node, b.pk_parent,
|
||||
b.stage, b.stage_status, b.stage_date,
|
||||
b.point_11, b.point_12,
|
||||
|
@ -432,7 +436,8 @@
|
|||
b.creation_time,
|
||||
b.point_first, b.point_member_first,
|
||||
b.point_second, b.point_member_second,
|
||||
b.point_third, b.point_member_third)
|
||||
b.point_third, b.point_member_third,
|
||||
b.third_bonus_1, b.third_bonus_2, b.third_bonus_3)
|
||||
when matched then
|
||||
update set
|
||||
a.stage = b.stage, a.stage_status = b.stage_status, a.stage_date = b.stage_date,
|
||||
|
@ -454,7 +459,8 @@
|
|||
a.creation_time = b.creation_time,
|
||||
a.point_first = b.point_first, a.point_member_first = b.point_member_first,
|
||||
a.point_second = b.point_second, a.point_member_second = b.point_member_second,
|
||||
a.point_third = b.point_third, a.point_member_third = b.point_member_third
|
||||
a.point_third = b.point_third, a.point_member_third = b.point_member_third,
|
||||
a.third_bonus_1 = b.third_bonus_1, a.third_bonus_2 = b.third_bonus_2, a.third_bonus_3 = b.third_bonus_3
|
||||
</update>
|
||||
|
||||
<!-- 当前网体更新极差秒接表 -->
|
||||
|
|
Loading…
Reference in New Issue