3
0
Fork 0

## 添加注册等级范围判断处理;

This commit is contained in:
cabbage 2025-08-21 14:28:56 +08:00
parent 4d963c9321
commit 5a888a6563
3 changed files with 34 additions and 3 deletions

View File

@ -98,6 +98,11 @@ public class ApiRetailOrderController {
BdGrade bdGrade = iSaOrderService.calculateGrade(levelParam.getSpecialArea(), convertShoppingCarToSku(SecurityUtils.getUserId(), levelParam.getShopList()),
null, levelParam.getUpgradeMember(), SecurityUtils.getSystemType(), EYesNo.NO.getIntValue());
if (null != bdGrade) {
if (ESpecialArea.RETAIL_REGISTER.getValue() == levelParam.getSpecialArea()) {
// 注册专区校验会员等级推荐范围
iRetailOrderService.checkMemberRegisterScope(iMemberServiceApi.getMember(SecurityUtils.getUserId()).getData(), bdGrade.getPkId());
}
orderLevelVO.setIsEnough(true);
orderLevelVO.setPkGradeVal(bdGrade.getGradeName());
orderLevelVO.setGradeValue(bdGrade.getGradeValue());
@ -292,6 +297,9 @@ public class ApiRetailOrderController {
// 封装订单信息
SaOrderExt saOrderExt = iRetailOrderService.createSaOrder(registerParam, gradeList, newMember);
// 校验会员等级推荐范围
iRetailOrderService.checkMemberRegisterScope(registerParam.getCreatorMember(), newMember.getPkSettleGrade());
// 校验会员账户状态等
R<CuMemberAccountExt> accountResult = iRetailOrderService.validMemberAccount(pkMember, payParam.getPayPwd());
if (!accountResult.isSuccess()) {
@ -700,7 +708,6 @@ public class ApiRetailOrderController {
orderParam.setPkParent(orderParam.getPkCreator());
if (!creatorMember.getMemberCode().equals(orderParam.getParentCode())) {
CuMember parentMember = iMemberServiceApi.getRetailMember(null, orderParam.getParentCode()).getData();
if (null == parentMember) {
return "推荐编号不存在";
@ -718,7 +725,6 @@ public class ApiRetailOrderController {
}
orderParam.setPkParent(parentMember.getPkId());
}
return null;
}

View File

@ -141,4 +141,12 @@ public interface IRetailOrderService {
*/
Long savePickOrder(SaOrder saOrder, List<SaOrderItems> saOrderItemsList);
/**
* 校验会员注册范围
*
* @param createMember
* @param newSettleGrade
*/
void checkMemberRegisterScope(CuMember createMember, Integer newSettleGrade);
}

View File

@ -13,7 +13,6 @@ import com.hzs.common.core.config.BdConfig;
import com.hzs.common.core.constant.*;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.enums.retail.ERetailWaresPrice;
import com.hzs.common.core.exception.ServiceException;
import com.hzs.common.core.service.RedisService;
import com.hzs.common.core.utils.*;
@ -31,6 +30,7 @@ import com.hzs.common.domain.sale.product.BdProduct;
import com.hzs.common.domain.sale.wares.BdWaresRange;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.common.domain.system.ext.BdGradeScopeExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.account.IMemberAccountServiceApi;
import com.hzs.member.base.IMemberServiceApi;
@ -120,6 +120,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 封装订单信息
SaOrderExt saOrderExt = this.createSaOrder(registerParam, gradeList, newMember);
// 校验会员等级推荐范围
this.checkMemberRegisterScope(registerParam.getCreatorMember(), newMember.getPkSettleGrade());
// 订单缓存60分钟有效防止在线支付回调慢
redisService.setCacheObject(CacheConstants.RETAIL_TEMP_ORDER + registerParam.getPkCreator() + registerParam.getOrderCode(), saOrderExt, CacheConstants.RETAIL_ORDER_EXPIRE_TIME * 2, TimeUnit.MINUTES);
registerParam.setPkGrade(newMember.getPkSettleGrade());
@ -990,4 +993,18 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
}
}
@Override
public void checkMemberRegisterScope(CuMember createMember, Integer newSettleGrade) {
// 2025.08.21 店主及以下只能推荐店主及以下
List<BdGradeScopeExt> bdGradeScopeExtList = iGradeServiceApi.queryGradeConfigByCondition(createMember.getPkSettleCountry(), createMember.getPkSettleGrade()).getData().getBdGradeScopeExtList();
if (CollectionUtil.isNotEmpty(bdGradeScopeExtList)) {
for (BdGradeScopeExt bdGradeScopeExt : bdGradeScopeExtList) {
if (bdGradeScopeExt.getPkScope().equals(newSettleGrade)) {
return;
}
}
}
throw new ServiceException("不能注册当前新会员等级");
}
}