## 升阶段如果没有下一阶段的点位列表进行补全查询;

This commit is contained in:
cabbage 2025-10-30 10:17:08 +08:00
parent dab579bf80
commit 36646a55cf
4 changed files with 35 additions and 10 deletions

View File

@ -21,6 +21,9 @@ public interface ICuMemberRetailDetailService extends IService<CuMemberRetailDet
void listMemberRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, Collection<Long> stageMemberList);
void listMemberRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, Long stageMember);
/**
* 指定会员获取对应的点位数据
*/

View File

@ -44,6 +44,13 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl<CuMemberRetailD
});
}
@Override
public void listMemberRetailDetail(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, Long stageMember) {
List<CuMemberRetailDetail> tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, Collections.singletonList(stageMember), eBonusStage.getValue(), null != eBonusStageStatus ? eBonusStageStatus.getValue() : null);
packageThreeDetailMap(memberRangeExtMap, eBonusStage, tmpList);
}
@Override
public List<CuMemberRetailDetail> listMemberRetailDetailByQuery(String retailDetailTableName, Map<Long, CuMemberRetailRangeExt> memberRangeExtMap,
List<Long> queryMemberList, EBonusStage eBonusStage) {

View File

@ -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;
}

View File

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