forked from angelo/java-retail-app
## 添加注册等级范围判断处理;
This commit is contained in:
parent
adc8301e95
commit
79d31ecb77
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -141,4 +141,12 @@ public interface IRetailOrderService {
|
|||
*/
|
||||
Long savePickOrder(SaOrder saOrder, List<SaOrderItems> saOrderItemsList);
|
||||
|
||||
/**
|
||||
* 校验会员注册范围
|
||||
*
|
||||
* @param createMember
|
||||
* @param newSettleGrade
|
||||
*/
|
||||
void checkMemberRegisterScope(CuMember createMember, Integer newSettleGrade);
|
||||
|
||||
}
|
||||
|
|
|
@ -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("不能注册当前新会员等级");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue