## 日结处理业绩;
This commit is contained in:
parent
f832063a17
commit
6db021e8b0
|
@ -113,17 +113,15 @@ public interface CuMemberTreeMapper extends BaseMapper<CuMemberTree> {
|
|||
*/
|
||||
Integer queryExistOrderTableCount(String tableName);
|
||||
|
||||
/*
|
||||
/**
|
||||
* 回退会员奖衔
|
||||
**/
|
||||
void updateBackCuMemberRetailRangeAward(@Param("rangeTableName") String rangeTableName, @Param("period") Integer period,
|
||||
@Param("awardType") Integer awardType);
|
||||
*/
|
||||
void updateBackCuMemberRetailRangeAward(@Param("rangeTableName") String rangeTableName, @Param("period") Integer period);
|
||||
|
||||
/*
|
||||
/**
|
||||
* 回退会员奖衔
|
||||
**/
|
||||
void updateCuMemberRetailRangeAwardByDate(@Param("rangeTableName") String rangeTableName, @Param("settleDate") Date settleDate,
|
||||
@Param("awardType") Integer awardType);
|
||||
*/
|
||||
void updateCuMemberRetailRangeAwardByDate(@Param("rangeTableName") String rangeTableName, @Param("settleDate") Date settleDate);
|
||||
|
||||
/**
|
||||
* 根据订单,查询出网体中记录的会员数据,推荐人、安置人
|
||||
|
|
|
@ -111,14 +111,12 @@ 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);
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -42,21 +42,11 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
|
|||
/**
|
||||
* 更新会员奖衔根据临时表
|
||||
*/
|
||||
void updateBackCuMemberRetailRangeAward(@Param("period") Integer period, @Param("awardType") Integer awardType);
|
||||
void updateBackCuMemberRetailRangeAward(@Param("period") Integer period);
|
||||
|
||||
/**
|
||||
* 更新会员奖衔根据临时表
|
||||
*/
|
||||
void updateCuMemberRetailRangeAwardByDate(@Param("settleDate") Date settleDate, @Param("awardType") Integer awardType);
|
||||
|
||||
/**
|
||||
* 初始化会员奖衔
|
||||
*/
|
||||
void updateCuMemberRetailRangeInitAward();
|
||||
|
||||
/**
|
||||
* 初始化会员V5奖衔
|
||||
*/
|
||||
void updateCuMemberRetailRangeInitV5Award();
|
||||
void updateCuMemberRetailRangeAwardByDate(@Param("settleDate") Date settleDate);
|
||||
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.hzs.bonus.base.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
import com.hzs.common.domain.member.detail.CuMemberAwards;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
@ -44,9 +43,4 @@ public interface ICuMemberService extends IService<CuMember> {
|
|||
*/
|
||||
void updateCuMemberRetailRangeAwardByDate(Date settleDate);
|
||||
|
||||
/**
|
||||
* 初始化会员奖衔表
|
||||
*/
|
||||
void updateCuMemberRetailRangeInitAward();
|
||||
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
@Override
|
||||
public void updateCuMemberRetailRangeByPeriod(Integer period) {
|
||||
baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue());
|
||||
baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.SHARE_TYPE.getValue());
|
||||
// 更新会员最高奖衔
|
||||
baseMapper.updateCuMemberMaxAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue());
|
||||
}
|
||||
|
@ -33,31 +32,21 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
|
|||
@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());
|
||||
}
|
||||
|
||||
@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
|
||||
public void updateBackCuMemberRetailRangeAward(Integer period) {
|
||||
baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.RANGE_TYPE.getValue());
|
||||
baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.SHARE_TYPE.getValue());
|
||||
baseMapper.updateBackCuMemberRetailRangeAward(period);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCuMemberRetailRangeAwardByDate(Date settleDate) {
|
||||
baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.RANGE_TYPE.getValue());
|
||||
baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.SHARE_TYPE.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCuMemberRetailRangeInitAward() {
|
||||
baseMapper.updateCuMemberRetailRangeInitAward();
|
||||
baseMapper.updateCuMemberRetailRangeInitV5Award();
|
||||
baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -289,7 +289,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
// 结算明细前一天表
|
||||
String yesterdayRangeDetailTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + yesterdayPeriod;
|
||||
|
||||
// TODO 回退奖衔,将奖衔回退到结算前状态
|
||||
// 回退奖衔,将奖衔回退到结算前状态
|
||||
iCuMemberAwardsService.calculateCuMemberRetailRangeAwardsInit(settleDate, period, rangeTableName);
|
||||
// 初始化结算网体数据(昨天数据更新到今天数据)
|
||||
iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(rangeTableName, yesterdayRangeTableName, isSameMonth);
|
||||
|
@ -330,26 +330,52 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||
|
||||
for (SaOrderExt saOrderExt : orderList) {
|
||||
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
if (null == sourceMember) {
|
||||
log.warn("订单会员不存在, pkMember: {}", saOrderExt.getPkMember());
|
||||
continue;
|
||||
}
|
||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||
BigDecimal orderAmount = saOrderExt.getOrderAmount();
|
||||
|
||||
// 自己消费的相关金额、业绩处理
|
||||
sourceMember.setNewConsumePv(orderAchieve);
|
||||
sourceMember.setConsumePv(sourceMember.getConsumePv().add(orderAchieve));
|
||||
sourceMember.setMonthConsumePv(sourceMember.getMonthConsumePv().add(orderAchieve));
|
||||
sourceMember.setNewConsumeAmount(orderAmount);
|
||||
sourceMember.setConsumeAmount(sourceMember.getConsumeAmount().add(orderAmount));
|
||||
sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount));
|
||||
// TODO 自己计算奖衔
|
||||
this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember);
|
||||
// TODO 累计团队业绩、金额 + 计算奖衔
|
||||
this.calculateParentAwards(period, memberRangeExtMap, rangeTableName, sourceMember, saOrderExt, retailAwardsMap);
|
||||
|
||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 精品专区、甄选专区
|
||||
sourceMember.setRegConsumeNewPv(sourceMember.getRegConsumeNewPv().add(orderAchieve));
|
||||
sourceMember.setRegConsumeNewAmount(sourceMember.getRegConsumeNewAmount().add(orderAmount));
|
||||
|
||||
// 直推收益 -- 来源订单金额,直推拿金额的10%
|
||||
this.calculateDirectIncome(cuMemberBonusPushList, memberRangeExtMap, saOrderExt,
|
||||
this.calculateDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt,
|
||||
bonusConfigDTO, period, cuMemberBonusMap);
|
||||
// 一阶段收益 -- 来源订单金额
|
||||
stageList.addAll(this.calculateStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
||||
memberRangeExtMap, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName));
|
||||
memberRangeExtMap, sourceMember, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName));
|
||||
|
||||
// TODO 领导级差收益 -- 来源PV
|
||||
// TODO 领导平差收益 -- 来源PV
|
||||
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 商城专区
|
||||
sourceMember.setRepConsumeNewPv(sourceMember.getRepConsumeNewPv().add(orderAchieve));
|
||||
sourceMember.setRepConsumeNewAmount(sourceMember.getRepConsumeNewAmount().add(orderAmount));
|
||||
|
||||
// 见点收益 -- 来源订单业绩,血缘上20代,每代拿业绩的10%
|
||||
this.calculateRepurDirectIncome(cuMemberBonusPushList, memberRangeExtMap, saOrderExt,
|
||||
this.calculateRepurDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt,
|
||||
bonusConfigDTO, period, cuMemberBonusMap);
|
||||
// 一阶段收益 -- 来源订单累计业绩
|
||||
stageList.addAll(this.calculateStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period,
|
||||
memberRangeExtMap, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName));
|
||||
memberRangeExtMap, sourceMember, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName));
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -819,15 +845,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
/**
|
||||
* 计算直推收益 -- 精品专区
|
||||
*/
|
||||
private void calculateDirectIncome(List<CuMemberBonusPush> cuMemberBonusPushList, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, SaOrderExt saOrderExt,
|
||||
private void calculateDirectIncome(List<CuMemberBonusPush> cuMemberBonusPushList, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||
CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt,
|
||||
BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
||||
// 订单会员
|
||||
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
if (null == sourceMember) {
|
||||
log.warn("直推收益:订单会员不存在, pkMember: {}", saOrderExt.getPkMember());
|
||||
return;
|
||||
}
|
||||
|
||||
// 订单会员推荐人
|
||||
CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(sourceMember.getPkParent());
|
||||
if (null == targetMember) {
|
||||
|
@ -868,14 +888,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
/**
|
||||
* 计算见点收益 -- 商城专区
|
||||
*/
|
||||
private void calculateRepurDirectIncome(List<CuMemberBonusPush> cuMemberBonusPushList, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, SaOrderExt saOrderExt,
|
||||
private void calculateRepurDirectIncome(List<CuMemberBonusPush> cuMemberBonusPushList, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||
CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt,
|
||||
BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap) {
|
||||
// 订单会员
|
||||
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
if (null == sourceMember) {
|
||||
log.warn("订单会员不存在, pkMember: {}", saOrderExt.getPkMember());
|
||||
return;
|
||||
}
|
||||
// 推荐人
|
||||
long pkParent = sourceMember.getPkParent();
|
||||
// 代数
|
||||
|
@ -959,16 +974,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
* 计算一阶段收益 -- 精品专区、商城专区
|
||||
*/
|
||||
private List<CuMemberRetailDetail> calculateStageIncome(List<CuMemberBonusStage> cuMemberBonusStageList, Map<Long, CuMemberBonus> cuMemberBonusMap,
|
||||
BonusConfigDTO bonusConfigDTO, Integer period,
|
||||
Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, SaOrderExt saOrderExt,
|
||||
BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
|
||||
CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt,
|
||||
Date settleDate, String rangeTableName, String rangeDetailTableName) {
|
||||
List<CuMemberRetailDetail> returnRetailDetailList = new ArrayList<>();
|
||||
// 订单会员
|
||||
CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember());
|
||||
if (null == sourceMember) {
|
||||
log.error("阶段收益处理失败,订单会员不存在. orderCode: {}, pkMember: {}", saOrderExt.getOrderCode(), saOrderExt.getPkMember());
|
||||
return returnRetailDetailList;
|
||||
}
|
||||
|
||||
// 订单生成新点位数量
|
||||
int newPointInt;
|
||||
|
@ -1279,4 +1288,120 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算奖衔
|
||||
*/
|
||||
private void calculateAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
|
||||
SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap, List<CuMemberAwards> cuMemberAwardsList,
|
||||
CuMemberRetailRangeExt targetMember) {
|
||||
// // 校验大小区会员数据
|
||||
// List<CuMemberRetailRangeExt> cuMemberRangeExtList = null;
|
||||
// // 校验累计小部门会员数据
|
||||
// List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList = null;
|
||||
// // 计算分红奖衔
|
||||
// while (true) {
|
||||
// // 当月奖衔值 + 5,获取下一个奖衔值
|
||||
// int awardsValue = targetMember.getAwardsValue() + 5;
|
||||
// if (retailAwardsMap.containsKey(awardsValue)) {
|
||||
// BdAwards bdAwards = retailAwardsMap.get(awardsValue);
|
||||
// // 先验证累计业绩
|
||||
// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMember.getTeamConsumePv(), targetMember.getConsumePv()), bdAwards.getShareTotalCheck())) {
|
||||
// // 再验证小区,计算小区业绩(拉取直推会员数据)
|
||||
// if (null == cuMemberRangeExtList) {
|
||||
// // 昨日结算表,查询订单会员直推数据
|
||||
// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember());
|
||||
// }
|
||||
// // 本人月消费业绩(默认为大区)
|
||||
// BigDecimal consumeBigPv = targetMember.getMonthConsumePv();
|
||||
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) {
|
||||
// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||
// }
|
||||
// // 月累计业绩 = 本人月消费业绩 + 团队月消费业绩
|
||||
// BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv());
|
||||
// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) {
|
||||
// // 月累计业绩 > 大区业绩,则月累计就成为大区了
|
||||
// consumeBigPv = consumePv;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 小区业绩 = 本人月消费业绩 + 团队月消费业绩 - 大区业绩
|
||||
// BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMember.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMember.getTeamMonthPv(), consumeBigPv));
|
||||
// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) {
|
||||
// // 小区业绩 >= 小区考核业绩
|
||||
// if (bdAwards.getPlaceDeptNum() > 0) {
|
||||
// // 验证是否有多个区满足业绩
|
||||
// if (null == cuMemberRetailRangeExtList) {
|
||||
// // 昨日结算表,查询订单会员直推数据
|
||||
// cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMember.getPkMember(), bdAwards.getShareCommunityCheck());
|
||||
// }
|
||||
//
|
||||
// int enoughNum = 0;
|
||||
// if (ComputeUtil.compareValue(targetMember.getMonthConsumePv(), bdAwards.getShareCommunityCheck())) {
|
||||
// enoughNum += 1;
|
||||
// }
|
||||
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) {
|
||||
// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||
// }
|
||||
// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()), bdAwards.getShareCommunityCheck())) {
|
||||
// // 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩,则满足条件小部门 +1
|
||||
// enoughNum += 1;
|
||||
// }
|
||||
// }
|
||||
// if (bdAwards.getPlaceDeptNum() > enoughNum) {
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue(), targetMember.getPkShareAwards()));
|
||||
// targetMember.setAwardsValue(bdAwards.getAwardsValue());
|
||||
// targetMember.setPkAwards(bdAwards.getPkId());
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算团队奖衔
|
||||
*/
|
||||
public List<CuMemberAwards> calculateParentAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
|
||||
CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap) {
|
||||
// 会员奖衔升级列表
|
||||
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
|
||||
// 订单会员的推荐人
|
||||
CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(sourceMember.getPkParent());
|
||||
|
||||
BigDecimal orderAchieve = saOrderExt.getOrderAchieve();
|
||||
BigDecimal orderAmount = saOrderExt.getOrderAmount();
|
||||
while (null != targetMember) {
|
||||
// 累计业绩
|
||||
targetMember.setTeamNewPv(targetMember.getTeamNewPv().add(orderAchieve));
|
||||
targetMember.setTeamConsumePv(targetMember.getTeamConsumePv().add(orderAchieve));
|
||||
targetMember.setTeamMonthPv(targetMember.getTeamMonthPv().add(orderAchieve));
|
||||
// 累计金额
|
||||
targetMember.setTeamNewAmount(targetMember.getTeamNewAmount().add(orderAmount));
|
||||
targetMember.setTeamConsumeAmount(targetMember.getTeamConsumeAmount().add(orderAmount));
|
||||
targetMember.setTeamMonthAmount(targetMember.getTeamMonthAmount().add(orderAmount));
|
||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
|
||||
) {
|
||||
// 团队精品专区
|
||||
targetMember.setRegTeamNewPv(targetMember.getRegTeamNewPv().add(orderAchieve));
|
||||
targetMember.setRegTeamNewAmount(targetMember.getRegTeamNewAmount().add(orderAmount));
|
||||
} else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 团队商城专区
|
||||
targetMember.setRepTeamNewPv(targetMember.getRepTeamNewPv().add(orderAchieve));
|
||||
targetMember.setRepTeamNewAmount(targetMember.getRepTeamNewAmount().add(orderAmount));
|
||||
}
|
||||
// 计算奖衔
|
||||
calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, targetMember);
|
||||
|
||||
targetMember = memberRangeExtMap.get(targetMember.getPkParent());
|
||||
}
|
||||
return cuMemberAwardsList;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -13,9 +13,6 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
|
|||
|
||||
/**
|
||||
* 回退极差奖衔,每日重新结算,先把奖衔回退到前一天
|
||||
*
|
||||
* @param period 结算期间
|
||||
* @param rangeTableName 结算表
|
||||
*/
|
||||
void calculateCuMemberRetailRangeAwardsInit(String settleDate, Integer period, String rangeTableName);
|
||||
|
||||
|
|
|
@ -432,6 +432,7 @@
|
|||
<include refid="CuMemberTableTrig"></include>
|
||||
</update>
|
||||
|
||||
<!-- 回退会员奖衔 -->
|
||||
<update id="updateBackCuMemberRetailRangeAward">
|
||||
merge into ${rangeTableName} a
|
||||
using (
|
||||
|
@ -441,62 +442,42 @@
|
|||
on ca.pk_member = cm.pk_member
|
||||
where ca.period = #{period}
|
||||
and ca.up_type = 1
|
||||
and ca.award_type = #{awardType}
|
||||
and ca.del_flag = 0
|
||||
<if test="awardType == 1">
|
||||
and cm.pk_awards <= ca.new_level
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
and cm.pk_share_awards <= ca.new_level
|
||||
</if>
|
||||
group by ca.pk_member
|
||||
) b
|
||||
on (a.pk_member = b.pk_member)
|
||||
when matched then
|
||||
update set
|
||||
<if test="awardType == 1">
|
||||
a.pk_awards = b.pk_awards
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
a.pk_share_awards=b.pk_awards
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<!-- 回退会员奖衔 -->
|
||||
<update id="updateCuMemberRetailRangeAwardByDate">
|
||||
merge into ${rangeTableName} a
|
||||
using (
|
||||
select y.pk_member,y.pk_awards from ${rangeTableName} x
|
||||
select y.pk_member, y.pk_awards
|
||||
from ${rangeTableName} x
|
||||
inner join (
|
||||
select a.pk_member, a.new_level pk_awards
|
||||
from cu_member_awards a
|
||||
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
|
||||
where
|
||||
<if test="awardType == 1">
|
||||
x.pk_awards < y.pk_awards
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
x.pk_share_awards < y.pk_awards
|
||||
</if>
|
||||
where x.pk_awards < y.pk_awards
|
||||
) b
|
||||
on (a.pk_member = b.pk_member)
|
||||
when matched then
|
||||
update set
|
||||
<if test="awardType == 1">
|
||||
a.pk_awards = b.pk_awards
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
a.pk_share_awards = b.pk_awards
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<update id="createCuMemberRetailRangeSecondTable">
|
||||
|
|
|
@ -123,7 +123,7 @@
|
|||
update set a.pk_max_awards = b.pk_awards, a.modified_time = sysdate
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 更新会员奖衔根据临时表 -->
|
||||
<update id="updateBackCuMemberRetailRangeAward">
|
||||
merge into cu_member a
|
||||
using (select pk_member, max(old_level) pk_awards
|
||||
|
@ -132,27 +132,17 @@
|
|||
on ca.pk_member = cm.pk_id
|
||||
where ca.period = #{period}
|
||||
and ca.up_type = 1
|
||||
and award_type = #{awardType}
|
||||
and ca.del_flag = 0
|
||||
<if test="awardType == 1">
|
||||
and cm.pk_awards < ca.new_level
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
and cm.pk_range_awards < ca.new_level
|
||||
</if>
|
||||
group by ca.pk_member) b
|
||||
on (a.pk_id = b.pk_member)
|
||||
when matched then
|
||||
update set
|
||||
<if test="awardType == 1">
|
||||
a.pk_awards = b.pk_awards,
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
a.pk_range_awards = b.pk_awards,
|
||||
</if>
|
||||
a.modified_time = sysdate
|
||||
</update>
|
||||
|
||||
<!-- 更新会员奖衔根据临时表 -->
|
||||
<update id="updateCuMemberRetailRangeAwardByDate">
|
||||
merge into cu_member a
|
||||
using (
|
||||
|
@ -167,52 +157,20 @@
|
|||
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_id = y.pk_member
|
||||
where
|
||||
<if test="awardType == 1">
|
||||
x.pk_awards < y.pk_awards
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
x.pk_range_awards < y.pk_awards
|
||||
</if>
|
||||
where x.pk_awards < y.pk_awards
|
||||
) b
|
||||
on (a.pk_id = b.pk_member)
|
||||
when matched then
|
||||
update set
|
||||
<if test="awardType == 1">
|
||||
a.pk_awards = b.pk_awards,
|
||||
</if>
|
||||
<if test="awardType == 2">
|
||||
a.pk_range_awards = b.pk_awards,
|
||||
</if>
|
||||
a.modified_time = sysdate
|
||||
</update>
|
||||
|
||||
<!-- 初始化会员奖衔 -->
|
||||
<update id="updateCuMemberRetailRangeInitAward">
|
||||
update cu_member
|
||||
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),
|
||||
pk_range_awards = (select pk_id from bd_awards where awards_value = 5)
|
||||
where pk_settle_grade = (
|
||||
select pk_id
|
||||
from bd_grade
|
||||
where grade_value = 70
|
||||
and del_flag = 0
|
||||
)
|
||||
</update>
|
||||
|
||||
<update id="updateCuMemberRetailRangeByList">
|
||||
merge into cu_member a
|
||||
using (
|
||||
|
|
|
@ -102,12 +102,6 @@
|
|||
cma.modified_time = sysdate
|
||||
where period = #{period}
|
||||
and up_type = 1
|
||||
|
||||
<!--
|
||||
delete from cu_member_awards
|
||||
where period = #{period}
|
||||
and up_type = 1
|
||||
-->
|
||||
</delete>
|
||||
|
||||
<!-- 删除升级的奖衔 -->
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
|
@ -12,9 +11,9 @@ import lombok.Getter;
|
|||
public enum EAwardsType {
|
||||
|
||||
/**
|
||||
* 当月奖衔
|
||||
* 荣誉奖衔
|
||||
*/
|
||||
RANGE_TYPE(1, "当月奖衔", 0),
|
||||
RANGE_TYPE(1, "荣誉奖衔", 0),
|
||||
|
||||
/**
|
||||
* 分红奖衔
|
||||
|
|
|
@ -25,14 +25,15 @@ public enum EBonusItems {
|
|||
* 阶段收益 -- 精品专区、商城专区
|
||||
*/
|
||||
STAGE_INCOME(21, "阶段收益", 0),
|
||||
|
||||
/**
|
||||
* 级差收益 -- 精品专区、商城专区
|
||||
* 领导奖金收益 -- 精品专区、商城专区
|
||||
*/
|
||||
RANGE_INCOME(22, "级差收益", 0),
|
||||
RANGE_INCOME(22, "领导奖金收益", 0),
|
||||
/**
|
||||
* 平级收益 -- 精品专区、商城专区
|
||||
* 平级奖金收益 -- 精品专区、商城专区
|
||||
*/
|
||||
SAME_LEVEL_INCOME(23, "平级收益", 0),
|
||||
SAME_LEVEL_INCOME(23, "平级奖金收益", 0),
|
||||
|
||||
/**
|
||||
* 见点收益 -- 商城专区
|
||||
|
|
Loading…
Reference in New Issue