## 三阶段奖金生成;
This commit is contained in:
parent
d2a4c012c7
commit
90ed8f5c7c
|
@ -366,9 +366,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// TODO 处理升三阶段点位
|
// TODO 处理升三阶段点位
|
||||||
if (CollectionUtil.isNotEmpty(stageList)) {
|
if (CollectionUtil.isNotEmpty(stageList)) {
|
||||||
List<Long> stageMemberList = stageList.stream().map(CuMemberRetailDetail::getPkMember).collect(Collectors.toList());
|
List<Long> stageMemberList = stageList.stream().map(CuMemberRetailDetail::getPkMember).collect(Collectors.toList());
|
||||||
// 查询血缘会员明细数据(三段)
|
// 查询血缘会员明细数据(三阶段)
|
||||||
iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.THREE, stageMemberList);
|
iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.THREE, stageMemberList);
|
||||||
// 二阶段收益
|
// 三阶段收益
|
||||||
this.calculateStageIncomeTwoThree(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
this.calculateStageIncomeTwoThree(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
||||||
memberRangeExtMap, settleStartDate, rangeTableName, rangeDetailTableName, EBonusStage.THREE, stageList);
|
memberRangeExtMap, settleStartDate, rangeTableName, rangeDetailTableName, EBonusStage.THREE, stageList);
|
||||||
}
|
}
|
||||||
|
@ -1028,7 +1028,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
// 订单会员
|
// 订单会员
|
||||||
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(memberRetailDetail.getPkMember());
|
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(memberRetailDetail.getPkMember());
|
||||||
if (null == sourceMember) {
|
if (null == sourceMember) {
|
||||||
log.error("阶段收益处理失败,{}会员不存在. pkMember: {}", eBonusStage.getLabel(), memberRetailDetail.getPkMember());
|
log.error("阶段收益处理失败,{} 会员不存在. pkMember: {}", eBonusStage.getLabel(), memberRetailDetail.getPkMember());
|
||||||
return returnRetailDetailList;
|
return returnRetailDetailList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1135,7 +1135,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
||||||
targetMember.getThreeDetailMap().put(threeRetailDetail.getChildNode(), threeRetailDetail);
|
targetMember.getThreeDetailMap().put(threeRetailDetail.getChildNode(), threeRetailDetail);
|
||||||
returnRetailDetailList.add(threeRetailDetail);
|
returnRetailDetailList.add(threeRetailDetail);
|
||||||
} else if (EBonusStage.THREE.getValue() == bonusStageData.getStage()) {
|
} else if (EBonusStage.THREE.getValue() == bonusStageData.getStage()) {
|
||||||
// TODO 三阶段需要赠送点位
|
// TODO 三阶段填充满,判断是否需要赠送点位
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -339,12 +339,94 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl<CuMemberBonusStag
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// TODO 三阶段发放特殊处理
|
// 三阶段发放特殊处理
|
||||||
// TODO 三阶段填充满,判断是否需要赠送点位
|
|
||||||
switch (point) {
|
switch (point) {
|
||||||
case BonusConstants.POINT_11:
|
case BonusConstants.POINT_11:
|
||||||
case BonusConstants.POINT_12:
|
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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,8 +52,11 @@ public class BonusConstants {
|
||||||
public static final String POINT_37 = "37";
|
public static final String POINT_37 = "37";
|
||||||
public static final String POINT_38 = "38";
|
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,
|
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);
|
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字段
|
// 会员ID字段
|
||||||
public static final String POINT_MEMBER_FIELD_NAME = "pointMember";
|
public static final String POINT_MEMBER_FIELD_NAME = "pointMember";
|
||||||
|
|
|
@ -385,7 +385,10 @@
|
||||||
#{item.creationTime, jdbcType=TIMESTAMP} creation_time,
|
#{item.creationTime, jdbcType=TIMESTAMP} creation_time,
|
||||||
#{item.pointFirst, jdbcType=NUMERIC} point_first, #{item.pointMemberFirst, jdbcType=NUMERIC} point_member_first,
|
#{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.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
|
from dual
|
||||||
</foreach>
|
</foreach>
|
||||||
) b
|
) b
|
||||||
|
@ -411,7 +414,8 @@
|
||||||
creation_time,
|
creation_time,
|
||||||
point_first, point_member_first,
|
point_first, point_member_first,
|
||||||
point_second, point_member_second,
|
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,
|
values (b.pk_member, b.child_node, b.pk_parent,
|
||||||
b.stage, b.stage_status, b.stage_date,
|
b.stage, b.stage_status, b.stage_date,
|
||||||
b.point_11, b.point_12,
|
b.point_11, b.point_12,
|
||||||
|
@ -432,7 +436,8 @@
|
||||||
b.creation_time,
|
b.creation_time,
|
||||||
b.point_first, b.point_member_first,
|
b.point_first, b.point_member_first,
|
||||||
b.point_second, b.point_member_second,
|
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
|
when matched then
|
||||||
update set
|
update set
|
||||||
a.stage = b.stage, a.stage_status = b.stage_status, a.stage_date = b.stage_date,
|
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.creation_time = b.creation_time,
|
||||||
a.point_first = b.point_first, a.point_member_first = b.point_member_first,
|
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_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>
|
</update>
|
||||||
|
|
||||||
<!-- 当前网体更新极差秒接表 -->
|
<!-- 当前网体更新极差秒接表 -->
|
||||||
|
|
Loading…
Reference in New Issue