From 87d968aeb3ecbdc89f07a265f357200600fe7441 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 27 Oct 2025 16:50:34 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=96=B0=E9=80=BB=E8=BE=91=E7=AD=89?= =?UTF-8?q?=E7=BA=A7=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/member/base/IMemberServiceApi.java | 4 +-- .../base/provider/MemberServiceProvider.java | 12 ++------- .../service/ICuMemberBusinessService.java | 3 ++- .../impl/CuMemberBusinessServiceImpl.java | 18 ++++++++----- .../service/impl/RetailOrderServiceImpl.java | 27 +++++++++++++------ .../com/hzs/common/core/enums/ETradeType.java | 4 +-- 6 files changed, 38 insertions(+), 30 deletions(-) diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java index 76207e66..64920a4f 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java @@ -345,7 +345,7 @@ public interface IMemberServiceApi { * @param activateFlag 激活标记 * @return */ - R otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag); + R otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag, CuMemberLevel cuMemberLevel); /** * 校验注册关系(是否跨团队) @@ -366,6 +366,4 @@ public interface IMemberServiceApi { */ R getMemberPhoneCount(String phone); - - R saveMemberLevel(CuMemberLevel memberLevel); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java index 451c251c..561e4624 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java @@ -17,7 +17,6 @@ import com.hzs.member.base.dto.ShowWaresDTO; import com.hzs.member.base.dto.ZeroElementRevokeDTO; import com.hzs.member.base.service.*; import com.hzs.member.base.IMemberServiceApi; -import com.hzs.member.detail.service.ICuMemberLevelService; import com.hzs.member.empty.service.ICuMemberEmptyCodeService; import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; import lombok.extern.slf4j.Slf4j; @@ -43,8 +42,6 @@ public class MemberServiceProvider implements IMemberServiceApi { private ICuMemberBusinessService iCuMemberBusinessService; @Autowired private ICuMemberEmptyCodeService iCuMemberEmptyCodeService; - @Autowired - private ICuMemberLevelService iCuMemberLevelService; @Override public R getMemberInfo(String memberCode) { @@ -341,9 +338,9 @@ public class MemberServiceProvider implements IMemberServiceApi { } @Override - public R otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag) { + public R otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag, CuMemberLevel cuMemberLevel) { try { - iCuMemberBusinessService.otherRetailMember(cuMember, saOrder, cuMemberAccountExt, activateFlag); + iCuMemberBusinessService.otherRetailMember(cuMember, saOrder, cuMemberAccountExt, activateFlag, cuMemberLevel); return R.ok(); } catch (Exception e) { log.error("保存新零售会员其它订单异常! error:", e); @@ -360,9 +357,4 @@ public class MemberServiceProvider implements IMemberServiceApi { return R.ok(iCuMemberService.getMemberPhoneCount(phone)); } - @Override - public R saveMemberLevel(CuMemberLevel memberLevel) { - return R.ok(iCuMemberLevelService.save(memberLevel)); - } - } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java index 4b86fa28..7f9fa07f 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberBusinessService.java @@ -2,6 +2,7 @@ package com.hzs.member.base.service; import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.base.CuMember; +import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.sale.ext.SaOrderExt; import com.hzs.common.domain.sale.order.SaOrder; @@ -205,6 +206,6 @@ public interface ICuMemberBusinessService { * @param cuMemberAccountExt 扣款账户 * @param activateFlag 激活标记 */ - void otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag); + void otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag, CuMemberLevel cuMemberLevel); } 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 c4a95899..655c49ad 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 @@ -94,7 +94,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { private ICuMemberTradeService cuMemberTradeService; - private ICuMemberLevelService cuMemberLevelService; + private ICuMemberLevelService iCuMemberLevelService; private ICuMemberAwardsService cuMemberAwardsService; @@ -127,8 +127,8 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { } @Autowired - public void setCuMemberLevelService(ICuMemberLevelService cuMemberLevelService) { - this.cuMemberLevelService = cuMemberLevelService; + public void setCuMemberLevelService(ICuMemberLevelService iCuMemberLevelService) { + this.iCuMemberLevelService = iCuMemberLevelService; } @Autowired @@ -210,7 +210,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { .build(); cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry()); cuMemberLevel.setPkCreator(cuMember.getPkId()); - return cuMemberLevelService.save(cuMemberLevel); + return iCuMemberLevelService.save(cuMemberLevel); } /** @@ -857,7 +857,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { Long pkMember = memberList.get(i); SaOrderExt saOrder = saOrderMap.get(pkMember); // 删除等级 - cuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); + iCuMemberLevelService.deleteCuMemberLevelRecord(saOrder.getPkId(), pkApprove, currentDateTime); // 回退奖衔,根据订单从 cu_member_awards查询 cuMemberAwardsService.deleteCuMemberAwards(saOrder.getPkId(), pkApprove, currentDateTime); cuMemberService.deleteCuMemberByPkMember(pkMember, pkApprove, currentDateTime); @@ -1245,7 +1245,7 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { @Transactional(rollbackFor = Exception.class) @Override - public void otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag) { + public void otherRetailMember(CuMember cuMember, SaOrderExt saOrder, CuMemberAccountExt cuMemberAccountExt, Boolean activateFlag, CuMemberLevel cuMemberLevel) { boolean updateFlag = false; LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); @@ -1255,6 +1255,12 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService { updateWrapper.set(null != cuMember.getPayTime(), CuMember::getPayTime, cuMember.getPayTime()); updateFlag = true; } + if (null != cuMemberLevel) { + updateWrapper.set(CuMember::getPkSettleGrade, cuMember.getPkSettleGrade()); + updateFlag = true; + + iCuMemberLevelService.save(cuMemberLevel); + } if (updateFlag) { // 更新会员信息 updateWrapper.eq(CuMember::getPkId, cuMember.getPkId()); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index 42a2f1f4..16690746 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -18,17 +18,14 @@ import com.hzs.common.core.utils.*; import com.hzs.common.core.web.domain.AjaxResult; import com.hzs.common.domain.member.account.CuMemberAccount; import com.hzs.common.domain.member.base.CuMember; -import com.hzs.common.domain.member.base.CuMemberShare; import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.common.domain.member.ext.CuMemberAccountExt; import com.hzs.common.domain.sale.ext.BdWaresDetailExt; import com.hzs.common.domain.sale.ext.SaOrderExt; -import com.hzs.common.domain.sale.ext.SaOrderItemsExt; import com.hzs.common.domain.sale.order.*; import com.hzs.common.domain.sale.product.BdProduct; import com.hzs.common.domain.sale.wares.BdWaresRange; import com.hzs.common.domain.system.base.BdStorehouse; -import com.hzs.common.domain.system.config.BdAwards; import com.hzs.common.domain.system.config.BdGrade; import com.hzs.common.security.utils.SecurityUtils; import com.hzs.member.account.IMemberAccountServiceApi; @@ -575,10 +572,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 处理会员激活 Boolean activateFlag = this.handleMemberActivate(buyMember, saOrderExt); - processMemberLevel(buyMember, saOrderExt); + CuMemberLevel cuMemberLevel = processMemberLevel(buyMember, saOrderExt); // 扣减账户等 // 调用其他服务保存更新会员账户等 - R saveResult = iMemberServiceApi.otherRetailMember(buyMember, saOrderExt, memberAccountExt, activateFlag); + R saveResult = iMemberServiceApi.otherRetailMember(buyMember, saOrderExt, memberAccountExt, activateFlag, cuMemberLevel); if (!saveResult.isSuccess()) { log.error("新零售 payOtherOrder 会员其它订单失败,{}", saveResult.getMsg()); throw new RuntimeException("下单支付失败"); @@ -678,7 +675,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { return resultStr; } - public void processMemberLevel(CuMember gradeMember, SaOrderExt saOrderExt) { + public CuMemberLevel processMemberLevel(CuMember gradeMember, SaOrderExt saOrderExt) { if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { // 处理等级 @@ -687,14 +684,28 @@ public class RetailOrderServiceImpl implements IRetailOrderService { List tmpGradeList = iGradeServiceApi.getRetailGradeList().getData(); // 等级值倒序 List gradeList = tmpGradeList.stream().sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()).collect(Collectors.toList()); - gradeList.forEach(tmpGrade -> { + for (BdGrade tmpGrade : gradeList) { if (saOrderExt.getOrderAchieve().compareTo(tmpGrade.getStartValue()) >= 0) { gradeMember.setPkSettleGrade(tmpGrade.getPkId()); gradeMember.setPkSettleGradeValue(tmpGrade.getGradeValue()); + + // 记录升级历史 + CuMemberLevel cuMemberLevel = CuMemberLevel.builder() + .pkMember(gradeMember.getPkId()) + .upType(EUpgradeType.BUY_UPGRADE.getValue()) + .oldLevel(bdGrade.getPkId()) + .newLevel(tmpGrade.getPkId()) + .upgradeTime(saOrderExt.getPayTime()) + .pkOrder(saOrderExt.getPkId()) + .build(); + cuMemberLevel.setPkCountry(gradeMember.getPkSettleCountry()); + cuMemberLevel.setPkCreator(gradeMember.getPkId()); + return cuMemberLevel; } - }); + } } } + return null; } diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ETradeType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ETradeType.java index d2f7c285..2d7c7922 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ETradeType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/ETradeType.java @@ -22,7 +22,7 @@ public enum ETradeType { RETAIL_REGISTER_ORDER(141, 0, "注册订单", 0, EnumsPrefixConstants.TRADE_TYPE + 141, EOrderType.RETAIL_REGISTER.getValue()), RETAIL_UPGRADE_ORDER(142, 0, "甄选订单", 0, EnumsPrefixConstants.TRADE_TYPE + 142, EOrderType.RETAIL_UPGRADE.getValue()), RETAIL_REPURCHASE_ORDER(143, 0, "复购订单", 0, EnumsPrefixConstants.TRADE_TYPE + 143, EOrderType.RETAIL_REPURCHASE.getValue()), - RETAIL_CONSUME_ORDER(144, 0, "重消订单", 0, EnumsPrefixConstants.TRADE_TYPE + 144, EOrderType.RETAIL_CONSUME.getValue()), + RETAIL_CONSUME_ORDER(144, 0, "赠品订单", 0, EnumsPrefixConstants.TRADE_TYPE + 144, EOrderType.RETAIL_CONSUME.getValue()), RETAIL_TICKET_ORDER(145, 0, "自主购票", 0, EnumsPrefixConstants.TRADE_TYPE + 145, EOrderType.RETAIL_TICKET.getValue()), RETAIL_DISCOUNT_ORDER(147, 0, "五折订单", 0, EnumsPrefixConstants.TRADE_TYPE + 147, EOrderType.DISCOUNT_ORDER.getValue()), @@ -71,7 +71,7 @@ public enum ETradeType { REVOKE_RETAIL_REGISTER_ORDER(641, 0, "注册订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 641, -EOrderType.RETAIL_REGISTER.getValue()), REVOKE_RETAIL_REPURCHASE_ORDER(643, 0, "复购订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 643, -EOrderType.RETAIL_REPURCHASE.getValue()), - REVOKE_RETAIL_CONSUME_ORDER(644, 0, "重消订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 644, -EOrderType.RETAIL_CONSUME.getValue()), + REVOKE_RETAIL_CONSUME_ORDER(644, 0, "赠品订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 644, -EOrderType.RETAIL_CONSUME.getValue()), REVOKE_RETAIL_TICKET_ORDER(645, 0, "自主购票撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 645, -EOrderType.RETAIL_TICKET.getValue()), REVOKE_RETAIL_UPGRADE(642, 0, "甄选订单撤单", 0, EnumsPrefixConstants.TRADE_TYPE + 642, -EOrderType.RETAIL_UPGRADE.getValue()),