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);