Compare commits
	
		
			2 Commits
		
	
	
		
			0797ca19c7
			...
			158751fc38
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						158751fc38 | |
| 
							
							
								
								 | 
						6ff4fd3c1a | 
| 
						 | 
					@ -261,9 +261,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
        // 结算期间日期后一天
 | 
					        // 结算期间日期后一天
 | 
				
			||||||
        Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
 | 
					        Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 新零售订单(注册、复购)
 | 
					        // 订单(精品、甄选、商城、五折)
 | 
				
			||||||
        List<SaOrderExt> orderList = iBonusOrderService.listRetailSaOrder(settleStartDate, settleEndDate, null,
 | 
					        List<SaOrderExt> orderList = iBonusOrderService.listRetailSaOrder(settleStartDate, settleEndDate, null,
 | 
				
			||||||
                Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue()));
 | 
					                Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue(), EOrderType.DISCOUNT_ORDER.getValue()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 更新当月会员, 将昨天业绩更到到今天,更新当月会员考核结果,有消费的考核通过
 | 
					        // 更新当月会员, 将昨天业绩更到到今天,更新当月会员考核结果,有消费的考核通过
 | 
				
			||||||
        // 结算期间表
 | 
					        // 结算期间表
 | 
				
			||||||
| 
						 | 
					@ -308,12 +308,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
            List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
 | 
					            List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
 | 
				
			||||||
            // 直推收益、见点收益
 | 
					            // 直推收益、见点收益
 | 
				
			||||||
            List<CuMemberBonusPush> cuMemberBonusPushList = new ArrayList<>();
 | 
					            List<CuMemberBonusPush> cuMemberBonusPushList = new ArrayList<>();
 | 
				
			||||||
 | 
					            // 领导奖收益、平级奖收益
 | 
				
			||||||
 | 
					            List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
 | 
				
			||||||
            // 阶段收益
 | 
					            // 阶段收益
 | 
				
			||||||
            List<CuMemberBonusStage> cuMemberBonusStageList = new ArrayList<>();
 | 
					            List<CuMemberBonusStage> cuMemberBonusStageList = new ArrayList<>();
 | 
				
			||||||
            // 复购级差收益
 | 
					 | 
				
			||||||
            List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
 | 
					 | 
				
			||||||
            // 会员奖金明细
 | 
					 | 
				
			||||||
            List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (SaOrderExt saOrderExt : orderList) {
 | 
					            for (SaOrderExt saOrderExt : orderList) {
 | 
				
			||||||
                CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember());
 | 
					                CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember());
 | 
				
			||||||
| 
						 | 
					@ -342,30 +340,36 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                    sourceMember.setRegConsumeNewPv(sourceMember.getRegConsumeNewPv().add(orderAchieve));
 | 
					                    sourceMember.setRegConsumeNewPv(sourceMember.getRegConsumeNewPv().add(orderAchieve));
 | 
				
			||||||
                    sourceMember.setRegConsumeNewAmount(sourceMember.getRegConsumeNewAmount().add(orderAmount));
 | 
					                    sourceMember.setRegConsumeNewAmount(sourceMember.getRegConsumeNewAmount().add(orderAmount));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    // 直推收益 -- 来源订单金额,直推拿金额的10%
 | 
					 | 
				
			||||||
                    this.calculateDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt,
 | 
					 | 
				
			||||||
                            bonusConfigDTO, period, cuMemberBonusMap);
 | 
					 | 
				
			||||||
                    // 一阶段收益 -- 来源订单金额
 | 
					                    // 一阶段收益 -- 来源订单金额
 | 
				
			||||||
                    stageList.addAll(this.calculateStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
 | 
					                    stageList.addAll(this.calculateStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
 | 
				
			||||||
                            memberRangeExtMap, sourceMember, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName));
 | 
					                            memberRangeExtMap, sourceMember, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName));
 | 
				
			||||||
 | 
					                    // 直推收益 -- 来源订单金额,直推拿金额的10%
 | 
				
			||||||
                    // TODO 领导级差收益、平级收益 -- 来源PV
 | 
					                    this.calculateDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt,
 | 
				
			||||||
 | 
					                            bonusConfigDTO, period, cuMemberBonusMap);
 | 
				
			||||||
 | 
					                    // 领导级差收益、平级收益 -- 来源PV
 | 
				
			||||||
 | 
					                    this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period,
 | 
				
			||||||
 | 
					                            awardsMap, saOrderExt, sourceMember);
 | 
				
			||||||
                } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
 | 
					                } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
 | 
				
			||||||
                    // 商城专区
 | 
					                    // 商城专区
 | 
				
			||||||
                    sourceMember.setRepConsumeNewPv(sourceMember.getRepConsumeNewPv().add(orderAchieve));
 | 
					                    sourceMember.setRepConsumeNewPv(sourceMember.getRepConsumeNewPv().add(orderAchieve));
 | 
				
			||||||
                    sourceMember.setRepConsumeNewAmount(sourceMember.getRepConsumeNewAmount().add(orderAmount));
 | 
					                    sourceMember.setRepConsumeNewAmount(sourceMember.getRepConsumeNewAmount().add(orderAmount));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    // 见点收益 -- 来源订单业绩,血缘上20代,每代拿业绩的10%
 | 
					 | 
				
			||||||
                    this.calculateRepurDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt,
 | 
					 | 
				
			||||||
                            bonusConfigDTO, period, cuMemberBonusMap);
 | 
					 | 
				
			||||||
                    // 一阶段收益 -- 来源订单累计业绩
 | 
					                    // 一阶段收益 -- 来源订单累计业绩
 | 
				
			||||||
                    stageList.addAll(this.calculateStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
 | 
					                    stageList.addAll(this.calculateStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
 | 
				
			||||||
                            memberRangeExtMap, sourceMember, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName));
 | 
					                            memberRangeExtMap, sourceMember, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName));
 | 
				
			||||||
 | 
					                    // 见点收益 -- 来源订单业绩,血缘上20代,每代拿业绩的10%
 | 
				
			||||||
                    // TODO 领导级差收益、平级收益 -- 来源PV
 | 
					                    this.calculateRepurDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt,
 | 
				
			||||||
 | 
					                            bonusConfigDTO, period, cuMemberBonusMap);
 | 
				
			||||||
 | 
					                    // 领导级差收益、平级收益 -- 来源PV
 | 
				
			||||||
 | 
					                    this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period,
 | 
				
			||||||
 | 
					                            awardsMap, saOrderExt, sourceMember);
 | 
				
			||||||
 | 
					                } else if (EOrderType.DISCOUNT_ORDER.getValue() == saOrderExt.getOrderType()) {
 | 
				
			||||||
 | 
					                    // 五折专区
 | 
				
			||||||
 | 
					                    sourceMember.setRepConsumeNewPv(sourceMember.getRepConsumeNewPv().add(orderAchieve));
 | 
				
			||||||
 | 
					                    sourceMember.setRepConsumeNewAmount(sourceMember.getRepConsumeNewAmount().add(orderAmount));
 | 
				
			||||||
 | 
					                    // 领导级差收益 -- 来源PV
 | 
				
			||||||
 | 
					                    this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period,
 | 
				
			||||||
 | 
					                            awardsMap, saOrderExt, sourceMember);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -396,14 +400,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
            if (cuMemberBonusPushList.size() > 0) {
 | 
					            if (cuMemberBonusPushList.size() > 0) {
 | 
				
			||||||
                bonusRecordDetailVO.setCuMemberBonusPushList(cuMemberBonusPushList);
 | 
					                bonusRecordDetailVO.setCuMemberBonusPushList(cuMemberBonusPushList);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (cuMemberBonusStageList.size() > 0) {
 | 
					 | 
				
			||||||
                bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (cuMemberBonusRangeList.size() > 0) {
 | 
					            if (cuMemberBonusRangeList.size() > 0) {
 | 
				
			||||||
                bonusRecordDetailVO.setCuMemberBonusRangeList(cuMemberBonusRangeList);
 | 
					                bonusRecordDetailVO.setCuMemberBonusRangeList(cuMemberBonusRangeList);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (cuMemberBonusDetailList.size() > 0) {
 | 
					            if (cuMemberBonusStageList.size() > 0) {
 | 
				
			||||||
                bonusRecordDetailVO.setCuMemberBonusDetailList(cuMemberBonusDetailList);
 | 
					                bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (cuMemberAwardsList.size() > 0) {
 | 
					            if (cuMemberAwardsList.size() > 0) {
 | 
				
			||||||
                // 批量插入会员奖衔记录
 | 
					                // 批量插入会员奖衔记录
 | 
				
			||||||
| 
						 | 
					@ -1013,10 +1014,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
            int awardsValue = targetMember.getAwardsValue() + 5;
 | 
					            int awardsValue = targetMember.getAwardsValue() + 5;
 | 
				
			||||||
            if (retailAwardsMap.containsKey(awardsValue)) {
 | 
					            if (retailAwardsMap.containsKey(awardsValue)) {
 | 
				
			||||||
                BdAwards bdAwards = retailAwardsMap.get(awardsValue);
 | 
					                BdAwards bdAwards = retailAwardsMap.get(awardsValue);
 | 
				
			||||||
                // 先验证累计业绩
 | 
					
 | 
				
			||||||
                if (ComputeUtil.compareValue(targetMember.getTeamConsumePv(), bdAwards.getTotalCheck())) {
 | 
					                if (ComputeUtil.compareValue(targetMember.getTeamConsumePv(), bdAwards.getTotalCheck())) {
 | 
				
			||||||
                    // 团队累计业绩 >= 奖衔业绩
 | 
					                    // 团队累计业绩 >= 奖衔累计业绩
 | 
				
			||||||
                    // 再验证小区,计算小区业绩(拉取直推会员数据)
 | 
					 | 
				
			||||||
                    if (null == cuMemberRangeExtList) {
 | 
					                    if (null == cuMemberRangeExtList) {
 | 
				
			||||||
                        // 昨日结算表,查询会员直推数据
 | 
					                        // 昨日结算表,查询会员直推数据
 | 
				
			||||||
                        cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember());
 | 
					                        cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember());
 | 
				
			||||||
| 
						 | 
					@ -1034,11 +1034,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                            consumeBigPv = consumePv;
 | 
					                            consumeBigPv = consumePv;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					                    // 小区业绩 = 团队累计业绩 - 大区业绩
 | 
				
			||||||
                    // 小区业绩 = 团队累计消费业绩 - 大区业绩
 | 
					 | 
				
			||||||
                    BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv);
 | 
					                    BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv);
 | 
				
			||||||
                    if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) {
 | 
					                    if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) {
 | 
				
			||||||
                        // 小区业绩 >= 小区考核业绩
 | 
					                        // 小区业绩 >= 考核小区业绩
 | 
				
			||||||
                        if (bdAwards.getPlaceDeptNum() > 0) {
 | 
					                        if (bdAwards.getPlaceDeptNum() > 0) {
 | 
				
			||||||
                            // 验证每条血缘下,满足达标数量
 | 
					                            // 验证每条血缘下,满足达标数量
 | 
				
			||||||
                            List<Integer> checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(),
 | 
					                            List<Integer> checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(),
 | 
				
			||||||
| 
						 | 
					@ -1049,6 +1048,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                                targetMember.setAwardsValue(bdAwards.getAwardsValue());
 | 
					                                targetMember.setAwardsValue(bdAwards.getAwardsValue());
 | 
				
			||||||
                                continue;
 | 
					                                continue;
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					                        } else {
 | 
				
			||||||
 | 
					                            // 不需要考核血缘达标,直接给奖衔
 | 
				
			||||||
 | 
					                            cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards()));
 | 
				
			||||||
 | 
					                            targetMember.setPkAwards(bdAwards.getPkId());
 | 
				
			||||||
 | 
					                            targetMember.setAwardsValue(bdAwards.getAwardsValue());
 | 
				
			||||||
 | 
					                            continue;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					@ -1060,7 +1065,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 计算团队奖衔
 | 
					     * 计算团队奖衔
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public List<CuMemberAwards> calculateParentAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
 | 
					    private List<CuMemberAwards> calculateParentAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
 | 
				
			||||||
                                                       CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap) {
 | 
					                                                       CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap) {
 | 
				
			||||||
        // 会员奖衔升级列表
 | 
					        // 会员奖衔升级列表
 | 
				
			||||||
        List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
 | 
					        List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
 | 
				
			||||||
| 
						 | 
					@ -1101,14 +1106,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 计算领导奖、平级奖
 | 
					     * 计算领导奖、平级奖
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
 | 
					    private void calculateRetailRangeBonus(List<CuMemberBonusRange> cuMemberBonusRangeList, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
 | 
				
			||||||
                                                       BonusConfigDTO bonusConfigDTO, Integer period, Map<Integer, BdAwards> awardsMap,
 | 
					                                           Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, Integer period,
 | 
				
			||||||
                                                       SaOrderExt saOrderExt, CuMemberRetailRangeExt sourceMember) {
 | 
					                                           Map<Integer, BdAwards> awardsMap, SaOrderExt saOrderExt, CuMemberRetailRangeExt sourceMember) {
 | 
				
			||||||
        // 直推级差返回数据
 | 
					 | 
				
			||||||
        List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // 订单PV
 | 
					        // 订单PV
 | 
				
			||||||
        BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
 | 
					        BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
 | 
				
			||||||
 | 
					        if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
 | 
				
			||||||
 | 
					                || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
 | 
				
			||||||
 | 
					            // 精品专区、甄选专区,最大值为350PV超过的也算350PV
 | 
				
			||||||
 | 
					            if (orderAchieve.compareTo(BonusConstants.RANGE_BONUS_ACHIEVE) > 0) {
 | 
				
			||||||
 | 
					                orderAchieve = BonusConstants.RANGE_BONUS_ACHIEVE;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 领导奖从自己开始算
 | 
					        // 领导奖从自己开始算
 | 
				
			||||||
        long pkParent = sourceMember.getPkMember();
 | 
					        long pkParent = sourceMember.getPkMember();
 | 
				
			||||||
| 
						 | 
					@ -1148,8 +1157,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                // 当前会员奖衔值大于前一个奖衔值,会有领导奖级差
 | 
					                // 当前会员奖衔值大于前一个奖衔值,会有领导奖级差
 | 
				
			||||||
                beforeRangeRatio = bdAwards.getRangeRatio().subtract(beforeRangeRatio);
 | 
					                beforeRangeRatio = bdAwards.getRangeRatio().subtract(beforeRangeRatio);
 | 
				
			||||||
                rangeBonusIncome = orderAchieve.multiply(beforeRangeRatio);
 | 
					                rangeBonusIncome = orderAchieve.multiply(beforeRangeRatio);
 | 
				
			||||||
            } else if (EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue && beforeSameAlgebra < 3) {
 | 
					            } else if (EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue && beforeSameAlgebra < 3
 | 
				
			||||||
                // 前一个等级是皇冠大使,需要有3代平级
 | 
					                    && EOrderType.DISCOUNT_ORDER.getValue() != saOrderExt.getOrderType()) {
 | 
				
			||||||
 | 
					                // 前一个等级是皇冠大使,需要有3代平级(五折专区不走平级收益)
 | 
				
			||||||
                sameBonusIncome = orderAchieve.multiply(BonusConstants.SAME_LEVEL_RATIO).multiply(bdAwards.getSameLevelRatio());
 | 
					                sameBonusIncome = orderAchieve.multiply(BonusConstants.SAME_LEVEL_RATIO).multiply(bdAwards.getSameLevelRatio());
 | 
				
			||||||
                beforeSameAlgebra += 1;
 | 
					                beforeSameAlgebra += 1;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -1170,7 +1180,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                    cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
 | 
					                    cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome()));
 | 
				
			||||||
                    setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
 | 
					                    setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                memberBonusRangeList.add(cuMemberBonusRange);
 | 
					                cuMemberBonusRangeList.add(cuMemberBonusRange);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (null != sameBonusIncome) {
 | 
					            if (null != sameBonusIncome) {
 | 
				
			||||||
                // 处理平级奖收益
 | 
					                // 处理平级奖收益
 | 
				
			||||||
| 
						 | 
					@ -1188,10 +1198,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                    cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), sameLevelMemberBonusRange.getPretaxIncome()));
 | 
					                    cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), sameLevelMemberBonusRange.getPretaxIncome()));
 | 
				
			||||||
                    setRetailTotal(bdBonusDeduct, cuMemberBonus, sameLevelMemberBonusRange);
 | 
					                    setRetailTotal(bdBonusDeduct, cuMemberBonus, sameLevelMemberBonusRange);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                memberBonusRangeList.add(sameLevelMemberBonusRange);
 | 
					                cuMemberBonusRangeList.add(sameLevelMemberBonusRange);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return memberBonusRangeList;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -218,47 +218,34 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
 | 
				
			||||||
    void insertCuMemberBonus(String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) {
 | 
					    void insertCuMemberBonus(String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) {
 | 
				
			||||||
        iCuMemberBonusPushService.deleteCuMemberBonusPush(period);
 | 
					        iCuMemberBonusPushService.deleteCuMemberBonusPush(period);
 | 
				
			||||||
        iCuMemberBonusStageService.deleteCuMemberBonusStage(period);
 | 
					        iCuMemberBonusStageService.deleteCuMemberBonusStage(period);
 | 
				
			||||||
        iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
 | 
					 | 
				
			||||||
        iCuMemberBonusRangeService.deleteCuMemberBonusRange(period);
 | 
					        iCuMemberBonusRangeService.deleteCuMemberBonusRange(period);
 | 
				
			||||||
        iCuMemberBonusService.deleteCuMemberBonus(period);
 | 
					        iCuMemberBonusService.deleteCuMemberBonus(period);
 | 
				
			||||||
        if (cuMemberBonusMap.size() == 0) {
 | 
					        if (cuMemberBonusMap.size() == 0) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        List<CuMemberBonusPush> batchMemberBonusPushList = new ArrayList<>();
 | 
					
 | 
				
			||||||
        List<CuMemberBonusDetail> batchMemberBonusDetailList = new ArrayList<>();
 | 
					 | 
				
			||||||
        List<CuMemberBonusRange> batchMemberBonusRangeList = new ArrayList<>();
 | 
					 | 
				
			||||||
        List<CuMemberBonus> cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap);
 | 
					        List<CuMemberBonus> cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap);
 | 
				
			||||||
        List<CuMemberBonusPush> cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList();
 | 
					        List<CuMemberBonusPush> cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList();
 | 
				
			||||||
        List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusRecordDetailVO.getCuMemberBonusDetailList();
 | 
					 | 
				
			||||||
        List<CuMemberBonusRange> cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList();
 | 
					        List<CuMemberBonusRange> cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList();
 | 
				
			||||||
        // 阶段收益奖金明细
 | 
					 | 
				
			||||||
        List<CuMemberBonusStage> cuMemberBonusStageList = bonusRecordDetailVO.getCuMemberBonusStageList();
 | 
					        List<CuMemberBonusStage> cuMemberBonusStageList = bonusRecordDetailVO.getCuMemberBonusStageList();
 | 
				
			||||||
        if (cuMemberBonusPushList != null && cuMemberBonusPushList.size() > 0) {
 | 
					        if (cuMemberBonusPushList != null && cuMemberBonusPushList.size() > 0) {
 | 
				
			||||||
            cuMemberBonusPushList.forEach(cuMemberBonusPush ->
 | 
					            cuMemberBonusPushList.forEach(cuMemberBonusPush ->
 | 
				
			||||||
                    cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId()));
 | 
					                    cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId()));
 | 
				
			||||||
            batchMemberBonusPushList.addAll(cuMemberBonusPushList);
 | 
					        }
 | 
				
			||||||
 | 
					        if (cuMemberBonusRangeList != null && cuMemberBonusRangeList.size() > 0) {
 | 
				
			||||||
 | 
					            cuMemberBonusRangeList.forEach(cuMemberBonusRange ->
 | 
				
			||||||
 | 
					                    cuMemberBonusRange.setPkBonus(cuMemberBonusMap.get(cuMemberBonusRange.getPkBonus()).getPkId()));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (cuMemberBonusStageList != null && cuMemberBonusStageList.size() > 0) {
 | 
					        if (cuMemberBonusStageList != null && cuMemberBonusStageList.size() > 0) {
 | 
				
			||||||
            cuMemberBonusStageList.forEach(cuMemberBonusStage ->
 | 
					            cuMemberBonusStageList.forEach(cuMemberBonusStage ->
 | 
				
			||||||
                    cuMemberBonusStage.setPkBonus(cuMemberBonusMap.get(cuMemberBonusStage.getPkBonus()).getPkId()));
 | 
					                    cuMemberBonusStage.setPkBonus(cuMemberBonusMap.get(cuMemberBonusStage.getPkBonus()).getPkId()));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (cuMemberBonusDetailList != null && cuMemberBonusDetailList.size() > 0) {
 | 
					 | 
				
			||||||
            cuMemberBonusDetailList.forEach(cuMemberBonusDetail ->
 | 
					 | 
				
			||||||
                    cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId()));
 | 
					 | 
				
			||||||
            batchMemberBonusDetailList.addAll(cuMemberBonusDetailList);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (cuMemberBonusRangeList != null && cuMemberBonusRangeList.size() > 0) {
 | 
					 | 
				
			||||||
            cuMemberBonusRangeList.forEach(cuMemberBonusRange ->
 | 
					 | 
				
			||||||
                    cuMemberBonusRange.setPkBonus(cuMemberBonusMap.get(cuMemberBonusRange.getPkBonus()).getPkId()));
 | 
					 | 
				
			||||||
            batchMemberBonusRangeList.addAll(cuMemberBonusRangeList);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        // 插入奖金主表
 | 
					        // 插入奖金主表
 | 
				
			||||||
        iCuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
 | 
					        iCuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList);
 | 
				
			||||||
        Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period);
 | 
					        Set<Long> memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period);
 | 
				
			||||||
        iCuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet);
 | 
					        iCuMemberBonusPushService.batchInsertCuMemberBonusPush(cuMemberBonusPushList, memberIdSet);
 | 
				
			||||||
 | 
					        iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet);
 | 
				
			||||||
        iCuMemberBonusStageService.batchInsertCuMemberBonusStage(cuMemberBonusStageList, memberIdSet);
 | 
					        iCuMemberBonusStageService.batchInsertCuMemberBonusStage(cuMemberBonusStageList, memberIdSet);
 | 
				
			||||||
        iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet);
 | 
					 | 
				
			||||||
        iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private List<CuMemberBonus> setCuMemberBonusSeq(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap) {
 | 
					    private List<CuMemberBonus> setCuMemberBonusSeq(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,18 +22,13 @@ public class BonusRecordDetailVO implements Serializable {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private List<CuMemberBonusPush> cuMemberBonusPushList;
 | 
					    private List<CuMemberBonusPush> cuMemberBonusPushList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 领导奖收益、平级奖收益
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private List<CuMemberBonusRange> cuMemberBonusRangeList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 阶段收益
 | 
					     * 阶段收益
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private List<CuMemberBonusStage> cuMemberBonusStageList;
 | 
					    private List<CuMemberBonusStage> cuMemberBonusStageList;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 新零售 - 区域分红、月度分红
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private List<CuMemberBonusDetail> cuMemberBonusDetailList;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 新零售 - 直推收益、平级收益、月度福利级差、月度复购级差、复购级差
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private List<CuMemberBonusRange> cuMemberBonusRangeList;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,11 @@ public class BonusConstants {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static final BigDecimal SAME_LEVEL_RATIO = new BigDecimal("0.02");
 | 
					    public static final BigDecimal SAME_LEVEL_RATIO = new BigDecimal("0.02");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 领导奖处理时,满350PV以上按350算
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static final BigDecimal RANGE_BONUS_ACHIEVE = new BigDecimal("350");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 赠送2个点位订单金额
 | 
					     * 赠送2个点位订单金额
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,7 +27,7 @@ public class BonusMsgConstants {
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 领导奖收益
 | 
					     * 领导奖收益
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static String RANGE = "订单编号%s,%s为%s贡献了领导奖收益,计算金额%f,前一级差奖衔名称%s,当前奖衔名称%s。";
 | 
					    public static String RANGE = "订单编号%s,%s为%s贡献了领导奖收益,计算业绩%f,前一级差奖衔名称%s,当前奖衔名称%s。";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 平级收益
 | 
					     * 平级收益
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue