## 等级处理;
This commit is contained in:
		
							parent
							
								
									a3e647b445
								
							
						
					
					
						commit
						0527468f5b
					
				|  | @ -519,6 +519,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | ||||||
| 
 | 
 | ||||||
|         // 处理会员激活 |         // 处理会员激活 | ||||||
|         this.handleMemberActivate(newMember, saOrderExt); |         this.handleMemberActivate(newMember, saOrderExt); | ||||||
|  | 
 | ||||||
|  |         processMemberLevel(newMember, saOrderExt); | ||||||
|         // 保存会员信息,扣减账户等 |         // 保存会员信息,扣减账户等 | ||||||
|         // 调用其他服务保存会员信息、会员注册信息 |         // 调用其他服务保存会员信息、会员注册信息 | ||||||
|         R<?> saveResult = iMemberServiceApi.saveRetailMember(newMember, saOrderExt, memberAccountExt); |         R<?> saveResult = iMemberServiceApi.saveRetailMember(newMember, saOrderExt, memberAccountExt); | ||||||
|  | @ -526,7 +528,6 @@ 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, | ||||||
|  | @ -573,6 +574,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | ||||||
| 
 | 
 | ||||||
|         // 处理会员激活 |         // 处理会员激活 | ||||||
|         Boolean activateFlag = this.handleMemberActivate(buyMember, saOrderExt); |         Boolean activateFlag = this.handleMemberActivate(buyMember, saOrderExt); | ||||||
|  | 
 | ||||||
|  |         processMemberLevel(buyMember, saOrderExt); | ||||||
|         // 扣减账户等 |         // 扣减账户等 | ||||||
|         // 调用其他服务保存更新会员账户等 |         // 调用其他服务保存更新会员账户等 | ||||||
|         R<?> saveResult = iMemberServiceApi.otherRetailMember(buyMember, saOrderExt, memberAccountExt, activateFlag); |         R<?> saveResult = iMemberServiceApi.otherRetailMember(buyMember, saOrderExt, memberAccountExt, activateFlag); | ||||||
|  | @ -580,7 +583,6 @@ 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; | ||||||
|     } |     } | ||||||
|  | @ -633,7 +635,6 @@ 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()) | ||||||
|         ) { |         ) { | ||||||
|  | @ -676,51 +677,24 @@ public class RetailOrderServiceImpl implements IRetailOrderService { | ||||||
|         } |         } | ||||||
|         return resultStr; |         return resultStr; | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|     public void processMemberLevel(CuMember gradeMember, SaOrderExt saOrderExt) { |     public void processMemberLevel(CuMember gradeMember, SaOrderExt saOrderExt) { | ||||||
|         if(EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()){ |         if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() | ||||||
|  |                 || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) { | ||||||
|             // 处理等级 |             // 处理等级 | ||||||
|             GradeDTO bdGrade = iGradeServiceApi.getGrade(gradeMember.getPkSettleGrade()).getData(); |             GradeDTO bdGrade = iGradeServiceApi.getGrade(gradeMember.getPkSettleGrade()).getData(); | ||||||
|             List<BdGrade> gradeDTOList = iGradeServiceApi.getRetailGradeList().getData(); |  | ||||||
|             CuMemberLevel memberLevel = null; |  | ||||||
|             if (bdGrade.getGradeValue() < EGrade.YOU_KE.getValue()) { |             if (bdGrade.getGradeValue() < EGrade.YOU_KE.getValue()) { | ||||||
|                 if(saOrderExt.getOrderAchieve().compareTo(RetailConstants.GOLD_CARD_PV) >= 0){ |                 List<BdGrade> tmpGradeList = iGradeServiceApi.getRetailGradeList().getData(); | ||||||
|                     // 拿金牌等级 |                 // 等级值倒序 | ||||||
|                     BdGrade goldGrade = gradeDTOList.stream().filter(item -> item.getGradeValue().equals(EGrade.YOU_KE.getValue())).findFirst().get(); |                 List<BdGrade> gradeList = tmpGradeList.stream().sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()).collect(Collectors.toList()); | ||||||
|                     memberLevel = getCuMemberLevel(gradeMember, saOrderExt, goldGrade.getPkId()); |                 gradeList.forEach(tmpGrade -> { | ||||||
|                     gradeMember.setPkSettleGrade(goldGrade.getPkId()); |                     if (saOrderExt.getOrderAchieve().compareTo(tmpGrade.getStartValue()) >= 0) { | ||||||
|                     gradeMember.setPkSettleGradeValue(goldGrade.getGradeValue()); |                         gradeMember.setPkSettleGrade(tmpGrade.getPkId()); | ||||||
|                 }else if(saOrderExt.getOrderAchieve().compareTo(RetailConstants.SILVER_CARD_PV) >= 0){ |                         gradeMember.setPkSettleGradeValue(tmpGrade.getGradeValue()); | ||||||
|                     // 拿银牌等级 |                     } | ||||||
|                     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,13 +48,4 @@ 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