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 7f73f61e..2487e393 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 @@ -261,9 +261,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 结算期间日期后一天 Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate); - // 新零售订单(注册、复购) + // 订单(精品、甄选、商城、五折) List orderList = iBonusOrderService.listRetailSaOrder(settleStartDate, settleEndDate, null, - Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue())); + Arrays.asList(EOrderType.RETAIL_REGISTER.getValue(), EOrderType.RETAIL_UPGRADE.getValue(), EOrderType.RETAIL_REPURCHASE.getValue(), EOrderType.DISCOUNT_ORDER.getValue())); // 更新当月会员, 将昨天业绩更到到今天,更新当月会员考核结果,有消费的考核通过 // 结算期间表 @@ -308,12 +308,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { List cuMemberAwardsList = new ArrayList<>(); // 直推收益、见点收益 List cuMemberBonusPushList = new ArrayList<>(); + // 领导奖收益、平级奖收益 + List cuMemberBonusRangeList = new ArrayList<>(); // 阶段收益 List cuMemberBonusStageList = new ArrayList<>(); - // 复购级差收益 - List cuMemberBonusRangeList = new ArrayList<>(); - // 会员奖金明细 - List cuMemberBonusDetailList = new ArrayList<>(); for (SaOrderExt saOrderExt : orderList) { CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember()); @@ -342,30 +340,36 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { sourceMember.setRegConsumeNewPv(sourceMember.getRegConsumeNewPv().add(orderAchieve)); sourceMember.setRegConsumeNewAmount(sourceMember.getRegConsumeNewAmount().add(orderAmount)); - // 直推收益 -- 来源订单金额,直推拿金额的10% - this.calculateDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt, - bonusConfigDTO, period, cuMemberBonusMap); // 一阶段收益 -- 来源订单金额 stageList.addAll(this.calculateStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period, memberRangeExtMap, sourceMember, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName)); - - // TODO 领导级差收益、平级收益 -- 来源PV - - + // 直推收益 -- 来源订单金额,直推拿金额的10% + this.calculateDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt, + bonusConfigDTO, period, cuMemberBonusMap); + // 领导级差收益、平级收益 -- 来源PV + this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, + awardsMap, saOrderExt, sourceMember); } 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, sourceMember, saOrderExt, - bonusConfigDTO, period, cuMemberBonusMap); // 一阶段收益 -- 来源订单累计业绩 stageList.addAll(this.calculateStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period, memberRangeExtMap, sourceMember, saOrderExt, settleStartDate, rangeTableName, rangeDetailTableName)); - - // TODO 领导级差收益、平级收益 -- 来源PV - + // 见点收益 -- 来源订单业绩,血缘上20代,每代拿业绩的10% + this.calculateRepurDirectIncome(cuMemberBonusPushList, memberRangeExtMap, sourceMember, saOrderExt, + bonusConfigDTO, period, cuMemberBonusMap); + // 领导级差收益、平级收益 -- 来源PV + this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, + awardsMap, saOrderExt, sourceMember); + } else if (EOrderType.DISCOUNT_ORDER.getValue() == saOrderExt.getOrderType()) { + // 五折专区 + sourceMember.setRepConsumeNewPv(sourceMember.getRepConsumeNewPv().add(orderAchieve)); + sourceMember.setRepConsumeNewAmount(sourceMember.getRepConsumeNewAmount().add(orderAmount)); + // 领导级差收益 -- 来源PV + this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, + awardsMap, saOrderExt, sourceMember); } } @@ -396,14 +400,11 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (cuMemberBonusPushList.size() > 0) { bonusRecordDetailVO.setCuMemberBonusPushList(cuMemberBonusPushList); } - if (cuMemberBonusStageList.size() > 0) { - bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList); - } if (cuMemberBonusRangeList.size() > 0) { bonusRecordDetailVO.setCuMemberBonusRangeList(cuMemberBonusRangeList); } - if (cuMemberBonusDetailList.size() > 0) { - bonusRecordDetailVO.setCuMemberBonusDetailList(cuMemberBonusDetailList); + if (cuMemberBonusStageList.size() > 0) { + bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList); } if (cuMemberAwardsList.size() > 0) { // 批量插入会员奖衔记录 @@ -562,8 +563,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } // 死点 或 停算收益 或 顾客 没有奖金 if (ECategory.NORMAL.getValue() != targetMember.getCategory() + || EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus() || EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) { - log.warn("直推收益:订单会员推荐人不满足计算奖金条件, memberCode: {}, category: {}, accountStatus: {}", targetMember.getMemberCode(), targetMember.getCategory(), targetMember.getAccountStatus()); + // 非正常会员、停止收益、停算收益,直接跳过 + log.warn("直推收益:订单会员推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode()); return; } // 订单金额 @@ -615,8 +618,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } // 死点 或 停算收益 或 顾客 没有奖金 if (ECategory.NORMAL.getValue() != targetMember.getCategory() + || EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus() || EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) { - log.warn("见点收益:订单会员血缘上推荐人不满足计算奖金条件, memberCode: {}, category: {}, accountStatus: {}", targetMember.getMemberCode(), targetMember.getCategory(), targetMember.getAccountStatus()); + // 非正常会员、停止收益、停算收益,直接跳过 + log.warn("见点收益:订单会员血缘上推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode()); return; } pkParent = targetMember.getPkParent(); @@ -845,6 +850,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { giftPayTime = keyDate; // 需要填充的直推会员 CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate); + + if (ECategory.NORMAL.getValue() != targetMember.getCategory() + || EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus() + || EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) { + // 非正常会员、停止收益、停算收益,直接跳过 + log.warn("阶段收益:订单会员推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode()); + continue; + } + // 推荐人一阶段子点位列表 LinkedHashMap parentDetailList = targetMember.getOneDetailMap(); if (CollectionUtil.isEmpty(parentDetailList)) { @@ -893,6 +907,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } pkParent = targetMember.getPkParent(); + if (ECategory.NORMAL.getValue() != targetMember.getCategory() + || EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus() + || EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) { + // 非正常会员、停止收益、停算收益,直接跳过 + log.warn("阶段收益:订单会员推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode()); + continue; + } + // 推荐人一阶段子点位列表 LinkedHashMap parentDetailList = null; if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) { @@ -1013,10 +1035,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { int awardsValue = targetMember.getAwardsValue() + 5; if (retailAwardsMap.containsKey(awardsValue)) { BdAwards bdAwards = retailAwardsMap.get(awardsValue); - // 先验证累计业绩 + if (ComputeUtil.compareValue(targetMember.getTeamConsumePv(), bdAwards.getTotalCheck())) { - // 团队累计业绩 >= 奖衔业绩 - // 再验证小区,计算小区业绩(拉取直推会员数据) + // 团队累计业绩 >= 奖衔累计业绩 if (null == cuMemberRangeExtList) { // 昨日结算表,查询会员直推数据 cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember()); @@ -1034,11 +1055,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { consumeBigPv = consumePv; } } - - // 小区业绩 = 团队累计消费业绩 - 大区业绩 + // 小区业绩 = 团队累计业绩 - 大区业绩 BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv); - if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) { - // 小区业绩 >= 小区考核业绩 + if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) { + // 小区业绩 >= 考核小区业绩 if (bdAwards.getPlaceDeptNum() > 0) { // 验证每条血缘下,满足达标数量 List checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(), @@ -1049,6 +1069,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { targetMember.setAwardsValue(bdAwards.getAwardsValue()); continue; } + } else { + // 不需要考核血缘达标,直接给奖衔 + cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards())); + targetMember.setPkAwards(bdAwards.getPkId()); + targetMember.setAwardsValue(bdAwards.getAwardsValue()); + continue; } } } @@ -1060,8 +1086,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { /** * 计算团队奖衔 */ - public List calculateParentAwards(Integer period, Map memberRangeExtMap, String rangeTableName, - CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map retailAwardsMap) { + private List calculateParentAwards(Integer period, Map memberRangeExtMap, String rangeTableName, + CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map retailAwardsMap) { // 会员奖衔升级列表 List cuMemberAwardsList = new ArrayList<>(); // 订单会员的推荐人 @@ -1101,14 +1127,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { /** * 计算领导奖、平级奖 */ - List calculateRetailRangeBonus(Map memberRangeExtMap, Map cuMemberBonusMap, - BonusConfigDTO bonusConfigDTO, Integer period, Map awardsMap, - SaOrderExt saOrderExt, CuMemberRetailRangeExt sourceMember) { - // 直推级差返回数据 - List memberBonusRangeList = new ArrayList<>(); - + private void calculateRetailRangeBonus(List cuMemberBonusRangeList, Map memberRangeExtMap, + Map cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, Integer period, + Map awardsMap, SaOrderExt saOrderExt, CuMemberRetailRangeExt sourceMember) { // 订单PV BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); + if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() + || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { + // 精品专区、甄选专区,最大值为350PV超过的也算350PV + if (orderAchieve.compareTo(BonusConstants.RANGE_BONUS_ACHIEVE) > 0) { + orderAchieve = BonusConstants.RANGE_BONUS_ACHIEVE; + } + } // 领导奖从自己开始算 long pkParent = sourceMember.getPkMember(); @@ -1123,15 +1153,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { while (true) { // 推荐人 CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent); - if (targetMember == null) { + if (null == targetMember) { break; } // 推荐人的推荐人 pkParent = targetMember.getPkParent(); if (ECategory.NORMAL.getValue() != targetMember.getCategory() - || EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus()) { - // 非正常会员、停止收益,直接跳过 + || EIncomeStatus.STOP_INCOME.getValue() == targetMember.getIncomeStatus() + || EAccountStatus.STOP_INCOME.getValue() == targetMember.getAccountStatus()) { + // 非正常会员、停止收益、停算收益,直接跳过 + log.warn("领导奖或平级奖收益:订单会员推荐人不满足计算奖金条件, memberCode: {}", targetMember.getMemberCode()); continue; } // 当前会员奖衔值 @@ -1146,10 +1178,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (calAwardsValue > beforeAwardsValue) { // 当前会员奖衔值大于前一个奖衔值,会有领导奖级差 - beforeRangeRatio = bdAwards.getRangeRatio().subtract(beforeRangeRatio); - rangeBonusIncome = orderAchieve.multiply(beforeRangeRatio); - } else if (EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue && beforeSameAlgebra < 3) { - // 前一个等级是皇冠大使,需要有3代平级 + rangeBonusIncome = orderAchieve.multiply(bdAwards.getRangeRatio().subtract(beforeRangeRatio)); + + beforeRangeRatio = bdAwards.getRangeRatio(); + beforeAwardsValue = calAwardsValue; + } else if (EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue && beforeSameAlgebra < 3 + && EOrderType.DISCOUNT_ORDER.getValue() != saOrderExt.getOrderType()) { + // 前一个等级是皇冠大使,需要有3代平级(五折专区不走平级收益) sameBonusIncome = orderAchieve.multiply(BonusConstants.SAME_LEVEL_RATIO).multiply(bdAwards.getSameLevelRatio()); beforeSameAlgebra += 1; } @@ -1170,7 +1205,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome())); setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange); } - memberBonusRangeList.add(cuMemberBonusRange); + cuMemberBonusRangeList.add(cuMemberBonusRange); } if (null != sameBonusIncome) { // 处理平级奖收益 @@ -1188,10 +1223,19 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), sameLevelMemberBonusRange.getPretaxIncome())); setRetailTotal(bdBonusDeduct, cuMemberBonus, sameLevelMemberBonusRange); } - memberBonusRangeList.add(sameLevelMemberBonusRange); + cuMemberBonusRangeList.add(sameLevelMemberBonusRange); + } + + if (EOrderType.DISCOUNT_ORDER.getValue() != saOrderExt.getOrderType() + && EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue && beforeSameAlgebra >= 3) { + // 非五折专区,有领导奖、平级奖,本次奖衔是最高,并且已经拿满3次,直接退回 + break; + } else if (EOrderType.DISCOUNT_ORDER.getValue() == saOrderExt.getOrderType() + && EAwards.GLOBAL_CHAIRMAN.getValue() == beforeAwardsValue) { + // 五折专区,只有领导奖,本次奖衔是最高,直接退回 + break; } } - return memberBonusRangeList; } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java index 2d74d2e7..c5187eb5 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java @@ -218,47 +218,34 @@ public class BonusSettleServiceImpl implements IBonusSettleService { void insertCuMemberBonus(String settleDate, Integer period, Map cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) { iCuMemberBonusPushService.deleteCuMemberBonusPush(period); iCuMemberBonusStageService.deleteCuMemberBonusStage(period); - iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period); iCuMemberBonusRangeService.deleteCuMemberBonusRange(period); iCuMemberBonusService.deleteCuMemberBonus(period); if (cuMemberBonusMap.size() == 0) { return; } - List batchMemberBonusPushList = new ArrayList<>(); - List batchMemberBonusDetailList = new ArrayList<>(); - List batchMemberBonusRangeList = new ArrayList<>(); + List cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap); List cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList(); - List cuMemberBonusDetailList = bonusRecordDetailVO.getCuMemberBonusDetailList(); List cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList(); - // 阶段收益奖金明细 List cuMemberBonusStageList = bonusRecordDetailVO.getCuMemberBonusStageList(); if (cuMemberBonusPushList != null && cuMemberBonusPushList.size() > 0) { cuMemberBonusPushList.forEach(cuMemberBonusPush -> cuMemberBonusPush.setPkBonus(cuMemberBonusMap.get(cuMemberBonusPush.getPkBonus()).getPkId())); - batchMemberBonusPushList.addAll(cuMemberBonusPushList); + } + if (cuMemberBonusRangeList != null && cuMemberBonusRangeList.size() > 0) { + cuMemberBonusRangeList.forEach(cuMemberBonusRange -> + cuMemberBonusRange.setPkBonus(cuMemberBonusMap.get(cuMemberBonusRange.getPkBonus()).getPkId())); } if (cuMemberBonusStageList != null && cuMemberBonusStageList.size() > 0) { cuMemberBonusStageList.forEach(cuMemberBonusStage -> cuMemberBonusStage.setPkBonus(cuMemberBonusMap.get(cuMemberBonusStage.getPkBonus()).getPkId())); } - if (cuMemberBonusDetailList != null && cuMemberBonusDetailList.size() > 0) { - cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> - cuMemberBonusDetail.setPkBonus(cuMemberBonusMap.get(cuMemberBonusDetail.getPkBonus()).getPkId())); - batchMemberBonusDetailList.addAll(cuMemberBonusDetailList); - } - if (cuMemberBonusRangeList != null && cuMemberBonusRangeList.size() > 0) { - cuMemberBonusRangeList.forEach(cuMemberBonusRange -> - cuMemberBonusRange.setPkBonus(cuMemberBonusMap.get(cuMemberBonusRange.getPkBonus()).getPkId())); - batchMemberBonusRangeList.addAll(cuMemberBonusRangeList); - } // 插入奖金主表 iCuMemberBonusService.batchInsertCuMemberBonus(cuMemberBonusList); Set memberIdSet = iCuMemberBonusService.queryMemberBonusByPeriod(period); - iCuMemberBonusPushService.batchInsertCuMemberBonusPush(batchMemberBonusPushList, memberIdSet); + iCuMemberBonusPushService.batchInsertCuMemberBonusPush(cuMemberBonusPushList, memberIdSet); + iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(cuMemberBonusRangeList, memberIdSet); iCuMemberBonusStageService.batchInsertCuMemberBonusStage(cuMemberBonusStageList, memberIdSet); - iCuMemberBonusDetailService.batchInsertCuMemberBonusDetail(batchMemberBonusDetailList, memberIdSet); - iCuMemberBonusRangeService.batchInsertCuMemberBonusRange(batchMemberBonusRangeList, memberIdSet); } private List setCuMemberBonusSeq(String settleDate, Map cuMemberBonusMap) { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index 7d7d1259..b989b4ea 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -22,6 +22,7 @@ import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.core.utils.DateUtils; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.bonus.CuMemberBonus; +import com.hzs.common.domain.member.bonus.CuMemberBonusRange; import com.hzs.common.domain.member.ext.*; import com.hzs.common.domain.system.config.BdBonusItems; import com.hzs.common.domain.system.config.ext.BdBonusItemsExt; @@ -400,7 +401,16 @@ public class CuMemberBonusServiceImpl extends ServiceImpl cuMemberBonusRangeList = cuMemberBonusRangeMapper.queryMemberBonusRangeByBonusItemsForServer(bonusParam); + dataTable = getDataTable(cuMemberBonusRangeList); + cuMemberBonusRangeList.forEach(cuMemberBonusRange -> { + MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusRange, MemberBonusDetailSerVO.class); + memberBonusDetailSerVoS.add(memberBonusDetailVO); + }); + } else if (EBonusItems.STAGE_INCOME.getValue() == bonusItemsValue) { // 阶段收益 List cuMemberBonusDetailList = cuMemberBonusStageMapper.queryMemberBonusStageByBonusItemsFoServer(bonusParam); dataTable = getDataTable(cuMemberBonusDetailList); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusRecordDetailVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusRecordDetailVO.java index 703a1dc3..ace05141 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusRecordDetailVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/BonusRecordDetailVO.java @@ -22,18 +22,13 @@ public class BonusRecordDetailVO implements Serializable { */ private List cuMemberBonusPushList; + /** + * 领导奖收益、平级奖收益 + */ + private List cuMemberBonusRangeList; + /** * 阶段收益 */ private List cuMemberBonusStageList; - - /** - * 新零售 - 区域分红、月度分红 - */ - private List cuMemberBonusDetailList; - - /** - * 新零售 - 直推收益、平级收益、月度福利级差、月度复购级差、复购级差 - */ - private List cuMemberBonusRangeList; } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java index 6bd88d2f..723f1b0b 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java @@ -15,6 +15,11 @@ public class BonusConstants { */ public static final BigDecimal SAME_LEVEL_RATIO = new BigDecimal("0.02"); + /** + * 领导奖处理时,满350PV以上按350算 + */ + public static final BigDecimal RANGE_BONUS_ACHIEVE = new BigDecimal("350"); + /** * 赠送2个点位订单金额 */ diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusRangeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusRangeMapper.xml index fc0abe67..67e847a1 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusRangeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusRangeMapper.xml @@ -161,9 +161,10 @@ where so.del_flag = 0 ) so inner join ( - select - cb.pk_member,cr.pk_order,cb.period,cb.pk_country,cr.pk_bonus_items,cr.income_status,cr.CAL_ACHIEVE,cr.pretax_income,cr.income_tax,cr.real_income, - cr.remark,cr.income_ratio,cr.income_dial_ratio,cr.order_dial_ratio + select cb.pk_member, cr.pk_order, cb.period, cb.pk_country, cr.pk_bonus_items, + cr.income_status, cr.cal_achieve, cr.remark, + cr.pretax_income, cr.income_tax, cr.real_income, + cr.income_ratio, cr.income_dial_ratio, cr.order_dial_ratio from cu_member_bonus cb inner join CU_MEMBER_BONUS_RANGE cr on cb.pk_id = cr.pk_bonus diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java index fd91ff40..8acd2bc2 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/BonusMsgConstants.java @@ -27,7 +27,7 @@ public class BonusMsgConstants { /** * 领导奖收益 */ - public static String RANGE = "订单编号%s,%s为%s贡献了领导奖收益,计算金额%f,前一级差奖衔名称%s,当前奖衔名称%s。"; + public static String RANGE = "订单编号%s,%s为%s贡献了领导奖收益,计算业绩%f,前一级差奖衔名称%s,当前奖衔名称%s。"; /** * 平级收益