## 拓展收益、辅导收益订单拨比小数位处理;

This commit is contained in:
cabbage 2025-07-24 11:08:52 +08:00
parent e46a1d4f1a
commit 6b2dcbac8c
7 changed files with 111 additions and 106 deletions

View File

@ -215,7 +215,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
*/ */
void setBonusPushIncome(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, BonusConfigDTO bonusConfigDTO, SaOrderExt saOrderExt, CuMemberBonus cuMemberBonus, CuMemberBonusPush cuMemberBonusPush) { void setBonusPushIncome(Map<Long, CuMemberSettleExt> cuMemberSettleExtMap, BonusConfigDTO bonusConfigDTO, SaOrderExt saOrderExt, CuMemberBonus cuMemberBonus, CuMemberBonusPush cuMemberBonusPush) {
// 奖金扣项 // 奖金扣项
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusPush, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusPush, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
recommendRemark(saOrderExt, cuMemberBonusPush, cuMemberSettleExtMap); recommendRemark(saOrderExt, cuMemberBonusPush, cuMemberSettleExtMap);
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusPush.getIncomeStatus()) { if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusPush.getIncomeStatus()) {
cuMemberBonus.setDirectIncome(ComputeUtil.computeAdd(cuMemberBonus.getDirectIncome(), cuMemberBonusPush.getPretaxIncome())); cuMemberBonus.setDirectIncome(ComputeUtil.computeAdd(cuMemberBonus.getDirectIncome(), cuMemberBonusPush.getPretaxIncome()));
@ -420,7 +420,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
BigDecimal maxIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), bdGrade.getExpandRatio()); BigDecimal maxIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), bdGrade.getExpandRatio());
BigDecimal actualIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), countryExpandRatio); BigDecimal actualIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), countryExpandRatio);
packageCuMemberBonusExpand(cuMemberBonusExpand, cuMemberBonus, bdGrade.getExpandCapping(), maxIncome, actualIncome); packageCuMemberBonusExpand(cuMemberBonusExpand, cuMemberBonus, bdGrade.getExpandCapping(), maxIncome, actualIncome);
setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
if (ComputeUtil.compareValue(addTouch)) { if (ComputeUtil.compareValue(addTouch)) {
cuMemberBonusExpand.setRemark(cuMemberBonusExpand.getRemark() + "增加碰次:" + addTouch + ""); cuMemberBonusExpand.setRemark(cuMemberBonusExpand.getRemark() + "增加碰次:" + addTouch + "");
} }
@ -682,7 +682,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
// 收益占比 // 收益占比
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach, BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach,
null != saOrderExt ? saOrderExt.getOrderAmount() : BigDecimal.ZERO, null != saOrderExt ? saOrderExt.getOrderAmount() : BigDecimal.ZERO,
null != saOrderExt ? saOrderExt.getInExchangeRate() : BigDecimal.ONE); null != saOrderExt ? saOrderExt.getInExchangeRate() : BigDecimal.ONE, false);
coachRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt, firstBool); coachRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt, firstBool);
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusCoach.getIncomeStatus()) { if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusCoach.getIncomeStatus()) {
@ -841,7 +841,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
cuMemberBonusDetail.setPkBonusItems(getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.SERVICE_SUBSIDIES.getValue())); cuMemberBonusDetail.setPkBonusItems(getPkBonusItems(bonusConfigDTO, targetMemberSettleExt.getPkSettleCountry(), EBonusItems.SERVICE_SUBSIDIES.getValue()));
cuMemberBonusDetail.setPretaxIncome(ComputeUtil.computeBonusMultiply(saOrderExt.getOrderAchieve(), serviceRadio)); cuMemberBonusDetail.setPretaxIncome(ComputeUtil.computeBonusMultiply(saOrderExt.getOrderAchieve(), serviceRadio));
// 收益占比 // 收益占比
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusDetail, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusDetail, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
serviceRemark(saOrderExt, cuMemberBonusDetail, sourceMemberSettleExt, targetMemberSettleExt); serviceRemark(saOrderExt, cuMemberBonusDetail, sourceMemberSettleExt, targetMemberSettleExt);
// if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus() // if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()
// && EYesNo.NO.getIntValue() == targetMemberSettleExt.getPurchaseStatus()) { // && EYesNo.NO.getIntValue() == targetMemberSettleExt.getPurchaseStatus()) {
@ -1025,7 +1025,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
} }
packageCuMemberBonusExpand(fireCuMemberBonusExpand, cuMemberBonus, bdGrade.getExpandCapping(), fireIncome, fireIncome); packageCuMemberBonusExpand(fireCuMemberBonusExpand, cuMemberBonus, bdGrade.getExpandCapping(), fireIncome, fireIncome);
// 收益占比 // 收益占比
setBonusDetailDeduct(bonusConfigDTO, fireCuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); setBonusDetailDeduct(bonusConfigDTO, fireCuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
expandRemark(saOrderExt, fireCuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt); expandRemark(saOrderExt, fireCuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt);
cuMemberBonusExpandList.add(fireCuMemberBonusExpand); cuMemberBonusExpandList.add(fireCuMemberBonusExpand);
// 拓展收益取封顶最大值 // 拓展收益取封顶最大值
@ -1033,7 +1033,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle {
} }
// 收益占比 // 收益占比
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
expandRemark(saOrderExt, cuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt); expandRemark(saOrderExt, cuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt);
if (riskControlMap.containsKey(cuMemberBonus.getPkMember())) { if (riskControlMap.containsKey(cuMemberBonus.getPkMember())) {

View File

@ -122,7 +122,8 @@ public abstract class BonusSettleHandle {
* @param endTouch 4-n的次数 * @param endTouch 4-n的次数
* @param bdGrade 等级 * @param bdGrade 等级
*/ */
protected BigDecimal getCountryRepurchaseExpand(BonusConfigDTO bonusConfigDTO, CuMemberSettleExt memberSettleExt, Integer endTouch, BdGrade bdGrade, BigDecimal addTouch, BigDecimal editExpandRatio) { protected BigDecimal getCountryRepurchaseExpand(BonusConfigDTO bonusConfigDTO, CuMemberSettleExt memberSettleExt,
Integer endTouch, BdGrade bdGrade, BigDecimal addTouch, BigDecimal editExpandRatio) {
BonusExpandDTO bonusExpand = bonusConfigDTO.getBonusExpandMap().get(memberSettleExt.getPkSettleCountry()); BonusExpandDTO bonusExpand = bonusConfigDTO.getBonusExpandMap().get(memberSettleExt.getPkSettleCountry());
// 4-N 拓展比例一般为26% // 4-N 拓展比例一般为26%
BigDecimal expandRatio = bonusExpand.getExpandRatio(); BigDecimal expandRatio = bonusExpand.getExpandRatio();
@ -1128,7 +1129,8 @@ public abstract class BonusSettleHandle {
* @param orderAmount 订单金额 * @param orderAmount 订单金额
* @param exchangeRate 入汇率 * @param exchangeRate 入汇率
*/ */
protected BdBonusDeduct setBonusDetailDeduct(BonusConfigDTO bonusConfigDTO, Object cuMemberDetail, BigDecimal orderAmount, BigDecimal exchangeRate) { protected BdBonusDeduct setBonusDetailDeduct(BonusConfigDTO bonusConfigDTO, Object cuMemberDetail, BigDecimal orderAmount, BigDecimal exchangeRate,
Boolean incomeRatioFlag) {
Integer pkBonusItems = ReflectUtils.invokeGetter(cuMemberDetail, BonusFieldConstants.PK_BONUS_ITEMS); Integer pkBonusItems = ReflectUtils.invokeGetter(cuMemberDetail, BonusFieldConstants.PK_BONUS_ITEMS);
BdBonusDeduct bdBonusDeduct = bonusConfigDTO.getBonusDeductsMap().get(pkBonusItems); BdBonusDeduct bdBonusDeduct = bonusConfigDTO.getBonusDeductsMap().get(pkBonusItems);
// 税前收益 // 税前收益
@ -1144,8 +1146,10 @@ public abstract class BonusSettleHandle {
ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.INCOME_TAX, incomeTax); ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.INCOME_TAX, incomeTax);
// 实际收益 // 实际收益
ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.REAL_INCOME, realIncome); ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.REAL_INCOME, realIncome);
if (incomeRatioFlag) {
// 收益占比 // 收益占比
ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.INCOME_RATIO, ComputeUtil.computeDivide(realIncome, ComputeUtil.computeDivide(orderAmount, exchangeRate))); ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.INCOME_RATIO, ComputeUtil.computeDivide(realIncome, ComputeUtil.computeDivide(orderAmount, exchangeRate)));
}
return bdBonusDeduct; return bdBonusDeduct;
} }

View File

@ -394,7 +394,7 @@ public class BonusSettleNewExpandHandle extends BonusSettleHandle {
} }
packageCuMemberBonusExpand(fireCuMemberBonusExpand, cuMemberBonus, bdGrade.getExpandCapping(), fireIncome, fireIncome); packageCuMemberBonusExpand(fireCuMemberBonusExpand, cuMemberBonus, bdGrade.getExpandCapping(), fireIncome, fireIncome);
// 收益占比 // 收益占比
setBonusDetailDeduct(bonusConfigDTO, fireCuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); setBonusDetailDeduct(bonusConfigDTO, fireCuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), false);
expandRemark(saOrderExt, fireCuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt); expandRemark(saOrderExt, fireCuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt);
cuMemberBonusExpandList.add(fireCuMemberBonusExpand); cuMemberBonusExpandList.add(fireCuMemberBonusExpand);
// 拓展收益取封顶最大值 // 拓展收益取封顶最大值
@ -402,7 +402,7 @@ public class BonusSettleNewExpandHandle extends BonusSettleHandle {
} }
// 收益占比 // 收益占比
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), false);
expandRemark(saOrderExt, cuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt); expandRemark(saOrderExt, cuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt);
if (ComputeUtil.compareValue(addTouch)) { if (ComputeUtil.compareValue(addTouch)) {

View File

@ -100,7 +100,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
cuMemberBonusPush.setCalValue(BigDecimal.ZERO); cuMemberBonusPush.setCalValue(BigDecimal.ZERO);
cuMemberBonusPush.setPretaxIncome(bonusRepurchasePushDTO.getPushValue()); cuMemberBonusPush.setPretaxIncome(bonusRepurchasePushDTO.getPushValue());
} }
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusPush, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusPush, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusPush.getIncomeStatus()) { if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusPush.getIncomeStatus()) {
cuMemberBonus.setRepurPushIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurPushIncome(), cuMemberBonusPush.getPretaxIncome())); cuMemberBonus.setRepurPushIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurPushIncome(), cuMemberBonusPush.getPretaxIncome()));
setPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusPush); setPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusPush);
@ -476,7 +476,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
*/ */
private void packageRepurchaseRange(BonusConfigDTO bonusConfigDTO, List<CuMemberBonusRange> cuMemberBonusRangeList, SaOrderExt saOrderExt, CuMemberBonus cuMemberBonus, CuMemberBonusRange cuMemberBonusRange, BigDecimal repurchaseRangeBonus) { private void packageRepurchaseRange(BonusConfigDTO bonusConfigDTO, List<CuMemberBonusRange> cuMemberBonusRangeList, SaOrderExt saOrderExt, CuMemberBonus cuMemberBonus, CuMemberBonusRange cuMemberBonusRange, BigDecimal repurchaseRangeBonus) {
// 奖金扣项 // 奖金扣项
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) { if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) {
// 收益状态正常扣除 // 收益状态正常扣除
cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), repurchaseRangeBonus)); cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), repurchaseRangeBonus));
@ -593,7 +593,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
} }
packageCuMemberBonusExpand(fireCuMemberBonusExpand, cuMemberBonus, bdGrade.getExpandCapping(), fireIncome, fireIncome); packageCuMemberBonusExpand(fireCuMemberBonusExpand, cuMemberBonus, bdGrade.getExpandCapping(), fireIncome, fireIncome);
// 收益占比 // 收益占比
setBonusDetailDeduct(bonusConfigDTO, fireCuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); setBonusDetailDeduct(bonusConfigDTO, fireCuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
expandRemark(saOrderExt, fireCuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt); expandRemark(saOrderExt, fireCuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt);
cuMemberBonusExpandList.add(fireCuMemberBonusExpand); cuMemberBonusExpandList.add(fireCuMemberBonusExpand);
// 拓展收益取封顶最大值 // 拓展收益取封顶最大值
@ -602,7 +602,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
} }
// 收益占比 // 收益占比
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusExpand, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
repurchaseExpandRemark(saOrderExt, cuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt); repurchaseExpandRemark(saOrderExt, cuMemberBonusExpand, sourceMemberSettleExt, targetMemberSettleExt);
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusExpand.getIncomeStatus()) { if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusExpand.getIncomeStatus()) {
@ -792,7 +792,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle {
repurchasePointRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt, pointAlgebra); repurchasePointRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt, pointAlgebra);
// 奖金扣项 // 奖金扣项
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach, BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach,
saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
// 累计奖金数据 // 累计奖金数据
cuMemberBonus.setGlobalPoints(cuMemberBonus.getGlobalPoints().add(cuMemberBonusCoach.getPretaxIncome())); cuMemberBonus.setGlobalPoints(cuMemberBonus.getGlobalPoints().add(cuMemberBonusCoach.getPretaxIncome()));
// 复购小计总计 // 复购小计总计

View File

@ -96,7 +96,7 @@ public class BonusSettleRepCouponsHandle extends BonusSettleHandle {
} else { } else {
cuMemberBonusDetail.setPretaxIncome(acRepurCouponsRuleConfig.getRatioValue()); cuMemberBonusDetail.setPretaxIncome(acRepurCouponsRuleConfig.getRatioValue());
} }
BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusDetail, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusDetail, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true);
if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) { if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus()) {
cuMemberBonus.setRepurCoupon(ComputeUtil.computeAdd(cuMemberBonus.getRepurCoupon(), cuMemberBonusDetail.getPretaxIncome())); cuMemberBonus.setRepurCoupon(ComputeUtil.computeAdd(cuMemberBonus.getRepurCoupon(), cuMemberBonusDetail.getPretaxIncome()));
setRepurchaseCouponTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusDetail); setRepurchaseCouponTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusDetail);

View File

@ -1069,41 +1069,42 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusDetail); MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusDetail);
memberBonusDetailCalVO.setServiceIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getServiceIncome(), cuMemberBonusDetail.getRealIncome())); memberBonusDetailCalVO.setServiceIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getServiceIncome(), cuMemberBonusDetail.getRealIncome()));
}); });
Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size()));
firPurchaseOrderList.forEach(saOrderExt -> // Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size()));
saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); // firPurchaseOrderList.forEach(saOrderExt ->
// 计算 收益拨比 此类型收益÷总拨金额 订单拨比 此订单所有收益之合得实发金额÷订单总金额 // saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt));
cuMemberBonusPushList.forEach(cuMemberBonusPush -> { // // 计算 收益拨比 此类型收益÷总拨金额 订单拨比 此订单所有收益之合得实发金额÷订单总金额
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusPush.getPkOrder()); // cuMemberBonusPushList.forEach(cuMemberBonusPush -> {
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusPush.getPkOrder());
cuMemberBonusPush.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getPushIncome(), memberBonusDetailCalVO.getRealIncome())); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusPush.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); // cuMemberBonusPush.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getPushIncome(), memberBonusDetailCalVO.getRealIncome()));
}); // cuMemberBonusPush.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
if (null != cuMemberBonusExpandList) { // });
// 拓展收益 // if (null != cuMemberBonusExpandList) {
cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { // // 拓展收益
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder()); // cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> {
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder());
cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getExpandIncome(), memberBonusDetailCalVO.getRealIncome())); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); // cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getExpandIncome(), memberBonusDetailCalVO.getRealIncome()));
}); // cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
} // });
if (null != cuMemberBonusCoachList) { // }
// 辅导收益 // if (null != cuMemberBonusCoachList) {
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { // // 辅导收益
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); // cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder());
cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome())); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); // cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome()));
}); // cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
} // });
// 报单服务费 // }
cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> { // // 报单服务费
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusDetail.getPkOrder()); // cuMemberBonusDetailList.forEach(cuMemberBonusDetail -> {
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusDetail.getPkOrder());
cuMemberBonusDetail.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getServiceIncome(), memberBonusDetailCalVO.getRealIncome())); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusDetail.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), ComputeUtil.computeDivide(saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()))); // cuMemberBonusDetail.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getServiceIncome(), memberBonusDetailCalVO.getRealIncome()));
}); // cuMemberBonusDetail.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), ComputeUtil.computeDivide(saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate())));
// });
// //*********************************计算分红奖,理论最大值************************/ // //*********************************计算分红奖,理论最大值************************/
// Map<Integer, List<SaOrderExt>> saOrderMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size())); // Map<Integer, List<SaOrderExt>> saOrderMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size()));
// firPurchaseOrderList.forEach(saOrderExt -> { // firPurchaseOrderList.forEach(saOrderExt -> {
@ -1219,41 +1220,41 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
memberBonusDetailCalVO.setGlobalPoints(ComputeUtil.computeAdd(memberBonusDetailCalVO.getGlobalPoints(), cuMemberPointBonus.getRealIncome())); memberBonusDetailCalVO.setGlobalPoints(ComputeUtil.computeAdd(memberBonusDetailCalVO.getGlobalPoints(), cuMemberPointBonus.getRealIncome()));
}); });
Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(purchaseOrderList.size())); // Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(purchaseOrderList.size()));
purchaseOrderList.forEach(saOrderExt -> // purchaseOrderList.forEach(saOrderExt ->
saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); // saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt));
if (null != cuMemberBonusExpandList) { // if (null != cuMemberBonusExpandList) {
// 复购拓展 // // 复购拓展
cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { // cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder());
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepExpandIncome(), memberBonusDetailCalVO.getRealIncome())); // cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepExpandIncome(), memberBonusDetailCalVO.getRealIncome()));
cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); // cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
}); // });
} // }
if (null != cuMemberBonusCoachList) { // if (null != cuMemberBonusCoachList) {
// 辅导收益 // // 辅导收益
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { // cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder());
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepCoachIncome(), memberBonusDetailCalVO.getRealIncome())); // cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepCoachIncome(), memberBonusDetailCalVO.getRealIncome()));
cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); // cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
}); // });
} // }
// 复购级差 // // 复购级差
cuMemberBonusRangeList.forEach(cuMemberBonusRange -> { // cuMemberBonusRangeList.forEach(cuMemberBonusRange -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusRange.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusRange.getPkOrder());
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusRange.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepRangeIncome(), memberBonusDetailCalVO.getRealIncome())); // cuMemberBonusRange.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepRangeIncome(), memberBonusDetailCalVO.getRealIncome()));
cuMemberBonusRange.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); // cuMemberBonusRange.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
}); // });
// 见点收益 // // 见点收益
cuMemberPointBonusList.forEach(cuMemberPointBonus -> { // cuMemberPointBonusList.forEach(cuMemberPointBonus -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberPointBonus.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberPointBonus.getPkOrder());
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberPointBonus.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getGlobalPoints(), memberBonusDetailCalVO.getRealIncome())); // cuMemberPointBonus.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getGlobalPoints(), memberBonusDetailCalVO.getRealIncome()));
cuMemberPointBonus.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); // cuMemberPointBonus.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
}); // });
} }
/* /*
@ -1354,22 +1355,22 @@ public class BonusSettleServiceImpl implements IBonusSettleService {
memberBonusDetailCalVO.setCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getCoachIncome(), cuMemberBonusCoach.getRealIncome())); memberBonusDetailCalVO.setCoachIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getCoachIncome(), cuMemberBonusCoach.getRealIncome()));
}); });
Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(expandOrderList.size())); // Map<Long, SaOrderExt> saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(expandOrderList.size()));
expandOrderList.forEach(saOrderExt -> saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); // expandOrderList.forEach(saOrderExt -> saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt));
// 收益拓展 // // 收益拓展
cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { // cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder());
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getExpandIncome(), memberBonusDetailCalVO.getRealIncome())); // cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getExpandIncome(), memberBonusDetailCalVO.getRealIncome()));
cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); // cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
}); // });
// 辅导收益 // // 辅导收益
cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { // cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> {
MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); // MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder());
SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); // SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder());
cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome())); // cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome()));
cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); // cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount()));
}); // });
} }
} }

View File

@ -216,7 +216,7 @@
register_amount, register_pv, upgrade_amount, upgrade_pv, repurchase_amount, repurchase_pv, register_amount, register_pv, upgrade_amount, upgrade_pv, repurchase_amount, repurchase_pv,
hi_fun_amount, hi_fun_pv, mall_amount, mall_pv, category, pk_grade, pk_center_code, hi_fun_amount, hi_fun_pv, mall_amount, mall_pv, category, pk_grade, pk_center_code,
min_achieve, round, second, bg.grade_value, store_level, expire_status, min_achieve, round, second, bg.grade_value, store_level, expire_status,
a_fir_balance, a_rep_balance, b_fir_balance, b_rep_balance, is_maker_space a_fir_balance, a_rep_balance, b_fir_balance, b_rep_balance
from ( from (
<include refid="QueryMemberParent"></include> <include refid="QueryMemberParent"></include>
) a ) a
@ -289,7 +289,7 @@
register_amount, register_pv, upgrade_amount, upgrade_pv, repurchase_amount, repurchase_pv, register_amount, register_pv, upgrade_amount, upgrade_pv, repurchase_amount, repurchase_pv,
hi_fun_amount,hi_fun_pv,mall_amount,mall_pv, pk_center_code, category,pk_grade, hi_fun_amount,hi_fun_pv,mall_amount,mall_pv, pk_center_code, category,pk_grade,
min_achieve, round, second, store_level, expire_status, min_achieve, round, second, store_level, expire_status,
a_fir_balance, a_rep_balance, b_fir_balance, b_rep_balance, is_maker_space a_fir_balance, a_rep_balance, b_fir_balance, b_rep_balance
from ${settleTableName} from ${settleTableName}
where pay_status = 1 where pay_status = 1
start with pk_member = #{item} start with pk_member = #{item}