From 785ce2a917667f578a729fb21056aa495571bf93 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Tue, 28 Oct 2025 18:12:54 +0800 Subject: [PATCH] =?UTF-8?q?##=20Opt=20-=20=E5=88=86=E4=BA=AB=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E4=BC=9A=E5=91=98-=E5=A5=96=E8=A1=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/RetailOrderServiceImpl.java | 48 ++++++++++++++----- 1 file changed, 36 insertions(+), 12 deletions(-) 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 bdf8983e..72fb5d8d 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 @@ -26,6 +26,7 @@ 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; @@ -117,7 +118,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { newMember.setPhone(registerParam.getPhone()); newMember.setPkSettleGrade(gradeList.get(0).getPkId()); newMember.setPkSettleCountry(1); - newMember.setPkAwards(1); +// newMember.setPkAwards(gradeList.get(0).getPkAwards()); // 封装订单信息 SaOrderExt saOrderExt = this.createSaOrder(registerParam, gradeList, newMember); @@ -213,21 +214,44 @@ public class RetailOrderServiceImpl implements IRetailOrderService { if (null != cuMember) { cuMember.setPkSettleGrade(newGrade.getPkId()); cuMember.setPkAwards(newGrade.getPkAwards()); -// if (null == cuMember.getPkAwards()) { -// // 新会员没有奖衔,则进行赋值 -// cuMember.setPkAwards(newGrade.getPkAwards()); -// } else { -// // 老会员奖衔如果为无,也进行赋值 -// BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData(); -// if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue() -// && EAwards.MEMBER.getValue() != newGrade.getPkAwards()) { -// cuMember.setPkAwards(newGrade.getPkAwards()); -// } -// } + if (null == cuMember.getPkAwards()) { + // 新会员没有奖衔,则进行赋值 + cuMember.setPkAwards(newGrade.getPkAwards()); + } else { + // 老会员奖衔如果为无,也进行赋值 + BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData(); + if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue() + && EAwards.MEMBER.getValue() != newGrade.getPkAwards()) { + cuMember.setPkAwards(newGrade.getPkAwards()); + } + } } } else if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()) { // saOrderExt.setOrderAmount(saOrderExt.getOrderAmount().add(orderParam.getPostage())); saOrderExt.setPostage(orderParam.getPostage()); + // 注册、升级订单,计算会员等级 + BdGrade newGrade = this.calculateGrade(orderParam.getSpecialArea(), orderParam.getOrderItemsParams(), + gradeList, cuMember, orderAchieve); + if (null == newGrade) { + throw new ServiceException("会员不满足升级条件"); + } + saOrderExt.setPkGrade(newGrade.getPkId()); + // 会员信息 + if (null != cuMember) { + cuMember.setPkSettleGrade(newGrade.getPkId()); + cuMember.setPkAwards(newGrade.getPkAwards()); + if (null == cuMember.getPkAwards()) { + // 新会员没有奖衔,则进行赋值 + cuMember.setPkAwards(newGrade.getPkAwards()); + } else { + // 老会员奖衔如果为无,也进行赋值 + BdAwards bdAwards = iAwardsServiceApi.getAwardsOne(cuMember.getPkAwards()).getData(); + if (EAwards.MEMBER.getValue() == bdAwards.getAwardsValue() + && EAwards.MEMBER.getValue() != newGrade.getPkAwards()) { + cuMember.setPkAwards(newGrade.getPkAwards()); + } + } + } } else if (ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()) { saOrderExt.setSpecialArea(ESpecialArea.RETAIL_UPGRADE.getValue()); saOrderExt.setOrderType(ESpecialArea.RETAIL_UPGRADE.getValue());