## 等级处理;
This commit is contained in:
parent
0cb856ebd0
commit
b6d95d2be8
|
|
@ -227,10 +227,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
// }
|
||||
// }
|
||||
}
|
||||
}else if(ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()){
|
||||
} else if (ESpecialArea.RETAIL_REPURCHASE.getValue() == orderParam.getSpecialArea()) {
|
||||
// saOrderExt.setOrderAmount(saOrderExt.getOrderAmount().add(orderParam.getPostage()));
|
||||
saOrderExt.setPostage(orderParam.getPostage());
|
||||
}else if(ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()){
|
||||
} else if (ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()) {
|
||||
saOrderExt.setSpecialArea(ESpecialArea.RETAIL_UPGRADE.getValue());
|
||||
saOrderExt.setOrderType(ESpecialArea.RETAIL_UPGRADE.getValue());
|
||||
}
|
||||
|
|
@ -242,7 +242,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
public List<SaOrderItems> createSaOrderItems(RetailOrderParam orderParam, List<BdGrade> gradeList,
|
||||
CuMember cuMember, SaOrderExt saOrderExt, CurrencyDTO currency) {
|
||||
boolean isCopy41List = false;
|
||||
if(ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()){
|
||||
if (ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()) {
|
||||
orderParam.setSpecialArea(ESpecialArea.RETAIL_REGISTER.getValue());
|
||||
isCopy41List = true;
|
||||
}
|
||||
|
|
@ -292,7 +292,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
saOrderExt.setPostage(orderParam.getPostage());
|
||||
// 订单指定商品盒数
|
||||
saOrderExt.setBoxNum(boxNum);
|
||||
if(isCopy41List){
|
||||
if (isCopy41List) {
|
||||
saOrderExt.setOrderType(ESpecialArea.RETAIL_UPGRADE.getValue());
|
||||
}
|
||||
}
|
||||
|
|
@ -478,11 +478,11 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
|
||||
boolean isShared = false;
|
||||
if (null == orderParam.getCreatorMember()) {
|
||||
if(ObjectUtil.isNotEmpty(orderParam.getCuMemberShare())){
|
||||
if (ObjectUtil.isNotEmpty(orderParam.getCuMemberShare())) {
|
||||
orderParam.setCreatorMember(iMemberServiceApi.getRetailMember(orderParam.getCuMemberShare().getPkParent(), null).getData());
|
||||
cuMember.setPkParent(orderParam.getCuMemberShare().getPkParent());
|
||||
isShared = true;
|
||||
}else{
|
||||
} else {
|
||||
orderParam.setCreatorMember(iMemberServiceApi.getRetailMember(orderParam.getPkCreator(), null).getData());
|
||||
}
|
||||
}
|
||||
|
|
@ -492,10 +492,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
cuMember.setSystemType(orderParam.getCreatorMember().getSystemType());
|
||||
|
||||
// 获取会员编号、会员主键
|
||||
if(isShared){
|
||||
if (isShared) {
|
||||
cuMember.setPkId(orderParam.getCuMemberShare().getPkId());
|
||||
cuMember.setMemberCode(orderParam.getCuMemberShare().getMemberCode());
|
||||
}else{
|
||||
} else {
|
||||
cuMember = iMemberServiceApi.createRetailMemberIdAndCode(cuMember).getData();
|
||||
}
|
||||
|
||||
|
|
@ -519,6 +519,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
|
||||
// 处理会员激活
|
||||
this.handleMemberActivate(newMember, saOrderExt);
|
||||
|
||||
processMemberLevel(newMember, saOrderExt);
|
||||
// 保存会员信息,扣减账户等
|
||||
// 调用其他服务保存会员信息、会员注册信息
|
||||
R<?> saveResult = iMemberServiceApi.saveRetailMember(newMember, saOrderExt, memberAccountExt);
|
||||
|
|
@ -526,7 +528,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
log.error("新零售 payRegSaOrder 会员注册失败,{}", saveResult.getMsg());
|
||||
throw new RuntimeException("会员注册失败");
|
||||
}
|
||||
processMemberLevel(newMember, saOrderExt);
|
||||
|
||||
// 发送会员注册成功短信
|
||||
iSmsServiceApi.sendMemberRegister(newMember.getPhone(), EAliSmsTemplate.MEMBER_REGISTER,
|
||||
|
|
@ -562,9 +563,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
@Override
|
||||
public String payOtherOrder(SaOrderExt saOrderExt, CuMember buyMember, CuMemberAccountExt memberAccountExt) {
|
||||
|
||||
if(ESpecialArea.DISCOUNT_AREA.getValue() == saOrderExt.getOrderType()){
|
||||
if (ESpecialArea.DISCOUNT_AREA.getValue() == saOrderExt.getOrderType()) {
|
||||
// 验证是否买过41/42
|
||||
if(!iSaOrderService.showDiscountArea()){
|
||||
if (!iSaOrderService.showDiscountArea()) {
|
||||
throw new RuntimeException("不满足购买五折专区的条件!");
|
||||
}
|
||||
}
|
||||
|
|
@ -573,6 +574,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
|
||||
// 处理会员激活
|
||||
Boolean activateFlag = this.handleMemberActivate(buyMember, saOrderExt);
|
||||
|
||||
processMemberLevel(buyMember, saOrderExt);
|
||||
// 扣减账户等
|
||||
// 调用其他服务保存更新会员账户等
|
||||
R<?> saveResult = iMemberServiceApi.otherRetailMember(buyMember, saOrderExt, memberAccountExt, activateFlag);
|
||||
|
|
@ -580,7 +583,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
log.error("新零售 payOtherOrder 会员其它订单失败,{}", saveResult.getMsg());
|
||||
throw new RuntimeException("下单支付失败");
|
||||
}
|
||||
processMemberLevel(buyMember, saOrderExt);
|
||||
this.pushOrderMq(saOrderExt);
|
||||
return null;
|
||||
}
|
||||
|
|
@ -633,9 +635,8 @@ 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())
|
||||
|| (isShared && EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType())
|
||||
) {
|
||||
// 注册订单
|
||||
// 获取缓存参数
|
||||
|
|
@ -651,10 +652,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
newMember.setPkSettleGrade(registerParam.getPkGrade());
|
||||
newMember.setPkAwards(registerParam.getPkAwards());
|
||||
saOrderExt.setPkMember(newMember.getPkId());
|
||||
if(ObjectUtil.isNotEmpty(registerParam.getCuMemberShare())){
|
||||
saOrderExt.setPkReference(registerParam.getCuMemberShare().getPkParent());
|
||||
if (ObjectUtil.isNotEmpty(registerParam.getCuMemberShare())) {
|
||||
saOrderExt.setPkReference(registerParam.getCuMemberShare().getPkParent());
|
||||
// saOrderExt.setOrderType(EOrderType.RETAIL_REGISTER.getValue());
|
||||
saOrderExt.setOrderType(registerParam.getSpecialArea());
|
||||
saOrderExt.setOrderType(registerParam.getSpecialArea());
|
||||
}
|
||||
|
||||
resultStr = this.payRegOrder(saOrderExt, newMember, null);
|
||||
|
|
@ -676,52 +677,25 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
|
|||
}
|
||||
return resultStr;
|
||||
}
|
||||
public void processMemberLevel(CuMember gradeMember, SaOrderExt saOrderExt){
|
||||
if(EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType() || EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()){
|
||||
|
||||
public void processMemberLevel(CuMember gradeMember, SaOrderExt saOrderExt) {
|
||||
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|
||||
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()) {
|
||||
// 处理等级
|
||||
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("更新用户结算等级异常!");
|
||||
}
|
||||
if (bdGrade.getGradeValue() < EGrade.YOU_KE.getValue()) {
|
||||
List<BdGrade> tmpGradeList = iGradeServiceApi.getRetailGradeList().getData();
|
||||
// 等级值倒序
|
||||
List<BdGrade> gradeList = tmpGradeList.stream().sorted(Comparator.comparingInt(BdGrade::getGradeValue).reversed()).collect(Collectors.toList());
|
||||
gradeList.forEach(tmpGrade -> {
|
||||
if (saOrderExt.getOrderAchieve().compareTo(tmpGrade.getStartValue()) >= 0) {
|
||||
gradeMember.setPkSettleGrade(tmpGrade.getPkId());
|
||||
gradeMember.setPkSettleGradeValue(tmpGrade.getGradeValue());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
|
||||
/**
|
||||
* 银卡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