## 校验分红考核时处理配置会员为空情况;直推级差添加20%扣项;
This commit is contained in:
parent
82ae52e2ef
commit
491086308d
|
@ -93,14 +93,14 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
// 优客 推荐 6000/36000/128000 给 1800 vip 拿 600 svip拿 600
|
||||
// vip 推荐 36000 给 10800 svip 拿 7200
|
||||
// svip推荐 128000 给 38000
|
||||
// TODO new 需要按新逻辑修改
|
||||
// TODO new 乐学直推级差收益,需要按新逻辑修改(级差等级4个,封顶上限修改)
|
||||
Set<Long> memberSet = new HashSet<>();
|
||||
specialOrderList.forEach(saOrderExt ->
|
||||
memberSet.add(saOrderExt.getPkMember()));
|
||||
specialOrderList.forEach(saOrderExt -> memberSet.add(saOrderExt.getPkMember()));
|
||||
cuMemberSettleExtList = cuMemberTreeService.batchQuerySpecialCuMemberSettleParent(settleTableName, memberSet);
|
||||
getMemberSettle(cuMemberSettleExtMap, cuMemberSettleExtList);
|
||||
// 计算奖金
|
||||
for (SaOrderExt saOrderExt : specialOrderList) {
|
||||
// 订单能发放总奖金
|
||||
BigDecimal maxBonus;
|
||||
// 根据金额验证最大金额
|
||||
if (ComputeUtil.compareValue(saOrderExt.getOrderAmount(), MagicNumberConstants.V4_AMOUNT)) {
|
||||
|
@ -119,8 +119,10 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
// 订单金额小于 2000,没有奖金
|
||||
maxBonus = BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
CuMemberSettleExt sourceSettleExt = cuMemberSettleExtMap.get(saOrderExt.getPkMember());
|
||||
Long pkParent = sourceSettleExt.getPkParent();
|
||||
// 已发放奖金
|
||||
BigDecimal grantBonus = BigDecimal.ZERO;
|
||||
while (ComputeUtil.compareGreaterThan(maxBonus, grantBonus)) {
|
||||
CuMemberSettleExt targetMemberSettleExt = cuMemberSettleExtMap.get(pkParent);
|
||||
|
@ -128,11 +130,14 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
break;
|
||||
}
|
||||
// 死点没有奖金
|
||||
if (ECategory.NORMAL.getValue() != targetMemberSettleExt.getCategory() || EAccountStatus.STOP_INCOME.getValue() == targetMemberSettleExt.getAccountStatus() ||
|
||||
validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.DIRECT_INCOME.getValue())) {
|
||||
if (ECategory.NORMAL.getValue() != targetMemberSettleExt.getCategory()
|
||||
|| EAccountStatus.STOP_INCOME.getValue() == targetMemberSettleExt.getAccountStatus()
|
||||
|| validatePkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.DIRECT_INCOME.getValue())) {
|
||||
// 非正常点位 或 停算收益 或 没有这个奖项,则直接跳过当前人
|
||||
pkParent = targetMemberSettleExt.getPkParent();
|
||||
continue;
|
||||
}
|
||||
// 初始化会员奖金汇总
|
||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, saOrderExt, targetMemberSettleExt);
|
||||
// 直推奖金明细
|
||||
int pkBonusItem = getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.DIRECT_INCOME.getValue());
|
||||
|
@ -165,17 +170,27 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
grantBonus = ComputeUtil.computeAdd(grantBonus, pretaxIncome);
|
||||
cuMemberBonusPush.setPretaxIncome(pretaxIncome);
|
||||
cuMemberBonusPush.setIncomeTax(BigDecimal.ZERO);
|
||||
cuMemberBonusPush.setRealIncome(pretaxIncome);
|
||||
cuMemberBonusPush.setIncomeTax(BigDecimal.ZERO);
|
||||
|
||||
// TODO new 需要扣除20%
|
||||
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusPush, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusPush.getIncomeStatus()) {
|
||||
cuMemberBonus.setGlobalPoints(ComputeUtil.computeAdd(cuMemberBonus.getGlobalPoints(), cuMemberBonusPush.getPretaxIncome()));
|
||||
|
||||
// 实发收益总计
|
||||
// BigDecimal realIncome = ReflectUtils.invokeGetter(cuMemberBonusPush, BonusFieldConstants.REAL_INCOME);
|
||||
// cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
|
||||
|
||||
// TODO new 首购实发小计、实发收益总计
|
||||
// 比原来多累计到首购实发小计
|
||||
setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusPush);
|
||||
}
|
||||
cuMemberBonusPush.setRemark(String.format(BonusMsgConstants.RECOMMEND_SPECIAL_DIRECT, saOrderExt.getOrderCode(),
|
||||
sourceSettleExt.getMemberCode() + sourceSettleExt.getMemberName(),
|
||||
targetMemberSettleExt.getMemberCode() + targetMemberSettleExt.getMemberName(),
|
||||
cuMemberBonusPush.getRealIncome()));
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusPush.getIncomeStatus()) {
|
||||
cuMemberBonus.setGlobalPoints(ComputeUtil.computeAdd(cuMemberBonus.getGlobalPoints(), cuMemberBonusPush.getPretaxIncome()));
|
||||
BigDecimal realIncome = ReflectUtils.invokeGetter(cuMemberBonusPush, BonusFieldConstants.REAL_INCOME);
|
||||
cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
|
||||
}
|
||||
|
||||
cuMemberBonusPushList.add(cuMemberBonusPush);
|
||||
pkParent = targetMemberSettleExt.getPkParent();
|
||||
}
|
||||
|
@ -184,6 +199,9 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
return cuMemberBonusPushList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算直推奖金
|
||||
*/
|
||||
private BigDecimal computePushRangeBonus(CuMemberSettleExt targetMemberSettleExt,
|
||||
BigDecimal V4Bonus, BigDecimal V3Bonus,
|
||||
BigDecimal V2Bonus, BigDecimal V1Bonus) {
|
||||
|
@ -338,6 +356,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
void setBonusPushIncome(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, BonusConfigDTO bonusConfigDTO, SaOrderExt saOrderExt, CuMemberBonus cuMemberBonus, CuMemberBonusPush cuMemberBonusPush) {
|
||||
// 奖金扣项
|
||||
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusPush, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate());
|
||||
recommendRemark(saOrderExt, cuMemberBonusPush, cuMemberSettleExtMap);
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusPush.getIncomeStatus()) {
|
||||
|
@ -373,15 +392,13 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* 计算拓展收益
|
||||
*
|
||||
* @param settleTableName 结算表
|
||||
* @param period 期间
|
||||
* @param bonusConfigDTO 参数
|
||||
* @param firPurchaseOrderList 首单
|
||||
* @param cuMemberBonusMap 所有计算出来的奖金汇总
|
||||
* @Description: 计算拓展收益
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/10 14:17
|
||||
*/
|
||||
List<CuMemberBonusExpand> calculateExpandBonus(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleDate, String settleTableName, BonusConfigDTO bonusConfigDTO,
|
||||
Map<String, String> systemConfigMap, List<SaOrderExt> firPurchaseOrderList,
|
||||
|
@ -880,6 +897,8 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
*/
|
||||
List<CuMemberBonusDetail> calculateShareBonus(String settleDateStr, BonusConfigDTO bonusConfigDTO, Integer period,
|
||||
Map<Long, CuMemberBonus> cuMemberBonusMap, Map<Long, CuAwardsControl> cuAwardsControlMap) {
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||
|
||||
Date settleDate = DateUtils.parseStringToDate(settleDateStr);
|
||||
String currentFirstDate = DateUtils.currentMonthFirstDateStr(settleDate);
|
||||
String beforeMonthLastDate = DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, currentFirstDate);
|
||||
|
@ -896,39 +915,39 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
|
|||
// 获取结算日期的第一天的日期
|
||||
// 查询复购考核结果
|
||||
List<CuMemberSettleExt> cuMemberSettleExtList = cuMemberTreeService.queryMemberSettleByAwards(settleTableName, rangeTableName, beforeMonthFirstPeriod, beforeMonthLastPeriod);
|
||||
Map<Long, CuMemberAssess> cuMemberAssessMap = cuMemberAssessService.queryCuMemberAssessByMember(assessTableName, assessPeriod, EAssessmentType.REPURCHASE_ASSESS.getValue(), cuMemberSettleExtList);
|
||||
|
||||
List<CuMemberBonusDetail> cuMemberBonusDetailList = new ArrayList<>();
|
||||
for (CuMemberSettleExt targetMemberSettleExt : cuMemberSettleExtList) {
|
||||
SaOrder saOrder = SaOrder.builder().pkId(0L).orderAchieve(BigDecimal.ZERO).build();
|
||||
saOrder.setPkCountry(targetMemberSettleExt.getPkSettleCountry());
|
||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, saOrder, targetMemberSettleExt);
|
||||
CuMemberBonusDetail cuMemberBonusDetail = getCuMemberBonusDetail(saOrder, targetMemberSettleExt, cuMemberBonus);
|
||||
cuMemberBonusDetail.setPkBonusItems(getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.DIVIDEND_INCOME.getValue()));
|
||||
// 获取计算比例,根据奖衔获取
|
||||
// 计算比例
|
||||
cuMemberBonusDetail.setCalAchieve(targetMemberSettleExt.getRealIncomeTotal());
|
||||
cuMemberBonusDetail.setCalValue(targetMemberSettleExt.getAbonusRatio());
|
||||
cuMemberBonusDetail.setPretaxIncome(ComputeUtil.computeBonusMultiply(targetMemberSettleExt.getRealIncomeTotal(), targetMemberSettleExt.getAbonusRatio()));
|
||||
shareRemark(cuMemberBonusDetail, settleDateStr);
|
||||
BdBonusDeduct bdBonusDeduct = bonusConfigDTO.getBonusDeductsMap().get(cuMemberBonusDetail.getPkBonusItems());
|
||||
cuMemberBonusDetail.setIncomeTax(BigDecimal.ZERO);
|
||||
cuMemberBonusDetail.setRealIncome(ComputeUtil.computeSubtract(cuMemberBonusDetail.getPretaxIncome(), cuMemberBonusDetail.getIncomeTax()));
|
||||
cuMemberBonusDetail.setPkCountry(targetMemberSettleExt.getPkSettleCountry());
|
||||
cuMemberBonusDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()
|
||||
&& EYesNo.NO.getIntValue() == targetMemberSettleExt.getPurchaseStatus()) {
|
||||
// 需要复购考核的
|
||||
CuMemberAssess cuMemberAssess = cuMemberAssessMap.get(targetMemberSettleExt.getPkMember());
|
||||
if (cuMemberAssess == null) {
|
||||
cuMemberBonusDetail.setIncomeStatus(EBonusIncomeStatus.FIRE_BURN.getValue());
|
||||
if (CollectionUtil.isNotEmpty(cuMemberSettleExtList)) {
|
||||
Map<Long, CuMemberAssess> cuMemberAssessMap = cuMemberAssessService.queryCuMemberAssessByMember(assessTableName, assessPeriod, EAssessmentType.REPURCHASE_ASSESS.getValue(), cuMemberSettleExtList);
|
||||
for (CuMemberSettleExt targetMemberSettleExt : cuMemberSettleExtList) {
|
||||
SaOrder saOrder = SaOrder.builder().pkId(0L).orderAchieve(BigDecimal.ZERO).build();
|
||||
saOrder.setPkCountry(targetMemberSettleExt.getPkSettleCountry());
|
||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, saOrder, targetMemberSettleExt);
|
||||
CuMemberBonusDetail cuMemberBonusDetail = getCuMemberBonusDetail(saOrder, targetMemberSettleExt, cuMemberBonus);
|
||||
cuMemberBonusDetail.setPkBonusItems(getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.DIVIDEND_INCOME.getValue()));
|
||||
// 获取计算比例,根据奖衔获取
|
||||
// 计算比例
|
||||
cuMemberBonusDetail.setCalAchieve(targetMemberSettleExt.getRealIncomeTotal());
|
||||
cuMemberBonusDetail.setCalValue(targetMemberSettleExt.getAbonusRatio());
|
||||
cuMemberBonusDetail.setPretaxIncome(ComputeUtil.computeBonusMultiply(targetMemberSettleExt.getRealIncomeTotal(), targetMemberSettleExt.getAbonusRatio()));
|
||||
shareRemark(cuMemberBonusDetail, settleDateStr);
|
||||
BdBonusDeduct bdBonusDeduct = bonusConfigDTO.getBonusDeductsMap().get(cuMemberBonusDetail.getPkBonusItems());
|
||||
cuMemberBonusDetail.setIncomeTax(BigDecimal.ZERO);
|
||||
cuMemberBonusDetail.setRealIncome(ComputeUtil.computeSubtract(cuMemberBonusDetail.getPretaxIncome(), cuMemberBonusDetail.getIncomeTax()));
|
||||
cuMemberBonusDetail.setPkCountry(targetMemberSettleExt.getPkSettleCountry());
|
||||
cuMemberBonusDetail.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()
|
||||
&& EYesNo.NO.getIntValue() == targetMemberSettleExt.getPurchaseStatus()) {
|
||||
// 需要复购考核的
|
||||
CuMemberAssess cuMemberAssess = cuMemberAssessMap.get(targetMemberSettleExt.getPkMember());
|
||||
if (cuMemberAssess == null) {
|
||||
cuMemberBonusDetail.setIncomeStatus(EBonusIncomeStatus.FIRE_BURN.getValue());
|
||||
}
|
||||
}
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) {
|
||||
cuMemberBonus.setShareIncome(ComputeUtil.computeAdd(cuMemberBonus.getShareIncome(), cuMemberBonusDetail.getPretaxIncome()));
|
||||
setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusDetail);
|
||||
}
|
||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
}
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) {
|
||||
cuMemberBonus.setShareIncome(ComputeUtil.computeAdd(cuMemberBonus.getShareIncome(), cuMemberBonusDetail.getPretaxIncome()));
|
||||
setFirstPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusDetail);
|
||||
}
|
||||
cuMemberBonusDetailList.add(cuMemberBonusDetail);
|
||||
}
|
||||
return cuMemberBonusDetailList;
|
||||
}
|
||||
|
|
|
@ -979,12 +979,10 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 首购计算 扣项,小计,总计
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 13:59
|
||||
* 首购计算 扣项,小计,总计
|
||||
*/
|
||||
protected void setFirstPurchaseTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||
// 处理扣项
|
||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||
BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME);
|
||||
cuMemberBonus.setPurRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getPurRealSubtotal(), realIncome));
|
||||
|
@ -992,10 +990,7 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 复购计算 扣项,小计,总计
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 13:59
|
||||
* 复购计算 扣项,小计,总计
|
||||
*/
|
||||
protected void setPurchaseTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||
// 处理扣项
|
||||
|
@ -1019,20 +1014,7 @@ public abstract class BonusSettleHandle {
|
|||
}
|
||||
|
||||
/**
|
||||
* @Description: 云代计算 扣项,小计,总计
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 13:59
|
||||
*/
|
||||
protected void setMakerTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) {
|
||||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||
BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME);
|
||||
cuMemberBonus.setMakerRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getMakerRealSubtotal(), realIncome));
|
||||
cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: 云代计算 扣项,小计,总计
|
||||
* @Description: 复购券 扣项,小计,总计
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/1/11 13:59
|
||||
|
|
|
@ -426,7 +426,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 计算完奖衔回退业绩,最终根据新增进行回写
|
||||
// cuMemberTreeService.updateCuMemberBackSettle(cuMemberAchieveHashMap, currentSettleTableName);
|
||||
//********************************重新考核*********************************/
|
||||
// TODO new 乐学没有分红、复购考核,这个位置需要去掉???
|
||||
// TODO new 乐学没有分红、复购考核,这个位置需要去掉???
|
||||
cuMemberAssessService.retryCalculationAssess(DateUtils.parseStringToDate(settleDate), Boolean.TRUE);
|
||||
//*********************************计算奖金********************************/
|
||||
// 首购订单 (注册+升级) 直推奖、量奖、领导奖、(注册)报单服务费
|
||||
|
@ -436,8 +436,8 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
Map<Long, CuMemberSettleExt> cuMemberSettleExtMap = new HashMap<>();
|
||||
BonusRecordDetailVO recordDetailVO = new BonusRecordDetailVO();
|
||||
|
||||
// 计算奖金
|
||||
// 乐学易考奖金计算,回写代金券数量
|
||||
// 计算奖金(主入口)
|
||||
LeXueRangeParam leXueRangeParam = calculateBonusBySaOrderList(settleDate, period, currentSettleTableName,
|
||||
firPurchaseOrderList, repurchaseOrderList, mallOrderList,
|
||||
awardsMap, bonusConfigDTO, cuMemberBonusMap,
|
||||
|
@ -764,11 +764,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
List<CuBonusExpandExt> cuBonusExpandExtList = bonusExpandService.queryBonusExpand(bonusExpandParam);
|
||||
cuBonusExpandExtList.forEach(cuBonusExpandExt -> cuBonusExpandExtMap.put(cuBonusExpandExt.getPkMember(), cuBonusExpandExt));
|
||||
// 先计算复购在计算首购
|
||||
// 计算复购
|
||||
if (repurchaseOrderList.size() > 0) {
|
||||
leXueRangeParam = calculatePurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, rangeDtoMap, awardsMap, bonusConfigDTO,
|
||||
systemConfigMap, repurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, cuAwardsControlMap, cuBonusExpandExtMap);
|
||||
}
|
||||
// 查询
|
||||
// 计算首购
|
||||
if (firPurchaseOrderList.size() > 0) {
|
||||
calculateFirPurchaseOrder(riskControlMap, cuMemberSettleExtMap, currentSettleTableName, settleDate, systemConfigMap, bonusConfigDTO,
|
||||
firPurchaseOrderList, period, weekMemberBonusMap, cuMemberBonusMap, recordDetailVO, awardsMap, cuAwardsControlMap, cuBonusExpandExtMap);
|
||||
|
@ -915,14 +916,12 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
}
|
||||
|
||||
/**
|
||||
* 计算首购订单的奖金
|
||||
*
|
||||
* @param settleTableName 结算日表
|
||||
* @param settleDate 结算日期
|
||||
* @param bonusConfigDTO 各个国家奖金参数
|
||||
* @param firPurchaseOrderList 首购订单
|
||||
* @Desccription: 计算首购订单的奖金
|
||||
* @return: Map<Long, CuMemberSettleExt> 需要更新的
|
||||
* @Author: sui q
|
||||
* @Date: 2022/11/10 17:40
|
||||
*/
|
||||
private void calculateFirPurchaseOrder(Map<Long, CuMemberRiskControl> riskControlMap, Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, String settleTableName, String settleDate, Map<String, String> systemConfigMap,
|
||||
BonusConfigDTO bonusConfigDTO, List<SaOrderExt> firPurchaseOrderList, Integer period, Map<Long, CuMemberBonus> weekMemberBonusMap,
|
||||
|
@ -932,7 +931,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 获得升级方式是纳入三单循环还是固定值
|
||||
// 获取有订单国家的系统参数,获得三单循环还是四单循环 key 国家+系统参数key
|
||||
// 需要更新的会员结算表 cuMemberSettleExtMap
|
||||
//***************************计算推荐奖******************************/
|
||||
//***************************计算推荐奖(直推级差、直推三单循环)******************************/
|
||||
List<CuMemberBonusPush> cuMemberBonusPushList = bonusSettleFirstPurchaseHandle.calculateRecommendBonus(cuMemberSettleExtMap, settleTableName, bonusConfigDTO, systemConfigMap, firPurchaseOrderList, period, cuMemberBonusMap, awardsMap);
|
||||
bonusRecordDetailVO.setCuMemberBonusPushList(cuMemberBonusPushList);
|
||||
//****************************计算量奖*****************************/
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.hzs.bonus.detail.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService;
|
||||
import com.hzs.bonus.achieve.service.ICuMemberTreeService;
|
||||
|
@ -141,6 +142,9 @@ public class CuMemberAssessServiceImpl extends ServiceImpl<CuMemberAssessMapper,
|
|||
|
||||
@Override
|
||||
public Map<Long, CuMemberAssess> queryCuMemberAssessByMember(String assessTableName, Integer period, Integer assessType, List<CuMemberSettleExt> cuMemberSettleExtList) {
|
||||
if (CollectionUtil.isEmpty(cuMemberSettleExtList)) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
List<CuMemberAssess> cuMemberAssessList = new ArrayList<>();
|
||||
List<List<?>> listList = cuMemberBonusSettle.handleCutList(cuMemberSettleExtList);
|
||||
listList.forEach(list ->
|
||||
|
|
|
@ -241,7 +241,9 @@
|
|||
<sql id="CuMemberTableTrig">
|
||||
CREATE
|
||||
OR REPLACE TRIGGER
|
||||
${tableName}_TRIG
|
||||
${tableName}
|
||||
_
|
||||
TRIG
|
||||
BEFORE
|
||||
INSERT
|
||||
OR
|
||||
|
@ -415,19 +417,57 @@
|
|||
</update>
|
||||
|
||||
<update id="createCuMemberTreeParentIndex">
|
||||
create index ${tableName}_parent on ${tableName} ( pk_parent )
|
||||
create
|
||||
index
|
||||
${tableName}
|
||||
_
|
||||
parent
|
||||
on
|
||||
${tableName}
|
||||
(
|
||||
pk_parent
|
||||
)
|
||||
</update>
|
||||
|
||||
<update id="createCuMemberTreePlaceIndex">
|
||||
create index ${tableName}_place on ${tableName} ( pk_place_parent, place_dept )
|
||||
create
|
||||
index
|
||||
${tableName}
|
||||
_
|
||||
place
|
||||
on
|
||||
${tableName}
|
||||
(
|
||||
pk_place_parent,
|
||||
place_dept
|
||||
)
|
||||
</update>
|
||||
|
||||
<update id="createCuMemberTableUniqueIndex">
|
||||
create unique index ${tableName}_PK_M on ${tableName} ( PK_MEMBER, period )
|
||||
create
|
||||
unique index
|
||||
${tableName}
|
||||
_
|
||||
PK_M
|
||||
on
|
||||
${tableName}
|
||||
(
|
||||
PK_MEMBER,
|
||||
period
|
||||
)
|
||||
</update>
|
||||
|
||||
<update id="createCuMemberTreeDayOnlyIndex">
|
||||
create unique index ${tableName}_PK_M on ${tableName} ( PK_MEMBER )
|
||||
create
|
||||
unique index
|
||||
${tableName}
|
||||
_
|
||||
PK_M
|
||||
on
|
||||
${tableName}
|
||||
(
|
||||
PK_MEMBER
|
||||
)
|
||||
</update>
|
||||
|
||||
<update id="updateCuMemberTreeByCancelOrder">
|
||||
|
@ -1271,12 +1311,26 @@
|
|||
|
||||
<select id="queryMemberSettleBySaOrder" resultMap="CuMemberSettleExt">
|
||||
select
|
||||
pk_member,member_code,member_name,c.pk_awards,c.pk_grade,account_status,category,income_status,pk_settle_country,
|
||||
is_maker_space,purchase_status,share_status,bg.grade_value,pk_parent,is_maker_space,
|
||||
a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance,
|
||||
register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code,c.pk_vertex,
|
||||
repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,min_achieve,round,second,c.register_authority,store_level,
|
||||
c.is_maker_gift,c.expire_status from ${settleTableName} c
|
||||
pk_member,member_code,member_name,
|
||||
c.pk_awards,c.pk_grade,
|
||||
account_status,category,income_status,
|
||||
pk_settle_country, is_maker_space,
|
||||
purchase_status, share_status,
|
||||
bg.grade_value,pk_parent,
|
||||
a_balance,b_balance,
|
||||
r_a_balance,r_b_balance,
|
||||
rep_a_balance,rep_b_balance,
|
||||
r_rep_a_balance,r_rep_b_balance,
|
||||
register_amount,register_pv,
|
||||
upgrade_amount,upgrade_pv,
|
||||
repurchase_amount,repurchase_pv,
|
||||
pk_center_code,c.pk_vertex,
|
||||
hi_fun_amount,hi_fun_pv,
|
||||
mall_amount,mall_pv,
|
||||
min_achieve,
|
||||
round,second,store_level,
|
||||
c.register_authority, c.is_maker_gift,c.expire_status
|
||||
from ${settleTableName} c
|
||||
left join bd_grade bg
|
||||
on c.pk_grade = bg.pk_id
|
||||
where pk_member in
|
||||
|
|
|
@ -179,7 +179,7 @@ public class CuMemberBonus extends BaseEntity {
|
|||
private BigDecimal repurCouponSubtotal;
|
||||
|
||||
/**
|
||||
* 环球积分 修改为乐享直推奖金
|
||||
* 环球积分 修改为乐学直推奖金
|
||||
*/
|
||||
@TableField("GLOBAL_POINTS")
|
||||
private BigDecimal globalPoints;
|
||||
|
|
|
@ -11,9 +11,7 @@ import lombok.*;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员奖金-直推收益明细表
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-11-10
|
||||
|
|
Loading…
Reference in New Issue