Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
		
						commit
						4428f6d6be
					
				|  | @ -2,6 +2,7 @@ package com.hzs.member.base; | ||||||
| 
 | 
 | ||||||
| import com.hzs.common.core.domain.R; | import com.hzs.common.core.domain.R; | ||||||
| import com.hzs.common.domain.member.base.CuMember; | 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.member.ext.CuMemberAccountExt; | ||||||
| import com.hzs.common.domain.member.ext.CuMemberExt; | import com.hzs.common.domain.member.ext.CuMemberExt; | ||||||
| import com.hzs.common.domain.sale.ext.SaOrderExt; | import com.hzs.common.domain.sale.ext.SaOrderExt; | ||||||
|  | @ -364,4 +365,7 @@ public interface IMemberServiceApi { | ||||||
|      * @return 返回为null则正常,否则则错误信息 |      * @return 返回为null则正常,否则则错误信息 | ||||||
|      */ |      */ | ||||||
|     R<Integer> getMemberPhoneCount(String phone); |     R<Integer> getMemberPhoneCount(String phone); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     R<Boolean> saveMemberLevel(CuMemberLevel memberLevel); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ import com.hzs.common.core.enums.ELoginType; | ||||||
| import com.hzs.common.core.utils.StringUtils; | import com.hzs.common.core.utils.StringUtils; | ||||||
| import com.hzs.common.domain.member.base.CuMember; | import com.hzs.common.domain.member.base.CuMember; | ||||||
| import com.hzs.common.domain.member.base.CuMemberShare; | 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.member.ext.CuMemberAccountExt; | ||||||
| import com.hzs.common.domain.member.ext.CuMemberExt; | import com.hzs.common.domain.member.ext.CuMemberExt; | ||||||
| import com.hzs.common.domain.sale.ext.SaOrderExt; | import com.hzs.common.domain.sale.ext.SaOrderExt; | ||||||
|  | @ -16,6 +17,7 @@ import com.hzs.member.base.dto.ShowWaresDTO; | ||||||
| import com.hzs.member.base.dto.ZeroElementRevokeDTO; | import com.hzs.member.base.dto.ZeroElementRevokeDTO; | ||||||
| import com.hzs.member.base.service.*; | import com.hzs.member.base.service.*; | ||||||
| import com.hzs.member.base.IMemberServiceApi; | import com.hzs.member.base.IMemberServiceApi; | ||||||
|  | import com.hzs.member.detail.service.ICuMemberLevelService; | ||||||
| import com.hzs.member.empty.service.ICuMemberEmptyCodeService; | import com.hzs.member.empty.service.ICuMemberEmptyCodeService; | ||||||
| import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; | import com.hzs.member.handlebusiness.dto.AnalysisBusinessAppealParam; | ||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
|  | @ -41,6 +43,8 @@ public class MemberServiceProvider implements IMemberServiceApi { | ||||||
|     private ICuMemberBusinessService iCuMemberBusinessService; |     private ICuMemberBusinessService iCuMemberBusinessService; | ||||||
|     @Autowired |     @Autowired | ||||||
|     private ICuMemberEmptyCodeService iCuMemberEmptyCodeService; |     private ICuMemberEmptyCodeService iCuMemberEmptyCodeService; | ||||||
|  |     @Autowired | ||||||
|  |     private ICuMemberLevelService iCuMemberLevelService; | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public R<LoginMember> getMemberInfo(String memberCode) { |     public R<LoginMember> getMemberInfo(String memberCode) { | ||||||
|  | @ -356,4 +360,9 @@ public class MemberServiceProvider implements IMemberServiceApi { | ||||||
|         return R.ok(iCuMemberService.getMemberPhoneCount(phone)); |         return R.ok(iCuMemberService.getMemberPhoneCount(phone)); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @Override | ||||||
|  |     public R<Boolean> saveMemberLevel(CuMemberLevel memberLevel) { | ||||||
|  |         return R.ok(iCuMemberLevelService.save(memberLevel)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -19,6 +19,7 @@ import com.hzs.common.core.web.domain.AjaxResult; | ||||||
| import com.hzs.common.domain.member.account.CuMemberAccount; | import com.hzs.common.domain.member.account.CuMemberAccount; | ||||||
| import com.hzs.common.domain.member.base.CuMember; | import com.hzs.common.domain.member.base.CuMember; | ||||||
| import com.hzs.common.domain.member.base.CuMemberShare; | 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.member.ext.CuMemberAccountExt; | ||||||
| import com.hzs.common.domain.sale.ext.BdWaresDetailExt; | import com.hzs.common.domain.sale.ext.BdWaresDetailExt; | ||||||
| import com.hzs.common.domain.sale.ext.SaOrderExt; | import com.hzs.common.domain.sale.ext.SaOrderExt; | ||||||
|  | @ -49,6 +50,7 @@ import com.hzs.system.base.ICurrencyServiceApi; | ||||||
| import com.hzs.system.base.dto.CurrencyDTO; | import com.hzs.system.base.dto.CurrencyDTO; | ||||||
| import com.hzs.system.config.IAwardsServiceApi; | import com.hzs.system.config.IAwardsServiceApi; | ||||||
| import com.hzs.system.config.IGradeServiceApi; | import com.hzs.system.config.IGradeServiceApi; | ||||||
|  | import com.hzs.system.config.dto.GradeDTO; | ||||||
| import com.hzs.third.sms.ISmsServiceApi; | import com.hzs.third.sms.ISmsServiceApi; | ||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
| import org.apache.dubbo.config.annotation.DubboReference; | import org.apache.dubbo.config.annotation.DubboReference; | ||||||
|  | @ -524,7 +526,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | ||||||
|             log.error("新零售 payRegSaOrder 会员注册失败,{}", saveResult.getMsg()); |             log.error("新零售 payRegSaOrder 会员注册失败,{}", saveResult.getMsg()); | ||||||
|             throw new RuntimeException("会员注册失败"); |             throw new RuntimeException("会员注册失败"); | ||||||
|         } |         } | ||||||
| 
 |         processMemberLevel(newMember, saOrderExt); | ||||||
| 
 | 
 | ||||||
|         // 发送会员注册成功短信 |         // 发送会员注册成功短信 | ||||||
|         iSmsServiceApi.sendMemberRegister(newMember.getPhone(), EAliSmsTemplate.MEMBER_REGISTER, |         iSmsServiceApi.sendMemberRegister(newMember.getPhone(), EAliSmsTemplate.MEMBER_REGISTER, | ||||||
|  | @ -578,7 +580,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | ||||||
|             log.error("新零售 payOtherOrder 会员其它订单失败,{}", saveResult.getMsg()); |             log.error("新零售 payOtherOrder 会员其它订单失败,{}", saveResult.getMsg()); | ||||||
|             throw new RuntimeException("下单支付失败"); |             throw new RuntimeException("下单支付失败"); | ||||||
|         } |         } | ||||||
| 
 |         processMemberLevel(buyMember, saOrderExt); | ||||||
|         this.pushOrderMq(saOrderExt); |         this.pushOrderMq(saOrderExt); | ||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  | @ -631,6 +633,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | ||||||
| 
 | 
 | ||||||
|         RetailOrderRegisterParam registerParam = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_REG_PARAM + pkMember + orderCode); |         RetailOrderRegisterParam registerParam = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_REG_PARAM + pkMember + orderCode); | ||||||
|         boolean isShared = ObjectUtil.isNotEmpty(registerParam) && ObjectUtil.isNotEmpty(registerParam.getCuMemberShare()); |         boolean isShared = ObjectUtil.isNotEmpty(registerParam) && ObjectUtil.isNotEmpty(registerParam.getCuMemberShare()); | ||||||
|  |         CuMember gradeMember = null; | ||||||
|         if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() |         if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() | ||||||
|         || (isShared && EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) |         || (isShared && EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) | ||||||
|         ) { |         ) { | ||||||
|  | @ -673,6 +676,51 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | ||||||
|         } |         } | ||||||
|         return resultStr; |         return resultStr; | ||||||
|     } |     } | ||||||
|  |     public void processMemberLevel(CuMember gradeMember, SaOrderExt saOrderExt){ | ||||||
|  |         // 处理等级 | ||||||
|  |         GradeDTO bdGrade = iGradeServiceApi.getGrade(gradeMember.getPkSettleGrade()).getData(); | ||||||
|  |         List<BdGrade> gradeDTOList = iGradeServiceApi.getRetailGradeList().getData(); | ||||||
|  |         CuMemberLevel memberLevel = null; | ||||||
|  |         if(bdGrade.getGradeValue() < EGrade.YOU_KE.getValue()){ | ||||||
|  |             if(saOrderExt.getOrderAchieve().compareTo(RetailConstants.GOLD_CARD_PV) >= 0){ | ||||||
|  |                 // 拿金牌等级 | ||||||
|  |                 BdGrade goldGrade = gradeDTOList.stream().filter(item -> item.getGradeValue().equals(EGrade.YOU_KE.getValue())).findFirst().get(); | ||||||
|  |                 memberLevel = getCuMemberLevel(gradeMember, saOrderExt, goldGrade.getPkId()); | ||||||
|  |                 gradeMember.setPkSettleGrade(goldGrade.getPkId()); | ||||||
|  |                 gradeMember.setPkSettleGradeValue(goldGrade.getGradeValue()); | ||||||
|  |             }else if(saOrderExt.getOrderAchieve().compareTo(RetailConstants.SILVER_CARD_PV) >= 0){ | ||||||
|  |                 // 拿银牌等级 | ||||||
|  |                 BdGrade silverGrade = gradeDTOList.stream().filter(item -> item.getGradeValue().equals(EGrade.HAI_FAN.getValue())).findFirst().get(); | ||||||
|  |                 memberLevel = getCuMemberLevel(gradeMember, saOrderExt, silverGrade.getPkId()); | ||||||
|  |                 gradeMember.setPkSettleGrade(silverGrade.getPkId()); | ||||||
|  |                 gradeMember.setPkSettleGradeValue(silverGrade.getGradeValue()); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         if(ObjectUtil.isNotEmpty(memberLevel)){ | ||||||
|  |             Boolean saveMemberLevelFlag = iMemberServiceApi.saveMemberLevel(memberLevel).getData(); | ||||||
|  |             if(!saveMemberLevelFlag){ | ||||||
|  |                 throw new ServiceException("记录用户升级信息异常!"); | ||||||
|  |             } | ||||||
|  |             Boolean saveMemberFlag = iMemberServiceApi.saveMember(gradeMember).getData(); | ||||||
|  |             if(!saveMemberFlag){ | ||||||
|  |                 throw new ServiceException("更新用户结算等级异常!"); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     public CuMemberLevel getCuMemberLevel(CuMember cuMember, SaOrderExt saOrder, Integer newLevel){ | ||||||
|  |         CuMemberLevel cuMemberLevel = CuMemberLevel.builder() | ||||||
|  |                 .pkMember(cuMember.getPkId()) | ||||||
|  |                 .upType(EUpgradeType.BUY_UPGRADE.getValue()) | ||||||
|  |                 .oldLevel(cuMember.getPkSettleGrade()) | ||||||
|  |                 .newLevel(newLevel) | ||||||
|  |                 .upgradeTime(saOrder.getPayTime()) | ||||||
|  |                 .pkOrder(saOrder.getPkId()) | ||||||
|  |                 .build(); | ||||||
|  |         cuMemberLevel.setPkCountry(cuMember.getPkSettleCountry()); | ||||||
|  |         cuMemberLevel.setPkCreator(cuMember.getPkId()); | ||||||
|  |         return cuMemberLevel; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 保存订单以及明细 |      * 保存订单以及明细 | ||||||
|  |  | ||||||
|  | @ -48,4 +48,13 @@ public class RetailConstants { | ||||||
|      */ |      */ | ||||||
|     public static final boolean LIMIT_TO_REG_PHONE_NUMBER = false; |     public static final boolean LIMIT_TO_REG_PHONE_NUMBER = false; | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * 银卡PV | ||||||
|  |      */ | ||||||
|  |     public static final BigDecimal SILVER_CARD_PV = new BigDecimal("10000"); | ||||||
|  |     /** | ||||||
|  |      * 金卡PV | ||||||
|  |      */ | ||||||
|  |     public static final BigDecimal GOLD_CARD_PV = new BigDecimal("20000"); | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue