Compare commits
	
		
			2 Commits
		
	
	
		
			2735fc9ca1
			...
			93926f6932
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						93926f6932 | |
| 
							
							
								
								 | 
						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