From 6db021e8b041a4f668fae5bf5e5a7be54506032f Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Fri, 26 Sep 2025 17:54:28 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=97=A5=E7=BB=93=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=B8=9A=E7=BB=A9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../achieve/mapper/CuMemberTreeMapper.java | 18 +- .../service/impl/CuMemberTreeServiceImpl.java | 6 +- .../hzs/bonus/base/mapper/CuMemberMapper.java | 14 +- .../bonus/base/service/ICuMemberService.java | 6 - .../service/impl/CuMemberServiceImpl.java | 15 +- .../service/impl/BonusSettleRangeHandle.java | 181 +++++++++++++++--- .../service/ICuMemberAwardsService.java | 3 - .../bonus/achieve/CuMemberTreeMapper.xml | 99 ++++------ .../mapper/bonus/base/CuMemberMapper.xml | 122 ++++-------- .../bonus/detail/CuMemberAwardsMapper.xml | 10 +- .../hzs/common/core/enums/EAwardsType.java | 5 +- .../hzs/common/core/enums/EBonusItems.java | 9 +- 12 files changed, 256 insertions(+), 232 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java index 3dc69543..20f89149 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java @@ -113,17 +113,15 @@ public interface CuMemberTreeMapper extends BaseMapper { */ 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); /** * 根据订单,查询出网体中记录的会员数据,推荐人、安置人 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java index 4e3a2ac0..94b17fbf 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberTreeServiceImpl.java @@ -111,14 +111,12 @@ public class CuMemberTreeServiceImpl extends ServiceImpl { /** * 更新会员奖衔根据临时表 */ - 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); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java index 28b2ba62..767b6e94 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java @@ -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 { */ void updateCuMemberRetailRangeAwardByDate(Date settleDate); - /** - * 初始化会员奖衔表 - */ - void updateCuMemberRetailRangeInitAward(); - } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java index c0272a6d..22016d13 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java @@ -25,7 +25,6 @@ public class CuMemberServiceImpl extends ServiceImpl 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 i @Override public void updateCuMemberRetailRangeByList(List cuMemberAwardsList, Integer period) { baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.RANGE_TYPE.getValue()); - baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue()); } @Override public void updateCuMemberMinAwardsByList(List 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); } } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index 20a90d34..0a9815d9 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -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 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 cuMemberBonusPushList, Map memberRangeExtMap, SaOrderExt saOrderExt, + private void calculateDirectIncome(List cuMemberBonusPushList, Map memberRangeExtMap, + CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO, Integer period, Map 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 cuMemberBonusPushList, Map memberRangeExtMap, SaOrderExt saOrderExt, + private void calculateRepurDirectIncome(List cuMemberBonusPushList, Map memberRangeExtMap, + CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, BonusConfigDTO bonusConfigDTO, Integer period, Map 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 calculateStageIncome(List cuMemberBonusStageList, Map cuMemberBonusMap, - BonusConfigDTO bonusConfigDTO, Integer period, - Map memberRangeExtMap, SaOrderExt saOrderExt, + BonusConfigDTO bonusConfigDTO, Integer period, Map memberRangeExtMap, + CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Date settleDate, String rangeTableName, String rangeDetailTableName) { List 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 memberRangeExtMap, String rangeTableName, + SaOrderExt saOrderExt, Map retailAwardsMap, List cuMemberAwardsList, + CuMemberRetailRangeExt targetMember) { +// // 校验大小区会员数据 +// List cuMemberRangeExtList = null; +// // 校验累计小部门会员数据 +// List 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 calculateParentAwards(Integer period, Map memberRangeExtMap, String rangeTableName, + CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map retailAwardsMap) { + // 会员奖衔升级列表 + List 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; + } + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java index 630ffff6..1abfc88e 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java @@ -13,9 +13,6 @@ public interface ICuMemberAwardsService extends IService { /** * 回退极差奖衔,每日重新结算,先把奖衔回退到前一天 - * - * @param period 结算期间 - * @param rangeTableName 结算表 */ void calculateCuMemberRetailRangeAwardsInit(String settleDate, Integer period, String rangeTableName); diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml index 6e1022aa..05bcb42f 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml @@ -432,71 +432,52 @@ + merge into ${rangeTableName} a - using ( - select ca.pk_member, max(old_level) pk_awards - from cu_member_awards ca - inner join ${rangeTableName} cm - 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 - - and cm.pk_awards <= ca.new_level - - - and cm.pk_share_awards <= ca.new_level - - group by ca.pk_member - ) b - on (a.pk_member = b.pk_member) - when matched then - update set - - a.pk_awards = b.pk_awards - - - a.pk_share_awards=b.pk_awards - + using ( + select ca.pk_member, max(old_level) pk_awards + from cu_member_awards ca + inner join ${rangeTableName} cm + on ca.pk_member = cm.pk_member + where ca.period = #{period} + and ca.up_type = 1 + and ca.del_flag = 0 + and cm.pk_awards <= ca.new_level + group by ca.pk_member + ) b + on (a.pk_member = b.pk_member) + when matched then + update set + a.pk_awards = b.pk_awards + merge into ${rangeTableName} a - using ( - 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 - 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 - - x.pk_awards < y.pk_awards - - - x.pk_share_awards < y.pk_awards - - ) b - on (a.pk_member = b.pk_member) - when matched then - update set - - a.pk_awards = b.pk_awards - - - a.pk_share_awards = b.pk_awards - + using ( + 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 + and end_validity_date <= #{settleDate, jdbcType=DATE} + 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 x.pk_awards < y.pk_awards + ) b + on (a.pk_member = b.pk_member) + when matched then + update set + a.pk_awards = b.pk_awards diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml index d2756848..66baa0b0 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml @@ -123,94 +123,52 @@ update set a.pk_max_awards = b.pk_awards, a.modified_time = sysdate - + merge into cu_member a - using (select pk_member, max(old_level) pk_awards - from cu_member_awards ca - inner join cu_member cm - 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 - - and cm.pk_awards < ca.new_level - - - and cm.pk_range_awards < ca.new_level - - group by ca.pk_member) b - on (a.pk_id = b.pk_member) - when matched then - update set - - a.pk_awards = b.pk_awards, - - - a.pk_range_awards = b.pk_awards, - - a.modified_time = sysdate + using (select pk_member, max(old_level) pk_awards + from cu_member_awards ca + inner join cu_member cm + on ca.pk_member = cm.pk_id + where ca.period = #{period} + and ca.up_type = 1 + and ca.del_flag = 0 + and cm.pk_awards < ca.new_level + group by ca.pk_member) b + on (a.pk_id = b.pk_member) + when matched then + update set + a.pk_awards = b.pk_awards, + a.modified_time = sysdate + merge into cu_member a - using ( - select y.pk_member, y.pk_awards - from cu_member x - inner join ( - select a.pk_member,a.new_level pk_awards - from cu_member_awards a - inner join ( - select pk_member, max(pk_id) pk_id - from cu_member_awards - 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 - - x.pk_awards < y.pk_awards - - - x.pk_range_awards < y.pk_awards - - ) b - on (a.pk_id = b.pk_member) - when matched then - update set - - a.pk_awards = b.pk_awards, - - - a.pk_range_awards = b.pk_awards, - - a.modified_time = sysdate - - - - - 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 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 - ) + using ( + select y.pk_member, y.pk_awards + from cu_member x + inner join ( + select a.pk_member, a.new_level pk_awards + from cu_member_awards a + inner join ( + select pk_member, max(pk_id) pk_id + from cu_member_awards + where del_flag = 0 + and up_type = 2 + and end_validity_date <= #{settleDate, jdbcType=DATE} + 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 x.pk_awards < y.pk_awards + ) b + on (a.pk_id = b.pk_member) + when matched then + update set + a.pk_awards = b.pk_awards, + a.modified_time = sysdate diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml index 139a6292..194ed236 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml @@ -98,16 +98,10 @@ update cu_member_awards cma - set cma.del_flag = 1, - cma.modified_time = sysdate - where period = #{period} - and up_type = 1 - - diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAwardsType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAwardsType.java index e370215f..20cf3916 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAwardsType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAwardsType.java @@ -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), /** * 分红奖衔 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java index 8cba6f7a..9b864df7 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusItems.java @@ -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), /** * 见点收益 -- 商城专区