Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
sangelxiu1 2025-09-29 11:00:53 +08:00
commit 1a477878c9
7 changed files with 128 additions and 86 deletions

View File

@ -261,9 +261,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
// 结算期间日期后一天
Date settleEndDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleStartDate);
// 新零售订单注册复购
// 订单精品甄选商城五折
List<SaOrderExt> 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<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
// 直推收益见点收益
List<CuMemberBonusPush> cuMemberBonusPushList = new ArrayList<>();
// 领导奖收益平级奖收益
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
// 阶段收益
List<CuMemberBonusStage> cuMemberBonusStageList = new ArrayList<>();
// 复购级差收益
List<CuMemberBonusRange> cuMemberBonusRangeList = new ArrayList<>();
// 会员奖金明细
List<CuMemberBonusDetail> 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<Integer, CuMemberRetailDetail> 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<Integer, CuMemberRetailDetail> 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<Integer> 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<CuMemberAwards> calculateParentAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap) {
private List<CuMemberAwards> calculateParentAwards(Integer period, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, String rangeTableName,
CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map<Integer, BdAwards> retailAwardsMap) {
// 会员奖衔升级列表
List<CuMemberAwards> cuMemberAwardsList = new ArrayList<>();
// 订单会员的推荐人
@ -1101,14 +1127,18 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
/**
* 计算领导奖平级奖
*/
List<CuMemberBonusRange> calculateRetailRangeBonus(Map<Long, CuMemberRetailRangeExt> memberRangeExtMap, Map<Long, CuMemberBonus> cuMemberBonusMap,
BonusConfigDTO bonusConfigDTO, Integer period, Map<Integer, BdAwards> awardsMap,
SaOrderExt saOrderExt, CuMemberRetailRangeExt sourceMember) {
// 直推级差返回数据
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
private void calculateRetailRangeBonus(List<CuMemberBonusRange> cuMemberBonusRangeList, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
Map<Long, CuMemberBonus> cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, Integer period,
Map<Integer, BdAwards> 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;
}

View File

@ -218,47 +218,34 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
void insertCuMemberBonus(String settleDate, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, BonusRecordDetailVO bonusRecordDetailVO) {
iCuMemberBonusPushService.deleteCuMemberBonusPush(period);
iCuMemberBonusStageService.deleteCuMemberBonusStage(period);
iCuMemberBonusDetailService.deleteCuMemberBonusDetail(period);
iCuMemberBonusRangeService.deleteCuMemberBonusRange(period);
iCuMemberBonusService.deleteCuMemberBonus(period);
if (cuMemberBonusMap.size() == 0) {
return;
}
List<CuMemberBonusPush> batchMemberBonusPushList = new ArrayList<>();
List<CuMemberBonusDetail> batchMemberBonusDetailList = new ArrayList<>();
List<CuMemberBonusRange> batchMemberBonusRangeList = new ArrayList<>();
List<CuMemberBonus> cuMemberBonusList = setCuMemberBonusSeq(settleDate, cuMemberBonusMap);
List<CuMemberBonusPush> cuMemberBonusPushList = bonusRecordDetailVO.getCuMemberBonusPushList();
List<CuMemberBonusDetail> cuMemberBonusDetailList = bonusRecordDetailVO.getCuMemberBonusDetailList();
List<CuMemberBonusRange> cuMemberBonusRangeList = bonusRecordDetailVO.getCuMemberBonusRangeList();
// 阶段收益奖金明细
List<CuMemberBonusStage> 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<Long> 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<CuMemberBonus> setCuMemberBonusSeq(String settleDate, Map<Long, CuMemberBonus> cuMemberBonusMap) {

View File

@ -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<CuMemberBonusMapper, C
// MemberBonusDetailSerVO memberBonusDetailVO = BeanUtil.copyProperties(cuMemberBonusRange, MemberBonusDetailSerVO.class);
// memberBonusDetailSerVoS.add(memberBonusDetailVO);
// });
} else if(EBonusItems.STAGE_INCOME.getValue() == bonusItemsValue) {
} else if (EBonusItems.RANGE_INCOME.getValue() == bonusItemsValue
|| EBonusItems.SAME_LEVEL_INCOME.getValue() == bonusItemsValue) {
// 领导奖收益平级奖收益
List<CuMemberBonusRangeExt> 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<CuMemberBonusDetailExt> cuMemberBonusDetailList = cuMemberBonusStageMapper.queryMemberBonusStageByBonusItemsFoServer(bonusParam);
dataTable = getDataTable(cuMemberBonusDetailList);

View File

@ -22,18 +22,13 @@ public class BonusRecordDetailVO implements Serializable {
*/
private List<CuMemberBonusPush> cuMemberBonusPushList;
/**
* 领导奖收益平级奖收益
*/
private List<CuMemberBonusRange> cuMemberBonusRangeList;
/**
* 阶段收益
*/
private List<CuMemberBonusStage> cuMemberBonusStageList;
/**
* 新零售 - 区域分红月度分红
*/
private List<CuMemberBonusDetail> cuMemberBonusDetailList;
/**
* 新零售 - 直推收益平级收益月度福利级差月度复购级差复购级差
*/
private List<CuMemberBonusRange> cuMemberBonusRangeList;
}

View File

@ -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个点位订单金额
*/

View File

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

View File

@ -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。";
/**
* 平级收益