From ea0a7d82bc1e3c2937234d4696e229543a4f1964 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 17 Jun 2025 11:26:08 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E8=B0=83=E6=95=B4=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=A4=84=E7=90=86=EF=BC=8C=E6=B3=A8=E6=B0=B4?= =?UTF-8?q?=E5=8D=95=E7=8B=AC=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/settle/IMemberSettleBonusApi.java | 6 -- .../manage/CuMemberSettleController.java | 11 --- .../provider/MemberSettleBonusProvider.java | 5 -- .../bonus/service/IBonusSettleService.java | 6 -- .../service/impl/BonusSettleRangeHandle.java | 82 ++++--------------- .../service/impl/BonusSettleServiceImpl.java | 9 -- 6 files changed, 16 insertions(+), 103 deletions(-) diff --git a/bd-api/bd-api-bonus/src/main/java/com/hzs/bonus/settle/IMemberSettleBonusApi.java b/bd-api/bd-api-bonus/src/main/java/com/hzs/bonus/settle/IMemberSettleBonusApi.java index b028fd00..965c3a56 100644 --- a/bd-api/bd-api-bonus/src/main/java/com/hzs/bonus/settle/IMemberSettleBonusApi.java +++ b/bd-api/bd-api-bonus/src/main/java/com/hzs/bonus/settle/IMemberSettleBonusApi.java @@ -1,7 +1,6 @@ package com.hzs.bonus.settle; import com.hzs.common.core.domain.R; -import com.hzs.common.domain.member.bonus.CuMemberRetail; import com.hzs.common.domain.sale.order.SaOrder; import java.util.Date; @@ -44,9 +43,4 @@ public interface IMemberSettleBonusApi { void calculateCuMemberRetailRangeBonusBySaOrder(); - /* - * 根据会员查询会员的 大小区盒数、业绩 - **/ - R queryValidateBoxOrAchieve(Long pkMember); - } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java index 973bb95b..884e6984 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/controller/manage/CuMemberSettleController.java @@ -232,17 +232,6 @@ public class CuMemberSettleController extends BaseController { return AjaxResult.success(); } - /** - * 秒接结算业绩,仅用于测试 - * w - * - * @return AjaxResult - */ - @GetMapping("/validate/{pkMember}") - public TableDataInfo validateBigBox(@PathVariable("pkMember") Long pkMember) { - return getDataTable(Collections.singletonList(bonusSettleService.queryValidateBoxOrAchieve(pkMember))); - } - /** * 秒接结算业绩,仅用于测试 * diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/provider/MemberSettleBonusProvider.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/provider/MemberSettleBonusProvider.java index ab5db008..ec2271ab 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/provider/MemberSettleBonusProvider.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/provider/MemberSettleBonusProvider.java @@ -9,7 +9,6 @@ import com.hzs.bonus.bonus.service.ICuMemberRetailLogService; import com.hzs.bonus.settle.IMemberSettleBonusApi; import com.hzs.common.core.domain.R; import com.hzs.common.core.utils.DateUtils; -import com.hzs.common.domain.member.bonus.CuMemberRetail; import com.hzs.common.domain.member.bonus.CuMemberRetailLog; import com.hzs.common.domain.sale.order.SaOrder; import lombok.extern.slf4j.Slf4j; @@ -118,8 +117,4 @@ public class MemberSettleBonusProvider implements IMemberSettleBonusApi { } } - @Override - public R queryValidateBoxOrAchieve(Long pkMember) { - return R.ok(iBonusSettleService.queryValidateBoxOrAchieve(pkMember)); - } } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusSettleService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusSettleService.java index 784cdb0f..a2281c47 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusSettleService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/IBonusSettleService.java @@ -1,6 +1,5 @@ package com.hzs.bonus.bonus.service; -import com.hzs.common.domain.member.bonus.CuMemberRetail; import com.hzs.common.domain.sale.ext.SaOrderExt; import java.util.List; @@ -28,9 +27,4 @@ public interface IBonusSettleService { **/ void repeatCuMemberBonusByExpand(String settleDate, List saOrderExtList); - /* - * 根据会员查询会员的 大小区盒数、业绩 - **/ - CuMemberRetail queryValidateBoxOrAchieve(Long pkMember); - } 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 b046a598..ab169a02 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 @@ -576,62 +576,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } - /** - * 查询会员验证大小区,区域算法2种条件,1 实际满足V5 1种是满足 30w 小区10w - */ - CuMemberRetail queryValidateBoxOrAchieve(int currentPeriod, int beforePeriod, Long pkMember) { - CuMemberRetail cuMemberRetail = new CuMemberRetail(); - String rangeTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + beforePeriod; - String secondRangeTableName = TableNameConstants.CU_MEMBER_RETAIL_S + currentPeriod; - List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRange(rangeTableName, secondRangeTableName, pkMember); - List cuMemberRangeExtList = new ArrayList<>(); - CuMemberRetailRangeExt targetMemberRangeExt = null; - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) { - if (cuMemberRetailRangeExt.getPkParent().equals(pkMember)) { - cuMemberRangeExtList.add(cuMemberRetailRangeExt); - } else { - targetMemberRangeExt = cuMemberRetailRangeExt; - } - } - if (targetMemberRangeExt == null) { - return null; - } - // 计算大区盒数、小区盒数 - int bigBoxNum = targetMemberRangeExt.getConsumeBoxNum(); - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { - int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum() - - cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum(); - if (areaBoxNum > bigBoxNum) { - bigBoxNum = areaBoxNum; - } - } - // 实际盒数去掉注水 - int realBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - - targetMemberRangeExt.getBigBoxNum() - targetMemberRangeExt.getSmallBoxNum(); - int smallBoxNum = realBoxNum - bigBoxNum; - cuMemberRetail.setRealBoxNum(realBoxNum); - cuMemberRetail.setBigBoxNum(bigBoxNum); - cuMemberRetail.setSmallBoxNum(smallBoxNum); - // 计算大小区业绩 - BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { - BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getTeamMonthPv()); - if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { - consumeBigPv = consumePv; - } - } - BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); - cuMemberRetail.setTeamMonthPv(ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), targetMemberRangeExt.getTeamMonthPv())); - cuMemberRetail.setBigAreaPv(consumeBigPv); - cuMemberRetail.setSmallAreaPv(smallAreaPv); - cuMemberRetail.setValidateFlag(Boolean.FALSE); - if ((cuMemberRetail.getRealBoxNum() >= 2400 && cuMemberRetail.getSmallBoxNum() >= 500) || - (ComputeUtil.compareValue(cuMemberRetail.getTeamMonthPv(), BigDecimal.valueOf(46875)) && ComputeUtil.compareValue(cuMemberRetail.getSmallAreaPv(), BigDecimal.valueOf(15625)))) { - cuMemberRetail.setValidateFlag(Boolean.TRUE); - } - return cuMemberRetail; - } - void calculateRangeEvBonus(Map cuMemberBonusMap, BonusConfigDTO bonusConfigDTO, Integer period, Map memberRangeExtMap, List cuMemberBonusPushList, List bdWaresBonusExtList, SaOrderExt saOrderExt) { CuMemberRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); if (ComputeUtil.compareValue(saOrderExt.getOrderAssAchieve(), BigDecimal.valueOf(15.625))) { @@ -926,23 +870,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 注水大区如果大则使用注水盒数为大区 bigBoxNum = targetMemberRangeExt.getBigBoxNum(); } + if (targetMemberRangeExt.getSmallBoxNum() > bigBoxNum) { + // 注水小区如果大则使用注水盒数为大区 + bigBoxNum = targetMemberRangeExt.getSmallBoxNum(); + } // 秒结补全直推数据,此处秒结和日结可以使用同一逻辑 for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); } - // 最新确认逻辑,计算大小区时,需要去掉注水 // 伞下团队累计盒数 + 自己消费盒数 - int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum() - - cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum(); + int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum(); if (areaBoxNum > bigBoxNum) { // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 bigBoxNum = areaBoxNum; } } - // 小区盒数 - int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - bigBoxNum; + // 小区盒数(团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数) + int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() + + targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - bigBoxNum; if (smallBoxNum >= bdGrade.getBoxSmallTotal()) { // 小区盒数 大于等于 升级小区盒数 CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade); @@ -1114,23 +1061,26 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 注水大区如果大则使用注水盒数为大区 bigBoxNum = targetMemberRangeExt.getBigBoxNum(); } + if (targetMemberRangeExt.getSmallBoxNum() > bigBoxNum) { + // 注水小区如果大则使用注水盒数为大区 + bigBoxNum = targetMemberRangeExt.getSmallBoxNum(); + } // 秒结补全直推数据,此处秒结和日结可以使用同一逻辑 for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); } - // 最新确认逻辑,计算大小区时,需要去掉注水 // 伞下团队累计盒数 + 自己消费盒数 - int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum() - - cuMemberRetailRangeExt.getBigBoxNum() - cuMemberRetailRangeExt.getSmallBoxNum(); + int areaBoxNum = cuMemberRetailRangeExt.getTeamBoxNum() + cuMemberRetailRangeExt.getConsumeBoxNum(); if (areaBoxNum > bigBoxNum) { // 实际订单累计盒数 大于 累计消费盒数,实际订单累计盒数为大区 bigBoxNum = areaBoxNum; } } - // 小区盒数 - int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() - bigBoxNum; + // 小区盒数(团队累计盒数 + 自消费累计盒数 + 两个注水虚拟盒数 - 大市场盒数) + int smallBoxNum = targetMemberRangeExt.getTeamBoxNum() + targetMemberRangeExt.getConsumeBoxNum() + + targetMemberRangeExt.getBigBoxNum() + targetMemberRangeExt.getSmallBoxNum() - bigBoxNum; if (smallBoxNum >= bdGrade.getBoxSmallTotal()) { // 小区盒数 大于等于 升级小区盒数 CuMemberGrade cuMemberGrade = getCuMemberGrade(period, targetMemberRangeExt, bdGrade); 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 f853565d..697d48f6 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 @@ -294,15 +294,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService { } } - @Override - public CuMemberRetail queryValidateBoxOrAchieve(Long pkMember) { - String settleDate = DateUtils.parseDateToFormat(DateUtils.YYYY_MM_DD, DateUtils.currentDate()); - String beforeDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS)); - int currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDate).getPkId(); - int beforePeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(beforeDay).getPkId(); - return bonusSettleRangeHandle.queryValidateBoxOrAchieve(currentPeriod, beforePeriod, pkMember); - } - private Map getWeekMemberBonusMap(String settleDate, Integer period) { // 根据结算日期获取周期的期间,用于海外 String recentlyMonday = DateUtils.getRecentlyTuesday(settleDate);