Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
sangelxiu1 2025-06-19 17:35:29 +08:00
commit 01d77cdf10
25 changed files with 410 additions and 269 deletions

View File

@ -37,6 +37,11 @@ public class RetailMemberDataDTO implements Serializable {
*/ */
private Integer pkMaxAwards; private Integer pkMaxAwards;
/**
* 分红奖衔
*/
private Integer pkRangeAwards;
/** /**
* 国家名称 * 国家名称
*/ */
@ -86,6 +91,15 @@ public class RetailMemberDataDTO implements Serializable {
*/ */
private String maxAwardsIcon; private String maxAwardsIcon;
/**
* 分红奖衔名称
*/
private String rangeAwardsVal;
/**
* 分红奖衔图标
*/
private String rangeAwardsIcon;
/** /**
* 币种图标 * 币种图标
*/ */

View File

@ -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> queryCuMemberSecondRangeYes(@Param("rangeTableName") String rangeTableName, @Param("pkMember") Long pkMember);
/** /**
* 推荐推荐人查询推荐人下的所有部门, 该订单日期之前的算他的网体 * 秒结推荐人查询推荐人下的所有部门, 该订单日期之前的算他的网体
*/ */
List<CuMemberRetailRangeExt> queryCuMemberSecondRangeExtByParent(@Param("rangeTableName") String rangeTableName, @Param("secondTableName") String secondTableName, @Param("pkMember") Long pkMember); List<CuMemberRetailRangeExt> queryCuMemberSecondRangeExtByParent(@Param("rangeTableName") String rangeTableName, @Param("secondTableName") String secondTableName, @Param("pkMember") Long pkMember);

View File

@ -124,7 +124,7 @@ public interface ICuMemberRetailRangeService extends IService<CuMemberRetailRang
/** /**
* 更新购买订单的等级 * 更新购买订单的等级
*/ */
void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember); void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember, Integer isToday);
/** /**
* 更新会员树的累计业绩 * 更新会员树的累计业绩

View File

@ -177,8 +177,8 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
} }
@Override @Override
public void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember) { public void mergeMemberRetailGradeByMember(String rangeTableName, Long pkMember, Integer isToday) {
baseMapper.mergeMemberRetailGradeByMember(rangeTableName, pkMember); baseMapper.mergeMemberRetailGradeByMember(rangeTableName, pkMember, isToday);
} }
@Override @Override

View File

@ -145,13 +145,13 @@ public class CuMemberTreeServiceImpl extends ServiceImpl<CuMemberTreeMapper, CuM
@Override @Override
public void updateBackCuMemberRetailRangeAward(String rangeTableName, Integer period) { public void updateBackCuMemberRetailRangeAward(String rangeTableName, Integer period) {
baseMapper.updateBackCuMemberRetailRangeAward(rangeTableName, period, EAwardsType.RANGE_TYPE.getValue()); 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 @Override
public void updateCuMemberRetailRangeAwardByDate(String rangeTableName, Date settleDate) { public void updateCuMemberRetailRangeAwardByDate(String rangeTableName, Date settleDate) {
baseMapper.updateCuMemberRetailRangeAwardByDate(rangeTableName, settleDate, EAwardsType.RANGE_TYPE.getValue()); 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 @Override

View File

@ -41,13 +41,13 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
@Override @Override
public void updateCuMemberRetailRangeByPeriod(List<CuMemberAwards> cuMemberAwardsList, Integer period) { public void updateCuMemberRetailRangeByPeriod(List<CuMemberAwards> cuMemberAwardsList, Integer period) {
baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue()); baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue());
// baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.SHARE_TYPE.getValue()); baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.SHARE_TYPE.getValue());
} }
@Override @Override
public void updateCuMemberRetailRangeByList(List<CuMemberAwards> cuMemberAwardsList, Integer period) { public void updateCuMemberRetailRangeByList(List<CuMemberAwards> cuMemberAwardsList, Integer period) {
baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.RANGE_TYPE.getValue()); 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 @Override
@ -58,6 +58,7 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
@Override @Override
public void updateCuMemberMinAwardsByList(List<CuMemberAwards> cuMemberAwardsList, Integer period) { public void updateCuMemberMinAwardsByList(List<CuMemberAwards> cuMemberAwardsList, Integer period) {
baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.RANGE_TYPE.getValue()); baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.RANGE_TYPE.getValue());
baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue());
} }
@Override @Override
@ -88,13 +89,13 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
@Override @Override
public void updateBackCuMemberRetailRangeAward(Integer period) { public void updateBackCuMemberRetailRangeAward(Integer period) {
baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.RANGE_TYPE.getValue()); baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.RANGE_TYPE.getValue());
// baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.SHARE_TYPE.getValue()); baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.SHARE_TYPE.getValue());
} }
@Override @Override
public void updateCuMemberRetailRangeAwardByDate(Date settleDate) { public void updateCuMemberRetailRangeAwardByDate(Date settleDate) {
baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.RANGE_TYPE.getValue()); baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.RANGE_TYPE.getValue());
// baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.SHARE_TYPE.getValue()); baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.SHARE_TYPE.getValue());
} }
@Override @Override

View File

@ -185,7 +185,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (cuMemberAwardsList.size() > 0) { if (cuMemberAwardsList.size() > 0) {
// 插入会员奖衔升级记录 // 插入会员奖衔升级记录
iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList); iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
// 更新会员奖衔 -- 荣誉级别旧级差奖衔旧荣誉奖衔分红奖衔 // 更新会员奖衔 -- 当月奖衔分红奖衔
iCuMemberService.updateCuMemberRetailRangeByList(cuMemberAwardsList, currentPeriod); iCuMemberService.updateCuMemberRetailRangeByList(cuMemberAwardsList, currentPeriod);
} }
@ -197,7 +197,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} }
/** /**
* 实时计算撤单数据业绩盒数等级奖衔日奖 * 撤单秒结实时计算撤单数据业绩盒数等级奖衔日奖
*/ */
void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO, void calculateCuMemberBackRetailIncome(SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO,
String secondRangeTableName, int beforePeriod, int currentPeriod) { String secondRangeTableName, int beforePeriod, int currentPeriod) {
@ -208,9 +208,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (DateUtils.isSameDay(saOrderExt.getPayTime(), DateUtils.currentDate())) { 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()); memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember());
} else { } else {
@ -219,9 +219,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
List<SaOrderExt> retailOrderList = new ArrayList<>(); List<SaOrderExt> retailOrderList = new ArrayList<>();
retailOrderList.add(saOrderExt); 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); memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList);
} }
@ -279,13 +279,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>(); Map<String, CuMemberGrade> cuMemberGradeMap = new HashMap<>();
// 会员奖衔map // 会员奖衔map
Map<String, CuMemberAwards> cuMemberAwardsMap = new HashMap<>(); 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); cuMemberRetailRangeExtList.add(sourceMemberRangeExt);
// 查询期间的等级和奖衔 // 查询期间的等级
List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod); List<CuMemberGrade> memberGradeList = iCuMemberGradeService.queryCuMemberGrade(cuMemberRetailRangeExtList, currentPeriod);
// 查询最大的手动奖衔 // 查询最大的手动奖衔
List<CuMemberGrade> cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList); List<CuMemberGrade> cuMemberGradeList1 = iCuMemberGradeService.queryCuMemberGradeByList(currentPeriod, memberRetailRangeExtList);
@ -304,8 +308,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
cuMemberRetailRangeExt.setGradeValue(bdGrade.getGradeValue()); cuMemberRetailRangeExt.setGradeValue(bdGrade.getGradeValue());
} }
BdGrade bdGrade = gradeIdMap.get(cuMemberRetailRangeExt.getPkGrade()); BdGrade bdGrade = gradeIdMap.get(cuMemberRetailRangeExt.getPkGrade());
if (bdGrade != null && bdGrade.getGradeValue() == EGrade.S_VIP.getValue() && cuMemberRetailRangeExt.getPkAwards() < 13) { if (bdGrade != null && bdGrade.getGradeValue() == EGrade.S_VIP.getValue() && cuMemberRetailRangeExt.getPkAwards() < 11) {
cuMemberRetailRangeExt.setPkAwards(13); // 如果是合伙人奖衔肯定得有不能置为无
cuMemberRetailRangeExt.setPkAwards(11);
} }
} }
} }
@ -330,24 +335,47 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
iCuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod); iCuMemberService.updateCuMemberMinGradeByList(cuMemberGradeList, currentPeriod);
} }
} }
// 当期的所有奖衔升级记录
List<CuMemberAwards> memberAwardsList = iCuMemberAwardsService.queryCuMemberAwards(cuMemberRetailRangeExtList, currentPeriod); List<CuMemberAwards> memberAwardsList = iCuMemberAwardsService.queryCuMemberAwards(cuMemberRetailRangeExtList, currentPeriod);
if (memberAwardsList.size() > 0) { 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<>(); List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
for (CuMemberAwards cuMemberAwards : memberAwardsList) { if (CollectionUtil.isNotEmpty(pkAwardsList)) {
String key = cuMemberAwards.getPkMember() + "_" + cuMemberAwards.getNewLevel(); for (CuMemberAwards cuMemberAwards : pkAwardsList) {
if (!cuMemberAwardsMap.containsKey(key)) { String key = cuMemberAwards.getPkMember() + "_" + cuMemberAwards.getNewLevel();
CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberAwards.getPkMember()); if (!cuMemberAwardsMap.containsKey(key)) {
if (cuMemberAwards.getOldLevel() < cuMemberRetailRangeExt.getPkAwards()) { CuMemberRetailRangeExt cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberAwards.getPkMember());
cuMemberRetailRangeExt.setPkAwards(cuMemberAwards.getOldLevel()); 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) { if (cuMemberAwardsList.size() > 0) {
// 删除会员奖衔记录 // 删除会员奖衔记录
@ -836,6 +864,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
return cuMemberAwardsList; return cuMemberAwardsList;
} }
/**
* 计算等级奖衔
*/
private void calculateGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, private void calculateGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap,
String secondRangeTableName, List<CuMemberGrade> cuMemberGradeList, List<CuMemberAwards> cuMemberAwardsList, String secondRangeTableName, List<CuMemberGrade> cuMemberGradeList, List<CuMemberAwards> cuMemberAwardsList,
@ -859,7 +890,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 验证小区计算小区累计盒数 查询伞下会员 // 验证小区计算小区累计盒数 查询伞下会员
List<CuMemberRetailRangeExt> cuMemberRangeExtList; List<CuMemberRetailRangeExt> cuMemberRangeExtList;
if (secondRangeTableName != null) { if (secondRangeTableName != null) {
// 秒结表关联昨日结算表查询订单会员直推数据 // 会员表 关联 秒结表 昨日结算表查询订单会员直推数据
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
} else { } else {
// 昨日结算表查询订单会员直推数据 // 昨日结算表查询订单会员直推数据
@ -903,108 +934,103 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
} }
} }
} }
// 计算奖衔荣誉级别 // 计算当月奖衔
while (true) { while (true) {
// 前实时奖衔值 + 5获取下一个奖衔值 // 奖衔值 + 5获取下一个奖衔值
int awardsValue = targetMemberRangeExt.getAwardsValue() + 5; int awardsValue = targetMemberRangeExt.getAwardsValue() + 5;
if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) { if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) {
// 等级达到V5 并且 存在下个奖衔判断是否能升奖衔 // 等级达到V5 并且 存在下个奖衔判断是否能升奖衔
BdAwards bdAwards = retailAwardsMap.get(awardsValue); BdAwards bdAwards = retailAwardsMap.get(awardsValue);
// 先验证累计业绩 // 先验证累计业绩
// new 升级奖衔判断为当月累计业绩累计业绩为团队业绩 + 个人消费业绩 // new 升级奖衔判断 月累计业绩 = 本人月消费业绩 + 团队月消费业绩
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) { 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())); cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue()));
targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName()); targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
continue; continue;
// }
} }
} }
break; break;
} }
// // 计算分红奖衔秒结不走这个地方 // 计算分红奖衔
// while (true) { while (true) {
// if (null == targetMemberRangeExt.getShareAwardsValue()) { // 当月奖衔值 + 5获取下一个奖衔值
// break; int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5;
// } if (targetMemberRangeExt.getGradeValue().equals(EGrade.S_VIP.getValue()) && retailAwardsMap.containsKey(awardsValue)) {
// int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; BdAwards bdAwards = retailAwardsMap.get(awardsValue);
// 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())) {
// // 先验证累计业绩 // 验证小区计算小区业绩拉取直推会员数据
// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { List<CuMemberRetailRangeExt> cuMemberRangeExtList;
// // 验证小区计算小区业绩 if (secondRangeTableName != null) {
// List<CuMemberRetailRangeExt> cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); // 会员表 关联 秒结表 昨日结算表查询订单会员直推数据
// BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
//// if (ComputeUtil.compareGreaterThan(targetMemberRangeExt.getBigTeamPv(), consumeBigPv)) { } else {
//// consumeBigPv = targetMemberRangeExt.getBigTeamPv(); // 昨日结算表查询订单会员直推数据
//// } cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember());
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { }
// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { // 本人月消费业绩默认为大区
// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv();
// } for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
// BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
// consumeBigPv = consumePv; }
// } // 月累计业绩 = 本人月消费业绩 + 团队月消费业绩
// } BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv());
// BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { // 月累计业绩 > 大区业绩则月累计就成为大区了
// if (bdAwards.getPlaceDeptNum() > 0) { consumeBigPv = consumePv;
// // 验证是否有多个区满足业绩 }
// List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); }
// int enoughNum = 0;
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { // 小区业绩 = 本人月消费业绩 + 团队月消费业绩 - 大区业绩
// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv));
// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) {
// } // 小区业绩 >= 小区考核业绩
// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()), bdAwards.getShareCommunityCheck())) { if (bdAwards.getPlaceDeptNum() > 0) {
// enoughNum += 1; // 验证是否有多个区满足业绩
// } List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList;
// } if (secondRangeTableName != null) {
// if (bdAwards.getPlaceDeptNum() > enoughNum) { // 会员表 关联 秒结表 昨日结算表查询订单会员直推数据
// break; cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
// } } else {
// } // 昨日结算表查询订单会员直推数据
// cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue())); cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck());
// targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); }
// targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId());
// continue; int enoughNum = 0;
// } for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) {
// } if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
// } cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
// break; }
// } 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, public List<CuMemberRetailRangeExt> calculateRetailBackRangeGradeAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName, Integer boxNum,
Integer boxNum, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap) { Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberAwards> cuMemberShareAwardsMap) {
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = new ArrayList<>(); List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = new ArrayList<>();
// 订单会员 // 订单会员
CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember());
@ -1029,7 +1055,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum); targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() - boxNum);
targetMemberRangeExt.setTeamMonthBoxNum(targetMemberRangeExt.getTeamMonthBoxNum() - 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); cuMemberRetailRangeExtList.add(targetMemberRangeExt);
} }
// 计算等级 // 计算等级
@ -1038,9 +1065,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
return cuMemberRetailRangeExtList; return cuMemberRetailRangeExtList;
} }
private void calculateBackGrade(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, private void calculateBackGrade(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt,
SaOrderExt saOrderExt, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, Map<Integer, BdGrade> retailTeamGradeMap, Map<Integer, BdAwards> retailAwardsMap, String secondRangeTableName,
String secondRangeTableName, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberGrade> cuMemberGradeMap, Map<String, CuMemberAwards> cuMemberAwardsMap, Map<String, CuMemberAwards> cuMemberShareAwardsMap,
CuMemberRetailRangeExt targetMemberRangeExt) { CuMemberRetailRangeExt targetMemberRangeExt) {
// 遍历团队等级mapV4,V5 // 遍历团队等级mapV4,V5
for (Integer gradeValue : retailTeamGradeMap.keySet()) { for (Integer gradeValue : retailTeamGradeMap.keySet()) {
@ -1053,7 +1080,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 验证小区计算小区累计盒数 查询伞下会员 // 验证小区计算小区累计盒数 查询伞下会员
List<CuMemberRetailRangeExt> cuMemberRangeExtList; List<CuMemberRetailRangeExt> cuMemberRangeExtList;
if (secondRangeTableName != null) { if (secondRangeTableName != null) {
// 秒结表关联昨日结算表查询订单会员直推数据 // 会员表 关联 秒结表 昨日结算表查询订单会员直推数据
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember());
} else { } else {
// 昨日结算表查询订单会员直推数据 // 昨日结算表查询订单会员直推数据
@ -1107,32 +1134,83 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// new 升级奖衔判断为当月累计业绩累计业绩为团队业绩 + 个人消费业绩 // new 升级奖衔判断为当月累计业绩累计业绩为团队业绩 + 个人消费业绩
if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getTotalCheck())) { 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()); CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue());
cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); cuMemberAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards);
targetMemberRangeExt.setPkAwards(bdAwards.getPkId()); targetMemberRangeExt.setPkAwards(bdAwards.getPkId());
targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue()); targetMemberRangeExt.setAwardsValue(bdAwards.getAwardsValue());
targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName()); targetMemberRangeExt.setAwardsName(bdAwards.getAwardsName());
continue; 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; break;

View File

@ -54,8 +54,10 @@ public interface CuMemberAwardsMapper extends BaseMapper<CuMemberAwards> {
/** /**
* 回退等级 * 回退等级
*/ */
void mergeCuMemberBackAwards(@Param("rangeTableName") String rangeTableName, @Param("pkMember") Long pkMember, void mergeCuMemberBackAwards(@Param("rangeTableName") String rangeTableName,
@Param("period") Integer period); @Param("pkMember") Long pkMember,
@Param("period") Integer period,
@Param("awardType") Integer awardType);
/** /**
* 根据结算表更新奖衔 * 根据结算表更新奖衔

View File

@ -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);
/** /**
* 删除奖衔升级记录 * 删除奖衔升级记录

View File

@ -110,8 +110,12 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
} }
@Override @Override
public void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period) { public void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period, Integer isToday) {
baseMapper.mergeCuMemberBackAwards(rangeTableName, pkMember, period); 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) { private Boolean calculateAwards(Map<String, BdAwards> countryAwardsMap, String settleTableName, Date settleDate, Integer period, List<CuMemberSettleExt> cuMemberSettleExtList) {

View File

@ -13,6 +13,7 @@
<result column="PHONE" property="phone"/> <result column="PHONE" property="phone"/>
<result column="PK_GRADE" property="pkGrade"/> <result column="PK_GRADE" property="pkGrade"/>
<result column="PK_AWARDS" property="pkAwards"/> <result column="PK_AWARDS" property="pkAwards"/>
<result column="PK_SHARE_AWARDS" property="pkShareAwards"/>
<result column="ACCOUNT_STATUS" property="accountStatus"/> <result column="ACCOUNT_STATUS" property="accountStatus"/>
<result column="PAY_STATUS" property="payStatus"/> <result column="PAY_STATUS" property="payStatus"/>
<result column="PAY_TIME" property="payTime"/> <result column="PAY_TIME" property="payTime"/>
@ -80,7 +81,6 @@
team_num = 0, team_num = 0,
enable_status = 1, enable_status = 1,
pk_grade = (select pk_id from bd_grade where del_flag = 0 and grade_value = 20), 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, region_address = 0,
big_box_num = 0, big_box_num = 0,
small_box_num = 0, small_box_num = 0,
@ -91,7 +91,7 @@
<update id="mergeMemberRetailRangeByYesterday"> <update id="mergeMemberRetailRangeByYesterday">
merge into ${rangeTableName} a merge into ${rangeTableName} a
using( 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_box_num, consume_box_num, month_box_num,
new_consume_pv, consume_pv, month_consume_pv, new_consume_pv, consume_pv, month_consume_pv,
team_new_box_num, team_box_num, team_month_box_num, 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_box_num = b.team_month_box_num
,a.team_month_pv = b.team_month_pv ,a.team_month_pv = b.team_month_pv
,a.team_month_amount = b.team_month_amount ,a.team_month_amount = b.team_month_amount
,a.pk_share_awards = b.pk_share_awards
</if> </if>
</update> </update>
@ -157,6 +156,7 @@
a.pk_parent, a.pk_parent,
a.pk_settle_grade pk_grade, a.pk_settle_grade pk_grade,
a.pk_awards, a.pk_awards,
a.pk_range_awards,
a.is_activate enable_status, a.is_activate enable_status,
a.system_type a.system_type
from (select * from (select *
@ -169,8 +169,8 @@
) b ) b
on (a.pk_member = b.pk_member) on (a.pk_member = b.pk_member)
when not matched then when not matched then
insert (pk_member, pk_parent, pk_grade, pk_awards, enable_status, 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.enable_status, b.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> </update>
<!-- 更新极差秒接表,用昨天的结算表 --> <!-- 更新极差秒接表,用昨天的结算表 -->
@ -181,6 +181,7 @@
a.pk_parent, a.pk_parent,
a.pk_settle_grade pk_grade, a.pk_settle_grade pk_grade,
a.pk_awards, a.pk_awards,
a.pk_range_awards,
nvl(b.enable_status, 1) enable_status nvl(b.enable_status, 1) enable_status
from (select * from (select *
from cu_member from cu_member
@ -203,7 +204,9 @@
merge into ${secondTableName} a merge into ${secondTableName} a
using ( using (
<foreach collection="cuMemberRangeExtList" item="item" open=" " close=" " separator="union"> <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.newBoxNum} new_box_num, #{item.newConsumePv} new_consume_pv,
#{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv, #{item.teamNewBoxNum} team_new_box_num, #{item.teamNewPv} team_new_pv,
#{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status #{item.teamNewAmount} team_new_amount, #{item.enableStatus} enable_status
@ -212,7 +215,7 @@
) b ) b
on (a.pk_member = b.pk_member) on (a.pk_member = b.pk_member)
when matched then 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.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_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 a.team_new_amount = b.team_new_amount, a.enable_status = b.enable_status
@ -220,14 +223,18 @@
<update id="mergeMemberRetailGradeByMember"> <update id="mergeMemberRetailGradeByMember">
merge into ${rangeTableName} a merge into ${rangeTableName} a
using ( using (
select pk_id pk_member, pk_parent, pk_settle_grade, pk_awards select pk_id pk_member, pk_parent,
from cu_member start with pk_id = #{pkMember} pk_settle_grade, pk_awards, pk_range_awards
connect by prior pk_parent = pk_id from cu_member start with pk_id = #{pkMember}
) b connect by prior pk_parent = pk_id
on (a.pk_member = b.pk_member) ) b
when matched then on (a.pk_member = b.pk_member)
update set a.pk_grade = b.pk_settle_grade, a.pk_awards = b.pk_awards 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>
<update id="mergeMemberRetailRegion"> <update id="mergeMemberRetailRegion">
@ -305,6 +312,7 @@
a.account_status, a.account_status,
a.pk_grade, a.pk_grade,
a.pk_awards, a.pk_awards,
a.pk_share_awards,
a.income_status, a.income_status,
a.consume_pv, a.consume_pv,
a.pay_time, a.pay_time,
@ -313,7 +321,6 @@
a.income_status, a.income_status,
a.pk_country, a.pk_country,
a.pk_settle_country, a.pk_settle_country,
a.pk_share_awards,
a.enable_status, a.enable_status,
new_box_num, new_box_num,
consume_box_num, consume_box_num,
@ -332,7 +339,6 @@
team_month_amount, team_month_amount,
recommend_num, recommend_num,
team_num, team_num,
pk_grade,
ba.grade_value, ba.grade_value,
ba.grade_name, ba.grade_name,
bw.awards_value, bw.awards_value,
@ -373,6 +379,7 @@
a.account_status, a.account_status,
a.pk_grade, a.pk_grade,
a.pk_awards, a.pk_awards,
a.pk_share_awards,
a.income_status, a.income_status,
a.consume_pv, a.consume_pv,
a.pay_time, a.pay_time,
@ -380,7 +387,6 @@
a.income_status, a.income_status,
a.pk_country, a.pk_country,
a.pk_settle_country, a.pk_settle_country,
a.pk_share_awards,
a.big_box_num, a.big_box_num,
a.small_box_num, a.small_box_num,
a.big_team_pv, a.big_team_pv,
@ -407,7 +413,7 @@
ba.grade_name, ba.grade_name,
bw.awards_value, bw.awards_value,
bw.awards_name, bw.awards_name,
bwa.awards_value share_awards_value, bws.awards_value share_awards_value,
bw.range_ratio, bw.range_ratio,
bw.benefit_avg_ratio, bw.benefit_avg_ratio,
bw.benefit_share_ratio, bw.benefit_share_ratio,
@ -416,13 +422,12 @@
inner join bd_grade ba inner join bd_grade ba
on a.pk_grade = ba.pk_id on a.pk_grade = ba.pk_id
inner join bd_awards bw 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 left join bd_area br
on br.pk_id = a.region_address and br.del_flag = 0 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 where ba.del_flag = 0
and bw.del_flag = 0
and a.pk_parent = #{pkParent} and a.pk_parent = #{pkParent}
</select> </select>
@ -504,9 +509,9 @@
pk_parent, pk_parent,
member_code, member_code,
member_name, member_name,
a.pk_awards,
a.pk_grade,
a.pk_rate, a.pk_rate,
a.pk_grade,
a.pk_awards,
a.pk_share_awards, a.pk_share_awards,
a.enable_status, a.enable_status,
a.income_status, a.income_status,
@ -518,6 +523,7 @@
bg.grade_name, bg.grade_name,
bw.awards_value, bw.awards_value,
bw.awards_name, bw.awards_name,
bwa.awards_value share_awards_value,
a.account_status, a.account_status,
a.category, a.category,
bw.range_ratio, bw.range_ratio,
@ -527,6 +533,8 @@
from ${rangeTableName} a from ${rangeTableName} a
inner join bd_awards bw inner join bd_awards bw
on bw.pk_id = a.pk_awards 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 inner join bd_grade bg
on bg.pk_id = a.pk_grade on bg.pk_id = a.pk_grade
inner join bd_area ba inner join bd_area ba
@ -595,6 +603,7 @@
cm.account_status, cm.account_status,
a.pk_grade, a.pk_grade,
a.pk_awards, a.pk_awards,
a.pk_share_awards,
cm.income_status, cm.income_status,
cm.pay_time, cm.pay_time,
b.pk_rate, b.pk_rate,
@ -626,6 +635,7 @@
bw.range_ratio, bw.range_ratio,
bw.benefit_avg_ratio, bw.benefit_avg_ratio,
bw.benefit_share_ratio, bw.benefit_share_ratio,
bws.awards_value share_awards_value,
br.name country_name, br.name country_name,
cr.county region_address cr.county region_address
from ( from (
@ -638,15 +648,16 @@
inner join cu_member cm inner join cu_member cm
on cm.pk_id = a.pk_member on cm.pk_id = a.pk_member
inner join bd_awards bw 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 inner join bd_grade bg
on bg.pk_id = a.pk_grade on bg.pk_id = a.pk_grade
left join cu_member_retail_region cr left join cu_member_retail_region cr
on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0 on cr.pk_member = cm.pk_id and cr.effective = 0 and cr.del_flag = 0
left join bd_area br left join bd_area br
on br.pk_id = cr.county and br.del_flag = 0 on br.pk_id = cr.county and br.del_flag = 0
where bw.del_flag = 0 where bg.del_flag = 0
and bg.del_flag = 0
</select> </select>
<select id="queryCuMemberSecondRange" resultMap="CuMemberRetailRangeExt"> <select id="queryCuMemberSecondRange" resultMap="CuMemberRetailRangeExt">
@ -679,6 +690,9 @@
<select id="queryCuMemberSecondRangeExtByParent" resultMap="CuMemberRetailRangeExt"> <select id="queryCuMemberSecondRangeExtByParent" resultMap="CuMemberRetailRangeExt">
select cm.pk_id pkMember, 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.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.team_box_num, 0) + nvl(a.team_new_box_num, 0) team_box_num,
nvl(b.big_box_num, 0) big_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 id="queryCuMemberRetailRangeEnoughAchieve" resultType="com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt">
select pk_member, select pk_member,
pk_parent, pk_parent,
consume_box_num,
new_box_num, new_box_num,
team_box_num, consume_box_num,
month_box_num, month_box_num,
team_new_box_num, new_consume_pv,
consume_pv, consume_pv,
month_consume_pv, month_consume_pv,
new_consume_pv, team_new_box_num,
team_consume_amount, team_box_num,
team_month_box_num,
team_new_pv,
team_consume_pv, team_consume_pv,
team_month_amount,
team_month_pv, team_month_pv,
team_new_amount,
team_consume_amount,
team_month_amount,
big_box_num, big_box_num,
small_box_num, small_box_num,
big_team_pv, big_team_pv,
small_team_pv, small_team_pv
team_new_amount,
team_new_pv
from ${tableName} from ${tableName}
where pk_parent = #{pkParent} where pk_parent = #{pkParent}
</select> </select>

View File

@ -460,17 +460,17 @@
inner join ( inner join (
select a.pk_member,a.new_level pk_awards select a.pk_member,a.new_level pk_awards
from cu_member_awards a from cu_member_awards a
inner join( inner join (
select pk_member, max(pk_id) pk_id select pk_member, max(pk_id) pk_id
from cu_member_awards from cu_member_awards
where del_flag = 0 and up_type=2 where del_flag = 0 and up_type = 2
and end_validity_date &lt;= #{settleDate, jdbcType=DATE} and end_validity_date &lt;= #{settleDate, jdbcType=DATE}
and award_type = #{awardType} and award_type = #{awardType}
group by pk_member) b group by pk_member) b
on a.pk_id = b.pk_id on a.pk_id = b.pk_id
where a.del_flag = 0 where a.del_flag = 0
) y ) y
on x.pk_member=y.pk_member on x.pk_member = y.pk_member
where where
<if test="awardType == 1"> <if test="awardType == 1">
x.pk_awards &lt; y.pk_awards x.pk_awards &lt; y.pk_awards
@ -486,25 +486,26 @@
a.pk_awards = b.pk_awards a.pk_awards = b.pk_awards
</if> </if>
<if test="awardType == 2"> <if test="awardType == 2">
a.pk_share_awards=b.pk_awards a.pk_share_awards = b.pk_awards
</if> </if>
</update> </update>
<!-- 初始化期间奖衔 --> <!-- 初始化期间奖衔 -->
<update id="updateCuMemberRetailRangeInitAward"> <update id="updateCuMemberRetailRangeInitAward">
update ${rangeTableName} 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> </update>
<!-- 初始化期间V5奖衔 --> <!-- 初始化期间V5奖衔 -->
<update id="updateCuMemberRetailRangeInitV5Award"> <update id="updateCuMemberRetailRangeInitV5Award">
update ${rangeTableName} 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 = ( where pk_grade = (
select pk_id select pk_id
from bd_grade from bd_grade
where grade_value = 70 where grade_value = 70 and del_flag = 0
and del_flag = 0
) )
</update> </update>
@ -529,7 +530,8 @@
pk_member NUMBER(20) not null, pk_member NUMBER(20) not null,
pk_parent NUMBER(20) not null, pk_parent NUMBER(20) not null,
pk_grade NUMBER(4) 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, enable_status number(2) default 1 not null,
system_type NUMBER(2) default 2 not null, system_type NUMBER(2) default 2 not null,
new_box_num number(8) default 0 not null, new_box_num number(8) default 0 not null,
@ -550,8 +552,8 @@
customer_type NUMBER(2) not null, customer_type NUMBER(2) not null,
phone VARCHAR2(40) not null, phone VARCHAR2(40) not null,
pk_grade NUMBER(4) 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 12 not null, pk_share_awards number(4) default 10 not null,
enable_status number(2) default 1 not null, enable_status number(2) default 1 not null,
account_status number(1) default 0 not null, account_status number(1) default 0 not null,
pay_status NUMBER(2) default 0 not null, pay_status NUMBER(2) default 0 not null,

View File

@ -195,7 +195,7 @@
using ( using (
select pk_member, max(new_level) pk_awards select pk_member, max(new_level) pk_awards
from cu_member_awards from cu_member_awards
where period = #{period} and award_type=#{awardType} where period = #{period} and award_type = #{awardType}
and del_flag = 0 and del_flag = 0
group by pk_member group by pk_member
) b ) b
@ -324,7 +324,8 @@
<update id="updateCuMemberRetailRangeAwardByDate"> <update id="updateCuMemberRetailRangeAwardByDate">
merge into cu_member a merge into cu_member a
using ( 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 ( inner join (
select a.pk_member,a.new_level pk_awards select a.pk_member,a.new_level pk_awards
from cu_member_awards a from cu_member_awards a
@ -363,13 +364,15 @@
<!-- 初始化会员奖衔 --> <!-- 初始化会员奖衔 -->
<update id="updateCuMemberRetailRangeInitAward"> <update id="updateCuMemberRetailRangeInitAward">
update cu_member 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> </update>
<!-- 初始化会员V5奖衔 --> <!-- 初始化会员V5奖衔 -->
<update id="updateCuMemberRetailRangeInitV5Award"> <update id="updateCuMemberRetailRangeInitV5Award">
update cu_member 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 = ( where pk_settle_grade = (
select pk_id select pk_id
from bd_grade from bd_grade
@ -401,7 +404,11 @@
using ( using (
select pk_member, max(pk_awards) pk_awards from ( select pk_member, max(pk_awards) pk_awards from (
<foreach item="item" index="index" collection="cuMemberAwardsList" separator=" union "> <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> </foreach>
) )
where award_type = #{awardType} where award_type = #{awardType}

View File

@ -69,13 +69,14 @@
inner join ( inner join (
select ca.pk_member, min(ca.pk_id) pk_id select ca.pk_member, min(ca.pk_id) pk_id
from cu_member_awards ca from cu_member_awards ca
inner join bd_awards bw inner join bd_awards bw
on ca.new_level = bw.pk_id on ca.new_level = bw.pk_id
and bw.del_flag = 0
and bw.awards_value >= 5
where ca.del_flag = 0 where ca.del_flag = 0
and bw.del_flag = 0
and bw.awards_value >= 5
and ca.up_type = 1 and ca.up_type = 1
and ca.period = #{period} and ca.period = #{period}
and ca.award_type = #{awardType}
and ca.pk_member in and ca.pk_member in
(select pk_id (select pk_id
from cu_member start from cu_member start
@ -85,7 +86,13 @@
) cx on cw.pk_id = cx.pk_id where cw.del_flag = 0 ) cx on cw.pk_id = cx.pk_id where cw.del_flag = 0
) b on (a.pk_member = b.pk_member) ) b on (a.pk_member = b.pk_member)
when matched then 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> </update>
<!-- 删除自动升级的奖衔升级记录 --> <!-- 删除自动升级的奖衔升级记录 -->
@ -142,14 +149,15 @@
</select> </select>
<select id="queryCuMemberAwards" resultType="com.hzs.common.domain.member.detail.CuMemberAwards"> <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 inner join bd_awards bw
on ca.new_level = bw.pk_id on ca.new_level = bw.pk_id
where ca.del_flag = 0 where ca.del_flag = 0
and bw.del_flag = 0 and bw.del_flag = 0
and bw.awards_value >= 5 and bw.awards_value >= 5
and ca.up_type = 1 and ca.period = #{period} 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=","> <foreach collection="cuMemberRetailRangeExtList" item="item" open="(" close=")" separator=",">
#{item.pkMember} #{item.pkMember}
</foreach> </foreach>

View File

@ -881,7 +881,6 @@ public class CuMemberController extends BaseController {
cvo.setIsConsume(EYesNo.NO.getIntValue()); cvo.setIsConsume(EYesNo.NO.getIntValue());
} }
cvo.setCategoryVal(transactionMap.get(EnumsPrefixConstants.ENU_CAT + cvo.getCategory())); 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.setIsRealNameVal(transactionMap.get(EnumsPrefixConstants.YES_NO_ATTESTATION + cvo.getIsRealName()));
cvo.setOrderSourceVal(transactionMap.get(EnumsPrefixConstants.ORDER_SOURCE + cvo.getOrderSource())); cvo.setOrderSourceVal(transactionMap.get(EnumsPrefixConstants.ORDER_SOURCE + cvo.getOrderSource()));
cvo.setMemberAccountVal(getMemberAccountVal(cmvo, transactionMap)); cvo.setMemberAccountVal(getMemberAccountVal(cmvo, transactionMap));
@ -997,7 +996,6 @@ public class CuMemberController extends BaseController {
cvo.setIsConsume(EYesNo.NO.getIntValue()); cvo.setIsConsume(EYesNo.NO.getIntValue());
} }
cvo.setCategoryVal(transactionMap.get(EnumsPrefixConstants.ENU_CAT + cvo.getCategory())); 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.setIsRealNameVal(transactionMap.get(EnumsPrefixConstants.YES_NO_ATTESTATION + cvo.getIsRealName()));
cvo.setOrderSourceVal(transactionMap.get(EnumsPrefixConstants.ORDER_SOURCE + cvo.getOrderSource())); cvo.setOrderSourceVal(transactionMap.get(EnumsPrefixConstants.ORDER_SOURCE + cvo.getOrderSource()));
cvo.setMemberAccountVal(getMemberAccountVal(cmvo, transactionMap)); cvo.setMemberAccountVal(getMemberAccountVal(cmvo, transactionMap));

View File

@ -15,11 +15,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* @description: 新零售系统会员后台查询会员的实体vo * 新零售系统会员后台查询会员的实体vo
* @author: zhang jing
* @date: 2024/12/9 16:28
* @param:
* @return:
**/ **/
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@ -69,25 +65,26 @@ public class RetailMemberVO implements Serializable {
private String parMemberName; private String parMemberName;
/** /**
* 级差奖衔 * 当月奖衔
*/ */
@Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD)
private Integer pkAwards; private Integer pkAwards;
@Excel(name = "当月奖衔")
@Excel(name = "级差奖衔")
private String pkAwardsVal; private String pkAwardsVal;
/**
* 分红奖衔
*/
private Integer pkRangeAwards;
@Excel(name = "分红奖衔")
private String pkRangeAwardsVal;
/** /**
* 荣誉奖衔 * 荣誉奖衔
*/ */
@Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD) private Integer pkMaxAwards;
private Integer pkRangeAwards;
/**
* 荣誉奖衔显示
*/
@Excel(name = "荣誉奖衔") @Excel(name = "荣誉奖衔")
private String pkRangeAwardsVal; private String pkMaxAwardsVal;
/** /**
* 订单来源 (1=实单注册,2=空单注册)订单状态 EOrderSource * 订单来源 (1=实单注册,2=空单注册)订单状态 EOrderSource

View File

@ -37,6 +37,7 @@ public class MemberRetailServiceImpl implements IMemberRetailService {
.pkSettleCountry(CountryConstants.CHINA_COUNTRY) .pkSettleCountry(CountryConstants.CHINA_COUNTRY)
.pkGrade(cuMember.getPkSettleGrade()) .pkGrade(cuMember.getPkSettleGrade())
.pkAwards(cuMember.getPkAwards()) .pkAwards(cuMember.getPkAwards())
.pkRangeAwards(cuMember.getPkRangeAwards())
.pkMaxAwards(cuMember.getPkMaxAwards()) .pkMaxAwards(cuMember.getPkMaxAwards())
.build()).getData(); .build()).getData();
@ -79,8 +80,8 @@ public class MemberRetailServiceImpl implements IMemberRetailService {
.awardsIcon(memberDataDTO.getAwardsIcon()) .awardsIcon(memberDataDTO.getAwardsIcon())
.pkMaxAwardsVal(memberDataDTO.getMaxAwardsVal()) .pkMaxAwardsVal(memberDataDTO.getMaxAwardsVal())
.maxAwardsIcon(memberDataDTO.getMaxAwardsIcon()) .maxAwardsIcon(memberDataDTO.getMaxAwardsIcon())
// .pkRangeAwardsVal(memberDataDTO.getRangeAwardsVal()) .pkRangeAwardsVal(memberDataDTO.getRangeAwardsVal())
// .rangeAwardsIcon(memberDataDTO.getRangeAwardsIcon()) .rangeAwardsIcon(memberDataDTO.getRangeAwardsIcon())
.currencyIcon(memberDataDTO.getCurrencyIcon()) .currencyIcon(memberDataDTO.getCurrencyIcon())
.memberSign(memberSign) .memberSign(memberSign)
.control(control) .control(control)

View File

@ -93,14 +93,14 @@ public class RetailMemberInfoVO implements Serializable {
*/ */
private String maxAwardsIcon; private String maxAwardsIcon;
// /** /**
// * 荣誉奖衔名称 * 分红奖衔名称
// */ */
// private String pkRangeAwardsVal; private String pkRangeAwardsVal;
// /** /**
// * 荣誉奖衔图标 * 分红奖衔图标
// */ */
// private String rangeAwardsIcon; private String rangeAwardsIcon;
/** /**
* 币种图标 * 币种图标

View File

@ -2291,10 +2291,11 @@
cma.transfer_status as transferstatus, cma.transfer_status as transferstatus,
ver.vertex_name as vertexName, ver.vertex_name as vertexName,
cmt.team_name as teamName, cmt.team_name as teamName,
gr.GRADE_NAME as pkRegisterGradeVal, gr.grade_name as pkRegisterGradeVal,
grr.GRADE_NAME as pkSettleGradeVal, grr.grade_name as pkSettleGradeVal,
awa.AWARDS_NAME as pkAwardsVal, awa.awards_name as pkAwardsVal,
awar.AWARDS_NAME as pkRangeAwardsVal, awar.awards_name as pkRangeAwardsVal,
awm.awards_name as pkMaxAwardsVal,
par.member_code parMemberCode, par.member_code parMemberCode,
par.member_name parMemberName, par.member_name parMemberName,
pr.NAME giftProvince, pr.NAME giftProvince,
@ -2306,9 +2307,11 @@
left join cu_member par left join cu_member par
ON par.pk_id = cm.pk_parent ON par.pk_id = cm.pk_parent
left join bd_awards awa left join bd_awards awa
on awa.pk_id = cm.PK_AWARDS on awa.pk_id = cm.pk_awards
left join bd_awards awar 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 left join bd_grade gr
on gr.pk_id = cm.PK_REGISTER_GRADE on gr.pk_id = cm.PK_REGISTER_GRADE
left join bd_grade grr left join bd_grade grr
@ -2318,7 +2321,7 @@
left join cu_member_team cmt left join cu_member_team cmt
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 left join BD_AREA pr
on pr.pk_id = cmrr.PROVINCE on pr.pk_id = cmrr.PROVINCE
left join BD_AREA cty left join BD_AREA cty
@ -2333,18 +2336,12 @@
on cm.pk_id = cma.PK_MEMBER on cm.pk_id = cma.PK_MEMBER
left join cu_member par left join cu_member par
ON par.pk_id = cm.pk_parent 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 left join bd_vertex ver
on cm.pk_vertex = ver.pk_id on cm.pk_vertex = ver.pk_id
left join cu_member_team cmt left join cu_member_team cmt
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
WHERE cm.del_flag = 0 WHERE cm.del_flag = 0
<if test="isActivate != null"> <if test="isActivate != null">
and cm.IS_ACTIVATE = #{isActivate} and cm.IS_ACTIVATE = #{isActivate}
@ -2412,19 +2409,22 @@
and cm.member_name like #{memberName}||'%' and cm.member_name like #{memberName}||'%'
</if> </if>
<if test="phone != null and phone != ''"> <if test="phone != null and phone != ''">
and cm.phone=#{phone} and cm.phone = #{phone}
</if> </if>
<if test="pkRegisterGrade != null "> <if test="pkRegisterGrade != null ">
and cm.pk_register_grade =#{pkRegisterGrade} and cm.pk_register_grade = #{pkRegisterGrade}
</if> </if>
<if test="pkSettleGrade != null "> <if test="pkSettleGrade != null ">
and cm.PK_SETTLE_GRADE =#{pkSettleGrade} and cm.pk_settle_grade = #{pkSettleGrade}
</if> </if>
<if test="pkAwards != null"> <if test="pkAwards != null">
and cm.pk_awards=#{pkAwards} and cm.pk_awards = #{pkAwards}
</if> </if>
<if test="pkRangeAwards != null"> <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>
<if test="directPushNumber != null"> <if test="directPushNumber != null">
and cm.DIRECT_PUSH_NUMBER=#{directPushNumber} and cm.DIRECT_PUSH_NUMBER=#{directPushNumber}

View File

@ -278,11 +278,12 @@
vertexname, vertexname,
creationtime, creationtime,
endvaliditydate endvaliditydate
from (select cm.pk_id as pkmember, from (
select cm.pk_id as pkmember,
cma.period, cma.period,
cma.up_type as uptype, cma.up_type as uptype,
cm.member_code as membercode, cm.member_code as membercode,
cm.member_name as membername, cm.member_name as membername,
cm.phone, cm.phone,
baa.awards_name as pkAwardsVal, baa.awards_name as pkAwardsVal,
bam.awards_name as pkMaxAwardsVal, bam.awards_name as pkMaxAwardsVal,
@ -326,10 +327,10 @@
AND cma.UP_TYPE = #{upType} AND cma.UP_TYPE = #{upType}
</if> </if>
<if test="pkAwards != null"> <if test="pkAwards != null">
AND AW.PK_ID = #{pkAwards} AND baa.PK_ID = #{pkAwards}
</if> </if>
<if test="pkMaxAwards != null"> <if test="pkMaxAwards != null">
AND AWW.PK_ID = #{pkMaxAwards} AND bam.PK_ID = #{pkMaxAwards}
</if> </if>
<if test="startDate != null and startDate!='' "> <if test="startDate != null and startDate!='' ">
and cmsp.SETTLE_DATE &gt;= to_date(#{startDate}, 'yyyy-mm-dd') and cmsp.SETTLE_DATE &gt;= to_date(#{startDate}, 'yyyy-mm-dd')

View File

@ -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()) { if (null != memberDataDTO.getPkSettleCountry()) {
BdCurrency bdCurrency = iBdCurrencyService.getCurrency(memberDataDTO.getPkSettleCountry()); BdCurrency bdCurrency = iBdCurrencyService.getCurrency(memberDataDTO.getPkSettleCountry());

View File

@ -12,14 +12,14 @@ import lombok.Getter;
public enum EAwardsType { 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 * 是否启用0=,1= -- 来源EYesNo
*/ */
private final int enable; private final int enable;
/**
* 国际化翻译key值
*/
private final String key;
} }

View File

@ -53,6 +53,9 @@ public class CuMemberRetailRange extends BaseEntity {
@TableField("PK_GRADE") @TableField("PK_GRADE")
private Integer pkGrade; private Integer pkGrade;
/**
* 会员奖衔当月奖衔
*/
@TableField("PK_AWARDS") @TableField("PK_AWARDS")
private Integer pkAwards; private Integer pkAwards;

View File

@ -28,6 +28,9 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange {
*/ */
private Integer awardsValue; private Integer awardsValue;
/**
* 分红奖衔值
*/
private Integer shareAwardsValue; private Integer shareAwardsValue;
/** /**

View File

@ -157,13 +157,13 @@ public class CuMember extends BaseEntity {
private Integer pkSettleGradeValue; private Integer pkSettleGradeValue;
/** /**
* 真实奖衔 * 当月奖衔
*/ */
@TableField("PK_AWARDS") @TableField("PK_AWARDS")
private Integer pkAwards; private Integer pkAwards;
/** /**
* 最高奖衔 * 最高奖衔荣誉奖衔
*/ */
@TableField("PK_MAX_AWARDS") @TableField("PK_MAX_AWARDS")
private Integer pkMaxAwards; private Integer pkMaxAwards;
@ -392,13 +392,13 @@ public class CuMember extends BaseEntity {
private Integer systemType; private Integer systemType;
/** /**
* 荣誉奖衔 * 分红奖衔
*/ */
@TableField("PK_RANGE_AWARDS") @TableField("PK_RANGE_AWARDS")
private Integer pkRangeAwards; private Integer pkRangeAwards;
/** /**
* 福利奖衔 * 福利奖衔(暂时不用
*/ */
@TableField("PK_BENEFIT_AWARDS") @TableField("PK_BENEFIT_AWARDS")
private Integer pkBenefitAwards; private Integer pkBenefitAwards;