Compare commits

..

No commits in common. "c6d84ee89cf431ef4da37c7e71425ef378cc1df0" and "461c25bf4280972090bb743957a476db248e0dd1" have entirely different histories.

7 changed files with 63 additions and 109 deletions

View File

@ -133,16 +133,7 @@ public interface CuMemberRetailRangeMapper extends BaseMapper<CuMemberRetailRang
*/ */
List<CuMemberRetailRangeExt> queryEnoughAwardMember(@Param("rangeTableName") String rangeTableName, List<CuMemberRetailRangeExt> queryEnoughAwardMember(@Param("rangeTableName") String rangeTableName,
@Param("totalCheck") BigDecimal totalCheck, @Param("totalCheck") BigDecimal totalCheck,
@Param("awardsValue") Integer awardsValue); @Param("pkAwards") Integer pkAwards);
/**
* 查询符合奖衔业绩安置条件会员
*/
List<CuMemberRetailRangeExt> queryEnoughAwardPlaceMember(@Param("rangeTableName") String rangeTableName,
@Param("awardsValue") Integer awardsValue,
@Param("totalCheck") BigDecimal totalCheck,
@Param("placeDeptNum") Integer placeDeptNum,
@Param("checkAwardsValue") Integer checkAwardsValue);
/** /**
* 查询会员血缘下达标奖衔会员 * 查询会员血缘下达标奖衔会员

View File

@ -91,13 +91,7 @@ public interface ICuMemberRetailRangeService extends IService<CuMemberRetailRang
/** /**
* 查询符合奖衔业绩条件会员 * 查询符合奖衔业绩条件会员
*/ */
List<CuMemberRetailRangeExt> queryEnoughAwardMember(String rangeTableName, BigDecimal totalCheck, Integer awardsValue); List<CuMemberRetailRangeExt> queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards);
/**
* 查询符合奖衔业绩安置条件会员
*/
List<CuMemberRetailRangeExt> queryEnoughAwardPlaceMember(String rangeTableName, Integer awardsValue, BigDecimal totalCheck, Integer placeDeptNum,
Integer checkAwardsValue);
/** /**
* 查询会员血缘下达标奖衔会员 * 查询会员血缘下达标奖衔会员

View File

@ -187,14 +187,8 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl<CuMemberRetailRa
} }
@Override @Override
public List<CuMemberRetailRangeExt> queryEnoughAwardMember(String rangeTableName, BigDecimal totalCheck, Integer awardsValue) { public List<CuMemberRetailRangeExt> queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards) {
return baseMapper.queryEnoughAwardMember(rangeTableName, totalCheck, awardsValue); return baseMapper.queryEnoughAwardMember(settleTableName, totalCheck, pkAwards);
}
@Override
public List<CuMemberRetailRangeExt> queryEnoughAwardPlaceMember(String rangeTableName, Integer awardsValue, BigDecimal totalCheck, Integer placeDeptNum,
Integer checkAwardsValue) {
return baseMapper.queryEnoughAwardPlaceMember(rangeTableName, awardsValue, totalCheck, placeDeptNum, checkAwardsValue);
} }
@Override @Override

View File

@ -290,6 +290,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
List<BdAwards> awardsList = bonusConfigDTO.getAwardsList(); List<BdAwards> awardsList = bonusConfigDTO.getAwardsList();
awardsList.forEach(bdAwards -> awardsMap.put(bdAwards.getAwardsValue(), bdAwards)); awardsList.forEach(bdAwards -> awardsMap.put(bdAwards.getAwardsValue(), bdAwards));
// 会员奖衔升级记录
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
// 直推收益见点收益 // 直推收益见点收益
List<CuMemberBonusPush> cuMemberBonusPushList = new ArrayList<>(); List<CuMemberBonusPush> cuMemberBonusPushList = new ArrayList<>();
// 领导奖收益平级奖收益 // 领导奖收益平级奖收益
@ -304,7 +306,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 更新血缘上业绩金额 // 更新血缘上业绩金额
iCuMemberRetailRangeService.updateMemberParentDate(rangeTableName, memberAchieveHashMap); iCuMemberRetailRangeService.updateMemberParentDate(rangeTableName, memberAchieveHashMap);
// 处理奖衔 // 处理奖衔
iCuMemberAwardsService.calculateCuMemberAwards(rangeTableName, awardsList, settleStartDate, period); iCuMemberAwardsService.calculateCuMemberAwards(rangeTableName, awardsList, awardsMap, settleStartDate, period);
// 按照血缘查询该会员所有伞上会员 // 按照血缘查询该会员所有伞上会员
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList); List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList);
@ -335,8 +337,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount)); sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount));
// // 自己计算奖衔目前业绩都只往下传所以此处暂时不需要处理订单会员的奖衔 // // 自己计算奖衔目前业绩都只往下传所以此处暂时不需要处理订单会员的奖衔
// this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember); // this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember);
// 累计团队业绩金额 // 累计团队业绩金额 + 计算奖衔
this.calculateParentDate(memberRangeExtMap, sourceMember, saOrderExt); cuMemberAwardsList.addAll(this.calculateParentAwards(period, memberRangeExtMap, rangeTableName, sourceMember, saOrderExt, awardsMap));
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
@ -411,6 +413,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
if (cuMemberBonusStageList.size() > 0) { if (cuMemberBonusStageList.size() > 0) {
bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList); bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList);
} }
// if (cuMemberAwardsList.size() > 0) {
// // 批量插入会员奖衔记录
// iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList);
// // 更新会员表奖衔数据
// iCuMemberService.updateCuMemberAwardsByPeriod(period);
// }
// 更新日结数据 // 更新日结数据
iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap); iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap);
// 更新日结明细数据 // 更新日结明细数据
@ -1086,10 +1094,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// } // }
/** /**
* 计算团队数据 * 计算团队奖衔
*/ */
private void calculateParentDate(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, CuMemberRetailRangeExt sourceMember, private List<CuMemberAwards> calculateParentAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
SaOrderExt saOrderExt) { CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap) {
// 会员奖衔升级列表
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
// 订单会员的推荐人 // 订单会员的推荐人
CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(sourceMember.getPkParent()); CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(sourceMember.getPkParent());
@ -1114,8 +1124,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
targetMember.setRepTeamNewPv(targetMember.getRepTeamNewPv().add(orderAchieve)); targetMember.setRepTeamNewPv(targetMember.getRepTeamNewPv().add(orderAchieve));
targetMember.setRepTeamNewAmount(targetMember.getRepTeamNewAmount().add(orderAmount)); targetMember.setRepTeamNewAmount(targetMember.getRepTeamNewAmount().add(orderAmount));
} }
// // 计算奖衔
// calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, targetMember);
targetMember = memberRangeExtMap.get(targetMember.getPkParent()); targetMember = memberRangeExtMap.get(targetMember.getPkParent());
} }
return cuMemberAwardsList;
} }

View File

@ -7,6 +7,7 @@ import com.hzs.common.domain.system.config.BdAwards;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 会员信息-奖衔升级记录 服务类 * 会员信息-奖衔升级记录 服务类
@ -16,7 +17,7 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
/** /**
* 计算奖衔 * 计算奖衔
*/ */
void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Date settleDate, Integer period); void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Map<Integer, BdAwards> awardsMap, Date settleDate, Integer period);
/** /**
* 批量插入奖衔记录 * 批量插入奖衔记录

View File

@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 会员信息-奖衔升级记录 服务实现类 * 会员信息-奖衔升级记录 服务实现类
@ -36,7 +37,7 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
private ICuMemberRetailRangeService iCuMemberRetailRangeService; private ICuMemberRetailRangeService iCuMemberRetailRangeService;
@Override @Override
public void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Date settleDate, Integer period) { public void calculateCuMemberAwards(String rangeTableName, List<BdAwards> awardsList, Map<Integer, BdAwards> awardsMap, Date settleDate, Integer period) {
// 回退结算表奖衔 // 回退结算表奖衔
iCuMemberTreeService.updateBackCuMemberRetailRangeAward(rangeTableName, period); iCuMemberTreeService.updateBackCuMemberRetailRangeAward(rangeTableName, period);
// 回退会员表奖衔 // 回退会员表奖衔
@ -55,14 +56,7 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
Map<Long, List<CuMemberRetailRangeExt>> cuMemberRangeExtMap = new HashMap<>(); Map<Long, List<CuMemberRetailRangeExt>> cuMemberRangeExtMap = new HashMap<>();
for (BdAwards bdAwards : awardsList) { for (BdAwards bdAwards : awardsList) {
List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList; List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardMember(rangeTableName, bdAwards.getTotalCheck(), bdAwards.getPkId());
if (bdAwards.getPlaceDeptNum() > 0) {
BdAwards checkAwards = awardsList.stream().filter(tmpDate -> tmpDate.getPkId().equals(bdAwards.getPkCheckAwardsLeft())).findFirst().get();
cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardPlaceMember(rangeTableName, bdAwards.getAwardsValue(),
bdAwards.getTotalCheck(), bdAwards.getPlaceDeptNum(), checkAwards.getAwardsValue());
} else {
cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardMember(rangeTableName, bdAwards.getTotalCheck(), bdAwards.getAwardsValue());
}
cuMemberAwardsList.addAll(this.calculateAwards(rangeTableName, bdAwards, period, cuMemberRetailRangeExtList, cuMemberRangeExtMap)); cuMemberAwardsList.addAll(this.calculateAwards(rangeTableName, bdAwards, period, cuMemberRetailRangeExtList, cuMemberRangeExtMap));
} }
if (cuMemberAwardsList.size() > 0) { if (cuMemberAwardsList.size() > 0) {
@ -84,12 +78,6 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
Date nowDate = new Date(); Date nowDate = new Date();
cuMemberRetailRangeExtList.forEach(targetMember -> { cuMemberRetailRangeExtList.forEach(targetMember -> {
if (bdAwards.getPlaceDeptNum() > 0 && bdAwards.getCommunityCheck().compareTo(BigDecimal.ZERO) == 0) {
// 需要校验部门奖衔并且小区业绩为0的
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate));
targetMember.setPkAwards(bdAwards.getPkId());
targetMember.setAwardsValue(bdAwards.getAwardsValue());
} else {
List<CuMemberRetailRangeExt> cuMemberRangeExtList = cuMemberRangeExtMap.get(targetMember.getPkMember()); List<CuMemberRetailRangeExt> cuMemberRangeExtList = cuMemberRangeExtMap.get(targetMember.getPkMember());
if (null == cuMemberRangeExtList) { if (null == cuMemberRangeExtList) {
cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember()); cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember());
@ -113,7 +101,7 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
if (CollectionUtil.isNotEmpty(cuMemberRangeExtList)) { if (CollectionUtil.isNotEmpty(cuMemberRangeExtList)) {
// 验证每条血缘下满足达标数量 // 验证每条血缘下满足达标数量
List<Integer> checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(), List<Integer> checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(),
Collections.singletonList(targetMember.getPkMember())); cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList()));
if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) { if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) {
cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate)); cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate));
targetMember.setPkAwards(bdAwards.getPkId()); targetMember.setPkAwards(bdAwards.getPkId());
@ -127,7 +115,6 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl<CuMemberAwardsMapper,
targetMember.setAwardsValue(bdAwards.getAwardsValue()); targetMember.setAwardsValue(bdAwards.getAwardsValue());
} }
} }
}
}); });
} }
return cuMemberAwardsList; return cuMemberAwardsList;

View File

@ -980,36 +980,9 @@
<select id="queryEnoughAwardMember" resultMap="CuMemberRetailRangeExt"> <select id="queryEnoughAwardMember" resultMap="CuMemberRetailRangeExt">
select cmr.* select cmr.*
from ${rangeTableName} cmr from ${rangeTableName} cmr
left join bd_awards ba
on ba.pk_id = cmr.pk_awards
where cmr.category = 0 where cmr.category = 0
and cmr.team_consume_pv >= #{totalCheck} and cmr.team_consume_pv >= #{totalCheck}
and #{awardsValue} > ba.awards_value and #{pkAwards} > cmr.pk_awards
</select>
<!-- 查询符合奖衔业绩、安置条件会员 -->
<select id="queryEnoughAwardPlaceMember" resultMap="CuMemberRetailRangeExt">
select cmr.*
from ${rangeTableName} cmr
left join bd_awards ba
on ba.pk_id = cmr.pk_awards
where cmr.pk_member in
(select cmr.pk_parent
from ${rangeTableName} cmr
where cmr.pk_parent != 0
start with cmr.pk_member in
(select cmr.pk_member
from ${rangeTableName} cmr
left join bd_awards ba
on ba.pk_id = cmr.pk_awards
and ba.del_flag = 0
where cmr.category = 0
and ba.awards_value >= #{checkAwardsValue})
connect by cmr.pk_member = prior cmr.pk_parent
group by cmr.pk_parent
having count (distinct cmr.pk_member) >= #{placeDeptNum})
and #{awardsValue} > ba.awards_value
and cmr.team_consume_pv >= #{totalCheck}
</select> </select>
<!-- 查询会员血缘下达标奖衔会员 --> <!-- 查询会员血缘下达标奖衔会员 -->