From 6b2dcbac8c6eb41357be5e1bf8083ac8c6aceb61 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 24 Jul 2025 11:08:52 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=8B=93=E5=B1=95=E6=94=B6=E7=9B=8A?= =?UTF-8?q?=E3=80=81=E8=BE=85=E5=AF=BC=E6=94=B6=E7=9B=8A=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=8B=A8=E6=AF=94=E5=B0=8F=E6=95=B0=E4=BD=8D=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BonusSettleFirstPurchaseHandle.java | 12 +- .../bonus/service/impl/BonusSettleHandle.java | 12 +- .../impl/BonusSettleNewExpandHandle.java | 4 +- .../impl/BonusSettlePurchaseHandle.java | 10 +- .../impl/BonusSettleRepCouponsHandle.java | 2 +- .../service/impl/BonusSettleServiceImpl.java | 173 +++++++++--------- .../member/achieve/CuMemberTreeMapper.xml | 4 +- 7 files changed, 111 insertions(+), 106 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java index 9afbbe3e..e994ec1f 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleFirstPurchaseHandle.java @@ -215,7 +215,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { */ void setBonusPushIncome(Map 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); if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusPush.getIncomeStatus()) { 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 actualIncome = ComputeUtil.computeBonusMultiply(cuMemberBonusExpand.getCalAchieve(), countryExpandRatio); 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)) { cuMemberBonusExpand.setRemark(cuMemberBonusExpand.getRemark() + "增加碰次:" + addTouch + "。"); } @@ -682,7 +682,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { // 收益占比 BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach, 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); 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.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); // if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusDetail.getIncomeStatus() // && EYesNo.NO.getIntValue() == targetMemberSettleExt.getPurchaseStatus()) { @@ -1025,7 +1025,7 @@ public class BonusSettleFirstPurchaseHandle extends BonusSettleHandle { } 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); 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); if (riskControlMap.containsKey(cuMemberBonus.getPkMember())) { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java index b529c127..0dd0254a 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleHandle.java @@ -122,7 +122,8 @@ public abstract class BonusSettleHandle { * @param endTouch 4-n的次数 * @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()); // 4-N 拓展比例(一般为26%) BigDecimal expandRatio = bonusExpand.getExpandRatio(); @@ -1128,7 +1129,8 @@ public abstract class BonusSettleHandle { * @param orderAmount 订单金额 * @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); 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.REAL_INCOME, realIncome); - // 收益占比 - ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.INCOME_RATIO, ComputeUtil.computeDivide(realIncome, ComputeUtil.computeDivide(orderAmount, exchangeRate))); + if (incomeRatioFlag) { + // 收益占比 + ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.INCOME_RATIO, ComputeUtil.computeDivide(realIncome, ComputeUtil.computeDivide(orderAmount, exchangeRate))); + } return bdBonusDeduct; } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleNewExpandHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleNewExpandHandle.java index 50cad3e8..733bb51e 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleNewExpandHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleNewExpandHandle.java @@ -394,7 +394,7 @@ public class BonusSettleNewExpandHandle extends BonusSettleHandle { } 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); 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); if (ComputeUtil.compareValue(addTouch)) { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java index cbec1208..7e807924 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettlePurchaseHandle.java @@ -100,7 +100,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle { cuMemberBonusPush.setCalValue(BigDecimal.ZERO); 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()) { cuMemberBonus.setRepurPushIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurPushIncome(), cuMemberBonusPush.getPretaxIncome())); setPurchaseTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusPush); @@ -476,7 +476,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle { */ private void packageRepurchaseRange(BonusConfigDTO bonusConfigDTO, List 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()) { // 收益状态正常,扣除 cuMemberBonus.setRepurRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRepurRangeIncome(), repurchaseRangeBonus)); @@ -593,7 +593,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle { } 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); 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); if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusExpand.getIncomeStatus()) { @@ -792,7 +792,7 @@ public class BonusSettlePurchaseHandle extends BonusSettleHandle { repurchasePointRemark(saOrderExt, cuMemberBonusCoach, sourceMemberSettleExt, targetMemberSettleExt, pointAlgebra); // 奖金扣项 BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusCoach, - saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); + saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate(), true); // 累计奖金数据 cuMemberBonus.setGlobalPoints(cuMemberBonus.getGlobalPoints().add(cuMemberBonusCoach.getPretaxIncome())); // 复购小计、总计 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRepCouponsHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRepCouponsHandle.java index 93cbde50..62f20c1f 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRepCouponsHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRepCouponsHandle.java @@ -96,7 +96,7 @@ public class BonusSettleRepCouponsHandle extends BonusSettleHandle { } else { 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()) { cuMemberBonus.setRepurCoupon(ComputeUtil.computeAdd(cuMemberBonus.getRepurCoupon(), cuMemberBonusDetail.getPretaxIncome())); setRepurchaseCouponTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusDetail); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java index fa81c515..ec7d3ca2 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java @@ -1069,41 +1069,42 @@ public class BonusSettleServiceImpl implements IBonusSettleService { MemberBonusDetailCalVO memberBonusDetailCalVO = calculateOrderRatio(memberBonusDetailCalVoMap, cuMemberBonusDetail); memberBonusDetailCalVO.setServiceIncome(ComputeUtil.computeAdd(memberBonusDetailCalVO.getServiceIncome(), cuMemberBonusDetail.getRealIncome())); }); - Map saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size())); - firPurchaseOrderList.forEach(saOrderExt -> - saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); - // 计算 收益拨比 此类型收益÷总拨金额 订单拨比 此订单所有收益之合得实发金额÷订单总金额 - cuMemberBonusPushList.forEach(cuMemberBonusPush -> { - MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusPush.getPkOrder()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - cuMemberBonusPush.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getPushIncome(), memberBonusDetailCalVO.getRealIncome())); - cuMemberBonusPush.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); - }); - if (null != cuMemberBonusExpandList) { - // 拓展收益 - cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { - MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getExpandIncome(), memberBonusDetailCalVO.getRealIncome())); - cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); - }); - } - if (null != cuMemberBonusCoachList) { - // 辅导收益 - cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { - MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - 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()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - cuMemberBonusDetail.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getServiceIncome(), memberBonusDetailCalVO.getRealIncome())); - cuMemberBonusDetail.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), ComputeUtil.computeDivide(saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()))); - }); + +// Map saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size())); +// firPurchaseOrderList.forEach(saOrderExt -> +// saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); +// // 计算 收益拨比 此类型收益÷总拨金额 订单拨比 此订单所有收益之合得实发金额÷订单总金额 +// cuMemberBonusPushList.forEach(cuMemberBonusPush -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusPush.getPkOrder()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// cuMemberBonusPush.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getPushIncome(), memberBonusDetailCalVO.getRealIncome())); +// cuMemberBonusPush.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); +// }); +// if (null != cuMemberBonusExpandList) { +// // 拓展收益 +// cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getExpandIncome(), memberBonusDetailCalVO.getRealIncome())); +// cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); +// }); +// } +// if (null != cuMemberBonusCoachList) { +// // 辅导收益 +// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// 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()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// cuMemberBonusDetail.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getServiceIncome(), memberBonusDetailCalVO.getRealIncome())); +// cuMemberBonusDetail.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), ComputeUtil.computeDivide(saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()))); +// }); // //*********************************计算分红奖,理论最大值************************/ // Map> saOrderMap = new HashMap<>(ComputeUtil.mapInitCapacity(firPurchaseOrderList.size())); // firPurchaseOrderList.forEach(saOrderExt -> { @@ -1219,41 +1220,41 @@ public class BonusSettleServiceImpl implements IBonusSettleService { memberBonusDetailCalVO.setGlobalPoints(ComputeUtil.computeAdd(memberBonusDetailCalVO.getGlobalPoints(), cuMemberPointBonus.getRealIncome())); }); - Map saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(purchaseOrderList.size())); - purchaseOrderList.forEach(saOrderExt -> - saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); - if (null != cuMemberBonusExpandList) { - // 复购拓展 - cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { - MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepExpandIncome(), memberBonusDetailCalVO.getRealIncome())); - cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); - }); - } - if (null != cuMemberBonusCoachList) { - // 辅导收益 - cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { - MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepCoachIncome(), memberBonusDetailCalVO.getRealIncome())); - cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); - }); - } - // 复购级差 - cuMemberBonusRangeList.forEach(cuMemberBonusRange -> { - MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusRange.getPkOrder()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - cuMemberBonusRange.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepRangeIncome(), memberBonusDetailCalVO.getRealIncome())); - cuMemberBonusRange.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); - }); - // 见点收益 - cuMemberPointBonusList.forEach(cuMemberPointBonus -> { - MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberPointBonus.getPkOrder()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - cuMemberPointBonus.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getGlobalPoints(), memberBonusDetailCalVO.getRealIncome())); - cuMemberPointBonus.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); - }); +// Map saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(purchaseOrderList.size())); +// purchaseOrderList.forEach(saOrderExt -> +// saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); +// if (null != cuMemberBonusExpandList) { +// // 复购拓展 +// cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepExpandIncome(), memberBonusDetailCalVO.getRealIncome())); +// cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); +// }); +// } +// if (null != cuMemberBonusCoachList) { +// // 辅导收益 +// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepCoachIncome(), memberBonusDetailCalVO.getRealIncome())); +// cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); +// }); +// } +// // 复购级差 +// cuMemberBonusRangeList.forEach(cuMemberBonusRange -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusRange.getPkOrder()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// cuMemberBonusRange.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRepRangeIncome(), memberBonusDetailCalVO.getRealIncome())); +// cuMemberBonusRange.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); +// }); +// // 见点收益 +// cuMemberPointBonusList.forEach(cuMemberPointBonus -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberPointBonus.getPkOrder()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// cuMemberPointBonus.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getGlobalPoints(), memberBonusDetailCalVO.getRealIncome())); +// 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())); }); - Map saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(expandOrderList.size())); - expandOrderList.forEach(saOrderExt -> saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); - // 收益拓展 - cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { - MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getExpandIncome(), memberBonusDetailCalVO.getRealIncome())); - cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); - }); - // 辅导收益 - cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { - MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); - SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); - cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome())); - cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); - }); +// Map saOrderExtMap = new HashMap<>(ComputeUtil.mapInitCapacity(expandOrderList.size())); +// expandOrderList.forEach(saOrderExt -> saOrderExtMap.put(saOrderExt.getPkId(), saOrderExt)); +// // 收益拓展 +// cuMemberBonusExpandList.forEach(cuMemberBonusExpand -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusExpand.getPkOrder()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// cuMemberBonusExpand.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getExpandIncome(), memberBonusDetailCalVO.getRealIncome())); +// cuMemberBonusExpand.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); +// }); +// // 辅导收益 +// cuMemberBonusCoachList.forEach(cuMemberBonusCoach -> { +// MemberBonusDetailCalVO memberBonusDetailCalVO = memberBonusDetailCalVoMap.get(cuMemberBonusCoach.getPkOrder()); +// SaOrderExt saOrderExt = saOrderExtMap.get(memberBonusDetailCalVO.getPkOrder()); +// cuMemberBonusCoach.setIncomeDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getCoachIncome(), memberBonusDetailCalVO.getRealIncome())); +// cuMemberBonusCoach.setOrderDialRatio(ComputeUtil.computeDivide(memberBonusDetailCalVO.getRealIncome(), saOrderExt.getOrderAmount())); +// }); } } diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml index ccd88d1c..2a2626ad 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/member/achieve/CuMemberTreeMapper.xml @@ -216,7 +216,7 @@ 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, 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 ( ) a @@ -289,7 +289,7 @@ 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, 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} where pay_status = 1 start with pk_member = #{item}