forked from angelo/java-retail-app
				
			Compare commits
	
		
			2 Commits
		
	
	
		
			4d963c9321
			...
			3d10722857
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						3d10722857 | |
| 
							
							
								
								 | 
						5a888a6563 | 
| 
						 | 
				
			
			@ -307,6 +307,9 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
            if (null == targetMemberRangeExt) {
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            // 推荐人的推荐人
 | 
			
		||||
            pkParent = targetMemberRangeExt.getPkParent();
 | 
			
		||||
 | 
			
		||||
            if (EAccountStatus.STOP_INCOME.getValue() == targetMemberRangeExt.getAccountStatus()
 | 
			
		||||
                    || ECategory.NORMAL.getValue() != targetMemberRangeExt.getCategory()
 | 
			
		||||
                    || targetMemberRangeExt.getEnableStatus() == EYesNo.NO.getIntValue()
 | 
			
		||||
| 
						 | 
				
			
			@ -315,8 +318,6 @@ public class BonusSettleRangeHandle extends BonusSettleHandle {
 | 
			
		|||
                // 停算收益、非正常会员、未激活、等级为顾客、停止收益,直接跳过
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
            // 推荐人的推荐人
 | 
			
		||||
            pkParent = targetMemberRangeExt.getPkParent();
 | 
			
		||||
            // 当前会员等级值
 | 
			
		||||
            int targetGradeValue = targetMemberRangeExt.getGradeValue();
 | 
			
		||||
            // 直推级差收益
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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