Compare commits
	
		
			3 Commits
		
	
	
		
			6647920be4
			...
			3b408c163b
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 3b408c163b | |
|  | 7b5e4e264e | |
|  | bacedcfd33 | 
|  | @ -37,6 +37,11 @@ public class RetailMemberDataDTO implements Serializable { | |||
|      */ | ||||
|     private Integer pkMaxAwards; | ||||
| 
 | ||||
|     /** | ||||
|      * 分红奖衔 | ||||
|      */ | ||||
|     private Integer pkRangeAwards; | ||||
| 
 | ||||
|     /** | ||||
|      * 国家名称 | ||||
|      */ | ||||
|  | @ -86,6 +91,15 @@ public class RetailMemberDataDTO implements Serializable { | |||
|      */ | ||||
|     private String maxAwardsIcon; | ||||
| 
 | ||||
|     /** | ||||
|      * 分红奖衔名称 | ||||
|      */ | ||||
|     private String rangeAwardsVal; | ||||
|     /** | ||||
|      * 分红奖衔图标 | ||||
|      */ | ||||
|     private String rangeAwardsIcon; | ||||
| 
 | ||||
|     /** | ||||
|      * 币种图标 | ||||
|      */ | ||||
|  |  | |||
|  | @ -79,7 +79,7 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang | |||
|     /** | ||||
|      * 更新购买订单的等级 | ||||
|      */ | ||||
|     void mergeMemberRetailGradeByMember(@Param("rangeTableName") String rangeTableName, @Param("pkMember") Long pkMember); | ||||
|     void mergeMemberRetailGradeByMember(@Param("rangeTableName") String rangeTableName, @Param("pkMember") Long pkMember, @Param("isToday") Integer isToday); | ||||
| 
 | ||||
|     /** | ||||
|      * 根据会员查询会员上的所有网体 | ||||
|  | @ -119,7 +119,7 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang | |||
|     List<CuMemberRetailRangeExt> queryCuMemberSecondRangeYes(@Param("rangeTableName") String rangeTableName, @Param("pkMember") Long pkMember); | ||||
| 
 | ||||
|     /** | ||||
|      * 推荐推荐人查询推荐人下的所有部门, 该订单日期之前的算他的网体 | ||||
|      * 秒结:推荐人查询推荐人下的所有部门, 该订单日期之前的算他的网体 | ||||
|      */ | ||||
|     List<CuMemberRetailRangeExt> queryCuMemberSecondRangeExtByParent(@Param("rangeTableName") String rangeTableName, @Param("secondTableName") String secondTableName, @Param("pkMember") Long pkMember); | ||||
| 
 | ||||
|  |  | |||
|  | @ -124,7 +124,7 @@ public interface ICuMemberRetailRangeService extends IService<CuMemberRetailRang | |||
|     /** | ||||
|      * 更新购买订单的等级 | ||||
|      */ | ||||
|     void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember); | ||||
|     void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember, Integer isToday); | ||||
| 
 | ||||
|     /** | ||||
|      * 更新会员树的累计业绩 | ||||
|  |  | |||
|  | @ -177,8 +177,8 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa | |||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember) { | ||||
|         baseMapper.mergeMemberRetailGradeByMember(rangeTableName, pkMember); | ||||
|     public void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember, Integer isToday) { | ||||
|         baseMapper.mergeMemberRetailGradeByMember(rangeTableName, pkMember, isToday); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  |  | |||
|  | @ -145,13 +145,13 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM | |||
|     @Override | ||||
|     public void updateBackCuMemberRetailRangeAward(String rangeTableName, Integer period) { | ||||
|         baseMapper.updateBackCuMemberRetailRangeAward(rangeTableName, period, EAwardsType.RANGE_TYPE.getValue()); | ||||
| //        baseMapper.updateBackCuMemberRetailRangeAward(rangeTableName, period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|         baseMapper.updateBackCuMemberRetailRangeAward(rangeTableName, period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateCuMemberRetailRangeAwardByDate(String rangeTableName, Date settleDate) { | ||||
|         baseMapper.updateCuMemberRetailRangeAwardByDate(rangeTableName, settleDate, EAwardsType.RANGE_TYPE.getValue()); | ||||
| //        baseMapper.updateCuMemberRetailRangeAwardByDate(rangeTableName, settleDate, EAwardsType.SHARE_TYPE.getValue()); | ||||
|         baseMapper.updateCuMemberRetailRangeAwardByDate(rangeTableName, settleDate, EAwardsType.SHARE_TYPE.getValue()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  |  | |||
|  | @ -41,13 +41,13 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i | |||
|     @Override | ||||
|     public void updateCuMemberRetailRangeByPeriod(List<CuMemberAwards> cuMemberAwardsList, Integer period) { | ||||
|         baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue()); | ||||
| //        baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|         baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateCuMemberRetailRangeByList(List<CuMemberAwards> cuMemberAwardsList, Integer period) { | ||||
|         baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.RANGE_TYPE.getValue()); | ||||
| //        baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|         baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  | @ -58,6 +58,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i | |||
|     @Override | ||||
|     public void updateCuMemberMinAwardsByList(List<CuMemberAwards> cuMemberAwardsList, Integer period) { | ||||
|         baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.RANGE_TYPE.getValue()); | ||||
|         baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  | @ -88,13 +89,13 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i | |||
|     @Override | ||||
|     public void updateBackCuMemberRetailRangeAward(Integer period) { | ||||
|         baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.RANGE_TYPE.getValue()); | ||||
| //        baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|         baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void updateCuMemberRetailRangeAwardByDate(Date settleDate) { | ||||
|         baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.RANGE_TYPE.getValue()); | ||||
| //        baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.SHARE_TYPE.getValue()); | ||||
|         baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.SHARE_TYPE.getValue()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  |  | |||
|  | @ -185,7 +185,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|         if (cuMemberAwardsList.size() > 0) { | ||||
|             // 插入会员奖衔升级记录 | ||||
|             iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList); | ||||
|             // 更新会员奖衔 -- 荣誉级别(旧级差奖衔、旧荣誉奖衔(分红奖衔) | ||||
|             // 更新会员奖衔 -- 当月奖衔、分红奖衔 | ||||
|             iCuMemberService.updateCuMemberRetailRangeByList(cuMemberAwardsList, currentPeriod); | ||||
|         } | ||||
| 
 | ||||
|  | @ -197,7 +197,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 实时计算撤单数据(业绩、盒数、等级、奖衔、日奖) | ||||
|      * 撤单秒结:实时计算撤单数据(业绩、盒数、等级、奖衔、日奖) | ||||
|      */ | ||||
|     void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO, | ||||
|                                            String secondRangeTableName, int beforePeriod, int currentPeriod) { | ||||
|  | @ -208,9 +208,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|         if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) { | ||||
|             // 当天撤单 | ||||
|             // 实时网体查询血缘伞上会员,更新秒结表等级、奖衔 | ||||
|             iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember()); | ||||
|             iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember(), EYesNo.YES.getIntValue()); | ||||
|             // 恢复秒结表奖衔 | ||||
|             iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod); | ||||
|             iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod, EYesNo.YES.getIntValue()); | ||||
|             // 查询 昨天日结 + 今天秒结 血缘伞上+直推 | ||||
|             memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember()); | ||||
|         } else { | ||||
|  | @ -219,9 +219,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|             List<SaOrderExt> retailOrderList = new ArrayList<>(); | ||||
|             retailOrderList.add(saOrderExt); | ||||
|             // 实时网体查询血缘上会员,更新订单支付日结表等级、奖衔 | ||||
|             iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember()); | ||||
|             iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember(), EYesNo.NO.getIntValue()); | ||||
|             // 恢复日结表奖衔 | ||||
|             iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod); | ||||
|             iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod, EYesNo.NO.getIntValue()); | ||||
|             // 查询 订单下单日结 血缘上会员结算数据 | ||||
|             memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList); | ||||
|         } | ||||
|  | @ -279,13 +279,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|         Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>(); | ||||
|         // 会员奖衔map | ||||
|         Map<String, CuMemberAwards> cuMemberAwardsMap = new HashMap<>(); | ||||
|         // 会员分红奖衔map | ||||
|         Map<String, CuMemberAwards> cuMemberShareAwardsMap = new HashMap<>(); | ||||
|         // 计算自己等级、奖衔等 | ||||
|         calculateBackGrade(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, sourceMemberRangeExt); | ||||
|         calculateBackGrade(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, | ||||
|                 cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, sourceMemberRangeExt); | ||||
|         // 计算团队业绩、盒数,计算等级、奖衔 | ||||
|         List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap); | ||||
|         List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = calculateRetailBackRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, | ||||
|                 secondRangeTableName, boxNum, cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap); | ||||
|         cuMemberRetailRangeExtList.add(sourceMemberRangeExt); | ||||
| 
 | ||||
|         // 查询期间的等级和奖衔 | ||||
|         // 查询期间的等级 | ||||
|         List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod); | ||||
|         // 查询最大的手动奖衔 | ||||
|         List<CuMemberGrade> cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList); | ||||
|  | @ -304,8 +308,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|                         cuMemberRetailRangeExt.setGradeValue(bdGrade.getGradeValue()); | ||||
|                     } | ||||
|                     BdGrade bdGrade = gradeIdMap.get(cuMemberRetailRangeExt.getPkGrade()); | ||||
|                     if (bdGrade != null && bdGrade.getGradeValue() == EGrade.S_VIP.getValue() && cuMemberRetailRangeExt.getPkAwards() < 13) { | ||||
|                         cuMemberRetailRangeExt.setPkAwards(13); | ||||
|                     if (bdGrade != null && bdGrade.getGradeValue() == EGrade.S_VIP.getValue() && cuMemberRetailRangeExt.getPkAwards() < 11) { | ||||
|                         // 如果是合伙人,奖衔肯定得有,不能置为无 | ||||
|                         cuMemberRetailRangeExt.setPkAwards(11); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|  | @ -330,24 +335,47 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|                 iCuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod); | ||||
|             } | ||||
|         } | ||||
|         // 当期的所有奖衔升级记录 | ||||
|         List<CuMemberAwards> memberAwardsList = iCuMemberAwardsService.queryCuMemberAwards(cuMemberRetailRangeExtList, currentPeriod); | ||||
|         if (memberAwardsList.size() > 0) { | ||||
|             // 当月奖衔升级记录 | ||||
|             List<CuMemberAwards> pkAwardsList = memberAwardsList.stream().filter(tmpData -> tmpData.getAwardType() == EAwardsType.RANGE_TYPE.getValue()).collect(Collectors.toList()); | ||||
|             // 分红奖衔升级记录 | ||||
|             List<CuMemberAwards> pkShareAwardsList = memberAwardsList.stream().filter(tmpData -> tmpData.getAwardType() == EAwardsType.SHARE_TYPE.getValue()).collect(Collectors.toList()); | ||||
| 
 | ||||
|             List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>(); | ||||
|             for (CuMemberAwards cuMemberAwards : memberAwardsList) { | ||||
|                 String key = cuMemberAwards.getPkMember() + "_" + cuMemberAwards.getNewLevel(); | ||||
|                 if (!cuMemberAwardsMap.containsKey(key)) { | ||||
|                     CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberAwards.getPkMember()); | ||||
|                     if (cuMemberAwards.getOldLevel() < cuMemberRetailRangeExt.getPkAwards()) { | ||||
|                         cuMemberRetailRangeExt.setPkAwards(cuMemberAwards.getOldLevel()); | ||||
|             if (CollectionUtil.isNotEmpty(pkAwardsList)) { | ||||
|                 for (CuMemberAwards cuMemberAwards : pkAwardsList) { | ||||
|                     String key = cuMemberAwards.getPkMember() + "_" + cuMemberAwards.getNewLevel(); | ||||
|                     if (!cuMemberAwardsMap.containsKey(key)) { | ||||
|                         CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberAwards.getPkMember()); | ||||
|                         if (cuMemberAwards.getOldLevel() < cuMemberRetailRangeExt.getPkAwards()) { | ||||
|                             cuMemberRetailRangeExt.setPkAwards(cuMemberAwards.getOldLevel()); | ||||
|                         } | ||||
|                         if (cuMemberRetailRangeExt.getGradeValue() == EGrade.S_VIP.getValue() && cuMemberRetailRangeExt.getPkAwards() < 11) { | ||||
|                             // 如果是合伙人,奖衔肯定得有,不能置为无 | ||||
|                             cuMemberRetailRangeExt.setPkAwards(11); | ||||
|                             continue; | ||||
|                         } | ||||
|                         cuMemberAwards.setNewLevel(cuMemberAwards.getOldLevel()); | ||||
|                         cuMemberAwardsList.add(cuMemberAwards); | ||||
|                     } | ||||
|                     if (cuMemberRetailRangeExt.getGradeValue() == EGrade.S_VIP.getValue() && cuMemberRetailRangeExt.getPkAwards() < 13) { | ||||
|                         cuMemberRetailRangeExt.setPkAwards(13); | ||||
|                         continue; | ||||
|                     } | ||||
|                     cuMemberAwards.setNewLevel(cuMemberAwards.getOldLevel()); | ||||
|                     cuMemberAwardsList.add(cuMemberAwards); | ||||
|                 } | ||||
|             } | ||||
|             if (CollectionUtil.isNotEmpty(pkShareAwardsList)) { | ||||
|                 for (CuMemberAwards cuMemberAwards : pkShareAwardsList) { | ||||
|                     String key = cuMemberAwards.getPkMember() + "_" + cuMemberAwards.getNewLevel(); | ||||
|                     if (!cuMemberShareAwardsMap.containsKey(key)) { | ||||
|                         CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberAwards.getPkMember()); | ||||
|                         if (cuMemberAwards.getOldLevel() < cuMemberRetailRangeExt.getPkShareAwards()) { | ||||
|                             cuMemberRetailRangeExt.setPkShareAwards(cuMemberAwards.getOldLevel()); | ||||
|                         } | ||||
|                         cuMemberAwards.setNewLevel(cuMemberAwards.getOldLevel()); | ||||
|                         cuMemberAwardsList.add(cuMemberAwards); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             // 处理等级、奖衔 | ||||
|             if (cuMemberAwardsList.size() > 0) { | ||||
|                 // 删除会员奖衔记录 | ||||
|  | @ -836,6 +864,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|         return cuMemberAwardsList; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 计算等级、奖衔 | ||||
|      */ | ||||
|     private void calculateGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, | ||||
|                                       SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, | ||||
|                                       String secondRangeTableName, List<CuMemberGrade> cuMemberGradeList, List<CuMemberAwards> cuMemberAwardsList, | ||||
|  | @ -859,7 +890,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|                 // 验证小区,计算小区累计盒数 查询伞下会员 | ||||
|                 List<CuMemberRetailRangeExt> cuMemberRangeExtList; | ||||
|                 if (secondRangeTableName != null) { | ||||
|                     // 秒结表关联昨日结算表,查询订单会员直推数据 | ||||
|                     // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 | ||||
|                     cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); | ||||
|                 } else { | ||||
|                     // 昨日结算表,查询订单会员直推数据 | ||||
|  | @ -903,108 +934,103 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|                 } | ||||
|             } | ||||
|         } | ||||
|         // 计算奖衔(荣誉级别) | ||||
|         // 计算当月奖衔 | ||||
|         while (true) { | ||||
|             // 当前实时奖衔值 + 5,获取下一个奖衔值 | ||||
|             // 当月奖衔值 + 5,获取下一个奖衔值 | ||||
|             int awardsValue = targetMemberRangeExt.getAwardsValue() + 5; | ||||
|             if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { | ||||
|                 // 等级达到V5 并且 存在下个奖衔,判断是否能升奖衔 | ||||
|                 BdAwards bdAwards = retailAwardsMap.get(awardsValue); | ||||
|                 // 先验证累计业绩 | ||||
|                 // new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩 | ||||
|                 // new 升级奖衔判断: 月累计业绩 = 本人月消费业绩 + 团队月消费业绩 | ||||
|                 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) { | ||||
|                     // 累计业绩足够,即可升奖衔 | ||||
| //                    BigDecimal consumeBigPv = BigDecimal.ZERO; | ||||
| //                    if (ComputeUtil.compareValue(bdAwards.getCommunityCheck())) { | ||||
| //                        // 验证小区,计算小区业绩 | ||||
| //                        List<CuMemberRetailRangeExt> cuMemberRangeExtList; | ||||
| //                        if (secondRangeTableName != null) { | ||||
| //                            cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); | ||||
| //                        } else { | ||||
| //                            cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); | ||||
| //                        } | ||||
| //                        for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { | ||||
| //                            if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||
| //                                cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); | ||||
| //                            } | ||||
| //                            BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); | ||||
| //                            if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { | ||||
| //                                consumeBigPv = consumePv; | ||||
| //                            } | ||||
| //                        } | ||||
| //                    } | ||||
| //                    BigDecimal smallAreaPv = ComputeUtil.computeSubtract(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), consumeBigPv); | ||||
| //                    if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) { | ||||
|                     cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue())); | ||||
|                     targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); | ||||
|                     targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); | ||||
|                     targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName()); | ||||
|                     continue; | ||||
| //                    } | ||||
|                 } | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
| //        // 计算分红奖衔(秒结不走这个地方) | ||||
| //        while (true) { | ||||
| //            if (null == targetMemberRangeExt.getShareAwardsValue()) { | ||||
| //                break; | ||||
| //            } | ||||
| //            int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; | ||||
| //            if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { | ||||
| //                BdAwards bdAwards = retailAwardsMap.get(awardsValue); | ||||
| //                // 先验证累计业绩 | ||||
| //                if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { | ||||
| //                    // 验证小区,计算小区业绩 | ||||
| //                    List<CuMemberRetailRangeExt> cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); | ||||
| //                    BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); | ||||
| ////                    if (ComputeUtil.compareGreaterThan(targetMemberRangeExt.getBigTeamPv(), consumeBigPv)) { | ||||
| ////                        consumeBigPv = targetMemberRangeExt.getBigTeamPv(); | ||||
| ////                    } | ||||
| //                    for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { | ||||
| //                        if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||
| //                            cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); | ||||
| //                        } | ||||
| //                        BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); | ||||
| //                        if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { | ||||
| //                            consumeBigPv = consumePv; | ||||
| //                        } | ||||
| //                    } | ||||
| //                    BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); | ||||
| //                    if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { | ||||
| //                        if (bdAwards.getPlaceDeptNum() > 0) { | ||||
| //                            // 验证是否有多个区满足业绩 | ||||
| //                            List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); | ||||
| //                            int enoughNum = 0; | ||||
| //                            for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { | ||||
| //                                if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||
| //                                    cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); | ||||
| //                                } | ||||
| //                                if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) { | ||||
| //                                    enoughNum += 1; | ||||
| //                                } | ||||
| //                            } | ||||
| //                            if (bdAwards.getPlaceDeptNum() > enoughNum) { | ||||
| //                                break; | ||||
| //                            } | ||||
| //                        } | ||||
| //                        cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue())); | ||||
| //                        targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); | ||||
| //                        targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); | ||||
| //                        continue; | ||||
| //                    } | ||||
| //                } | ||||
| //            } | ||||
| //            break; | ||||
| //        } | ||||
|         // 计算分红奖衔 | ||||
|         while (true) { | ||||
|             // 当月奖衔值 + 5,获取下一个奖衔值 | ||||
|             int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; | ||||
|             if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { | ||||
|                 BdAwards bdAwards = retailAwardsMap.get(awardsValue); | ||||
|                 // 先验证累计业绩 | ||||
|                 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { | ||||
|                     // 验证小区,计算小区业绩(拉取直推会员数据) | ||||
|                     List<CuMemberRetailRangeExt> cuMemberRangeExtList; | ||||
|                     if (secondRangeTableName != null) { | ||||
|                         // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 | ||||
|                         cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); | ||||
|                     } else { | ||||
|                         // 昨日结算表,查询订单会员直推数据 | ||||
|                         cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); | ||||
|                     } | ||||
|                     // 本人月消费业绩(默认为大区) | ||||
|                     BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); | ||||
|                     for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { | ||||
|                         if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||
|                             cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); | ||||
|                         } | ||||
|                         // 月累计业绩 = 本人月消费业绩 + 团队月消费业绩 | ||||
|                         BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); | ||||
|                         if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { | ||||
|                             // 月累计业绩 > 大区业绩,则月累计就成为大区了 | ||||
|                             consumeBigPv = consumePv; | ||||
|                         } | ||||
|                     } | ||||
| 
 | ||||
|                     // 小区业绩 = 本人月消费业绩 + 团队月消费业绩 - 大区业绩 | ||||
|                     BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); | ||||
|                     if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { | ||||
|                         // 小区业绩 >= 小区考核业绩 | ||||
|                         if (bdAwards.getPlaceDeptNum() > 0) { | ||||
|                             // 验证是否有多个区满足业绩 | ||||
|                             List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList; | ||||
|                             if (secondRangeTableName != null) { | ||||
|                                 // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 | ||||
|                                 cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); | ||||
|                             } else { | ||||
|                                 // 昨日结算表,查询订单会员直推数据 | ||||
|                                 cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); | ||||
|                             } | ||||
| 
 | ||||
|                             int enoughNum = 0; | ||||
|                             for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { | ||||
|                                 if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||
|                                     cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); | ||||
|                                 } | ||||
|                                 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) { | ||||
|                                     // 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩,则满足条件小部门 +1 | ||||
|                                     enoughNum += 1; | ||||
|                                 } | ||||
|                             } | ||||
|                             if (bdAwards.getPlaceDeptNum() > enoughNum) { | ||||
|                                 break; | ||||
|                             } | ||||
|                         } | ||||
|                         cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue())); | ||||
|                         targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); | ||||
|                         targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); | ||||
|                         continue; | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 计算团队极差奖衔 | ||||
|      */ | ||||
|     public List<CuMemberRetailRangeExt> calculateRetailBackRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, | ||||
|                                                                             Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, | ||||
|                                                                             Integer boxNum, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap) { | ||||
|                                                                             Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, Integer boxNum, | ||||
|                                                                             Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberAwards> cuMemberShareAwardsMap) { | ||||
|         List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = new ArrayList<>(); | ||||
|         // 订单会员 | ||||
|         CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); | ||||
|  | @ -1029,7 +1055,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|                 targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum); | ||||
|                 targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum() - boxNum); | ||||
|                 // 计算等级 | ||||
|                 calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeMap, cuMemberAwardsMap, targetMemberRangeExt); | ||||
|                 calculateBackGrade(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, | ||||
|                         cuMemberGradeMap, cuMemberAwardsMap, cuMemberShareAwardsMap, targetMemberRangeExt); | ||||
|                 cuMemberRetailRangeExtList.add(targetMemberRangeExt); | ||||
|             } | ||||
|             // 计算等级 | ||||
|  | @ -1038,9 +1065,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|         return cuMemberRetailRangeExtList; | ||||
|     } | ||||
| 
 | ||||
|     private void calculateBackGrade(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, | ||||
|                                     SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, | ||||
|                                     String secondRangeTableName, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, | ||||
|     private void calculateBackGrade(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, | ||||
|                                     Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, | ||||
|                                     Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberAwards> cuMemberShareAwardsMap, | ||||
|                                     CuMemberRetailRangeExt targetMemberRangeExt) { | ||||
|         // 遍历团队等级map(V4,V5) | ||||
|         for (Integer gradeValue : retailTeamGradeMap.keySet()) { | ||||
|  | @ -1053,7 +1080,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|                 // 验证小区,计算小区累计盒数 查询伞下会员 | ||||
|                 List<CuMemberRetailRangeExt> cuMemberRangeExtList; | ||||
|                 if (secondRangeTableName != null) { | ||||
|                     // 秒结表关联昨日结算表,查询订单会员直推数据 | ||||
|                     // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 | ||||
|                     cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); | ||||
|                 } else { | ||||
|                     // 昨日结算表,查询订单会员直推数据 | ||||
|  | @ -1107,32 +1134,83 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { | |||
|                 // new 升级奖衔判断为当月累计业绩,累计业绩为团队业绩 + 个人消费业绩 | ||||
|                 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) { | ||||
|                     // 累计业绩足够,即可升奖衔 | ||||
| //                    // 验证小区,计算小区业绩 | ||||
| //                    List<CuMemberRetailRangeExt> cuMemberRangeExtList; | ||||
| //                    if (secondRangeTableName != null) { | ||||
| //                        cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); | ||||
| //                    } else { | ||||
| //                        cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); | ||||
| //                    } | ||||
| //                    BigDecimal consumeBigPv = BigDecimal.ZERO; | ||||
| //                    for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { | ||||
| //                        if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||
| //                            cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); | ||||
| //                        } | ||||
| //                        BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); | ||||
| //                        if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { | ||||
| //                            consumeBigPv = consumePv; | ||||
| //                        } | ||||
| //                    } | ||||
| //                    BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv); | ||||
| //                    if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) { | ||||
|                     CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()); | ||||
|                     cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); | ||||
|                     targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); | ||||
|                     targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); | ||||
|                     targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName()); | ||||
|                     continue; | ||||
| //                    } | ||||
|                 } | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
| 
 | ||||
|         // 计算分红奖衔 | ||||
|         while (true) { | ||||
|             // 当月奖衔值 + 5,获取下一个奖衔值 | ||||
|             int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; | ||||
|             if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { | ||||
|                 BdAwards bdAwards = retailAwardsMap.get(awardsValue); | ||||
|                 // 先验证累计业绩 | ||||
|                 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { | ||||
|                     // 验证小区,计算小区业绩(拉取直推会员数据) | ||||
|                     List<CuMemberRetailRangeExt> cuMemberRangeExtList; | ||||
|                     if (secondRangeTableName != null) { | ||||
|                         // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 | ||||
|                         cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); | ||||
|                     } else { | ||||
|                         // 昨日结算表,查询订单会员直推数据 | ||||
|                         cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); | ||||
|                     } | ||||
|                     // 本人月消费业绩(默认为大区) | ||||
|                     BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); | ||||
|                     for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { | ||||
|                         if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||
|                             cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); | ||||
|                         } | ||||
|                         // 月累计业绩 = 本人月消费业绩 + 团队月消费业绩 | ||||
|                         BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); | ||||
|                         if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { | ||||
|                             // 月累计业绩 > 大区业绩,则月累计就成为大区了 | ||||
|                             consumeBigPv = consumePv; | ||||
|                         } | ||||
|                     } | ||||
| 
 | ||||
|                     // 小区业绩 = 本人月消费业绩 + 团队月消费业绩 - 大区业绩 | ||||
|                     BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); | ||||
|                     if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { | ||||
|                         // 小区业绩 >= 小区考核业绩 | ||||
|                         if (bdAwards.getPlaceDeptNum() > 0) { | ||||
|                             // 验证是否有多个区满足业绩 | ||||
|                             List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList; | ||||
|                             if (secondRangeTableName != null) { | ||||
|                                 // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 | ||||
|                                 cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); | ||||
|                             } else { | ||||
|                                 // 昨日结算表,查询订单会员直推数据 | ||||
|                                 cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); | ||||
|                             } | ||||
| 
 | ||||
|                             int enoughNum = 0; | ||||
|                             for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { | ||||
|                                 if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { | ||||
|                                     cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); | ||||
|                                 } | ||||
|                                 if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) { | ||||
|                                     // 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩,则满足条件小部门 +1 | ||||
|                                     enoughNum += 1; | ||||
|                                 } | ||||
|                             } | ||||
|                             if (bdAwards.getPlaceDeptNum() > enoughNum) { | ||||
|                                 break; | ||||
|                             } | ||||
|                         } | ||||
|                         CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue()); | ||||
|                         cuMemberShareAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); | ||||
|                         targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); | ||||
|                         targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); | ||||
|                         continue; | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             break; | ||||
|  |  | |||
|  | @ -54,8 +54,10 @@ public interface CuMemberAwardsMapper extends BaseMapper<CuMemberAwards> { | |||
|     /** | ||||
|      * 回退等级 | ||||
|      */ | ||||
|     void mergeCuMemberBackAwards(@Param("rangeTableName") String rangeTableName, @Param("pkMember") Long pkMember, | ||||
|                                  @Param("period") Integer period); | ||||
|     void mergeCuMemberBackAwards(@Param("rangeTableName") String rangeTableName, | ||||
|                                  @Param("pkMember") Long pkMember, | ||||
|                                  @Param("period") Integer period, | ||||
|                                  @Param("awardType") Integer awardType); | ||||
| 
 | ||||
|     /** | ||||
|      * 根据结算表更新奖衔 | ||||
|  |  | |||
|  | @ -59,7 +59,7 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> { | |||
|     /** | ||||
|      * 回退奖衔 | ||||
|      */ | ||||
|     void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period); | ||||
|     void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period, Integer isToday); | ||||
| 
 | ||||
|     /** | ||||
|      * 删除奖衔升级记录 | ||||
|  |  | |||
|  | @ -110,8 +110,12 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper, | |||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period) { | ||||
|         baseMapper.mergeCuMemberBackAwards(rangeTableName, pkMember, period); | ||||
|     public void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period, Integer isToday) { | ||||
|         baseMapper.mergeCuMemberBackAwards(rangeTableName, pkMember, period, EAwardsType.RANGE_TYPE.getValue()); | ||||
|         if (EYesNo.YES.getIntValue() == isToday) { | ||||
|             // 当天,需要处理秒结的分红奖衔 | ||||
|             baseMapper.mergeCuMemberBackAwards(rangeTableName, pkMember, period, EAwardsType.SHARE_TYPE.getValue()); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private Boolean calculateAwards(Map<String, BdAwards> countryAwardsMap, String settleTableName, Date settleDate, Integer period, List<CuMemberSettleExt> cuMemberSettleExtList) { | ||||
|  |  | |||
|  | @ -13,6 +13,7 @@ | |||
|         <result column="PHONE" property="phone"/> | ||||
|         <result column="PK_GRADE" property="pkGrade"/> | ||||
|         <result column="PK_AWARDS" property="pkAwards"/> | ||||
|         <result column="PK_SHARE_AWARDS" property="pkShareAwards"/> | ||||
|         <result column="ACCOUNT_STATUS" property="accountStatus"/> | ||||
|         <result column="PAY_STATUS" property="payStatus"/> | ||||
|         <result column="PAY_TIME" property="payTime"/> | ||||
|  | @ -80,7 +81,6 @@ | |||
|             team_num = 0, | ||||
|             enable_status = 1, | ||||
|             pk_grade = (select pk_id from bd_grade where del_flag = 0 and grade_value = 20), | ||||
|             pk_share_awards = (select pk_id from BD_AWARDS where awards_value = 0), | ||||
|             region_address = 0, | ||||
|             big_box_num = 0, | ||||
|             small_box_num = 0, | ||||
|  | @ -91,7 +91,7 @@ | |||
|     <update id="mergeMemberRetailRangeByYesterday"> | ||||
|         merge into ${rangeTableName} a | ||||
|         using( | ||||
|         select pk_member, pk_grade, pk_share_awards, enable_status, | ||||
|         select pk_member, pk_grade, pk_awards, pk_share_awards, enable_status, | ||||
|         new_box_num, consume_box_num, month_box_num, | ||||
|         new_consume_pv, consume_pv, month_consume_pv, | ||||
|         team_new_box_num, team_box_num, team_month_box_num, | ||||
|  | @ -120,7 +120,6 @@ | |||
|             ,a.team_month_box_num = b.team_month_box_num | ||||
|             ,a.team_month_pv = b.team_month_pv | ||||
|             ,a.team_month_amount = b.team_month_amount | ||||
|             ,a.pk_share_awards = b.pk_share_awards | ||||
|         </if> | ||||
|     </update> | ||||
| 
 | ||||
|  | @ -157,6 +156,7 @@ | |||
|                        a.pk_parent, | ||||
|                        a.pk_settle_grade pk_grade, | ||||
|                        a.pk_awards, | ||||
|                        a.pk_range_awards, | ||||
|                        a.is_activate     enable_status, | ||||
|                        a.system_type | ||||
|                 from (select * | ||||
|  | @ -169,8 +169,8 @@ | |||
|             ) b | ||||
|             on (a.pk_member = b.pk_member) | ||||
|             when not matched then | ||||
|                 insert (pk_member, pk_parent, pk_grade, pk_awards, enable_status, system_type) | ||||
|                     values (b.pk_member, b.pk_parent, b.pk_grade, b.pk_awards, b.enable_status, b.system_type) | ||||
|                 insert (pk_member, pk_parent, pk_grade, pk_awards, pk_share_awards, enable_status, system_type) | ||||
|                     values (b.pk_member, b.pk_parent, b.pk_grade, b.pk_awards, b.pk_range_awards, b.enable_status, b.system_type) | ||||
|     </update> | ||||
| 
 | ||||
|     <!-- 更新极差秒接表,用昨天的结算表 --> | ||||
|  | @ -181,6 +181,7 @@ | |||
|                        a.pk_parent, | ||||
|                        a.pk_settle_grade       pk_grade, | ||||
|                        a.pk_awards, | ||||
|                        a.pk_range_awards, | ||||
|                        nvl(b.enable_status, 1) enable_status | ||||
|                 from (select * | ||||
|                       from cu_member | ||||
|  | @ -203,7 +204,9 @@ | |||
|         merge into ${secondTableName} a | ||||
|         using ( | ||||
|         <foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union"> | ||||
|             select #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, #{item.pkAwards} pk_awards, | ||||
|             select | ||||
|             #{item.pkMember} pk_member, #{item.pkGrade} pk_grade, | ||||
|             #{item.pkAwards} pk_awards, #{item.pkShareAwards} pk_share_awards, | ||||
|             #{item.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv, | ||||
|             #{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv, | ||||
|             #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status | ||||
|  | @ -212,7 +215,7 @@ | |||
|         ) b | ||||
|         on (a.pk_member = b.pk_member) | ||||
|         when matched then | ||||
|         update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards, | ||||
|         update set a.pk_grade = b.pk_grade, a.pk_awards = b.pk_awards, a.pk_share_awards = b.pk_share_awards, | ||||
|         a.new_box_num = b.new_box_num, a.new_consume_pv = b.new_consume_pv, | ||||
|         a.team_new_box_num = b.team_new_box_num, a.team_new_pv = b.team_new_pv, | ||||
|         a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status | ||||
|  | @ -220,14 +223,18 @@ | |||
| 
 | ||||
|     <update id="mergeMemberRetailGradeByMember"> | ||||
|         merge into ${rangeTableName} a | ||||
|             using ( | ||||
|                 select pk_id pk_member, pk_parent, pk_settle_grade, pk_awards | ||||
|                 from cu_member start with pk_id = #{pkMember} | ||||
|                 connect by prior pk_parent = pk_id | ||||
|             ) b | ||||
|             on (a.pk_member = b.pk_member) | ||||
|             when matched then | ||||
|                 update set a.pk_grade = b.pk_settle_grade, a.pk_awards = b.pk_awards | ||||
|         using ( | ||||
|         select pk_id pk_member, pk_parent, | ||||
|         pk_settle_grade, pk_awards, pk_range_awards | ||||
|         from cu_member start with pk_id = #{pkMember} | ||||
|         connect by prior pk_parent = pk_id | ||||
|         ) b | ||||
|         on (a.pk_member = b.pk_member) | ||||
|         when matched then | ||||
|         update set a.pk_grade = b.pk_settle_grade, a.pk_awards = b.pk_awards | ||||
|         <if test="isToday == 0"> | ||||
|             , a.pk_share_awards = b.pk_range_awards | ||||
|         </if> | ||||
|     </update> | ||||
| 
 | ||||
|     <update id="mergeMemberRetailRegion"> | ||||
|  | @ -305,6 +312,7 @@ | |||
|             a.account_status, | ||||
|             a.pk_grade, | ||||
|             a.pk_awards, | ||||
|             a.pk_share_awards, | ||||
|             a.income_status, | ||||
|             a.consume_pv, | ||||
|             a.pay_time, | ||||
|  | @ -313,7 +321,6 @@ | |||
|             a.income_status, | ||||
|             a.pk_country, | ||||
|             a.pk_settle_country, | ||||
|             a.pk_share_awards, | ||||
|             a.enable_status, | ||||
|             new_box_num, | ||||
|             consume_box_num, | ||||
|  | @ -332,7 +339,6 @@ | |||
|             team_month_amount, | ||||
|             recommend_num, | ||||
|             team_num, | ||||
|             pk_grade, | ||||
|             ba.grade_value, | ||||
|             ba.grade_name, | ||||
|             bw.awards_value, | ||||
|  | @ -373,6 +379,7 @@ | |||
|                a.account_status, | ||||
|                a.pk_grade, | ||||
|                a.pk_awards, | ||||
|                a.pk_share_awards, | ||||
|                a.income_status, | ||||
|                a.consume_pv, | ||||
|                a.pay_time, | ||||
|  | @ -380,7 +387,6 @@ | |||
|                a.income_status, | ||||
|                a.pk_country, | ||||
|                a.pk_settle_country, | ||||
|                a.pk_share_awards, | ||||
|                a.big_box_num, | ||||
|                a.small_box_num, | ||||
|                a.big_team_pv, | ||||
|  | @ -407,7 +413,7 @@ | |||
|                ba.grade_name, | ||||
|                bw.awards_value, | ||||
|                bw.awards_name, | ||||
|                bwa.awards_value share_awards_value, | ||||
|                bws.awards_value share_awards_value, | ||||
|                bw.range_ratio, | ||||
|                bw.benefit_avg_ratio, | ||||
|                bw.benefit_share_ratio, | ||||
|  | @ -416,13 +422,12 @@ | |||
|                  inner join bd_grade ba | ||||
|                             on a.pk_grade = ba.pk_id | ||||
|                  inner join bd_awards bw | ||||
|                             on bw.pk_id = a.pk_awards | ||||
|                             on bw.pk_id = a.pk_awards and bw.del_flag = 0 | ||||
|                  inner join bd_awards bws | ||||
|                            on bws.pk_id = a.pk_share_awards and bws.del_flag = 0 | ||||
|                  left join bd_area br | ||||
|                            on br.pk_id = a.region_address and br.del_flag = 0 | ||||
|                  left join bd_awards bwa | ||||
|                            on bwa.pk_id = a.pk_share_awards and bwa.del_flag = 0 | ||||
|         where ba.del_flag = 0 | ||||
|           and bw.del_flag = 0 | ||||
|           and a.pk_parent = #{pkParent} | ||||
|     </select> | ||||
| 
 | ||||
|  | @ -504,9 +509,9 @@ | |||
|                pk_parent, | ||||
|                member_code, | ||||
|                member_name, | ||||
|                a.pk_awards, | ||||
|                a.pk_grade, | ||||
|                a.pk_rate, | ||||
|                a.pk_grade, | ||||
|                a.pk_awards, | ||||
|                a.pk_share_awards, | ||||
|                a.enable_status, | ||||
|                a.income_status, | ||||
|  | @ -518,6 +523,7 @@ | |||
|                bg.grade_name, | ||||
|                bw.awards_value, | ||||
|                bw.awards_name, | ||||
|                bwa.awards_value share_awards_value, | ||||
|                a.account_status, | ||||
|                a.category, | ||||
|                bw.range_ratio, | ||||
|  | @ -527,6 +533,8 @@ | |||
|         from ${rangeTableName} a | ||||
|                  inner join bd_awards bw | ||||
|                             on bw.pk_id = a.pk_awards | ||||
|                  inner join bd_awards bwa | ||||
|                             on bwa.pk_id = a.pk_share_awards | ||||
|                  inner join bd_grade bg | ||||
|                             on bg.pk_id = a.pk_grade | ||||
|                  inner join bd_area ba | ||||
|  | @ -595,6 +603,7 @@ | |||
|                cm.account_status, | ||||
|                a.pk_grade, | ||||
|                a.pk_awards, | ||||
|                a.pk_share_awards, | ||||
|                cm.income_status, | ||||
|                cm.pay_time, | ||||
|                b.pk_rate, | ||||
|  | @ -626,6 +635,7 @@ | |||
|                bw.range_ratio, | ||||
|                bw.benefit_avg_ratio, | ||||
|                bw.benefit_share_ratio, | ||||
|                bws.awards_value                                  share_awards_value, | ||||
|                br.name                                           country_name, | ||||
|                cr.county                                         region_address | ||||
|         from ( | ||||
|  | @ -638,15 +648,16 @@ | |||
|                  inner join cu_member cm | ||||
|                             on cm.pk_id = a.pk_member | ||||
|                  inner join bd_awards bw | ||||
|                             on bw.pk_id = a.pk_awards | ||||
|                             on bw.pk_id = a.pk_awards and bw.del_flag = 0 | ||||
|                  inner join bd_awards bws | ||||
|                             on bws.pk_id = a.pk_share_awards and bws.del_flag = 0 | ||||
|                  inner join bd_grade bg | ||||
|                             on bg.pk_id = a.pk_grade | ||||
|                  left join cu_member_retail_region cr | ||||
|                            on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0 | ||||
|                  left join bd_area br | ||||
|                            on br.pk_id = cr.county and br.del_flag = 0 | ||||
|         where bw.del_flag = 0 | ||||
|           and bg.del_flag = 0 | ||||
|         where bg.del_flag = 0 | ||||
|     </select> | ||||
| 
 | ||||
|     <select id="queryCuMemberSecondRange" resultMap="CuMemberRetailRangeExt"> | ||||
|  | @ -679,6 +690,9 @@ | |||
| 
 | ||||
|     <select id="queryCuMemberSecondRangeExtByParent" resultMap="CuMemberRetailRangeExt"> | ||||
|         select cm.pk_id pkMember, | ||||
|         cm.pk_parent, | ||||
|         nvl(b.month_consume_pv, 0) + nvl(a.new_consume_pv, 0) month_consume_pv, | ||||
|         nvl(b.team_month_pv, 0) + nvl(a.team_new_pv, 0) team_month_pv, | ||||
|         nvl(b.consume_box_num, 0) + nvl(a.new_box_num, 0) consume_box_num, | ||||
|         nvl(b.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num, | ||||
|         nvl(b.big_box_num, 0) big_box_num, | ||||
|  | @ -766,24 +780,25 @@ | |||
|     <select id="queryCuMemberRetailRangeEnoughAchieve" resultType="com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt"> | ||||
|         select pk_member, | ||||
|                pk_parent, | ||||
|                consume_box_num, | ||||
|                new_box_num, | ||||
|                team_box_num, | ||||
|                consume_box_num, | ||||
|                month_box_num, | ||||
|                team_new_box_num, | ||||
|                new_consume_pv, | ||||
|                consume_pv, | ||||
|                month_consume_pv, | ||||
|                new_consume_pv, | ||||
|                team_consume_amount, | ||||
|                team_new_box_num, | ||||
|                team_box_num, | ||||
|                team_month_box_num, | ||||
|                team_new_pv, | ||||
|                team_consume_pv, | ||||
|                team_month_amount, | ||||
|                team_month_pv, | ||||
|                team_new_amount, | ||||
|                team_consume_amount, | ||||
|                team_month_amount, | ||||
|                big_box_num, | ||||
|                small_box_num, | ||||
|                big_team_pv, | ||||
|                small_team_pv, | ||||
|                team_new_amount, | ||||
|                team_new_pv | ||||
|                small_team_pv | ||||
|         from ${tableName} | ||||
|         where pk_parent = #{pkParent} | ||||
|     </select> | ||||
|  |  | |||
|  | @ -460,17 +460,17 @@ | |||
|         inner join ( | ||||
|         select a.pk_member,a.new_level pk_awards | ||||
|         from cu_member_awards a | ||||
|         inner join( | ||||
|         inner join ( | ||||
|         select pk_member, max(pk_id) pk_id | ||||
|         from cu_member_awards | ||||
|         where del_flag = 0 and up_type=2 | ||||
|         where del_flag = 0 and up_type = 2 | ||||
|         and end_validity_date <= #{settleDate, jdbcType=DATE} | ||||
|         and award_type = #{awardType} | ||||
|         group by pk_member) b | ||||
|         on a.pk_id = b.pk_id | ||||
|         where a.del_flag = 0 | ||||
|         ) y | ||||
|         on x.pk_member=y.pk_member | ||||
|         on x.pk_member = y.pk_member | ||||
|         where | ||||
|         <if test="awardType == 1"> | ||||
|             x.pk_awards < y.pk_awards | ||||
|  | @ -486,25 +486,26 @@ | |||
|             a.pk_awards = b.pk_awards | ||||
|         </if> | ||||
|         <if test="awardType == 2"> | ||||
|             a.pk_share_awards=b.pk_awards | ||||
|             a.pk_share_awards = b.pk_awards | ||||
|         </if> | ||||
|     </update> | ||||
| 
 | ||||
|     <!-- 初始化期间奖衔 --> | ||||
|     <update id="updateCuMemberRetailRangeInitAward"> | ||||
|         update ${rangeTableName} | ||||
|         set pk_awards = (select pk_id from bd_awards where awards_value = 0) | ||||
|         set pk_awards = (select pk_id from bd_awards where awards_value = 0), | ||||
|             pk_share_awards = (select pk_id from bd_awards where awards_value = 0) | ||||
|     </update> | ||||
| 
 | ||||
|     <!-- 初始化期间V5奖衔 --> | ||||
|     <update id="updateCuMemberRetailRangeInitV5Award"> | ||||
|         update ${rangeTableName} | ||||
|         set pk_awards = (select pk_id from bd_awards where awards_value = 5) | ||||
|         set pk_awards = (select pk_id from bd_awards where awards_value = 5), | ||||
|             pk_share_awards = (select pk_id from bd_awards where awards_value = 5) | ||||
|         where pk_grade = ( | ||||
|             select pk_id | ||||
|             from bd_grade | ||||
|             where grade_value = 70 | ||||
|               and del_flag = 0 | ||||
|             where grade_value = 70 and del_flag = 0 | ||||
|         ) | ||||
|     </update> | ||||
| 
 | ||||
|  | @ -529,7 +530,8 @@ | |||
|             pk_member        NUMBER(20) not null, | ||||
|             pk_parent        NUMBER(20) not null, | ||||
|             pk_grade         NUMBER(4) not null, | ||||
|             pk_awards        number(4) default 1 not null, | ||||
|             pk_awards        number(4) default 10 not null, | ||||
|             pk_share_awards  number(4) default 10 not null, | ||||
|             enable_status    number(2) default 1 not null, | ||||
|             system_type      NUMBER(2) default 2 not null, | ||||
|             new_box_num      number(8) default 0 not null, | ||||
|  | @ -550,8 +552,8 @@ | |||
|             customer_type       NUMBER(2) not null, | ||||
|             phone               VARCHAR2(40) not null, | ||||
|             pk_grade            NUMBER(4) not null, | ||||
|             pk_awards           number(4) default 1 not null, | ||||
|             pk_share_awards     number(4) default 12 not null, | ||||
|             pk_awards           number(4) default 10 not null, | ||||
|             pk_share_awards     number(4) default 10 not null, | ||||
|             enable_status       number(2) default 1 not null, | ||||
|             account_status      number(1) default 0 not null, | ||||
|             pay_status          NUMBER(2) default 0 not null, | ||||
|  |  | |||
|  | @ -195,7 +195,7 @@ | |||
|         using ( | ||||
|         select pk_member, max(new_level) pk_awards | ||||
|         from cu_member_awards | ||||
|         where period = #{period} and award_type=#{awardType} | ||||
|         where period = #{period} and award_type = #{awardType} | ||||
|         and del_flag = 0 | ||||
|         group by pk_member | ||||
|         ) b | ||||
|  | @ -324,7 +324,8 @@ | |||
|     <update id="updateCuMemberRetailRangeAwardByDate"> | ||||
|         merge into cu_member a | ||||
|         using ( | ||||
|         select y.pk_member,y.pk_awards from cu_member x | ||||
|         select y.pk_member, y.pk_awards | ||||
|         from cu_member x | ||||
|         inner join ( | ||||
|         select a.pk_member,a.new_level pk_awards | ||||
|         from cu_member_awards a | ||||
|  | @ -363,13 +364,15 @@ | |||
|     <!-- 初始化会员奖衔 --> | ||||
|     <update id="updateCuMemberRetailRangeInitAward"> | ||||
|         update cu_member | ||||
|         set pk_awards = (select pk_id from bd_awards where awards_value = 0) | ||||
|         set pk_awards = (select pk_id from bd_awards where awards_value = 0), | ||||
|             pk_range_awards = (select pk_id from bd_awards where awards_value = 0) | ||||
|     </update> | ||||
| 
 | ||||
|     <!-- 初始化会员V5奖衔 --> | ||||
|     <update id="updateCuMemberRetailRangeInitV5Award"> | ||||
|         update cu_member | ||||
|         set pk_awards = (select pk_id from bd_awards where awards_value = 5) | ||||
|         set pk_awards       = (select pk_id from bd_awards where awards_value = 5), | ||||
|             pk_range_awards = (select pk_id from bd_awards where awards_value = 5) | ||||
|         where pk_settle_grade = ( | ||||
|             select pk_id | ||||
|             from bd_grade | ||||
|  | @ -401,7 +404,11 @@ | |||
|         using ( | ||||
|         select pk_member, max(pk_awards) pk_awards from ( | ||||
|         <foreach item="item" index="index" collection="cuMemberAwardsList" separator=" union "> | ||||
|             select #{item.pkMember} pk_member,#{item.newLevel} pk_awards, #{item.awardType} award_type from dual | ||||
|             select | ||||
|             #{item.pkMember} pk_member, | ||||
|             #{item.newLevel} pk_awards, | ||||
|             #{item.awardType} award_type | ||||
|             from dual | ||||
|         </foreach> | ||||
|         ) | ||||
|         where award_type = #{awardType} | ||||
|  |  | |||
|  | @ -69,13 +69,14 @@ | |||
|                          inner join ( | ||||
|                     select ca.pk_member, min(ca.pk_id) pk_id | ||||
|                     from cu_member_awards ca | ||||
|                              inner join bd_awards bw | ||||
|                                         on ca.new_level = bw.pk_id | ||||
|                             inner join bd_awards bw | ||||
|                             on ca.new_level = bw.pk_id | ||||
|                             and bw.del_flag = 0 | ||||
|                             and bw.awards_value >= 5 | ||||
|                     where ca.del_flag = 0 | ||||
|                       and bw.del_flag = 0 | ||||
|                       and bw.awards_value >= 5 | ||||
|                       and ca.up_type = 1 | ||||
|                       and ca.period = #{period} | ||||
|                       and ca.award_type = #{awardType} | ||||
|                       and ca.pk_member in | ||||
|                           (select pk_id | ||||
|                            from cu_member start | ||||
|  | @ -85,7 +86,13 @@ | |||
|             ) cx on cw.pk_id = cx.pk_id where cw.del_flag = 0 | ||||
|             ) b on (a.pk_member = b.pk_member) | ||||
|         when matched then | ||||
|         update set a.pk_awards = b.old_level | ||||
|         update set | ||||
|         <if test="awardType == 1"> | ||||
|             a.pk_awards = b.old_level | ||||
|         </if> | ||||
|         <if test="awardType == 2"> | ||||
|             a.pk_share_awards = b.old_level | ||||
|         </if> | ||||
|     </update> | ||||
| 
 | ||||
|     <!-- 删除自动升级的奖衔升级记录 --> | ||||
|  | @ -142,14 +149,15 @@ | |||
|     </select> | ||||
| 
 | ||||
|     <select id="queryCuMemberAwards" resultType="com.hzs.common.domain.member.detail.CuMemberAwards"> | ||||
|         select ca.* from cu_member_awards ca | ||||
|         select ca.* | ||||
|         from cu_member_awards ca | ||||
|         inner join bd_awards bw | ||||
|         on ca.new_level = bw.pk_id | ||||
|         where ca.del_flag = 0 | ||||
|         and bw.del_flag = 0 | ||||
|         and bw.awards_value >= 5 | ||||
|         and ca.up_type = 1 and ca.period = #{period} | ||||
|           and ca.pk_member in | ||||
|         and ca.pk_member in | ||||
|         <foreach collection="cuMemberRetailRangeExtList" item="item" open="(" close=")" separator=","> | ||||
|             #{item.pkMember} | ||||
|         </foreach> | ||||
|  |  | |||
|  | @ -881,7 +881,6 @@ public class CuMemberController extends BaseController { | |||
|                     cvo.setIsConsume(EYesNo.NO.getIntValue()); | ||||
|                 } | ||||
|                 cvo.setCategoryVal(transactionMap.get(EnumsPrefixConstants.ENU_CAT + cvo.getCategory())); | ||||
|                 cvo.setAccountStatusVal(transactionMap.get(EnumsPrefixConstants.ACCOUNT_STATUS + cvo.getAccountStatus())); | ||||
|                 cvo.setIsRealNameVal(transactionMap.get(EnumsPrefixConstants.YES_NO_ATTESTATION + cvo.getIsRealName())); | ||||
|                 cvo.setOrderSourceVal(transactionMap.get(EnumsPrefixConstants.ORDER_SOURCE + cvo.getOrderSource())); | ||||
|                 cvo.setMemberAccountVal(getMemberAccountVal(cmvo, transactionMap)); | ||||
|  | @ -997,7 +996,6 @@ public class CuMemberController extends BaseController { | |||
|                     cvo.setIsConsume(EYesNo.NO.getIntValue()); | ||||
|                 } | ||||
|                 cvo.setCategoryVal(transactionMap.get(EnumsPrefixConstants.ENU_CAT + cvo.getCategory())); | ||||
|                 cvo.setAccountStatusVal(transactionMap.get(EnumsPrefixConstants.ACCOUNT_STATUS + cvo.getAccountStatus())); | ||||
|                 cvo.setIsRealNameVal(transactionMap.get(EnumsPrefixConstants.YES_NO_ATTESTATION + cvo.getIsRealName())); | ||||
|                 cvo.setOrderSourceVal(transactionMap.get(EnumsPrefixConstants.ORDER_SOURCE + cvo.getOrderSource())); | ||||
|                 cvo.setMemberAccountVal(getMemberAccountVal(cmvo, transactionMap)); | ||||
|  |  | |||
|  | @ -15,11 +15,7 @@ import java.util.Date; | |||
| import java.util.List; | ||||
| 
 | ||||
| /** | ||||
|  * @description: 新零售系统会员后台查询会员的实体vo | ||||
|  * @author: zhang jing | ||||
|  * @date: 2024/12/9 16:28 | ||||
|  * @param: | ||||
|  * @return: | ||||
|  * 新零售系统会员后台查询会员的实体vo | ||||
|  **/ | ||||
| @Data | ||||
| @EqualsAndHashCode(callSuper = false) | ||||
|  | @ -69,25 +65,26 @@ public class RetailMemberVO implements Serializable { | |||
|     private String parMemberName; | ||||
| 
 | ||||
|     /** | ||||
|      * 级差奖衔 | ||||
|      * 当月奖衔 | ||||
|      */ | ||||
|     @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD) | ||||
|     private Integer pkAwards; | ||||
| 
 | ||||
|     @Excel(name = "级差奖衔") | ||||
|     @Excel(name = "当月奖衔") | ||||
|     private String pkAwardsVal; | ||||
| 
 | ||||
|     /** | ||||
|      * 分红奖衔 | ||||
|      */ | ||||
|     private Integer pkRangeAwards; | ||||
|     @Excel(name = "分红奖衔") | ||||
|     private String pkRangeAwardsVal; | ||||
| 
 | ||||
|     /** | ||||
|      * 荣誉奖衔 | ||||
|      */ | ||||
|     @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD) | ||||
|     private Integer pkRangeAwards; | ||||
| 
 | ||||
|     /** | ||||
|      * 荣誉奖衔显示 | ||||
|      */ | ||||
|     private Integer pkMaxAwards; | ||||
|     @Excel(name = "荣誉奖衔") | ||||
|     private String pkRangeAwardsVal; | ||||
|     private String  pkMaxAwardsVal; | ||||
| 
 | ||||
| 
 | ||||
|     /** | ||||
|      * 订单来源 (1=实单注册,2=空单注册)订单状态 EOrderSource | ||||
|  |  | |||
|  | @ -37,6 +37,7 @@ public class MemberRetailServiceImpl implements IMemberRetailService { | |||
|                     .pkSettleCountry(CountryConstants.CHINA_COUNTRY) | ||||
|                     .pkGrade(cuMember.getPkSettleGrade()) | ||||
|                     .pkAwards(cuMember.getPkAwards()) | ||||
|                     .pkRangeAwards(cuMember.getPkRangeAwards()) | ||||
|                     .pkMaxAwards(cuMember.getPkMaxAwards()) | ||||
|                     .build()).getData(); | ||||
| 
 | ||||
|  | @ -79,8 +80,8 @@ public class MemberRetailServiceImpl implements IMemberRetailService { | |||
|                     .awardsIcon(memberDataDTO.getAwardsIcon()) | ||||
|                     .pkMaxAwardsVal(memberDataDTO.getMaxAwardsVal()) | ||||
|                     .maxAwardsIcon(memberDataDTO.getMaxAwardsIcon()) | ||||
| //                    .pkRangeAwardsVal(memberDataDTO.getRangeAwardsVal()) | ||||
| //                    .rangeAwardsIcon(memberDataDTO.getRangeAwardsIcon()) | ||||
|                     .pkRangeAwardsVal(memberDataDTO.getRangeAwardsVal()) | ||||
|                     .rangeAwardsIcon(memberDataDTO.getRangeAwardsIcon()) | ||||
|                     .currencyIcon(memberDataDTO.getCurrencyIcon()) | ||||
|                     .memberSign(memberSign) | ||||
|                     .control(control) | ||||
|  |  | |||
|  | @ -93,14 +93,14 @@ public class RetailMemberInfoVO implements Serializable { | |||
|      */ | ||||
|     private String maxAwardsIcon; | ||||
| 
 | ||||
| //    /** | ||||
| //     * 荣誉奖衔名称 | ||||
| //     */ | ||||
| //    private String pkRangeAwardsVal; | ||||
| //    /** | ||||
| //     * 荣誉奖衔图标 | ||||
| //     */ | ||||
| //    private String rangeAwardsIcon; | ||||
|     /** | ||||
|      * 分红奖衔名称 | ||||
|      */ | ||||
|     private String pkRangeAwardsVal; | ||||
|     /** | ||||
|      * 分红奖衔图标 | ||||
|      */ | ||||
|     private String rangeAwardsIcon; | ||||
| 
 | ||||
|     /** | ||||
|      * 币种图标 | ||||
|  |  | |||
|  | @ -2291,10 +2291,11 @@ | |||
|         cma.transfer_status as transferstatus, | ||||
|         ver.vertex_name as vertexName, | ||||
|         cmt.team_name as teamName, | ||||
|         gr.GRADE_NAME as pkRegisterGradeVal, | ||||
|         grr.GRADE_NAME as pkSettleGradeVal, | ||||
|         awa.AWARDS_NAME as pkAwardsVal, | ||||
|         awar.AWARDS_NAME as pkRangeAwardsVal, | ||||
|         gr.grade_name as pkRegisterGradeVal, | ||||
|         grr.grade_name as pkSettleGradeVal, | ||||
|         awa.awards_name as pkAwardsVal, | ||||
|         awar.awards_name as pkRangeAwardsVal, | ||||
|         awm.awards_name as pkMaxAwardsVal, | ||||
|         par.member_code parMemberCode, | ||||
|         par.member_name parMemberName, | ||||
|         pr.NAME giftProvince, | ||||
|  | @ -2306,9 +2307,11 @@ | |||
|         left join cu_member par | ||||
|         ON par.pk_id = cm.pk_parent | ||||
|         left join bd_awards awa | ||||
|         on awa.pk_id = cm.PK_AWARDS | ||||
|         on awa.pk_id = cm.pk_awards | ||||
|         left join bd_awards awar | ||||
|         on awar.pk_id = cm.PK_RANGE_AWARDS | ||||
|         on awar.pk_id = cm.pk_range_awards | ||||
|         left join bd_awards awm | ||||
|         on awm.pk_id = cm.pk_max_awards | ||||
|         left join bd_grade gr | ||||
|         on gr.pk_id = cm.PK_REGISTER_GRADE | ||||
|         left join bd_grade grr | ||||
|  | @ -2318,7 +2321,7 @@ | |||
|         left join cu_member_team cmt | ||||
|         on cmt.pk_id = cm.pk_team_code | ||||
|         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 | ||||
|  | @ -2333,18 +2336,12 @@ | |||
|         on cm.pk_id = cma.PK_MEMBER | ||||
|         left join cu_member par | ||||
|         ON par.pk_id = cm.pk_parent | ||||
|         left join bd_awards awa | ||||
|         on awa.pk_id = cm.PK_AWARDS | ||||
|         left join bd_grade gr | ||||
|         on gr.pk_id = cm.PK_REGISTER_GRADE | ||||
|         left join bd_grade grr | ||||
|         on grr.pk_id = cm.PK_SETTLE_GRADE | ||||
|         left join bd_vertex ver | ||||
|         on cm.pk_vertex = ver.pk_id | ||||
|         left join cu_member_team cmt | ||||
|         on cmt.pk_id = cm.pk_team_code | ||||
|         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 | ||||
|         WHERE cm.del_flag = 0 | ||||
|         <if test="isActivate != null"> | ||||
|             and cm.IS_ACTIVATE = #{isActivate} | ||||
|  | @ -2412,19 +2409,22 @@ | |||
|             and cm.member_name like #{memberName}||'%' | ||||
|         </if> | ||||
|         <if test="phone != null and phone != ''"> | ||||
|             and cm.phone=#{phone} | ||||
|             and cm.phone = #{phone} | ||||
|         </if> | ||||
|         <if test="pkRegisterGrade != null "> | ||||
|             and cm.pk_register_grade =#{pkRegisterGrade} | ||||
|             and cm.pk_register_grade = #{pkRegisterGrade} | ||||
|         </if> | ||||
|         <if test="pkSettleGrade != null "> | ||||
|             and cm.PK_SETTLE_GRADE =#{pkSettleGrade} | ||||
|             and cm.pk_settle_grade = #{pkSettleGrade} | ||||
|         </if> | ||||
|         <if test="pkAwards != null"> | ||||
|             and cm.pk_awards=#{pkAwards} | ||||
|             and cm.pk_awards = #{pkAwards} | ||||
|         </if> | ||||
|         <if test="pkRangeAwards != null"> | ||||
|             and cm.pk_range_awards=#{pkRangeAwards} | ||||
|             and cm.pk_range_awards = #{pkRangeAwards} | ||||
|         </if> | ||||
|         <if test="pkMaxAwards != null"> | ||||
|             and cm.pk_max_awards = #{pkMaxAwards} | ||||
|         </if> | ||||
|         <if test="directPushNumber != null"> | ||||
|             and cm.DIRECT_PUSH_NUMBER=#{directPushNumber} | ||||
|  |  | |||
|  | @ -278,11 +278,12 @@ | |||
|         vertexname, | ||||
|         creationtime, | ||||
|         endvaliditydate | ||||
|         from (select cm.pk_id        as pkmember, | ||||
|         from ( | ||||
|         select cm.pk_id as pkmember, | ||||
|         cma.period, | ||||
|         cma.up_type     as uptype, | ||||
|         cm.member_code  as membercode, | ||||
|         cm.member_name  as membername, | ||||
|         cma.up_type as uptype, | ||||
|         cm.member_code as membercode, | ||||
|         cm.member_name as membername, | ||||
|         cm.phone, | ||||
|         baa.awards_name as pkAwardsVal, | ||||
|         bam.awards_name as pkMaxAwardsVal, | ||||
|  | @ -326,10 +327,10 @@ | |||
|             AND cma.UP_TYPE = #{upType} | ||||
|         </if> | ||||
|         <if test="pkAwards != null"> | ||||
|             AND AW.PK_ID = #{pkAwards} | ||||
|             AND baa.PK_ID = #{pkAwards} | ||||
|         </if> | ||||
|         <if test="pkMaxAwards != null"> | ||||
|             AND AWW.PK_ID = #{pkMaxAwards} | ||||
|             AND bam.PK_ID = #{pkMaxAwards} | ||||
|         </if> | ||||
|         <if test="startDate != null and startDate!='' "> | ||||
|             and cmsp.SETTLE_DATE >= to_date(#{startDate}, 'yyyy-mm-dd') | ||||
|  |  | |||
|  | @ -155,6 +155,17 @@ public class CommonServiceProvider implements ICommonServiceApi { | |||
|                 } | ||||
|             } | ||||
|         } | ||||
|         // 分红奖衔 | ||||
|         if (null != memberDataDTO.getPkRangeAwards()) { | ||||
|             BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkRangeAwards()); | ||||
|             if (null != bdAwards) { | ||||
|                 if (bdAwards.getAwardsValue() > EAwards.HIGH_MANAGER.getValue()) { | ||||
|                     // 前4级不显示分红奖衔 | ||||
|                     memberDataDTO.setRangeAwardsVal(bdAwards.getAwardsName()); | ||||
|                     memberDataDTO.setRangeAwardsIcon(bdAwards.getImage()); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         // 币种 | ||||
|         if (null != memberDataDTO.getPkSettleCountry()) { | ||||
|             BdCurrency bdCurrency = iBdCurrencyService.getCurrency(memberDataDTO.getPkSettleCountry()); | ||||
|  |  | |||
|  | @ -12,14 +12,14 @@ import lombok.Getter; | |||
| public enum EAwardsType { | ||||
| 
 | ||||
|     /** | ||||
|      * 级差奖衔(荣誉级别) | ||||
|      * 当月奖衔 | ||||
|      */ | ||||
|     RANGE_TYPE(1, "级差奖衔", 0, EnumsPrefixConstants.AWARDS_TYPE + "1"), | ||||
|     RANGE_TYPE(1, "当月奖衔", 0), | ||||
| 
 | ||||
|     /** | ||||
|      * 荣誉奖衔、分红奖衔 | ||||
|      * 分红奖衔 | ||||
|      */ | ||||
|     SHARE_TYPE(2, "荣誉奖衔", 0, EnumsPrefixConstants.AWARDS_TYPE + "2"), | ||||
|     SHARE_TYPE(2, "分红奖衔", 0), | ||||
| 
 | ||||
|     ; | ||||
| 
 | ||||
|  | @ -35,8 +35,4 @@ public enum EAwardsType { | |||
|      * 是否启用(0=是,1=否) -- 来源EYesNo | ||||
|      */ | ||||
|     private final int enable; | ||||
|     /** | ||||
|      * 国际化翻译key值 | ||||
|      */ | ||||
|     private final String key; | ||||
| } | ||||
|  |  | |||
|  | @ -53,6 +53,9 @@ public class CuMemberRetailRange extends BaseEntity { | |||
|     @TableField("PK_GRADE") | ||||
|     private Integer pkGrade; | ||||
| 
 | ||||
|     /** | ||||
|      * 会员奖衔(当月奖衔) | ||||
|      */ | ||||
|     @TableField("PK_AWARDS") | ||||
|     private Integer pkAwards; | ||||
| 
 | ||||
|  |  | |||
|  | @ -28,6 +28,9 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange { | |||
|      */ | ||||
|     private Integer awardsValue; | ||||
| 
 | ||||
|     /** | ||||
|      * 分红奖衔值 | ||||
|      */ | ||||
|     private Integer shareAwardsValue; | ||||
| 
 | ||||
|     /** | ||||
|  |  | |||
|  | @ -157,13 +157,13 @@ public class CuMember extends BaseEntity { | |||
|     private Integer pkSettleGradeValue; | ||||
| 
 | ||||
|     /** | ||||
|      * 真实奖衔 | ||||
|      * 当月奖衔 | ||||
|      */ | ||||
|     @TableField("PK_AWARDS") | ||||
|     private Integer pkAwards; | ||||
| 
 | ||||
|     /** | ||||
|      * 最高奖衔 | ||||
|      * 最高奖衔(荣誉奖衔) | ||||
|      */ | ||||
|     @TableField("PK_MAX_AWARDS") | ||||
|     private Integer pkMaxAwards; | ||||
|  | @ -392,13 +392,13 @@ public class CuMember extends BaseEntity { | |||
|     private Integer systemType; | ||||
| 
 | ||||
|     /** | ||||
|      * 荣誉奖衔 | ||||
|      * 分红奖衔 | ||||
|      */ | ||||
|     @TableField("PK_RANGE_AWARDS") | ||||
|     private Integer pkRangeAwards; | ||||
| 
 | ||||
|     /** | ||||
|      * 福利奖衔 | ||||
|      * 福利奖衔(暂时不用) | ||||
|      */ | ||||
|     @TableField("PK_BENEFIT_AWARDS") | ||||
|     private Integer pkBenefitAwards; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue