From 7a63b310ba41f446986e658c1641e39ac8d9f42a Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Wed, 24 Sep 2025 19:05:58 +0800 Subject: [PATCH 01/34] =?UTF-8?q?##=20=E6=AF=8F=E6=97=A5=E7=82=B9=E4=BD=8D?= =?UTF-8?q?=E6=80=BB=E6=95=B0=E5=A4=84=E7=90=86=EF=BC=9B=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=B8=89=E9=98=B6=E6=AE=B5=E5=A5=96=E9=87=91=E5=8F=91=E6=94=BE?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=AD=97=E6=AE=B5=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 1 + .../hzs/bonus/constant/BonusConstants.java | 16 ++ .../achieve/CuMemberRetailDetailMapper.xml | 1 - .../achieve/CuMemberRetailRangeMapper.xml | 20 +- .../bonus/achieve/CuMemberTreeMapper.xml | 5 +- .../member/achieve/CuMemberRetailDetail.java | 192 +++++++++--------- 6 files changed, 134 insertions(+), 101 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 cde545bd..af4d9618 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 @@ -1011,6 +1011,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE, sourceMember, newRetailDetail, returnRetailDetailList); } + sourceMember.setPointCount(sourceMember.getPointCount() + newPointInt); return returnRetailDetailList; } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java index e0ea54b8..021b5515 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java @@ -20,6 +20,22 @@ public class BonusConstants { * 二阶段奖金 -- 满14,发220 */ public static final BigDecimal TWO_BONUS = new BigDecimal("220"); + /** + * 三阶段一层奖金 -- 第一层满2,发160 + */ + public static final BigDecimal THREE_BONUS_1 = new BigDecimal("160"); + /** + * 三阶段二层奖金 -- 第二层满4,发320 + */ + public static final BigDecimal THREE_BONUS_2 = new BigDecimal("320"); + /** + * 三阶段三层前7点奖金 -- 发130 + */ + public static final BigDecimal THREE_BONUS_3 = new BigDecimal("130"); + /** + * 三阶段三层前最后一点奖金 -- 发155 + */ + public static final BigDecimal THREE_BONUS_38 = new BigDecimal("155"); public static final String POINT_11 = "11"; public static final String POINT_12 = "12"; diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml index b1efab5b..e635dc97 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml @@ -11,7 +11,6 @@ #{items} and cmrd.stage = #{stage} - and cmrd.stage_status = 1 order by cmrd.pk_member, cmrd.child_node 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 6762c774..f8dca51b 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 @@ -175,7 +175,10 @@ x.point_second, x.point_member_second, x.point_third, - x.point_member_third + x.point_member_third, + x.third_bonus_1, + x.third_bonus_2, + x.third_bonus_3 from ${yesterdayDetailTableName} x left join cu_member cm on cm.pk_id = x.pk_member @@ -224,7 +227,10 @@ point_second, point_member_second, point_third, - point_member_third) + point_member_third, + third_bonus_1, + third_bonus_2, + third_bonus_3) values (b.pk_member, b.child_node, b.pk_parent, @@ -267,7 +273,10 @@ b.point_second, b.point_member_second, b.point_third, - b.point_member_third) + b.point_member_third, + b.third_bonus_1, + b.third_bonus_2, + b.third_bonus_3) when matched then update set a.pk_parent = b.pk_parent, @@ -310,7 +319,10 @@ a.point_second = b.point_second, a.point_member_second = b.point_member_second, a.point_third = b.point_third, - a.point_member_third = b.point_member_third + a.point_member_third = b.point_member_third, + a.third_bonus_1 = b.third_bonus_1, + a.third_bonus_2 = b.third_bonus_2, + a.third_bonus_3 = b.third_bonus_3 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 5a304b4c..28dd067a 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 @@ -334,7 +334,10 @@ point_member_second NUMBER(20), point_second NUMBER(8), point_member_third NUMBER(20), - point_third NUMBER(8) + point_third NUMBER(8), + third_bonus_1 NUMBER(8), + third_bonus_2 NUMBER(8), + third_bonus_3 NUMBER(8) ) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailDetail.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailDetail.java index ceaf9aa9..dee3dd8f 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailDetail.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailDetail.java @@ -57,173 +57,160 @@ public class CuMemberRetailDetail { @TableField("STAGE_DATE") private Date stageDate; + + /** + * 点位1-1会员ID + */ + @TableField("POINT_MEMBER_11") + private Long pointMember11; /** * 点位1-1会员子节点 */ @TableField("POINT_11") private Integer point11; + /** + * 点位1-2会员ID + */ + @TableField("POINT_MEMBER_12") + private Long pointMember12; /** * 点位1-2会员子节点 */ @TableField("POINT_12") private Integer point12; + /** + * 点位2-1会员ID + */ + @TableField("POINT_MEMBER_21") + private Long pointMember21; /** * 点位2-1会员子节点 */ @TableField("POINT_21") private Integer point21; + /** + * 点位2-2会员ID + */ + @TableField("POINT_MEMBER_22") + private Long pointMember22; /** * 点位2-2会员子节点 */ @TableField("POINT_22") private Integer point22; + /** + * 点位2-3会员ID + */ + @TableField("POINT_MEMBER_23") + private Long pointMember23; /** * 点位2-3会员子节点 */ @TableField("POINT_23") private Integer point23; + /** + * 点位2-4会员ID + */ + @TableField("POINT_MEMBER_24") + private Long pointMember24; /** * 点位2-4会员子节点 */ @TableField("POINT_24") private Integer point24; + /** + * 点位3-1会员ID + */ + @TableField("POINT_MEMBER_31") + private Long pointMember31; /** * 点位3-1会员子节点 */ @TableField("POINT_31") private Integer point31; + /** + * 点位3-2会员ID + */ + @TableField("POINT_MEMBER_32") + private Long pointMember32; /** * 点位3-2会员子节点 */ @TableField("POINT_32") private Integer point32; + /** + * 点位3-3会员ID + */ + @TableField("POINT_MEMBER_33") + private Long pointMember33; /** * 点位3-3会员子节点 */ @TableField("POINT_33") private Integer point33; + /** + * 点位3-4会员ID + */ + @TableField("POINT_MEMBER_34") + private Long pointMember34; /** * 点位3-4会员子节点 */ @TableField("POINT_34") private Integer point34; + /** + * 点位3-5会员ID + */ + @TableField("POINT_MEMBER_35") + private Long pointMember35; /** * 点位3-5会员子节点 */ @TableField("POINT_35") private Integer point35; + /** + * 点位3-6会员ID + */ + @TableField("POINT_MEMBER_36") + private Long pointMember36; /** * 点位3-6会员子节点 */ @TableField("POINT_36") private Integer point36; + /** + * 点位3-7会员ID + */ + @TableField("POINT_MEMBER_37") + private Long pointMember37; /** * 点位3-7会员子节点 */ @TableField("POINT_37") private Integer point37; - /** - * 点位3-8会员子节点 - */ - @TableField("POINT_38") - private Integer point38; - - /** - * 点位1-1会员ID - */ - @TableField("POINT_MEMBER_11") - private Long pointMember11; - - /** - * 点位1-2会员ID - */ - @TableField("POINT_MEMBER_12") - private Long pointMember12; - - /** - * 点位2-1会员ID - */ - @TableField("POINT_MEMBER_21") - private Long pointMember21; - - /** - * 点位2-2会员ID - */ - @TableField("POINT_MEMBER_22") - private Long pointMember22; - - /** - * 点位2-3会员ID - */ - @TableField("POINT_MEMBER_23") - private Long pointMember23; - - /** - * 点位2-4会员ID - */ - @TableField("POINT_MEMBER_24") - private Long pointMember24; - - /** - * 点位3-1会员ID - */ - @TableField("POINT_MEMBER_31") - private Long pointMember31; - - /** - * 点位3-2会员ID - */ - @TableField("POINT_MEMBER_32") - private Long pointMember32; - - /** - * 点位3-3会员ID - */ - @TableField("POINT_MEMBER_33") - private Long pointMember33; - - /** - * 点位3-4会员ID - */ - @TableField("POINT_MEMBER_34") - private Long pointMember34; - - /** - * 点位3-5会员ID - */ - @TableField("POINT_MEMBER_35") - private Long pointMember35; - - /** - * 点位3-6会员ID - */ - @TableField("POINT_MEMBER_36") - private Long pointMember36; - - /** - * 点位3-7会员ID - */ - @TableField("POINT_MEMBER_37") - private Long pointMember37; - /** * 点位3-8会员ID */ @TableField("POINT_MEMBER_38") private Long pointMember38; + /** + * 点位3-8会员子节点 + */ + @TableField("POINT_38") + private Integer point38; /** * 点位类型(0=普通,1=赠送点位) @@ -244,6 +231,11 @@ public class CuMemberRetailDetail { @TableField("CREATION_TIME") private Date creationTime; + /** + * 第一层会员ID + */ + @TableField("POINT_MEMBER_FIRST") + private Long pointMemberFirst; /** * 第一层会员子节点 */ @@ -251,11 +243,10 @@ public class CuMemberRetailDetail { private Integer pointFirst; /** - * 第一层会员ID + * 第二层会员ID */ - @TableField("POINT_MEMBER_FIRST") - private Long pointMemberFirst; - + @TableField("POINT_MEMBER_SECOND") + private Long pointMemberSecond; /** * 第二层会员子节点 */ @@ -263,11 +254,10 @@ public class CuMemberRetailDetail { private Integer pointSecond; /** - * 第二层会员ID + * 第三层会员ID */ - @TableField("POINT_MEMBER_SECOND") - private Long pointMemberSecond; - + @TableField("POINT_MEMBER_THIRD") + private Long pointMemberThird; /** * 第三层会员子节点 */ @@ -275,10 +265,22 @@ public class CuMemberRetailDetail { private Integer pointThird; /** - * 第三层会员ID + * 三阶段1层奖金次数 */ - @TableField("POINT_MEMBER_THIRD") - private Long pointMemberThird; + @TableField("THIRD_BONUS_1") + private Integer thirdBonus1; + + /** + * 三阶段2层奖金次数 + */ + @TableField("THIRD_BONUS_2") + private Integer thirdBonus2; + + /** + * 三阶段3层奖金次数 + */ + @TableField("THIRD_BONUS_3") + private Integer thirdBonus3; /** * 更新标记(不为null则需要入库) From 9495d34a6257d10945bc5244f28f75f5ea7de937 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 25 Sep 2025 09:43:56 +0800 Subject: [PATCH 02/34] =?UTF-8?q?##=20=E5=85=BC=E5=AE=B9=E4=B8=89=E9=98=B6?= =?UTF-8?q?=E6=AE=B5=E9=83=A8=E5=88=86=E7=82=B9=E4=BD=8D=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E6=94=B6=E7=9B=8A=E5=A4=84=E7=90=86=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=B8=BA=E7=A9=BA=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ICuMemberBonusStageService.java | 2 +- .../impl/CuMemberBonusStageServiceImpl.java | 165 +++++++++--------- .../achieve/CuMemberRetailDetailMapper.xml | 1 + 3 files changed, 89 insertions(+), 79 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusStageService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusStageService.java index 3cc8468c..73ed092d 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusStageService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/ICuMemberBonusStageService.java @@ -40,7 +40,7 @@ public interface ICuMemberBonusStageService extends IService /** * 填充指定点位 */ - boolean fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point, + void fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point, CuMemberRetailDetail sourceRetailDetail, Date settleDate, EBonusStage eBonusStage, List bonusStageDataList); 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 ca20e7fd..89551eda 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 @@ -18,6 +18,7 @@ import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.bonus.CuMemberBonus; import com.hzs.common.domain.member.bonus.CuMemberBonusStage; import com.hzs.common.domain.sale.ext.SaOrderExt; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,6 +30,7 @@ import java.util.*; /** * 会员奖金-阶段收益明细表 服务实现类 */ +@Slf4j @Service public class CuMemberBonusStageServiceImpl extends ServiceImpl implements ICuMemberBonusStageService { @@ -71,7 +73,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl bonusStageDataList) { + public void fillRetailDetail(CuMemberRetailDetail targetRetailDetail, String point, + CuMemberRetailDetail sourceRetailDetail, Date settleDate, EBonusStage eBonusStage, + List bonusStageDataList) { ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + point, sourceRetailDetail.getPkMember()); ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.POINT_FIELD_NAME + point, sourceRetailDetail.getChildNode()); ReflectUtil.setFieldValue(targetRetailDetail, BonusConstants.UPDATE_FLAG, 0); - switch (point) { - case BonusConstants.POINT_31: - case BonusConstants.POINT_32: - case BonusConstants.POINT_33: - case BonusConstants.POINT_34: - case BonusConstants.POINT_35: - case BonusConstants.POINT_36: - case BonusConstants.POINT_37: - case BonusConstants.POINT_38: - // 如果填充的点位是第三层,理论上有可能已经全部填满,需要判断是否已经完成 - boolean isFinish = true; - for (String suffix : BonusConstants.FIELD_LIST) { - if (null == ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + suffix)) { - isFinish = false; - break; + if (EBonusStage.ONE.getValue() == eBonusStage.getValue() + || EBonusStage.TWO.getValue() == eBonusStage.getValue()) { + switch (point) { + case BonusConstants.POINT_31: + case BonusConstants.POINT_32: + case BonusConstants.POINT_33: + case BonusConstants.POINT_34: + case BonusConstants.POINT_35: + case BonusConstants.POINT_36: + case BonusConstants.POINT_37: + case BonusConstants.POINT_38: + // 如果填充的点位是第三层,理论上有可能已经全部填满,需要判断是否已经完成 + boolean isFinish = true; + for (String suffix : BonusConstants.FIELD_LIST) { + if (null == ReflectUtil.getFieldValue(targetRetailDetail, BonusConstants.POINT_MEMBER_FIELD_NAME + suffix)) { + isFinish = false; + break; + } } - } - if (isFinish) { - targetRetailDetail.setStageStatus(EBonusStageStatus.YES.getValue()); - targetRetailDetail.setStageDate(settleDate); - if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) { - // 一阶段,全满发放阶段奖 - // 返回奖金收益处理数据 - BonusStageData bonusStageData = BonusStageData.builder() - .bonusIncome(BonusConstants.ONE_BONUS) - .targetPkMember(targetRetailDetail.getPkMember()) - .targetChildNode(targetRetailDetail.getChildNode()) - .stage(eBonusStage.getValue()) - .stageNum(14) - .build(); - // 生成二阶段点位 - bonusStageData.setTwoRetailDetail(CuMemberRetailDetail.builder() - .pkMember(targetRetailDetail.getPkMember()) - .childNode(targetRetailDetail.getChildNode()) - .pkParent(targetRetailDetail.getPkParent()) - .stage(EBonusStage.TWO.getValue()) - .stageStatus(EBonusStageStatus.NO.getValue()) - .pointType(targetRetailDetail.getPointType()) - .pointGift(targetRetailDetail.getPointGift()) - .creationTime(settleDate) - .updateBool(0) - .build()); - bonusStageDataList.add(bonusStageData); - } else if (EBonusStage.TWO.getValue() == eBonusStage.getValue()) { - // 二阶段,全满发放阶段奖 - // 返回奖金收益处理数据 - BonusStageData bonusStageData = BonusStageData.builder() - .bonusIncome(BonusConstants.TWO_BONUS) - .targetPkMember(targetRetailDetail.getPkMember()) - .targetChildNode(targetRetailDetail.getChildNode()) - .stage(eBonusStage.getValue()) - .stageNum(14) - .build(); - bonusStageData.setThreeRetailDetail(CuMemberRetailDetail.builder() - .pkMember(targetRetailDetail.getPkMember()) - .childNode(targetRetailDetail.getChildNode()) - .pkParent(targetRetailDetail.getPkParent()) - .stage(EBonusStage.THREE.getValue()) - .stageStatus(EBonusStageStatus.NO.getValue()) - .pointType(targetRetailDetail.getPointType()) - .pointGift(targetRetailDetail.getPointGift()) - .creationTime(settleDate) - .updateBool(0) - .build()); - bonusStageDataList.add(bonusStageData); - } else if (EBonusStage.THREE.getValue() == eBonusStage.getValue()) { - // TODO 三阶段发放特殊处理 - // TODO 三阶段填充满,判断是否需要赠送点位 + if (isFinish) { + targetRetailDetail.setStageStatus(EBonusStageStatus.YES.getValue()); + targetRetailDetail.setStageDate(settleDate); + if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) { + // 一阶段,全满发放阶段奖 + // 返回奖金收益处理数据 + BonusStageData bonusStageData = BonusStageData.builder() + .bonusIncome(BonusConstants.ONE_BONUS) + .targetPkMember(targetRetailDetail.getPkMember()) + .targetChildNode(targetRetailDetail.getChildNode()) + .stage(eBonusStage.getValue()) + .stageNum(14) + .build(); + // 生成二阶段点位 + bonusStageData.setTwoRetailDetail(CuMemberRetailDetail.builder() + .pkMember(targetRetailDetail.getPkMember()) + .childNode(targetRetailDetail.getChildNode()) + .pkParent(targetRetailDetail.getPkParent()) + .stage(EBonusStage.TWO.getValue()) + .stageStatus(EBonusStageStatus.NO.getValue()) + .pointType(targetRetailDetail.getPointType()) + .pointGift(targetRetailDetail.getPointGift()) + .creationTime(settleDate) + .updateBool(0) + .build()); + bonusStageDataList.add(bonusStageData); + } else { + // 二阶段,全满发放阶段奖 + // 返回奖金收益处理数据 + BonusStageData bonusStageData = BonusStageData.builder() + .bonusIncome(BonusConstants.TWO_BONUS) + .targetPkMember(targetRetailDetail.getPkMember()) + .targetChildNode(targetRetailDetail.getChildNode()) + .stage(eBonusStage.getValue()) + .stageNum(14) + .build(); + bonusStageData.setThreeRetailDetail(CuMemberRetailDetail.builder() + .pkMember(targetRetailDetail.getPkMember()) + .childNode(targetRetailDetail.getChildNode()) + .pkParent(targetRetailDetail.getPkParent()) + .stage(EBonusStage.THREE.getValue()) + .stageStatus(EBonusStageStatus.NO.getValue()) + .pointType(targetRetailDetail.getPointType()) + .pointGift(targetRetailDetail.getPointGift()) + .creationTime(settleDate) + .updateBool(0) + .build()); + bonusStageDataList.add(bonusStageData); + } + return; + } + break; + } + } else { + // TODO 三阶段发放特殊处理 + // TODO 三阶段填充满,判断是否需要赠送点位 + switch (point) { + case BonusConstants.POINT_11: + case BonusConstants.POINT_12: - } - return true; - } - break; + break; + } } - return false; } @Override diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml index e635dc97..b1efab5b 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml @@ -11,6 +11,7 @@ #{items} and cmrd.stage = #{stage} + and cmrd.stage_status = 1 order by cmrd.pk_member, cmrd.child_node From 5d19bb24c5e581409e7f9115686fbb066c32acf6 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 25 Sep 2025 09:48:40 +0800 Subject: [PATCH 03/34] =?UTF-8?q?##=20=E9=98=B6=E6=AE=B5=E6=94=B6=E7=9B=8A?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9D=A5=E6=BA=90=E4=BC=9A=E5=91=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/bonus/service/impl/BonusSettleRangeHandle.java | 1 + .../mapper/bonus/bonus/CuMemberBonusStageMapper.xml | 4 ++-- .../hzs/common/domain/member/bonus/CuMemberBonusStage.java | 6 ++++++ 3 files changed, 9 insertions(+), 2 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 af4d9618..5d23b740 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 @@ -1114,6 +1114,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { cuMemberBonusStage.setChildNode(bonusStageData.getTargetChildNode()); cuMemberBonusStage.setStage(bonusStageData.getStage()); cuMemberBonusStage.setStageNum(bonusStageData.getStageNum()); + cuMemberBonusStage.setPkSourceMember(sourceMember.getPkMember()); stageIncomeRemark(saOrderExt, cuMemberBonusStage, sourceMember, targetMember); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusStage, saOrderExt != null ? saOrderExt.getOrderAmount() : null, saOrderExt != null ? saOrderExt.getInExchangeRate() : null); if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusStage.getIncomeStatus()) { diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml index 34f3bbdd..4bcea10d 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml @@ -22,13 +22,13 @@ cal_type, cal_achieve, cal_value, pretax_income, income_tax, real_income, remark, income_ratio, income_dial_ratio, order_dial_ratio, - pk_creator, child_node, stage, stage_num) + pk_creator, child_node, stage, stage_num, pk_source_member) values ( #{item.pkBonus}, #{item.pkOrder}, #{item.pkBonusItems}, #{item.incomeStatus}, #{item.calType}, #{item.calAchieve}, #{item.calValue}, #{item.pretaxIncome}, #{item.incomeTax}, #{item.realIncome}, #{item.remark}, #{item.incomeRatio}, #{item.incomeDialRatio}, #{item.orderDialRatio}, - #{item.pkCreator}, #{item.childNode}, #{item.stage}, #{item.stageNum}) + #{item.pkCreator}, #{item.childNode}, #{item.stage}, #{item.stageNum}, #{item.pkSourceMember}) SELECT 1 FROM dual diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonusStage.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonusStage.java index 746a38e0..d67b6fe5 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonusStage.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonusStage.java @@ -133,5 +133,11 @@ public class CuMemberBonusStage extends BaseEntity { @TableField("STAGE_NUM") private Integer stageNum; + /** + * 来源会员ID + */ + @TableField("PK_SOURCE_MEMBER") + private Long pkSourceMember; + } From 4030dbe39ad746e28132c1f76ad4e55a812dc7f3 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 25 Sep 2025 10:34:43 +0800 Subject: [PATCH 04/34] =?UTF-8?q?##=20Opt=20-=20=E5=A5=96=E9=87=91?= =?UTF-8?q?=E6=9D=A5=E6=BA=90=E8=B0=83=E6=95=B4=E6=9D=A5=E6=BA=90ID?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91&=E5=A5=96=E9=87=91=E6=98=8E?= =?UTF-8?q?=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/ApiCuMemberBonusController.java | 9 +- .../service/impl/BonusGrantServiceImpl.java | 8 +- .../bonus/service/impl/BonusSettleHandle.java | 74 +++---- .../service/impl/BonusSettleRangeHandle.java | 4 +- .../impl/CuMemberBonusServiceImpl.java | 194 ++++++++-------- .../hzs/bonus/bonus/vo/CuMemberBonusVO.java | 86 +------- .../bonus/bonus/CuMemberBonusDetailMapper.xml | 52 +++-- .../bonus/bonus/CuMemberBonusMapper.xml | 104 ++------- .../bonus/bonus/CuMemberBonusStageMapper.xml | 16 +- .../domain/member/bonus/CuMemberBonus.java | 208 +----------------- 10 files changed, 225 insertions(+), 530 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java index 93552aa3..dc5a6d20 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/controller/api/ApiCuMemberBonusController.java @@ -50,10 +50,11 @@ public class ApiCuMemberBonusController extends BaseController { MemberBonusVO memberBonusVO = BeanUtil.copyProperties(cuMemberBonus, MemberBonusVO.class, "settleDate"); memberBonusVO.setServiceSpend(BigDecimal.ZERO); memberBonusVO.setSettleDate(DateUtils.currentDate()); - BigDecimal serviceSpend = ComputeUtil.computeSubtract( - ComputeUtil.computeAddNum(cuMemberBonus.getRetailRangeIncome(), cuMemberBonus.getRetailSameLevelIncome(), cuMemberBonus.getRetailAreaIncome(), cuMemberBonus.getRepurRangeIncome()), - cuMemberBonus.getRetailRealSubtotal() - ); +// BigDecimal serviceSpend = ComputeUtil.computeSubtract( +// ComputeUtil.computeAddNum(cuMemberBonus.getRetailRangeIncome(), cuMemberBonus.getRetailSameLevelIncome(), cuMemberBonus.getRetailAreaIncome(), cuMemberBonus.getRepurRangeIncome()), +// cuMemberBonus.getRetailRealSubtotal() +// ); + BigDecimal serviceSpend = BigDecimal.ZERO; memberBonusVO.setBackPoints(serviceSpend); memberBonusVOList.add(memberBonusVO); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java index 5f3dae11..c8a4d4a2 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusGrantServiceImpl.java @@ -179,9 +179,9 @@ public class BonusGrantServiceImpl implements IBonusGrantService { // 奖金币(首购+复购+云代+海粉+嗨粉+店铺) packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate); // 重销币(商城重消+平台服务费) - packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate); +// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate); // 复购券 - packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate); +// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate); }); List seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); // 新增流水明细,记录奖金明细的发放状态、消费明细 @@ -236,9 +236,9 @@ public class BonusGrantServiceImpl implements IBonusGrantService { // 奖金币(首购+复购+云代+海粉+嗨粉+店铺) packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.BONUS.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRealIncomeTotal(), currencyDTO.getOutExchangeRate()), settleDate); // 重销币(商城重消+平台服务费) - packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate); +// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPEAT.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getBackPoints(), currencyDTO.getOutExchangeRate()), settleDate); // 复购券 - packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate); +// packAccountTrade(cuMemberTradeList, bdAccountValueMap, EAccount.REPURCHASE.getValue(), currentDateTime, cuMemberBonus, ComputeUtil.computeMultiply(cuMemberBonus.getRepurCouponSubtotal(), currencyDTO.getOutExchangeRate()), settleDate); }); List seqList = iCuMemberTradeService.batchQueryCuMemberTradeSeq(cuMemberTradeList.size()); // 新增流水明细,记录奖金明细的发放状态、消费明细 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 106d74a0..9873611b 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 @@ -163,43 +163,43 @@ public abstract class BonusSettleHandle { .pkRate(pkRate) .incomeStatus(incomeStatus) .directIncome(BigDecimal.ZERO) - .expandIncome(BigDecimal.ZERO) - .expandNoCapping(BigDecimal.ZERO) - .expandCapping(BigDecimal.ZERO) - .coachIncome(BigDecimal.ZERO) - .shareIncome(BigDecimal.ZERO) - .serviceIncome(BigDecimal.ZERO) - .backPoints(BigDecimal.ZERO) - .serviceSpend(BigDecimal.ZERO) - .purRealSubtotal(BigDecimal.ZERO) - .repurPushIncome(BigDecimal.ZERO) - .repurRangeIncome(BigDecimal.ZERO) - .repurExpandIncome(BigDecimal.ZERO) - .repurRealSubtotal(BigDecimal.ZERO) - .cloudDirectIncome(BigDecimal.ZERO) - .cloudPurIncome(BigDecimal.ZERO) - .cloudRepurIncome(BigDecimal.ZERO) - .cloudRealSubtotal(BigDecimal.ZERO) - .repurCoupon(BigDecimal.ZERO) - .repurCouponShare(BigDecimal.ZERO) - .repurCouponSubtotal(BigDecimal.ZERO) +// .expandIncome(BigDecimal.ZERO) +// .expandNoCapping(BigDecimal.ZERO) +// .expandCapping(BigDecimal.ZERO) +// .coachIncome(BigDecimal.ZERO) +// .shareIncome(BigDecimal.ZERO) +// .serviceIncome(BigDecimal.ZERO) +// .backPoints(BigDecimal.ZERO) +// .serviceSpend(BigDecimal.ZERO) +// .purRealSubtotal(BigDecimal.ZERO) +// .repurPushIncome(BigDecimal.ZERO) +// .repurRangeIncome(BigDecimal.ZERO) +// .repurExpandIncome(BigDecimal.ZERO) +// .repurRealSubtotal(BigDecimal.ZERO) +// .cloudDirectIncome(BigDecimal.ZERO) +// .cloudPurIncome(BigDecimal.ZERO) +// .cloudRepurIncome(BigDecimal.ZERO) +// .cloudRealSubtotal(BigDecimal.ZERO) +// .repurCoupon(BigDecimal.ZERO) +// .repurCouponShare(BigDecimal.ZERO) +// .repurCouponSubtotal(BigDecimal.ZERO) .globalPoints(BigDecimal.ZERO) - .carAwardPoints(BigDecimal.ZERO) - .hiFunIncome(BigDecimal.ZERO) - .haiFunIncome(BigDecimal.ZERO) +// .carAwardPoints(BigDecimal.ZERO) +// .hiFunIncome(BigDecimal.ZERO) +// .haiFunIncome(BigDecimal.ZERO) .storeIncome(BigDecimal.ZERO) - .makerDirectIncome(BigDecimal.ZERO) - .makerShareIncome(BigDecimal.ZERO) - .makerRealSubtotal(BigDecimal.ZERO) +// .makerDirectIncome(BigDecimal.ZERO) +// .makerShareIncome(BigDecimal.ZERO) +// .makerRealSubtotal(BigDecimal.ZERO) .realIncomeTotal(BigDecimal.ZERO) - .retailRangeIncome(BigDecimal.ZERO) - .retailSameLevelIncome(BigDecimal.ZERO) - .retailAreaIncome(BigDecimal.ZERO) - .retailBenefitRangeIncome(BigDecimal.ZERO) - .retailMonthRepurchaseIncome(BigDecimal.ZERO) - .retailBenefitAvgIncome(BigDecimal.ZERO) - .retailBenefitIncome(BigDecimal.ZERO) - .retailRealSubtotal(BigDecimal.ZERO) +// .retailRangeIncome(BigDecimal.ZERO) +// .retailSameLevelIncome(BigDecimal.ZERO) +// .retailAreaIncome(BigDecimal.ZERO) +// .retailBenefitRangeIncome(BigDecimal.ZERO) +// .retailMonthRepurchaseIncome(BigDecimal.ZERO) +// .retailBenefitAvgIncome(BigDecimal.ZERO) +// .retailBenefitIncome(BigDecimal.ZERO) +// .retailRealSubtotal(BigDecimal.ZERO) .build(); cuMemberBonus.setPkCreator(MagicNumberConstants.PK_ADMIN); cuMemberBonus.setPkCountry(pkCountry); @@ -223,8 +223,8 @@ public abstract class BonusSettleHandle { backRatio = bdBonusDeduct.getBackRatio(); platformRatio = bdBonusDeduct.getPlatformRatio(); } - cuMemberBonus.setBackPoints(ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), ComputeUtil.computeBonusMultiply(pretaxIncome, backRatio))); - cuMemberBonus.setServiceSpend(ComputeUtil.computeAdd(cuMemberBonus.getServiceSpend(), ComputeUtil.computeBonusMultiply(pretaxIncome, platformRatio))); +// cuMemberBonus.setBackPoints(ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), ComputeUtil.computeBonusMultiply(pretaxIncome, backRatio))); +// cuMemberBonus.setServiceSpend(ComputeUtil.computeAdd(cuMemberBonus.getServiceSpend(), ComputeUtil.computeBonusMultiply(pretaxIncome, platformRatio))); } /** @@ -233,7 +233,7 @@ public abstract class BonusSettleHandle { protected void setRetailTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) { setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail); BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME); - cuMemberBonus.setRetailRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRetailRealSubtotal(), realIncome)); +// cuMemberBonus.setRetailRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRetailRealSubtotal(), realIncome)); cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome)); } 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 5d23b740..b15967f9 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 @@ -742,7 +742,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { rangeRetailRemark(saOrderExt, cuMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, cuMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); if (EBonusIncomeStatus.NORMAL.getValue() == cuMemberBonusRange.getIncomeStatus()) { - cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome())); +// cuMemberBonus.setRetailRangeIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailRangeIncome(), cuMemberBonusRange.getPretaxIncome())); setRetailTotal(bdBonusDeduct, cuMemberBonus, cuMemberBonusRange); } memberBonusRangeList.add(cuMemberBonusRange); @@ -762,7 +762,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { oriRetailRangeRemark(saOrderExt, oriMemberBonusRange, sourceMemberRangeExt, targetMemberRangeExt); BdBonusDeduct bdBonusDeduct = setBonusDetailDeduct(bonusConfigDTO, oriMemberBonusRange, saOrderExt.getOrderAmount(), saOrderExt.getInExchangeRate()); if (EBonusIncomeStatus.NORMAL.getValue() == oriMemberBonusRange.getIncomeStatus()) { - cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome())); +// cuMemberBonus.setRetailSameLevelIncome(ComputeUtil.computeAdd(cuMemberBonus.getRetailSameLevelIncome(), oriMemberBonusRange.getPretaxIncome())); setRetailTotal(bdBonusDeduct, cuMemberBonus, oriMemberBonusRange); } memberBonusRangeList.add(oriMemberBonusRange); 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 1d45ed1a..7d7d1259 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 @@ -113,36 +113,36 @@ public class CuMemberBonusServiceImpl extends ServiceImpl select - nvl(sum(cb.direct_income),0) direct_income, - nvl(sum(cb.expand_income),0) expand_income, - nvl(sum(cb.expand_no_capping),0) expand_no_capping, - nvl(sum(cb.expand_capping),0) expand_capping, - nvl(sum(cb.coach_income),0) coach_income, - nvl(sum(cb.share_income),0) share_income, - nvl(sum(cb.service_income),0) service_income, - nvl(sum(cb.back_points),0) back_points, - nvl(sum(cb.service_spend),0) service_spend, - nvl(sum(cb.pur_real_subtotal),0) pur_real_subtotal, - nvl(sum(cb.repur_push_income),0) repur_push_income, - nvl(sum(cb.repur_expand_income),0) repur_expand_income, - nvl(sum(cb.repur_real_subtotal),0) repur_real_subtotal, - nvl(sum(cb.repur_coupon),0) repur_coupon, - nvl(sum(cb.repur_coupon_share),0) repur_coupon_share, - nvl(sum(cb.repur_coupon_subtotal),0) repur_coupon_subtotal, - nvl(sum(cb.store_income),0) store_income, - nvl(sum(cb.global_points),0) global_points, - nvl(sum(cb.car_award_points),0) car_award_points, - bc.out_exchange_rate, - nvl(sum(cb.repur_range_income),0) repur_range_income, - nvl(sum(cb.retail_range_income),0) retail_range_income, - nvl(sum(cb.retail_same_level_income),0) retail_same_level_income, - nvl(sum(cb.retail_area_income),0) retail_area_income, - nvl(sum(cb.retail_benefit_range_income),0) retail_benefit_range_income, - nvl(sum(cb.retail_month_repurchase_income),0) retail_month_repurchase_income, - nvl(sum(cb.retail_benefit_avg_income),0) retail_benefit_avg_income, - nvl(sum(cb.retail_benefit_income),0) retail_benefit_income, - nvl(sum(cb.retail_real_subtotal),0) retail_real_subtotal, - nvl(sum(cb.real_income_total),0) real_income_total + nvl( sum( cb.direct_income ), 0 ) direct_income, + nvl( sum( cb.store_income ), 0 ) store_income, + nvl( sum( cb.global_points ), 0 ) global_points, + bc.out_exchange_rate from cu_member_bonus cb inner join cu_member cm on cb.pk_member = cm.pk_id diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml index 4bcea10d..f8a23ec0 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml @@ -36,18 +36,19 @@ select cb.period,cp.settle_date, - nvl(min(bc.out_exchange_rate),1) out_exchange_rate,sum(cb.direct_income) direct_income, - sum(cb.expand_income) expand_income, sum(cb.expand_no_capping) expand_no_capping, - sum(cb.expand_capping) expand_capping,sum(cb.coach_income) coach_income, - sum(cb.share_income) share_income, sum(cb.service_spend) service_spend, - sum(cb.service_income) service_income, sum(cb.back_points) back_points, - sum(cb.pur_real_subtotal) pur_real_subtotal, - sum(cb.repur_push_income) repur_push_income, - sum(cb.repur_expand_income) repur_expand_income, sum(cb.repur_real_subtotal) repur_real_subtotal, - sum(cb.repur_coupon) repur_coupon, sum(repur_coupon_share) repur_coupon_share, - sum(cb.repur_coupon_subtotal) repur_coupon_subtotal, - sum(cb.global_points) global_points, sum(cb.car_award_points) car_award_points, - sum(cb.repur_range_income) repur_range_income, - sum(cb.retail_range_income) retail_range_income, - sum(cb.retail_same_level_income) retail_same_level_income, - sum(cb.retail_area_income) retail_area_income, - sum(cb.retail_benefit_range_income) retail_benefit_range_income, - sum(cb.retail_month_repurchase_income) retail_month_repurchase_income, - sum(cb.retail_benefit_avg_income) retail_benefit_avg_income, - sum(cb.retail_benefit_income) retail_benefit_income, - sum(cb.retail_real_subtotal) retail_real_subtotal, + nvl(min(bc.out_exchange_rate),1) out_exchange_rate, + sum(cb.direct_income) direct_income, + sum(cb.global_points) global_points, + sum(cb.STORE_INCOME) STORE_INCOME, sum(cb.real_income_total) real_income_total from cu_member_bonus cb inner join cu_member_settle_period cp From d2a4c012c74a37c49475dc204799780d6b6d1b48 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Thu, 25 Sep 2025 11:13:28 +0800 Subject: [PATCH 06/34] =?UTF-8?q?##=20=E4=B8=89=E9=98=B6=E6=AE=B5=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E4=BC=9A=E5=91=98=E5=90=8D=E7=A7=B0=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=82=B9=E4=BD=8D=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CuMemberRetailDetailMapper.java | 6 + .../service/ICumemberRetailDetailService.java | 3 + .../ICumemberRetailDetailServiceImpl.java | 47 +++-- .../manage/MemberStructureController.java | 30 +++ .../vo/CuMemberThreeFrameworkVO.java | 182 ++++++++++++++++++ .../member/CuMemberRetailDetailMapper.xml | 43 +++++ .../common/core/enums/EOperationBusiness.java | 3 +- .../common/core/enums/EOperationModule.java | 3 +- 8 files changed, 298 insertions(+), 19 deletions(-) create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java index 86852ae1..7bfbec2b 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java @@ -3,6 +3,7 @@ package com.hzs.member.base.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.member.structure.controller.vo.ChildCodeVO; +import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -31,4 +32,9 @@ public interface CuMemberRetailDetailMapper extends BaseMapper getCuMemberRetailDetailList(@Param("settleTableName") String settleTableName, + @Param("memberCode") String memberCode, + @Param("stage") Integer stage, + @Param("stageStatus") Integer stageStatus); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java index ac6bc6ff..25cc2df0 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java @@ -3,6 +3,7 @@ package com.hzs.member.base.service; import cn.hutool.core.lang.tree.Tree; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.member.structure.controller.vo.ChildCodeVO; +import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; import java.util.List; @@ -18,4 +19,6 @@ public interface ICumemberRetailDetailService { CuMemberRetailDetail getCuMemberRetailDetailByUserId(Long userId, Integer stage, Integer stageStatus, String childNode, String settleTableName); List getChildListByUserId(Long userId, Integer stage, Integer stageStatus, String settleTableName); + + List getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus); } 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 fa3486b0..801f80e4 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 @@ -10,6 +10,7 @@ import com.hzs.member.base.mapper.CuMemberRetailDetailMapper; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.service.ICumemberRetailDetailService; import com.hzs.member.structure.controller.vo.ChildCodeVO; +import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -63,24 +64,24 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl> nodeList = new ArrayList<>(); - nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), cuMemberRetailDetail.getPkMember(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), null,cuMemberRetailDetail.getPkMember(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE1.getId(), EMemberChildNodeType.NODE1.getParentId(), EMemberChildNodeType.NODE1.getLabel(), cuMemberRetailDetail.getPointMember11(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE2.getId(), EMemberChildNodeType.NODE2.getParentId(), EMemberChildNodeType.NODE2.getLabel(), cuMemberRetailDetail.getPointMember12(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE1.getId(), EMemberChildNodeType.NODE1.getParentId(), EMemberChildNodeType.NODE1.getLabel(), cuMemberRetailDetail.getPoint11(), cuMemberRetailDetail.getPointMember11(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE2.getId(), EMemberChildNodeType.NODE2.getParentId(), EMemberChildNodeType.NODE2.getLabel(), cuMemberRetailDetail.getPoint12(),cuMemberRetailDetail.getPointMember12(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE3.getId(), EMemberChildNodeType.NODE3.getParentId(), EMemberChildNodeType.NODE3.getLabel(), cuMemberRetailDetail.getPointMember21(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE4.getId(), EMemberChildNodeType.NODE4.getParentId(), EMemberChildNodeType.NODE4.getLabel(), cuMemberRetailDetail.getPointMember22(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE5.getId(), EMemberChildNodeType.NODE5.getParentId(), EMemberChildNodeType.NODE5.getLabel(), cuMemberRetailDetail.getPointMember23(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE6.getId(), EMemberChildNodeType.NODE6.getParentId(), EMemberChildNodeType.NODE6.getLabel(), cuMemberRetailDetail.getPointMember24(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE3.getId(), EMemberChildNodeType.NODE3.getParentId(), EMemberChildNodeType.NODE3.getLabel(), cuMemberRetailDetail.getPoint21(),cuMemberRetailDetail.getPointMember21(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE4.getId(), EMemberChildNodeType.NODE4.getParentId(), EMemberChildNodeType.NODE4.getLabel(), cuMemberRetailDetail.getPoint22(),cuMemberRetailDetail.getPointMember22(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE5.getId(), EMemberChildNodeType.NODE5.getParentId(), EMemberChildNodeType.NODE5.getLabel(), cuMemberRetailDetail.getPoint23(),cuMemberRetailDetail.getPointMember23(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE6.getId(), EMemberChildNodeType.NODE6.getParentId(), EMemberChildNodeType.NODE6.getLabel(), cuMemberRetailDetail.getPoint24(),cuMemberRetailDetail.getPointMember24(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE7.getId(), EMemberChildNodeType.NODE7.getParentId(), EMemberChildNodeType.NODE7.getLabel(), cuMemberRetailDetail.getPointMember31(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE8.getId(), EMemberChildNodeType.NODE8.getParentId(), EMemberChildNodeType.NODE8.getLabel(), cuMemberRetailDetail.getPointMember32(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE9.getId(), EMemberChildNodeType.NODE9.getParentId(), EMemberChildNodeType.NODE9.getLabel(), cuMemberRetailDetail.getPointMember33(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE10.getId(), EMemberChildNodeType.NODE10.getParentId(), EMemberChildNodeType.NODE10.getLabel(), cuMemberRetailDetail.getPointMember34(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE11.getId(), EMemberChildNodeType.NODE11.getParentId(), EMemberChildNodeType.NODE11.getLabel(), cuMemberRetailDetail.getPointMember35(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE12.getId(), EMemberChildNodeType.NODE12.getParentId(), EMemberChildNodeType.NODE12.getLabel(), cuMemberRetailDetail.getPointMember36(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE13.getId(), EMemberChildNodeType.NODE13.getParentId(), EMemberChildNodeType.NODE13.getLabel(), cuMemberRetailDetail.getPointMember37(), memberMap)); - nodeList.add(makeNode(EMemberChildNodeType.NODE14.getId(), EMemberChildNodeType.NODE14.getParentId(), EMemberChildNodeType.NODE14.getLabel(), cuMemberRetailDetail.getPointMember38(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE7.getId(), EMemberChildNodeType.NODE7.getParentId(), EMemberChildNodeType.NODE7.getLabel(), cuMemberRetailDetail.getPoint31(),cuMemberRetailDetail.getPointMember31(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE8.getId(), EMemberChildNodeType.NODE8.getParentId(), EMemberChildNodeType.NODE8.getLabel(), cuMemberRetailDetail.getPoint32(),cuMemberRetailDetail.getPointMember32(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE9.getId(), EMemberChildNodeType.NODE9.getParentId(), EMemberChildNodeType.NODE9.getLabel(), cuMemberRetailDetail.getPoint33(),cuMemberRetailDetail.getPointMember33(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE10.getId(), EMemberChildNodeType.NODE10.getParentId(), EMemberChildNodeType.NODE10.getLabel(), cuMemberRetailDetail.getPoint34(),cuMemberRetailDetail.getPointMember34(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE11.getId(), EMemberChildNodeType.NODE11.getParentId(), EMemberChildNodeType.NODE11.getLabel(), cuMemberRetailDetail.getPoint35(),cuMemberRetailDetail.getPointMember35(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE12.getId(), EMemberChildNodeType.NODE12.getParentId(), EMemberChildNodeType.NODE12.getLabel(), cuMemberRetailDetail.getPoint36(),cuMemberRetailDetail.getPointMember36(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE13.getId(), EMemberChildNodeType.NODE13.getParentId(), EMemberChildNodeType.NODE13.getLabel(), cuMemberRetailDetail.getPoint37(),cuMemberRetailDetail.getPointMember37(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.NODE14.getId(), EMemberChildNodeType.NODE14.getParentId(), EMemberChildNodeType.NODE14.getLabel(), cuMemberRetailDetail.getPoint38(),cuMemberRetailDetail.getPointMember38(), memberMap)); // 构造树结构 return TreeUtil.build(nodeList, EMemberChildNodeType.ROOT.getParentId(), (node, tree) -> { @@ -103,7 +104,19 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl makeNode(String id, String parentId, String label, + @Override + public List getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus) { + List cuMemberRetailDetailList = baseMapper.getCuMemberRetailDetailList(settleTableName, memberCode, stage, stageStatus); + if (cuMemberRetailDetailList == null || cuMemberRetailDetailList.isEmpty()) { + return null; + }else { + // 构建map + cuMemberRetailDetailList.forEach(CuMemberThreeFrameworkVO::buildMemberMaps); + } + return cuMemberRetailDetailList; + } + + private Map makeNode(String id, String parentId, String label,Integer pointMember, Long memberId, Map memberMap) { Map map = new HashMap<>(); map.put("id", id); @@ -114,7 +127,7 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl> cuMemberRetailTree = iCumemberRetailDetailService.convertToNodeList(cuMemberRetailDetail); return AjaxResult.success(cuMemberRetailTree); } + /** + * 三阶段列表数据 + * @param memberSettlePeriodId + * @param memberCode + * @param stage + * @param stageStatus + * @return + */ + @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) + @GetMapping("/three-framework-list") + public AjaxResult threeFrameworkList(Long memberSettlePeriodId, String memberCode,Integer stage,Integer stageStatus) { + if (memberSettlePeriodId == null || memberCode == null || stage == null) { + log.error("参数错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); + log.info("日结信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId(); + log.info("日结表名称{}",settleTableName); + // 校验当前日结表是否存在 + Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); + if (isFind == null || isFind != 1) { + log.error("当前表名不存在{}",settleTableName); + return AjaxResult.error("当前日结信息表不存在",settleTableName); + } + // 查询当前会员所有子点位信息 + List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,memberCode,stage,stageStatus); + return AjaxResult.success(cuMemberThreeFrameworkVOS); + } /** * 查询子节点 diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java new file mode 100644 index 00000000..9db2c6de --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java @@ -0,0 +1,182 @@ +package com.hzs.member.structure.controller.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.HashMap; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CuMemberThreeFrameworkVO { + + private static final long serialVersionUID = 1L; + + /** + * 阶段状态(0=已完成,1=未完成) + */ + private Integer stageStatus; + + /** + * 阶段完成时间 + */ + private Date stageDate; + + + /** + * 点位1-1会员ID + */ + private Long pointMember11; + /** + * 点位1-1会员子节点 + */ + private String point11; + + /** + * 点位1-2会员ID + */ + private Long pointMember12; + /** + * 点位1-2会员子节点 + */ + private String point12; + + /** + * 点位2-1会员ID + */ + private Long pointMember21; + /** + * 点位2-1会员子节点 + */ + private String point21; + + /** + * 点位2-2会员ID + */ + private Long pointMember22; + /** + * 点位2-2会员子节点 + */ + private String point22; + + /** + * 点位2-3会员ID + */ + private Long pointMember23; + /** + * 点位2-3会员子节点 + */ + private String point23; + + /** + * 点位2-4会员ID + */ + private Long pointMember24; + /** + * 点位2-4会员子节点 + */ + private String point24; + + /** + * 点位3-1会员ID + */ + private Long pointMember31; + /** + * 点位3-1会员子节点 + */ + private String point31; + + /** + * 点位3-2会员ID + */ + private Long pointMember32; + /** + * 点位3-2会员子节点 + */ + private String point32; + + /** + * 点位3-3会员ID + */ + private Long pointMember33; + /** + * 点位3-3会员子节点 + */ + private String point33; + + /** + * 点位3-4会员ID + */ + private Long pointMember34; + /** + * 点位3-4会员子节点 + */ + private String point34; + + /** + * 点位3-5会员ID + */ + private Long pointMember35; + /** + * 点位3-5会员子节点 + */ + private String point35; + + /** + * 点位3-6会员ID + */ + private Long pointMember36; + /** + * 点位3-6会员子节点 + */ + private String point36; + + /** + * 点位3-7会员ID + */ + private Long pointMember37; + /** + * 点位3-7会员子节点 + */ + private String point37; + + /** + * 点位3-8会员ID + */ + private Long pointMember38; + /** + * 点位3-8会员子节点 + */ + private String point38; + + @TableField(exist = false) + HashMap memberMaps = new HashMap<>(14); + + public void buildMemberMaps() { + memberMaps.clear(); + + putIntoMap(point11, pointMember11); + putIntoMap(point12, pointMember12); + putIntoMap(point21, pointMember21); + putIntoMap(point22, pointMember22); + putIntoMap(point23, pointMember23); + putIntoMap(point24, pointMember24); + putIntoMap(point31, pointMember31); + putIntoMap(point32, pointMember32); + putIntoMap(point33, pointMember33); + putIntoMap(point34, pointMember34); + putIntoMap(point35, pointMember35); + putIntoMap(point36, pointMember36); + putIntoMap(point37, pointMember37); + putIntoMap(point38, pointMember38); + } + private void putIntoMap(String key, Long value) { + memberMaps.put(key != null ? key : "", value); + } + + +} 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 47caad8f..c3e7441d 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 @@ -62,4 +62,47 @@ and cud.STAGE_STATUS = #{stageStatus} + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java index f9f3e67b..2ea8ab27 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java @@ -403,7 +403,8 @@ public enum EOperationBusiness { MEMBER_RISK_CONTROL("K值风控设置"), MEMBER_RETAIL_STAT("收益区域数据"), MEMBER_RETAIL_CHILDNODE("会员子节点查询"), - MEMBER_RETAIL_TREE("三阶段结构") + MEMBER_RETAIL_TREE("三阶段结构"), + MEMBER_RETAIL_TREE_LIST("三阶段数据") ; diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java index e4cd274c..8bac1e44 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java @@ -402,7 +402,8 @@ public enum EOperationModule { MEMBER_RISK_CONTROL("K值风控设置"), ORDER_SYNC("同步失败订单"), MEMBER_RETAIL_CHILDNODE("会员子节点查询"), - MEMBER_RETAIL_TREE("三阶段结构") + MEMBER_RETAIL_TREE("三阶段结构"), + MEMBER_RETAIL_TREE_LIST("三阶段数据") ; /** From 2735fc9ca1e171c09da6630e6a1604d8437722a2 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Thu, 25 Sep 2025 11:26:08 +0800 Subject: [PATCH 07/34] =?UTF-8?q?##=20=E4=B8=89=E9=98=B6=E6=AE=B5=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E4=BC=9A=E5=91=98=E5=90=8D=E7=A7=B0=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=82=B9=E4=BD=8D=E4=BF=A1=E6=81=AF(=E6=A0=B9=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E6=B7=BB=E5=8A=A0=E5=AD=90=E8=8A=82=E7=82=B9=E4=BF=A1?= =?UTF-8?q?=E6=81=AF)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/service/impl/ICumemberRetailDetailServiceImpl.java | 2 +- .../structure/controller/manage/MemberStructureController.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) 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 801f80e4..afd62bb6 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 @@ -64,7 +64,7 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl> nodeList = new ArrayList<>(); - nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), null,cuMemberRetailDetail.getPkMember(), memberMap)); + nodeList.add(makeNode(EMemberChildNodeType.ROOT.getId(), EMemberChildNodeType.ROOT.getParentId(), EMemberChildNodeType.ROOT.getLabel(), cuMemberRetailDetail.getChildNode(),cuMemberRetailDetail.getPkMember(), memberMap)); nodeList.add(makeNode(EMemberChildNodeType.NODE1.getId(), EMemberChildNodeType.NODE1.getParentId(), EMemberChildNodeType.NODE1.getLabel(), cuMemberRetailDetail.getPoint11(), cuMemberRetailDetail.getPointMember11(), memberMap)); nodeList.add(makeNode(EMemberChildNodeType.NODE2.getId(), EMemberChildNodeType.NODE2.getParentId(), EMemberChildNodeType.NODE2.getLabel(), cuMemberRetailDetail.getPoint12(),cuMemberRetailDetail.getPointMember12(), memberMap)); diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java index c71f8c87..6619206a 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java @@ -268,9 +268,10 @@ public class MemberStructureController extends BaseController { log.error("当前表名不存在{}",settleTableName); return AjaxResult.error("当前日结信息表不存在",settleTableName); } + startPage(); // 查询当前会员所有子点位信息 List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,memberCode,stage,stageStatus); - return AjaxResult.success(cuMemberThreeFrameworkVOS); + return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); } /** From 90ed8f5c7ce082f332647a57ebc3327bdc8faccc Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 25 Sep 2025 11:31:07 +0800 Subject: [PATCH 08/34] =?UTF-8?q?##=20=E4=B8=89=E9=98=B6=E6=AE=B5=E5=A5=96?= =?UTF-8?q?=E9=87=91=E7=94=9F=E6=88=90=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 8 +- .../impl/CuMemberBonusStageServiceImpl.java | 86 ++++++++++++++++++- .../hzs/bonus/constant/BonusConstants.java | 3 + .../achieve/CuMemberRetailRangeMapper.xml | 14 ++- 4 files changed, 101 insertions(+), 10 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 b15967f9..6ceef0f0 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 @@ -366,9 +366,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // TODO 处理升三阶段点位 if (CollectionUtil.isNotEmpty(stageList)) { List stageMemberList = stageList.stream().map(CuMemberRetailDetail::getPkMember).collect(Collectors.toList()); - // 查询血缘会员明细数据(三段) + // 查询血缘会员明细数据(三阶段) iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.THREE, stageMemberList); - // 二阶段收益 + // 三阶段收益 this.calculateStageIncomeTwoThree(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period, memberRangeExtMap, settleStartDate, rangeTableName, rangeDetailTableName, EBonusStage.THREE, stageList); } @@ -1028,7 +1028,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 订单会员 CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(memberRetailDetail.getPkMember()); if (null == sourceMember) { - log.error("阶段收益处理失败,{}会员不存在. pkMember: {}", eBonusStage.getLabel(), memberRetailDetail.getPkMember()); + log.error("阶段收益处理失败,{} 会员不存在. pkMember: {}", eBonusStage.getLabel(), memberRetailDetail.getPkMember()); return returnRetailDetailList; } @@ -1135,7 +1135,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { targetMember.getThreeDetailMap().put(threeRetailDetail.getChildNode(), threeRetailDetail); returnRetailDetailList.add(threeRetailDetail); } else if (EBonusStage.THREE.getValue() == bonusStageData.getStage()) { - // TODO 三阶段需要赠送点位 + // TODO 三阶段填充满,判断是否需要赠送点位 } } 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 89551eda..3b644c17 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 @@ -339,12 +339,94 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl FIELD_LIST = Arrays.asList(POINT_11, POINT_12, POINT_21, POINT_22, POINT_23, POINT_24, POINT_31, POINT_32, POINT_33, POINT_34, POINT_35, POINT_36, POINT_37, POINT_38); + // 第三层字段 + public static final List THREE_FIELD_LIST = Arrays.asList(POINT_31, POINT_32, POINT_33, POINT_34, POINT_35, POINT_36, POINT_37, POINT_38); // 会员ID字段 public static final String POINT_MEMBER_FIELD_NAME = "pointMember"; 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 f8dca51b..5d1ef93d 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 @@ -385,7 +385,10 @@ #{item.creationTime, jdbcType=TIMESTAMP} creation_time, #{item.pointFirst, jdbcType=NUMERIC} point_first, #{item.pointMemberFirst, jdbcType=NUMERIC} point_member_first, #{item.pointSecond, jdbcType=NUMERIC} point_second, #{item.pointMemberSecond, jdbcType=NUMERIC} point_member_second, - #{item.pointThird, jdbcType=NUMERIC} point_third, #{item.pointMemberThird, jdbcType=NUMERIC} point_member_third + #{item.pointThird, jdbcType=NUMERIC} point_third, #{item.pointMemberThird, jdbcType=NUMERIC} point_member_third, + #{item.thirdBonus1, jdbcType=NUMERIC} third_bonus_1, + #{item.thirdBonus2, jdbcType=NUMERIC} third_bonus_2, + #{item.thirdBonus3, jdbcType=NUMERIC} third_bonus_2 from dual ) b @@ -411,7 +414,8 @@ creation_time, point_first, point_member_first, point_second, point_member_second, - point_third, point_member_third) + point_third, point_member_third, + third_bonus_1, third_bonus_2, third_bonus_3) values (b.pk_member, b.child_node, b.pk_parent, b.stage, b.stage_status, b.stage_date, b.point_11, b.point_12, @@ -432,7 +436,8 @@ b.creation_time, b.point_first, b.point_member_first, b.point_second, b.point_member_second, - b.point_third, b.point_member_third) + b.point_third, b.point_member_third, + b.third_bonus_1, b.third_bonus_2, b.third_bonus_3) when matched then update set a.stage = b.stage, a.stage_status = b.stage_status, a.stage_date = b.stage_date, @@ -454,7 +459,8 @@ a.creation_time = b.creation_time, a.point_first = b.point_first, a.point_member_first = b.point_member_first, a.point_second = b.point_second, a.point_member_second = b.point_member_second, - a.point_third = b.point_third, a.point_member_third = b.point_member_third + a.point_third = b.point_third, a.point_member_third = b.point_member_third, + a.third_bonus_1 = b.third_bonus_1, a.third_bonus_2 = b.third_bonus_2, a.third_bonus_3 = b.third_bonus_3 From b18b984b5a1340f2cfa8441f371602e826a39593 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 25 Sep 2025 13:35:21 +0800 Subject: [PATCH 09/34] =?UTF-8?q?##=20=E4=B8=89=E9=98=B6=E6=AE=B5=E5=A5=96?= =?UTF-8?q?=E9=87=91=E7=94=9F=E6=88=90=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/service/impl/BonusSettleHandle.java | 68 +++--- .../service/impl/BonusSettleRangeHandle.java | 3 + .../impl/CuMemberBonusStageServiceImpl.java | 17 +- .../achieve/CuMemberRetailRangeMapper.xml | 2 +- .../bonus/achieve/CuMemberTreeMapper.xml | 6 +- .../domain/member/bonus/CuMemberBonus.java | 208 +++++++++++++++++- 6 files changed, 259 insertions(+), 45 deletions(-) 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 9873611b..53cb8cda 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 @@ -163,43 +163,43 @@ public abstract class BonusSettleHandle { .pkRate(pkRate) .incomeStatus(incomeStatus) .directIncome(BigDecimal.ZERO) -// .expandIncome(BigDecimal.ZERO) -// .expandNoCapping(BigDecimal.ZERO) -// .expandCapping(BigDecimal.ZERO) -// .coachIncome(BigDecimal.ZERO) -// .shareIncome(BigDecimal.ZERO) -// .serviceIncome(BigDecimal.ZERO) -// .backPoints(BigDecimal.ZERO) -// .serviceSpend(BigDecimal.ZERO) -// .purRealSubtotal(BigDecimal.ZERO) -// .repurPushIncome(BigDecimal.ZERO) -// .repurRangeIncome(BigDecimal.ZERO) -// .repurExpandIncome(BigDecimal.ZERO) -// .repurRealSubtotal(BigDecimal.ZERO) -// .cloudDirectIncome(BigDecimal.ZERO) -// .cloudPurIncome(BigDecimal.ZERO) -// .cloudRepurIncome(BigDecimal.ZERO) -// .cloudRealSubtotal(BigDecimal.ZERO) -// .repurCoupon(BigDecimal.ZERO) -// .repurCouponShare(BigDecimal.ZERO) -// .repurCouponSubtotal(BigDecimal.ZERO) + .expandIncome(BigDecimal.ZERO) + .expandNoCapping(BigDecimal.ZERO) + .expandCapping(BigDecimal.ZERO) + .coachIncome(BigDecimal.ZERO) + .shareIncome(BigDecimal.ZERO) + .serviceIncome(BigDecimal.ZERO) + .backPoints(BigDecimal.ZERO) + .serviceSpend(BigDecimal.ZERO) + .purRealSubtotal(BigDecimal.ZERO) + .repurPushIncome(BigDecimal.ZERO) + .repurRangeIncome(BigDecimal.ZERO) + .repurExpandIncome(BigDecimal.ZERO) + .repurRealSubtotal(BigDecimal.ZERO) + .cloudDirectIncome(BigDecimal.ZERO) + .cloudPurIncome(BigDecimal.ZERO) + .cloudRepurIncome(BigDecimal.ZERO) + .cloudRealSubtotal(BigDecimal.ZERO) + .repurCoupon(BigDecimal.ZERO) + .repurCouponShare(BigDecimal.ZERO) + .repurCouponSubtotal(BigDecimal.ZERO) .globalPoints(BigDecimal.ZERO) -// .carAwardPoints(BigDecimal.ZERO) -// .hiFunIncome(BigDecimal.ZERO) -// .haiFunIncome(BigDecimal.ZERO) + .carAwardPoints(BigDecimal.ZERO) + .hiFunIncome(BigDecimal.ZERO) + .haiFunIncome(BigDecimal.ZERO) .storeIncome(BigDecimal.ZERO) -// .makerDirectIncome(BigDecimal.ZERO) -// .makerShareIncome(BigDecimal.ZERO) -// .makerRealSubtotal(BigDecimal.ZERO) + .makerDirectIncome(BigDecimal.ZERO) + .makerShareIncome(BigDecimal.ZERO) + .makerRealSubtotal(BigDecimal.ZERO) .realIncomeTotal(BigDecimal.ZERO) -// .retailRangeIncome(BigDecimal.ZERO) -// .retailSameLevelIncome(BigDecimal.ZERO) -// .retailAreaIncome(BigDecimal.ZERO) -// .retailBenefitRangeIncome(BigDecimal.ZERO) -// .retailMonthRepurchaseIncome(BigDecimal.ZERO) -// .retailBenefitAvgIncome(BigDecimal.ZERO) -// .retailBenefitIncome(BigDecimal.ZERO) -// .retailRealSubtotal(BigDecimal.ZERO) + .retailRangeIncome(BigDecimal.ZERO) + .retailSameLevelIncome(BigDecimal.ZERO) + .retailAreaIncome(BigDecimal.ZERO) + .retailBenefitRangeIncome(BigDecimal.ZERO) + .retailMonthRepurchaseIncome(BigDecimal.ZERO) + .retailBenefitAvgIncome(BigDecimal.ZERO) + .retailBenefitIncome(BigDecimal.ZERO) + .retailRealSubtotal(BigDecimal.ZERO) .build(); cuMemberBonus.setPkCreator(MagicNumberConstants.PK_ADMIN); cuMemberBonus.setPkCountry(pkCountry); 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 6ceef0f0..fb35053c 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 @@ -1003,6 +1003,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { .pointType(EBonusStageType.NORMAL.getValue()) .pointGift(0) .creationTime(settleDate) + .thirdBonus1(0) + .thirdBonus2(0) + .thirdBonus3(0) .updateBool(0) .build(); detailList.put(newRetailDetail.getChildNode(), newRetailDetail); 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 3b644c17..92aa1f31 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 @@ -278,6 +278,9 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl ) b 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 28dd067a..ecced1a8 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 @@ -335,9 +335,9 @@ point_second NUMBER(8), point_member_third NUMBER(20), point_third NUMBER(8), - third_bonus_1 NUMBER(8), - third_bonus_2 NUMBER(8), - third_bonus_3 NUMBER(8) + third_bonus_1 NUMBER(8) default 0 not null, + third_bonus_2 NUMBER(8) default 0 not null, + third_bonus_3 NUMBER(8) default 0 not null ) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java index a9c1f892..3e8d8ded 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/bonus/CuMemberBonus.java @@ -56,10 +56,124 @@ public class CuMemberBonus extends BaseEntity { private BigDecimal directIncome; /** - * 阶段收益-众康 + * 拓展收益 */ - @TableField("STORE_INCOME") - private BigDecimal storeIncome; + @TableField("EXPAND_INCOME") + private BigDecimal expandIncome; + + /** + * 拓展无封 (拓展收益按等级正常比例结算,并 拓展收益按等级正常比例结算 无封顶) + */ + @TableField("EXPAND_NO_CAPPING") + private BigDecimal expandNoCapping; + + /** + * 拓展封顶 (拓展收益按等级正常比例结算,不按4-N结算,根据配置的封顶值限制最大收益) + */ + @TableField("EXPAND_CAPPING") + private BigDecimal expandCapping; + + /** + * 培育津贴 + */ + @TableField("COACH_INCOME") + private BigDecimal coachIncome; + + /** + * 分红收益 + */ + @TableField("SHARE_INCOME") + private BigDecimal shareIncome; + + /** + * 报单收益 + */ + @TableField("SERVICE_INCOME") + private BigDecimal serviceIncome; + + /** + * 商城重消 + */ + @TableField("BACK_POINTS") + private BigDecimal backPoints; + + /** + * 平台服务费 + */ + @TableField("SERVICE_SPEND") + private BigDecimal serviceSpend; + + /** + * 首购实发小计 + */ + @TableField("PUR_REAL_SUBTOTAL") + private BigDecimal purRealSubtotal; + + /** + * 复购推荐收益 修改为互助收益 cu_member_bonus_push + */ + @TableField("REPUR_PUSH_INCOME") + private BigDecimal repurPushIncome; + + /** + * 复购级差收益 + */ + @TableField("REPUR_RANGE_INCOME") + private BigDecimal repurRangeIncome; + + /** + * 复购拓展收益 + */ + @TableField("REPUR_EXPAND_INCOME") + private BigDecimal repurExpandIncome; + + /** + * 复购实发小计 + */ + @TableField("REPUR_REAL_SUBTOTAL") + private BigDecimal repurRealSubtotal; + + /** + * 云代直推收益 修改为幸运收益 cu_member_bonus_coach + */ + @TableField("CLOUD_DIRECT_INCOME") + private BigDecimal cloudDirectIncome; + + /** + * 云代首购收益 修改为极差收益 cu_member_bonus_range + */ + @TableField("CLOUD_PUR_INCOME") + private BigDecimal cloudPurIncome; + + /** + * 云代复购收益 修改为平级收益 cu_member_bonus_range + */ + @TableField("CLOUD_REPUR_INCOME") + private BigDecimal cloudRepurIncome; + + /** + * 云代实发小计 修改为 极差小计 + */ + @TableField("CLOUD_REAL_SUBTOTAL") + private BigDecimal cloudRealSubtotal; + + /** + * 复购券 + */ + @TableField("REPUR_COUPON") + private BigDecimal repurCoupon; + + /** + * 复购券均分收益 + */ + @TableField("REPUR_COUPON_SHARE") + private BigDecimal repurCouponShare; + + /** + * 复购券小计 + */ + @TableField("REPUR_COUPON_SUBTOTAL") + private BigDecimal repurCouponSubtotal; /** * 复购见点收益-众康 @@ -67,7 +181,95 @@ public class CuMemberBonus extends BaseEntity { @TableField("GLOBAL_POINTS") private BigDecimal globalPoints; + /** + * 车奖积分 + */ + @TableField("CAR_AWARD_POINTS") + private BigDecimal carAwardPoints; + /** + * 阶段收益-众康 + */ + @TableField("STORE_INCOME") + private BigDecimal storeIncome; + + /** + * 嗨粉推荐收益 + */ + @TableField("HI_FUN_INCOME") + private BigDecimal hiFunIncome; + + /** + * 海粉推荐收益 + */ + @TableField("HAI_FUN_INCOME") + private BigDecimal haiFunIncome; + + /** + * 创客空间直推收益 + */ + @TableField("MAKER_DIRECT_INCOME") + private BigDecimal makerDirectIncome; + + /** + * 创客共享收益 + */ + @TableField("MAKER_SHARE_INCOME") + private BigDecimal makerShareIncome; + + /** + * 创客空间收益小计 + */ + @TableField("MAKER_REAL_SUBTOTAL") + private BigDecimal makerRealSubtotal; + + /** + * 新零售直推收益 + */ + @TableField("RETAIL_RANGE_INCOME") + private BigDecimal retailRangeIncome; + + /** + * 新零售平级收益 + */ + @TableField("RETAIL_SAME_LEVEL_INCOME") + private BigDecimal retailSameLevelIncome; + + /** + * 新零售区域分红 + */ + @TableField("RETAIL_AREA_INCOME") + private BigDecimal retailAreaIncome; + + /** + * 新零售福利级差收益 + */ + @TableField("RETAIL_BENEFIT_RANGE_INCOME") + private BigDecimal retailBenefitRangeIncome; + + /** + * 新零售复购级差收益 + */ + @TableField("RETAIL_MONTH_REPURCHASE_INCOME") + private BigDecimal retailMonthRepurchaseIncome; + + /** + * 福利分红平均收益 + */ + @TableField("RETAIL_BENEFIT_AVG_INCOME") + private BigDecimal retailBenefitAvgIncome; + + /** + * 福利分红加权收益 + */ + @TableField("RETAIL_BENEFIT_INCOME") + private BigDecimal retailBenefitIncome; + + /** + * 新零售收益小计 + */ + @TableField("RETAIL_REAL_SUBTOTAL") + private BigDecimal retailRealSubtotal; /** * 实发收益总计 From 061c951d6aed7fd93f98c964138fcdf838558d0d Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 25 Sep 2025 14:04:34 +0800 Subject: [PATCH 10/34] =?UTF-8?q?##=20=E4=B8=89=E9=98=B6=E6=AE=B5=E5=A5=96?= =?UTF-8?q?=E9=87=91=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/BonusSettleHandle.java | 6 +++--- .../bonus/service/impl/CuMemberBonusStageServiceImpl.java | 3 --- .../mapper/bonus/achieve/CuMemberRetailRangeMapper.xml | 7 +++---- 3 files changed, 6 insertions(+), 10 deletions(-) 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 53cb8cda..106d74a0 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 @@ -223,8 +223,8 @@ public abstract class BonusSettleHandle { backRatio = bdBonusDeduct.getBackRatio(); platformRatio = bdBonusDeduct.getPlatformRatio(); } -// cuMemberBonus.setBackPoints(ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), ComputeUtil.computeBonusMultiply(pretaxIncome, backRatio))); -// cuMemberBonus.setServiceSpend(ComputeUtil.computeAdd(cuMemberBonus.getServiceSpend(), ComputeUtil.computeBonusMultiply(pretaxIncome, platformRatio))); + cuMemberBonus.setBackPoints(ComputeUtil.computeAdd(cuMemberBonus.getBackPoints(), ComputeUtil.computeBonusMultiply(pretaxIncome, backRatio))); + cuMemberBonus.setServiceSpend(ComputeUtil.computeAdd(cuMemberBonus.getServiceSpend(), ComputeUtil.computeBonusMultiply(pretaxIncome, platformRatio))); } /** @@ -233,7 +233,7 @@ public abstract class BonusSettleHandle { protected void setRetailTotal(BdBonusDeduct bdBonusDeduct, CuMemberBonus cuMemberBonus, Object bonusDetail) { setBonusDeduct(bdBonusDeduct, cuMemberBonus, bonusDetail); BigDecimal realIncome = ReflectUtils.invokeGetter(bonusDetail, BonusFieldConstants.REAL_INCOME); -// cuMemberBonus.setRetailRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRetailRealSubtotal(), realIncome)); + cuMemberBonus.setRetailRealSubtotal(ComputeUtil.computeAdd(cuMemberBonus.getRetailRealSubtotal(), realIncome)); cuMemberBonus.setRealIncomeTotal(ComputeUtil.computeAdd(cuMemberBonus.getRealIncomeTotal(), realIncome)); } 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 92aa1f31..5497cd05 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 @@ -278,9 +278,6 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl ) b - on (a.pk_member = b.pk_member and a.child_node = b.child_node) + on (a.pk_member = b.pk_member and a.child_node = b.child_node and a.stage = b.stage) when not matched then insert (pk_member, child_node, pk_parent, stage, stage_status, stage_date, @@ -440,7 +439,7 @@ b.third_bonus_1, b.third_bonus_2, b.third_bonus_3) when matched then update set - a.stage = b.stage, a.stage_status = b.stage_status, a.stage_date = b.stage_date, + a.stage_status = b.stage_status, a.stage_date = b.stage_date, a.point_11 = b.point_11, a.point_12 = b.point_12, a.point_21 = b.point_21, a.point_22 = b.point_22, a.point_23 = b.point_23, a.point_24 = b.point_24, From 2d85c510a3b8d7b65d0ec1ad620db38a59689938 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 25 Sep 2025 14:31:03 +0800 Subject: [PATCH 11/34] =?UTF-8?q?##=20=E4=B8=89=E9=98=B6=E6=AE=B5=E5=A5=96?= =?UTF-8?q?=E9=87=91=E5=8F=91=E6=94=BE=E7=82=B9=E4=BD=8D=E6=95=B0=E5=A4=84?= =?UTF-8?q?=E7=90=86=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/bonus/service/impl/CuMemberBonusStageServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5497cd05..d7fbc670 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 @@ -427,7 +427,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl Date: Thu, 25 Sep 2025 14:59:02 +0800 Subject: [PATCH 12/34] =?UTF-8?q?##=20Opt=20-=20=E5=A5=96=E9=87=91?= =?UTF-8?q?=E6=9D=A5=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml | 2 +- .../resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml index 22177ef7..564f14e2 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusDetailMapper.xml @@ -400,7 +400,7 @@ ) b left join sa_order so on so.pk_id = b.pk_order - LEFT JOIN cu_member tar ON b.PK_SOURCE_MEMBER = tar.pk_id + LEFT JOIN cu_member tar ON b.pk_member = tar.pk_id LEFT JOIN cu_member cu ON b.PK_SOURCE_MEMBER = cu.pk_id left join cu_member_settle_period cp on b.period = cp.pk_id diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml index f8a23ec0..89f587e3 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusStageMapper.xml @@ -89,7 +89,7 @@ and so.order_type = #{bonusParam.orderType} - LEFT JOIN cu_member tar ON b.PK_SOURCE_MEMBER = tar.pk_id + LEFT JOIN cu_member tar ON b.pk_member = tar.pk_id LEFT JOIN cu_member cu ON b.PK_SOURCE_MEMBER = cu.pk_id left join cu_member_settle_period cp on b.period = cp.pk_id From 2d051ef4f575aae2dc461e6b59cf5fbb119eac5a Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Thu, 25 Sep 2025 15:12:16 +0800 Subject: [PATCH 13/34] =?UTF-8?q?##=20Opt=20-=20=E7=94=84=E9=80=89?= =?UTF-8?q?=E4=B8=93=E5=8C=BA=E9=99=90=E8=B4=AD=E5=8D=95=E7=AC=94=E9=99=90?= =?UTF-8?q?=E8=B4=AD20000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../retail/sale/controller/api/ApiRetailOrderController.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index 2a489aad..0476a5de 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -448,6 +448,11 @@ public class ApiRetailOrderController { // 确认订单 String str = iRetailOrderService.confirmOtherOrder(orderParam); + SaOrderExt saOrder = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_ORDER + orderParam.getPkCreator() + orderParam.getOrderCode()); + if (ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea() && saOrder.getOrderAmount().compareTo(RetailConstants.SPECIAL_AREA_41_MAX_ORDER_AMOUNT) > 0) { + redisService.deleteObject(CacheConstants.RETAIL_TEMP_ORDER + orderParam.getPkCreator() + orderParam.getOrderCode()); + return AjaxResult.error("订单金额超过" + RetailConstants.SPECIAL_AREA_41_MAX_ORDER_AMOUNT + "上限"); + } return confirmOrderReturn(str, orderParam.getPkCreator(), orderParam.getShopList(), orderParam.getOrderCode()); } From 12b98ee6a0df83f0f35bb90f141d03b6d5dfd022 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Thu, 25 Sep 2025 15:44:07 +0800 Subject: [PATCH 14/34] =?UTF-8?q?##=20=E4=B8=89=E9=98=B6=E6=AE=B5=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E5=88=97=E8=A1=A8=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CuMemberRetailDetailMapper.java | 11 +- .../service/ICumemberRetailDetailService.java | 4 + .../ICumemberRetailDetailServiceImpl.java | 15 +-- .../api/ApiMemberStructureController.java | 52 +++++++ .../manage/MemberStructureController.java | 15 +++ .../controller/vo/CuMemberPointDetailVO.java | 29 ++++ .../vo/CuMemberThreeFrameworkVO.java | 127 +++++++----------- .../member/CuMemberRetailDetailMapper.xml | 119 +++++++++++----- 8 files changed, 255 insertions(+), 117 deletions(-) create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java index 7bfbec2b..a4fa110f 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java @@ -3,6 +3,7 @@ package com.hzs.member.base.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.member.structure.controller.vo.ChildCodeVO; +import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; import org.apache.ibatis.annotations.Param; @@ -33,8 +34,10 @@ public interface CuMemberRetailDetailMapper extends BaseMapper getCuMemberRetailDetailList(@Param("settleTableName") String settleTableName, - @Param("memberCode") String memberCode, - @Param("stage") Integer stage, - @Param("stageStatus") Integer stageStatus); + CuMemberPointDetailVO getPointDetail(@Param("pointMemberCode") Long pointMemberCode); + + List getCuMemberRetailDetailDTOList(@Param("settleTableName") String settleTableName, + @Param("memberCode") String memberCode, + @Param("stage") Integer stage, + @Param("stageStatus") Integer stageStatus); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java index 25cc2df0..c67c74aa 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java @@ -3,6 +3,7 @@ package com.hzs.member.base.service; import cn.hutool.core.lang.tree.Tree; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.member.structure.controller.vo.ChildCodeVO; +import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; import java.util.List; @@ -21,4 +22,7 @@ public interface ICumemberRetailDetailService { List getChildListByUserId(Long userId, Integer stage, Integer stageStatus, String settleTableName); List getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus); + + CuMemberPointDetailVO getPointDetail(Long pointMemberCode); + } 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 afd62bb6..075e75c0 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 @@ -10,6 +10,7 @@ import com.hzs.member.base.mapper.CuMemberRetailDetailMapper; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.service.ICumemberRetailDetailService; import com.hzs.member.structure.controller.vo.ChildCodeVO; +import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -106,14 +107,12 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus) { - List cuMemberRetailDetailList = baseMapper.getCuMemberRetailDetailList(settleTableName, memberCode, stage, stageStatus); - if (cuMemberRetailDetailList == null || cuMemberRetailDetailList.isEmpty()) { - return null; - }else { - // 构建map - cuMemberRetailDetailList.forEach(CuMemberThreeFrameworkVO::buildMemberMaps); - } - return cuMemberRetailDetailList; + return baseMapper.getCuMemberRetailDetailDTOList(settleTableName, memberCode, stage, stageStatus); + } + + @Override + public CuMemberPointDetailVO getPointDetail(Long pointMemberCode) { + return baseMapper.getPointDetail(pointMemberCode); } private Map makeNode(String id, String parentId, String label,Integer pointMember, diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java index fa356dbf..06f097b3 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java @@ -9,11 +9,15 @@ import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; +import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.security.service.UserTokenService; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; +import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.service.ICumemberRetailDetailService; import com.hzs.member.structure.controller.vo.ChildCodeVO; +import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; +import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; import com.hzs.system.sys.dto.LoginUser; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -46,6 +50,9 @@ public class ApiMemberStructureController extends BaseController { @Autowired ICumemberRetailDetailService iCumemberRetailDetailService; + @Autowired + ICuMemberService iCuMemberService; + @Log(module = EOperationModule.MEMBER_RETAIL_TREE, business = EOperationBusiness.MEMBER_RETAIL_TREE, method = EOperationMethod.SELECT) @GetMapping("/three-framework") public AjaxResult Framework(Integer stage,String childNode,Integer stageStatus) { @@ -116,6 +123,51 @@ public class ApiMemberStructureController extends BaseController { return AjaxResult.success(childCodeList); } + @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) + @GetMapping("/three-framework-list") + public AjaxResult threeFrameworkList(Integer stage,Integer stageStatus) { + if (stage == null) { + log.error("参数错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + Long userId = SecurityUtils.getUserId(); + if (userId == null) { + log.error("用户登录信息错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + // 获取当前时间 -1 天 + String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + // 查询相关日结表 + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday); + log.info("日结信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId(); + log.info("日结表名称{}",settleTableName); + // 校验当前日结表是否存在 + Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); + if (isFind == null || isFind != 1) { + log.error("当前会员日结信息不存在{}",settleTableName); + return AjaxResult.error("数据查询错误,请联系客服处理"); + } + startPage(); + // 查询当前会员所有子点位信息 + CuMember member = iCuMemberService.getMember(userId); + List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,member.getMemberCode(),stage,stageStatus); + return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); + } + + @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) + @GetMapping("/pointDetail") + public AjaxResult pointDetail(Long pointMemberCode) { + if (pointMemberCode == null) { + log.error("参数错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode); + if (cuMemberPointDetailVO == null) { + return null; + } + return AjaxResult.success(cuMemberPointDetailVO); + } // @Autowired // private ITransactionCommonService iTransactionCommonService; diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java index 6619206a..447f730c 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java @@ -33,6 +33,7 @@ import com.hzs.member.achieve.service.ICuMemberTreeService; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.service.ICumemberRetailDetailService; import com.hzs.member.structure.controller.vo.ChildCodeVO; +import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; import com.hzs.member.structure.controller.vo.CuMemberSettlePeriodVo; import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; import com.hzs.system.config.IGradeServiceApi; @@ -274,6 +275,20 @@ public class MemberStructureController extends BaseController { return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); } + @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) + @GetMapping("/pointDetail") + public AjaxResult pointDetail(Long pointMemberCode) { + if (pointMemberCode == null) { + log.error("参数错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode); + if (cuMemberPointDetailVO == null) { + return null; + } + return AjaxResult.success(cuMemberPointDetailVO); + } + /** * 查询子节点 * @param memberSettlePeriodId diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java new file mode 100644 index 00000000..fbc5864b --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java @@ -0,0 +1,29 @@ +package com.hzs.member.structure.controller.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@JsonInclude(JsonInclude.Include.ALWAYS) +public class CuMemberPointDetailVO { + /** + * 会员编号 + */ + private String memberCode; + /** + * 会员姓名 + */ + private String memberName; + /** + * 荣誉奖衔 + */ + private String awardsName; + /** + * 隶属体系 + */ + private String vertexName; +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java index 9db2c6de..660fed11 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java @@ -1,182 +1,159 @@ package com.hzs.member.structure.controller.vo; -import com.baomidou.mybatisplus.annotation.TableField; -import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; -import java.util.HashMap; +import java.io.Serializable; @Data @AllArgsConstructor @NoArgsConstructor -public class CuMemberThreeFrameworkVO { +@JsonInclude(JsonInclude.Include.ALWAYS) +public class CuMemberThreeFrameworkVO implements Serializable { private static final long serialVersionUID = 1L; - /** * 阶段状态(0=已完成,1=未完成) */ private Integer stageStatus; /** - * 阶段完成时间 + * 阶段 */ - private Date stageDate; + private Integer stage; + /** + * 子点位 + */ + private Integer childNode; /** * 点位1-1会员ID */ - private Long pointMember11; + private String pointMemberName11; /** - * 点位1-1会员子节点 + * 点位1-1会员ID */ - private String point11; + private String pointMemberCode11; /** * 点位1-2会员ID */ - private Long pointMember12; + private String pointMemberName12; /** - * 点位1-2会员子节点 + * 点位1-1会员ID */ - private String point12; + private String pointMemberCode12; /** * 点位2-1会员ID */ - private Long pointMember21; + private String pointMemberName21; /** - * 点位2-1会员子节点 + * 点位1-1会员ID */ - private String point21; + private String pointMemberCode21; /** * 点位2-2会员ID */ - private Long pointMember22; + private String pointMemberName22; /** - * 点位2-2会员子节点 + * 点位1-1会员ID */ - private String point22; + private String pointMemberCode22; /** * 点位2-3会员ID */ - private Long pointMember23; + private String pointMemberName23; /** - * 点位2-3会员子节点 + * 点位1-1会员ID */ - private String point23; + private String pointMemberCode23; /** * 点位2-4会员ID */ - private Long pointMember24; + private String pointMemberName24; /** - * 点位2-4会员子节点 + * 点位1-1会员ID */ - private String point24; + private String pointMemberCode24; /** * 点位3-1会员ID */ - private Long pointMember31; + private String pointMemberName31; /** - * 点位3-1会员子节点 + * 点位1-1会员ID */ - private String point31; + private String pointMemberCode31; /** * 点位3-2会员ID */ - private Long pointMember32; + private String pointMemberName32; /** - * 点位3-2会员子节点 + * 点位1-1会员ID */ - private String point32; + private String pointMemberCode32; /** * 点位3-3会员ID */ - private Long pointMember33; + private String pointMemberName33; /** - * 点位3-3会员子节点 + * 点位1-1会员ID */ - private String point33; + private String pointMemberCode33; /** * 点位3-4会员ID */ - private Long pointMember34; + private String pointMemberName34; /** - * 点位3-4会员子节点 + * 点位1-1会员ID */ - private String point34; + private String pointMemberCode34; /** * 点位3-5会员ID */ - private Long pointMember35; + private String pointMemberName35; /** - * 点位3-5会员子节点 + * 点位1-1会员ID */ - private String point35; + private String pointMemberCode35; /** * 点位3-6会员ID */ - private Long pointMember36; + private String pointMemberName36; /** - * 点位3-6会员子节点 + * 点位1-1会员ID */ - private String point36; + private String pointMemberCode36; /** * 点位3-7会员ID */ - private Long pointMember37; + private String pointMemberName37; /** - * 点位3-7会员子节点 + * 点位1-1会员ID */ - private String point37; + private String pointMemberCode37; /** * 点位3-8会员ID */ - private Long pointMember38; + private String pointMemberName38; /** - * 点位3-8会员子节点 + * 点位1-1会员ID */ - private String point38; - - @TableField(exist = false) - HashMap memberMaps = new HashMap<>(14); - - public void buildMemberMaps() { - memberMaps.clear(); - - putIntoMap(point11, pointMember11); - putIntoMap(point12, pointMember12); - putIntoMap(point21, pointMember21); - putIntoMap(point22, pointMember22); - putIntoMap(point23, pointMember23); - putIntoMap(point24, pointMember24); - putIntoMap(point31, pointMember31); - putIntoMap(point32, pointMember32); - putIntoMap(point33, pointMember33); - putIntoMap(point34, pointMember34); - putIntoMap(point35, pointMember35); - putIntoMap(point36, pointMember36); - putIntoMap(point37, pointMember37); - putIntoMap(point38, pointMember38); - } - private void putIntoMap(String key, Long value) { - memberMaps.put(key != null ? key : "", value); - } + private String pointMemberCode38; } 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 c3e7441d..3f542e8d 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 @@ -62,41 +62,98 @@ and cud.STAGE_STATUS = #{stageStatus} - + From 737f118daf2932cc13844f9338ce81d3e2c661f9 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 25 Sep 2025 18:07:36 +0800 Subject: [PATCH 15/34] =?UTF-8?q?##=20=E4=BA=8C=E4=B8=89=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=A1=A5=E5=85=A8=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CuMemberRetailDetailMapper.java | 5 +- .../service/ICuMemberRetailDetailService.java | 13 +- .../impl/CuMemberRetailDetailServiceImpl.java | 17 +- .../hzs/bonus/bonus/dto/BonusStageData.java | 5 + .../service/impl/BonusSettleRangeHandle.java | 183 +++++++++++++----- .../impl/CuMemberBonusStageServiceImpl.java | 22 ++- .../hzs/bonus/constant/BonusConstants.java | 9 + .../achieve/CuMemberRetailDetailMapper.xml | 10 +- .../achieve/CuMemberRetailRangeMapper.xml | 21 +- .../bonus/achieve/CuMemberTreeMapper.xml | 4 +- .../member/achieve/CuMemberRetailRange.java | 11 ++ 11 files changed, 221 insertions(+), 79 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailDetailMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailDetailMapper.java index aa6dcff6..3758a05c 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailDetailMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberRetailDetailMapper.java @@ -12,10 +12,11 @@ import java.util.List; public interface CuMemberRetailDetailMapper extends BaseMapper { /** - * 查询明细数据(指定阶段,未完成的) + * 查询明细数据(指定阶段,指定状态) */ List listMemberRetailDetail(@Param("retailDetailTableName") String retailDetailTableName, @Param("tmpIdList") List tmpIdList, - @Param("stage") Integer stage); + @Param("stage") Integer stage, + @Param("stageStatus") Integer stageStatus); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java index ab48d9c5..81d13adc 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/ICuMemberRetailDetailService.java @@ -2,6 +2,7 @@ package com.hzs.bonus.achieve.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.core.enums.EBonusStage; +import com.hzs.common.core.enums.EBonusStageStatus; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; @@ -17,12 +18,18 @@ public interface ICuMemberRetailDetailService extends IService memberRangeExtMap, - EBonusStage eBonusStage, List stageMemberList); + EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, List stageMemberList); /** * 指定会员获取对应的点位数据 */ - void listMemberRetailDetail(String retailDetailTableName, Map memberRangeExtMap, - List queryMemberList, EBonusStage eBonusStage); + void listMemberRetailDetailByQuery(String retailDetailTableName, Map memberRangeExtMap, + List queryMemberList, EBonusStage eBonusStage); + + /** + * 会员直推对应的点位数据 + */ + void listChildRetailDetail(String retailDetailTableName, Map memberRangeExtMap, + List queryMemberList, EBonusStage eBonusStage); } 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 435bcfb9..5602c43d 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 @@ -6,6 +6,7 @@ import com.hzs.bonus.achieve.service.ICuMemberRetailDetailService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.common.core.constant.MagicNumberConstants; import com.hzs.common.core.enums.EBonusStage; +import com.hzs.common.core.enums.EBonusStageStatus; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import org.springframework.beans.factory.annotation.Autowired; @@ -24,7 +25,7 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl memberRangeExtMap, - EBonusStage eBonusStage, List stageMemberList) { + EBonusStage eBonusStage, EBonusStageStatus eBonusStageStatus, List stageMemberList) { List> pkMemberList; if (CollectionUtil.isNotEmpty(stageMemberList)) { pkMemberList = cuMemberBonusSettle.handleCutList(stageMemberList, MagicNumberConstants.BATCH_QUERY_NUM); @@ -33,7 +34,7 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl { // 查询明细数据(指定阶段,未完成的) - List tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue()); + List tmpList = baseMapper.listMemberRetailDetail(retailDetailTableName, tmpIdList, eBonusStage.getValue(), null != eBonusStageStatus ? eBonusStageStatus.getValue() : null); if (CollectionUtil.isNotEmpty(tmpList)) { // 明细数据放到对应的会员数据中 for (CuMemberRetailDetail cuMemberRetailDetail : tmpList) { @@ -64,10 +65,10 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl memberRangeExtMap, - List queryMemberList, EBonusStage eBonusStage) { + public void listMemberRetailDetailByQuery(String retailDetailTableName, Map memberRangeExtMap, + List queryMemberList, EBonusStage eBonusStage) { // 查询明细数据(指定阶段,未完成的) - List tmpDetailList = baseMapper.listMemberRetailDetail(retailDetailTableName, queryMemberList, eBonusStage.getValue()); + List tmpDetailList = baseMapper.listMemberRetailDetail(retailDetailTableName, queryMemberList, eBonusStage.getValue(), EBonusStageStatus.NO.getValue()); if (CollectionUtil.isNotEmpty(tmpDetailList)) { // 明细数据放到对应的会员数据中 for (CuMemberRetailDetail cuMemberRetailDetail : tmpDetailList) { @@ -97,4 +98,10 @@ public class CuMemberRetailDetailServiceImpl extends ServiceImpl memberRangeExtMap, + List queryMemberList, EBonusStage eBonusStage) { + + } + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/dto/BonusStageData.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/dto/BonusStageData.java index eb5ff7ea..edf551a3 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/dto/BonusStageData.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/dto/BonusStageData.java @@ -38,6 +38,11 @@ public class BonusStageData { */ private Integer stageNum; + /** + * 三阶段走完,需要添加的待激活点位数 + */ + private Integer pointGift; + /** * 二阶段点位 */ 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 fb35053c..2f9104bd 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 @@ -7,6 +7,7 @@ import com.hzs.bonus.base.service.ICuMemberService; import com.hzs.bonus.bonus.dto.BonusStageData; import com.hzs.bonus.bonus.service.ICuMemberBonusStageService; import com.hzs.bonus.bonus.vo.BonusRecordDetailVO; +import com.hzs.bonus.constant.BonusConstants; import com.hzs.bonus.detail.service.ICuMemberAwardsService; import com.hzs.bonus.order.service.IBonusOrderService; import com.hzs.common.core.constant.MagicNumberConstants; @@ -310,7 +311,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } // 查询血缘会员明细数据(一阶段) - iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.ONE, null); + iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.ONE, EBonusStageStatus.NO, null); // 奖衔 Map retailAwardsMap = new HashMap<>(); @@ -353,21 +354,25 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { } } - // TODO 处理升二阶段点位 + // 处理升二阶段点位 if (CollectionUtil.isNotEmpty(stageList)) { List stageMemberList = stageList.stream().map(CuMemberRetailDetail::getPkMember).collect(Collectors.toList()); + // 查询升阶段点位血缘上所有会员ID + List findMemberList = this.findParent(memberRangeExtMap, stageMemberList); // 查询血缘会员明细数据(二阶段) - iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.TWO, stageMemberList); + iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.TWO, EBonusStageStatus.NO, findMemberList); // 二阶段收益 stageList = this.calculateStageIncomeTwoThree(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period, memberRangeExtMap, settleStartDate, rangeTableName, rangeDetailTableName, EBonusStage.TWO, stageList); } - // TODO 处理升三阶段点位 + // 处理升三阶段点位 if (CollectionUtil.isNotEmpty(stageList)) { List stageMemberList = stageList.stream().map(CuMemberRetailDetail::getPkMember).collect(Collectors.toList()); + // 查询升阶段点位血缘上所有会员ID + List findMemberList = this.findParent(memberRangeExtMap, stageMemberList); // 查询血缘会员明细数据(三阶段) - iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.THREE, stageMemberList); + iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, EBonusStage.THREE, EBonusStageStatus.NO, findMemberList); // 三阶段收益 this.calculateStageIncomeTwoThree(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period, memberRangeExtMap, settleStartDate, rangeTableName, rangeDetailTableName, EBonusStage.THREE, stageList); @@ -965,12 +970,21 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { return returnRetailDetailList; } + // 订单生成新点位数量 int newPointInt; if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { // 精品专区按订单金额计算 + BigDecimal orderAmount = saOrderExt.getOrderAmount(); // 订单金额除50取整,为新増点位数量 - newPointInt = saOrderExt.getOrderAmount().divide(RetailConstants.POINT_VAL, 0, RoundingMode.DOWN).intValue(); + newPointInt = orderAmount.divide(RetailConstants.POINT_VAL, 0, RoundingMode.DOWN).intValue(); + if (orderAmount.compareTo(BonusConstants.GIFT_TWO_AMOUNT) >= 0 && sourceMember.getGiftPoint() < 2) { + // 首次订单金额大于等于2万,每个点位完成三阶段赠送2个点位 + sourceMember.setGiftPoint(2); + } else if (orderAmount.compareTo(BonusConstants.GIFT_ONE_AMOUNT) >= 0 && sourceMember.getGiftPoint() < 1) { + // 首次订单金额大于等于1万,每个点位完成三阶段赠送1个点位 + sourceMember.setGiftPoint(1); + } } else { // 商城专区按累计业绩处理 BigDecimal repPvBalance = sourceMember.getRepPvBalance().add(saOrderExt.getOrderAchieve()); @@ -981,6 +995,8 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 当前订单不足生成点位 return returnRetailDetailList; } + // 赠送点位 + int pointGift = sourceMember.getGiftPoint(); // 会员一阶段子点位列表 LinkedHashMap detailList = sourceMember.getOneDetailMap(); @@ -1001,7 +1017,7 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { .stage(EBonusStage.ONE.getValue()) .stageStatus(EBonusStageStatus.NO.getValue()) .pointType(EBonusStageType.NORMAL.getValue()) - .pointGift(0) + .pointGift(pointGift) .creationTime(settleDate) .thirdBonus1(0) .thirdBonus2(0) @@ -1014,6 +1030,39 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE, sourceMember, newRetailDetail, returnRetailDetailList); } + // 待激活点位 + int waitPointCount = sourceMember.getWaitPointCount(); + if (waitPointCount != 0) { + for (int i = 1; i <= newPointInt; i++) { + if (waitPointCount > 0) { + // 购买一个点位,激活一个待激活点位 + CuMemberRetailDetail newRetailDetail = CuMemberRetailDetail.builder() + .pkMember(sourceMember.getPkMember()) + .childNode(pointCount + i) + .pkParent(sourceMember.getPkParent()) + .stage(EBonusStage.ONE.getValue()) + .stageStatus(EBonusStageStatus.NO.getValue()) + .pointType(EBonusStageType.GIFT.getValue()) + .pointGift(0) + .creationTime(settleDate) + .thirdBonus1(0) + .thirdBonus2(0) + .thirdBonus3(0) + .updateBool(0) + .build(); + detailList.put(newRetailDetail.getChildNode(), newRetailDetail); + + this.handleStageIncome(cuMemberBonusStageList, cuMemberBonusMap, bonusConfigDTO, period, + memberRangeExtMap, saOrderExt, settleDate, rangeTableName, rangeDetailTableName, EBonusStage.ONE, + sourceMember, newRetailDetail, returnRetailDetailList); + + waitPointCount = waitPointCount - 1; + } else { + break; + } + } + sourceMember.setWaitPointCount(waitPointCount); + } sourceMember.setPointCount(sourceMember.getPointCount() + newPointInt); return returnRetailDetailList; } @@ -1053,53 +1102,60 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { List returnRetailDetailList) { // 阶段奖金处理列表 List bonusStageDataList = new ArrayList<>(); - // 推荐人 - Long pkParent = sourceMember.getPkParent(); - while (true) { - CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent); - if (null == targetMember) { - // 没有推荐人了,则直接结束 - break; - } - pkParent = targetMember.getPkParent(); - // 推荐人一阶段子点位列表 - LinkedHashMap parentDetailList = null; - if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) { - parentDetailList = targetMember.getOneDetailMap(); - } else if (EBonusStage.TWO.getValue() == eBonusStage.getValue()) { - parentDetailList = targetMember.getTwoDetailMap(); - } else if (EBonusStage.THREE.getValue() == eBonusStage.getValue()) { - parentDetailList = targetMember.getThreeDetailMap(); - } - if (CollectionUtil.isEmpty(parentDetailList)) { - // 推荐人没有未完成点位,继续往上找 - continue; - } + if (EBonusStageType.NORMAL.getValue() == newRetailDetail.getPointType()) { + // 普通点位处理 + // 推荐人 + Long pkParent = sourceMember.getPkParent(); + while (true) { + CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent); + if (null == targetMember) { + // 没有推荐人了,则直接结束 + break; + } + pkParent = targetMember.getPkParent(); - // 推荐人第一层点位处理 - boolean forBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, - memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); - if (forBool) { - // 在第一层找到并填充点位,就开始下一个点位的处理 - break; - } + // 推荐人一阶段子点位列表 + LinkedHashMap parentDetailList = null; + if (EBonusStage.ONE.getValue() == eBonusStage.getValue()) { + parentDetailList = targetMember.getOneDetailMap(); + } else if (EBonusStage.TWO.getValue() == eBonusStage.getValue()) { + parentDetailList = targetMember.getTwoDetailMap(); + } else if (EBonusStage.THREE.getValue() == eBonusStage.getValue()) { + parentDetailList = targetMember.getThreeDetailMap(); + } + if (CollectionUtil.isEmpty(parentDetailList)) { + // 推荐人没有未完成点位,继续往上找 + continue; + } - // 推荐人第二层点位处理 - forBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, - memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); - if (forBool) { - // 在第二层找到并填充点位,就开始下一个点位的处理 - break; - } + // 推荐人第一层点位处理 + boolean forBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, + memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); + if (forBool) { + // 在第一层找到并填充点位,就开始下一个点位的处理 + break; + } - // 推荐人第三层点位处理 - forBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, - memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); - if (forBool) { - // 在第三层找到并填充点位,就开始下一个点位的处理 - break; + // 推荐人第二层点位处理 + forBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, + memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); + if (forBool) { + // 在第二层找到并填充点位,就开始下一个点位的处理 + break; + } + + // 推荐人第三层点位处理 + forBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, + memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); + if (forBool) { + // 在第三层找到并填充点位,就开始下一个点位的处理 + break; + } } + } else { + // TODO 赠送点位处理,赠送点位给自己直推会员轮流布点 + } if (CollectionUtil.isNotEmpty(bonusStageDataList)) { @@ -1138,11 +1194,36 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { targetMember.getThreeDetailMap().put(threeRetailDetail.getChildNode(), threeRetailDetail); returnRetailDetailList.add(threeRetailDetail); } else if (EBonusStage.THREE.getValue() == bonusStageData.getStage()) { - // TODO 三阶段填充满,判断是否需要赠送点位 - + // 三阶段填充满,判断是否需要赠送点位 + if (bonusStageData.getPointGift() != 0) { + // 需要添加赠送的待激活点位 + targetMember.setWaitPointCount(targetMember.getWaitPointCount() + bonusStageData.getPointGift()); + } } } } } + /** + * 查找血缘上所有会员 + */ + private List findParent(Map memberRangeExtMap, List pkMemberList) { + List resultList = new ArrayList<>(); + for (Long pkMember : pkMemberList) { + CuMemberRetailRangeExt sourceMember = memberRangeExtMap.get(pkMember); + resultList.add(sourceMember.getPkMember()); + + Long pkParent = sourceMember.getPkParent(); + while (true) { + CuMemberRetailRangeExt targetMember = memberRangeExtMap.get(pkParent); + if (null == targetMember) { + break; + } + resultList.add(targetMember.getPkMember()); + pkParent = targetMember.getPkParent(); + } + } + return resultList; + } + } 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 d7fbc670..9fd14cd7 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 @@ -361,6 +361,7 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl { memberRangeExtMap.put(tmpRetail.getPkMember(), tmpRetail); }); - // 查询血缘会员明细数据(一阶段) - iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, queryMemberList, EBonusStage.ONE); + // 查询血缘会员明细数据 + iCuMemberRetailDetailService.listMemberRetailDetailByQuery(rangeDetailTableName, memberRangeExtMap, queryMemberList, eBonusStage); } } @@ -535,8 +539,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl { memberRangeExtMap.put(tmpRetail.getPkMember(), tmpRetail); }); - // 查询血缘会员明细数据(一阶段) - iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, queryMemberList, EBonusStage.ONE); + // 查询血缘会员明细数据 + iCuMemberRetailDetailService.listMemberRetailDetailByQuery(rangeDetailTableName, memberRangeExtMap, queryMemberList, eBonusStage); } } @@ -628,8 +632,8 @@ public class CuMemberBonusStageServiceImpl extends ServiceImpl { memberRangeExtMap.put(tmpRetail.getPkMember(), tmpRetail); }); - // 查询血缘会员明细数据(一阶段) - iCuMemberRetailDetailService.listMemberRetailDetail(rangeDetailTableName, memberRangeExtMap, queryMemberList, EBonusStage.ONE); + // 查询血缘会员明细数据 + iCuMemberRetailDetailService.listMemberRetailDetailByQuery(rangeDetailTableName, memberRangeExtMap, queryMemberList, eBonusStage); } } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java index c8a55bf4..cb393e6f 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/constant/BonusConstants.java @@ -12,6 +12,15 @@ import java.util.Map; public class BonusConstants { + /** + * 赠送2个点位订单金额 + */ + public static final BigDecimal GIFT_TWO_AMOUNT = new BigDecimal("20000"); + /** + * 赠送1个点位订单金额 + */ + public static final BigDecimal GIFT_ONE_AMOUNT = new BigDecimal("10000"); + /** * 一阶段奖金 -- 满14,发35 */ diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml index b1efab5b..5cb90a9a 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberRetailDetailMapper.xml @@ -10,9 +10,13 @@ #{items} - and cmrd.stage = #{stage} - and cmrd.stage_status = 1 - order by cmrd.pk_member, cmrd.child_node + + and cmrd.stage = #{stage} + + + and cmrd.stage_status = #{stageStatus} + + order by cmrd.pk_member, cmrd.child_node, cmrd.stage 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 80f02a9a..eb220f7b 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 @@ -51,7 +51,9 @@ + + @@ -95,7 +97,9 @@ rep_team_new_amount = 0, rep_team_new_pv = 0, point_count = 0, - rep_pv_balance = 0 + wait_point_count = 0, + rep_pv_balance = 0, + gift_point = 0 @@ -107,7 +111,8 @@ team_consume_pv, team_month_pv, team_consume_amount, team_month_amount, recommend_num, team_num, big_team_pv, small_team_pv, - point_count, rep_pv_balance + point_count, wait_point_count, rep_pv_balance, + gift_point from ${yesterdayRangeTableName} ) b on (a.pk_member = b.pk_member) @@ -120,7 +125,9 @@ a.team_consume_amount = b.team_consume_amount, a.recommend_num = b.recommend_num, a.team_num = b.team_num, a.big_team_pv = b.big_team_pv, a.small_team_pv = b.small_team_pv, - a.point_count = b.point_count, a.rep_pv_balance = b.rep_pv_balance + a.point_count = b.point_count, a.wait_point_count = b.wait_point_count, + a.rep_pv_balance = b.rep_pv_balance, + a.gift_point = b.gift_point ,a.month_consume_pv = b.month_consume_pv ,a.month_consume_amount = b.month_consume_amount @@ -339,7 +346,8 @@ #{item.regTeamNewAmount} reg_team_new_amount, #{item.regTeamNewPv} reg_team_new_pv, #{item.repConsumeNewAmount} rep_consume_new_amount, #{item.repConsumeNewPv} rep_consume_new_pv, #{item.repTeamNewAmount} rep_team_new_amount, #{item.repTeamNewPv} rep_team_new_pv, - #{item.pointCount} point_count, #{item.repPvBalance} rep_pv_balance + #{item.pointCount} point_count, #{item.waitPointCount} wait_point_count, #{item.repPvBalance} rep_pv_balance, + #{item.giftPoint} gift_point from dual ) b @@ -355,7 +363,8 @@ a.reg_team_new_amount = b.reg_team_new_amount, a.reg_team_new_pv = b.reg_team_new_pv, a.rep_consume_new_amount = b.rep_consume_new_amount, a.rep_consume_new_pv = b.rep_consume_new_pv, a.rep_team_new_amount = b.rep_team_new_amount, a.rep_team_new_pv = b.rep_team_new_pv, - a.point_count = b.point_count, a.rep_pv_balance = b.rep_pv_balance + a.point_count = b.point_count, a.wait_point_count = b.wait_point_count, a.rep_pv_balance = b.rep_pv_balance, + a.gift_point = b.gift_point @@ -671,7 +680,9 @@ rep_team_new_amount, rep_team_new_pv, point_count, + wait_point_count, rep_pv_balance, + gift_point, bw.awards_value, bw.awards_name from ( 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 ecced1a8..e61a1a6c 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 @@ -576,7 +576,9 @@ rep_team_new_amount number(17,6) default 0 not null, rep_team_new_pv number(17,6) default 0 not null, point_count number(8) default 0 not null, - rep_pv_balance number(17,6) default 0 not null + wait_point_count number(8) default 0 not null, + rep_pv_balance number(17,6) default 0 not null, + gift_point number(2) default 1 not null ) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java index f5f6ea4a..6b996bf6 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java @@ -194,6 +194,11 @@ public class CuMemberRetailRange extends BaseEntity { */ @TableField("point_count") private Integer pointCount; + /** + * 待激活子点位数 + */ + @TableField("WAIT_POINT_COUNT") + private Integer waitPointCount; /** * 复购业绩余额 @@ -201,4 +206,10 @@ public class CuMemberRetailRange extends BaseEntity { @TableField("REP_PV_BALANCE") private BigDecimal repPvBalance; + /** + * 赠送几个点位 + */ + @TableField("GIFT_POINT") + private Integer giftPoint; + } From 6a148708034f02a5b8abbc5ad7695af22fc48412 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Fri, 26 Sep 2025 09:06:50 +0800 Subject: [PATCH 16/34] =?UTF-8?q?##=20Opt=20-=20=E5=B0=8F=E8=B4=AD?= =?UTF-8?q?=E7=89=A9=E8=BD=A6=E9=9D=9E=E7=A9=BA=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sale/wares/service/impl/BdWaresSpecsSkuServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresSpecsSkuServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresSpecsSkuServiceImpl.java index 6345dc09..34a5304a 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresSpecsSkuServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/wares/service/impl/BdWaresSpecsSkuServiceImpl.java @@ -189,6 +189,9 @@ public class BdWaresSpecsSkuServiceImpl extends ServiceImpl bdWaresSpecsSkuExtList; + if(ObjectUtil.isEmpty(specialArea)){ + specialArea = -1; + } if(ESpecialArea.RETAIL_UPGRADE.getValue() == specialArea){ specialArea = ESpecialArea.RETAIL_REGISTER.getValue(); } From 18e62e2d6ba97685266511a18b9393568a644bae Mon Sep 17 00:00:00 2001 From: zhangheng Date: Fri, 26 Sep 2025 09:39:54 +0800 Subject: [PATCH 17/34] =?UTF-8?q?##=20=E4=B8=89=E9=98=B6=E6=AE=B5=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E5=88=97=E8=A1=A8=E6=95=B0=E6=8D=AE,=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E5=AD=90=E7=82=B9=E4=BD=8D=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/ApiMemberController.java | 48 +++ .../controller/manage/CuMemberController.java | 45 +++ .../mapper/CuMemberRetailDetailMapper.java | 7 +- .../base/mapper/CuMemberRetailMapper.java | 26 ++ .../base/service/ICuMemberRetailService.java | 23 ++ .../service/ICumemberRetailDetailService.java | 2 +- .../impl/CuMemberRetailServiceImpl.java | 38 ++ .../ICumemberRetailDetailServiceImpl.java | 20 +- .../com/hzs/member/base/vo/memberPointVO.java | 39 ++ .../api/ApiMemberStructureController.java | 24 +- .../manage/MemberStructureController.java | 16 +- .../controller/vo/CuMemberPointDetailVO.java | 8 + .../vo/CuMemberThreeFrameworkVO.java | 190 +++++++--- .../member/base/CuMemberRetailMapper.xml | 105 ++++++ .../member/CuMemberRetailDetailMapper.xml | 106 +----- .../hzs/common/core/enums/EBonusStage.java | 12 + .../common/core/enums/EBonusStageStatus.java | 12 + .../common/core/enums/EBonusStageType.java | 11 + .../common/core/enums/EOperationBusiness.java | 2 + .../common/core/enums/EOperationModule.java | 6 + .../domain/member/base/CuMemberRetail.java | 339 ++++++++++++++++++ .../src/test/java/com/CodeGenerator.java | 2 +- 22 files changed, 934 insertions(+), 147 deletions(-) create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/memberPointVO.java create mode 100644 bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml create mode 100644 bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMemberRetail.java 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 e566f0be..a81356c8 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 @@ -2,9 +2,11 @@ package com.hzs.member.base.controller.api; import cn.hutool.core.codec.Base64Decoder; import cn.hutool.core.collection.CollectionUtil; +import com.hzs.common.core.annotation.Log; import com.hzs.common.core.annotation.RepeatSubmitSimple; import com.hzs.common.core.config.BdConfig; import com.hzs.common.core.constant.CacheConstants; +import com.hzs.common.core.constant.TableNameConstants; import com.hzs.common.core.constant.msg.CommonMsgConstants; import com.hzs.common.core.constant.msg.ConfigMsgConstants; import com.hzs.common.core.constant.msg.MemberMsgConstants; @@ -18,13 +20,17 @@ import com.hzs.common.core.utils.uuid.IdUtils; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.page.TableDataInfo; +import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; +import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.detail.CuMemberChangeLog; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.util.TransactionUtils; +import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; import com.hzs.member.base.param.ForgetPasswordParam; import com.hzs.member.base.param.MemberDataParam; +import com.hzs.member.base.service.ICuMemberRetailService; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.service.IMemberInfoService; import com.hzs.common.core.utils.UploadFileUtil; @@ -39,6 +45,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; @@ -56,6 +64,11 @@ public class ApiMemberController extends BaseController { private ICuMemberService iCuMemberService; @Autowired private IApiAliSmsService iApiAliSmsService; + @Autowired + private ICuMemberRetailService iCuMemberRetailService; + @Autowired + private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; + @Autowired private RedisService redisService; @@ -427,4 +440,39 @@ public class ApiMemberController extends BaseController { .uuid(uuid) .build()); } + /** + * + * @return + */ + @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) + @GetMapping("/member-point") + public AjaxResult memberPoint() { + Long userId = SecurityUtils.getUserId(); + if (userId == null) { + log.error("用户登录信息错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + // 获取当前时间 -1 天 + String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + // 查询相关日结表 + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday); + log.info("会员结算表信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); + log.info("会员结算表名称{}",settleTableName); + // 校验当前日结表是否存在 + 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 null; + } + list.forEach(item -> { + item.setMemberSettlePeriod(csPeriod.getSettleDate()); + }); + startPage(); + return AjaxResult.success(getDataTable(list)); + } } 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 58063571..dc3881f7 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 @@ -9,6 +9,7 @@ import com.hzs.common.core.annotation.ColumnAuthority; import com.hzs.common.core.annotation.Log; 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.MemberMsgConstants; import com.hzs.common.core.domain.R; @@ -19,16 +20,20 @@ import com.hzs.common.core.utils.poi.ExcelUtil; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.page.TableDataInfo; +import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.member.base.CuMember; +import com.hzs.common.domain.member.base.CuMemberRetail; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.security.service.MemberTokenService; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.common.service.ITransactionCommonService; import com.hzs.common.util.TransactionUtils; +import com.hzs.member.achieve.service.ICuMemberSettlePeriodService; import com.hzs.member.base.dto.LoginMember; import com.hzs.member.base.dto.MemberBusinessTemplate; import com.hzs.member.base.param.*; +import com.hzs.member.base.service.ICuMemberRetailService; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.vo.*; import com.hzs.member.login.service.IMemberLoginService; @@ -42,6 +47,7 @@ import com.hzs.system.config.dto.GradeDTO; import com.hzs.system.sys.IMenuColumnServiceApi; import com.hzs.system.sys.IUserServiceApi; import com.hzs.system.sys.dto.UserAuthorityDTO; +import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -53,6 +59,7 @@ import java.nio.charset.StandardCharsets; import java.util.*; import java.util.stream.Collectors; +@Slf4j @RequestMapping("/manager/member") @RestController public class CuMemberController extends BaseController { @@ -65,6 +72,10 @@ public class CuMemberController extends BaseController { private MemberTokenService memberTokenService; @Autowired private IMemberLoginService iMemberLoginService; + @Autowired + private ICuMemberRetailService iCuMemberRetailService; + @Autowired + private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; @DubboReference IUserServiceApi iUserServiceApi; @@ -778,4 +789,38 @@ public class CuMemberController extends BaseController { return AjaxResult.success("", Base64Encoder.encode(tmpPwd.getBytes(StandardCharsets.UTF_8))); } + /** + * + * @param memberCode + * @param memberSettlePeriodId + * @return + */ + @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) + @GetMapping("/member-point") + public AjaxResult memberPoint(String memberCode,Long memberSettlePeriodId) { + if (memberCode == null || memberSettlePeriodId == null) { + log.error("参数错误{}{}",memberCode, memberSettlePeriodId); + return AjaxResult.error(MemberMsgConstants.REQUIRED_NOT_EMPTY); + } + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); + log.info("会员结算表信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); + log.info("会员结算表名称{}",settleTableName); + // 校验当前日结表是否存在 + Integer isFind = iCuMemberRetailService.getFindCuMemberRetailDetail(settleTableName); + if (isFind == null || isFind != 1) { + log.error("当前表名不存在{}",settleTableName); + return AjaxResult.error("当前会员结算表不存在",settleTableName); + } + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode); + if (CollectionUtil.isEmpty(list)) { + return null; + } + list.forEach(item -> { + item.setMemberSettlePeriod(csPeriod.getSettleDate()); + }); + startPage(); + return AjaxResult.success(getDataTable(list)); + } + } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java index a4fa110f..724a4730 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java @@ -34,10 +34,15 @@ public interface CuMemberRetailDetailMapper extends BaseMapper getCuMemberRetailDetailDTOList(@Param("settleTableName") String settleTableName, @Param("memberCode") String memberCode, @Param("stage") Integer stage, @Param("stageStatus") Integer stageStatus); + + + CuMemberPointDetailVO getPointDetailByUserId(@Param("userId") Long userId, + @Param("stage") Integer stage, + @Param("point") Integer point, + @Param("settleTableName") String settleTableName); } 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 new file mode 100644 index 00000000..453672e1 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailMapper.java @@ -0,0 +1,26 @@ +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 org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author bd + * @since 2025-09-25 + */ +public interface CuMemberRetailMapper extends BaseMapper { + + Integer getFindCumemberRetailDetail(@Param("settleTableName") String settleTableName); + + List getMemberPointByMemberCode(@Param("settleTableName") String settleTableName, @Param("memberCode") String memberCode); + + 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 new file mode 100644 index 00000000..510dc8d1 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberRetailService.java @@ -0,0 +1,23 @@ +package com.hzs.member.base.service; + + +import com.hzs.member.base.vo.memberPointVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author bd + * @since 2025-09-25 + */ +public interface ICuMemberRetailService{ + + Integer getFindCuMemberRetailDetail(String settleTableName); + + List getMemberPointByMemberCode(String settleTableName, String memberCode); + + List getMemberPointByUserId(String settleTableName, Long userId); +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java index c67c74aa..94be8633 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java @@ -23,6 +23,6 @@ public interface ICumemberRetailDetailService { List getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus); - CuMemberPointDetailVO getPointDetail(Long pointMemberCode); + CuMemberPointDetailVO getPointDetailByUserId(Long userId, Integer stage, Integer point, String settleTableName); } 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 new file mode 100644 index 00000000..f2c3ac9a --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberRetailServiceImpl.java @@ -0,0 +1,38 @@ +package com.hzs.member.base.service.impl; + +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 org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author bd + * @since 2025-09-25 + */ +@Service +public class CuMemberRetailServiceImpl extends ServiceImpl implements ICuMemberRetailService { + + @Override + public Integer getFindCuMemberRetailDetail(String settleTableName) { + return baseMapper.getFindCumemberRetailDetail(settleTableName); + } + + @Override + public List getMemberPointByMemberCode(String settleTableName, String memberCode) { + return baseMapper.getMemberPointByMemberCode(settleTableName,memberCode); + } + + @Override + 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/service/impl/ICumemberRetailDetailServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/ICumemberRetailDetailServiceImpl.java index 075e75c0..0650e949 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 @@ -3,6 +3,9 @@ package com.hzs.member.base.service.impl; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.core.enums.EBonusStage; +import com.hzs.common.core.enums.EBonusStageStatus; +import com.hzs.common.core.enums.EBonusStageType; import com.hzs.common.core.enums.EMemberChildNodeType; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.base.CuMember; @@ -24,6 +27,8 @@ import java.util.stream.Stream; public class ICumemberRetailDetailServiceImpl extends ServiceImpl implements ICumemberRetailDetailService { @Autowired private ICuMemberService iCuMemberService; + @Autowired + private ICumemberRetailDetailService iCumemberRetailDetailService; @Override public List getChildList(String memberCode, Integer stage, Integer stageStatus, String settleTableName) { return baseMapper.getChildList(memberCode,stage,stageStatus,settleTableName); @@ -107,14 +112,23 @@ public class ICumemberRetailDetailServiceImpl extends ServiceImpl getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus) { - return baseMapper.getCuMemberRetailDetailDTOList(settleTableName, memberCode, stage, stageStatus); + List cuMemberRetailDetailDTOList = baseMapper.getCuMemberRetailDetailDTOList(settleTableName, memberCode, stage, stageStatus); + cuMemberRetailDetailDTOList.forEach(item -> { + item.setPointTypeLabel(EBonusStageType.getEBonusStageTypeByValue(item.getPointType()).getLabel()); + item.setStageLabel(EBonusStage.getEBonusStageByValue(item.getStage()).getLabel()); + item.setStageStatusLabel(EBonusStageStatus.getEBonusStageStatusLabel(item.getStageStatus()).getLabel()); + }); + return cuMemberRetailDetailDTOList; } @Override - public CuMemberPointDetailVO getPointDetail(Long pointMemberCode) { - return baseMapper.getPointDetail(pointMemberCode); + public CuMemberPointDetailVO getPointDetailByUserId(Long userId, Integer stage, Integer point, String settleTableName) { + CuMemberPointDetailVO pointDetailByUserId = baseMapper.getPointDetailByUserId(userId, stage, point, settleTableName); + pointDetailByUserId.setMemberName(pointDetailByUserId.getMemberName() + "-" + point); + return pointDetailByUserId; } + private Map makeNode(String id, String parentId, String label,Integer pointMember, Long memberId, Map memberMap) { Map map = new HashMap<>(); 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 new file mode 100644 index 00000000..676f4e52 --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/vo/memberPointVO.java @@ -0,0 +1,39 @@ +package com.hzs.member.base.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class memberPointVO { + /** + * 会员编号 + */ + private String memberCode; + /** + * 会员姓名 + */ + private String memberName; + /** + * 子点位总数 + */ + private Integer pointCount; + /** + * 待激活点位数 + */ + private Integer waitPointCount; + /** + * 复购业绩余额 + */ + private Long repPvBalance; + /** + * 期数 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date memberSettlePeriod; +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java index 06f097b3..e002886d 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java @@ -157,12 +157,30 @@ public class ApiMemberStructureController extends BaseController { @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) @GetMapping("/pointDetail") - public AjaxResult pointDetail(Long pointMemberCode) { - if (pointMemberCode == null) { + public AjaxResult pointDetail(Integer stage,Integer point) { + if (stage == null || point == null) { log.error("参数错误"); return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); } - CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode); + Long userId = SecurityUtils.getUserId(); + if (userId == null) { + log.error("用户登录信息错误"); + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + } + // 获取当前时间 -1 天 + String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + // 查询相关日结表 + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(yesterday); + log.info("日结信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId(); + log.info("日结表名称{}",settleTableName); + // 校验当前日结表是否存在 + Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); + if (isFind == null || isFind != 1) { + log.error("当前会员日结信息不存在{}",settleTableName); + return AjaxResult.error("数据查询错误,请联系客服处理"); + } + CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(userId,stage,point,settleTableName); if (cuMemberPointDetailVO == null) { return null; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java index 447f730c..4444947e 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java @@ -277,12 +277,22 @@ public class MemberStructureController extends BaseController { @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) @GetMapping("/pointDetail") - public AjaxResult pointDetail(Long pointMemberCode) { - if (pointMemberCode == null) { + public AjaxResult pointDetail(Long pkMember,Integer stage,Integer point,Long memberSettlePeriodId) { + if (pkMember == null || stage == null || point == null || memberSettlePeriodId == null) { log.error("参数错误"); return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); } - CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetail(pointMemberCode); + CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); + log.info("日结信息{}",csPeriod); + String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE_DETAIL + csPeriod.getPkId(); + log.info("日结表名称{}",settleTableName); + // 校验当前日结表是否存在 + Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); + if (isFind == null || isFind != 1) { + log.error("当前表名不存在{}",settleTableName); + return AjaxResult.error("当前日结信息表不存在",settleTableName); + } + CuMemberPointDetailVO cuMemberPointDetailVO = iCumemberRetailDetailService.getPointDetailByUserId(pkMember,stage,point,settleTableName); if (cuMemberPointDetailVO == null) { return null; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java index fbc5864b..68982f52 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberPointDetailVO.java @@ -1,10 +1,13 @@ package com.hzs.member.structure.controller.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Date; + @Data @AllArgsConstructor @NoArgsConstructor @@ -26,4 +29,9 @@ public class CuMemberPointDetailVO { * 隶属体系 */ private String vertexName; + /** + * 点位创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date creationTime; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java index 660fed11..fa0d217b 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/vo/CuMemberThreeFrameworkVO.java @@ -1,11 +1,14 @@ package com.hzs.member.structure.controller.vo; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.Date; @Data @AllArgsConstructor @@ -14,146 +17,237 @@ import java.io.Serializable; public class CuMemberThreeFrameworkVO implements Serializable { private static final long serialVersionUID = 1L; + + /** + * 会员ID + */ + private Long pkMember; + + /** + * 会员子节点 + */ + private Integer childNode; + + /** + * 推荐人 + */ + private Long pkParent; + + /** + * 三个阶段(1、2、3) + */ + private Integer stage; + /** + * 三阶段实际值 + */ + private String stageLabel; + /** * 阶段状态(0=已完成,1=未完成) */ private Integer stageStatus; + /** + * 阶段完成实际值 + */ + private String stageStatusLabel; /** - * 阶段 + * 阶段完成时间 */ - private Integer stage; - /** - * 子点位 - */ - private Integer childNode; + private Date stageDate; /** * 点位1-1会员ID */ - private String pointMemberName11; + private Long pointMember11; /** - * 点位1-1会员ID + * 点位1-1会员子节点 */ - private String pointMemberCode11; + private Integer point11; /** * 点位1-2会员ID */ - private String pointMemberName12; + private Long pointMember12; /** - * 点位1-1会员ID + * 点位1-2会员子节点 */ - private String pointMemberCode12; + private Integer point12; /** * 点位2-1会员ID */ - private String pointMemberName21; + private Long pointMember21; /** - * 点位1-1会员ID + * 点位2-1会员子节点 */ - private String pointMemberCode21; + private Integer point21; /** * 点位2-2会员ID */ - private String pointMemberName22; + private Long pointMember22; /** - * 点位1-1会员ID + * 点位2-2会员子节点 */ - private String pointMemberCode22; + private Integer point22; /** * 点位2-3会员ID */ - private String pointMemberName23; + private Long pointMember23; /** - * 点位1-1会员ID + * 点位2-3会员子节点 */ - private String pointMemberCode23; + private Integer point23; /** * 点位2-4会员ID */ - private String pointMemberName24; + private Long pointMember24; /** - * 点位1-1会员ID + * 点位2-4会员子节点 */ - private String pointMemberCode24; + private Integer point24; /** * 点位3-1会员ID */ - private String pointMemberName31; + private Long pointMember31; /** - * 点位1-1会员ID + * 点位3-1会员子节点 */ - private String pointMemberCode31; + private Integer point31; /** * 点位3-2会员ID */ - private String pointMemberName32; + private Long pointMember32; /** - * 点位1-1会员ID + * 点位3-2会员子节点 */ - private String pointMemberCode32; + private Integer point32; /** * 点位3-3会员ID */ - private String pointMemberName33; + private Long pointMember33; /** - * 点位1-1会员ID + * 点位3-3会员子节点 */ - private String pointMemberCode33; + private Integer point33; /** * 点位3-4会员ID */ - private String pointMemberName34; + private Long pointMember34; /** - * 点位1-1会员ID + * 点位3-4会员子节点 */ - private String pointMemberCode34; + private Integer point34; /** * 点位3-5会员ID */ - private String pointMemberName35; + private Long pointMember35; /** - * 点位1-1会员ID + * 点位3-5会员子节点 */ - private String pointMemberCode35; + private Integer point35; /** * 点位3-6会员ID */ - private String pointMemberName36; + private Long pointMember36; /** - * 点位1-1会员ID + * 点位3-6会员子节点 */ - private String pointMemberCode36; + private Integer point36; /** * 点位3-7会员ID */ - private String pointMemberName37; + private Long pointMember37; /** - * 点位1-1会员ID + * 点位3-7会员子节点 */ - private String pointMemberCode37; + private Integer point37; /** * 点位3-8会员ID */ - private String pointMemberName38; + private Long pointMember38; /** - * 点位1-1会员ID + * 点位3-8会员子节点 */ - private String pointMemberCode38; + private Integer point38; + /** + * 点位类型(0=普通,1=赠送点位) + */ + private Integer pointType; + /** + * 点位类型实际值 + */ + private String pointTypeLabel; + + /** + * 赠点数量(三阶段走完赠送几个点位) + */ + private Integer pointGift; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date creationTime; + + /** + * 第一层会员ID + */ + private Long pointMemberFirst; + /** + * 第一层会员子节点 + */ + private Integer pointFirst; + + /** + * 第二层会员ID + */ + private Long pointMemberSecond; + /** + * 第二层会员子节点 + */ + private Integer pointSecond; + + /** + * 第三层会员ID + */ + private Long pointMemberThird; + /** + * 第三层会员子节点 + */ + private Integer pointThird; + + /** + * 三阶段1层奖金次数 + */ + private Integer thirdBonus1; + + /** + * 三阶段2层奖金次数 + */ + private Integer thirdBonus2; + + /** + * 三阶段3层奖金次数 + */ + private Integer thirdBonus3; + + /** + * 更新标记(不为null则需要入库) + */ + private Integer updateBool; } 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 new file mode 100644 index 00000000..20de4174 --- /dev/null +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberRetailMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PK_COUNTRY, + PK_MEMBER, PK_PARENT, MEMBER_CODE, MEMBER_NAME, CUSTOMER_TYPE, PHONE, PK_GRADE, PK_AWARDS, PK_SHARE_AWARDS, ENABLE_STATUS, ACCOUNT_STATUS, PAY_STATUS, PAY_TIME, CATEGORY, PURCHASE_STATUS, INCOME_STATUS, PK_TEAM_CODE, PK_CENTER_CODE, PK_VERTEX, PK_SETTLE_COUNTRY, IS_REAL_NAME, SYSTEM_TYPE, PK_RATE, NEW_CONSUME_PV, CONSUME_PV, MONTH_CONSUME_PV, NEW_CONSUME_AMOUNT, CONSUME_AMOUNT, MONTH_CONSUME_AMOUNT, TEAM_NEW_PV, TEAM_CONSUME_PV, TEAM_MONTH_PV, TEAM_NEW_AMOUNT, TEAM_CONSUME_AMOUNT, TEAM_MONTH_AMOUNT, RECOMMEND_NUM, TEAM_NUM, BIG_TEAM_PV, SMALL_TEAM_PV, REG_CONSUME_NEW_AMOUNT, REG_CONSUME_NEW_PV, REG_TEAM_NEW_AMOUNT, REG_TEAM_NEW_PV, REP_CONSUME_NEW_AMOUNT, REP_CONSUME_NEW_PV, REP_TEAM_NEW_AMOUNT, REP_TEAM_NEW_PV, POINT_COUNT, WAIT_POINT_COUNT, REP_PV_BALANCE, GIFT_ONE, GIFT_TWO + + + + + + 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 3f542e8d..f7897a31 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 @@ -62,96 +62,10 @@ and cud.STAGE_STATUS = #{stageStatus} - + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStage.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStage.java index ae52b1a0..c502c464 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStage.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStage.java @@ -34,4 +34,16 @@ public enum EBonusStage { */ private final String label; + public static EBonusStage getEBonusStageByValue(Integer value) { + if (null == value) { + return null; + } + for (EBonusStage eBonusStage : EBonusStage.values()) { + if (eBonusStage.getValue() == value) { + return eBonusStage; + } + } + return null; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageStatus.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageStatus.java index 2e3d4406..08bdfed5 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageStatus.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageStatus.java @@ -30,4 +30,16 @@ public enum EBonusStageStatus { */ private final String label; + public static EBonusStageStatus getEBonusStageStatusLabel(Integer value) { + if (null == value) { + return null; + } + for (EBonusStageStatus eBonusStageStatus : EBonusStageStatus.values()) { + if (eBonusStageStatus.getValue() == value) { + return eBonusStageStatus; + } + } + return null; + } + } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageType.java index 9497814c..b9c86dff 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EBonusStageType.java @@ -30,4 +30,15 @@ public enum EBonusStageType { */ private final String label; + public static EBonusStageType getEBonusStageTypeByValue(Integer value) { + if (null == value) { + return null; + } + for (EBonusStageType eBonusStageType : EBonusStageType.values()) { + if (eBonusStageType.getValue() == value) { + return eBonusStageType; + } + } + return null; + } } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java index 2ea8ab27..df49c905 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationBusiness.java @@ -74,6 +74,8 @@ public enum EOperationBusiness { SHARE_DELETE("删除空点"), + MEMBER_POINT("会员子点信息"), + //////////////////// 架构管理 //////////////////// SCHEME_ONE("方案一"), diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java index 8bac1e44..85229246 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EOperationModule.java @@ -40,6 +40,8 @@ public enum EOperationModule { BUSINESS_LICENSE("营业执照"), + MEMBER_POINT("会员子点信息"), + //////////////////// 架构管理 //////////////////// RESETTLE_FRAMEWORK("安置架构"), @@ -400,9 +402,13 @@ public enum EOperationModule { STATISTIC_ANALYSIS("统计分析"), MEMBER_RISK_CONTROL("K值风控设置"), + ORDER_SYNC("同步失败订单"), + MEMBER_RETAIL_CHILDNODE("会员子节点查询"), + MEMBER_RETAIL_TREE("三阶段结构"), + MEMBER_RETAIL_TREE_LIST("三阶段数据") ; diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMemberRetail.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMemberRetail.java new file mode 100644 index 00000000..cd2be83e --- /dev/null +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMemberRetail.java @@ -0,0 +1,339 @@ +package com.hzs.common.domain.member.base; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.TableField; +import com.hzs.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author bd + * @since 2025-09-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@TableName("CU_MEMBER_RETAIL") +@AllArgsConstructor +@NoArgsConstructor +public class CuMemberRetail extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 会员ID + */ + @TableField("PK_MEMBER") + private Long pkMember; + + /** + * 推荐人ID + */ + @TableField("PK_PARENT") + private Long pkParent; + + /** + * 会员编号 + */ + @TableField("MEMBER_CODE") + private String memberCode; + + /** + * 会员姓名 + */ + @TableField("MEMBER_NAME") + private String memberName; + + /** + * 会员类型(0.正常 1.空单 2.待激活-不用 3.已注销-不用 4.嗨粉 6.会员) + */ + @TableField("CUSTOMER_TYPE") + private Integer customerType; + + /** + * 联系方式 + */ + @TableField("PHONE") + private String phone; + + /** + * 会员等级 + */ + @TableField("PK_GRADE") + private Integer pkGrade; + + /** + * 会员奖衔 + */ + @TableField("PK_AWARDS") + private Integer pkAwards; + + /** + * 分红奖衔 + */ + @TableField("PK_SHARE_AWARDS") + private Integer pkShareAwards; + + /** + * 是否支付 + */ + @TableField("ENABLE_STATUS") + private Integer enableStatus; + + /** + * 账户状态(0=正常,1=限制登录(仅登录,无操作),2=禁止登录(不能登录),3=停止收益(计算不发),4=停算奖金(不计算奖金)) + */ + @TableField("ACCOUNT_STATUS") + private Integer accountStatus; + + /** + * 支付状态 + */ + @TableField("PAY_STATUS") + private Integer payStatus; + + /** + * 支付时间 + */ + @TableField("PAY_TIME") + private Date payTime; + + /** + * 用户类型分类(0=正常(正常 空单 嗨粉) 1=待激活(撤单死点)2=已注销(退单)) + */ + @TableField("CATEGORY") + private Integer category; + + /** + * 复购免考(0=是,1=否) + */ + @TableField("PURCHASE_STATUS") + private Integer purchaseStatus; + + /** + * 收益状态 (0=正常,1=停止收益) + */ + @TableField("INCOME_STATUS") + private Integer incomeStatus; + + /** + * 团队ID + */ + @TableField("PK_TEAM_CODE") + private Long pkTeamCode; + + /** + * 报单中心ID + */ + @TableField("PK_CENTER_CODE") + private Long pkCenterCode; + + /** + * 体系ID + */ + @TableField("PK_VERTEX") + private Long pkVertex; + + /** + * 结算国 + */ + @TableField("PK_SETTLE_COUNTRY") + private Integer pkSettleCountry; + + /** + * 是否实名认证(0=是,1=否) + */ + @TableField("IS_REAL_NAME") + private Integer isRealName; + + /** + * 系统类型(2=新零售) + */ + @TableField("SYSTEM_TYPE") + private Integer systemType; + + /** + * 汇率 + */ + @TableField("PK_RATE") + private Integer pkRate; + + /** + * 本人当天新消费pv + */ + @TableField("NEW_CONSUME_PV") + private BigDecimal newConsumePv; + + /** + * 本人累计消费pv + */ + @TableField("CONSUME_PV") + private BigDecimal consumePv; + + /** + * 本人月累计消费pv + */ + @TableField("MONTH_CONSUME_PV") + private BigDecimal monthConsumePv; + + /** + * 本人当天新消费金额 + */ + @TableField("NEW_CONSUME_AMOUNT") + private BigDecimal newConsumeAmount; + + /** + * 本人累计消费金额 + */ + @TableField("CONSUME_AMOUNT") + private BigDecimal consumeAmount; + + /** + * 本人月累计消费金额 + */ + @TableField("MONTH_CONSUME_AMOUNT") + private BigDecimal monthConsumeAmount; + + /** + * 团队当天新增消费pv + */ + @TableField("TEAM_NEW_PV") + private BigDecimal teamNewPv; + + /** + * 团队累计消费pv + */ + @TableField("TEAM_CONSUME_PV") + private BigDecimal teamConsumePv; + + /** + * 团队月累计消费pv + */ + @TableField("TEAM_MONTH_PV") + private BigDecimal teamMonthPv; + + /** + * 团队新增消费金额 + */ + @TableField("TEAM_NEW_AMOUNT") + private BigDecimal teamNewAmount; + + /** + * 团队累计消费金额 + */ + @TableField("TEAM_CONSUME_AMOUNT") + private BigDecimal teamConsumeAmount; + + /** + * 团队月累计消费金额 + */ + @TableField("TEAM_MONTH_AMOUNT") + private BigDecimal teamMonthAmount; + + /** + * 推荐人数 + */ + @TableField("RECOMMEND_NUM") + private Integer recommendNum; + + /** + * 团队人数 + */ + @TableField("TEAM_NUM") + private Integer teamNum; + + @TableField("BIG_TEAM_PV") + private BigDecimal bigTeamPv; + + @TableField("SMALL_TEAM_PV") + private BigDecimal smallTeamPv; + + /** + * 本日-个人注册(精品专区)新增金额 + */ + @TableField("REG_CONSUME_NEW_AMOUNT") + private BigDecimal regConsumeNewAmount; + + /** + * 本日-个人注册(精品专区)新增业绩 + */ + @TableField("REG_CONSUME_NEW_PV") + private BigDecimal regConsumeNewPv; + + /** + * 本日-团队注册(精品专区)新增金额 + */ + @TableField("REG_TEAM_NEW_AMOUNT") + private BigDecimal regTeamNewAmount; + + /** + * 本日-团队注册(精品专区)新增业绩 + */ + @TableField("REG_TEAM_NEW_PV") + private BigDecimal regTeamNewPv; + + /** + * 本日-个人复购(商城专区)新增金额 + */ + @TableField("REP_CONSUME_NEW_AMOUNT") + private BigDecimal repConsumeNewAmount; + + /** + * 本日-个人复购(商城专区)新增业绩 + */ + @TableField("REP_CONSUME_NEW_PV") + private BigDecimal repConsumeNewPv; + + /** + * 本日-团队复购(商城专区)新增金额 + */ + @TableField("REP_TEAM_NEW_AMOUNT") + private BigDecimal repTeamNewAmount; + + /** + * 本日-团队复购(商城专区)新增业绩 + */ + @TableField("REP_TEAM_NEW_PV") + private BigDecimal repTeamNewPv; + + /** + * 子点位总数 + */ + @TableField("POINT_COUNT") + private Integer pointCount; + + /** + * 待激活子点位数 + */ + @TableField("WAIT_POINT_COUNT") + private Integer waitPointCount; + + /** + * 复购业绩余额 + */ + @TableField("REP_PV_BALANCE") + private BigDecimal repPvBalance; + + /** + * 赠送1个点位已存在标记 + */ + @TableField("GIFT_ONE") + private Integer giftOne; + + /** + * 赠送2个点位已存在标记 + */ + @TableField("GIFT_TWO") + private Integer giftTwo; + + +} diff --git a/code-util/src/test/java/com/CodeGenerator.java b/code-util/src/test/java/com/CodeGenerator.java index 5aae5688..645a8119 100644 --- a/code-util/src/test/java/com/CodeGenerator.java +++ b/code-util/src/test/java/com/CodeGenerator.java @@ -20,7 +20,7 @@ public class CodeGenerator { // 模块名称(包名) String moduleName = "com.hzs.common.domain"; // 表名 - String[] tables = {"CU_MEMBER_RETAIL_DETAIL"}; + String[] tables = {"CU_MEMBER_RETAIL"}; // 生成实体是否继承统一父类 boolean superBool = true; From d367046cfdb247c2dea2c9e28045e765f7e3a7de Mon Sep 17 00:00:00 2001 From: zhangheng Date: Fri, 26 Sep 2025 10:42:55 +0800 Subject: [PATCH 18/34] =?UTF-8?q?##=20=E4=B8=89=E9=98=B6=E6=AE=B5=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E5=88=97=E8=A1=A8=E6=95=B0=E6=8D=AE,=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E5=AD=90=E7=82=B9=E4=BD=8D=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/base/mapper/CuMemberMapper.java | 3 ++ .../mapper/CuMemberRetailDetailMapper.java | 9 +++--- .../member/base/service/ICuMemberService.java | 3 ++ .../service/ICumemberRetailDetailService.java | 2 +- .../service/impl/CuMemberServiceImpl.java | 6 ++++ .../ICumemberRetailDetailServiceImpl.java | 23 +++++++++++--- .../api/ApiMemberStructureController.java | 11 ++----- .../controller/dto/CuMemberDetailDTO.java | 30 +++++++++++++++++++ .../controller/dto/CuMemberPointDTO.java | 22 ++++++++++++++ .../manage/MemberStructureController.java | 6 ++-- .../controller/vo/CuMemberPointDetailVO.java | 2 ++ .../mapper/member/base/CuMemberMapper.xml | 13 ++++++++ .../member/CuMemberRetailDetailMapper.xml | 9 +----- 13 files changed, 111 insertions(+), 28 deletions(-) create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/dto/CuMemberDetailDTO.java create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/dto/CuMemberPointDTO.java diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java index e935b14c..16bdd4df 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberMapper.java @@ -13,6 +13,7 @@ import com.hzs.member.handlebusiness.vo.BusinessMemberVO; import com.hzs.member.handlebusiness.vo.HandleBusinessVO; import com.hzs.member.marketnews.param.MarketNewsParam; import com.hzs.member.marketnews.vo.UserInvestmentVo; +import com.hzs.member.structure.controller.dto.CuMemberDetailDTO; import com.hzs.retail.member.param.ShareRetailMemberParam; import org.apache.ibatis.annotations.Param; @@ -598,4 +599,6 @@ public interface CuMemberMapper extends BaseMapper { * @return */ CuMemberExt queryFansOrder(@Param("orderCode") String orderCode); + + CuMemberDetailDTO getCuMemberDetailById(@Param("pointMember") Long pointMember); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java index 724a4730..94ab3f43 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/mapper/CuMemberRetailDetailMapper.java @@ -2,6 +2,7 @@ package com.hzs.member.base.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; +import com.hzs.member.structure.controller.dto.CuMemberPointDTO; import com.hzs.member.structure.controller.vo.ChildCodeVO; import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; @@ -41,8 +42,8 @@ public interface CuMemberRetailDetailMapper extends BaseMapper { * @return */ Integer getMemberPhoneCount(String phone); + + CuMemberDetailDTO getCuMemberDetailById(Long pointMember); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java index 94be8633..779d47c1 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICumemberRetailDetailService.java @@ -24,5 +24,5 @@ public interface ICumemberRetailDetailService { List getCuMemberRetailDetailList(String settleTableName, String memberCode, Integer stage, Integer stageStatus); - CuMemberPointDetailVO getPointDetailByUserId(Long userId, Integer stage, Integer point, String settleTableName); + CuMemberPointDetailVO getPointDetailByUserId(Long userId, Long pointMember,Integer stage, Integer point, String settleTableName); } 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 fb7913c7..9fd7c590 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 @@ -52,6 +52,7 @@ import com.hzs.member.handlebusiness.vo.HandleBusinessVO; import com.hzs.member.marketnews.param.MarketNewsParam; import com.hzs.member.marketnews.vo.UserInvestmentVo; import com.hzs.member.share.param.ShareRegisterParam; +import com.hzs.member.structure.controller.dto.CuMemberDetailDTO; import com.hzs.retail.member.param.ShareRetailMemberParam; import com.hzs.system.base.ICountryServiceApi; import com.hzs.system.base.ICurrencyServiceApi; @@ -3248,4 +3249,9 @@ public class CuMemberServiceImpl extends ServiceImpl i wrapper.eq(CuMember::getPhone, phone); return baseMapper.selectCount(wrapper); } + + @Override + public CuMemberDetailDTO getCuMemberDetailById(Long pointMember) { + return baseMapper.getCuMemberDetailById(pointMember); + } } 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 0650e949..854026ee 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 @@ -12,6 +12,8 @@ import com.hzs.common.domain.member.base.CuMember; import com.hzs.member.base.mapper.CuMemberRetailDetailMapper; import com.hzs.member.base.service.ICuMemberService; import com.hzs.member.base.service.ICumemberRetailDetailService; +import com.hzs.member.structure.controller.dto.CuMemberDetailDTO; +import com.hzs.member.structure.controller.dto.CuMemberPointDTO; import com.hzs.member.structure.controller.vo.ChildCodeVO; import com.hzs.member.structure.controller.vo.CuMemberPointDetailVO; import com.hzs.member.structure.controller.vo.CuMemberThreeFrameworkVO; @@ -122,10 +124,23 @@ 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 f7897a31..2611ea8d 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 @@ -79,18 +79,11 @@ curd.CHILD_NODE + + + + 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 e61a1a6c..6e1022aa 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 @@ -578,7 +578,8 @@ point_count number(8) default 0 not null, wait_point_count number(8) default 0 not null, rep_pv_balance number(17,6) default 0 not null, - gift_point number(2) default 1 not null + gift_point number(2) default 1 not null, + gift_pay_time DATE ) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/component/load/RedisComponent.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/component/load/RedisComponent.java index b65d3a63..a74cb802 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/component/load/RedisComponent.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/component/load/RedisComponent.java @@ -17,13 +17,6 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; -/** - * @Description: - * @Author: sui q - * @Time: 2022/9/16 17:10 - * @Classname: RedisComponent - * @PackageName: com.hzs.sale.component.load - */ @Component @Slf4j class RedisComponent { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageDetailMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageDetailMapper.java index 1a1746a8..d6793616 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageDetailMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/mapper/BdPostageDetailMapper.java @@ -8,9 +8,6 @@ import java.util.List; /** * 邮费详情设置 Mapper 接口 - * - * @author hzs - * @since 2022-08-29 */ public interface BdPostageDetailMapper extends BaseMapper { diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageDetailService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageDetailService.java index 9b433b45..856460b0 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageDetailService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/IBdPostageDetailService.java @@ -7,9 +7,6 @@ import java.util.List; /** * 邮费详情设置 服务类 - * - * @author hzs - * @since 2022-08-29 */ public interface IBdPostageDetailService extends IService { @@ -18,9 +15,6 @@ public interface IBdPostageDetailService extends IService { * * @param tranType 运费方式 * @param pkPostage 邮费模板 - * @return: BdPostageDetail - * @Author: sui q - * @Date: 2022/9/19 17:29 */ List getPostageDetail(Integer tranType, Integer pkPostage); @@ -28,9 +22,6 @@ public interface IBdPostageDetailService extends IService { * 根据运费类型查询对应的模板 * * @param tranType 运费类型 - * @return: List - * @Author: sui q - * @Date: 2022/9/19 17:02 */ List queryPostageDetail(Integer tranType); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageDetailServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageDetailServiceImpl.java index fc9e5cfc..be33d282 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageDetailServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/postage/service/impl/BdPostageDetailServiceImpl.java @@ -9,12 +9,7 @@ import org.springframework.stereotype.Service; import java.util.List; /** - *

* 邮费详情设置 服务实现类 - *

- * - * @author hzs - * @since 2022-08-29 */ @Service public class BdPostageDetailServiceImpl extends ServiceImpl implements IBdPostageDetailService { diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java index 6b996bf6..a5eea6b0 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/achieve/CuMemberRetailRange.java @@ -212,4 +212,10 @@ public class CuMemberRetailRange extends BaseEntity { @TableField("GIFT_POINT") private Integer giftPoint; + /** + * 赠送点位填充最新时间 + */ + @TableField("GIFT_PAY_TIME") + private Date giftPayTime; + } 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 b9e2a69e..97b019a1 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 @@ -6,8 +6,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.math.BigDecimal; +import java.util.Date; import java.util.LinkedHashMap; -import java.util.List; /** * 新零售极差实体 @@ -142,4 +142,9 @@ public class CuMemberRetailRangeExt extends CuMemberRetailRange { */ private LinkedHashMap threeDetailMap; + /** + * 直推会员列表 + */ + private LinkedHashMap childRetailMap; + } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/postage/BdPostageDetail.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/postage/BdPostageDetail.java index 7923914d..01400e6f 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/postage/BdPostageDetail.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/postage/BdPostageDetail.java @@ -12,19 +12,14 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** - *

* 邮费详情设置 - *

- * - * @author hzs - * @since 2022-08-29 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("BD_POSTAGE_DETAIL") @KeySequence("BD_POSTAGE_DETAIL_SEQ") -public class BdPostageDetail extends BaseEntity { +public class BdPostageDetail extends BaseEntity { private static final long serialVersionUID = 1L; @@ -32,7 +27,6 @@ public class BdPostageDetail extends BaseEntity { private Integer pkId; - /** * 首重重量 */ From a99c27a3ff282ab1fc67185ded130cbb6a8b935f Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Fri, 26 Sep 2025 15:19:55 +0800 Subject: [PATCH 23/34] =?UTF-8?q?##=20=E8=B5=A0=E7=82=B9=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E7=9B=B4=E6=8E=A8=E4=B8=8B=E6=B2=A1=E6=9C=89=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=A1=AB=E5=85=85=E7=9A=84=EF=BC=8C=E5=88=99=E6=8C=89=E8=A1=80?= =?UTF-8?q?=E7=BC=98=E4=B8=8A=E9=80=BB=E8=BE=91=E8=B5=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BonusSettleRangeHandle.java | 107 +++++++++--------- 1 file changed, 56 insertions(+), 51 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 ea050024..20a90d34 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 @@ -1106,7 +1106,62 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 阶段奖金处理列表 List bonusStageDataList = new ArrayList<>(); - if (EBonusStageType.NORMAL.getValue() == newRetailDetail.getPointType()) { + boolean giftBool = false; + if (EBonusStageType.GIFT.getValue() == newRetailDetail.getPointType()) { + // 赠送点位处理,赠送点位给自己直推会员轮流布点 + iCuMemberRetailDetailService.listChildRetailDetail(rangeTableName, rangeDetailTableName, memberRangeExtMap, + sourceMember, eBonusStage); + // 判断是不是都已经填充过一轮了,如果是则需要重新开始从第一个开始填充 + LinkedHashMap childRetailMap = sourceMember.getChildRetailMap(); + if (childRetailMap.size() > 0) { + // 获取最后一条数据 key + Date lastKey = new ArrayList<>(childRetailMap.keySet()).get(childRetailMap.size() - 1); + // 获取最新的会员注册时间,如果没有则设置一个初始化时间 + Date giftPayTime = sourceMember.getGiftPayTime(); + if (null == giftPayTime || giftPayTime.compareTo(lastKey) == 0) { + giftPayTime = BonusConstants.GIFT_PAY_TIME; + } + + for (Date keyDate : childRetailMap.keySet()) { + if (keyDate.compareTo(giftPayTime) > 0) { + // 当前会员注册比之前的要晚,则顺序进行填充 + giftPayTime = keyDate; + // 需要填充的直推会员 + CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate); + // 推荐人一阶段子点位列表 + LinkedHashMap parentDetailList = targetMember.getOneDetailMap(); + + // 推荐人第一层点位处理 + giftBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, + memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); + if (giftBool) { + // 在第一层找到并填充点位,就开始下一个点位的处理 + break; + } + // 推荐人第二层点位处理 + giftBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, + memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); + if (giftBool) { + // 在第二层找到并填充点位,就开始下一个点位的处理 + break; + } + // 推荐人第三层点位处理 + giftBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, + memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); + if (giftBool) { + // 在第三层找到并填充点位,就开始下一个点位的处理 + break; + } + } + } + if (giftBool) { + sourceMember.setGiftPayTime(giftPayTime); + } + } + } + + if (EBonusStageType.NORMAL.getValue() == newRetailDetail.getPointType() + || !giftBool) { // 普通点位处理 // 推荐人 Long pkParent = sourceMember.getPkParent(); @@ -1154,56 +1209,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { break; } } - } else { - // 赠送点位处理,赠送点位给自己直推会员轮流布点 - iCuMemberRetailDetailService.listChildRetailDetail(rangeTableName, rangeDetailTableName, memberRangeExtMap, - sourceMember, eBonusStage); - // 判断是不是都已经填充过一轮了,如果是则需要重新开始从第一个开始填充 - LinkedHashMap childRetailMap = sourceMember.getChildRetailMap(); - if (childRetailMap.size() > 0) { - // 获取最后一条数据 key - Date lastKey = new ArrayList<>(childRetailMap.keySet()).get(childRetailMap.size() - 1); - // 获取最新的会员注册时间,如果没有则设置一个初始化时间 - Date giftPayTime = sourceMember.getGiftPayTime(); - if (null == giftPayTime || giftPayTime.compareTo(lastKey) == 0) { - giftPayTime = BonusConstants.GIFT_PAY_TIME; - } - - for (Date keyDate : childRetailMap.keySet()) { - if (keyDate.compareTo(giftPayTime) > 0) { - // 当前会员注册比之前的要晚,则顺序进行填充 - giftPayTime = keyDate; - - // 需要填充的直推会员 - CuMemberRetailRangeExt targetMember = childRetailMap.get(keyDate); - // 推荐人一阶段子点位列表 - LinkedHashMap parentDetailList = targetMember.getOneDetailMap(); - - // 推荐人第一层点位处理 - boolean forBool = iCuMemberBonusStageService.firstLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, - memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); - if (forBool) { - // 在第一层找到并填充点位,就开始下一个点位的处理 - break; - } - // 推荐人第二层点位处理 - forBool = iCuMemberBonusStageService.secondLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, - memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); - if (forBool) { - // 在第二层找到并填充点位,就开始下一个点位的处理 - break; - } - // 推荐人第三层点位处理 - forBool = iCuMemberBonusStageService.thirdLevelhandle(parentDetailList, newRetailDetail, rangeTableName, rangeDetailTableName, - memberRangeExtMap, settleDate, eBonusStage, bonusStageDataList); - if (forBool) { - // 在第三层找到并填充点位,就开始下一个点位的处理 - break; - } - } - } - sourceMember.setGiftPayTime(giftPayTime); - } } if (CollectionUtil.isNotEmpty(bonusStageDataList)) { From 2fe1c41a921137250255c10eb9800faaaf7ca095 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Fri, 26 Sep 2025 15:41:09 +0800 Subject: [PATCH 24/34] =?UTF-8?q?##=20=E5=88=86=E9=A1=B5=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=80=BC=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 | 11 ++++------- .../base/controller/manage/CuMemberController.java | 8 ++++---- .../controller/api/ApiMemberStructureController.java | 11 ++++++----- .../controller/manage/MemberStructureController.java | 9 +++++---- 4 files changed, 19 insertions(+), 20 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 a81356c8..827dd5be 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 @@ -446,11 +446,11 @@ public class ApiMemberController extends BaseController { */ @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) @GetMapping("/member-point") - public AjaxResult memberPoint() { + public TableDataInfo memberPoint() { Long userId = SecurityUtils.getUserId(); if (userId == null) { log.error("用户登录信息错误"); - return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + return null; } // 获取当前时间 -1 天 String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd"))); @@ -463,16 +463,13 @@ public class ApiMemberController extends BaseController { 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 null; } + List list = iCuMemberRetailService.getMemberPointByUserId(settleTableName,userId); list.forEach(item -> { item.setMemberSettlePeriod(csPeriod.getSettleDate()); }); startPage(); - return AjaxResult.success(getDataTable(list)); + return getDataTable(list); } } 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 ccf23e87..345a27f8 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 @@ -797,10 +797,10 @@ public class CuMemberController extends BaseController { */ @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) @GetMapping("/member-point") - public AjaxResult memberPoint(String memberCode,Long memberSettlePeriodId) { + public TableDataInfo memberPoint(String memberCode,Long memberSettlePeriodId) { if (memberSettlePeriodId == null) { log.error("参数错误{}", memberSettlePeriodId); - return AjaxResult.error(MemberMsgConstants.REQUIRED_NOT_EMPTY); + return null; } CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); log.info("会员结算表信息{}",csPeriod); @@ -810,14 +810,14 @@ public class CuMemberController extends BaseController { Integer isFind = iCuMemberRetailService.getFindCuMemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前表名不存在{}",settleTableName); - return AjaxResult.error("当前会员结算表不存在",settleTableName); + return null; } List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode); list.forEach(item -> { item.setMemberSettlePeriod(csPeriod.getSettleDate()); }); startPage(); - return AjaxResult.success(getDataTable(list)); + return getDataTable(list); } /** diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java index 2ddf3d52..e129b1c9 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java @@ -7,6 +7,7 @@ import com.hzs.common.core.constant.msg.CommonMsgConstants; import com.hzs.common.core.enums.*; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; +import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.member.base.CuMember; @@ -120,15 +121,15 @@ public class ApiMemberStructureController extends BaseController { @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) @GetMapping("/three-framework-list") - public AjaxResult threeFrameworkList(Integer stage,Integer stageStatus) { + public TableDataInfo threeFrameworkList(Integer stage, Integer stageStatus) { if (stage == null) { log.error("参数错误"); - return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + return null; } Long userId = SecurityUtils.getUserId(); if (userId == null) { log.error("用户登录信息错误"); - return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + return null; } // 获取当前时间 -1 天 String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd"))); @@ -141,13 +142,13 @@ public class ApiMemberStructureController extends BaseController { Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前会员日结信息不存在{}",settleTableName); - return AjaxResult.error("数据查询错误,请联系客服处理"); + return null; } startPage(); // 查询当前会员所有子点位信息 CuMember member = iCuMemberService.getMember(userId); List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,member.getMemberCode(),stage,stageStatus); - return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); + return getDataTable(cuMemberThreeFrameworkVOS); } @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java index 2d450401..a04a590c 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java @@ -22,6 +22,7 @@ import com.hzs.common.core.utils.StringUtils; import com.hzs.common.core.utils.sign.Base64Util; import com.hzs.common.core.web.controller.BaseController; import com.hzs.common.core.web.domain.AjaxResult; +import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.achieve.CuMemberRetailDetail; import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailSExt; @@ -254,10 +255,10 @@ public class MemberStructureController extends BaseController { */ @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) @GetMapping("/three-framework-list") - public AjaxResult threeFrameworkList(Long memberSettlePeriodId, String memberCode,Integer stage,Integer stageStatus) { + public TableDataInfo threeFrameworkList(Long memberSettlePeriodId, String memberCode, Integer stage, Integer stageStatus) { if (memberSettlePeriodId == null || memberCode == null || stage == null) { log.error("参数错误"); - return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); + return null; } CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); log.info("日结信息{}",csPeriod); @@ -267,12 +268,12 @@ public class MemberStructureController extends BaseController { Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前表名不存在{}",settleTableName); - return AjaxResult.error("当前日结信息表不存在",settleTableName); + return null; } startPage(); // 查询当前会员所有子点位信息 List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,memberCode,stage,stageStatus); - return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); + return getDataTable(cuMemberThreeFrameworkVOS); } @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) From 6832412c6f05ae61761941f01ebbc3781faf3edb Mon Sep 17 00:00:00 2001 From: zhangheng Date: Fri, 26 Sep 2025 16:06:26 +0800 Subject: [PATCH 25/34] =?UTF-8?q?##=20api=E4=BC=9A=E5=91=98=E5=AD=90?= =?UTF-8?q?=E7=82=B9=E4=BF=A1=E6=81=AF=E5=8F=AA=E4=BC=A0=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/controller/api/ApiMemberController.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 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 827dd5be..a558392a 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 @@ -446,11 +446,11 @@ public class ApiMemberController extends BaseController { */ @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) @GetMapping("/member-point") - public TableDataInfo memberPoint() { + public AjaxResult memberPoint() { Long userId = SecurityUtils.getUserId(); if (userId == null) { log.error("用户登录信息错误"); - return null; + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); } // 获取当前时间 -1 天 String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd"))); @@ -463,13 +463,15 @@ public class ApiMemberController extends BaseController { Integer isFind = iCuMemberRetailService.getFindCuMemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前表名不存在{}",settleTableName); - return null; + return AjaxResult.error("数据查询错误,请联系客服处理"); } List list = iCuMemberRetailService.getMemberPointByUserId(settleTableName,userId); - list.forEach(item -> { - item.setMemberSettlePeriod(csPeriod.getSettleDate()); - }); + if (CollectionUtil.isEmpty(list)) { + return AjaxResult.success(); + } + memberPointVO memberPointVO = list.get(0); + memberPointVO.setMemberSettlePeriod(csPeriod.getSettleDate()); startPage(); - return getDataTable(list); + return AjaxResult.success(memberPointVO); } } From daa9efe4e599dd9b7dcdc88070fa3320d04f8df4 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Fri, 26 Sep 2025 16:14:15 +0800 Subject: [PATCH 26/34] =?UTF-8?q?##=20=E5=88=86=E9=A1=B5=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=80=BC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/ApiMemberStructureController.java | 10 +++++----- .../controller/manage/MemberStructureController.java | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java index e129b1c9..008e6ad2 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/api/ApiMemberStructureController.java @@ -121,15 +121,15 @@ public class ApiMemberStructureController extends BaseController { @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) @GetMapping("/three-framework-list") - public TableDataInfo threeFrameworkList(Integer stage, Integer stageStatus) { + public AjaxResult threeFrameworkList(Integer stage, Integer stageStatus) { if (stage == null) { log.error("参数错误"); - return null; + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); } Long userId = SecurityUtils.getUserId(); if (userId == null) { log.error("用户登录信息错误"); - return null; + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); } // 获取当前时间 -1 天 String yesterday = LocalDate.now().minusDays(1).format((DateTimeFormatter.ofPattern("yyyy-MM-dd"))); @@ -142,13 +142,13 @@ public class ApiMemberStructureController extends BaseController { Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前会员日结信息不存在{}",settleTableName); - return null; + return AjaxResult.error(); } startPage(); // 查询当前会员所有子点位信息 CuMember member = iCuMemberService.getMember(userId); List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,member.getMemberCode(),stage,stageStatus); - return getDataTable(cuMemberThreeFrameworkVOS); + return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); } @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java index a04a590c..92505327 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/structure/controller/manage/MemberStructureController.java @@ -255,10 +255,10 @@ public class MemberStructureController extends BaseController { */ @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) @GetMapping("/three-framework-list") - public TableDataInfo threeFrameworkList(Long memberSettlePeriodId, String memberCode, Integer stage, Integer stageStatus) { + public AjaxResult threeFrameworkList(Long memberSettlePeriodId, String memberCode, Integer stage, Integer stageStatus) { if (memberSettlePeriodId == null || memberCode == null || stage == null) { log.error("参数错误"); - return null; + return AjaxResult.error(CommonMsgConstants.MISSING_PARAM); } CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); log.info("日结信息{}",csPeriod); @@ -268,12 +268,12 @@ public class MemberStructureController extends BaseController { Integer isFind = iCumemberRetailDetailService.getFindCumemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前表名不存在{}",settleTableName); - return null; + return AjaxResult.error(); } startPage(); // 查询当前会员所有子点位信息 List cuMemberThreeFrameworkVOS = iCumemberRetailDetailService.getCuMemberRetailDetailList(settleTableName,memberCode,stage,stageStatus); - return getDataTable(cuMemberThreeFrameworkVOS); + return AjaxResult.success(getDataTable(cuMemberThreeFrameworkVOS)); } @Log(module = EOperationModule.MEMBER_RETAIL_TREE_LIST, business = EOperationBusiness.MEMBER_RETAIL_TREE_LIST, method = EOperationMethod.SELECT) From ac43ec555306c2268aeedad3357e3ebe098c7dda Mon Sep 17 00:00:00 2001 From: zhangheng Date: Fri, 26 Sep 2025 16:22:54 +0800 Subject: [PATCH 27/34] =?UTF-8?q?##=20=E4=BC=9A=E5=91=98=E7=82=B9=E4=BD=8D?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=88=86=E9=A1=B5=E8=BF=94=E5=9B=9E=E5=80=BC?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/controller/manage/CuMemberController.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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 345a27f8..732379b8 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.*; @@ -797,10 +798,10 @@ public class CuMemberController extends BaseController { */ @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) @GetMapping("/member-point") - public TableDataInfo memberPoint(String memberCode,Long memberSettlePeriodId) { + public AjaxResult memberPoint(String memberCode,Long memberSettlePeriodId) { if (memberSettlePeriodId == null) { log.error("参数错误{}", memberSettlePeriodId); - return null; + return AjaxResult.error(); } CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); log.info("会员结算表信息{}",csPeriod); @@ -810,14 +811,14 @@ public class CuMemberController extends BaseController { Integer isFind = iCuMemberRetailService.getFindCuMemberRetailDetail(settleTableName); if (isFind == null || isFind != 1) { log.error("当前表名不存在{}",settleTableName); - return null; + return AjaxResult.error(); } List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode); list.forEach(item -> { item.setMemberSettlePeriod(csPeriod.getSettleDate()); }); startPage(); - return getDataTable(list); + return AjaxResult.success(getDataTable(list)); } /** From 110cef3674f3c925e03ba9c0157dc77ba1e392ca Mon Sep 17 00:00:00 2001 From: zhangheng Date: Fri, 26 Sep 2025 16:39:18 +0800 Subject: [PATCH 28/34] =?UTF-8?q?##=20=E4=BC=9A=E5=91=98=E7=82=B9=E4=BD=8D?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=8E=92=E5=BA=8F=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/controller/manage/CuMemberController.java | 10 ++++------ .../hzs/member/base/mapper/CuMemberRetailMapper.java | 2 +- .../member/base/service/ICuMemberRetailService.java | 2 +- .../base/service/impl/CuMemberRetailServiceImpl.java | 5 ++--- .../mapper/member/base/CuMemberRetailMapper.xml | 5 +++-- 5 files changed, 11 insertions(+), 13 deletions(-) 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 732379b8..83eb320c 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,7 +11,6 @@ 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.*; @@ -23,7 +22,6 @@ import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.core.web.page.TableDataInfo; import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod; import com.hzs.common.domain.member.base.CuMember; -import com.hzs.common.domain.member.base.CuMemberRetail; import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.security.service.MemberTokenService; @@ -798,7 +796,7 @@ public class CuMemberController extends BaseController { */ @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) @GetMapping("/member-point") - public AjaxResult memberPoint(String memberCode,Long memberSettlePeriodId) { + public AjaxResult memberPoint(String memberCode,Long memberSettlePeriodId,String sort,String sortColumn) { if (memberSettlePeriodId == null) { log.error("参数错误{}", memberSettlePeriodId); return AjaxResult.error(); @@ -813,7 +811,7 @@ public class CuMemberController extends BaseController { log.error("当前表名不存在{}",settleTableName); return AjaxResult.error(); } - List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode); + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); list.forEach(item -> { item.setMemberSettlePeriod(csPeriod.getSettleDate()); }); @@ -829,12 +827,12 @@ public class CuMemberController extends BaseController { */ @Log(module = EOperationModule.MEMBER_POINT, business = EOperationBusiness.MEMBER_POINT, method = EOperationMethod.SELECT) @PostMapping("/member-point-export") - public void memberPointExport(@RequestParam String memberCode,@RequestParam Long memberSettlePeriodId, HttpServletResponse response) { + public void memberPointExport(@RequestParam String memberCode,@RequestParam Long memberSettlePeriodId,@RequestParam String sort,@RequestParam String sortColumn, HttpServletResponse response) { CuMemberSettlePeriod csPeriod = iCuMemberSettlePeriodService.getById(memberSettlePeriodId); log.info("会员结算表信息{}",csPeriod); String settleTableName = TableNameConstants.CU_MEMBER_RETAIL_RANGE + csPeriod.getPkId(); log.info("会员结算表名称{}",settleTableName); - List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode); + List list = iCuMemberRetailService.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); 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 453672e1..6f4411e4 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); + 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); } 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 510dc8d1..1b9e1fb1 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); + List getMemberPointByMemberCode(String settleTableName, String memberCode,String sort,String sortColumn); 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 f2c3ac9a..09070d76 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 @@ -7,7 +7,6 @@ import com.hzs.member.base.service.ICuMemberRetailService; import com.hzs.member.base.vo.memberPointVO; import org.springframework.stereotype.Service; -import java.util.Collections; import java.util.List; /** @@ -27,8 +26,8 @@ public class CuMemberRetailServiceImpl extends ServiceImpl getMemberPointByMemberCode(String settleTableName, String memberCode) { - return baseMapper.getMemberPointByMemberCode(settleTableName,memberCode); + public List getMemberPointByMemberCode(String settleTableName, String memberCode, String sort, String sortColumn) { + return baseMapper.getMemberPointByMemberCode(settleTableName,memberCode,sort,sortColumn); } @Override 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 20de4174..d73f34a9 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 @@ -83,8 +83,9 @@ AND cmr.MEMBER_CODE = #{memberCode} - ORDER BY - cu.CREATION_TIME + + ORDER BY ${sortColumn} ${sort} +