## Opt - 单笔PV大于20000给金牌,大于10000给银牌
This commit is contained in:
		
							parent
							
								
									42a967cc1d
								
							
						
					
					
						commit
						20616c2a9b
					
				|  | @ -2,6 +2,7 @@ package com.hzs.member.base; | |||
| 
 | ||||
| import com.hzs.common.core.domain.R; | ||||
| 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.CuMemberExt; | ||||
| import com.hzs.common.domain.sale.ext.SaOrderExt; | ||||
|  | @ -364,4 +365,7 @@ public interface IMemberServiceApi { | |||
|      * @return 返回为null则正常,否则则错误信息 | ||||
|      */ | ||||
|     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.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.member.ext.CuMemberExt; | ||||
| 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.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; | ||||
|  | @ -41,6 +43,8 @@ public class MemberServiceProvider implements IMemberServiceApi { | |||
|     private ICuMemberBusinessService iCuMemberBusinessService; | ||||
|     @Autowired | ||||
|     private ICuMemberEmptyCodeService iCuMemberEmptyCodeService; | ||||
|     @Autowired | ||||
|     private ICuMemberLevelService iCuMemberLevelService; | ||||
| 
 | ||||
|     @Override | ||||
|     public R<LoginMember> getMemberInfo(String memberCode) { | ||||
|  | @ -356,4 +360,9 @@ public class MemberServiceProvider implements IMemberServiceApi { | |||
|         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.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; | ||||
|  | @ -49,6 +50,7 @@ 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 com.hzs.system.config.dto.GradeDTO; | ||||
| import com.hzs.third.sms.ISmsServiceApi; | ||||
| import lombok.extern.slf4j.Slf4j; | ||||
| import org.apache.dubbo.config.annotation.DubboReference; | ||||
|  | @ -524,7 +526,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | |||
|             log.error("新零售 payRegSaOrder 会员注册失败,{}", saveResult.getMsg()); | ||||
|             throw new RuntimeException("会员注册失败"); | ||||
|         } | ||||
| 
 | ||||
|         processMemberLevel(newMember, saOrderExt); | ||||
| 
 | ||||
|         // 发送会员注册成功短信 | ||||
|         iSmsServiceApi.sendMemberRegister(newMember.getPhone(), EAliSmsTemplate.MEMBER_REGISTER, | ||||
|  | @ -578,7 +580,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | |||
|             log.error("新零售 payOtherOrder 会员其它订单失败,{}", saveResult.getMsg()); | ||||
|             throw new RuntimeException("下单支付失败"); | ||||
|         } | ||||
| 
 | ||||
|         processMemberLevel(buyMember, saOrderExt); | ||||
|         this.pushOrderMq(saOrderExt); | ||||
|         return null; | ||||
|     } | ||||
|  | @ -631,6 +633,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | |||
| 
 | ||||
|         RetailOrderRegisterParam registerParam = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_REG_PARAM + pkMember + orderCode); | ||||
|         boolean isShared = ObjectUtil.isNotEmpty(registerParam) && ObjectUtil.isNotEmpty(registerParam.getCuMemberShare()); | ||||
|         CuMember gradeMember = null; | ||||
|         if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() | ||||
|         || (isShared && EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()) | ||||
|         ) { | ||||
|  | @ -673,6 +676,51 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | |||
|         } | ||||
|         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; | ||||
| 
 | ||||
|     /** | ||||
|      * 银卡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