Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
7e23a37798
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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个点位订单金额
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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。";
|
||||
|
||||
/**
|
||||
* 平级收益
|
||||
|
|
Loading…
Reference in New Issue