## 日结处理业绩;

This commit is contained in:
cabbage 2025-09-26 17:54:28 +08:00
parent f832063a17
commit 6db021e8b0
12 changed files with 256 additions and 232 deletions

View File

@ -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);
/**
* 根据订单查询出网体中记录的会员数据推荐人安置人

View File

@ -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

View File

@ -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);
}

View File

@ -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();
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -13,9 +13,6 @@ public interface ICuMemberAwardsService extends IService<CuMemberAwards> {
/**
* 回退极差奖衔每日重新结算先把奖衔回退到前一天
*
* @param period 结算期间
* @param rangeTableName 结算表
*/
void calculateCuMemberRetailRangeAwardsInit(String settleDate, Integer period, String rangeTableName);

View File

@ -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 &lt;= ca.new_level
</if>
<if test="awardType == 2">
and cm.pk_share_awards &lt;= 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 &lt;= #{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 &lt; y.pk_awards
</if>
<if test="awardType == 2">
x.pk_share_awards &lt; y.pk_awards
</if>
where x.pk_awards &lt; 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">

View File

@ -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 &lt; ca.new_level
</if>
<if test="awardType == 2">
and cm.pk_range_awards &lt; 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 &lt;= #{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 &lt; y.pk_awards
</if>
<if test="awardType == 2">
x.pk_range_awards &lt; y.pk_awards
</if>
where x.pk_awards &lt; 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 (

View File

@ -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>
<!-- 删除升级的奖衔 -->

View File

@ -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),
/**
* 分红奖衔

View File

@ -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),
/**
* 见点收益 -- 商城专区