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 49c612fd..d6a50ced 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 @@ -20,6 +20,7 @@ import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt; import com.hzs.common.domain.sale.order.*; 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; @@ -40,6 +41,7 @@ import com.hzs.sale.wares.service.IBdWaresExtendService; import com.hzs.sale.wares.service.IBdWaresRangeService; import com.hzs.system.base.ICurrencyServiceApi; import com.hzs.system.base.dto.CurrencyDTO; +import com.hzs.system.config.IAwardsServiceApi; import com.hzs.system.config.IGradeServiceApi; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; @@ -90,6 +92,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { @DubboReference IGradeServiceApi iGradeServiceApi; @DubboReference + IAwardsServiceApi iAwardsServiceApi; + @DubboReference ICurrencyServiceApi iCurrencyServiceApi; @DubboReference IMemberServiceApi iMemberServiceApi; @@ -217,8 +221,16 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 会员信息 if (null != cuMember) { cuMember.setPkSettleGrade(newGrade.getPkId()); - if (cuMember.getPkAwards() == null) { + 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()); + } } } }