## 月度分红处理;
This commit is contained in:
parent
5e0d9f2ff4
commit
967e0e851d
|
@ -905,7 +905,6 @@ public abstract class BonusSettleHandle {
|
|||
setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail);
|
||||
BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME);
|
||||
cuMemberBonus.setRepurCouponSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRepurCouponSubtotal(), realIncome));
|
||||
// cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1823,7 +1823,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
|
||||
// 月订单列表
|
||||
List<SaOrder> totalMonthOrderList = new ArrayList<>();
|
||||
// 级差收益
|
||||
// 级差收益(月度级差、复购级差)
|
||||
List<CuMemberBonusRange> memberBonusRangeList = new ArrayList<>();
|
||||
// 分红收益
|
||||
List<CuMemberBonusDetail> memberBonusDetailList = new ArrayList<>();
|
||||
|
@ -2005,101 +2005,125 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
}
|
||||
}
|
||||
|
||||
// // CAR_AWARD_POINTS 福利平均收益 SHARE_INCOME 福利收益
|
||||
// // 查询v5 等级 且奖衔>=S4的
|
||||
// List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByAwards(rangeTableName);
|
||||
// if (memberRetailRangeExtList.size() > 0) {
|
||||
// List<CuMemberRetailRangeExt> retailRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByParent(rangeTableName, memberRetailRangeExtList);
|
||||
// Map<Long, List<CuMemberRetailRangeExt>> parentMemberRangeExtMap = new HashMap<>();
|
||||
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : retailRangeExtList) {
|
||||
// if (parentMemberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkParent())) {
|
||||
// parentMemberRangeExtMap.get(cuMemberRetailRangeExt.getPkParent()).add(cuMemberRetailRangeExt);
|
||||
// } else {
|
||||
// List<CuMemberRetailRangeExt> cuMemberRangeExtList = new ArrayList<>();
|
||||
// cuMemberRangeExtList.add(cuMemberRetailRangeExt);
|
||||
// parentMemberRangeExtMap.put(cuMemberRetailRangeExt.getPkParent(), cuMemberRangeExtList);
|
||||
// }
|
||||
// }
|
||||
// // 分类,分为4 5 6 7 8 9
|
||||
// List<CuMemberRetailRangeExt> firstAwardsRetailRangeList = new ArrayList<>();
|
||||
// BigDecimal benefitAvgRatio = BigDecimal.ZERO;
|
||||
// BigDecimal benefitShareRatio = BigDecimal.ZERO;
|
||||
// BigDecimal firstConsumePv = BigDecimal.ZERO;
|
||||
// BigDecimal secondBenefitAvgRatio = BigDecimal.ZERO;
|
||||
// BigDecimal secondBenefitShareRatio = BigDecimal.ZERO;
|
||||
// BigDecimal secondConsumePv = BigDecimal.ZERO;
|
||||
// List<CuMemberRetailRangeExt> secondAwardsRetailRangeList = new ArrayList<>();
|
||||
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||
// if (parentMemberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
// List<CuMemberRetailRangeExt> rangeExtList = parentMemberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||
// // 计算小区
|
||||
// BigDecimal bigConsumePv = BigDecimal.ZERO;
|
||||
// for (CuMemberRetailRangeExt memberRetailRangeExt : rangeExtList) {
|
||||
// BigDecimal monthConsumePv = ComputeUtil.computeAdd(memberRetailRangeExt.getMonthConsumePv(), memberRetailRangeExt.getTeamMonthPv());
|
||||
// if (ComputeUtil.compareGreaterThan(monthConsumePv, bigConsumePv)) {
|
||||
// bigConsumePv = monthConsumePv;
|
||||
// }
|
||||
// }
|
||||
// cuMemberRetailRangeExt.setSmallAreaConsumePv(ComputeUtil.computeSubtract(cuMemberRetailRangeExt.getTeamMonthPv(), bigConsumePv));
|
||||
// } else {
|
||||
// cuMemberRetailRangeExt.setSmallAreaConsumePv(BigDecimal.ZERO);
|
||||
// }
|
||||
// if (cuMemberRetailRangeExt.getShareAwardsValue() >= EAwards.SENIOR_MANAGER.getValue() &&
|
||||
// cuMemberRetailRangeExt.getShareAwardsValue() <= EAwards.HIGH_CHIEF.getValue()) {
|
||||
// firstAwardsRetailRangeList.add(cuMemberRetailRangeExt);
|
||||
// benefitAvgRatio = cuMemberRetailRangeExt.getBenefitAvgRatio();
|
||||
// benefitShareRatio = cuMemberRetailRangeExt.getBenefitShareRatio();
|
||||
// firstConsumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getSmallAreaConsumePv(), firstConsumePv);
|
||||
// } else {
|
||||
// secondAwardsRetailRangeList.add(cuMemberRetailRangeExt);
|
||||
// secondBenefitAvgRatio = cuMemberRetailRangeExt.getBenefitAvgRatio();
|
||||
// secondBenefitShareRatio = cuMemberRetailRangeExt.getBenefitShareRatio();
|
||||
// secondConsumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getSmallAreaConsumePv(), secondConsumePv);
|
||||
// }
|
||||
// }
|
||||
// if (firstAwardsRetailRangeList.size() > 0) {
|
||||
// BigDecimal benefitAvgIncome = ComputeUtil.computeDivide(ComputeUtil.computeBonusMultiply(totalMonthConsumePv, benefitAvgRatio), BigDecimal.valueOf(firstAwardsRetailRangeList.size()));
|
||||
// BigDecimal benefitShareIncome = ComputeUtil.computeBonusMultiply(totalMonthConsumePv, benefitShareRatio);
|
||||
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : firstAwardsRetailRangeList) {
|
||||
// if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory() ||
|
||||
// EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus() ||
|
||||
// EIncomeStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getIncomeStatus()) {
|
||||
// continue;
|
||||
// }
|
||||
// // 验证是否有奖金
|
||||
// if (validatePkBonusItems(bonusConfigDTO, cuMemberRetailRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue())) {
|
||||
// continue;
|
||||
// }
|
||||
// memberBonusDetailList.add(packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, month, benefitAvgRatio,
|
||||
// benefitAvgIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue(), BonusMsgConstants.RETAIL_BENEFIT_AVG_INCOME));
|
||||
// BigDecimal bonusIncome = ComputeUtil.computeDivide(ComputeUtil.computeMultiply(benefitShareIncome, cuMemberRetailRangeExt.getSmallAreaConsumePv()), firstConsumePv);
|
||||
// CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, month, benefitShareRatio,
|
||||
// bonusIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_BENEFIT_INCOME.getValue(), BonusMsgConstants.RETAIL_BENEFIT_INCOME);
|
||||
// memberBonusDetailList.add(cuMemberBonusDetail);
|
||||
// }
|
||||
// }
|
||||
// if (secondAwardsRetailRangeList.size() > 0) {
|
||||
// BigDecimal benefitAvgIncome = ComputeUtil.computeDivide(ComputeUtil.computeBonusMultiply(totalMonthConsumePv, secondBenefitAvgRatio), BigDecimal.valueOf(secondAwardsRetailRangeList.size()));
|
||||
// BigDecimal benefitShareIncome = ComputeUtil.computeBonusMultiply(totalMonthConsumePv, secondBenefitShareRatio);
|
||||
// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : secondAwardsRetailRangeList) {
|
||||
// if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory() ||
|
||||
// EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus() ||
|
||||
// EIncomeStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getIncomeStatus()) {
|
||||
// continue;
|
||||
// }
|
||||
// // 验证是否有奖金
|
||||
// if (validatePkBonusItems(bonusConfigDTO, cuMemberRetailRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue())) {
|
||||
// continue;
|
||||
// }
|
||||
// memberBonusDetailList.add(packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, month, secondBenefitAvgRatio,
|
||||
// benefitAvgIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue(), BonusMsgConstants.RETAIL_BENEFIT_AVG_INCOME));
|
||||
// BigDecimal bonusIncome = ComputeUtil.computeDivide(ComputeUtil.computeMultiply(benefitShareIncome, cuMemberRetailRangeExt.getSmallAreaConsumePv()), secondConsumePv);
|
||||
// CuMemberBonusDetail cuMemberBonusDetail = packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, month, secondBenefitShareRatio,
|
||||
// bonusIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_BENEFIT_INCOME.getValue(), BonusMsgConstants.RETAIL_BENEFIT_INCOME);
|
||||
// memberBonusDetailList.add(cuMemberBonusDetail);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// 查询 v5 等级 且 分红奖衔 >=S4
|
||||
List<CuMemberRetailRangeExt> memberRetailRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByAwards(rangeTableName);
|
||||
if (memberRetailRangeExtList.size() > 0) {
|
||||
// 查询月度分红会员的直推
|
||||
List<CuMemberRetailRangeExt> retailRangeExtList = iCuMemberRetailRangeService.batchQueryMemberRetailRangeByParent(rangeTableName, memberRetailRangeExtList);
|
||||
// 推荐会员列表(key:推荐人,value:推荐会员列表)
|
||||
Map<Long, List<CuMemberRetailRangeExt>> parentMemberRangeExtMap = new HashMap<>();
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : retailRangeExtList) {
|
||||
if (parentMemberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkParent())) {
|
||||
parentMemberRangeExtMap.get(cuMemberRetailRangeExt.getPkParent()).add(cuMemberRetailRangeExt);
|
||||
} else {
|
||||
List<CuMemberRetailRangeExt> cuMemberRangeExtList = new ArrayList<>();
|
||||
cuMemberRangeExtList.add(cuMemberRetailRangeExt);
|
||||
parentMemberRangeExtMap.put(cuMemberRetailRangeExt.getPkParent(), cuMemberRangeExtList);
|
||||
}
|
||||
}
|
||||
// 奖衔分红分类
|
||||
// 4 5 6 级奖衔会员
|
||||
List<CuMemberRetailRangeExt> firstAwardsRetailRangeList = new ArrayList<>();
|
||||
// 4 5 6 级奖衔累计业绩
|
||||
BigDecimal firstConsumePv = BigDecimal.ZERO;
|
||||
// 4 5 6 月度分红平均 比例
|
||||
BigDecimal benefitAvgRatio = BigDecimal.ZERO;
|
||||
// 4 5 6 月度分红加权 比例
|
||||
BigDecimal benefitShareRatio = BigDecimal.ZERO;
|
||||
|
||||
// 7 8 9 级奖衔会员
|
||||
List<CuMemberRetailRangeExt> secondAwardsRetailRangeList = new ArrayList<>();
|
||||
// 7 8 9 级奖衔累计业绩
|
||||
BigDecimal secondConsumePv = BigDecimal.ZERO;
|
||||
// 7 8 9 月度分红平均 比例
|
||||
BigDecimal secondBenefitAvgRatio = BigDecimal.ZERO;
|
||||
// 7 8 9 月度分红加权 比例
|
||||
BigDecimal secondBenefitShareRatio = BigDecimal.ZERO;
|
||||
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) {
|
||||
if (parentMemberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) {
|
||||
// 获取会员的推荐数据
|
||||
List<CuMemberRetailRangeExt> rangeExtList = parentMemberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember());
|
||||
// 计算小区(本人月消费默认为大区)
|
||||
BigDecimal bigConsumePv = cuMemberRetailRangeExt.getMonthConsumePv();
|
||||
for (CuMemberRetailRangeExt memberRetailRangeExt : rangeExtList) {
|
||||
// 本人消费 + 团队消费
|
||||
BigDecimal monthConsumePv = ComputeUtil.computeAdd(memberRetailRangeExt.getMonthConsumePv(), memberRetailRangeExt.getTeamMonthPv());
|
||||
if (ComputeUtil.compareGreaterThan(monthConsumePv, bigConsumePv)) {
|
||||
bigConsumePv = monthConsumePv;
|
||||
}
|
||||
}
|
||||
// 小区业绩 = 本人月团队 + 本人月消费 - 大区业绩
|
||||
cuMemberRetailRangeExt.setSmallAreaConsumePv(ComputeUtil.computeSubtract(cuMemberRetailRangeExt.getTeamMonthPv().add(cuMemberRetailRangeExt.getMonthConsumePv()), bigConsumePv));
|
||||
} else {
|
||||
cuMemberRetailRangeExt.setSmallAreaConsumePv(BigDecimal.ZERO);
|
||||
}
|
||||
if (cuMemberRetailRangeExt.getShareAwardsValue() >= EAwards.SENIOR_MANAGER.getValue()
|
||||
&& cuMemberRetailRangeExt.getShareAwardsValue() <= EAwards.HIGH_CHIEF.getValue()) {
|
||||
// 奖衔 4 5 6 级数据处理
|
||||
firstAwardsRetailRangeList.add(cuMemberRetailRangeExt);
|
||||
benefitAvgRatio = cuMemberRetailRangeExt.getBenefitAvgRatio();
|
||||
benefitShareRatio = cuMemberRetailRangeExt.getBenefitShareRatio();
|
||||
firstConsumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getSmallAreaConsumePv(), firstConsumePv);
|
||||
} else {
|
||||
// 奖衔 7 8 9 级数据处理
|
||||
secondAwardsRetailRangeList.add(cuMemberRetailRangeExt);
|
||||
secondBenefitAvgRatio = cuMemberRetailRangeExt.getBenefitAvgRatio();
|
||||
secondBenefitShareRatio = cuMemberRetailRangeExt.getBenefitShareRatio();
|
||||
secondConsumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getSmallAreaConsumePv(), secondConsumePv);
|
||||
}
|
||||
}
|
||||
if (firstAwardsRetailRangeList.size() > 0) {
|
||||
// 月度分红平均收益 = 订单总业绩 乘 分红平均比例 除 奖衔人数
|
||||
BigDecimal benefitAvgIncome = ComputeUtil.computeDivide(ComputeUtil.computeBonusMultiply(totalMonthConsumePv, benefitAvgRatio), BigDecimal.valueOf(firstAwardsRetailRangeList.size()));
|
||||
// 月度分红加权总收益 = 订单总业绩 乘 分红加权比例
|
||||
BigDecimal benefitShareIncome = ComputeUtil.computeBonusMultiply(totalMonthConsumePv, benefitShareRatio);
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : firstAwardsRetailRangeList) {
|
||||
if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory()
|
||||
|| EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus()
|
||||
|| EIncomeStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getIncomeStatus()) {
|
||||
// 非正常状态、停算状态、停止收益,直接跳过
|
||||
continue;
|
||||
}
|
||||
// 验证是否有奖金
|
||||
if (validatePkBonusItems(bonusConfigDTO, cuMemberRetailRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue())) {
|
||||
continue;
|
||||
}
|
||||
// 月度分红 - 平均收益
|
||||
memberBonusDetailList.add(packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, month, benefitAvgRatio,
|
||||
benefitAvgIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue(), BonusMsgConstants.RETAIL_BENEFIT_AVG_INCOME));
|
||||
// 月度分红加权收益 = 月度分红加权总收益 乘 小市场业绩 除 总小市场业绩
|
||||
BigDecimal bonusIncome = ComputeUtil.computeDivide(ComputeUtil.computeMultiply(benefitShareIncome, cuMemberRetailRangeExt.getSmallAreaConsumePv()), firstConsumePv);
|
||||
// 月度分红 - 加权收益
|
||||
memberBonusDetailList.add(packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, month, benefitShareRatio,
|
||||
bonusIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_BENEFIT_INCOME.getValue(), BonusMsgConstants.RETAIL_BENEFIT_INCOME));
|
||||
}
|
||||
}
|
||||
if (secondAwardsRetailRangeList.size() > 0) {
|
||||
BigDecimal benefitAvgIncome = ComputeUtil.computeDivide(ComputeUtil.computeBonusMultiply(totalMonthConsumePv, secondBenefitAvgRatio), BigDecimal.valueOf(secondAwardsRetailRangeList.size()));
|
||||
BigDecimal benefitShareIncome = ComputeUtil.computeBonusMultiply(totalMonthConsumePv, secondBenefitShareRatio);
|
||||
for (CuMemberRetailRangeExt cuMemberRetailRangeExt : secondAwardsRetailRangeList) {
|
||||
if (ECategory.NORMAL.getValue() != cuMemberRetailRangeExt.getCategory()
|
||||
|| EAccountStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getAccountStatus()
|
||||
|| EIncomeStatus.STOP_INCOME.getValue() == cuMemberRetailRangeExt.getIncomeStatus()) {
|
||||
// 非正常状态、停算状态、停止收益,直接跳过
|
||||
continue;
|
||||
}
|
||||
// 验证是否有奖金
|
||||
if (validatePkBonusItems(bonusConfigDTO, cuMemberRetailRangeExt.getPkSettleCountry(), EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue())) {
|
||||
continue;
|
||||
}
|
||||
// 月度分红 - 平均收益
|
||||
memberBonusDetailList.add(packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, month, secondBenefitAvgRatio,
|
||||
benefitAvgIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_BENEFIT_AVG_INCOME.getValue(), BonusMsgConstants.RETAIL_BENEFIT_AVG_INCOME));
|
||||
// 月度分红加权收益 = 月度分红加权总收益 乘 小市场业绩 除 总小市场业绩
|
||||
BigDecimal bonusIncome = ComputeUtil.computeDivide(ComputeUtil.computeMultiply(benefitShareIncome, cuMemberRetailRangeExt.getSmallAreaConsumePv()), secondConsumePv);
|
||||
// 月度分红 - 加权收益
|
||||
memberBonusDetailList.add(packageBenefitIncome(bonusConfigDTO, period, cuMemberBonusMap, month, secondBenefitShareRatio,
|
||||
bonusIncome, cuMemberRetailRangeExt, EBonusItems.RETAIL_BENEFIT_INCOME.getValue(), BonusMsgConstants.RETAIL_BENEFIT_INCOME));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (memberBonusDetailList.size() > 0) {
|
||||
|
@ -2120,10 +2144,13 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
|
||||
private CuMemberBonusDetail packageBenefitIncome(BonusConfigDTO bonusConfigDTO, Integer period, Map<Long, CuMemberBonus> cuMemberBonusMap, String month,
|
||||
BigDecimal benefitAvgRatio, BigDecimal benefitAvgIncome, CuMemberRetailRangeExt cuMemberRetailRangeExt, Integer bonusItemsValue, String msg) {
|
||||
// 获取会员奖金数据
|
||||
CuMemberBonus cuMemberBonus = getCuMemberBonus(period, cuMemberBonusMap, cuMemberRetailRangeExt.getPkMember(),
|
||||
cuMemberRetailRangeExt.getIncomeStatus(), cuMemberRetailRangeExt.getPkSettleCountry(), cuMemberRetailRangeExt.getPkRate());
|
||||
|
||||
SaOrder saOrderExt = SaOrder.builder().pkId(0L).orderAchieve(BigDecimal.ZERO).build();
|
||||
CuMemberBonusDetail cuMemberBonusDetail = getCuMemberBonusDetail(saOrderExt, cuMemberRetailRangeExt.getIncomeStatus(), cuMemberRetailRangeExt.getPkSettleCountry(), cuMemberBonus);
|
||||
|
||||
// 计算比例
|
||||
cuMemberBonusDetail.setCalValue(benefitAvgRatio);
|
||||
cuMemberBonusDetail.setPretaxIncome(benefitAvgIncome);
|
||||
|
@ -2134,6 +2161,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
|
|||
String remark = String.format(msg, cuMemberBonusDetail.getPretaxIncome(), month);
|
||||
cuMemberBonusDetail.setRemark(remark);
|
||||
}
|
||||
|
||||
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) {
|
||||
if (bonusItemsValue == EBonusItems.RETAIL_AREA_INCOME.getValue()) {
|
||||
cuMemberBonus.setRetailAreaIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailAreaIncome(), cuMemberBonusDetail.getPretaxIncome()));
|
||||
|
|
|
@ -188,7 +188,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
|
|||
// 保存当日计算的奖金
|
||||
insertCuMemberBonus(settleDate, period, cuMemberBonusMap, recordDetailVO);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("奖金结算异常", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -144,11 +144,7 @@ public class CuRegionAssessServiceImpl extends ServiceImpl<CuRegionAssessMapper,
|
|||
}
|
||||
|
||||
/**
|
||||
* @description: 定时处理会员收益区域(处理前三天)
|
||||
* @author: zhang jing
|
||||
* @date: 2025/3/7 9:56
|
||||
* @param: [startDate]
|
||||
* @return: void
|
||||
* 定时处理会员收益区域(处理前三天)
|
||||
**/
|
||||
@Override
|
||||
public void validateHandAreaAssess(Date startDate, Date endDate) {
|
||||
|
|
|
@ -494,18 +494,23 @@
|
|||
</select>
|
||||
|
||||
<select id="batchQueryMemberRetailRangeByParent" resultMap="CuMemberRetailRangeExt">
|
||||
select pk_member,pk_parent,member_code,member_name,a.pk_awards,a.pk_grade,a.pk_rate,
|
||||
a.income_status,a.pk_country,a.pk_settle_country,a.account_status,a.category,
|
||||
bg.grade_value,bg.grade_name,bw.awards_value,bw.awards_name,a.month_consume_pv,
|
||||
a.team_month_pv,
|
||||
bw.range_ratio, bw.month_repurchase_ratio, bw.benefit_avg_ratio,bw.benefit_share_ratio
|
||||
select pk_member, pk_parent, member_code, member_name,
|
||||
a.pk_awards, a.pk_grade, a.pk_rate,
|
||||
a.income_status, a.pk_country, a.pk_settle_country,
|
||||
a.account_status, a.category,
|
||||
bg.grade_value, bg.grade_name,
|
||||
bw.awards_value, bw.awards_name,
|
||||
a.month_consume_pv, a.team_month_pv,
|
||||
bw.range_ratio, bw.month_repurchase_ratio,
|
||||
bw.benefit_avg_ratio, bw.benefit_share_ratio
|
||||
from ${rangeTableName} a
|
||||
inner join bd_awards bw
|
||||
on bw.pk_id = a.pk_awards
|
||||
and bw.del_flag = 0
|
||||
inner join bd_grade bg
|
||||
on bg.pk_id = a.pk_grade
|
||||
where bw.del_flag=0 and bg.del_flag=0
|
||||
and a.pk_parent in
|
||||
and bg.del_flag = 0
|
||||
where a.pk_parent in
|
||||
<foreach collection="memberRetailRangeExtList" item="item" open="(" close=")" separator=",">
|
||||
#{item.pkMember}
|
||||
</foreach>
|
||||
|
|
|
@ -61,6 +61,7 @@ public class RetailMemberController extends BaseController {
|
|||
|
||||
@DubboReference
|
||||
IAreaServiceApi iAreaServiceApi;
|
||||
|
||||
/**
|
||||
* 获取登录会员信息
|
||||
*
|
||||
|
|
|
@ -131,14 +131,15 @@ public class CommonServiceProvider implements ICommonServiceApi {
|
|||
memberDataDTO.setGradeVal(bdGrade.getGradeName());
|
||||
}
|
||||
}
|
||||
BdAwards monthAwards = null;
|
||||
// 当月奖衔
|
||||
if (null != memberDataDTO.getPkAwards()) {
|
||||
BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkAwards());
|
||||
if (null != bdAwards) {
|
||||
memberDataDTO.setAwardsVal(bdAwards.getAwardsName());
|
||||
if (EAwards.MEMBER.getValue() != bdAwards.getAwardsValue()) {
|
||||
monthAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkAwards());
|
||||
if (null != monthAwards) {
|
||||
memberDataDTO.setAwardsVal(monthAwards.getAwardsName());
|
||||
if (EAwards.MEMBER.getValue() != monthAwards.getAwardsValue()) {
|
||||
// 奖衔如果是会员级别不返回图标
|
||||
memberDataDTO.setAwardsIcon(bdAwards.getImage());
|
||||
memberDataDTO.setAwardsIcon(monthAwards.getImage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -146,7 +147,8 @@ public class CommonServiceProvider implements ICommonServiceApi {
|
|||
if (null != memberDataDTO.getPkMaxAwards()) {
|
||||
BdAwards bdAwards = iBdAwardsService.getBdAwardsOne(memberDataDTO.getPkMaxAwards());
|
||||
if (null != bdAwards) {
|
||||
if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue()) {
|
||||
if (null != monthAwards && monthAwards.getAwardsValue() > bdAwards.getAwardsValue()) {
|
||||
// 月奖衔 大于 荣誉奖衔,显示月奖衔
|
||||
memberDataDTO.setMaxAwardsVal(memberDataDTO.getAwardsVal());
|
||||
memberDataDTO.setMaxAwardsIcon(memberDataDTO.getAwardsIcon());
|
||||
} else {
|
||||
|
|
|
@ -8,7 +8,6 @@ public class BonusMsgConstants {
|
|||
/**
|
||||
* 直推收益备注 -- 当前是第%d轮,第%d次,订单编号%s,%s为%s贡献了推荐收益,计算业绩%f,直推比例%f。
|
||||
*/
|
||||
// public static String RECOMMEND = "MSG_BONUS_001";
|
||||
public static String RECOMMEND = "当前是第%d轮,第%d次,订单编号%s,%s为%s贡献了推荐收益,计算业绩%f,直推比例%f。";
|
||||
|
||||
public static String RANGE_RECOMMEND = "当前是第%d代,第%d次,订单编号%s,%s为%s贡献了推互助收益,计算业绩%f。";
|
||||
|
@ -16,31 +15,26 @@ public class BonusMsgConstants {
|
|||
/**
|
||||
* 直推收益备注 -- 订单编号%s,%s为%s贡献了推荐收益,推荐收益为%f。
|
||||
*/
|
||||
// public static String RECOMMEND_DIRECT = "MSG_BONUS_002";
|
||||
public static String RECOMMEND_DIRECT = "订单编号%s,%s为%s贡献了推荐收益,推荐收益为%f。";
|
||||
public static String RECOMMEND_SPECIAL_DIRECT = "订单编号%s,%s为%s贡献了乐学易考推荐极差收益,推荐极差收益为%f。";
|
||||
/**
|
||||
* 拓展收益备注 -- 当前是第%d碰,共%d碰,订单编号%s,%s为%s贡献了拓展收益,计算业绩%f,拓展比例%f。
|
||||
*/
|
||||
// public static String EXPAND = "MSG_BONUS_003";
|
||||
public static String EXPAND = "当前是第%d碰,共%d碰,订单编号%s,%s为%s贡献了拓展收益,计算业绩%f,拓展比例%f。";
|
||||
|
||||
/**
|
||||
* 辅导收益备注 -- 当前是第%d代,共#代,订单编号%s,%s为%s贡献了辅导收益,计算业绩%f,辅导比例%f。
|
||||
*/
|
||||
// public static String COACH = "MSG_BONUS_004";
|
||||
public static String COACH = "当前是第%d代,共#代,订单编号%s,%s为%s贡献了辅导收益,计算业绩%f,辅导比例%f。";
|
||||
|
||||
/**
|
||||
* 辅导收益备注 -- 当前是第%d代,共#代,订单编号%s,%s为%s贡献了辅导收益,计算业绩%f,辅导比例%f。
|
||||
*/
|
||||
// public static String COACH = "MSG_BONUS_004";
|
||||
public static String RANGE_COACH = "当前是第%d代,共%d代,订单编号%s,%s为%s贡献了幸运收益,计算业绩%f,计算比例%f。";
|
||||
|
||||
/**
|
||||
* 报单服务费收益备注 -- 订单编号%s,%s为%s贡献了报单服务费收益,计算业绩%f,报单服务费比例%f。
|
||||
*/
|
||||
// public static String SERVICE = "MSG_BONUS_005";
|
||||
public static String SERVICE = "订单编号%s,%s为%s贡献了报单服务费收益,计算业绩%f,报单服务费比例%f。";
|
||||
|
||||
/**
|
||||
|
@ -50,55 +44,55 @@ public class BonusMsgConstants {
|
|||
|
||||
public static String MONTH_SERVICE = "获得%f月报单服务费收益,结算月%s。";
|
||||
|
||||
public static String RETAIL_BENEFIT_AVG_INCOME = "获得%f月福利平均收益,结算月%s。";
|
||||
/**
|
||||
* 月度分红平均收益
|
||||
*/
|
||||
public static String RETAIL_BENEFIT_AVG_INCOME = "获得 %f 月度分红福利平均收益,结算月%s。";
|
||||
|
||||
/**
|
||||
* 月度分红加权收益
|
||||
*/
|
||||
public static String RETAIL_BENEFIT_INCOME = "获得 %f 月度分红福利加权收益,结算月%s。";
|
||||
|
||||
/**
|
||||
* 区域分红说明
|
||||
*/
|
||||
public static String RETAIL_AREA_INCOME = "订单编号%s,%s为%s贡献了区域分红,区域分红%f,收益县%s。";
|
||||
|
||||
public static String RETAIL_BENEFIT_INCOME = "获得%f月福利加权收益,结算月%s。";
|
||||
|
||||
/**
|
||||
* 分红收益备注 -- %s获得分红收益%f。
|
||||
*/
|
||||
// public static String SHARE = "MSG_BONUS_008";
|
||||
public static String SHARE = "%s获得福利收益%f。";
|
||||
|
||||
/**
|
||||
* -- 订单编号%s,%s为%s贡献了海粉推荐收益,海粉推荐收益%f。
|
||||
*/
|
||||
// public static String HAI_FUN = "MSG_BONUS_009";
|
||||
public static String HAI_FUN = "订单编号%s,%s为%s贡献了海粉推荐收益,海粉推荐收益%f。";
|
||||
|
||||
/**
|
||||
* 复购券收益备注 -- %s获得复购券均分收益%f。
|
||||
*/
|
||||
// public static String SHARE_COUPON = "MSG_BONUS_010";
|
||||
public static String SHARE_COUPON = "%s获得复购券均分收益%f。";
|
||||
|
||||
/**
|
||||
* 复购券收益备注 -- %s获得店铺收益%f。
|
||||
*/
|
||||
// public static String STORE = "MSG_BONUS_011";
|
||||
public static String STORE = "%s获得店铺收益%f。";
|
||||
|
||||
/**
|
||||
* 车奖积分收益备注 -- 获得车奖积分收益%f。
|
||||
*/
|
||||
// public static String CAR_AWARD_POINTS = "MSG_BONUS_013";
|
||||
public static String CAR_AWARD_POINTS = "获得车奖积分收益%f。";
|
||||
|
||||
/**
|
||||
* 嗨粉推荐收益备注 -- 订单编号%s,%s为%s贡献了嗨粉推荐收益,获得嗨粉推荐奖金%f。
|
||||
*/
|
||||
// public static String HI_FUN = "MSG_BONUS_014";
|
||||
public static String HI_FUN = "订单编号%s,%s为%s贡献了嗨粉推荐收益,获得嗨粉推荐奖金%f。";
|
||||
|
||||
/**
|
||||
* 复购拓展收益备注 -- 订单编号%s,%s为%s贡献了复购推荐收益,计算业绩%f,直推比例%f。
|
||||
*/
|
||||
// public static String REPURCHASE_PUSH = "MSG_BONUS_015";
|
||||
public static String REPURCHASE_PUSH = "订单编号%s,%s为%s贡献了复购推荐收益,计算业绩%f,直推比例%f。";
|
||||
|
||||
/**
|
||||
|
|
|
@ -33,6 +33,7 @@ public enum EAwards {
|
|||
* 蓝宝
|
||||
*/
|
||||
HIGH_MANAGER(4, 15, "三级", 0, EnumsPrefixConstants.AWARDS + 15),
|
||||
|
||||
/**
|
||||
* 钻石
|
||||
*/
|
||||
|
@ -45,6 +46,7 @@ public enum EAwards {
|
|||
* 绿钻
|
||||
*/
|
||||
HIGH_CHIEF(7, 30, "六级", 0, EnumsPrefixConstants.AWARDS + 30),
|
||||
|
||||
/**
|
||||
* 星耀蓝钻
|
||||
*/
|
||||
|
|
|
@ -107,11 +107,11 @@ public enum EBonusItems {
|
|||
* 复购级差收益(新) -- 月结,月奖
|
||||
*/
|
||||
RETAIL_MONTH_REPURCHASE_INCOME(31, "复购级差收益", 0, EnumsPrefixConstants.BONUS_ITEMS + 31),
|
||||
|
||||
/**
|
||||
* 培育津贴(新) -- 月结,月奖
|
||||
*/
|
||||
RETAIL_COACHING_INCOME(32, "培育津贴", 0, EnumsPrefixConstants.BONUS_ITEMS + 32),
|
||||
|
||||
/**
|
||||
* 月度分红 - 平均收益(福利平均收益) -- 月结,月奖
|
||||
*/
|
||||
|
|
|
@ -55,7 +55,6 @@ public enum EGrade {
|
|||
*/
|
||||
S_VIP(6, 70, "V5", 0, EnumsPrefixConstants.GRADE + "70", MemberFrameworkConstants.S_VIP),
|
||||
|
||||
|
||||
;
|
||||
|
||||
/**
|
||||
|
|
|
@ -12,12 +12,7 @@ import lombok.EqualsAndHashCode;
|
|||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 奖金扣项配置
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-11-04
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
@ -254,13 +254,13 @@ public class CuMemberBonus extends BaseEntity {
|
|||
private BigDecimal retailMonthRepurchaseIncome;
|
||||
|
||||
/**
|
||||
* 新零售福利平均收益
|
||||
* 新零售福利分红平均收益
|
||||
*/
|
||||
@TableField("RETAIL_BENEFIT_AVG_INCOME")
|
||||
private BigDecimal retailBenefitAvgIncome;
|
||||
|
||||
/**
|
||||
* 新零售福利加权收益 修改为福利分红收益
|
||||
* 新零售福利分红加权收益
|
||||
*/
|
||||
@TableField("RETAIL_BENEFIT_INCOME")
|
||||
private BigDecimal retailBenefitIncome;
|
||||
|
|
|
@ -198,25 +198,25 @@ public class BdAwards extends BaseEntity {
|
|||
private BigDecimal shareTotalCheck;
|
||||
|
||||
/**
|
||||
* 福利级差比例
|
||||
* 福利级差比例 -- 月度级差
|
||||
*/
|
||||
@TableField("RANGE_RATIO")
|
||||
private BigDecimal rangeRatio;
|
||||
|
||||
/**
|
||||
* 复购级差比例
|
||||
* 复购级差比例 -- 月度复购级差
|
||||
*/
|
||||
@TableField("MONTH_REPURCHASE_RATIO")
|
||||
private BigDecimal monthRepurchaseRatio;
|
||||
|
||||
/**
|
||||
* 福利平均比例
|
||||
* 福利平均比例 -- 月度分红平均
|
||||
*/
|
||||
@TableField("BENEFIT_AVG_RATIO")
|
||||
private BigDecimal benefitAvgRatio;
|
||||
|
||||
/**
|
||||
* 福利加权比例
|
||||
* 福利加权比例 -- 月度分红加权
|
||||
*/
|
||||
@TableField("BENEFIT_SHARE_RATIO")
|
||||
private BigDecimal benefitShareRatio;
|
||||
|
|
Loading…
Reference in New Issue