From a2e0c521aab77560f9f07409782d9ebc4f4e5373 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sun, 28 Sep 2025 09:04:49 +0800 Subject: [PATCH 01/41] =?UTF-8?q?##=20=E6=97=A5=E7=BB=93=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=B8=9A=E7=BB=A9=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/bonus/achieve/CuMemberRetailRangeMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 89c84f4a..3d650dc1 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 @@ -949,7 +949,7 @@ gift_pay_time, bw.awards_value, bw.awards_name - from #{rangeTableName} a + from ${rangeTableName} a inner join bd_awards bw on bw.pk_id = a.pk_awards left join bd_vertex bv From 18f138caf19c1359d6491272d5c1eec8d89eb175 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Sun, 28 Sep 2025 09:28:28 +0800 Subject: [PATCH 02/41] =?UTF-8?q?##=20=E5=89=8D=E5=8F=B0=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/controller/api/ApiMemberController.java | 4 ++-- .../base/controller/manage/CuMemberController.java | 11 ++++++----- .../hzs/member/base/mapper/CuMemberRetailMapper.java | 6 +++--- .../member/base/service/ICuMemberRetailService.java | 6 +++--- .../base/service/impl/CuMemberRetailServiceImpl.java | 6 +++--- .../vo/{memberPointVO.java => MemberPointVO.java} | 2 +- .../mapper/member/base/CuMemberRetailMapper.xml | 4 ++-- 7 files changed, 20 insertions(+), 19 deletions(-) rename bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/{memberPointVO.java => MemberPointVO.java} (97%) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java index a558392a..2804cded 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java @@ -465,11 +465,11 @@ public class ApiMemberController extends BaseController { log.error("当前表名不存在{}",settleTableName); return AjaxResult.error("数据查询错误,请联系客服处理"); } - List list = iCuMemberRetailService.getMemberPointByUserId(settleTableName,userId); + List list = iCuMemberRetailService.getMemberPointByUserId(settleTableName,userId); if (CollectionUtil.isEmpty(list)) { return AjaxResult.success(); } - memberPointVO memberPointVO = list.get(0); + MemberPointVO memberPointVO = list.get(0); memberPointVO.setMemberSettlePeriod(csPeriod.getSettleDate()); startPage(); return AjaxResult.success(memberPointVO); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java index b593cd6e..abeabc42 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java @@ -11,6 +11,7 @@ import com.hzs.common.core.constant.CountryConstants; import com.hzs.common.core.constant.EnumsPrefixConstants; import com.hzs.common.core.constant.TableNameConstants; import com.hzs.common.core.constant.VertexConstants; +import com.hzs.common.core.constant.msg.CommonMsgConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.*; @@ -799,7 +800,7 @@ public class CuMemberController extends BaseController { public AjaxResult memberPoint(String memberCode,Long memberSettlePeriodId,String sort,String sortColumn) { if (memberSettlePeriodId == null) { log.error("参数错误{}", memberSettlePeriodId); - return AjaxResult.error(); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); } CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); log.info("会员结算表信息{}",csPeriod); @@ -809,9 +810,9 @@ public class CuMemberController extends BaseController { Integer isFind = iCuMemberRetailService.getFindCuMemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前表名不存在{}",settleTableName); - return AjaxResult.error(); + return AjaxResult.error("当前会员日结表信息不存在"); } - List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); list.forEach(item -> { item.setMemberSettlePeriod(csPeriod.getSettleDate()); }); @@ -830,11 +831,11 @@ public class CuMemberController extends BaseController { log.info("会员结算表信息{}",csPeriod); String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); log.info("会员结算表名称{}",settleTableName); - List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,param.getMemberCode(),param.getSort(),param.getSortColumn()); + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,param.getMemberCode(),param.getSort(),param.getSortColumn()); list.forEach(item -> { item.setMemberSettlePeriod(csPeriod.getSettleDate()); }); - ExcelUtil util = new ExcelUtil<>(memberPointVO.class); + ExcelUtil util = new ExcelUtil<>(MemberPointVO.class); util.exportExcel(response, list, "会员点位信息"); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java index 6f4411e4..731751c1 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java @@ -3,7 +3,7 @@ package com.hzs.member.base.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.base.CuMemberRetail; -import com.hzs.member.base.vo.memberPointVO; +import com.hzs.member.base.vo.MemberPointVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -20,7 +20,7 @@ public interface CuMemberRetailMapper extends BaseMapper { Integer getFindCumemberRetailDetail(@Param("settleTableName") String settleTableName); - List getMemberPointByMemberCode(@Param("settleTableName") String settleTableName, @Param("memberCode") String memberCode,@Param("sort") String sort,@Param("sortColumn") String sortColumn); + List getMemberPointByMemberCode(@Param("settleTableName") String settleTableName, @Param("memberCode") String memberCode, @Param("sort") String sort, @Param("sortColumn") String sortColumn); - List getMemberPointByUserId(@Param("settleTableName") String settleTableName, @Param("userId") Long userId); + List getMemberPointByUserId(@Param("settleTableName") String settleTableName, @Param("userId") Long userId); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java index 1b9e1fb1..c69e6f38 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java @@ -1,7 +1,7 @@ package com.hzs.member.base.service; -import com.hzs.member.base.vo.memberPointVO; +import com.hzs.member.base.vo.MemberPointVO; import java.util.List; @@ -17,7 +17,7 @@ public interface ICuMemberRetailService{ Integer getFindCuMemberRetailDetail(String settleTableName); - List getMemberPointByMemberCode(String settleTableName, String memberCode,String sort,String sortColumn); + List getMemberPointByMemberCode(String settleTableName, String memberCode, String sort, String sortColumn); - List getMemberPointByUserId(String settleTableName, Long userId); + List getMemberPointByUserId(String settleTableName, Long userId); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java index 09070d76..477e39ff 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.domain.member.base.CuMemberRetail; import com.hzs.member.base.mapper.CuMemberRetailMapper; import com.hzs.member.base.service.ICuMemberRetailService; -import com.hzs.member.base.vo.memberPointVO; +import com.hzs.member.base.vo.MemberPointVO; import org.springframework.stereotype.Service; import java.util.List; @@ -26,12 +26,12 @@ public class CuMemberRetailServiceImpl extends ServiceImpl getMemberPointByMemberCode(String settleTableName, String memberCode, String sort, String sortColumn) { + public List getMemberPointByMemberCode(String settleTableName, String memberCode, String sort, String sortColumn) { return baseMapper.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); } @Override - public List getMemberPointByUserId(String settleTableName, Long userId) { + public List getMemberPointByUserId(String settleTableName, Long userId) { return baseMapper.getMemberPointByUserId(settleTableName,userId); } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/memberPointVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberPointVO.java similarity index 97% rename from bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/memberPointVO.java rename to bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberPointVO.java index 3f6d29af..80761fb6 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/memberPointVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/MemberPointVO.java @@ -11,7 +11,7 @@ import java.util.Date; @Data @AllArgsConstructor @NoArgsConstructor -public class memberPointVO { +public class MemberPointVO { /** * 会员编号 */ diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml index 7224590f..38a5ae4b 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml @@ -69,7 +69,7 @@ from user_tables where table_name = upper(#{settleTableName}) - SELECT cmr.MEMBER_CODE, cmr.MEMBER_NAME, @@ -87,7 +87,7 @@ ORDER BY cmr.${sortColumn} ${sort} - SELECT cmr.MEMBER_CODE, cmr.MEMBER_NAME, From 0a018f5539ceb28426798d6e3057faec2e8aae8f Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Sun, 28 Sep 2025 11:12:29 +0800 Subject: [PATCH 03/41] =?UTF-8?q?##=20Opt=20-=20=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E5=8A=A8=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/achieve/CuMemberRetailRangeMapper.xml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml index 94b2e756..36e6684e 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml @@ -451,11 +451,14 @@ cu.pk_id, cu.MEMBER_CODE, mr.ENABLE_STATUS, + NVL( mr.CONSUME_PV, 0 ) consumePv, - NVL( mr.NEW_CONSUME_PV, 0 ) newConsumePv, - NVL( mr.All_TEAM_CONSUME_PV, 0 ) teamConsumePv, - NVL( mr.All_TEAM_NEW_PV, 0 ) teamNewPv, - NVL( mrs.ALL_NEW_CONSUME_PV, 0 ) sNewConsumePv, + NVL( mr.REG_CONSUME_NEW_PV + mr.REP_CONSUME_NEW_PV, 0 ) newConsumePv, + + NVL( mr.TEAM_CONSUME_PV, 0 ) teamConsumePv, + NVL( mr.REG_TEAM_NEW_PV + mr.REP_TEAM_NEW_PV, 0 ) teamNewPv, + + NVL( mrs.ALL_CONSUME_NEW_PV, 0 ) sNewConsumePv, NVL( mrs.ALL_TEAM_NEW_PV, 0 ) sTeamNewPv FROM cu_member cu 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 04/41] =?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 From 215106c4ac20597d5263b848c173b59e73cba4d5 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Sun, 28 Sep 2025 12:22:51 +0800 Subject: [PATCH 05/41] =?UTF-8?q?##=20Opt=20-=20=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E5=8A=A8=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/vo/MemberBonusFirstPurchaseVO.java | 121 +++--------------- 1 file changed, 20 insertions(+), 101 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java index 0e7cfaa5..a6e17c44 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/vo/MemberBonusFirstPurchaseVO.java @@ -1,6 +1,7 @@ package com.hzs.bonus.bonus.vo; import com.hzs.common.core.annotation.BigDecimalFormat; +import com.hzs.common.core.annotation.Excel; import lombok.*; import java.math.BigDecimal; @@ -15,116 +16,34 @@ import java.math.BigDecimal; @NoArgsConstructor public class MemberBonusFirstPurchaseVO extends PubMemberBonusVO { -// /** -// * 直推收益 -// */ -// private BigDecimal directIncome; -// -// /** -// * 拓展收益 -// */ -// private BigDecimal expandIncome; -// -// /** -// * 分红收益 -// */ -// private BigDecimal shareIncome; -// -// /** -// * 报单收益 -// */ -// private BigDecimal serviceIncome; + /** + * 注册直推收益-众康 + */ + @BigDecimalFormat + private BigDecimal directIncome; /** - * 商城重消 + * 阶段收益-众康 */ - @BigDecimalFormat("#0.00") - private BigDecimal backPoints; -// -// /** -// * 首购实发小计 -// */ -// private BigDecimal purRealSubtotal; -// -// /** -// * 复购推荐收益 -// */ -// private BigDecimal repurPushIncome; -// -// /** -// * 复购拓展收益 -// */ -// private BigDecimal repurExpandIncome; + @BigDecimalFormat + private BigDecimal storeIncome; /** - * 复购级差收益 + * 复购见点收益-众康 */ - @BigDecimalFormat("#0.00") - private BigDecimal repurRangeIncome; - -// /** -// * 复购实发小计 -// */ -// private BigDecimal repurRealSubtotal; -// -// /** -// * 乐学直推收益 -// */ -// private BigDecimal globalPoints; - - - /** - * 新零售直推收益 - */ - @BigDecimalFormat("#0.00") - private BigDecimal retailRangeIncome; - - /** - * 新零售平级收益 - */ - @BigDecimalFormat("#0.00") - private BigDecimal retailSameLevelIncome; - - /** - * 新零售区域分红 - */ - @BigDecimalFormat("#0.00") - private BigDecimal retailAreaIncome; - - /** - * 福利级差收益 - */ - @BigDecimalFormat("#0.00") - private BigDecimal retailBenefitRangeIncome; - - /** - * 复购级差收益 - */ - @BigDecimalFormat("#0.00") - private BigDecimal retailMonthRepurchaseIncome; - - /** - * 培育津贴 - */ - @BigDecimalFormat("#0.00") - private BigDecimal coachIncome; - - /** - * 福利分红收益总计 - */ - @BigDecimalFormat("#0.00") - private BigDecimal retailBenefitIncomeTotal; - - /** - * 新零售收益小计 - */ - @BigDecimalFormat("#0.00") - private BigDecimal retailRealSubtotal; + @BigDecimalFormat + private BigDecimal globalPoints; /** * 实发收益总计 */ - @BigDecimalFormat("#0.00") - private BigDecimal realIncomeTotal; + @BigDecimalFormat + private BigDecimal realIncomeTotalOri; + + /** + * 新零售收益小计 + */ + @BigDecimalFormat + private BigDecimal retailRealSubtotal; } From d60a2f2be4e1ad81bcbd98d9212b2871db020bb4 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Sun, 28 Sep 2025 13:40:07 +0800 Subject: [PATCH 06/41] =?UTF-8?q?##=20Opt=20-=20=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E5=8A=A8=E6=80=81-=E5=8F=96=E6=B6=88=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E5=8C=BA&=E5=8F=96=E6=B6=88=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E4=B8=AA=E4=BA=BA=E4=B8=9A=E7=BB=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/retail/member/utils/DataStatisticsUtil.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java index 00a4446a..07965a94 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java @@ -44,7 +44,7 @@ public class DataStatisticsUtil { .build(); } calcDetailVOTotalField(detailVOList, pkId); - addVirtualBranch(detailVOList, pkId); +// addVirtualBranch(detailVOList, pkId); CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId); if (EYesNo.NO.getIntValue() == cuMember.getIsActivate()) { // 昨日非激活 排除昨日日结表数据 @@ -69,9 +69,14 @@ public class DataStatisticsUtil { */ public static void calcDetailVOTotalField(List detailVOList, Long pkId) { detailVOList.forEach(detailVO -> { +// detailVO.setTotalPv( +// detailVO.getConsumePv() +// .add(detailVO.getTeamConsumePv()) +// .add(detailVO.getSNewConsumePv()) +// .add(detailVO.getSTeamNewPv()) +// ); detailVO.setTotalPv( - detailVO.getConsumePv() - .add(detailVO.getTeamConsumePv()) + detailVO.getTeamConsumePv() .add(detailVO.getSNewConsumePv()) .add(detailVO.getSTeamNewPv()) ); @@ -155,7 +160,7 @@ public class DataStatisticsUtil { private static CuMemberRetailDataStatisticsDetailVO getBigRangePVDetailVO(List detailVOList, Long pkId) { return detailVOList.stream() - .filter(vo -> !vo.getPkId().equals(pkId)) +// .filter(vo -> !vo.getPkId().equals(pkId)) .max(Comparator.comparing(CuMemberRetailDataStatisticsDetailVO::getTotalPv)) .orElse(null); } From 75d68a34d8b6488ef9cce14aa285ed804034a45e Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sun, 28 Sep 2025 13:59:17 +0800 Subject: [PATCH 07/41] =?UTF-8?q?##=20=E5=A5=96=E8=A1=94=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/domain/system/config/BdAwards.java | 36 +++---------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdAwards.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdAwards.java index 1f4b0000..40f0a0a7 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdAwards.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdAwards.java @@ -171,44 +171,16 @@ public class BdAwards extends BaseEntity { private BigDecimal totalCheck; /** - * 分红小区考核PV - */ - @TableField("SHARE_COMMUNITY_CHECK") - private BigDecimal shareCommunityCheck; - - /** - * 分红小区考核结束PV - */ - @TableField("SHARE_COMMUNITY_CHECK_END") - private BigDecimal shareCommunityCheckEnd; - - /** - * 分红累计业绩 - */ - @TableField("SHARE_TOTAL_CHECK") - private BigDecimal shareTotalCheck; - - /** - * 福利级差比例 -- 月度级差 + * 领导奖级差比例 */ @TableField("RANGE_RATIO") private BigDecimal rangeRatio; /** - * 复购级差比例 -- 月度复购级差 + * 领导奖平级比例 */ - @TableField("MONTH_REPURCHASE_RATIO") - private BigDecimal monthRepurchaseRatio; + @TableField("SAME_LEVEL_RATIO") + private BigDecimal sameLevelRatio; - /** - * 福利平均比例 -- 月度分红平均 - */ - @TableField("BENEFIT_AVG_RATIO") - private BigDecimal benefitAvgRatio; - /** - * 福利加权比例 -- 月度分红加权 - */ - @TableField("BENEFIT_SHARE_RATIO") - private BigDecimal benefitShareRatio; } From 5c8c950931bc19db2938c95d3f995fc0ab619342 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sun, 28 Sep 2025 13:59:49 +0800 Subject: [PATCH 08/41] =?UTF-8?q?##=20=E5=A5=96=E8=A1=94=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 291 +++--------------- .../achieve/CuMemberRetailRangeMapper.xml | 10 - .../achieve/ext/CuMemberRetailRangeExt.java | 40 --- 3 files changed, 41 insertions(+), 300 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 0a9f8330..23498c70 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 @@ -99,12 +99,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 会员奖衔升级记录 List cuMemberAwardsList = new ArrayList<>(); - // 计算自己奖衔等 - calculateGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, secondRangeTableName, - cuMemberAwardsList, sourceMemberRangeExt); - // 计算团队业绩、计算奖衔 - cuMemberAwardsList.addAll(calculateRetailRangeGradeAwards(currentPeriod, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, - secondRangeTableName)); // 奖金处理 List cuMemberBonusRangeList = new ArrayList<>(); @@ -345,9 +339,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { sourceMember.setNewConsumeAmount(orderAmount); sourceMember.setConsumeAmount(sourceMember.getConsumeAmount().add(orderAmount)); sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount)); - // TODO 自己计算奖衔 - this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember); - // TODO 累计团队业绩、金额 + 计算奖衔 +// // 自己计算奖衔 +// this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember); + // 累计团队业绩、金额 + 计算奖衔 this.calculateParentAwards(period, memberRangeExtMap, rangeTableName, sourceMember, saOrderExt, retailAwardsMap); if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() @@ -429,42 +423,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } - /** - * 计算团队奖衔 -- 秒结、日结 - */ - public List calculateRetailRangeGradeAwards(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, - Map retailAwardsMap, String secondRangeTableName) { - // 会员奖衔升级列表 - List cuMemberAwardsList = new ArrayList<>(); - // 订单会员 - CuMemberRetailRangeExt sourceMemberRangeExt = memberRangeExtMap.get(saOrderExt.getPkMember()); - // 订单会员的推荐人 - CuMemberRetailRangeExt targetMemberRangeExt = memberRangeExtMap.get(sourceMemberRangeExt.getPkParent()); - - BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); - BigDecimal orderAmount = saOrderExt.getOrderAmount(); - while (null != targetMemberRangeExt) { - // 累计业绩,不管激活不激活都处理,兼容不激活判断显示有问题 - targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().add(orderAchieve)); - targetMemberRangeExt.setAllTeamConsumePv(targetMemberRangeExt.getAllTeamConsumePv().add(orderAchieve)); - targetMemberRangeExt.setAllTeamMonthPv(targetMemberRangeExt.getAllTeamMonthPv().add(orderAchieve)); - - // 累计业绩 - targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamNewPv(), orderAchieve)); - targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumePv(), orderAchieve)); - targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), orderAchieve)); - // 累计金额 - targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamNewAmount(), orderAmount)); - targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount)); - targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthAmount(), orderAmount)); - // 计算 - calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, - secondRangeTableName, cuMemberAwardsList, targetMemberRangeExt); - targetMemberRangeExt = memberRangeExtMap.get(targetMemberRangeExt.getPkParent()); - } - return cuMemberAwardsList; - } - /** * 计算奖衔 -- 日结、秒结 */ @@ -492,86 +450,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } break; } - -// // 校验大小区会员数据 -// List cuMemberRangeExtList = null; -// // 校验累计小部门会员数据 -// List cuMemberRetailRangeExtList = null; -// // 计算分红奖衔 -// while (true) { -// // 当月奖衔值 + 5,获取下一个奖衔值 -// int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; -// if (retailAwardsMap.containsKey(awardsValue)) { -// BdAwards bdAwards = retailAwardsMap.get(awardsValue); -// // 先验证累计业绩 -// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { -// // 再验证小区,计算小区业绩(拉取直推会员数据) -// if (null == cuMemberRangeExtList) { -// if (null != secondRangeTableName) { -// // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 -// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); -// } else { -// // 昨日结算表,查询订单会员直推数据 -// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); -// } -// } -// // 本人月消费业绩(默认为大区) -// BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); -// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { -// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { -// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); -// } -// // 月累计业绩 = 本人月消费业绩 + 团队月消费业绩 -// BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()); -// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { -// // 月累计业绩 > 大区业绩,则月累计就成为大区了 -// consumeBigPv = consumePv; -// } -// } -// -// // 小区业绩 = 本人月消费业绩 + 团队月消费业绩 - 大区业绩 -// BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); -// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { -// // 小区业绩 >= 小区考核业绩 -// if (bdAwards.getPlaceDeptNum() > 0) { -// // 验证是否有多个区满足业绩 -// if (null == cuMemberRetailRangeExtList) { -// // 非秒结需要查询日结相关数据,秒结表使用上面查出的数据就可以 -// if (null != secondRangeTableName) { -// // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 -// cuMemberRetailRangeExtList = cuMemberRangeExtList; -// } else { -// // 昨日结算表,查询订单会员直推数据 -// cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); -// } -// } -// -// int enoughNum = 0; -// if (ComputeUtil.compareValue(targetMemberRangeExt.getMonthConsumePv(), bdAwards.getShareCommunityCheck())) { -// enoughNum += 1; -// } -// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { -// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { -// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); -// } -// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()), bdAwards.getShareCommunityCheck())) { -// // 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩,则满足条件小部门 +1 -// enoughNum += 1; -// } -// } -// if (bdAwards.getPlaceDeptNum() > enoughNum) { -// break; -// } -// } -// cuMemberAwardsList.add(getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue(), targetMemberRangeExt.getPkShareAwards())); -// targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); -// targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); -// continue; -// } -// } -// } -// break; -// } } /** @@ -590,17 +468,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); BigDecimal orderAmount = saOrderExt.getOrderAmount(); while (targetMemberRangeExt != null) { - // 累计盒数、业绩,不管激活不激活都处理,兼容不激活判断显示有问题 - if (isSecond) { - // 当天,秒结处理 - targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().subtract(orderAchieve)); - } else { - // 非当天,日结处理 - targetMemberRangeExt.setAllTeamNewPv(targetMemberRangeExt.getAllTeamNewPv().subtract(orderAchieve)); - targetMemberRangeExt.setAllTeamConsumePv(targetMemberRangeExt.getAllTeamConsumePv().subtract(orderAchieve)); - targetMemberRangeExt.setAllTeamMonthPv(targetMemberRangeExt.getAllTeamMonthPv().subtract(orderAchieve)); - } - // 累计金额 targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamNewAmount(), orderAmount)); targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount)); @@ -643,80 +510,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } break; } - -// // 计算分红奖衔 -// while (true) { -// // 当月奖衔值 + 5,获取下一个奖衔值 -// int awardsValue = targetMemberRangeExt.getShareAwardsValue() + 5; -// if (retailAwardsMap.containsKey(awardsValue)) { -// BdAwards bdAwards = retailAwardsMap.get(awardsValue); -// // 先验证累计业绩 -// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), targetMemberRangeExt.getMonthConsumePv()), bdAwards.getShareTotalCheck())) { -// // 验证小区,计算小区业绩(拉取直推会员数据) -// List cuMemberRangeExtList; -// if (secondRangeTableName != null) { -// // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 -// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); -// } else { -// // 昨日结算表,查询订单会员直推数据 -// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMemberRangeExt.getPkMember()); -// } -// // 本人月消费业绩(默认为大区) -// BigDecimal consumeBigPv = targetMemberRangeExt.getMonthConsumePv(); -// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { -// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { -// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); -// } -// // 月累计业绩 = 本人月消费业绩 + 团队月消费业绩 -// BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()); -// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { -// // 月累计业绩 > 大区业绩,则月累计就成为大区了 -// consumeBigPv = consumePv; -// } -// } -// -// // 小区业绩 = 本人月消费业绩 + 团队月消费业绩 - 大区业绩 -// BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMemberRangeExt.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMemberRangeExt.getTeamMonthPv(), consumeBigPv)); -// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { -// // 小区业绩 >= 小区考核业绩 -// if (bdAwards.getPlaceDeptNum() > 0) { -// // 验证是否有多个区满足业绩 -// List cuMemberRetailRangeExtList; -// if (secondRangeTableName != null) { -// // 会员表 关联 秒结表 和 昨日结算表,查询订单会员直推数据 -// cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeExtByParent(rangeTableName, secondRangeTableName, targetMemberRangeExt.getPkMember()); -// } else { -// // 昨日结算表,查询订单会员直推数据 -// cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMemberRangeExt.getPkMember(), bdAwards.getShareCommunityCheck()); -// } -// -// int enoughNum = 0; -// if (ComputeUtil.compareValue(targetMemberRangeExt.getMonthConsumePv(), bdAwards.getShareCommunityCheck())) { -// enoughNum += 1; -// } -// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { -// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { -// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); -// } -// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()), bdAwards.getShareCommunityCheck())) { -// // 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩,则满足条件小部门 +1 -// enoughNum += 1; -// } -// } -// if (bdAwards.getPlaceDeptNum() > enoughNum) { -// break; -// } -// } -// CuMemberAwards cuMemberRetailAwards = getCuMemberRetailAwards(targetMemberRangeExt, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue(), targetMemberRangeExt.getPkShareAwards()); -// cuMemberShareAwardsMap.put(cuMemberRetailAwards.getPkMember() + "_" + cuMemberRetailAwards.getNewLevel(), cuMemberRetailAwards); -// targetMemberRangeExt.setShareAwardsValue(bdAwards.getAwardsValue()); -// targetMemberRangeExt.setPkShareAwards(bdAwards.getPkId()); -// continue; -// } -// } -// } -// break; -// } } @@ -1297,42 +1090,40 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { private void calculateAwards(Integer period, Map memberRangeExtMap, String rangeTableName, SaOrderExt saOrderExt, Map retailAwardsMap, List cuMemberAwardsList, CuMemberRetailRangeExt targetMember) { -// // 校验大小区会员数据 -// List cuMemberRangeExtList = null; -// // 校验累计小部门会员数据 -// List cuMemberRetailRangeExtList = null; -// // 计算分红奖衔 -// while (true) { -// // 当月奖衔值 + 5,获取下一个奖衔值 -// int awardsValue = targetMember.getAwardsValue() + 5; -// if (retailAwardsMap.containsKey(awardsValue)) { -// BdAwards bdAwards = retailAwardsMap.get(awardsValue); -// // 先验证累计业绩 -// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(targetMember.getTeamConsumePv(), targetMember.getConsumePv()), bdAwards.getShareTotalCheck())) { -// -// -// -// // 再验证小区,计算小区业绩(拉取直推会员数据) -// if (null == cuMemberRangeExtList) { -// // 昨日结算表,查询订单会员直推数据 -// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember()); -// } -// // 本人月消费业绩(默认为大区) -// BigDecimal consumeBigPv = targetMember.getMonthConsumePv(); -// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { -// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { -// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); -// } -// // 月累计业绩 = 本人月消费业绩 + 团队月消费业绩 -// BigDecimal consumePv = ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()); -// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { -// // 月累计业绩 > 大区业绩,则月累计就成为大区了 -// consumeBigPv = consumePv; -// } -// } -// -// // 小区业绩 = 本人月消费业绩 + 团队月消费业绩 - 大区业绩 -// BigDecimal smallAreaPv = ComputeUtil.computeAdd(targetMember.getMonthConsumePv(), ComputeUtil.computeSubtract(targetMember.getTeamMonthPv(), consumeBigPv)); + // 校验大小区会员数据 + List cuMemberRangeExtList = null; + // 校验累计小部门会员数据 + List cuMemberRetailRangeExtList = null; + // 计算分红奖衔 + while (true) { + // 当月奖衔值 + 5,获取下一个奖衔值 + int awardsValue = targetMember.getAwardsValue() + 5; + if (retailAwardsMap.containsKey(awardsValue)) { + BdAwards bdAwards = retailAwardsMap.get(awardsValue); + // 先验证累计业绩 + if (ComputeUtil.compareValue(targetMember.getTeamConsumePv(), bdAwards.getTotalCheck())) { + // 团队累计业绩 >= 奖衔业绩 + // 再验证小区,计算小区业绩(拉取直推会员数据) + if (null == cuMemberRangeExtList) { + // 昨日结算表,查询会员直推数据 + cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember()); + } + // 大区 + BigDecimal consumeBigPv = BigDecimal.ZERO; + for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { + if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { + cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); + } + // 累计业绩 = 团队累计消费业绩 + BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv(); + if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { + // 累计业绩 > 大区业绩,则累计就成为大区 + consumeBigPv = consumePv; + } + } + +// // 小区业绩 = 团队累计消费业绩 - 大区业绩 +// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv); // if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { // // 小区业绩 >= 小区考核业绩 // if (bdAwards.getPlaceDeptNum() > 0) { @@ -1364,10 +1155,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // targetMember.setPkAwards(bdAwards.getPkId()); // continue; // } -// } -// } -// break; -// } + } + } + break; + } } /** 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 c50b3307..40c0e08a 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 @@ -59,15 +59,8 @@ - - - - - - - @@ -834,9 +827,6 @@ bw.awards_value, bw.awards_name, bw.range_ratio, - bw.month_repurchase_ratio, - bw.benefit_avg_ratio, - bw.benefit_share_ratio, bws.awards_value share_awards_value from ( select * diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java index 97b019a1..3dc5bb72 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java @@ -40,21 +40,6 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange { */ private BigDecimal rangeRatio; - /** - * 复购级差比例 - */ - private BigDecimal monthRepurchaseRatio; - - /** - * 分红平均比例 - */ - private BigDecimal benefitAvgRatio; - - /** - * 分红加权比例 - */ - private BigDecimal benefitShareRatio; - /** * 小区业绩 */ @@ -69,32 +54,7 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange { */ private BigDecimal coachRatio; - /** - * 团队累计消费pv(不管激活,全累计) -- 日结使用 - */ - private BigDecimal allTeamConsumePv; - /** - * 团队月累计消费pv(不管激活,全累计) -- 日结使用 - */ - private BigDecimal allTeamMonthPv; - // 秒结 start - /** - * 本日-个人所有新增金额 - */ - private BigDecimal allConsumeNewAmount; - /** - * 本日-个人所有新增业绩 - */ - private BigDecimal allConsumeNewPv; - /** - * 本日-团队所有新增金额 - */ - private BigDecimal allTeamNewAmount; - /** - * 本日-团队所有新增业绩 - */ - private BigDecimal allTeamNewPv; /** * 本日-个人注册(精品专区)新增金额 */ From 3626b3f4cc75621ef38bed992c09419f46388bb4 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Sun, 28 Sep 2025 15:27:23 +0800 Subject: [PATCH 09/41] =?UTF-8?q?##=20Opt=20-=20=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/config/service/impl/BdTradeConfigServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/impl/BdTradeConfigServiceImpl.java b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/impl/BdTradeConfigServiceImpl.java index aecaae9b..d2f5dd73 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/impl/BdTradeConfigServiceImpl.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/system/config/service/impl/BdTradeConfigServiceImpl.java @@ -2,6 +2,7 @@ package com.hzs.system.config.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.core.enums.EYesNo; @@ -132,10 +133,14 @@ public class BdTradeConfigServiceImpl extends ServiceImpl gradeTransaction(String pkGradeStr, Map gradeMap) { List gradeDetailList = new ArrayList<>(); BdTradeConfigDetailVO detailVO; + Integer defaultPkGrade = gradeMap.keySet().stream().findFirst().get(); if (StringUtils.isNotEmpty(pkGradeStr)) { String[] pkGradeList = pkGradeStr.split(","); for (String pkGrade : pkGradeList) { detailVO = new BdTradeConfigDetailVO(); + if(ObjectUtil.isEmpty(gradeMap.get(Integer.parseInt(pkGrade)))){ + pkGrade = String.valueOf(defaultPkGrade); + } detailVO.setPkGradeTrans(gradeMap.get(Integer.parseInt(pkGrade)).getPkTransaction()); gradeDetailList.add(detailVO); } From 290793236a40935cec311bceecc3e8b71ec585c7 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Sun, 28 Sep 2025 15:51:45 +0800 Subject: [PATCH 10/41] =?UTF-8?q?##=20=E6=97=A5=E7=BB=93=E5=A5=96=E8=A1=94?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CuMemberRetailRangeMapper.java | 22 +++---- .../service/ICuMemberRetailRangeService.java | 13 ++-- .../impl/CuMemberRetailRangeServiceImpl.java | 19 ++++-- .../hzs/bonus/base/mapper/CuMemberMapper.java | 9 --- .../service/impl/CuMemberServiceImpl.java | 2 - .../service/impl/BonusSettleRangeHandle.java | 59 +++++++------------ .../achieve/CuMemberRetailRangeMapper.xml | 37 ++++++------ .../mapper/bonus/base/CuMemberMapper.xml | 22 ++----- .../core/constant/MagicNumberConstants.java | 2 +- .../achieve/ext/CuMemberRetailRangeExt.java | 6 +- .../common/domain/system/config/BdAwards.java | 6 +- 11 files changed, 79 insertions(+), 118 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java index 7f065cd8..f3e2d996 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java @@ -8,8 +8,6 @@ import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import org.apache.ibatis.annotations.Param; -import java.math.BigDecimal; -import java.util.Date; import java.util.List; /** @@ -68,11 +66,6 @@ public interface CuMemberRetailRangeMapper extends BaseMapper queryCuMemberRetailRangeExtByParent(@Param("tableName") String tableName, @Param("pkParent") Long pkParent); - /** - * 查询推荐人伞下满足 - */ - List queryCuMemberRetailRangeEnoughAchieve(@Param("tableName") String tableName, @Param("pkParent") Long pkParent, @Param("achievePv") BigDecimal achievePv); - /** * 根据会员查询会员上的所有网体, 按照pkParent作为key,查询极差秒接表 */ @@ -112,19 +105,11 @@ public interface CuMemberRetailRangeMapper extends BaseMapper memberList, @Param("updateType") Integer updateType, @Param("symbol") String symbol); @@ -136,4 +121,11 @@ public interface CuMemberRetailRangeMapper extends BaseMapper listChildRetail(@Param("rangeTableName") String rangeTableName, @Param("pkParentList") List pkParentList); + /** + * 查询会员血缘下达标奖衔会员 + */ + List listChildAwards(@Param("rangeTableName") String rangeTableName, + @Param("pkAwards") Integer pkAwards, + @Param("childMemberList") List childMemberList); + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java index e9a7eb2e..8d6cba58 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java @@ -6,10 +6,8 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.sale.ext.SaOrderExt; -import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; -import java.util.Date; import java.util.List; import java.util.Map; @@ -38,11 +36,6 @@ public interface ICuMemberRetailRangeService extends IService queryCuMemberRetailRangeExtByParent(String tableName, Long pkParent); - /** - * 查询推荐人伞下满足 - */ - List queryCuMemberRetailRangeEnoughAchieve(String tableName, Long pkParent, BigDecimal achievePv); - /** * 根据会员查询会员上的所有网体, 按照pkParent作为key,查询极差秒接表 */ @@ -88,4 +81,10 @@ public interface ICuMemberRetailRangeService extends IService pkMemberList, Integer updateType, String symbol); void initMemberRetailSecondRange(String tableName, CuMemberExt member); + + /** + * 查询会员血缘下达标奖衔会员 + */ + List listChildAwards(String rangeTableName, Integer pkAwards, List childMemberList); + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java index 91841667..648a498c 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java @@ -71,11 +71,6 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl queryCuMemberRetailRangeEnoughAchieve(String tableName, Long pkParent, BigDecimal achievePv) { - return baseMapper.queryCuMemberRetailRangeEnoughAchieve(tableName, pkParent, achievePv); - } - @Override public List queryCuMemberSecondRangeParent(String rangeTableName, String secondTableName, Long pkMember) { // 查询伞上 @@ -177,4 +172,18 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl cuMemberTreeList.add(value)); return cuMemberBonusSettle.handleCutList(cuMemberTreeList); } + + @Override + public List listChildAwards(String rangeTableName, Integer pkAwards, List childMemberList) { + List checkList = new ArrayList<>(); + List> queryList = cuMemberBonusSettle.handleCutList(childMemberList, MagicNumberConstants.BATCH_QUERY_NUM); + queryList.forEach(tmpList -> { + List tmpCheckList = baseMapper.listChildAwards(rangeTableName, pkAwards, childMemberList); + if (tmpCheckList.size() > 0) { + checkList.addAll(tmpCheckList); + } + }); + return checkList; + } + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java index f5bd31ab..d845838c 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java @@ -21,15 +21,6 @@ public interface CuMemberMapper extends BaseMapper { */ int updateCuMemberRetailAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType); - /** - * 更新会员最高奖衔 - * - * @param period - * @param awardType - * @return - */ - int updateCuMemberMaxAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType); - /** * 更新会员奖衔根据临时表 * diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java index 22016d13..da9e3ba3 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java @@ -25,8 +25,6 @@ public class CuMemberServiceImpl extends ServiceImpl i @Override public void updateCuMemberRetailRangeByPeriod(Integer period) { baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue()); - // 更新会员最高奖衔 - baseMapper.updateCuMemberMaxAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue()); } @Override 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 23498c70..cb7a5263 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 @@ -339,10 +339,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { sourceMember.setNewConsumeAmount(orderAmount); sourceMember.setConsumeAmount(sourceMember.getConsumeAmount().add(orderAmount)); sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount)); -// // 自己计算奖衔 +// // 自己计算奖衔,目前业绩都只往下传,所以此处暂时不需要处理订单会员的奖衔 // this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember); // 累计团队业绩、金额 + 计算奖衔 - this.calculateParentAwards(period, memberRangeExtMap, rangeTableName, sourceMember, saOrderExt, retailAwardsMap); + cuMemberAwardsList.addAll(this.calculateParentAwards(period, memberRangeExtMap, rangeTableName, sourceMember, saOrderExt, retailAwardsMap)); if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { @@ -833,6 +833,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE, sourceMember, newRetailDetail, returnRetailDetailList); } + pointCount += newPointInt; + sourceMember.setPointCount(pointCount); + // 待激活点位 int waitPointCount = sourceMember.getWaitPointCount(); if (waitPointCount != 0) { @@ -867,7 +870,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } sourceMember.setWaitPointCount(waitPointCount); } - sourceMember.setPointCount(sourceMember.getPointCount() + newPointInt); return returnRetailDetailList; } @@ -1092,8 +1094,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { CuMemberRetailRangeExt targetMember) { // 校验大小区会员数据 List cuMemberRangeExtList = null; - // 校验累计小部门会员数据 - List cuMemberRetailRangeExtList = null; // 计算分红奖衔 while (true) { // 当月奖衔值 + 5,获取下一个奖衔值 @@ -1122,39 +1122,22 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } -// // 小区业绩 = 团队累计消费业绩 - 大区业绩 -// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv); -// if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getShareCommunityCheck())) { -// // 小区业绩 >= 小区考核业绩 -// if (bdAwards.getPlaceDeptNum() > 0) { -// // 验证是否有多个区满足业绩 -// if (null == cuMemberRetailRangeExtList) { -// // 昨日结算表,查询订单会员直推数据 -// cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeEnoughAchieve(rangeTableName, targetMember.getPkMember(), bdAwards.getShareCommunityCheck()); -// } -// -// int enoughNum = 0; -// if (ComputeUtil.compareValue(targetMember.getMonthConsumePv(), bdAwards.getShareCommunityCheck())) { -// enoughNum += 1; -// } -// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRetailRangeExtList) { -// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { -// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); -// } -// if (ComputeUtil.compareValue(ComputeUtil.computeAdd(cuMemberRetailRangeExt.getMonthConsumePv(), cuMemberRetailRangeExt.getAllTeamMonthPv()), bdAwards.getShareCommunityCheck())) { -// // 本人月消费业绩 + 团队月消费业绩 >= 小区考核业绩,则满足条件小部门 +1 -// enoughNum += 1; -// } -// } -// if (bdAwards.getPlaceDeptNum() > enoughNum) { -// break; -// } -// } -// cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.SHARE_TYPE.getValue(), targetMember.getPkShareAwards())); -// targetMember.setAwardsValue(bdAwards.getAwardsValue()); -// targetMember.setPkAwards(bdAwards.getPkId()); -// continue; -// } + // 小区业绩 = 团队累计消费业绩 - 大区业绩 + BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv); + if (ComputeUtil.compareValue(smallAreaPv, bdAwards.getCommunityCheck())) { + // 小区业绩 >= 小区考核业绩 + if (bdAwards.getPlaceDeptNum() > 0) { + // 验证每条血缘下,满足达标数量 + List checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(), + cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList())); + if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) { + cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards())); + targetMember.setPkAwards(bdAwards.getPkId()); + targetMember.setAwardsValue(bdAwards.getAwardsValue()); + continue; + } + } + } } } break; 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 40c0e08a..9aeeb940 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 @@ -59,6 +59,7 @@ + @@ -552,6 +553,7 @@ , a.pk_share_awards = b.pk_range_awards + UPDATE ${tableName} SET @@ -570,6 +572,7 @@ WHERE PK_MEMBER = #{cuMember.pkId} + UPDATE ${tableName} SET @@ -589,6 +592,7 @@ #{member.pkId} + INSERT INTO ${tableName} ("PK_MEMBER", "PK_PARENT", @@ -827,6 +831,7 @@ bw.awards_value, bw.awards_name, bw.range_ratio, + bw.same_level_ratio, bws.awards_value share_awards_value from ( select * @@ -864,24 +869,6 @@ and cm.del_flag = 0 - - + + + diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml index 66baa0b0..6f1beb34 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml @@ -106,23 +106,6 @@ a.modified_time = sysdate - - merge into cu_member a - using (select c1.* - from (select pk_member, max(new_level) pk_awards - from cu_member_awards - where period = #{period} - and award_type = #{awardType} - and del_flag = 0 - group by pk_member) c1 - inner join cu_member c2 - on c1.pk_member = c2.pk_id - and c1.pk_awards > c2.pk_max_awards) b - on (a.pk_id = b.pk_member) - when matched then - update set a.pk_max_awards = b.pk_awards, a.modified_time = sysdate - - merge into cu_member a @@ -197,9 +180,12 @@ a.modified_time = sysdate + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/MagicNumberConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/MagicNumberConstants.java index ccf25238..894be219 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/MagicNumberConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/MagicNumberConstants.java @@ -40,7 +40,7 @@ public class MagicNumberConstants { /** * 查询条数 */ - public static final Integer BATCH_QUERY_NUM = 300; + public static final Integer BATCH_QUERY_NUM = 450; /** * 系统管理员主键 diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java index 3dc5bb72..f9561fc6 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/ext/CuMemberRetailRangeExt.java @@ -36,9 +36,13 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange { private String awardsName; /** - * 福利级差比例 + * 领导奖级差比例 */ private BigDecimal rangeRatio; + /** + * 领导奖平级比例 + */ + private BigDecimal sameLevelRatio; /** * 小区业绩 diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdAwards.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdAwards.java index 40f0a0a7..29542378 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdAwards.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdAwards.java @@ -92,16 +92,14 @@ public class BdAwards extends BaseEntity { private BigDecimal carAwardPoints; /** - * 左区奖衔 + * 考核奖衔 */ - @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD) @TableField(value = "PK_CHECK_AWARDS_LEFT", jdbcType = JdbcType.NUMERIC, updateStrategy = FieldStrategy.IGNORED) private Integer pkCheckAwardsLeft; /** * 右区奖衔 */ - @Transaction(transactionKey = EnumsPrefixConstants.KEY_AWARD) @TableField(value = "PK_CHECK_AWARDS_RIGHT", jdbcType = JdbcType.NUMERIC, updateStrategy = FieldStrategy.IGNORED) private Integer pkCheckAwardsRight; @@ -159,7 +157,7 @@ public class BdAwards extends BaseEntity { private Integer systemType; /** - * 部门数量 + * 考核部门数量 */ @TableField("PLACE_DEPT_NUM") private Integer placeDeptNum; From 5e0fecd8b97cdd6e960b68ad5b21602cb3ccd75c Mon Sep 17 00:00:00 2001 From: zhangheng Date: Sun, 28 Sep 2025 17:23:54 +0800 Subject: [PATCH 11/41] =?UTF-8?q?##=20=E6=9E=B6=E6=9E=84=E4=BF=AE=E6=94=B9?= =?UTF-8?q?,=E9=98=B6=E6=AE=B5=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9,?= =?UTF-8?q?=E5=AD=90=E8=8A=82=E7=82=B9=E6=8E=92=E5=BA=8F,=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E5=AD=90=E8=8A=82=E7=82=B9=E6=B7=BB=E5=8A=A0=E6=9C=AA?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/ApiMemberController.java | 9 ++-- .../controller/manage/CuMemberController.java | 10 ++-- .../base/mapper/CuMemberRetailMapper.java | 4 +- .../base/service/ICuMemberRetailService.java | 4 +- .../impl/CuMemberRetailServiceImpl.java | 8 +-- .../ICumemberRetailDetailServiceImpl.java | 5 +- .../com/hzs/member/base/vo/MemberPointVO.java | 13 +++++ .../member/base/CuMemberRetailMapper.xml | 52 +++++++++++++------ .../member/CuMemberRetailDetailMapper.xml | 2 + .../common/domain/system/config/BdAwards.java | 37 ++++++------- 10 files changed, 86 insertions(+), 58 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java index 2804cded..f93a946e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java @@ -458,18 +458,15 @@ public class ApiMemberController extends BaseController { CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday); log.info("会员结算表信息{}",csPeriod); String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); - log.info("会员结算表名称{}",settleTableName); + String settleDetailTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId(); + log.info("会员结算表名称{}{}",settleTableName,settleDetailTableName); // 校验当前日结表是否存在 Integer isFind = iCuMemberRetailService.getFindCuMemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前表名不存在{}",settleTableName); return AjaxResult.error("数据查询错误,请联系客服处理"); } - List list = iCuMemberRetailService.getMemberPointByUserId(settleTableName,userId); - if (CollectionUtil.isEmpty(list)) { - return AjaxResult.success(); - } - MemberPointVO memberPointVO = list.get(0); + MemberPointVO memberPointVO = iCuMemberRetailService.getMemberPointByUserId(settleDetailTableName,settleTableName,userId); memberPointVO.setMemberSettlePeriod(csPeriod.getSettleDate()); startPage(); return AjaxResult.success(memberPointVO); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java index abeabc42..d5aebd27 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/manage/CuMemberController.java @@ -805,14 +805,15 @@ public class CuMemberController extends BaseController { CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); log.info("会员结算表信息{}",csPeriod); String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); - log.info("会员结算表名称{}",settleTableName); + String settleDetailTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId(); + log.info("会员结算表名称{}{}",settleTableName,settleDetailTableName); // 校验当前日结表是否存在 Integer isFind = iCuMemberRetailService.getFindCuMemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前表名不存在{}",settleTableName); return AjaxResult.error("当前会员日结表信息不存在"); } - List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleDetailTableName,settleTableName,memberCode,sort,sortColumn); list.forEach(item -> { item.setMemberSettlePeriod(csPeriod.getSettleDate()); }); @@ -830,8 +831,9 @@ public class CuMemberController extends BaseController { CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(param.getMemberSettlePeriodId()); log.info("会员结算表信息{}",csPeriod); String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); - log.info("会员结算表名称{}",settleTableName); - List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,param.getMemberCode(),param.getSort(),param.getSortColumn()); + String settleDetailTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId(); + log.info("会员结算表名称{}{}",settleTableName,settleDetailTableName); + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleDetailTableName, settleTableName, param.getMemberCode(), param.getSort(), param.getSortColumn()); list.forEach(item -> { item.setMemberSettlePeriod(csPeriod.getSettleDate()); }); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java index 731751c1..26e6b25c 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java @@ -20,7 +20,7 @@ public interface CuMemberRetailMapper extends BaseMapper { Integer getFindCumemberRetailDetail(@Param("settleTableName") String settleTableName); - List getMemberPointByMemberCode(@Param("settleTableName") String settleTableName, @Param("memberCode") String memberCode, @Param("sort") String sort, @Param("sortColumn") String sortColumn); + List getMemberPointByMemberCode(@Param("settleDetailTableName") String settleDetailTableName,@Param("settleTableName") String settleTableName, @Param("memberCode") String memberCode, @Param("sort") String sort, @Param("sortColumn") String sortColumn); - List getMemberPointByUserId(@Param("settleTableName") String settleTableName, @Param("userId") Long userId); + MemberPointVO getMemberPointByUserId(@Param("settleDetailTableName") String settleDetailTableName,@Param("settleTableName") String settleTableName, @Param("userId") Long userId); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java index c69e6f38..4ced2404 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java @@ -17,7 +17,7 @@ public interface ICuMemberRetailService{ Integer getFindCuMemberRetailDetail(String settleTableName); - List getMemberPointByMemberCode(String settleTableName, String memberCode, String sort, String sortColumn); + List getMemberPointByMemberCode(String settleDetailTableName,String settleTableName, String memberCode, String sort, String sortColumn); - List getMemberPointByUserId(String settleTableName, Long userId); + MemberPointVO getMemberPointByUserId(String settleDetailTableName,String settleTableName, Long userId); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java index 477e39ff..f1a5c5bd 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java @@ -26,12 +26,12 @@ public class CuMemberRetailServiceImpl extends ServiceImpl getMemberPointByMemberCode(String settleTableName, String memberCode, String sort, String sortColumn) { - return baseMapper.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); + public List getMemberPointByMemberCode(String settleDetailTableName, String settleTableName, String memberCode, String sort, String sortColumn) { + return baseMapper.getMemberPointByMemberCode(settleDetailTableName,settleTableName,memberCode,sort,sortColumn); } @Override - public List getMemberPointByUserId(String settleTableName, Long userId) { - return baseMapper.getMemberPointByUserId(settleTableName,userId); + public MemberPointVO getMemberPointByUserId(String settleDetailTableName,String settleTableName, Long userId) { + return baseMapper.getMemberPointByUserId(settleDetailTableName,settleTableName,userId); } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java index 854026ee..fc3f0aad 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java @@ -99,6 +99,7 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl diff --git a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailDetailMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailDetailMapper.xml index 2611ea8d..bd1db8e3 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailDetailMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/retail/member/CuMemberRetailDetailMapper.xml @@ -14,6 +14,7 @@ and cud.STAGE_STATUS = #{stageStatus} + ORDER BY CHILD_NODE ASC - - MERGE INTO ${retailsTableName} s - USING ( - SELECT SUM(boxNum) AS boxNum, SUM(pv) AS pv, pk_id - FROM ( - SELECT b.PK_ID, - NVL(s.NEW_CONSUME_PV, 0) AS pv - FROM ${retailsTableName} s - RIGHT JOIN ( - SELECT cm.PK_ID - FROM cu_member cm - WHERE cm.PK_ID != #{pkId} - START WITH cm.PK_ID = #{pkId} - CONNECT BY PRIOR cm.pk_id = cm.pk_parent - ORDER BY LEVEL - ) b ON s.PK_MEMBER = b.PK_ID - ) c - GROUP BY pk_id - ) result - ON (s.PK_MEMBER = result.PK_ID) - WHEN MATCHED THEN - UPDATE SET - s.ENABLE_STATUS = 0, - s.TEAM_NEW_PV = result.pv - WHERE s.PK_MEMBER = #{pkId} - diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java index 090b39db..c4a95899 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java @@ -51,7 +51,6 @@ import com.hzs.system.config.dto.AreaCurrencyDTO; import com.hzs.third.pay.ITOnlinePaymentServiceApi; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; -import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -85,8 +84,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { private MemberToolsHandler memberToolsHandler; @Autowired private RedisService redisService; - @Autowired - private RabbitTemplate rabbitTemplate; @Autowired private ICuMemberAccountService iCuMemberAccountService; @@ -1244,9 +1241,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } this.handleRetailMemberAccount(saOrder, cuMemberAccountExt); - - // 推送会员激活处理 - rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_EXCHANGE, RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_KEY, Collections.singletonList(cuMember.getPkId())); } @Transactional(rollbackFor = Exception.class) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java index f98240f2..de9a9182 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/handlebusiness/service/impl/CuHandleBusinessServiceImpl.java @@ -687,23 +687,6 @@ public class CuHandleBusinessServiceImpl extends ServiceImpl 0; } - - if (result) { - // 修改是否激活,旧值为未激活,新值为激活的会员需要推MQ处理秒结状态 - List pkMemberList = handleBusinessVO.getBusinessMemberList().stream() - .filter( - tmpData -> EApprovalBusiness.IS_ACTIVATE.getValue() == tmpData.getBusinessType() - && tmpData.getOldValue().equals(EYesNo.NO.getIntValue() + "") - && tmpData.getNewValue().equals(EYesNo.YES.getIntValue() + "") - ) - .map(BusinessMemberVO::getPkMember) - .collect(Collectors.toList()); - if (CollectionUtil.isNotEmpty(pkMemberList)) { - // 推送会员激活处理 - rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_EXCHANGE, RabbitMqConstants.ORDER_SECOND_ACTIVATE_COMPENSATION_KEY, pkMemberList); - } - } - return result; } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RabbitMqConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RabbitMqConstants.java index 99c6ae6c..47ba8d34 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RabbitMqConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RabbitMqConstants.java @@ -23,19 +23,6 @@ public class RabbitMqConstants { */ public static final String ORDER_SECOND_KEY = PREFIX + "order.second.key"; - /** - * 奖金秒接-激活补偿 exchange - */ - public static final String ORDER_SECOND_ACTIVATE_COMPENSATION_EXCHANGE = PREFIX + "order.second_activate_compensation.exchange"; - /** - * 奖金秒接-激活补偿 queue - */ - public static final String ORDER_SECOND_ACTIVATE_COMPENSATION_QUEUE = PREFIX + "order.second_activate_compensation.queue"; - /** - * 奖金秒接-激活补偿 key - */ - public static final String ORDER_SECOND_ACTIVATE_COMPENSATION_KEY = PREFIX + "order.second_activate_compensation.key"; - /** * 活动 exchange */ From 9cd8bc45f543e318056e42ddd487a3e2b4ca67f8 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 29 Sep 2025 14:31:14 +0800 Subject: [PATCH 28/41] =?UTF-8?q?##=20=E8=B5=A0=E9=80=81=E7=82=B9=E4=BD=8D?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java | 3 +++ 1 file changed, 3 insertions(+) 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 b65e4c7b..df7f5ccb 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 @@ -757,6 +757,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 待激活点位 int waitPointCount = sourceMember.getWaitPointCount(); if (waitPointCount != 0) { + int giftNewPointInt = 0; for (int i = 1; i <= newPointInt; i++) { if (waitPointCount > 0) { // 购买一个点位,激活一个待激活点位 @@ -782,10 +783,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { sourceMember, newRetailDetail, returnRetailDetailList); waitPointCount = waitPointCount - 1; + giftNewPointInt += 1; } else { break; } } + sourceMember.setPointCount(sourceMember.getPointCount() + giftNewPointInt); sourceMember.setWaitPointCount(waitPointCount); } return returnRetailDetailList; From 5ad816c4496e5191dfab9189f33c734f53eb794e Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Mon, 29 Sep 2025 15:17:57 +0800 Subject: [PATCH 29/41] =?UTF-8?q?##=20Opt=20-=20=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E5=A5=96=E9=87=91=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/service/impl/CuMemberBonusServiceImpl.java | 4 ++++ .../bonus/bonus/vo/MemberBonusFirstPurchaseVO.java | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java index 45de2660..8dc67205 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/CuMemberBonusServiceImpl.java @@ -132,6 +132,8 @@ public class CuMemberBonusServiceImpl extends ServiceImpl Date: Mon, 29 Sep 2025 15:21:47 +0800 Subject: [PATCH 30/41] =?UTF-8?q?##=20bug427=20=E4=BC=9A=E5=91=98=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=9F=A5=E8=AF=A2=E7=A9=BA=E6=95=B0=E6=8D=AE=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hzs/member/base/controller/api/ApiMemberController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java index ba626f08..60614175 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/controller/api/ApiMemberController.java @@ -468,7 +468,7 @@ public class ApiMemberController extends BaseController { } MemberPointVO memberPointVO = iCuMemberRetailService.getMemberPointByUserId(settleDetailTableName,settleTableName,userId); if (memberPointVO == null) { - return AjaxResult.error("数据查询错误,请联系客服处理"); + return AjaxResult.success(); } memberPointVO.setMemberSettlePeriod(csPeriod.getSettleDate()); startPage(); From 8b5d7a5f9d4eeebb326f60856e6360e62e418061 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Mon, 29 Sep 2025 15:22:31 +0800 Subject: [PATCH 31/41] =?UTF-8?q?##=20Opt=20-=20=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E5=A5=96=E9=87=91=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hzs/third/sms/ISmsServiceApi.java | 12 ++++++ .../service/impl/RetailOrderServiceImpl.java | 7 ++++ .../common/core/enums/EAliSmsTemplate.java | 4 ++ .../sms/provider/SmsServiceProvider.java | 15 +++++++ .../java/com/hzs/third/sms/util/SmsUtil.java | 41 +++++++++++++++++++ 5 files changed, 79 insertions(+) diff --git a/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java b/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java index d8e34a8b..c226dbd8 100644 --- a/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java +++ b/bd-api/bd-api-third/src/main/java/com/hzs/third/sms/ISmsServiceApi.java @@ -18,4 +18,16 @@ public interface ISmsServiceApi { */ R sendAliSms(String phone, String code, EAliSmsTemplate aliSmsTemplate); + /** + * 发送会员注册短信 + * + * @param phone + * @param aliSmsTemplate + * @param memberCode + * @param loginPwd + * @param payPwd + * @return + */ + R sendMemberRegister(String phone, EAliSmsTemplate aliSmsTemplate, String memberCode, String loginPwd, String payPwd); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index 3de26df8..632f0631 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -49,6 +49,7 @@ import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.dto.CurrencyDTO; import com.hzs.system.config.IAwardsServiceApi; import com.hzs.system.config.IGradeServiceApi; +import com.hzs.third.sms.ISmsServiceApi; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.amqp.rabbit.core.RabbitTemplate; @@ -105,6 +106,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { IMemberServiceApi iMemberServiceApi; @DubboReference IMemberAccountServiceApi iMemberAccountServiceApi; + @DubboReference + ISmsServiceApi iSmsServiceApi; @Override @@ -522,6 +525,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService { throw new RuntimeException("会员注册失败"); } + + // 发送会员注册成功短信 + iSmsServiceApi.sendMemberRegister(newMember.getPhone(), EAliSmsTemplate.MEMBER_REGISTER, + newMember.getMemberCode(), newMember.getLoginPassword(), newMember.getPayPassword()); this.pushOrderMq(saOrderExt); return null; } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAliSmsTemplate.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAliSmsTemplate.java index 03a67ce7..26b0a824 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAliSmsTemplate.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EAliSmsTemplate.java @@ -27,6 +27,10 @@ public enum EAliSmsTemplate { MEMBER_SMS("SMS_485350565"), // MEMBER_SMS("SMS_476795282"), // MEMBER_SMS("SMS_474440238"), + /** + * 会员注册成功(尊敬的会员,您新注册的会员编号:${memberCode},登录密码:${loginPwd},支付密码:${payPwd},请妥善保管) + */ + MEMBER_REGISTER("SMS_491370028"), ; diff --git a/bd-third/src/main/java/com/hzs/third/sms/provider/SmsServiceProvider.java b/bd-third/src/main/java/com/hzs/third/sms/provider/SmsServiceProvider.java index f5bf997a..ef7c74fd 100644 --- a/bd-third/src/main/java/com/hzs/third/sms/provider/SmsServiceProvider.java +++ b/bd-third/src/main/java/com/hzs/third/sms/provider/SmsServiceProvider.java @@ -29,4 +29,19 @@ public class SmsServiceProvider implements ISmsServiceApi { } } + @Override + public R sendMemberRegister(String phone, EAliSmsTemplate aliSmsTemplate, String memberCode, String loginPwd, String payPwd) { + try { + String str = SmsUtil.sendMemberRegister(phone, aliSmsTemplate, memberCode, loginPwd, payPwd); + if (null == str) { + return R.ok(); + } + log.error("发送会员注册短信失败: {}", str); + return R.fail(str); + } catch (Exception e) { + log.error("发送会员注册短信异常 phone: {}, memberCode: {}", phone, memberCode, e); + return R.fail(e.getMessage()); + } + } + } diff --git a/bd-third/src/main/java/com/hzs/third/sms/util/SmsUtil.java b/bd-third/src/main/java/com/hzs/third/sms/util/SmsUtil.java index dbb19a93..92bfbf41 100644 --- a/bd-third/src/main/java/com/hzs/third/sms/util/SmsUtil.java +++ b/bd-third/src/main/java/com/hzs/third/sms/util/SmsUtil.java @@ -82,4 +82,45 @@ public class SmsUtil implements InitializingBean { smsConfig = SpringUtils.getBean(SmsConfig.class); } + public static String sendMemberRegister(String phone, EAliSmsTemplate aliSmsTemplate, String memberCode, String loginPwd, String payPwd) { + if (StringUtils.isAnyEmpty(phone)) { + return "手机号为空"; + } + log.info("注册会员成功,发送手机号:{}, memberCode:{}", phone, memberCode); + if (smsConfig.isEnable()) { + // 只有当开启发送短信才进行发送 + try { + Map templateParam = new HashMap<>(); + templateParam.put("memberCode", memberCode); + templateParam.put("loginPwd", loginPwd); + templateParam.put("payPwd", payPwd); + + Client client = new Client(new Config() + .setAccessKeyId(smsConfig.getAliAccessKeyId()) + .setAccessKeySecret(smsConfig.getAliAccessKeySecret()) + // 短信发送域 + .setEndpoint(smsConfig.getAliEndpoint())); + + SendSmsRequest sendSmsRequest = new SendSmsRequest() + .setPhoneNumbers(phone) + // 短信签名 + .setSignName(smsConfig.getAliSign()) + // 短信模板 + .setTemplateCode(aliSmsTemplate.getCode()) + .setTemplateParam(JSONUtil.toJsonStr(templateParam)); + + SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest); + + if (Constants.SUCCESS.equals(sendSmsResponse.getStatusCode())) { + if ("OK".equals(sendSmsResponse.getBody().getCode())) { + return null; + } + log.error("阿里云短信发送失败: {}", sendSmsResponse.getBody().getMessage()); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + return null; + } } From 83136f1387fadc11a73f32d508443e16bdd3b2b0 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 29 Sep 2025 18:01:35 +0800 Subject: [PATCH 32/41] =?UTF-8?q?##=20=E5=A5=96=E8=A1=94=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E6=94=B9=E4=B8=BA=E5=85=88=E7=AE=97=E5=A5=96?= =?UTF-8?q?=E8=A1=94=EF=BC=9B=E8=B5=A0=E7=82=B9=E6=8E=92=E7=82=B9=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/system/config/dto/BonusConfigDTO.java | 40 +--- .../system/config/dto/BonusDifferenceDTO.java | 7 - .../system/config/dto/BonusDirectLoopDTO.java | 6 +- .../config/dto/BonusRepurchasePushDTO.java | 7 +- .../mapper/CuMemberRetailRangeMapper.java | 23 ++- .../achieve/mapper/CuMemberTreeMapper.java | 5 + .../service/ICuMemberRetailRangeService.java | 17 ++ .../achieve/service/ICuMemberTreeService.java | 6 + .../impl/CuMemberAchieveServiceImpl.java | 17 +- .../impl/CuMemberRetailDetailServiceImpl.java | 2 +- .../impl/CuMemberRetailRangeServiceImpl.java | 27 ++- .../service/impl/CuMemberTreeServiceImpl.java | 10 +- .../hzs/bonus/base/mapper/CuMemberMapper.java | 4 +- .../bonus/base/service/ICuMemberService.java | 5 +- .../service/impl/CuMemberServiceImpl.java | 4 +- .../bonus/service/impl/BonusSettleHandle.java | 24 ++- .../service/impl/BonusSettleRangeHandle.java | 188 +++++++++--------- .../service/ICuMemberAwardsService.java | 9 +- .../impl/CuMemberAwardsServiceImpl.java | 125 +++++++++--- .../achieve/CuMemberRetailRangeMapper.xml | 61 ++++++ .../bonus/achieve/CuMemberTreeMapper.xml | 31 ++- .../mapper/bonus/base/CuMemberMapper.xml | 6 +- .../bonus/detail/CuMemberAwardsMapper.xml | 103 +++++----- .../bonus/mapper/BdBonusServiceMapper.java | 8 +- .../bonus/service/IBdBonusServiceService.java | 17 +- .../impl/BdBonusServiceServiceImpl.java | 21 +- .../mapper/BdBonusDifferenceMapper.java | 6 - .../mapper/BdBonusDirectLoopMapper.java | 16 -- .../config/mapper/BdRepoDirectPushMapper.java | 6 - .../provider/BonusItemsServiceProvider.java | 125 +----------- .../config/service/IBdAwardsService.java | 5 - .../service/IBdBonusDifferenceService.java | 15 -- .../service/IBdBonusDirectLoopService.java | 23 +-- .../service/IBdRepoDirectPushService.java | 15 -- .../service/impl/BdAwardsServiceImpl.java | 10 +- .../impl/BdBonusDifferenceServiceImpl.java | 12 -- .../impl/BdBonusDirectLoopServiceImpl.java | 52 ++--- .../impl/BdRepoDirectPushServiceImpl.java | 14 -- .../system/config/BdBonusDirectLoopMapper.xml | 26 --- .../domain/member/ext/CuMemberSettleExt.java | 40 +--- .../system/config/BdBonusDirectLoop.java | 6 - .../system/config/BdRepoDirectPush.java | 5 - .../config/ext/BdBonusDirectLoopExt.java | 6 +- 43 files changed, 466 insertions(+), 689 deletions(-) diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusConfigDTO.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusConfigDTO.java index cc6cddf5..5219c3bd 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusConfigDTO.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusConfigDTO.java @@ -1,7 +1,6 @@ package com.hzs.system.config.dto; import com.hzs.common.domain.bonus.BdBonusDeduct; -import com.hzs.common.domain.bonus.BdBonusService; import com.hzs.common.domain.system.config.*; import com.hzs.common.domain.system.config.ext.BdBonusItemsExt; import com.hzs.system.sys.dto.BdCurrencyDTO; @@ -27,46 +26,14 @@ public class BonusConfigDTO implements Serializable { */ private Map bonusItemsExtMap; - /** - * 循环配置 key 第一个键国家主键 +等级,第二个键 循环类型 EBonusType - */ - private Map bonusDirectLoopDtoMap; - /** * 直推奖励配置 key 第一个键国家主键 ,第二个键 range_type+pk_level */ private Map bonusDirectDtoMap; /** - * 一次性补差 key 国家作为主键,只有一条 + * 奖衔列表 */ - private Map bonusDifferenceDtoMap; - - /** - * 复购推荐奖励配置 key第一个键国家主键,第二个键 代数 - */ - private Map> bonusRepurchasePushMap; - - /** - * 拓展奖配置 国家+等级 - */ - private Map gradeMap; - - /** - * 主任每个国家值对应的配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + 奖衔值 为了解决服务中心算主任 - */ - private Map directorAwardsMap; - - /** - * 辅导奖配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + memberSettleExt.getPkAwards() - */ - private Map awardsMap; - - /** - * 辅导奖配置 需要主键 memberSettleExt.getPkSettleCountry().toString() + memberSettleExt.getAwardsValue() - */ - private Map awardsValueMap; - private List awardsList; /** @@ -74,9 +41,4 @@ public class BonusConfigDTO implements Serializable { */ private Map bonusDeductsMap; - /** - * 报单服务费 需要主键 memberSettleExt.getPkSettleCountry().toString() + memberSettleExt.getservicetype() - */ - private Map bonusServiceMap; - } diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusDifferenceDTO.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusDifferenceDTO.java index 692e926d..b9cff8df 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusDifferenceDTO.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusDifferenceDTO.java @@ -5,13 +5,6 @@ import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; -/** - * @Description: - * @Author: sui q - * @Time: 2022/11/14 16:38 - * @Classname: BonusDifferenceDTO - * @PackageName: com.hzs.system.config.dto - */ @Data public class BonusDifferenceDTO implements Serializable { diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusDirectLoopDTO.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusDirectLoopDTO.java index 96616f1e..72482b64 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusDirectLoopDTO.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusDirectLoopDTO.java @@ -6,11 +6,7 @@ import java.io.Serializable; import java.math.BigDecimal; /** - * @Description: 循环配置 - * @Author: sui q - * @Time: 2022/11/14 16:26 - * @Classname: BonusDirectLoopDTO - * @PackageName: com.hzs.system.config.dto + * 循环配置 */ @Data public class BonusDirectLoopDTO implements Serializable { diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusRepurchasePushDTO.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusRepurchasePushDTO.java index 403104d6..bb87e9f6 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusRepurchasePushDTO.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/BonusRepurchasePushDTO.java @@ -6,12 +6,7 @@ import java.io.Serializable; import java.math.BigDecimal; /** - * @description: 复购直推dto - * @author: sui q - * @time: 2023/6/29 15:17 - * @classname: BonusRepurchasePushDTO - * @package_name: com.hzs.system.config.dto - * version 1.0.0 + * 复购直推dto */ @Data public class BonusRepurchasePushDTO implements Serializable { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java index f3e2d996..34944456 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java @@ -8,6 +8,7 @@ import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; /** @@ -121,11 +122,31 @@ public interface CuMemberRetailRangeMapper extends BaseMapper listChildRetail(@Param("rangeTableName") String rangeTableName, @Param("pkParentList") List pkParentList); + /** + * 更新会员血缘上累计数据 + */ + Boolean updateMemberParentDate(@Param("rangeTableName") String rangeTableName, + @Param("achieveList") List achieveList); + + /** + * 查询符合奖衔业绩条件会员 + */ + List queryEnoughAwardMember(@Param("rangeTableName") String rangeTableName, + @Param("totalCheck") BigDecimal totalCheck, + @Param("pkAwards") Integer pkAwards); + /** * 查询会员血缘下达标奖衔会员 */ List listChildAwards(@Param("rangeTableName") String rangeTableName, @Param("pkAwards") Integer pkAwards, - @Param("childMemberList") List childMemberList); + @Param("childMemberList") List childMemberList); + + /** + * 更新会员奖衔 + */ + int updateCuMemberAwardsByPeriod(@Param("rangeTableName") String rangeTableName, + @Param("period") Integer period, + @Param("awardType") Integer awardType); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java index 20f89149..9e03dc77 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberTreeMapper.java @@ -94,6 +94,11 @@ public interface CuMemberTreeMapper extends BaseMapper { */ void truncateCuMemberTreeTable(@Param("tableName") String tableName); + /** + * 清除表数据 + */ + void clearTable(@Param("tableName") String tableName); + /** * 将会员表数据插入结算日表中 * diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java index 8d6cba58..3215d569 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java @@ -1,6 +1,7 @@ package com.hzs.bonus.achieve.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.hzs.bonus.achieve.param.MemberAchieveParam; import com.hzs.common.domain.member.achieve.CuMemberRetailRange; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.base.CuMember; @@ -82,9 +83,25 @@ public interface ICuMemberRetailRangeService extends IService memberAchieveHashMap); + + /** + * 查询符合奖衔业绩条件会员 + */ + List queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards); + /** * 查询会员血缘下达标奖衔会员 */ List listChildAwards(String rangeTableName, Integer pkAwards, List childMemberList); + /** + * 更新会员奖衔 + */ + void updateCuMemberAwardsByPeriod(String rangeTableName, Integer period); + + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java index 0e1ae3fd..1e66fe54 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberTreeService.java @@ -56,6 +56,11 @@ public interface ICuMemberTreeService extends IService { */ void truncateCuMemberTreeTable(String tableName); + /** + * 清除表数据 + */ + void clearTable(String tableName); + /** * 创建会员网体推荐人索引 * @@ -77,4 +82,5 @@ public interface ICuMemberTreeService extends IService { */ void createCuMemberTreePlaceIndex(String tableName); + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberAchieveServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberAchieveServiceImpl.java index 3c118301..19d195ee 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberAchieveServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberAchieveServiceImpl.java @@ -10,7 +10,6 @@ import com.hzs.common.core.utils.DateUtils; import com.hzs.common.domain.member.achieve.CuMemberAchieve; import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.sale.order.SaOrder; -import com.hzs.common.service.ITransactionCommonService; import com.hzs.bonus.achieve.mapper.CuMemberAchieveMapper; import com.hzs.bonus.achieve.param.MemberAchieveParam; import lombok.extern.slf4j.Slf4j; @@ -18,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.time.temporal.ChronoUnit; import java.util.*; /** @@ -28,22 +26,11 @@ import java.util.*; @Service public class CuMemberAchieveServiceImpl extends ServiceImpl implements ICuMemberAchieveService { + @Autowired private ICuMemberTreeService cuMemberTreeService; - + @Autowired private ICuMemberSettlePeriodService cuMemberSettlePeriodService; - @Autowired - public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) { - this.cuMemberSettlePeriodService = cuMemberSettlePeriodService; - } - - @Autowired - public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) { - this.cuMemberTreeService = cuMemberTreeService; - } - - @Autowired - ITransactionCommonService iTransactionCommonService; @Override public String createCuMemberAchieve(String date) { 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 87a96399..495f3fa5 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 @@ -95,7 +95,7 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl()); // 会员直推数据 - List retailRangeList = cuMemberRetailRangeMapper.listChildRetail(rangeTableName, Collections.singletonList(sourceMember.getPkParent())); + List retailRangeList = cuMemberRetailRangeMapper.listChildRetail(rangeTableName, Collections.singletonList(sourceMember.getPkMember())); if (CollectionUtil.isNotEmpty(retailRangeList)) { // 直推数据列表 LinkedHashMap childRetailMap = sourceMember.getChildRetailMap(); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java index 648a498c..3c8f706a 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java @@ -3,9 +3,11 @@ package com.hzs.bonus.achieve.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.bonus.achieve.mapper.CuMemberRetailRangeMapper; +import com.hzs.bonus.achieve.param.MemberAchieveParam; import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; import com.hzs.bonus.achieve.service.ICuMemberTreeService; import com.hzs.common.core.constant.MagicNumberConstants; +import com.hzs.common.core.enums.EAwardsType; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.achieve.CuMemberRetailRange; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; @@ -44,7 +46,7 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl memberAchieveHashMap) { + if (memberAchieveHashMap.size() == 0) { + return; + } + List> listList = cuMemberBonusSettle.handleCutList(memberAchieveHashMap.values(), MagicNumberConstants.BATCH_UPDATE_NUM); + listList.forEach(list -> { + baseMapper.updateMemberParentDate(rangeTableName, list); + }); + } + + @Override + public List queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards) { + return baseMapper.queryEnoughAwardMember(settleTableName, totalCheck, pkAwards); + } + @Override public List listChildAwards(String rangeTableName, Integer pkAwards, List childMemberList) { List checkList = new ArrayList<>(); List> queryList = cuMemberBonusSettle.handleCutList(childMemberList, MagicNumberConstants.BATCH_QUERY_NUM); queryList.forEach(tmpList -> { - List tmpCheckList = baseMapper.listChildAwards(rangeTableName, pkAwards, childMemberList); + List tmpCheckList = baseMapper.listChildAwards(rangeTableName, pkAwards, tmpList); if (tmpCheckList.size() > 0) { checkList.addAll(tmpCheckList); } @@ -186,4 +204,9 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl { CuMember getByPkId(@Param("pkId") Serializable id); /** - * 更新会员奖衔根据临时表 + * 更新会员奖衔 */ - int updateCuMemberRetailAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType); + int updateCuMemberAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType); /** * 更新会员奖衔根据临时表 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java index 767b6e94..03c8b431 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java @@ -14,10 +14,11 @@ import java.util.List; public interface ICuMemberService extends IService { CuMember getByPkId(Serializable id); + /** - * 更新会员奖衔根据临时表 -- 日结 + * 更新会员奖衔 */ - void updateCuMemberRetailRangeByPeriod(Integer period); + void updateCuMemberAwardsByPeriod(Integer period); /** * 更新会员奖衔根据临时表 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java index da9e3ba3..eda97baa 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java @@ -23,8 +23,8 @@ public class CuMemberServiceImpl extends ServiceImpl i } @Override - public void updateCuMemberRetailRangeByPeriod(Integer period) { - baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue()); + public void updateCuMemberAwardsByPeriod(Integer period) { + baseMapper.updateCuMemberAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue()); } @Override 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 7271337e..d298cd9e 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 @@ -1,5 +1,6 @@ package com.hzs.bonus.bonus.service.impl; +import com.hzs.bonus.achieve.param.MemberAchieveParam; import com.hzs.bonus.achieve.service.ICuMemberTreeService; import com.hzs.common.core.constant.BonusFieldConstants; import com.hzs.common.core.constant.MagicNumberConstants; @@ -11,7 +12,6 @@ import com.hzs.common.domain.bonus.BdBonusDeduct; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.bonus.*; import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.hzs.common.domain.sale.order.SaOrder; import com.hzs.common.domain.system.config.ext.BdBonusItemsExt; import com.hzs.system.config.dto.BonusConfigDTO; import org.springframework.beans.factory.annotation.Autowired; @@ -234,4 +234,26 @@ public abstract class BonusSettleHandle { return bdBonusDeduct; } + + /** + * 处理订单累计业绩、累计金额 + */ + public void assortSaOrder(Map memberAchieveHashMap, List orderExtList) { + for (SaOrderExt saOrderExt : orderExtList) { + MemberAchieveParam cuMemberAchieve; + if (memberAchieveHashMap.containsKey(saOrderExt.getPkMember())) { + cuMemberAchieve = memberAchieveHashMap.get(saOrderExt.getPkMember()); + } else { + cuMemberAchieve = MemberAchieveParam.builder() + .pkMember(saOrderExt.getPkMember()) + .newPv(BigDecimal.ZERO) + .newAmount(BigDecimal.ZERO) + .build(); + memberAchieveHashMap.put(saOrderExt.getPkMember(), cuMemberAchieve); + } + cuMemberAchieve.setNewPv(ComputeUtil.computeAdd(cuMemberAchieve.getNewPv(), saOrderExt.getOrderAchieve())); + cuMemberAchieve.setNewAmount(ComputeUtil.computeAdd(cuMemberAchieve.getNewAmount(), saOrderExt.getOrderAmount())); + } + } + } 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 df7f5ccb..1a251c45 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 @@ -1,6 +1,7 @@ package com.hzs.bonus.bonus.service.impl; import cn.hutool.core.collection.CollectionUtil; +import com.hzs.bonus.achieve.param.MemberAchieveParam; import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService; import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; import com.hzs.bonus.base.service.ICuMemberService; @@ -139,7 +140,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 实时网体查询血缘伞上会员,更新秒结表奖衔 iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(secondRangeTableName, saOrderExt.getPkMember(), EYesNo.YES.getIntValue()); // 恢复秒结表奖衔 - iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod, EYesNo.YES.getIntValue()); + iCuMemberAwardsService.mergeCuMemberBackAwards(secondRangeTableName, saOrderExt.getPkMember(), currentPeriod); // 查询 昨天日结 + 今天秒结 血缘伞上+直推 memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberSecondRangeParent(rangeTableName, secondRangeTableName, saOrderExt.getPkMember()); } else { @@ -150,7 +151,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 实时网体查询血缘上会员,更新订单支付日结表奖衔 iCuMemberRetailRangeService.mergeMemberRetailGradeByMember(rangeTableName, saOrderExt.getPkMember(), EYesNo.NO.getIntValue()); // 恢复日结表奖衔 - iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod, EYesNo.NO.getIntValue()); + iCuMemberAwardsService.mergeCuMemberBackAwards(rangeTableName, saOrderExt.getPkMember(), beforePeriod); // 查询 订单下单日结 血缘上会员结算数据 memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, retailOrderList); } @@ -275,8 +276,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 结算明细前一天表 String yesterdayRangeDetailTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + yesterdayPeriod; - // 回退奖衔,将奖衔回退到结算前状态 - iCuMemberAwardsService.calculateCuMemberRetailRangeAwardsInit(settleDate, period, rangeTableName); // 初始化结算网体数据(昨天数据更新到今天数据) iCuMemberRetailRangeService.mergeMemberRetailRangeByYesterday(rangeTableName, yesterdayRangeTableName, isSameMonth); // 初始化结算明细数据(昨天数据更新到今天数据) @@ -286,19 +285,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { List stageList = new ArrayList<>(); if (orderList.size() > 0) { - // 按照血缘,查询该会员所有伞上会员 - List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList); - // 会员结算map(key:会员ID,value:结算扩展) - Map memberRangeExtMap = new HashMap<>(); - // 会员转map - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) { - if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt); - } - } - // 查询血缘会员明细数据(一阶段) - iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.ONE, EBonusStageStatus.NO, null); - // 奖衔 Map awardsMap = new HashMap<>(); List awardsList = bonusConfigDTO.getAwardsList(); @@ -313,6 +299,28 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 阶段收益 List cuMemberBonusStageList = new ArrayList<>(); + // 更新血缘上个人、团队累计业绩,用于处理奖衔 + Map memberAchieveHashMap = new HashMap<>(); + // 订单累计业绩、累计金额 + assortSaOrder(memberAchieveHashMap, orderList); + // 更新血缘上业绩、金额 + iCuMemberRetailRangeService.updateMemberParentDate(rangeTableName, memberAchieveHashMap); + // 处理奖衔 + iCuMemberAwardsService.calculateCuMemberAwards(rangeTableName, awardsList, awardsMap, settleStartDate, period); + + // 按照血缘,查询该会员所有伞上会员 + List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList); + // 会员结算map(key:会员ID,value:结算扩展) + Map memberRangeExtMap = new HashMap<>(); + // 会员转map + for (CuMemberRetailRangeExt cuMemberRetailRangeExt : memberRetailRangeExtList) { + if (!memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { + memberRangeExtMap.put(cuMemberRetailRangeExt.getPkMember(), cuMemberRetailRangeExt); + } + } + // 查询血缘会员明细数据(一阶段) + iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.ONE, EBonusStageStatus.NO, null); + for (SaOrderExt saOrderExt : orderList) { CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(saOrderExt.getPkMember()); if (null == sourceMember) { @@ -324,10 +332,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 自己消费的相关金额、业绩处理 sourceMember.setNewConsumePv(orderAchieve); - sourceMember.setConsumePv(sourceMember.getConsumePv().add(orderAchieve)); sourceMember.setMonthConsumePv(sourceMember.getMonthConsumePv().add(orderAchieve)); sourceMember.setNewConsumeAmount(orderAmount); - sourceMember.setConsumeAmount(sourceMember.getConsumeAmount().add(orderAmount)); sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount)); // // 自己计算奖衔,目前业绩都只往下传,所以此处暂时不需要处理订单会员的奖衔 // this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember); @@ -367,6 +373,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 五折专区 sourceMember.setRepConsumeNewPv(sourceMember.getRepConsumeNewPv().add(orderAchieve)); sourceMember.setRepConsumeNewAmount(sourceMember.getRepConsumeNewAmount().add(orderAmount)); + // 领导级差收益 -- 来源PV this.calculateRetailRangeBonus(cuMemberBonusRangeList, memberRangeExtMap, cuMemberBonusMap, bonusConfigDTO, period, awardsMap, saOrderExt, sourceMember); @@ -406,12 +413,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (cuMemberBonusStageList.size() > 0) { bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList); } - if (cuMemberAwardsList.size() > 0) { - // 批量插入会员奖衔记录 - iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList); - // 更新会员表奖衔数据 - iCuMemberService.updateCuMemberRetailRangeByPeriod(period); - } +// if (cuMemberAwardsList.size() > 0) { +// // 批量插入会员奖衔记录 +// iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList); +// // 更新会员表奖衔数据 +// iCuMemberService.updateCuMemberAwardsByPeriod(period); +// } // 更新日结数据 iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap); // 更新日结明细数据 @@ -1024,67 +1031,67 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return resultList; } - /** - * 计算奖衔 - */ - private void calculateAwards(Integer period, Map memberRangeExtMap, String rangeTableName, - SaOrderExt saOrderExt, Map retailAwardsMap, List cuMemberAwardsList, - CuMemberRetailRangeExt targetMember) { - // 校验大小区会员数据 - List cuMemberRangeExtList = null; - // 计算分红奖衔 - while (true) { - // 当月奖衔值 + 5,获取下一个奖衔值 - int awardsValue = targetMember.getAwardsValue() + 5; - if (retailAwardsMap.containsKey(awardsValue)) { - BdAwards bdAwards = retailAwardsMap.get(awardsValue); - - if (ComputeUtil.compareValue(targetMember.getTeamConsumePv(), bdAwards.getTotalCheck())) { - // 团队累计业绩 >= 奖衔累计业绩 - if (null == cuMemberRangeExtList) { - // 昨日结算表,查询会员直推数据 - cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember()); - } - // 大区 - BigDecimal consumeBigPv = BigDecimal.ZERO; - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { - if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { - cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); - } - // 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩 - BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv()); - if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { - // 累计业绩 > 大区业绩,则累计就成为大区 - consumeBigPv = consumePv; - } - } - // 小区业绩 = 团队累计业绩 - 大区业绩 - BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv); - if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) { - // 小区业绩 >= 考核小区业绩 - if (bdAwards.getPlaceDeptNum() > 0) { - // 验证每条血缘下,满足达标数量 - List checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(), - cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList())); - if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) { - cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards())); - targetMember.setPkAwards(bdAwards.getPkId()); - targetMember.setAwardsValue(bdAwards.getAwardsValue()); - continue; - } - } else { - // 不需要考核血缘达标,直接给奖衔 - cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards())); - targetMember.setPkAwards(bdAwards.getPkId()); - targetMember.setAwardsValue(bdAwards.getAwardsValue()); - continue; - } - } - } - } - break; - } - } +// /** +// * 计算奖衔 +// */ +// private void calculateAwards(Integer period, Map memberRangeExtMap, String rangeTableName, +// SaOrderExt saOrderExt, Map retailAwardsMap, List cuMemberAwardsList, +// CuMemberRetailRangeExt targetMember) { +// // 校验大小区会员数据 +// List cuMemberRangeExtList = null; +// // 计算分红奖衔 +// while (true) { +// // 当月奖衔值 + 5,获取下一个奖衔值 +// int awardsValue = targetMember.getAwardsValue() + 5; +// if (retailAwardsMap.containsKey(awardsValue)) { +// BdAwards bdAwards = retailAwardsMap.get(awardsValue); +// +// if (ComputeUtil.compareValue(targetMember.getTeamConsumePv(), bdAwards.getTotalCheck())) { +// // 团队累计业绩 >= 奖衔累计业绩 +// if (null == cuMemberRangeExtList) { +// // 昨日结算表,查询会员直推数据 +// cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember()); +// } +// // 大区 +// BigDecimal consumeBigPv = BigDecimal.ZERO; +// for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { +// if (memberRangeExtMap.containsKey(cuMemberRetailRangeExt.getPkMember())) { +// cuMemberRetailRangeExt = memberRangeExtMap.get(cuMemberRetailRangeExt.getPkMember()); +// } +// // 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩 +// BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv()); +// if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { +// // 累计业绩 > 大区业绩,则累计就成为大区 +// consumeBigPv = consumePv; +// } +// } +// // 小区业绩 = 团队累计业绩 - 大区业绩 +// BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv); +// if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) { +// // 小区业绩 >= 考核小区业绩 +// if (bdAwards.getPlaceDeptNum() > 0) { +// // 验证每条血缘下,满足达标数量 +// List checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(), +// cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList())); +// if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) { +// cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards())); +// targetMember.setPkAwards(bdAwards.getPkId()); +// targetMember.setAwardsValue(bdAwards.getAwardsValue()); +// continue; +// } +// } else { +// // 不需要考核血缘达标,直接给奖衔 +// cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, saOrderExt, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards())); +// targetMember.setPkAwards(bdAwards.getPkId()); +// targetMember.setAwardsValue(bdAwards.getAwardsValue()); +// continue; +// } +// } +// } +// } +// break; +// } +// } /** * 计算团队奖衔 @@ -1101,11 +1108,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { while (null != targetMember) { // 累计业绩 targetMember.setTeamNewPv(targetMember.getTeamNewPv().add(orderAchieve)); - targetMember.setTeamConsumePv(targetMember.getTeamConsumePv().add(orderAchieve)); targetMember.setTeamMonthPv(targetMember.getTeamMonthPv().add(orderAchieve)); // 累计金额 targetMember.setTeamNewAmount(targetMember.getTeamNewAmount().add(orderAmount)); - targetMember.setTeamConsumeAmount(targetMember.getTeamConsumeAmount().add(orderAmount)); targetMember.setTeamMonthAmount(targetMember.getTeamMonthAmount().add(orderAmount)); if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType() @@ -1113,13 +1118,14 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 团队精品专区 targetMember.setRegTeamNewPv(targetMember.getRegTeamNewPv().add(orderAchieve)); targetMember.setRegTeamNewAmount(targetMember.getRegTeamNewAmount().add(orderAmount)); - } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) { + } else if (EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType() + || EOrderType.DISCOUNT_ORDER.getValue() == saOrderExt.getOrderType()) { // 团队商城专区 targetMember.setRepTeamNewPv(targetMember.getRepTeamNewPv().add(orderAchieve)); targetMember.setRepTeamNewAmount(targetMember.getRepTeamNewAmount().add(orderAmount)); } - // 计算奖衔 - calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, targetMember); +// // 计算奖衔 +// calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, targetMember); targetMember = memberRangeExtMap.get(targetMember.getPkParent()); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java index 1abfc88e..150fdaf3 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java @@ -3,8 +3,11 @@ package com.hzs.bonus.detail.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.detail.CuMemberAwards; +import com.hzs.common.domain.system.config.BdAwards; +import java.util.Date; import java.util.List; +import java.util.Map; /** * 会员信息-奖衔升级记录 服务类 @@ -12,9 +15,9 @@ import java.util.List; public interface ICuMemberAwardsService extends IService { /** - * 回退极差奖衔,每日重新结算,先把奖衔回退到前一天 + * 计算奖衔 */ - void calculateCuMemberRetailRangeAwardsInit(String settleDate, Integer period, String rangeTableName); + void calculateCuMemberAwards(String rangeTableName, List awardsList, Map awardsMap, Date settleDate, Integer period); /** * 批量插入奖衔记录 @@ -36,6 +39,6 @@ public interface ICuMemberAwardsService extends IService { /** * 回退奖衔 */ - void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period, Integer isToday); + void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java index f879110d..f98a0506 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java @@ -1,21 +1,25 @@ package com.hzs.bonus.detail.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.bonus.achieve.service.ICuMemberRetailRangeService; import com.hzs.bonus.achieve.service.ICuMemberTreeService; import com.hzs.bonus.achieve.service.impl.CuMemberBonusSettle; import com.hzs.bonus.detail.service.ICuMemberAwardsService; import com.hzs.common.core.constant.*; import com.hzs.common.core.enums.*; -import com.hzs.common.core.utils.DateUtils; +import com.hzs.common.core.utils.ComputeUtil; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.detail.CuMemberAwards; -import com.hzs.common.domain.member.ext.CuMemberSettleExt; import com.hzs.bonus.base.service.ICuMemberService; import com.hzs.bonus.detail.mapper.CuMemberAwardsMapper; +import com.hzs.common.domain.system.config.BdAwards; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.*; +import java.util.stream.Collectors; /** * 会员信息-奖衔升级记录 服务实现类 @@ -29,9 +33,11 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl awardsList, Map awardsMap, Date settleDate, Integer period) { // 回退结算表奖衔 iCuMemberTreeService.updateBackCuMemberRetailRangeAward(rangeTableName, period); // 回退会员表奖衔 @@ -41,9 +47,94 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl cuMemberAwardsList = new ArrayList<>(); + // 校验大小区会员数据(key:会员ID,value:会员推荐人列表) + Map> cuMemberRangeExtMap = new HashMap<>(); + + for (BdAwards bdAwards : awardsList) { + List cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardMember(rangeTableName, bdAwards.getTotalCheck(), bdAwards.getPkId()); + cuMemberAwardsList.addAll(this.calculateAwards(rangeTableName, bdAwards, period, cuMemberRetailRangeExtList, cuMemberRangeExtMap)); + } + if (cuMemberAwardsList.size() > 0) { + // 插入会员升级记录表 + this.saveBatchCuMemberAwards(cuMemberAwardsList); + // 更新会员表奖衔数据 + iCuMemberService.updateCuMemberAwardsByPeriod(period); + // 更新结算网体表 -- 结算日期到当前日期的所有日结算表 + iCuMemberRetailRangeService.updateCuMemberAwardsByPeriod(rangeTableName, period); + } + } + + private List calculateAwards(String rangeTableName, BdAwards bdAwards, Integer period, + List cuMemberRetailRangeExtList, Map> cuMemberRangeExtMap) { + // 只满足业绩的 + List cuMemberAwardsList = new ArrayList<>(); + + if (cuMemberRetailRangeExtList.size() > 0) { + Date nowDate = new Date(); + + cuMemberRetailRangeExtList.forEach(targetMember -> { + List cuMemberRangeExtList = cuMemberRangeExtMap.get(targetMember.getPkMember()); + if (null == cuMemberRangeExtList) { + cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember()); + cuMemberRangeExtMap.put(targetMember.getPkMember(), cuMemberRangeExtList); + } + // 大区 + BigDecimal consumeBigPv = BigDecimal.ZERO; + for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { + // 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩 + BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv()); + if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { + // 累计业绩 > 大区业绩,则累计就成为大区 + consumeBigPv = consumePv; + } + } + // 小区业绩 = 团队累计业绩 - 大区业绩 + BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv); + if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) { + // 小区业绩 >= 考核小区业绩 + if (bdAwards.getPlaceDeptNum() > 0) { + if (CollectionUtil.isNotEmpty(cuMemberRangeExtList)) { + // 验证每条血缘下,满足达标数量 + List checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(), + cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList())); + if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) { + cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate)); + targetMember.setPkAwards(bdAwards.getPkId()); + targetMember.setAwardsValue(bdAwards.getAwardsValue()); + } + } + } else { + // 不需要考核血缘达标,直接给奖衔 + cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate)); + targetMember.setPkAwards(bdAwards.getPkId()); + targetMember.setAwardsValue(bdAwards.getAwardsValue()); + } + } + }); + } + return cuMemberAwardsList; + } + + private CuMemberAwards getCuMemberRetailAwards(CuMemberRetailRangeExt sourceRangeExt, Integer period, BdAwards bdAwards, + Integer awardType, Integer oldLevel, Date nowDate) { + CuMemberAwards cuMemberAwards = CuMemberAwards.builder() + .pkMember(sourceRangeExt.getPkMember()) + .period(period) + .upType(EUpgradeType.AUTO_UPGRADE.getValue()) + .awardType(awardType) + .oldLevel(null == oldLevel ? sourceRangeExt.getPkAwards() : oldLevel) + .newLevel(bdAwards.getPkId()) + .purchaseStatus(EYesNo.NO.getIntValue()) + .build(); + cuMemberAwards.setPkCreator(MagicNumberConstants.PK_ADMIN); + cuMemberAwards.setPkCountry(sourceRangeExt.getPkCountry()); + cuMemberAwards.setCreationTime(nowDate); + return cuMemberAwards; } @Override @@ -64,28 +155,8 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl originalCuMemberSettleMap, Integer period, List cuMemberAwardsList, CuMemberSettleExt enoughAwardsMember) { - CuMemberAwards cuMemberAwards = CuMemberAwards.builder() - .pkMember(enoughAwardsMember.getPkMember()) - .period(period) - .upType(EUpgradeType.AUTO_UPGRADE.getValue()) - // 原等级 - .oldLevel(originalCuMemberSettleMap.get(enoughAwardsMember.getPkMember()).getPkOriAwards()) - .newLevel(enoughAwardsMember.getPkAwards()) - // 默认不免考 - .purchaseStatus(EYesNo.NO.getIntValue()) - .build(); - cuMemberAwards.setPkCreator(MagicNumberConstants.PK_ADMIN); - cuMemberAwards.setPkCountry(enoughAwardsMember.getPkSettleCountry()); - cuMemberAwardsList.add(cuMemberAwards); } } 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 9aeeb940..7393201f 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 @@ -943,6 +943,48 @@ order by a.pk_parent, a.pay_time + + + + merge into ${rangeTableName} a + using ( + select pk_member, + sum(consume_pv) consume_pv, + sum(consume_amount) consume_amount, + sum(team_consume_pv) team_consume_pv, + sum(team_consume_amount) team_consume_amount + from ( + + SELECT cmr.pk_member, + DECODE(cmr.pk_member, #{item.pkMember}, #{item.newPv}, 0) AS consume_pv, + DECODE(cmr.pk_member, #{item.pkMember}, #{item.newAmount}, 0) AS consume_amount, + DECODE(cmr.pk_member, #{item.pkMember}, 0, #{item.newPv}) AS team_consume_pv, + DECODE(cmr.pk_member, #{item.pkMember}, 0, #{item.newAmount}) AS team_consume_amount + FROM ${rangeTableName} cmr + START WITH cmr.pk_member = #{item.pkMember} + CONNECT BY cmr.pk_member = PRIOR cmr.pk_parent + + ) tmp + group by pk_member + ) b + on (a.pk_member = b.pk_member) + when matched then + update set + a.consume_pv = a.consume_pv + b.consume_pv, + a.consume_amount = a.consume_amount + b.consume_amount, + a.team_consume_pv = a.team_consume_pv + b.team_consume_pv, + a.team_consume_amount = a.team_consume_amount + b.team_consume_amount + + + + + + + + + merge into ${rangeTableName} a + using ( + select pk_member, max(new_level) pk_awards + from cu_member_awards + where period = #{period} and award_type = #{awardType} + and del_flag = 0 + group by pk_member + ) b + on (a.pk_member = b.pk_member) + when matched then + update set + + a.pk_awards = b.pk_awards + + + diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml index 05bcb42f..b193e144 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml @@ -77,14 +77,11 @@ - - - @@ -96,10 +93,7 @@ - - - @@ -131,8 +125,6 @@ is_bus_license NUMBER(1) default 1 not null, is_maker_space NUMBER(1) default 1 not null, pk_country number(4) default 1 not null, - store_level NUMBER(2) default 0, - is_maker_gift NUMBER(1) default 1, expire_status number(1) default 1 @@ -194,10 +186,7 @@ UPGRADE_Blo_NEW_PV NUMBER(17,6) default 0 not null, REPURCHASE_Blo_NEW_PV NUMBER(17,6) default 0 not null, HI_FUN_Blo_NEW_PV NUMBER(17,6) default 0 not null, - MALL_Blo_NEW_PV NUMBER(17,6) default 0 not null, - min_achieve number(17,6) default 0 not null, - round NUMBER(6) default 0 not null, - second NUMBER(4) default 1 not null + MALL_Blo_NEW_PV NUMBER(17,6) default 0 not null @@ -206,7 +195,7 @@ a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code, repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_grade, - min_achieve,round,second,bg.grade_value,store_level,expire_status from ( + bg.grade_value,expire_status from ( ) a inner join bd_grade bg @@ -265,7 +254,7 @@ a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code, repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_grade, - min_achieve,round,second,store_level,expire_status + expire_status from ${settleTableName} where pay_status = 1 start with pk_member = #{item} @@ -568,6 +557,11 @@ truncate table ${tableName} + + + delete from ${tableName} + + - diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml index 6f1beb34..1567e354 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml @@ -85,7 +85,8 @@ - + + merge into cu_member a using ( select pk_member, max(new_level) pk_awards @@ -100,9 +101,6 @@ a.pk_awards = b.pk_awards, - - a.pk_range_awards = b.pk_awards, - a.modified_time = sysdate diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml index 3780ae49..40fd08df 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml @@ -23,22 +23,6 @@ - - - insert ALL - - into cu_member_awards ( - pk_member, period, up_type, old_level, new_level, - purchase_status, award_type, pk_creator, pk_country, system_type - ) - values ( - #{item.pkMember}, #{item.period}, #{item.upType}, #{item.oldLevel}, #{item.newLevel}, - #{item.purchaseStatus}, #{item.awardType}, #{item.pkCreator}, #{item.pkCountry}, #{item.systemType} - ) - - SELECT 1 FROM dual - - update cu_member_awards set del_flag = 1, modified_time = sysdate, PK_MODIFIED = 1 where period= #{period} and pk_member in @@ -61,39 +45,21 @@ update set a.assess_target = b.assess_target,a.assess_status = b.assess_status - - merge into ${rangeTableName} a - using ( - select cw.* - from cu_member_awards cw - inner join ( - select ca.pk_member, min(ca.pk_id) pk_id - from cu_member_awards ca - inner join bd_awards bw - on ca.new_level = bw.pk_id - and bw.del_flag = 0 - and bw.awards_value >= 5 - where ca.del_flag = 0 - and ca.up_type = 1 - and ca.period = #{period} - and ca.award_type = #{awardType} - and ca.pk_member in - (select pk_id - from cu_member start - with pk_id = #{pkMember} - connect by prior pk_parent = pk_id) - group by ca.pk_member - ) cx on cw.pk_id = cx.pk_id where cw.del_flag = 0 - ) b on (a.pk_member = b.pk_member) - when matched then - update set - - a.pk_awards = b.old_level - - - a.pk_share_awards = b.old_level - - + + + insert ALL + + into cu_member_awards ( + pk_member, period, up_type, old_level, new_level, + purchase_status, award_type, pk_creator, pk_country + ) + values ( + #{item.pkMember}, #{item.period}, #{item.upType}, #{item.oldLevel}, #{item.newLevel}, + #{item.purchaseStatus}, #{item.awardType}, #{item.pkCreator}, #{item.pkCountry} + ) + + SELECT 1 FROM dual + @@ -115,14 +81,6 @@ #{item.pkId} - - + + merge into ${rangeTableName} a + using ( + select cw.* + from cu_member_awards cw + inner join ( + select ca.pk_member, min(ca.pk_id) pk_id + from cu_member_awards ca + inner join bd_awards bw + on ca.new_level = bw.pk_id + and bw.del_flag = 0 + and bw.awards_value >= 5 + where ca.del_flag = 0 + and ca.up_type = 1 + and ca.period = #{period} + and ca.award_type = #{awardType} + and ca.pk_member in + (select pk_id + from cu_member start + with pk_id = #{pkMember} + connect by prior pk_parent = pk_id) + group by ca.pk_member + ) cx on cw.pk_id = cx.pk_id where cw.del_flag = 0 + ) b on (a.pk_member = b.pk_member) + when matched then + update set + + a.pk_awards = b.old_level + + + - select bl.pk_id,bonus_type,first_order,second_order,third_order,fourth_order,bl.pk_country, - cal_type,bd.pk_grade from bd_bonus_direct_loop bl - inner join BD_LOOP_DETAILS bd - on bl.pk_id = bd.pk_bonus_direct - where bl.del_flag=0 and bd.del_flag=0 - - diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/ext/CuMemberSettleExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/ext/CuMemberSettleExt.java index 65523da5..ae1744e1 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/ext/CuMemberSettleExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/ext/CuMemberSettleExt.java @@ -7,11 +7,7 @@ import lombok.EqualsAndHashCode; import java.math.BigDecimal; /** - * @Description: 日结算表,表内存储网体关系、会员业绩 - * @Author: sui q - * @Time: 2022/10/31 14:22 - * @Classname: CuMemberTreeExt - * @PackageName: com.hzs.common.domain.member.ext + * 日结算表,表内存储网体关系、会员业绩 */ @EqualsAndHashCode(callSuper = true) @Data @@ -300,21 +296,6 @@ public class CuMemberSettleExt extends CuMemberTree { */ private BigDecimal mallBloNewPv; - /** - * 循环中最小业绩 - */ - private BigDecimal minAchieve; - - /** - * 轮 - */ - private Integer round; - - /** - * 次 - */ - private Integer second; - /** * 考核类型,不入库,只用来区分复购考核跟分红考核 */ @@ -363,30 +344,11 @@ public class CuMemberSettleExt extends CuMemberTree { */ private BigDecimal historyPerformancePv; - /** - * 店铺等级 - */ - private Integer storeLevel; - - /** - * 购买创客礼包 - */ - private Integer isMakerGift; /** * 有效状态(1=有效期,2=休止期,3=已终止) */ private Integer expireStatus; - /** - * 是否买过注册 - */ - private Integer isPayReg; - - /** - * 福利比例 - */ - private BigDecimal abonusRatio; - /** * 实发收益总计 */ diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusDirectLoop.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusDirectLoop.java index 2902e6ed..928387bf 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusDirectLoop.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdBonusDirectLoop.java @@ -12,12 +12,7 @@ import lombok.experimental.Accessors; import java.math.BigDecimal; /** - *

* 直推循环配置 - *

- * - * @author zhangjing - * @since 2022-11-03 */ @Data @EqualsAndHashCode(callSuper = true) @@ -77,5 +72,4 @@ public class BdBonusDirectLoop extends BaseEntity { private Integer takeValueType; - } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdRepoDirectPush.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdRepoDirectPush.java index 60cd0306..d72aac15 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdRepoDirectPush.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/BdRepoDirectPush.java @@ -12,12 +12,7 @@ import lombok.experimental.Accessors; import java.math.BigDecimal; /** - *

* 复购直推配置 - *

- * - * @author zhangjing - * @since 2023-06-29 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdBonusDirectLoopExt.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdBonusDirectLoopExt.java index fa9f80f6..be08afb4 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdBonusDirectLoopExt.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/system/config/ext/BdBonusDirectLoopExt.java @@ -2,15 +2,11 @@ package com.hzs.common.domain.system.config.ext; import com.hzs.common.domain.system.config.*; import lombok.Data; + import java.util.List; /** - *

* 直推循环配置 - *

- * - * @author zhangjing - * @since 2022-11-03 */ @Data public class BdBonusDirectLoopExt extends BdBonusDirectLoop { From 5b169701a0b117001e548eb9b4e1f385f5387c74 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Tue, 30 Sep 2025 09:43:04 +0800 Subject: [PATCH 33/41] =?UTF-8?q?##=20bug425=20=E7=89=A9=E6=B5=81=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=8F=9C=E5=8D=95=E4=B8=8B=E8=AE=A2=E5=8D=95=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=BD=AC=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/manage/SaDeliverUnhandledController.java | 2 ++ .../main/java/com/hzs/sale/deliver/vo/DeliverUnhandledVO.java | 2 -- .../hzs/sale/order/controller/manager/SaOrderController.java | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java index 06f40958..f19f0047 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java @@ -124,6 +124,8 @@ public class SaDeliverUnhandledController extends BaseController { for (DeliverUnhandledVO deliverUnhandled : resultList) { // 省市区处理 OrderUtil.handleOrderAddress(areaMap, deliverUnhandled); + // 订单类型枚举转换 + deliverUnhandled.setOrderTypeVal(EOrderType.getLabelByValue(deliverUnhandled.getOrderType())); } } return getDataTable(resultList); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverUnhandledVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverUnhandledVO.java index 755d15fe..e60b76a1 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverUnhandledVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverUnhandledVO.java @@ -36,8 +36,6 @@ public class DeliverUnhandledVO { /** * 订单类型(EOrderType) */ - @JsonIgnore - @Transaction(transactionKey = EnumsPrefixConstants.ORDER_TYPE) private Integer orderType; /** * 订单类型显示 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java index 044a559f..cfe64388 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java @@ -603,7 +603,7 @@ public class SaOrderController extends ParentOrderController { // 获取管理员权限(角色地区范围、体系列表、团队列表) UserAuthorityDTO userAuthorityDTO = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData(); - param.setAreaScopeList(userAuthorityDTO.getRoleAreaScopeList()); + param.setAreaScopeList(userAuthorityDTO.getRoleAreaScopeList()); param.setVertexIdList(userAuthorityDTO.getVertexIdList()); param.setTeamList(userAuthorityDTO.getUserTeamList()); @@ -622,6 +622,8 @@ public class SaOrderController extends ParentOrderController { if (vo.getRecCounty() != null) { vo.setRecCountyName(areaMap.get(vo.getRecCounty())); } + // 订单类型枚举转换 + vo.setOrderTypeVal(EOrderType.getLabelByValue(vo.getOrderType())); } return getDataTable(resultList); } From 715f7ed3dc633c2e9f911f2e2f75230090a36502 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Tue, 30 Sep 2025 09:44:20 +0800 Subject: [PATCH 34/41] =?UTF-8?q?##=20bug425=20=E7=89=A9=E6=B5=81=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=8F=9C=E5=8D=95=E4=B8=8B=E8=AE=A2=E5=8D=95=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=BD=AC=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/hzs/sale/order/vo/OrderInvoicingVO.java | 1 - 1 file changed, 1 deletion(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderInvoicingVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderInvoicingVO.java index af97150e..03655e1b 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderInvoicingVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderInvoicingVO.java @@ -33,7 +33,6 @@ public class OrderInvoicingVO implements Serializable { /** * 订单类型 */ - @Transaction(transactionKey = EnumsPrefixConstants.ORDER_TYPE) private Integer orderType; /** * 订单类型显示 From 4f168e9a147e31cb88b28473a08d91be47056302 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Tue, 30 Sep 2025 10:39:02 +0800 Subject: [PATCH 35/41] =?UTF-8?q?##=20bug425=20=E7=89=A9=E6=B5=81=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=8F=9C=E5=8D=95=E4=B8=8B=E8=AE=A2=E5=8D=95=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=BD=AC=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/SaDeliverUnhandledController.java | 38 +++++++++++++++---- .../sale/deliver/vo/DeliverUnhandledVO.java | 8 +--- .../controller/manager/SaOrderController.java | 4 ++ .../hzs/sale/order/vo/OrderInvoicingVO.java | 2 - .../com/hzs/common/core/enums/ESaleType.java | 12 ++++++ 5 files changed, 47 insertions(+), 17 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java index f19f0047..f127040f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/controller/manage/SaDeliverUnhandledController.java @@ -126,6 +126,20 @@ public class SaDeliverUnhandledController extends BaseController { OrderUtil.handleOrderAddress(areaMap, deliverUnhandled); // 订单类型枚举转换 deliverUnhandled.setOrderTypeVal(EOrderType.getLabelByValue(deliverUnhandled.getOrderType())); + // 销售类型 + deliverUnhandled.setIsGiftVal(ESaleType.getLabelByValue(deliverUnhandled.getIsGift())); + // 发货类型 + deliverUnhandled.setShippingChannelVal(EShippingChannel.getLabelByValue(deliverUnhandled.getShippingChannel())); + // 订单状态 + deliverUnhandled.setOrderStatusVal(EOrderStatus.getLabelByValue(deliverUnhandled.getOrderStatus())); + // 发货方式 + deliverUnhandled.setDeliveryWayVal(EDelivery.getLabelByValue(deliverUnhandled.getDeliveryWay())); + // 供应方式 + deliverUnhandled.setOperateScopeVal(ESupplyWay.getLabelByVal(deliverUnhandled.getOperateScope())); + // 运输方式 + deliverUnhandled.setTranTypeVal(ETransportType.getLabelByValue(deliverUnhandled.getTranType())); + // 预售状态 + deliverUnhandled.setPreSaleStatusVal(EPresaleStatus.getLabelByValue(deliverUnhandled.getPreSaleStatus())); } } return getDataTable(resultList); @@ -176,14 +190,22 @@ public class SaDeliverUnhandledController extends BaseController { // 省市区处理 OrderUtil.handleOrderAddress(areaMap, deliverUnhandled); - deliverUnhandled.setIsGiftVal(transactionMap.get(EnumsPrefixConstants.E_SALE_TYPE + deliverUnhandled.getIsGift())); - deliverUnhandled.setDeliveryWayVal(transactionMap.get(EnumsPrefixConstants.DELIVERY + deliverUnhandled.getDeliveryWay())); - deliverUnhandled.setOperateScopeVal(transactionMap.get(EnumsPrefixConstants.SUPPLY_WAY + deliverUnhandled.getOperateScope())); - deliverUnhandled.setShippingChannelVal(transactionMap.get(EnumsPrefixConstants.E_SHIPPING_CHANNEL + deliverUnhandled.getShippingChannel())); - deliverUnhandled.setTranTypeVal(transactionMap.get(EnumsPrefixConstants.ENU_TRA + deliverUnhandled.getTranType())); - deliverUnhandled.setPreSaleStatusVal(transactionMap.get(EnumsPrefixConstants.PRESALE_STATUS + deliverUnhandled.getPreSaleStatus())); - deliverUnhandled.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + deliverUnhandled.getOrderType())); - deliverUnhandled.setOrderStatusVal(transactionMap.get(EnumsPrefixConstants.ORDER_STATUS + deliverUnhandled.getOrderStatus())); + // 订单类型枚举转换 + deliverUnhandled.setOrderTypeVal(EOrderType.getLabelByValue(deliverUnhandled.getOrderType())); + // 销售类型 + deliverUnhandled.setIsGiftVal(ESaleType.getLabelByValue(deliverUnhandled.getIsGift())); + // 发货类型 + deliverUnhandled.setShippingChannelVal(EShippingChannel.getLabelByValue(deliverUnhandled.getShippingChannel())); + // 订单状态 + deliverUnhandled.setOrderStatusVal(EOrderStatus.getLabelByValue(deliverUnhandled.getOrderStatus())); + // 发货方式 + deliverUnhandled.setDeliveryWayVal(EDelivery.getLabelByValue(deliverUnhandled.getDeliveryWay())); + // 供应方式 + deliverUnhandled.setOperateScopeVal(ESupplyWay.getLabelByVal(deliverUnhandled.getOperateScope())); + // 运输方式 + deliverUnhandled.setTranTypeVal(ETransportType.getLabelByValue(deliverUnhandled.getTranType())); + // 预售状态 + deliverUnhandled.setPreSaleStatusVal(EPresaleStatus.getLabelByValue(deliverUnhandled.getPreSaleStatus())); } } ExcelUtil util = new ExcelUtil<>(DeliverUnhandledVO.class); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverUnhandledVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverUnhandledVO.java index e60b76a1..fac3344f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverUnhandledVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/deliver/vo/DeliverUnhandledVO.java @@ -6,6 +6,7 @@ import com.hzs.common.core.annotation.Excel; import com.hzs.common.core.annotation.Transaction; import com.hzs.common.core.constant.EnumsPrefixConstants; import lombok.Data; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Date; @@ -89,7 +90,6 @@ public class DeliverUnhandledVO { /** * 销售类型 */ - @Transaction(transactionKey = EnumsPrefixConstants.E_SALE_TYPE) @JsonIgnore private Integer isGift; /** @@ -153,7 +153,6 @@ public class DeliverUnhandledVO { /** * 发货类型 */ - @Transaction(transactionKey = EnumsPrefixConstants.E_SHIPPING_CHANNEL) @JsonIgnore private Integer shippingChannel; /** @@ -178,7 +177,6 @@ public class DeliverUnhandledVO { /** * 订单状态(EOrderStatus) */ - @Transaction(transactionKey = EnumsPrefixConstants.ORDER_STATUS) private Integer orderStatus; /** * 订单状态显示 @@ -190,7 +188,6 @@ public class DeliverUnhandledVO { * 发货方式(EDelivery) */ @JsonIgnore - @Transaction(transactionKey = EnumsPrefixConstants.DELIVERY) private Integer deliveryWay; /** * 发货方式显示 @@ -202,7 +199,6 @@ public class DeliverUnhandledVO { * 供应方式(ESupplyWay) */ @JsonIgnore - @Transaction(transactionKey = EnumsPrefixConstants.SUPPLY_WAY) private Integer operateScope; /** * 供应方式显示 @@ -214,7 +210,6 @@ public class DeliverUnhandledVO { * 运输方式(ETransportType) */ @JsonIgnore - @Transaction(transactionKey = EnumsPrefixConstants.ENU_TRA) private Integer tranType; /** * 运输方式显示 @@ -226,7 +221,6 @@ public class DeliverUnhandledVO { * 预售状态(EPresaleStatus) */ @JsonIgnore - @Transaction(transactionKey = EnumsPrefixConstants.PRESALE_STATUS) private Integer preSaleStatus; /** * 预售状态显示 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java index cfe64388..4ba0d934 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java @@ -624,6 +624,10 @@ public class SaOrderController extends ParentOrderController { } // 订单类型枚举转换 vo.setOrderTypeVal(EOrderType.getLabelByValue(vo.getOrderType())); + // 发货方式 + vo.setDeliveryWayVal(EDelivery.getLabelByValue(vo.getDeliveryWay())); + // 供应方式 + vo.setPayTypeVal(EPayType.getEnumByValue(vo.getPayType()).getLabel()); } return getDataTable(resultList); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderInvoicingVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderInvoicingVO.java index 03655e1b..40e53f95 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderInvoicingVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/vo/OrderInvoicingVO.java @@ -121,7 +121,6 @@ public class OrderInvoicingVO implements Serializable { /** * 发货方式 */ - @Transaction(transactionKey = EnumsPrefixConstants.DELIVERY) private Integer deliveryWay; /** * 发货方式显示 @@ -131,7 +130,6 @@ public class OrderInvoicingVO implements Serializable { /** * 支付方式 */ - @Transaction(transactionKey = EnumsPrefixConstants.ORDER_PAY_TYPE) private Integer payType; /** * 支付方式显示 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESaleType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESaleType.java index ac36549c..2ed6942c 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESaleType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ESaleType.java @@ -34,4 +34,16 @@ public enum ESaleType { */ private final String key; + public static String getLabelByValue(Integer value) { + if (null == value) { + return ""; + } + for (ESaleType enums : ESaleType.values()) { + if (enums.getValue() == value) { + return enums.getLabel(); + } + } + return ""; + } + } From 461c25bf4280972090bb743957a476db248e0dd1 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Tue, 30 Sep 2025 10:55:25 +0800 Subject: [PATCH 36/41] =?UTF-8?q?##=20=E8=AE=A2=E5=8D=95=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/sale/order/controller/manager/SaOrderController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java index 4ba0d934..3f6e335f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/controller/manager/SaOrderController.java @@ -626,8 +626,8 @@ public class SaOrderController extends ParentOrderController { vo.setOrderTypeVal(EOrderType.getLabelByValue(vo.getOrderType())); // 发货方式 vo.setDeliveryWayVal(EDelivery.getLabelByValue(vo.getDeliveryWay())); - // 供应方式 - vo.setPayTypeVal(EPayType.getEnumByValue(vo.getPayType()).getLabel()); + // 支付方式 + vo.setPayTypeVal(EOrderPayType.getLabelByValue(vo.getPayType())); } return getDataTable(resultList); } From d00a36b69873837114a926c1a7b62f105b4f0ada Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 30 Sep 2025 11:15:31 +0800 Subject: [PATCH 37/41] =?UTF-8?q?##=20=E5=A5=96=E8=A1=94=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=A4=84=E7=90=86=E6=96=B9=E5=BC=8F=E4=BC=98=E5=8C=96=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CuMemberRetailRangeMapper.java | 11 ++- .../service/ICuMemberRetailRangeService.java | 8 +- .../impl/CuMemberRetailRangeServiceImpl.java | 10 ++- .../service/impl/BonusSettleRangeHandle.java | 26 ++---- .../service/ICuMemberAwardsService.java | 3 +- .../impl/CuMemberAwardsServiceImpl.java | 87 +++++++++++-------- .../achieve/CuMemberRetailRangeMapper.xml | 29 ++++++- 7 files changed, 110 insertions(+), 64 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java index 34944456..19d5e8b6 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailRangeMapper.java @@ -133,7 +133,16 @@ public interface CuMemberRetailRangeMapper extends BaseMapper queryEnoughAwardMember(@Param("rangeTableName") String rangeTableName, @Param("totalCheck") BigDecimal totalCheck, - @Param("pkAwards") Integer pkAwards); + @Param("awardsValue") Integer awardsValue); + + /** + * 查询符合奖衔业绩、安置条件会员 + */ + List queryEnoughAwardPlaceMember(@Param("rangeTableName") String rangeTableName, + @Param("awardsValue") Integer awardsValue, + @Param("totalCheck") BigDecimal totalCheck, + @Param("placeDeptNum") Integer placeDeptNum, + @Param("checkAwardsValue") Integer checkAwardsValue); /** * 查询会员血缘下达标奖衔会员 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java index 3215d569..5d0f7e43 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailRangeService.java @@ -91,7 +91,13 @@ public interface ICuMemberRetailRangeService extends IService queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards); + List queryEnoughAwardMember(String rangeTableName, BigDecimal totalCheck, Integer awardsValue); + + /** + * 查询符合奖衔业绩、安置条件会员 + */ + List queryEnoughAwardPlaceMember(String rangeTableName, Integer awardsValue, BigDecimal totalCheck, Integer placeDeptNum, + Integer checkAwardsValue); /** * 查询会员血缘下达标奖衔会员 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java index 3c8f706a..8afe98de 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberRetailRangeServiceImpl.java @@ -187,8 +187,14 @@ public class CuMemberRetailRangeServiceImpl extends ServiceImpl queryEnoughAwardMember(String settleTableName, BigDecimal totalCheck, Integer pkAwards) { - return baseMapper.queryEnoughAwardMember(settleTableName, totalCheck, pkAwards); + public List queryEnoughAwardMember(String rangeTableName, BigDecimal totalCheck, Integer awardsValue) { + return baseMapper.queryEnoughAwardMember(rangeTableName, totalCheck, awardsValue); + } + + @Override + public List queryEnoughAwardPlaceMember(String rangeTableName, Integer awardsValue, BigDecimal totalCheck, Integer placeDeptNum, + Integer checkAwardsValue) { + return baseMapper.queryEnoughAwardPlaceMember(rangeTableName, awardsValue, totalCheck, placeDeptNum, checkAwardsValue); } @Override 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 1a251c45..9d911b55 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 @@ -290,8 +290,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { List awardsList = bonusConfigDTO.getAwardsList(); awardsList.forEach(bdAwards -> awardsMap.put(bdAwards.getAwardsValue(), bdAwards)); - // 会员奖衔升级记录 - List cuMemberAwardsList = new ArrayList<>(); // 直推收益、见点收益 List cuMemberBonusPushList = new ArrayList<>(); // 领导奖收益、平级奖收益 @@ -306,7 +304,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 更新血缘上业绩、金额 iCuMemberRetailRangeService.updateMemberParentDate(rangeTableName, memberAchieveHashMap); // 处理奖衔 - iCuMemberAwardsService.calculateCuMemberAwards(rangeTableName, awardsList, awardsMap, settleStartDate, period); + iCuMemberAwardsService.calculateCuMemberAwards(rangeTableName, awardsList, settleStartDate, period); // 按照血缘,查询该会员所有伞上会员 List memberRetailRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeParent(rangeTableName, orderList); @@ -337,8 +335,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { sourceMember.setMonthConsumeAmount(sourceMember.getMonthConsumeAmount().add(orderAmount)); // // 自己计算奖衔,目前业绩都只往下传,所以此处暂时不需要处理订单会员的奖衔 // this.calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, sourceMember); - // 累计团队业绩、金额 + 计算奖衔 - cuMemberAwardsList.addAll(this.calculateParentAwards(period, memberRangeExtMap, rangeTableName, sourceMember, saOrderExt, awardsMap)); + // 累计团队业绩、金额 + this.calculateParentDate(memberRangeExtMap, sourceMember, saOrderExt); if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { @@ -413,12 +411,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { if (cuMemberBonusStageList.size() > 0) { bonusRecordDetailVO.setCuMemberBonusStageList(cuMemberBonusStageList); } -// if (cuMemberAwardsList.size() > 0) { -// // 批量插入会员奖衔记录 -// iCuMemberAwardsService.saveBatchCuMemberAwards(cuMemberAwardsList); -// // 更新会员表奖衔数据 -// iCuMemberService.updateCuMemberAwardsByPeriod(period); -// } // 更新日结数据 iCuMemberRetailRangeService.updateCuMemberRetailRange(rangeTableName, memberRangeExtMap); // 更新日结明细数据 @@ -1094,12 +1086,10 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // } /** - * 计算团队奖衔 + * 计算团队数据 */ - private List calculateParentAwards(Integer period, Map memberRangeExtMap, String rangeTableName, - CuMemberRetailRangeExt sourceMember, SaOrderExt saOrderExt, Map retailAwardsMap) { - // 会员奖衔升级列表 - List cuMemberAwardsList = new ArrayList<>(); + private void calculateParentDate(Map memberRangeExtMap, CuMemberRetailRangeExt sourceMember, + SaOrderExt saOrderExt) { // 订单会员的推荐人 CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(sourceMember.getPkParent()); @@ -1124,12 +1114,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { targetMember.setRepTeamNewPv(targetMember.getRepTeamNewPv().add(orderAchieve)); targetMember.setRepTeamNewAmount(targetMember.getRepTeamNewAmount().add(orderAmount)); } -// // 计算奖衔 -// calculateAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailAwardsMap, cuMemberAwardsList, targetMember); - targetMember = memberRangeExtMap.get(targetMember.getPkParent()); } - return cuMemberAwardsList; } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java index 150fdaf3..e46a11e4 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java @@ -7,7 +7,6 @@ import com.hzs.common.domain.system.config.BdAwards; import java.util.Date; import java.util.List; -import java.util.Map; /** * 会员信息-奖衔升级记录 服务类 @@ -17,7 +16,7 @@ public interface ICuMemberAwardsService extends IService { /** * 计算奖衔 */ - void calculateCuMemberAwards(String rangeTableName, List awardsList, Map awardsMap, Date settleDate, Integer period); + void calculateCuMemberAwards(String rangeTableName, List awardsList, Date settleDate, Integer period); /** * 批量插入奖衔记录 diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java index f98a0506..93fcad52 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java @@ -19,7 +19,6 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.*; -import java.util.stream.Collectors; /** * 会员信息-奖衔升级记录 服务实现类 @@ -37,7 +36,7 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl awardsList, Map awardsMap, Date settleDate, Integer period) { + public void calculateCuMemberAwards(String rangeTableName, List awardsList, Date settleDate, Integer period) { // 回退结算表奖衔 iCuMemberTreeService.updateBackCuMemberRetailRangeAward(rangeTableName, period); // 回退会员表奖衔 @@ -56,7 +55,14 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl> cuMemberRangeExtMap = new HashMap<>(); for (BdAwards bdAwards : awardsList) { - List cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardMember(rangeTableName, bdAwards.getTotalCheck(), bdAwards.getPkId()); + List cuMemberRetailRangeExtList; + if (bdAwards.getPlaceDeptNum() > 0) { + BdAwards checkAwards = awardsList.stream().filter(tmpDate -> tmpDate.getPkId().equals(bdAwards.getPkCheckAwardsLeft())).findFirst().get(); + cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardPlaceMember(rangeTableName, bdAwards.getAwardsValue(), + bdAwards.getTotalCheck(), bdAwards.getPlaceDeptNum(), checkAwards.getAwardsValue()); + } else { + cuMemberRetailRangeExtList = iCuMemberRetailRangeService.queryEnoughAwardMember(rangeTableName, bdAwards.getTotalCheck(), bdAwards.getAwardsValue()); + } cuMemberAwardsList.addAll(this.calculateAwards(rangeTableName, bdAwards, period, cuMemberRetailRangeExtList, cuMemberRangeExtMap)); } if (cuMemberAwardsList.size() > 0) { @@ -70,7 +76,7 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl calculateAwards(String rangeTableName, BdAwards bdAwards, Integer period, - List cuMemberRetailRangeExtList, Map> cuMemberRangeExtMap) { + List cuMemberRetailRangeExtList, Map> cuMemberRangeExtMap) { // 只满足业绩的 List cuMemberAwardsList = new ArrayList<>(); @@ -78,41 +84,48 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl { - List cuMemberRangeExtList = cuMemberRangeExtMap.get(targetMember.getPkMember()); - if (null == cuMemberRangeExtList) { - cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember()); - cuMemberRangeExtMap.put(targetMember.getPkMember(), cuMemberRangeExtList); - } - // 大区 - BigDecimal consumeBigPv = BigDecimal.ZERO; - for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { - // 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩 - BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv()); - if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { - // 累计业绩 > 大区业绩,则累计就成为大区 - consumeBigPv = consumePv; + if (bdAwards.getPlaceDeptNum() > 0 && bdAwards.getCommunityCheck().compareTo(BigDecimal.ZERO) == 0) { + // 需要校验部门奖衔并且小区业绩为0的 + cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate)); + targetMember.setPkAwards(bdAwards.getPkId()); + targetMember.setAwardsValue(bdAwards.getAwardsValue()); + } else { + List cuMemberRangeExtList = cuMemberRangeExtMap.get(targetMember.getPkMember()); + if (null == cuMemberRangeExtList) { + cuMemberRangeExtList = iCuMemberRetailRangeService.queryCuMemberRetailRangeExtByParent(rangeTableName, targetMember.getPkMember()); + cuMemberRangeExtMap.put(targetMember.getPkMember(), cuMemberRangeExtList); } - } - // 小区业绩 = 团队累计业绩 - 大区业绩 - BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv); - if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) { - // 小区业绩 >= 考核小区业绩 - if (bdAwards.getPlaceDeptNum() > 0) { - if (CollectionUtil.isNotEmpty(cuMemberRangeExtList)) { - // 验证每条血缘下,满足达标数量 - List checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(), - cuMemberRangeExtList.stream().map(CuMemberRetailRangeExt::getPkMember).collect(Collectors.toList())); - if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) { - cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate)); - targetMember.setPkAwards(bdAwards.getPkId()); - targetMember.setAwardsValue(bdAwards.getAwardsValue()); - } + // 大区 + BigDecimal consumeBigPv = BigDecimal.ZERO; + for (CuMemberRetailRangeExt cuMemberRetailRangeExt : cuMemberRangeExtList) { + // 累计业绩 = 团队累计消费业绩 + 个人累计消费业绩 + BigDecimal consumePv = cuMemberRetailRangeExt.getTeamConsumePv().add(cuMemberRetailRangeExt.getConsumePv()); + if (ComputeUtil.compareGreaterThan(consumePv, consumeBigPv)) { + // 累计业绩 > 大区业绩,则累计就成为大区 + consumeBigPv = consumePv; + } + } + // 小区业绩 = 团队累计业绩 - 大区业绩 + BigDecimal smallAreaPv = ComputeUtil.computeSubtract(targetMember.getTeamConsumePv(), consumeBigPv); + if (smallAreaPv.compareTo(bdAwards.getCommunityCheck()) >= 0) { + // 小区业绩 >= 考核小区业绩 + if (bdAwards.getPlaceDeptNum() > 0) { + if (CollectionUtil.isNotEmpty(cuMemberRangeExtList)) { + // 验证每条血缘下,满足达标数量 + List checkList = iCuMemberRetailRangeService.listChildAwards(rangeTableName, bdAwards.getPkCheckAwardsLeft(), + Collections.singletonList(targetMember.getPkMember())); + if (CollectionUtil.isNotEmpty(checkList) && checkList.size() >= bdAwards.getPlaceDeptNum()) { + cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate)); + targetMember.setPkAwards(bdAwards.getPkId()); + targetMember.setAwardsValue(bdAwards.getAwardsValue()); + } + } + } else { + // 不需要考核血缘达标,直接给奖衔 + cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate)); + targetMember.setPkAwards(bdAwards.getPkId()); + targetMember.setAwardsValue(bdAwards.getAwardsValue()); } - } else { - // 不需要考核血缘达标,直接给奖衔 - cuMemberAwardsList.add(getCuMemberRetailAwards(targetMember, period, bdAwards, EAwardsType.RANGE_TYPE.getValue(), targetMember.getPkAwards(), nowDate)); - targetMember.setPkAwards(bdAwards.getPkId()); - targetMember.setAwardsValue(bdAwards.getAwardsValue()); } } }); 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 7393201f..1210480f 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 @@ -980,9 +980,36 @@ + + + From 969e8e29583c30c8cc8c6567553f56d9cb037a93 Mon Sep 17 00:00:00 2001 From: woody Date: Tue, 30 Sep 2025 11:19:01 +0800 Subject: [PATCH 38/41] =?UTF-8?q?feat(RetailMemberVO):=20=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E4=BF=A1=E6=81=AF=E9=A1=B5=E5=AF=BC=E5=87=BA=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E6=94=B6=E7=9B=8A=E5=8C=BA=E5=9F=9F=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8C=E6=B3=A8=E5=86=8C=E4=B8=9A=E7=BB=A9=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E8=B4=A7=E5=B8=81=E7=AC=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzs/member/base/vo/RetailMemberVO.java | 21 +------------------ .../mapper/member/base/CuMemberMapper.xml | 20 +----------------- 2 files changed, 2 insertions(+), 39 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/RetailMemberVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/RetailMemberVO.java index 39db0474..7169ca10 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/RetailMemberVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/RetailMemberVO.java @@ -118,7 +118,7 @@ public class RetailMemberVO implements Serializable { /** * 消费业绩 注册业绩 */ - @Excel(name = "注册业绩($)") + @Excel(name = "注册业绩") private BigDecimal consumeAchieve; /** * 隶属体系 @@ -161,26 +161,7 @@ public class RetailMemberVO implements Serializable { private String memberAccountVal; @Excel(name = "收益状态") private String incomeStatusVal; - /** - * 省 - */ - @Excel(name = "收益区省") - private String giftProvince; - private Integer province; - - /** - * 市 - */ - @Excel(name = "收益区市") - private String giftCity; - private Integer city; - /** - * 县(区) - */ - @Excel(name = "收益区县(区)") - private String giftCounty; - private Integer county; /** * 创建时间 */ diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml index bea85627..2eb85c36 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -1993,10 +1993,7 @@ awar.awards_name as pkRangeAwardsVal, awm.awards_name as pkMaxAwardsVal, par.member_code parMemberCode, - par.member_name parMemberName, - pr.NAME giftProvince, - cty.NAME giftCity, - con.NAME giftCounty + par.member_name parMemberName FROM cu_member cm inner join CU_MEMBER_ACCOUNT cma on cm.pk_id = cma.PK_MEMBER @@ -2018,12 +2015,6 @@ on cmt.pk_id = cm.pk_team_code left join CU_MEMBER_RETAIL_REGION cmrr on cm.pk_id = cmrr.PK_MEMBER and cmrr.effective = 0 and cmrr.del_flag = 0 - left join BD_AREA pr - on pr.pk_id = cmrr.PROVINCE - left join BD_AREA cty - on cty.pk_id = cmrr.CITY - left join BD_AREA con - on con.pk_id = cmrr.COUNTY WHERE cm.del_flag = 0 and cm.pk_id in ( SELECT cm.PK_ID @@ -2146,15 +2137,6 @@ and cma.IS_CONSUME=#{isConsume} - - and cmrr.PROVINCE=#{province} - - - and cmrr.CITY=#{city} - - - and cmrr.COUNTY=#{county} - and ver.pk_member in From 14c21b60908e79d6edaaad46b82b94662bd00805 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Thu, 9 Oct 2025 10:25:32 +0800 Subject: [PATCH 39/41] =?UTF-8?q?##=20bug431=20=E4=B8=9A=E7=BB=A9=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E6=B1=87=E6=80=BB=E9=A1=B5=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CuMemberServiceImpl.java | 46 ++++++++++-------- .../hzs/member/census/vo/CensusSummaryVo.java | 47 +++++-------------- 2 files changed, 37 insertions(+), 56 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index 9fd7c590..8fca1f7c 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -3191,7 +3191,7 @@ public class CuMemberServiceImpl extends ServiceImpl i CensusSummaryVo censusSummaryVo = new CensusSummaryVo(); censusSummaryVo.setSettleDate(day); - // 注册 + // 精品 BigDecimal reAmount = BigDecimal.ZERO; BigDecimal reAchieve = BigDecimal.ZERO; if (memberMeritsSummaryMap.get(EOrderType.RETAIL_REGISTER.getValue()) != null) { @@ -3201,36 +3201,42 @@ public class CuMemberServiceImpl extends ServiceImpl i censusSummaryVo.setRegisterAmount(reAmount); censusSummaryVo.setRegisterPv(reAchieve); - // 升级 + // 甄选 BigDecimal upAmount = BigDecimal.ZERO; BigDecimal upAchieve = BigDecimal.ZERO; + if (memberMeritsSummaryMap.get(EOrderType.RETAIL_UPGRADE.getValue()) != null) { + upAmount = memberMeritsSummaryMap.get(EOrderType.RETAIL_UPGRADE.getValue()).getAmount(); + upAchieve = memberMeritsSummaryMap.get(EOrderType.RETAIL_UPGRADE.getValue()).getAchieve(); + } censusSummaryVo.setUpgradeAmount(upAmount); censusSummaryVo.setUpgradePv(upAchieve); - // 首购 - censusSummaryVo.setFirstPurchaseAmount(censusSummaryVo.getRegisterAmount().add(censusSummaryVo.getUpgradeAmount())); - censusSummaryVo.setFirstPurchasePv(censusSummaryVo.getRegisterPv().add(censusSummaryVo.getUpgradePv())); - - // 复购订单 - BigDecimal repurchaseAmount = BigDecimal.ZERO; - BigDecimal repurchaseAchieve = BigDecimal.ZERO; + // 商城 + BigDecimal repAmount = BigDecimal.ZERO; + BigDecimal repAchieve = BigDecimal.ZERO; if (memberMeritsSummaryMap.get(EOrderType.RETAIL_REPURCHASE.getValue()) != null) { - repurchaseAmount = memberMeritsSummaryMap.get(EOrderType.RETAIL_REPURCHASE.getValue()).getAmount(); - repurchaseAchieve = memberMeritsSummaryMap.get(EOrderType.RETAIL_REPURCHASE.getValue()).getAchieve(); - } - // 复消 - if (memberMeritsSummaryMap.get(EOrderType.CONSUME_ORDER.getValue()) != null) { - repurchaseAmount = repurchaseAmount.add(memberMeritsSummaryMap.get(EOrderType.RETAIL_CONSUME.getValue()).getAmount()); + repAmount = memberMeritsSummaryMap.get(EOrderType.RETAIL_REPURCHASE.getValue()).getAmount(); + repAchieve = memberMeritsSummaryMap.get(EOrderType.RETAIL_REPURCHASE.getValue()).getAchieve(); } + censusSummaryVo.setRepurchaseAmount(repAmount); + censusSummaryVo.setRepurchasePv(repAchieve); - // 复购 - censusSummaryVo.setRepurchaseAmount(repurchaseAmount); - censusSummaryVo.setRepurchasePv(repurchaseAchieve); + // 五折 + BigDecimal disAmount = BigDecimal.ZERO; + BigDecimal disAchieve = BigDecimal.ZERO; + if (memberMeritsSummaryMap.get(EOrderType.DISCOUNT_ORDER.getValue()) != null) { + disAmount = memberMeritsSummaryMap.get(EOrderType.DISCOUNT_ORDER.getValue()).getAmount(); + disAchieve = memberMeritsSummaryMap.get(EOrderType.DISCOUNT_ORDER.getValue()).getAchieve(); + } + censusSummaryVo.setDiscountAmount(disAmount); + censusSummaryVo.setDiscountPv(disAchieve); // 金额总计 - censusSummaryVo.setAmountTotal(censusSummaryVo.getFirstPurchaseAmount().add(censusSummaryVo.getRepurchaseAmount())); + censusSummaryVo.setAmountTotal(censusSummaryVo.getRegisterAmount().add(censusSummaryVo.getUpgradeAmount()) + .add(censusSummaryVo.getRepurchaseAmount()).add(censusSummaryVo.getDiscountAmount())); // 业绩汇总 - censusSummaryVo.setPvTotal(censusSummaryVo.getFirstPurchasePv().add(censusSummaryVo.getRepurchasePv())); + censusSummaryVo.setPvTotal(censusSummaryVo.getRegisterPv().add(censusSummaryVo.getUpgradePv()) + .add(censusSummaryVo.getRepurchasePv()).add(censusSummaryVo.getDiscountPv())); censusSummaryList.add(censusSummaryVo); } return censusSummaryList; diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/census/vo/CensusSummaryVo.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/census/vo/CensusSummaryVo.java index 91faac1a..b2ad770d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/census/vo/CensusSummaryVo.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/census/vo/CensusSummaryVo.java @@ -19,54 +19,29 @@ public class CensusSummaryVo { @Excel(name = "结算时间") private String settleDate; - /** - * 注册金额 - */ - @Excel(name = "注册金额") + @Excel(name = "精品金额") private BigDecimal registerAmount; - /** - * 注册业绩 - */ - @Excel(name = "注册业绩") + @Excel(name = "精品业绩") private BigDecimal registerPv; - /** - * 升级金额 - */ - @Excel(name = "升级金额") + @Excel(name = "甄选金额") private BigDecimal upgradeAmount; - /** - * 升级业绩 - */ - @Excel(name = "升级业绩") + @Excel(name = "甄选业绩") private BigDecimal upgradePv; - /** - * 首购金额 - */ - @Excel(name = "首购金额") - private BigDecimal firstPurchaseAmount; - - /** - * 首购业绩 - */ - @Excel(name = "首购业绩") - private BigDecimal firstPurchasePv; - - /** - * 复购金额 - */ - @Excel(name = "复购金额") + @Excel(name = "商城金额") private BigDecimal repurchaseAmount; - /** - * 复购pv - */ - @Excel(name = "复购业绩") + @Excel(name = "商城业绩") private BigDecimal repurchasePv; + @Excel(name = "五折金额") + private BigDecimal discountAmount; + + @Excel(name = "五折业绩") + private BigDecimal discountPv; /** * 金额总计 */ From 6c795805a56ab4307564fcaf57793328595fa44c Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 9 Oct 2025 14:52:50 +0800 Subject: [PATCH 40/41] =?UTF-8?q?##=20=E7=94=9F=E4=BA=A7=E7=8E=AF=E5=A2=83?= =?UTF-8?q?xxl-job=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bd-third/src/main/resources/application-online.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bd-third/src/main/resources/application-online.properties b/bd-third/src/main/resources/application-online.properties index e817946a..7e2c7277 100644 --- a/bd-third/src/main/resources/application-online.properties +++ b/bd-third/src/main/resources/application-online.properties @@ -1,14 +1,14 @@ ### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册; -xxl.job.admin.addresses=http://172.26.201.209:8181/xxl-admin +xxl.job.admin.addresses=http://172.26.201.225:8181/xxl-admin # log config logging.config=classpath:logback.xml ### 执行器通讯TOKEN [选填]:非空时启用; -xxl.job.accessToken=re_token_online +xxl.job.accessToken=zk_token_online ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册 -xxl.job.executor.appname=xxl-job-re +xxl.job.executor.appname=xxl-job-zk ### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。 xxl.job.executor.address= ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务"; From abbfc85c869bd56ba7785d6f06cdb1edc99533d7 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 9 Oct 2025 15:01:44 +0800 Subject: [PATCH 41/41] =?UTF-8?q?##=20=E7=94=9F=E4=BA=A7=E7=8E=AF=E5=A2=83?= =?UTF-8?q?nacos=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 78e3a6b6..8ea0c486 100644 --- a/pom.xml +++ b/pom.xml @@ -480,7 +480,7 @@ online - 172.26.201.209:8847 + 172.26.201.225:8847 @@ -488,7 +488,7 @@ nacos - reOnline_nacos#202 + zkOnline_nacos#15