From 33ea433fad849557a6fd0293a3f619fa712c487d Mon Sep 17 00:00:00 2001
From: cabbage <281119120@qq.com>
Date: Fri, 22 Aug 2025 11:37:46 +0800
Subject: [PATCH] =?UTF-8?q?##=20=E4=BC=9A=E5=91=98=E8=87=AA=E5=B7=B1?=
=?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=BA=97=E4=B8=BB=E3=80=81=E4=BB=A3=E7=90=86?=
=?UTF-8?q?=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A61+1=E5=A4=9A=E5=8D=87?=
=?UTF-8?q?=E4=B8=80=E7=BA=A7=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../impl/CuMemberBusinessServiceImpl.java | 58 ++++++++++++++-----
.../mapper/member/base/CuMemberMapper.xml | 5 +-
2 files changed, 48 insertions(+), 15 deletions(-)
diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java
index b9add7c8..dc55cea2 100644
--- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java
+++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberBusinessServiceImpl.java
@@ -1509,9 +1509,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
// 保存会员等级变动
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, 0);
- if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()
- || EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
- // 店主、代理级别,判断处理区域
+ if (EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
+ // 代理级别,判断处理区域
if (null != saOrder.getRegionProvince()
&& null != saOrder.getRegionCity()) {
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
@@ -1532,18 +1531,14 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
@Transactional(rollbackFor = Exception.class)
@Override
public void updateRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt) {
- // 更新会员信息
- updateCuMember(cuMember);
-
- // 会员等级
+ // 会员新等级
GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
if (!cuMember.getPkSettleGrade().equals(saOrder.getPkGradeOld())) {
// 保存会员等级变动(如果旧等级和新等级相同,则不记录)
saveLevelUpgrade(cuMember, EUpgradeType.BUY_UPGRADE.getValue(), saOrder, saOrder.getPkGradeOld());
- if (EGrade.VIP.getValue() == gradeDTO.getGradeValue()
- || EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
- // 店主、代理级别,判断处理区域
+ if (EGrade.REGION.getValue() == gradeDTO.getGradeValue()) {
+ // 代理级别,判断处理区域
if (null != saOrder.getRegionProvince()
&& null != saOrder.getRegionCity()) {
iCuMemberRetailRegionService.mergeMemberRetailRegion(CuMemberRetailRegion.builder()
@@ -1554,11 +1549,16 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
.build());
}
}
+
+ // 判断处理会员自己等级(下级有店主、代理,自己判断是否升级高级店主、董事代理)
+ this.handleSelfLevel(gradeDTO, cuMember, saOrder.getPayTime());
}
+ // 更新会员信息
+ updateCuMember(cuMember);
- // 判断处理推荐人等级
+ // 判断处理推荐人等级(自己是店主、代理,判断推荐人是否升级高级店主、董事代理)
handleParentUpgrade(cuMember, saOrder, gradeDTO);
-
+ // 处理会员账户
this.handleRetailMemberAccount(saOrder, cuMemberAccountExt);
}
@@ -1677,11 +1677,41 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
}
}
+ /**
+ * 处理会员自己等级
+ *
+ * @param gradeDTO 新等级
+ * @param cuMember 会员自己
+ * @param payTime 订单支付时间(升级记录时间)
+ */
+ private void handleSelfLevel(GradeDTO gradeDTO, CuMember cuMember, Date payTime) {
+ if (null == gradeDTO) {
+ gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
+ }
+ if (gradeDTO.getGradeValue().equals(EGrade.REGION.getValue())) {
+ // 会员当前是区域代理,查询直推是否存在区域代理
+ SaOrder recommendOrder = iCuMemberService.listRecommendVipOrder(cuMember.getPkId(), null, EGrade.REGION.getValue());
+ if (null != recommendOrder) {
+ recommendOrder.setPayTime(payTime);
+ cuMember.setPkSettleGrade(iGradeServiceApi.getGradeByGradeValue(EGrade.DIRECTOR.getValue(), cuMember.getPkSettleCountry()).getData().getPkId());
+ saveLevelUpgrade(cuMember, EUpgradeType.AUTO_UPGRADE.getValue(), recommendOrder, gradeDTO.getPkId());
+ }
+ } else if (gradeDTO.getGradeValue().equals(EGrade.VIP.getValue())) {
+ // 会员当前是博羚店主,查询直推是否存在博羚店主
+ SaOrder recommendOrder = iCuMemberService.listRecommendVipOrder(cuMember.getPkId(), null, EGrade.VIP.getValue());
+ if (null != recommendOrder) {
+ recommendOrder.setPayTime(payTime);
+ cuMember.setPkSettleGrade(iGradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), cuMember.getPkSettleCountry()).getData().getPkId());
+ saveLevelUpgrade(cuMember, EUpgradeType.AUTO_UPGRADE.getValue(), recommendOrder, gradeDTO.getPkId());
+ }
+ }
+ }
+
/**
* 处理推荐人等级
*
- * @param saOrder
- * @param currentDateTime
+ * @param saOrder 升级订单
+ * @param currentDateTime 当前时间
*/
private void handleParentLevel(SaOrderExt saOrder, Date currentDateTime) {
// 注册、升级订单,需要判断是否有推荐人升级的
diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml
index 22a176b9..fe6d8799 100644
--- a/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml
+++ b/bd-business/bd-business-member/src/main/resources/mapper/member/base/CuMemberMapper.xml
@@ -2418,9 +2418,12 @@
and so.order_code != #{orderCode}
- and bg.grade_value >= #{gradeValue}) so
+ and bg.grade_value >= #{gradeValue}
+ order by so.pay_time
+ ) so
where rownum = 1
+