Compare commits
	
		
			2 Commits
		
	
	
		
			ea80a5cac5
			...
			4c09f65e57
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								 | 
						4c09f65e57 | |
| 
							
							
								
								 | 
						ceadd71b51 | 
| 
						 | 
					@ -133,7 +133,16 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    List<CuMemberRetailRangeExt> queryEnoughAwardMember(@Param("rangeTableName") String rangeTableName,
 | 
					    List<CuMemberRetailRangeExt> queryEnoughAwardMember(@Param("rangeTableName") String rangeTableName,
 | 
				
			||||||
                                                        @Param("totalCheck") BigDecimal totalCheck,
 | 
					                                                        @Param("totalCheck") BigDecimal totalCheck,
 | 
				
			||||||
                                                        @Param("pkAwards") Integer pkAwards);
 | 
					                                                        @Param("awardsValue") Integer awardsValue);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 查询符合奖衔业绩、安置条件会员
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<CuMemberRetailRangeExt> queryEnoughAwardPlaceMember(@Param("rangeTableName") String rangeTableName,
 | 
				
			||||||
 | 
					                                                             @Param("awardsValue") Integer awardsValue,
 | 
				
			||||||
 | 
					                                                             @Param("totalCheck") BigDecimal totalCheck,
 | 
				
			||||||
 | 
					                                                             @Param("placeDeptNum") Integer placeDeptNum,
 | 
				
			||||||
 | 
					                                                             @Param("checkAwardsValue") Integer checkAwardsValue);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询会员血缘下达标奖衔会员
 | 
					     * 查询会员血缘下达标奖衔会员
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -91,7 +91,13 @@ public interface ICuMemberRetailRangeService extends IService<CuMemberRetailRang
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询符合奖衔业绩条件会员
 | 
					     * 查询符合奖衔业绩条件会员
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    List<CuMemberRetailRangeExt> queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards);
 | 
					    List<CuMemberRetailRangeExt> queryEnoughAwardMember(String rangeTableName, BigDecimal totalCheck, Integer awardsValue);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 查询符合奖衔业绩、安置条件会员
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<CuMemberRetailRangeExt> queryEnoughAwardPlaceMember(String rangeTableName, Integer awardsValue, BigDecimal totalCheck, Integer placeDeptNum,
 | 
				
			||||||
 | 
					                                                             Integer checkAwardsValue);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询会员血缘下达标奖衔会员
 | 
					     * 查询会员血缘下达标奖衔会员
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -187,8 +187,14 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public List<CuMemberRetailRangeExt> queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards) {
 | 
					    public List<CuMemberRetailRangeExt> queryEnoughAwardMember(String rangeTableName, BigDecimal totalCheck, Integer awardsValue) {
 | 
				
			||||||
        return baseMapper.queryEnoughAwardMember(settleTableName, totalCheck, pkAwards);
 | 
					        return baseMapper.queryEnoughAwardMember(rangeTableName, totalCheck, awardsValue);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<CuMemberRetailRangeExt> queryEnoughAwardPlaceMember(String rangeTableName, Integer awardsValue, BigDecimal totalCheck, Integer placeDeptNum,
 | 
				
			||||||
 | 
					                                                                    Integer checkAwardsValue) {
 | 
				
			||||||
 | 
					        return baseMapper.queryEnoughAwardPlaceMember(rangeTableName, awardsValue, totalCheck, placeDeptNum, checkAwardsValue);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -290,8 +290,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
            List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
 | 
					            List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
 | 
				
			||||||
            awardsList.forEach(bdAwards -> awardsMap.put(bdAwards.getAwardsValue(), bdAwards));
 | 
					            awardsList.forEach(bdAwards -> awardsMap.put(bdAwards.getAwardsValue(), bdAwards));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // 会员奖衔升级记录
 | 
					 | 
				
			||||||
            List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
 | 
					 | 
				
			||||||
            // 直推收益、见点收益
 | 
					            // 直推收益、见点收益
 | 
				
			||||||
            List<CuMemberBonusPush> cuMemberBonusPushList = new ArrayList<>();
 | 
					            List<CuMemberBonusPush> cuMemberBonusPushList = new ArrayList<>();
 | 
				
			||||||
            // 领导奖收益、平级奖收益
 | 
					            // 领导奖收益、平级奖收益
 | 
				
			||||||
| 
						 | 
					@ -306,7 +304,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
            // 更新血缘上业绩、金额
 | 
					            // 更新血缘上业绩、金额
 | 
				
			||||||
            iCuMemberRetailRangeService.updateMemberParentDate(rangeTableName, memberAchieveHashMap);
 | 
					            iCuMemberRetailRangeService.updateMemberParentDate(rangeTableName, memberAchieveHashMap);
 | 
				
			||||||
            // 处理奖衔
 | 
					            // 处理奖衔
 | 
				
			||||||
            iCuMemberAwardsService.calculateCuMemberAwards(rangeTableName, awardsList, awardsMap, settleStartDate, period);
 | 
					            iCuMemberAwardsService.calculateCuMemberAwards(rangeTableName, awardsList, settleStartDate, period);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // 按照血缘,查询该会员所有伞上会员
 | 
					            // 按照血缘,查询该会员所有伞上会员
 | 
				
			||||||
            List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList);
 | 
					            List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList);
 | 
				
			||||||
| 
						 | 
					@ -337,8 +335,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount));
 | 
					                sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount));
 | 
				
			||||||
//                // 自己计算奖衔,目前业绩都只往下传,所以此处暂时不需要处理订单会员的奖衔
 | 
					//                // 自己计算奖衔,目前业绩都只往下传,所以此处暂时不需要处理订单会员的奖衔
 | 
				
			||||||
//                this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember);
 | 
					//                this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember);
 | 
				
			||||||
                // 累计团队业绩、金额 + 计算奖衔
 | 
					                // 累计团队业绩、金额
 | 
				
			||||||
                cuMemberAwardsList.addAll(this.calculateParentAwards(period, memberRangeExtMap, rangeTableName, sourceMember, saOrderExt, awardsMap));
 | 
					                this.calculateParentDate(memberRangeExtMap, sourceMember, saOrderExt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
 | 
					                if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
 | 
				
			||||||
                        || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
 | 
					                        || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
 | 
				
			||||||
| 
						 | 
					@ -413,12 +411,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
            if (cuMemberBonusStageList.size() > 0) {
 | 
					            if (cuMemberBonusStageList.size() > 0) {
 | 
				
			||||||
                bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList);
 | 
					                bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
//            if (cuMemberAwardsList.size() > 0) {
 | 
					 | 
				
			||||||
//                // 批量插入会员奖衔记录
 | 
					 | 
				
			||||||
//                iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
 | 
					 | 
				
			||||||
//                // 更新会员表奖衔数据
 | 
					 | 
				
			||||||
//                iCuMemberService.updateCuMemberAwardsByPeriod(period);
 | 
					 | 
				
			||||||
//            }
 | 
					 | 
				
			||||||
            // 更新日结数据
 | 
					            // 更新日结数据
 | 
				
			||||||
            iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
 | 
					            iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
 | 
				
			||||||
            // 更新日结明细数据
 | 
					            // 更新日结明细数据
 | 
				
			||||||
| 
						 | 
					@ -1094,12 +1086,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
//    }
 | 
					//    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 计算团队奖衔
 | 
					     * 计算团队数据
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private List<CuMemberAwards> calculateParentAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
 | 
					    private void calculateParentDate(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, CuMemberRetailRangeExt sourceMember,
 | 
				
			||||||
                                                       CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap) {
 | 
					                                     SaOrderExt saOrderExt) {
 | 
				
			||||||
        // 会员奖衔升级列表
 | 
					 | 
				
			||||||
        List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
 | 
					 | 
				
			||||||
        // 订单会员的推荐人
 | 
					        // 订单会员的推荐人
 | 
				
			||||||
        CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(sourceMember.getPkParent());
 | 
					        CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(sourceMember.getPkParent());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1124,12 +1114,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
				
			||||||
                targetMember.setRepTeamNewPv(targetMember.getRepTeamNewPv().add(orderAchieve));
 | 
					                targetMember.setRepTeamNewPv(targetMember.getRepTeamNewPv().add(orderAchieve));
 | 
				
			||||||
                targetMember.setRepTeamNewAmount(targetMember.getRepTeamNewAmount().add(orderAmount));
 | 
					                targetMember.setRepTeamNewAmount(targetMember.getRepTeamNewAmount().add(orderAmount));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
//            // 计算奖衔
 | 
					 | 
				
			||||||
//            calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, targetMember);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            targetMember = memberRangeExtMap.get(targetMember.getPkParent());
 | 
					            targetMember = memberRangeExtMap.get(targetMember.getPkParent());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return cuMemberAwardsList;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,6 @@ import com.hzs.common.domain.system.config.BdAwards;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Date;
 | 
					import java.util.Date;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 会员信息-奖衔升级记录 服务类
 | 
					 * 会员信息-奖衔升级记录 服务类
 | 
				
			||||||
| 
						 | 
					@ -17,7 +16,7 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 计算奖衔
 | 
					     * 计算奖衔
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Map<Integer, BdAwards> awardsMap, Date settleDate, Integer period);
 | 
					    void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Date settleDate, Integer period);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 批量插入奖衔记录
 | 
					     * 批量插入奖衔记录
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,6 @@ import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.math.BigDecimal;
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
import java.util.*;
 | 
					import java.util.*;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 会员信息-奖衔升级记录 服务实现类
 | 
					 * 会员信息-奖衔升级记录 服务实现类
 | 
				
			||||||
| 
						 | 
					@ -37,7 +36,7 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
 | 
				
			||||||
    private ICuMemberRetailRangeService iCuMemberRetailRangeService;
 | 
					    private ICuMemberRetailRangeService iCuMemberRetailRangeService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Map<Integer, BdAwards> awardsMap, Date settleDate, Integer period) {
 | 
					    public void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Date settleDate, Integer period) {
 | 
				
			||||||
        // 回退结算表奖衔
 | 
					        // 回退结算表奖衔
 | 
				
			||||||
        iCuMemberTreeService.updateBackCuMemberRetailRangeAward(rangeTableName, period);
 | 
					        iCuMemberTreeService.updateBackCuMemberRetailRangeAward(rangeTableName, period);
 | 
				
			||||||
        // 回退会员表奖衔
 | 
					        // 回退会员表奖衔
 | 
				
			||||||
| 
						 | 
					@ -56,7 +55,14 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
 | 
				
			||||||
        Map<Long, List<CuMemberRetailRangeExt>> cuMemberRangeExtMap = new HashMap<>();
 | 
					        Map<Long, List<CuMemberRetailRangeExt>> cuMemberRangeExtMap = new HashMap<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (BdAwards bdAwards : awardsList) {
 | 
					        for (BdAwards bdAwards : awardsList) {
 | 
				
			||||||
            List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardMember(rangeTableName, bdAwards.getTotalCheck(), bdAwards.getPkId());
 | 
					            List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList;
 | 
				
			||||||
 | 
					            if (bdAwards.getPlaceDeptNum() > 0) {
 | 
				
			||||||
 | 
					                BdAwards checkAwards = awardsList.stream().filter(tmpDate -> tmpDate.getPkId().equals(bdAwards.getPkCheckAwardsLeft())).findFirst().get();
 | 
				
			||||||
 | 
					                cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardPlaceMember(rangeTableName, bdAwards.getAwardsValue(),
 | 
				
			||||||
 | 
					                        bdAwards.getTotalCheck(), bdAwards.getPlaceDeptNum(), checkAwards.getAwardsValue());
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardMember(rangeTableName, bdAwards.getTotalCheck(), bdAwards.getAwardsValue());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            cuMemberAwardsList.addAll(this.calculateAwards(rangeTableName, bdAwards, period, cuMemberRetailRangeExtList, cuMemberRangeExtMap));
 | 
					            cuMemberAwardsList.addAll(this.calculateAwards(rangeTableName, bdAwards, period, cuMemberRetailRangeExtList, cuMemberRangeExtMap));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (cuMemberAwardsList.size() > 0) {
 | 
					        if (cuMemberAwardsList.size() > 0) {
 | 
				
			||||||
| 
						 | 
					@ -70,7 +76,7 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private List<CuMemberAwards> calculateAwards(String rangeTableName, BdAwards bdAwards, Integer period,
 | 
					    private List<CuMemberAwards> calculateAwards(String rangeTableName, BdAwards bdAwards, Integer period,
 | 
				
			||||||
                                 List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList, Map<Long, List<CuMemberRetailRangeExt>> cuMemberRangeExtMap) {
 | 
					                                                 List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList, Map<Long, List<CuMemberRetailRangeExt>> cuMemberRangeExtMap) {
 | 
				
			||||||
        // 只满足业绩的
 | 
					        // 只满足业绩的
 | 
				
			||||||
        List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
 | 
					        List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -78,41 +84,48 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
 | 
				
			||||||
            Date nowDate = new Date();
 | 
					            Date nowDate = new Date();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            cuMemberRetailRangeExtList.forEach(targetMember -> {
 | 
					            cuMemberRetailRangeExtList.forEach(targetMember -> {
 | 
				
			||||||
                List<CuMemberRetailRangeExt> cuMemberRangeExtList = cuMemberRangeExtMap.get(targetMember.getPkMember());
 | 
					                if (bdAwards.getPlaceDeptNum() > 0 && bdAwards.getCommunityCheck().compareTo(BigDecimal.ZERO) == 0) {
 | 
				
			||||||
                if (null == cuMemberRangeExtList) {
 | 
					                    // 需要校验部门奖衔并且小区业绩为0的
 | 
				
			||||||
                    cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember());
 | 
					                    cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate));
 | 
				
			||||||
                    cuMemberRangeExtMap.put(targetMember.getPkMember(), cuMemberRangeExtList);
 | 
					                    targetMember.setPkAwards(bdAwards.getPkId());
 | 
				
			||||||
                }
 | 
					                    targetMember.setAwardsValue(bdAwards.getAwardsValue());
 | 
				
			||||||
                // 大区
 | 
					                } else {
 | 
				
			||||||
                BigDecimal consumeBigPv = BigDecimal.ZERO;
 | 
					                    List<CuMemberRetailRangeExt> cuMemberRangeExtList = cuMemberRangeExtMap.get(targetMember.getPkMember());
 | 
				
			||||||
                for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
 | 
					                    if (null == cuMemberRangeExtList) {
 | 
				
			||||||
                    // 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩
 | 
					                        cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember());
 | 
				
			||||||
                    BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv());
 | 
					                        cuMemberRangeExtMap.put(targetMember.getPkMember(), cuMemberRangeExtList);
 | 
				
			||||||
                    if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
 | 
					 | 
				
			||||||
                        // 累计业绩 > 大区业绩,则累计就成为大区
 | 
					 | 
				
			||||||
                        consumeBigPv = consumePv;
 | 
					 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                    // 大区
 | 
				
			||||||
                // 小区业绩 = 团队累计业绩 - 大区业绩
 | 
					                    BigDecimal consumeBigPv = BigDecimal.ZERO;
 | 
				
			||||||
                BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv);
 | 
					                    for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
 | 
				
			||||||
                if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) {
 | 
					                        // 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩
 | 
				
			||||||
                    // 小区业绩 >= 考核小区业绩
 | 
					                        BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv());
 | 
				
			||||||
                    if (bdAwards.getPlaceDeptNum() > 0) {
 | 
					                        if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
 | 
				
			||||||
                        if (CollectionUtil.isNotEmpty(cuMemberRangeExtList)) {
 | 
					                            // 累计业绩 > 大区业绩,则累计就成为大区
 | 
				
			||||||
                            // 验证每条血缘下,满足达标数量
 | 
					                            consumeBigPv = consumePv;
 | 
				
			||||||
                            List<Integer> checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(),
 | 
					                        }
 | 
				
			||||||
                                    cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList()));
 | 
					                    }
 | 
				
			||||||
                            if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) {
 | 
					                    // 小区业绩 = 团队累计业绩 - 大区业绩
 | 
				
			||||||
                                cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate));
 | 
					                    BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv);
 | 
				
			||||||
                                targetMember.setPkAwards(bdAwards.getPkId());
 | 
					                    if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) {
 | 
				
			||||||
                                targetMember.setAwardsValue(bdAwards.getAwardsValue());
 | 
					                        // 小区业绩 >= 考核小区业绩
 | 
				
			||||||
                            }
 | 
					                        if (bdAwards.getPlaceDeptNum() > 0) {
 | 
				
			||||||
 | 
					                            if (CollectionUtil.isNotEmpty(cuMemberRangeExtList)) {
 | 
				
			||||||
 | 
					                                // 验证每条血缘下,满足达标数量
 | 
				
			||||||
 | 
					                                List<Integer> checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(),
 | 
				
			||||||
 | 
					                                        Collections.singletonList(targetMember.getPkMember()));
 | 
				
			||||||
 | 
					                                if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) {
 | 
				
			||||||
 | 
					                                    cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate));
 | 
				
			||||||
 | 
					                                    targetMember.setPkAwards(bdAwards.getPkId());
 | 
				
			||||||
 | 
					                                    targetMember.setAwardsValue(bdAwards.getAwardsValue());
 | 
				
			||||||
 | 
					                                }
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        } else {
 | 
				
			||||||
 | 
					                            // 不需要考核血缘达标,直接给奖衔
 | 
				
			||||||
 | 
					                            cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate));
 | 
				
			||||||
 | 
					                            targetMember.setPkAwards(bdAwards.getPkId());
 | 
				
			||||||
 | 
					                            targetMember.setAwardsValue(bdAwards.getAwardsValue());
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    } else {
 | 
					 | 
				
			||||||
                        // 不需要考核血缘达标,直接给奖衔
 | 
					 | 
				
			||||||
                        cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate));
 | 
					 | 
				
			||||||
                        targetMember.setPkAwards(bdAwards.getPkId());
 | 
					 | 
				
			||||||
                        targetMember.setAwardsValue(bdAwards.getAwardsValue());
 | 
					 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -980,9 +980,36 @@
 | 
				
			||||||
    <select id="queryEnoughAwardMember" resultMap="CuMemberRetailRangeExt">
 | 
					    <select id="queryEnoughAwardMember" resultMap="CuMemberRetailRangeExt">
 | 
				
			||||||
        select cmr.*
 | 
					        select cmr.*
 | 
				
			||||||
        from ${rangeTableName} cmr
 | 
					        from ${rangeTableName} cmr
 | 
				
			||||||
 | 
					                 left join bd_awards ba
 | 
				
			||||||
 | 
					                           on ba.pk_id = cmr.pk_awards
 | 
				
			||||||
        where cmr.category = 0
 | 
					        where cmr.category = 0
 | 
				
			||||||
          and cmr.team_consume_pv >= #{totalCheck}
 | 
					          and cmr.team_consume_pv >= #{totalCheck}
 | 
				
			||||||
          and #{pkAwards} > cmr.pk_awards
 | 
					          and #{awardsValue} > ba.awards_value
 | 
				
			||||||
 | 
					    </select>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 查询符合奖衔业绩、安置条件会员 -->
 | 
				
			||||||
 | 
					    <select id="queryEnoughAwardPlaceMember" resultMap="CuMemberRetailRangeExt">
 | 
				
			||||||
 | 
					        select cmr.*
 | 
				
			||||||
 | 
					        from ${rangeTableName} cmr
 | 
				
			||||||
 | 
					                 left join bd_awards ba
 | 
				
			||||||
 | 
					                           on ba.pk_id = cmr.pk_awards
 | 
				
			||||||
 | 
					        where cmr.pk_member in
 | 
				
			||||||
 | 
					              (select cmr.pk_parent
 | 
				
			||||||
 | 
					               from ${rangeTableName} cmr
 | 
				
			||||||
 | 
					               where cmr.pk_parent != 0
 | 
				
			||||||
 | 
					        start with cmr.pk_member in
 | 
				
			||||||
 | 
					                 (select cmr.pk_member
 | 
				
			||||||
 | 
					            from ${rangeTableName} cmr
 | 
				
			||||||
 | 
					            left join bd_awards ba
 | 
				
			||||||
 | 
					            on ba.pk_id = cmr.pk_awards
 | 
				
			||||||
 | 
					               and ba.del_flag = 0
 | 
				
			||||||
 | 
					            where cmr.category = 0
 | 
				
			||||||
 | 
					               and ba.awards_value >= #{checkAwardsValue})
 | 
				
			||||||
 | 
					        connect by cmr.pk_member = prior cmr.pk_parent
 | 
				
			||||||
 | 
					        group by cmr.pk_parent
 | 
				
			||||||
 | 
					        having count (distinct cmr.pk_member) >= #{placeDeptNum})
 | 
				
			||||||
 | 
					           and #{awardsValue} > ba.awards_value
 | 
				
			||||||
 | 
					           and cmr.team_consume_pv >= #{totalCheck}
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- 查询会员血缘下达标奖衔会员 -->
 | 
					    <!-- 查询会员血缘下达标奖衔会员 -->
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -118,7 +118,7 @@ public class RetailMemberVO implements Serializable {
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 消费业绩 注册业绩
 | 
					     * 消费业绩 注册业绩
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @Excel(name = "注册业绩($)")
 | 
					    @Excel(name = "注册业绩")
 | 
				
			||||||
    private BigDecimal consumeAchieve;
 | 
					    private BigDecimal consumeAchieve;
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 隶属体系
 | 
					     * 隶属体系
 | 
				
			||||||
| 
						 | 
					@ -161,26 +161,7 @@ public class RetailMemberVO implements Serializable {
 | 
				
			||||||
    private String memberAccountVal;
 | 
					    private String memberAccountVal;
 | 
				
			||||||
    @Excel(name = "收益状态")
 | 
					    @Excel(name = "收益状态")
 | 
				
			||||||
    private String incomeStatusVal;
 | 
					    private String incomeStatusVal;
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 省
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    @Excel(name = "收益区省")
 | 
					 | 
				
			||||||
    private String giftProvince;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Integer province;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 市
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    @Excel(name = "收益区市")
 | 
					 | 
				
			||||||
    private String giftCity;
 | 
					 | 
				
			||||||
    private Integer city;
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 县(区)
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    @Excel(name = "收益区县(区)")
 | 
					 | 
				
			||||||
    private String giftCounty;
 | 
					 | 
				
			||||||
    private Integer county;
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 创建时间
 | 
					     * 创建时间
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1993,10 +1993,7 @@
 | 
				
			||||||
        awar.awards_name as pkRangeAwardsVal,
 | 
					        awar.awards_name as pkRangeAwardsVal,
 | 
				
			||||||
        awm.awards_name as pkMaxAwardsVal,
 | 
					        awm.awards_name as pkMaxAwardsVal,
 | 
				
			||||||
        par.member_code parMemberCode,
 | 
					        par.member_code parMemberCode,
 | 
				
			||||||
        par.member_name parMemberName,
 | 
					        par.member_name parMemberName
 | 
				
			||||||
        pr.NAME giftProvince,
 | 
					 | 
				
			||||||
        cty.NAME giftCity,
 | 
					 | 
				
			||||||
        con.NAME giftCounty
 | 
					 | 
				
			||||||
        FROM cu_member cm
 | 
					        FROM cu_member cm
 | 
				
			||||||
        inner join CU_MEMBER_ACCOUNT cma
 | 
					        inner join CU_MEMBER_ACCOUNT cma
 | 
				
			||||||
        on cm.pk_id = cma.PK_MEMBER
 | 
					        on cm.pk_id = cma.PK_MEMBER
 | 
				
			||||||
| 
						 | 
					@ -2018,12 +2015,6 @@
 | 
				
			||||||
        on cmt.pk_id = cm.pk_team_code
 | 
					        on cmt.pk_id = cm.pk_team_code
 | 
				
			||||||
        left join CU_MEMBER_RETAIL_REGION cmrr
 | 
					        left join CU_MEMBER_RETAIL_REGION cmrr
 | 
				
			||||||
        on cm.pk_id = cmrr.PK_MEMBER and cmrr.effective = 0 and cmrr.del_flag = 0
 | 
					        on cm.pk_id = cmrr.PK_MEMBER and cmrr.effective = 0 and cmrr.del_flag = 0
 | 
				
			||||||
        left join BD_AREA pr
 | 
					 | 
				
			||||||
        on pr.pk_id = cmrr.PROVINCE
 | 
					 | 
				
			||||||
        left join BD_AREA cty
 | 
					 | 
				
			||||||
        on cty.pk_id = cmrr.CITY
 | 
					 | 
				
			||||||
        left join BD_AREA con
 | 
					 | 
				
			||||||
        on con.pk_id = cmrr.COUNTY
 | 
					 | 
				
			||||||
        WHERE cm.del_flag = 0 and cm.pk_id in
 | 
					        WHERE cm.del_flag = 0 and cm.pk_id in
 | 
				
			||||||
        (
 | 
					        (
 | 
				
			||||||
        SELECT cm.PK_ID
 | 
					        SELECT cm.PK_ID
 | 
				
			||||||
| 
						 | 
					@ -2146,15 +2137,6 @@
 | 
				
			||||||
        <if test="isConsume != null ">
 | 
					        <if test="isConsume != null ">
 | 
				
			||||||
            and cma.IS_CONSUME=#{isConsume}
 | 
					            and cma.IS_CONSUME=#{isConsume}
 | 
				
			||||||
        </if>
 | 
					        </if>
 | 
				
			||||||
        <if test="province != null">
 | 
					 | 
				
			||||||
            and cmrr.PROVINCE=#{province}
 | 
					 | 
				
			||||||
        </if>
 | 
					 | 
				
			||||||
        <if test="city != null">
 | 
					 | 
				
			||||||
            and cmrr.CITY=#{city}
 | 
					 | 
				
			||||||
        </if>
 | 
					 | 
				
			||||||
        <if test="county != null">
 | 
					 | 
				
			||||||
            and cmrr.COUNTY=#{county}
 | 
					 | 
				
			||||||
        </if>
 | 
					 | 
				
			||||||
        <!-- 体系权限处理 -->
 | 
					        <!-- 体系权限处理 -->
 | 
				
			||||||
        <if test="vertexList != null and vertexList.size > 0">
 | 
					        <if test="vertexList != null and vertexList.size > 0">
 | 
				
			||||||
            and ver.pk_member in
 | 
					            and ver.pk_member in
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue