From 36646a55cfc1dcb3d0cada3b4716272743e5762f Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 30 Oct 2025 10:17:08 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=8D=87=E9=98=B6=E6=AE=B5=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=B2=A1=E6=9C=89=E4=B8=8B=E4=B8=80=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E7=9A=84=E7=82=B9=E4=BD=8D=E5=88=97=E8=A1=A8=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E8=A1=A5=E5=85=A8=E6=9F=A5=E8=AF=A2=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ICuMemberRetailDetailService.java | 3 +++ .../impl/CuMemberRetailDetailServiceImpl.java | 7 ++++++ .../bonus/service/impl/BonusSettleHandle.java | 10 +++++--- .../service/impl/BonusSettleRangeHandle.java | 25 ++++++++++++++----- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java index 4387be18..32929e30 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java @@ -21,6 +21,9 @@ public interface ICuMemberRetailDetailService extends IService memberRangeExtMap, EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, Collection stageMemberList); + void listMemberRetailDetail(String retailDetailTableName, Map memberRangeExtMap, + EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, Long stageMember); + /** * 指定会员获取对应的点位数据 */ diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailDetailServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailDetailServiceImpl.java index 0a669f97..46d5ebce 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailDetailServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailDetailServiceImpl.java @@ -44,6 +44,13 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl memberRangeExtMap, + EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, Long stageMember) { + List tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, Collections.singletonList(stageMember), eBonusStage.getValue(), null != eBonusStageStatus ? eBonusStageStatus.getValue() : null); + packageThreeDetailMap(memberRangeExtMap, eBonusStage, tmpList); + } + @Override public List listMemberRetailDetailByQuery(String retailDetailTableName, Map memberRangeExtMap, List queryMemberList, EBonusStage eBonusStage) { 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 a4b70904..8d095052 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 @@ -243,10 +243,12 @@ public abstract class BonusSettleHandle { BigDecimal realIncome = ComputeUtil.computeSubtract(pretaxIncome, incomeTax); ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.INCOME_TAX, incomeTax); ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.REAL_INCOME, realIncome); - // 收益占比 - if (null != orderAmount && null != exchangeRate) { - ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.INCOME_RATIO, ComputeUtil.computeDivide(realIncome, ComputeUtil.computeDivide(orderAmount, exchangeRate))); - } + // 收益占比没啥用,都给默认0 + ReflectUtils.invokeSetter(cuMemberDetail, BonusFieldConstants.INCOME_RATIO, BigDecimal.ZERO); +// // 收益占比 +// if (null != orderAmount && null != exchangeRate) { +// 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/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index d3a108fe..fa88041d 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -1133,10 +1133,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { Integer pointCount2 = targetMember.getPointCount2() + 1; targetMember.setPointCount2(pointCount2); twoRetailDetail.setStageSort(pointCount2); - if (pointCount2 == 1) { - // 二阶段的第一个点位,之前没有过,需要创建二阶段点位列表 - targetMember.setTwoDetailMap(new LinkedHashMap<>()); + if (null == targetMember.getTwoDetailMap()) { + if (pointCount2 == 1) { + // 二阶段的第一个点位,之前没有过,需要创建二阶段点位列表 + targetMember.setTwoDetailMap(new LinkedHashMap<>()); + } else { + // 二阶段之前有点位,查询血缘会员明细数据 + iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, + EBonusStage.TWO, EBonusStageStatus.NO, targetMember.getPkMember()); + } } + targetMember.getTwoDetailMap().put(twoRetailDetail.getChildNode(), twoRetailDetail); returnRetailDetailList.add(twoRetailDetail); @@ -1146,9 +1153,15 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { Integer pointCount3 = targetMember.getPointCount3() + 1; targetMember.setPointCount3(pointCount3); threeRetailDetail.setStageSort(pointCount3); - if (pointCount3 == 1) { - // 三阶段的第一个点位,之前没有过,需要创建三阶段点位列表 - targetMember.setThreeDetailMap(new LinkedHashMap<>()); + if (null == targetMember.getThreeDetailMap()) { + if (pointCount3 == 1) { + // 三阶段的第一个点位,之前没有过,需要创建三阶段点位列表 + targetMember.setThreeDetailMap(new LinkedHashMap<>()); + } else { + // 三阶段之前有点位,需要查询血缘会员明细数据 + iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, + EBonusStage.THREE, EBonusStageStatus.NO, targetMember.getPkMember()); + } } targetMember.getThreeDetailMap().put(threeRetailDetail.getChildNode(), threeRetailDetail);