From 9258dbb4e1dc553481e1520101bac761ddb83405 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sun, 28 Sep 2025 11:31:25 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E7=BB=93=E7=AE=97=E6=96=B0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=85=BC=E5=AE=B9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 6 + .../impl/CuMemberBonusStageServiceImpl.java | 104 +++++++++--------- .../achieve/CuMemberRetailRangeMapper.xml | 3 + 3 files changed, 61 insertions(+), 52 deletions(-) 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 0a9815d9..0a9f8330 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 @@ -1139,6 +1139,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate); // 推荐人一阶段子点位列表 LinkedHashMap parentDetailList = targetMember.getOneDetailMap(); + if (CollectionUtil.isEmpty(parentDetailList)) { + continue; + } // 推荐人第一层点位处理 giftBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, @@ -1306,6 +1309,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // BdAwards bdAwards = retailAwardsMap.get(awardsValue); // // 先验证累计业绩 // if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMember.getTeamConsumePv(), targetMember.getConsumePv()), bdAwards.getShareTotalCheck())) { +// +// +// // // 再验证小区,计算小区业绩(拉取直推会员数据) // if (null == cuMemberRangeExtList) { // // 昨日结算表,查询订单会员直推数据 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusStageServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusStageServiceImpl.java index 9fd14cd7..f63e5f05 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusStageServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusStageServiceImpl.java @@ -698,58 +698,6 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl parentDetailList, CuMemberRetailDetail newRetailDetail, - String rangeTableName, String rangeDetailTableName, - Map memberRangeExtMap, Date settleDate, EBonusStage eBonusStage, - List bonusStageDataList) { - for (Map.Entry integerCuMemberRetailDetailEntry : parentDetailList.entrySet()) { - // 第二层填充 - CuMemberRetailDetail parentRetailDetail = integerCuMemberRetailDetailEntry.getValue(); - // 遍历推荐人点位,使用第一个未完成的点位,进行填充 - if (EBonusStageStatus.NO.getValue() == parentRetailDetail.getStageStatus()) { - if (null == parentRetailDetail.getPointMember21()) { - this.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_21, - newRetailDetail, settleDate, eBonusStage, bonusStageDataList); - // 新点位是推荐人点位的第二层 - this.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail, - rangeTableName, rangeDetailTableName, BonusConstants.POINT_21, settleDate, eBonusStage, - bonusStageDataList); - // 当前新子点位填充完成,进入下一个新子点位 - return true; - } else if (null == parentRetailDetail.getPointMember22()) { - this.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_22, - newRetailDetail, settleDate, eBonusStage, bonusStageDataList); - // 新点位是推荐人点位的第二层 - this.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail, - rangeTableName, rangeDetailTableName, BonusConstants.POINT_22, settleDate, eBonusStage, - bonusStageDataList); - // 当前新子点位填充完成,进入下一个新子点位 - return true; - } else if (null == parentRetailDetail.getPointMember23()) { - this.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_23, - newRetailDetail, settleDate, eBonusStage, bonusStageDataList); - // 新点位是推荐人点位的第二层 - this.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail, - rangeTableName, rangeDetailTableName, BonusConstants.POINT_23, settleDate, eBonusStage, - bonusStageDataList); - // 当前新子点位填充完成,进入下一个新子点位 - return true; - } else if (null == parentRetailDetail.getPointMember24()) { - this.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_24, - newRetailDetail, settleDate, eBonusStage, bonusStageDataList); - // 新点位是推荐人点位的第二层 - this.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail, - rangeTableName, rangeDetailTableName, BonusConstants.POINT_24, settleDate, eBonusStage, - bonusStageDataList); - // 当前新子点位填充完成,进入下一个新子点位 - return true; - } - } - } - return false; - } - @Override public boolean thirdLevelhandle(LinkedHashMap parentDetailList, CuMemberRetailDetail newRetailDetail, String rangeTableName, String rangeDetailTableName, @@ -838,6 +786,58 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl parentDetailList, CuMemberRetailDetail newRetailDetail, + String rangeTableName, String rangeDetailTableName, + Map memberRangeExtMap, Date settleDate, EBonusStage eBonusStage, + List bonusStageDataList) { + for (Map.Entry integerCuMemberRetailDetailEntry : parentDetailList.entrySet()) { + // 第二层填充 + CuMemberRetailDetail parentRetailDetail = integerCuMemberRetailDetailEntry.getValue(); + // 遍历推荐人点位,使用第一个未完成的点位,进行填充 + if (EBonusStageStatus.NO.getValue() == parentRetailDetail.getStageStatus()) { + if (null == parentRetailDetail.getPointMember21()) { + this.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_21, + newRetailDetail, settleDate, eBonusStage, bonusStageDataList); + // 新点位是推荐人点位的第二层 + this.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail, + rangeTableName, rangeDetailTableName, BonusConstants.POINT_21, settleDate, eBonusStage, + bonusStageDataList); + // 当前新子点位填充完成,进入下一个新子点位 + return true; + } else if (null == parentRetailDetail.getPointMember22()) { + this.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_22, + newRetailDetail, settleDate, eBonusStage, bonusStageDataList); + // 新点位是推荐人点位的第二层 + this.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail, + rangeTableName, rangeDetailTableName, BonusConstants.POINT_22, settleDate, eBonusStage, + bonusStageDataList); + // 当前新子点位填充完成,进入下一个新子点位 + return true; + } else if (null == parentRetailDetail.getPointMember23()) { + this.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_23, + newRetailDetail, settleDate, eBonusStage, bonusStageDataList); + // 新点位是推荐人点位的第二层 + this.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail, + rangeTableName, rangeDetailTableName, BonusConstants.POINT_23, settleDate, eBonusStage, + bonusStageDataList); + // 当前新子点位填充完成,进入下一个新子点位 + return true; + } else if (null == parentRetailDetail.getPointMember24()) { + this.fillRetailDetail(parentRetailDetail, BonusConstants.POINT_24, + newRetailDetail, settleDate, eBonusStage, bonusStageDataList); + // 新点位是推荐人点位的第二层 + this.handlePointSecond(memberRangeExtMap, newRetailDetail, parentRetailDetail, + rangeTableName, rangeDetailTableName, BonusConstants.POINT_24, settleDate, eBonusStage, + bonusStageDataList); + // 当前新子点位填充完成,进入下一个新子点位 + return true; + } + } + } + return false; + } + private LinkedHashMap getRetailDetailMap(CuMemberRetailRangeExt memberRetail, EBonusStage eBonusStage) { if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) { return memberRetail.getOneDetailMap(); diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml index 3d650dc1..c50b3307 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailRangeMapper.xml @@ -738,7 +738,10 @@ rep_team_new_amount, rep_team_new_pv, point_count, + wait_point_count, rep_pv_balance, + gift_point, + gift_pay_time, bw.awards_value, bw.awards_name from ${tableName} a