Compare commits
	
		
			2 Commits
		
	
	
		
			8959ba3663
			...
			7f444421b7
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						7f444421b7 | |
| 
							
							
								
								 | 
						ff2f6f30c1 | 
| 
						 | 
					@ -284,7 +284,7 @@ public interface IMemberServiceApi {
 | 
				
			||||||
    R<Boolean> updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt);
 | 
					    R<Boolean> updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 更新用户等级
 | 
					     * 更新用户等级 -- 来源于活动
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param cuMember   用户信息
 | 
					     * @param cuMember   用户信息
 | 
				
			||||||
     * @param saOrder    订单信息
 | 
					     * @param saOrder    订单信息
 | 
				
			||||||
| 
						 | 
					@ -292,6 +292,23 @@ public interface IMemberServiceApi {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    R<?> updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
 | 
					    R<?> updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 用户降级 -- 来源于活动
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param cuMember 用户信息
 | 
				
			||||||
 | 
					     * @param saOrder  订单信息
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    R<?> reduceMemberLevel(CuMember cuMember, SaOrder saOrder);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新升级记录 -- 来源于活动
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param saOrder  原订单
 | 
				
			||||||
 | 
					     * @param newOrder 新订单
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    R<?> changeMemberLevel(SaOrder saOrder, SaOrder newOrder);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 校验是否血缘关系(返回true则有血缘关系)
 | 
					     * 校验是否血缘关系(返回true则有血缘关系)
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,5 @@
 | 
				
			||||||
package com.hzs.activity.dto;
 | 
					package com.hzs.activity.dto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.hzs.common.core.enums.EOrderOperateStatus;
 | 
					import com.hzs.common.core.enums.EOrderOperateStatus;
 | 
				
			||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
					import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
| 
						 | 
					@ -12,12 +11,6 @@ import java.io.Serializable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 直推-升级DTO
 | 
					 * 直推-升级DTO
 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @Description:
 | 
					 | 
				
			||||||
 * @Author: ljc
 | 
					 | 
				
			||||||
 * @Time: 2023/4/26 10:27
 | 
					 | 
				
			||||||
 * @Classname: AcRepurchaseCouponsDTO
 | 
					 | 
				
			||||||
 * @Package_name: com.hzs.activity.recommend.dto
 | 
					 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@Builder
 | 
					@Builder
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -351,6 +351,26 @@ public class MemberServiceProvider implements IMemberServiceApi {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public R<?> reduceMemberLevel(CuMember cuMember, SaOrder saOrder) {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            iCuMemberBusinessService.reduceMemberLevel(cuMember, saOrder);
 | 
				
			||||||
 | 
					            return R.ok();
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            return R.fail(e.getMessage());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public R<?> changeMemberLevel(SaOrder saOrder, SaOrder newOrder) {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            iCuMemberBusinessService.changeMemberLevel(saOrder, newOrder);
 | 
				
			||||||
 | 
					            return R.ok();
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            return R.fail(e.getMessage());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public R<Boolean> checkParent(String topCode, Long userId) {
 | 
					    public R<Boolean> checkParent(String topCode, Long userId) {
 | 
				
			||||||
        return R.ok(iCuMemberService.checkParent(topCode, userId) > 0);
 | 
					        return R.ok(iCuMemberService.checkParent(topCode, userId) > 0);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -168,7 +168,7 @@ public interface ICuMemberBusinessService {
 | 
				
			||||||
    Boolean updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt);
 | 
					    Boolean updateCuMemberAccountByDraw(Integer payNum, AcDrawRewardNumExt acDrawRewardNumExt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 更新用户等级
 | 
					     * 更新用户等级 -- 来源于活动
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param cuMember   用户信息
 | 
					     * @param cuMember   用户信息
 | 
				
			||||||
     * @param saOrder    订单信息
 | 
					     * @param saOrder    订单信息
 | 
				
			||||||
| 
						 | 
					@ -176,6 +176,23 @@ public interface ICuMemberBusinessService {
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    void updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
 | 
					    void updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 用户降级 -- 来源于活动
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param cuMember 用户信息
 | 
				
			||||||
 | 
					     * @param saOrder  订单信息
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void reduceMemberLevel(CuMember cuMember, SaOrder saOrder);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 更新升级记录 -- 来源于活动
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param saOrder  原订单
 | 
				
			||||||
 | 
					     * @param newOrder 新订单
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void changeMemberLevel(SaOrder saOrder, SaOrder newOrder);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询会员的安置位置
 | 
					     * 查询会员的安置位置
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 | 
				
			||||||
import cn.hutool.core.collection.CollectionUtil;
 | 
					import cn.hutool.core.collection.CollectionUtil;
 | 
				
			||||||
import cn.hutool.core.util.ObjectUtil;
 | 
					import cn.hutool.core.util.ObjectUtil;
 | 
				
			||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 | 
					import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
				
			||||||
import com.hzs.activity.pick.IAcPickServiceApi;
 | 
					import com.hzs.activity.pick.IAcPickServiceApi;
 | 
				
			||||||
import com.hzs.bonus.settle.IMemberSettleBonusApi;
 | 
					import com.hzs.bonus.settle.IMemberSettleBonusApi;
 | 
				
			||||||
import com.hzs.common.core.constant.CacheConstants;
 | 
					import com.hzs.common.core.constant.CacheConstants;
 | 
				
			||||||
| 
						 | 
					@ -61,9 +62,7 @@ import com.hzs.system.base.dto.CurrencyDTO;
 | 
				
			||||||
import com.hzs.system.config.IAccountServiceApi;
 | 
					import com.hzs.system.config.IAccountServiceApi;
 | 
				
			||||||
import com.hzs.system.config.IAreaCurrencyServiceApi;
 | 
					import com.hzs.system.config.IAreaCurrencyServiceApi;
 | 
				
			||||||
import com.hzs.system.config.IAwardsServiceApi;
 | 
					import com.hzs.system.config.IAwardsServiceApi;
 | 
				
			||||||
import com.hzs.system.config.IGradeServiceApi;
 | 
					 | 
				
			||||||
import com.hzs.system.config.dto.AreaCurrencyDTO;
 | 
					import com.hzs.system.config.dto.AreaCurrencyDTO;
 | 
				
			||||||
import com.hzs.system.config.dto.GradeDTO;
 | 
					 | 
				
			||||||
import com.hzs.third.pay.ITOnlinePaymentServiceApi;
 | 
					import com.hzs.third.pay.ITOnlinePaymentServiceApi;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.apache.dubbo.config.annotation.DubboReference;
 | 
					import org.apache.dubbo.config.annotation.DubboReference;
 | 
				
			||||||
| 
						 | 
					@ -92,8 +91,6 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
 | 
				
			||||||
    @DubboReference
 | 
					    @DubboReference
 | 
				
			||||||
    ISaOrderServiceApi iSaOrderServiceApi;
 | 
					    ISaOrderServiceApi iSaOrderServiceApi;
 | 
				
			||||||
    @DubboReference
 | 
					    @DubboReference
 | 
				
			||||||
    IGradeServiceApi iGradeServiceApi;
 | 
					 | 
				
			||||||
    @DubboReference
 | 
					 | 
				
			||||||
    IMemberSettleBonusApi iMemberSettleBonusApi;
 | 
					    IMemberSettleBonusApi iMemberSettleBonusApi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
| 
						 | 
					@ -1201,13 +1198,38 @@ public class CuMemberBusinessServiceImpl implements ICuMemberBusinessService {
 | 
				
			||||||
        return null;
 | 
					        return null;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					 | 
				
			||||||
    @Transactional(rollbackFor = Exception.class)
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
    public void updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel) {
 | 
					    public void updateMemberLevel(CuMember cuMember, SaOrder saOrder, Integer pkOldLevel) {
 | 
				
			||||||
        updateCuMember(cuMember);
 | 
					        updateCuMember(cuMember);
 | 
				
			||||||
        saveLevelUpgrade(cuMember, EUpgradeType.ACTIVITY_UPGRADE.getValue(), saOrder, pkOldLevel);
 | 
					        saveLevelUpgrade(cuMember, EUpgradeType.ACTIVITY_UPGRADE.getValue(), saOrder, pkOldLevel);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void reduceMemberLevel(CuMember cuMember, SaOrder saOrder) {
 | 
				
			||||||
 | 
					        updateCuMember(cuMember);
 | 
				
			||||||
 | 
					        iCuMemberLevelService.update(Wrappers.<CuMemberLevel>lambdaUpdate()
 | 
				
			||||||
 | 
					                .eq(CuMemberLevel::getPkMember, cuMember.getPkId())
 | 
				
			||||||
 | 
					                .eq(CuMemberLevel::getUpType, EUpgradeType.ACTIVITY_UPGRADE.getValue())
 | 
				
			||||||
 | 
					                .eq(CuMemberLevel::getPkOrder, saOrder.getPkId())
 | 
				
			||||||
 | 
					                .set(CuMemberLevel::getDelFlag, EDelFlag.DELETE.getValue())
 | 
				
			||||||
 | 
					                .set(CuMemberLevel::getUpgradeTime, new Date())
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void changeMemberLevel(SaOrder saOrder, SaOrder newOrder) {
 | 
				
			||||||
 | 
					        iCuMemberLevelService.update(Wrappers.<CuMemberLevel>lambdaUpdate()
 | 
				
			||||||
 | 
					                .eq(CuMemberLevel::getPkMember, saOrder.getPkReference())
 | 
				
			||||||
 | 
					                .eq(CuMemberLevel::getUpType, EUpgradeType.ACTIVITY_UPGRADE.getValue())
 | 
				
			||||||
 | 
					                .eq(CuMemberLevel::getPkOrder, saOrder.getPkId())
 | 
				
			||||||
 | 
					                .set(CuMemberLevel::getPkOrder, newOrder.getPkId())
 | 
				
			||||||
 | 
					                .set(CuMemberLevel::getUpgradeTime, newOrder.getPayTime())
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public CuMember queryCuMemberPlaceDept(CuMember cuMember, Boolean isFirst, Boolean isFirstAchieve) {
 | 
					    public CuMember queryCuMemberPlaceDept(CuMember cuMember, Boolean isFirst, Boolean isFirstAchieve) {
 | 
				
			||||||
        Long pkMember = cuMember.getPkParent();
 | 
					        Long pkMember = cuMember.getPkParent();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,9 @@
 | 
				
			||||||
package com.hzs.activity.base.provider;
 | 
					package com.hzs.activity.base.provider;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.hutool.core.bean.BeanUtil;
 | 
					 | 
				
			||||||
import com.hzs.activity.base.IActivityServiceApi;
 | 
					import com.hzs.activity.base.IActivityServiceApi;
 | 
				
			||||||
import com.hzs.activity.base.service.IActivityService;
 | 
					import com.hzs.activity.base.service.IActivityService;
 | 
				
			||||||
import com.hzs.activity.draw.service.IAcDrawRewardNumService;
 | 
					import com.hzs.activity.draw.service.IAcDrawRewardNumService;
 | 
				
			||||||
import com.hzs.activity.dto.AcRecommendUpgradeDTO;
 | 
					import com.hzs.activity.dto.AcRecommendUpgradeDTO;
 | 
				
			||||||
import com.hzs.activity.recommend.dto.AcRecommendUpgrade;
 | 
					 | 
				
			||||||
import com.hzs.activity.recommend.service.IAcRepurCouponsRuleConfigService;
 | 
					import com.hzs.activity.recommend.service.IAcRepurCouponsRuleConfigService;
 | 
				
			||||||
import com.hzs.common.core.domain.R;
 | 
					import com.hzs.common.core.domain.R;
 | 
				
			||||||
import com.hzs.common.domain.activity.recommend.AcRepurCouponsRuleConfig;
 | 
					import com.hzs.common.domain.activity.recommend.AcRepurCouponsRuleConfig;
 | 
				
			||||||
| 
						 | 
					@ -81,7 +79,7 @@ public class ActivityServiceProvider implements IActivityServiceApi {
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public R<Boolean> invokeRecommendUpgrade(AcRecommendUpgradeDTO recommendUpgradeDTO) {
 | 
					    public R<Boolean> invokeRecommendUpgrade(AcRecommendUpgradeDTO recommendUpgradeDTO) {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            return R.ok(iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(BeanUtil.copyProperties(recommendUpgradeDTO, AcRecommendUpgrade.class)));
 | 
					            return R.ok(iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(recommendUpgradeDTO));
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            return R.fail();
 | 
					            return R.fail();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,8 +19,8 @@ import com.hzs.activity.draw.service.IAcDrawGiftRuleConfigService;
 | 
				
			||||||
import com.hzs.activity.draw.service.IAcDrawRewardNumService;
 | 
					import com.hzs.activity.draw.service.IAcDrawRewardNumService;
 | 
				
			||||||
import com.hzs.activity.draw.service.IAcDrawRuleConfigService;
 | 
					import com.hzs.activity.draw.service.IAcDrawRuleConfigService;
 | 
				
			||||||
import com.hzs.activity.draw.vo.AcDrawGiftRuleConfigVo;
 | 
					import com.hzs.activity.draw.vo.AcDrawGiftRuleConfigVo;
 | 
				
			||||||
 | 
					import com.hzs.activity.dto.AcRecommendUpgradeDTO;
 | 
				
			||||||
import com.hzs.activity.pick.service.IAcPickUpConfigService;
 | 
					import com.hzs.activity.pick.service.IAcPickUpConfigService;
 | 
				
			||||||
import com.hzs.activity.recommend.dto.AcRecommendUpgrade;
 | 
					 | 
				
			||||||
import com.hzs.activity.recommend.param.AcRecommendParam;
 | 
					import com.hzs.activity.recommend.param.AcRecommendParam;
 | 
				
			||||||
import com.hzs.activity.recommend.service.IAcRepurCouponsRuleConfigService;
 | 
					import com.hzs.activity.recommend.service.IAcRepurCouponsRuleConfigService;
 | 
				
			||||||
import com.hzs.activity.wares.service.IAcGiftConfigService;
 | 
					import com.hzs.activity.wares.service.IAcGiftConfigService;
 | 
				
			||||||
| 
						 | 
					@ -807,7 +807,7 @@ public class ActivityServiceImpl implements IActivityService {
 | 
				
			||||||
//            // 抽奖
 | 
					//            // 抽奖
 | 
				
			||||||
//            iAcDrawRewardNumService.giveMemberDrawNum(saOrderExt);
 | 
					//            iAcDrawRewardNumService.giveMemberDrawNum(saOrderExt);
 | 
				
			||||||
            // 直推升级
 | 
					            // 直推升级
 | 
				
			||||||
            iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgrade.builder()
 | 
					            iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder()
 | 
				
			||||||
                    .saOrderExt(saOrderExt)
 | 
					                    .saOrderExt(saOrderExt)
 | 
				
			||||||
                    .orderOperateStatus(EOrderOperateStatus.NORMAL)
 | 
					                    .orderOperateStatus(EOrderOperateStatus.NORMAL)
 | 
				
			||||||
                    .build());
 | 
					                    .build());
 | 
				
			||||||
| 
						 | 
					@ -815,7 +815,7 @@ public class ActivityServiceImpl implements IActivityService {
 | 
				
			||||||
//            // 抽奖
 | 
					//            // 抽奖
 | 
				
			||||||
//            iAcDrawRewardNumService.giveMemberDrawNum(saOrderExt);
 | 
					//            iAcDrawRewardNumService.giveMemberDrawNum(saOrderExt);
 | 
				
			||||||
            // 直推升级
 | 
					            // 直推升级
 | 
				
			||||||
            iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgrade.builder()
 | 
					            iAcRepurCouponsRuleConfigService.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder()
 | 
				
			||||||
                    .saOrderExt(saOrderExt)
 | 
					                    .saOrderExt(saOrderExt)
 | 
				
			||||||
                    .orderOperateStatus(EOrderOperateStatus.NORMAL)
 | 
					                    .orderOperateStatus(EOrderOperateStatus.NORMAL)
 | 
				
			||||||
                    .build());
 | 
					                    .build());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,32 +0,0 @@
 | 
				
			||||||
package com.hzs.activity.recommend.dto;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.hzs.common.core.enums.EOrderOperateStatus;
 | 
					 | 
				
			||||||
import com.hzs.common.domain.sale.ext.SaOrderExt;
 | 
					 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					 | 
				
			||||||
import lombok.Builder;
 | 
					 | 
				
			||||||
import lombok.Data;
 | 
					 | 
				
			||||||
import lombok.NoArgsConstructor;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.io.Serializable;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * 直推-升级DTO
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
@Data
 | 
					 | 
				
			||||||
@Builder
 | 
					 | 
				
			||||||
@AllArgsConstructor
 | 
					 | 
				
			||||||
@NoArgsConstructor
 | 
					 | 
				
			||||||
public class AcRecommendUpgrade implements Serializable {
 | 
					 | 
				
			||||||
    private static final long serialVersionUID = 9005728656479475728L;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 订单信息
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private SaOrderExt saOrderExt;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 订单操作状态
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    private EOrderOperateStatus orderOperateStatus;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -35,11 +35,11 @@ public interface AcRecomUpgradeRecordMapper extends BaseMapper<AcRecomUpgradeRec
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 判断会员是否达标并且查询对应订单
 | 
					     * 判断会员是否达标并且查询对应订单
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    SaOrder getRecomOrder(@Param("pkMember") Long pkMember,
 | 
					    List<SaOrder> listRecomOrder(@Param("pkMember") Long pkMember,
 | 
				
			||||||
                          @Param("pkGrade") Integer pkGrade,
 | 
					                                 @Param("pkGrade") Integer pkGrade,
 | 
				
			||||||
                          @Param("num") Integer num,
 | 
					                                 @Param("num") Integer num,
 | 
				
			||||||
                          @Param("startTime") Date startTime,
 | 
					                                 @Param("startTime") Date startTime,
 | 
				
			||||||
                          @Param("endTime") Date endTime);
 | 
					                                 @Param("endTime") Date endTime);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    List<AcDirectPushUpgradeListVO> queryList(AcDirectPushUpgradeListParam param);
 | 
					    List<AcDirectPushUpgradeListVO> queryList(AcDirectPushUpgradeListParam param);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -53,7 +53,7 @@ public interface IAcRecomUpgradeRecordService extends IService<AcRecomUpgradeRec
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 判断会员是否达标并且查询对应订单
 | 
					     * 判断会员是否达标并且查询对应订单
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    SaOrder getRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime);
 | 
					    List<SaOrder> listRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    List<AcDirectPushUpgradeListVO> queryList(AcDirectPushUpgradeListParam param);
 | 
					    List<AcDirectPushUpgradeListVO> queryList(AcDirectPushUpgradeListParam param);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
package com.hzs.activity.recommend.service;
 | 
					package com.hzs.activity.recommend.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.baomidou.mybatisplus.extension.service.IService;
 | 
					import com.baomidou.mybatisplus.extension.service.IService;
 | 
				
			||||||
import com.hzs.activity.recommend.dto.AcRecommendUpgrade;
 | 
					import com.hzs.activity.dto.AcRecommendUpgradeDTO;
 | 
				
			||||||
import com.hzs.activity.recommend.param.AcDirectPushUpgradeParam;
 | 
					import com.hzs.activity.recommend.param.AcDirectPushUpgradeParam;
 | 
				
			||||||
import com.hzs.activity.recommend.param.AcRecommendParam;
 | 
					import com.hzs.activity.recommend.param.AcRecommendParam;
 | 
				
			||||||
import com.hzs.activity.recommend.vo.AcRecommendVO;
 | 
					import com.hzs.activity.recommend.vo.AcRecommendVO;
 | 
				
			||||||
| 
						 | 
					@ -59,7 +59,7 @@ public interface IAcRepurCouponsRuleConfigService extends IService<AcRepurCoupon
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param acRecommendUpgrade 直推升级信息
 | 
					     * @param acRecommendUpgrade 直推升级信息
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    Boolean invokeRecommendUpgrade(AcRecommendUpgrade acRecommendUpgrade);
 | 
					    Boolean invokeRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询目前所有启用的复购券规则
 | 
					     * 查询目前所有启用的复购券规则
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,8 +52,8 @@ public class AcRecomUpgradeRecordServiceImpl extends ServiceImpl<AcRecomUpgradeR
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public SaOrder getRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime) {
 | 
					    public List<SaOrder> listRecomOrder(Long pkMember, Integer pkGrade, Integer num, Date startTime, Date endTime) {
 | 
				
			||||||
        return baseMapper.getRecomOrder(pkMember, pkGrade, num, startTime, endTime);
 | 
					        return baseMapper.listRecomOrder(pkMember, pkGrade, num, startTime, endTime);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,9 +12,8 @@ import com.hzs.activity.base.param.ActivityParam;
 | 
				
			||||||
import com.hzs.activity.base.service.*;
 | 
					import com.hzs.activity.base.service.*;
 | 
				
			||||||
import com.hzs.activity.base.vo.AcGiftConfigVO;
 | 
					import com.hzs.activity.base.vo.AcGiftConfigVO;
 | 
				
			||||||
import com.hzs.activity.base.vo.BaseConfigVo;
 | 
					import com.hzs.activity.base.vo.BaseConfigVo;
 | 
				
			||||||
 | 
					import com.hzs.activity.dto.AcRecommendUpgradeDTO;
 | 
				
			||||||
import com.hzs.activity.people.vo.AcBaseConfigVO;
 | 
					import com.hzs.activity.people.vo.AcBaseConfigVO;
 | 
				
			||||||
import com.hzs.activity.pick.service.IAcPickService;
 | 
					 | 
				
			||||||
import com.hzs.activity.recommend.dto.AcRecommendUpgrade;
 | 
					 | 
				
			||||||
import com.hzs.activity.recommend.mapper.AcRepurCouponsRuleConfigMapper;
 | 
					import com.hzs.activity.recommend.mapper.AcRepurCouponsRuleConfigMapper;
 | 
				
			||||||
import com.hzs.activity.recommend.param.AcDirectPushUpgradeParam;
 | 
					import com.hzs.activity.recommend.param.AcDirectPushUpgradeParam;
 | 
				
			||||||
import com.hzs.activity.recommend.param.AcRecommendParam;
 | 
					import com.hzs.activity.recommend.param.AcRecommendParam;
 | 
				
			||||||
| 
						 | 
					@ -48,7 +47,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
import org.springframework.transaction.annotation.Transactional;
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.lang.reflect.Member;
 | 
					 | 
				
			||||||
import java.util.*;
 | 
					import java.util.*;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,8 +71,6 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private IAcApprovalLogService acApprovalLogService;
 | 
					    private IAcApprovalLogService acApprovalLogService;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private IAcPickService acPickService;
 | 
					 | 
				
			||||||
    @Autowired
 | 
					 | 
				
			||||||
    private IAcGoalMemberConfigService acGoalMemberConfigService;
 | 
					    private IAcGoalMemberConfigService acGoalMemberConfigService;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private IAcRepurSharOrderTypeService acRepurSharOrderTypeService;
 | 
					    private IAcRepurSharOrderTypeService acRepurSharOrderTypeService;
 | 
				
			||||||
| 
						 | 
					@ -582,32 +578,31 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Transactional(rollbackFor = Exception.class)
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public Boolean invokeRecommendUpgrade(AcRecommendUpgrade acRecommendUpgrade) {
 | 
					    public Boolean invokeRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade) {
 | 
				
			||||||
        AcBaseConfigVO baseConfigVO = AcBaseConfigVO.builder()
 | 
					        if (EOrderOperateStatus.NORMAL.equals(acRecommendUpgrade.getOrderOperateStatus())) {
 | 
				
			||||||
                .actType(EActType.RECOMMEND_UPGRADE.getValue())
 | 
					            // 正向处理
 | 
				
			||||||
                .pkCountry(acRecommendUpgrade.getSaOrderExt().getPkCountry())
 | 
					            AcBaseConfigVO baseConfigVO = AcBaseConfigVO.builder()
 | 
				
			||||||
                .build();
 | 
					                    .actType(EActType.RECOMMEND_UPGRADE.getValue())
 | 
				
			||||||
        // 查询订单时内的直推活动
 | 
					                    .pkCountry(acRecommendUpgrade.getSaOrderExt().getPkCountry())
 | 
				
			||||||
        List<AcBaseConfig> acBaseConfigs = iAcBaseConfigService.selectBaseConfigByType(baseConfigVO);
 | 
					                    .build();
 | 
				
			||||||
        if (CollUtil.isNotEmpty(acBaseConfigs)) {
 | 
					            // 查询订单时内的直推活动
 | 
				
			||||||
            EOrderOperateStatus orderOperateStatus = acRecommendUpgrade.getOrderOperateStatus();
 | 
					            List<AcBaseConfig> acBaseConfigs = iAcBaseConfigService.selectBaseConfigByType(baseConfigVO);
 | 
				
			||||||
            for (AcBaseConfig baseConfig : acBaseConfigs) {
 | 
					            if (CollUtil.isNotEmpty(acBaseConfigs)) {
 | 
				
			||||||
                if (orderOperateStatus.equals(EOrderOperateStatus.NORMAL)) {
 | 
					                for (AcBaseConfig baseConfig : acBaseConfigs) {
 | 
				
			||||||
                    // 正常处理
 | 
					 | 
				
			||||||
                    handleRecommendUpgrade(acRecommendUpgrade, baseConfig);
 | 
					                    handleRecommendUpgrade(acRecommendUpgrade, baseConfig);
 | 
				
			||||||
                } else {
 | 
					 | 
				
			||||||
                    // 撤单处理
 | 
					 | 
				
			||||||
                    cancelOrder(acRecommendUpgrade, baseConfig);
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            // 撤单处理
 | 
				
			||||||
 | 
					            handleCancelRecommendUpgrade(acRecommendUpgrade);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 处理业务(正常报单)
 | 
					     * 下单处理
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private void handleRecommendUpgrade(AcRecommendUpgrade acRecommendUpgrade, AcBaseConfig baseConfig) {
 | 
					    private void handleRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade, AcBaseConfig baseConfig) {
 | 
				
			||||||
        Date nowDate = new Date();
 | 
					        Date nowDate = new Date();
 | 
				
			||||||
        // 订单信息
 | 
					        // 订单信息
 | 
				
			||||||
        SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
 | 
					        SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
 | 
				
			||||||
| 
						 | 
					@ -658,8 +653,10 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
				
			||||||
            if (monthFirst.compareTo(startTime) > 0) {
 | 
					            if (monthFirst.compareTo(startTime) > 0) {
 | 
				
			||||||
                startTime = monthFirst;
 | 
					                startTime = monthFirst;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            List<SaOrder> recomOrderList = iAcRecomUpgradeRecordService.listRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime);
 | 
				
			||||||
            // 校验推荐人是否可以升级
 | 
					            // 校验推荐人是否可以升级
 | 
				
			||||||
            if (null == iAcRecomUpgradeRecordService.getRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime)) {
 | 
					            if (CollectionUtil.isEmpty(recomOrderList)
 | 
				
			||||||
 | 
					                    || recomOrderList.size() != upgradeRuleConfig.getRecommendNumber()) {
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            // 封装规则升级记录
 | 
					            // 封装规则升级记录
 | 
				
			||||||
| 
						 | 
					@ -699,69 +696,80 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 撤单
 | 
					     * 撤单处理
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private Boolean cancelOrder(AcRecommendUpgrade acRecommendUpgrade, AcBaseConfig baseConfig) {
 | 
					    private void handleCancelRecommendUpgrade(AcRecommendUpgradeDTO acRecommendUpgrade) {
 | 
				
			||||||
 | 
					        Date nowDate = new Date();
 | 
				
			||||||
 | 
					        // 订单信息
 | 
				
			||||||
        SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
 | 
					        SaOrderExt saOrderExt = acRecommendUpgrade.getSaOrderExt();
 | 
				
			||||||
 | 
					        // 订单ID
 | 
				
			||||||
        Long pkOrderId = saOrderExt.getPkId();
 | 
					        Long pkOrderId = saOrderExt.getPkId();
 | 
				
			||||||
        //修改人
 | 
					        // 推荐人
 | 
				
			||||||
        Long pkModified = saOrderExt.getPkReference();
 | 
					        Long pkMember = saOrderExt.getPkReference();
 | 
				
			||||||
        AcRecomUpgradeRecordExt upgradeRecordOrder = new AcRecomUpgradeRecordExt();
 | 
					
 | 
				
			||||||
        upgradeRecordOrder.setPkOrderId(pkOrderId);
 | 
					        List<AcRecomUpgradeRecord> upgradeRecordList = iAcRecomUpgradeRecordService.list(Wrappers.<AcRecomUpgradeRecord>lambdaQuery()
 | 
				
			||||||
        upgradeRecordOrder.setStartDate(baseConfig.getActStartDate());
 | 
					                .eq(AcRecomUpgradeRecord::getPkMember, pkMember)
 | 
				
			||||||
        upgradeRecordOrder.setEndDate(baseConfig.getActEndDate());
 | 
					                .eq(AcRecomUpgradeRecord::getPkOrderId, pkOrderId)
 | 
				
			||||||
        //根据orderId查询
 | 
					                .orderByDesc(AcRecomUpgradeRecord::getUpgradeTime)
 | 
				
			||||||
        AcRecomUpgradeRecord recomUpgradeRecord = iAcRecomUpgradeRecordService.selectUpgradeRecordByOrderId(upgradeRecordOrder);
 | 
					        );
 | 
				
			||||||
        if (null != recomUpgradeRecord) {
 | 
					        if (CollectionUtil.isNotEmpty(upgradeRecordList)) {
 | 
				
			||||||
            Long pkRuleId = recomUpgradeRecord.getPkRuleId();
 | 
					            // 会员活动升级记录
 | 
				
			||||||
            //查询规则
 | 
					            AcRecomUpgradeRecord recomUpgradeRecord = upgradeRecordList.get(0);
 | 
				
			||||||
            AcRecomUpgradeRuleConfig upgradeRuleConfig = iAcRecomUpgradeRuleConfigService.getById(pkRuleId);
 | 
					            // 删除活动升级记录
 | 
				
			||||||
            //结算等级
 | 
					            iAcRecomUpgradeRecordService.update(Wrappers.<AcRecomUpgradeRecord>lambdaUpdate()
 | 
				
			||||||
            Integer pkSettleGrade = upgradeRuleConfig.getPkSettleGrade();
 | 
					                    .eq(AcRecomUpgradeRecord::getPkId, recomUpgradeRecord.getPkId())
 | 
				
			||||||
            //找茬等级
 | 
					                    .set(AcRecomUpgradeRecord::getDelFlag, EDelFlag.DELETE.getValue())
 | 
				
			||||||
            Integer pkRecommendGrade = upgradeRuleConfig.getPkRecommendGrade();
 | 
					                    .set(AcRecomUpgradeRecord::getModifiedTime, nowDate)
 | 
				
			||||||
            if (pkSettleGrade.equals(recomUpgradeRecord.getPkSettleGrade()) && pkRecommendGrade.equals(recomUpgradeRecord.getPkRecommendGrade())) {
 | 
					                    .set(AcRecomUpgradeRecord::getPkModified, saOrderExt.getPkMember())
 | 
				
			||||||
                //撤单更新状态
 | 
					            );
 | 
				
			||||||
                iAcRecomUpgradeRecordService.cancelOrder(pkOrderId, pkModified);
 | 
					
 | 
				
			||||||
                AcRecomUpgradeRecordExt upgradeRecord = BeanUtil.copyProperties(recomUpgradeRecord, AcRecomUpgradeRecordExt.class);
 | 
					            // 推荐会员信息
 | 
				
			||||||
                upgradeRecord.setPkSettleGrade(pkSettleGrade);
 | 
					            CuMember referenceMember = iMemberServiceApi.getMember(pkMember).getData();
 | 
				
			||||||
                upgradeRecord.setPkRecommendGrade(pkRecommendGrade);
 | 
					            if (!referenceMember.getPkSettleGrade().equals(recomUpgradeRecord.getPkRecommendGrade())) {
 | 
				
			||||||
                upgradeRecord.setStartDate(baseConfig.getActStartDate());
 | 
					                // 会员目前等于与这次活动升级不一致,只需要删掉升级记录
 | 
				
			||||||
                upgradeRecord.setEndDate(baseConfig.getActEndDate());
 | 
					                CuMember cuMember = CuMember.builder()
 | 
				
			||||||
                upgradeRecord.setUpgradeStatus(1);
 | 
					                        .pkId(pkMember)
 | 
				
			||||||
                //推荐人数
 | 
					                        .pkSettleGrade(referenceMember.getPkSettleGrade())
 | 
				
			||||||
                List<Long> recommendNumber = iAcRecomUpgradeRecordService.selectRecommendNumber(upgradeRecord);
 | 
					                        .build();
 | 
				
			||||||
                //配置的推荐人数
 | 
					                iMemberServiceApi.reduceMemberLevel(cuMember, saOrderExt);
 | 
				
			||||||
                Integer recommendConfigNumber = upgradeRuleConfig.getRecommendNumber();
 | 
					            } else {
 | 
				
			||||||
                if (CollUtil.isNotEmpty(recommendNumber) && recommendNumber.size() < recommendConfigNumber) {
 | 
					                // 活动基础配置
 | 
				
			||||||
                    Long pkMember = recomUpgradeRecord.getPkMember();
 | 
					                AcBaseConfig baseConfig = iAcBaseConfigService.getById(recomUpgradeRecord.getPkId());
 | 
				
			||||||
                    //调用降级处理
 | 
					                // 活动基础配置
 | 
				
			||||||
                    Integer pkUpgradeGrade = upgradeRuleConfig.getPkUpgradeGrade();
 | 
					                AcRecomUpgradeRuleConfig upgradeRuleConfig = iAcRecomUpgradeRuleConfigService.getById(recomUpgradeRecord.getPkRuleId());
 | 
				
			||||||
                    CuMember data = iMemberServiceApi.getMember(pkMember).getData();
 | 
					                // 查询订单时间范围
 | 
				
			||||||
                    //用户信息
 | 
					                // 默认活动开始时间
 | 
				
			||||||
                    CuMember cuMember = CuMember.builder().pkId(pkMember).pkSettleGrade(pkSettleGrade).memberCode(data.getMemberCode())
 | 
					                Date startTime = baseConfig.getActStartDate();
 | 
				
			||||||
                            .pkSettleCountry(data.getPkSettleCountry()).build();
 | 
					                // 默认活动结束时间
 | 
				
			||||||
                    cuMember.setPkModified(pkMember);
 | 
					                Date endTime = baseConfig.getActEndDate();
 | 
				
			||||||
                    cuMember.setModifiedTime(new Date());
 | 
					                // 当月第一天
 | 
				
			||||||
                    SaOrder saOrder = SaOrder.builder().payTime(new Date()).build();
 | 
					                Date monthFirst = DateUtils.getFirstDayOfMonth(nowDate);
 | 
				
			||||||
                    //修改升级状态
 | 
					                if (monthFirst.compareTo(startTime) > 0) {
 | 
				
			||||||
                    iAcRecomUpgradeRecordService.updateUpgradeStatusById(recommendNumber, pkModified, EYesNo.YES.getIntValue());
 | 
					                    startTime = monthFirst;
 | 
				
			||||||
                    //查询是否配置赠品
 | 
					 | 
				
			||||||
                    List<AcGiftConfigExt> acGiftConfigList = giftConfigService.queryListByRuleIdList(pkRuleId, saOrderExt.getPkCountry());
 | 
					 | 
				
			||||||
                    //调用提货接口
 | 
					 | 
				
			||||||
                    if (CollUtil.isNotEmpty(acGiftConfigList)) {
 | 
					 | 
				
			||||||
                        AcGiftConfigExt acGiftConfigExt = acGiftConfigList.get(0);
 | 
					 | 
				
			||||||
                        acPickService.updatePickUsableByMemberAndActivityType(pkMember, EActType.DIRECT_PUSH_GIFT.getValue(), baseConfig.getPkId(), pkRuleId
 | 
					 | 
				
			||||||
                                , acGiftConfigExt.getQuantity(), pkModified);
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    //调用降级处理
 | 
					 | 
				
			||||||
                    iMemberServiceApi.updateMemberLevel(cuMember, saOrder, pkUpgradeGrade);
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                // 当月最后一天
 | 
				
			||||||
 | 
					                Date monthLast = DateUtils.getLastDayOfMonth(nowDate);
 | 
				
			||||||
 | 
					                if (monthLast.compareTo(endTime) < 0) {
 | 
				
			||||||
 | 
					                    endTime = monthLast;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                List<SaOrder> recomOrderList = iAcRecomUpgradeRecordService.listRecomOrder(pkMember, upgradeRuleConfig.getPkRecommendGrade(), upgradeRuleConfig.getRecommendNumber(), startTime, endTime);
 | 
				
			||||||
 | 
					                // 校验推荐人是否可以升级
 | 
				
			||||||
 | 
					                if (CollectionUtil.isEmpty(recomOrderList)
 | 
				
			||||||
 | 
					                        || recomOrderList.size() != upgradeRuleConfig.getRecommendNumber()) {
 | 
				
			||||||
 | 
					                    // 订单撤单后,目前订单不够升级了,需要降级
 | 
				
			||||||
 | 
					                    CuMember cuMember = CuMember.builder()
 | 
				
			||||||
 | 
					                            .pkId(pkMember)
 | 
				
			||||||
 | 
					                            .pkSettleGrade(recomUpgradeRecord.getPkSettleGrade())
 | 
				
			||||||
 | 
					                            .build();
 | 
				
			||||||
 | 
					                    iMemberServiceApi.reduceMemberLevel(cuMember, saOrderExt);
 | 
				
			||||||
 | 
					                    return;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                // 足够升级,更新升级记录时间
 | 
				
			||||||
 | 
					                SaOrder newOrder = recomOrderList.get(recomOrderList.size() - 1);
 | 
				
			||||||
 | 
					                iMemberServiceApi.changeMemberLevel(saOrderExt, newOrder);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return true;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -792,32 +800,16 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
				
			||||||
                        return true;
 | 
					                        return true;
 | 
				
			||||||
                    case PLACE_STOP:
 | 
					                    case PLACE_STOP:
 | 
				
			||||||
                        // 安置禁止
 | 
					                        // 安置禁止
 | 
				
			||||||
                        if (iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) > 0) {
 | 
					                        return iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) <= 0;
 | 
				
			||||||
                            return false;
 | 
					 | 
				
			||||||
                        } else {
 | 
					 | 
				
			||||||
                            return true;
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    case BLOOD_STOP:
 | 
					                    case BLOOD_STOP:
 | 
				
			||||||
                        // 血缘禁止
 | 
					                        // 血缘禁止
 | 
				
			||||||
                        if (iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) > 0) {
 | 
					                        return iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) <= 0;
 | 
				
			||||||
                            return false;
 | 
					 | 
				
			||||||
                        } else {
 | 
					 | 
				
			||||||
                            return true;
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    case PLACE_ALLWO:
 | 
					                    case PLACE_ALLWO:
 | 
				
			||||||
                        // 安置可见
 | 
					                        // 安置可见
 | 
				
			||||||
                        if (iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) > 0) {
 | 
					                        return iAcBaseAuthorityService.checkPlaceParent(pkMember, memberCodeList) > 0;
 | 
				
			||||||
                            return true;
 | 
					 | 
				
			||||||
                        } else {
 | 
					 | 
				
			||||||
                            return false;
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    case BLOOD_ALLOW:
 | 
					                    case BLOOD_ALLOW:
 | 
				
			||||||
                        // 血缘可见
 | 
					                        // 血缘可见
 | 
				
			||||||
                        if (iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) > 0) {
 | 
					                        return iAcBaseAuthorityService.checkParent(pkMember, memberCodeList) > 0;
 | 
				
			||||||
                            return true;
 | 
					 | 
				
			||||||
                        } else {
 | 
					 | 
				
			||||||
                            return false;
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    default:
 | 
					                    default:
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -862,14 +854,14 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        Integer controlType = acDirectPushUpgradeParam.getControlType();
 | 
					        Integer controlType = acDirectPushUpgradeParam.getControlType();
 | 
				
			||||||
        if (controlType.equals(EControlType.SAVE.getValue())) {
 | 
					        if (controlType.equals(EControlType.SAVE.getValue())) {
 | 
				
			||||||
            log.info("直推升级新增{}",JSONUtil.toJsonStr(acDirectPushUpgradeParam));
 | 
					            log.info("直推升级新增{}", JSONUtil.toJsonStr(acDirectPushUpgradeParam));
 | 
				
			||||||
            return saveDirectPushUpgradeData(acDirectPushUpgradeParam);
 | 
					            return saveDirectPushUpgradeData(acDirectPushUpgradeParam);
 | 
				
			||||||
        } else if (controlType.equals(EControlType.MODIFY.getValue())) {
 | 
					        } else if (controlType.equals(EControlType.MODIFY.getValue())) {
 | 
				
			||||||
            log.info("直推升级修改{}",JSONUtil.toJsonStr(acDirectPushUpgradeParam));
 | 
					            log.info("直推升级修改{}", JSONUtil.toJsonStr(acDirectPushUpgradeParam));
 | 
				
			||||||
            deleteDirectPushUpgradeData(acDirectPushUpgradeParam);
 | 
					            deleteDirectPushUpgradeData(acDirectPushUpgradeParam);
 | 
				
			||||||
            return saveDirectPushUpgradeData(acDirectPushUpgradeParam);
 | 
					            return saveDirectPushUpgradeData(acDirectPushUpgradeParam);
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            log.info("直推升级刪除{}",JSONUtil.toJsonStr(acDirectPushUpgradeParam));
 | 
					            log.info("直推升级刪除{}", JSONUtil.toJsonStr(acDirectPushUpgradeParam));
 | 
				
			||||||
            deleteDirectPushUpgradeData(acDirectPushUpgradeParam);
 | 
					            deleteDirectPushUpgradeData(acDirectPushUpgradeParam);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //业务单号
 | 
					        //业务单号
 | 
				
			||||||
| 
						 | 
					@ -945,7 +937,6 @@ public class AcRepurCouponsRuleConfigServiceImpl extends ServiceImpl<AcRepurCoup
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private String saveDirectPushUpgradeBaseConfig(AcDirectPushUpgradeParam acDirectPushUpgradeParam) {
 | 
					    private String saveDirectPushUpgradeBaseConfig(AcDirectPushUpgradeParam acDirectPushUpgradeParam) {
 | 
				
			||||||
        ActivityParam activityParam = acDirectPushUpgradeParam.getActivityParam();
 | 
					        ActivityParam activityParam = acDirectPushUpgradeParam.getActivityParam();
 | 
				
			||||||
        if (null == activityParam) {
 | 
					        if (null == activityParam) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,12 +10,6 @@ import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 复购券均分VO
 | 
					 * 复购券均分VO
 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @Description:
 | 
					 | 
				
			||||||
 * @Author: ljc
 | 
					 | 
				
			||||||
 * @Time: 2023/5/4 15:19
 | 
					 | 
				
			||||||
 * @Classname: AcRecommendSharVO
 | 
					 | 
				
			||||||
 * @Package_name: com.hzs.activity.recommend.vo
 | 
					 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,12 +11,6 @@ import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 直推升级VO
 | 
					 * 直推升级VO
 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @Description:
 | 
					 | 
				
			||||||
 * @Author: ljc
 | 
					 | 
				
			||||||
 * @Time: 2023/4/22 11:06
 | 
					 | 
				
			||||||
 * @Classname: AcRecommendUpgradeVO
 | 
					 | 
				
			||||||
 * @Package_name: com.hzs.activity.recommend.vo
 | 
					 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@Builder
 | 
					@Builder
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,6 @@ import java.util.List;
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public class AcRecommendVO implements Serializable {
 | 
					public class AcRecommendVO implements Serializable {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static final long serialVersionUID = 7140530986849619774L;
 | 
					    private static final long serialVersionUID = 7140530986849619774L;
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 活动基本配置主键
 | 
					     * 活动基本配置主键
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,13 +8,6 @@ import lombok.NoArgsConstructor;
 | 
				
			||||||
import java.io.Serializable;
 | 
					import java.io.Serializable;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * @Description:
 | 
					 | 
				
			||||||
 * @Author: ljc
 | 
					 | 
				
			||||||
 * @Time: 2023/4/22 11:40
 | 
					 | 
				
			||||||
 * @Classname: AcRepurchaseCouponsShowVO
 | 
					 | 
				
			||||||
 * @Package_name: com.hzs.activity.recommend.vo
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@Builder
 | 
					@Builder
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,5 @@
 | 
				
			||||||
package com.hzs.activity.recommend.vo;
 | 
					package com.hzs.activity.recommend.vo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.hzs.common.core.annotation.Transaction;
 | 
					import com.hzs.common.core.annotation.Transaction;
 | 
				
			||||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
 | 
					import com.hzs.common.core.constant.EnumsPrefixConstants;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
| 
						 | 
					@ -12,12 +11,6 @@ import java.math.BigDecimal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 直推复购券 VO
 | 
					 * 直推复购券 VO
 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @Description:
 | 
					 | 
				
			||||||
 * @Author: ljc
 | 
					 | 
				
			||||||
 * @Time: 2023/4/22 11:00
 | 
					 | 
				
			||||||
 * @Classname: AcRepurchaseCouponsVO
 | 
					 | 
				
			||||||
 * @Package_name: com.hzs.activity.recommend.vo
 | 
					 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,23 +41,25 @@
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- 判断会员是否达标并且查询对应订单 -->
 | 
					    <!-- 判断会员是否达标并且查询对应订单 -->
 | 
				
			||||||
    <select id="getRecomOrder" resultType="com.hzs.common.domain.sale.order.SaOrder">
 | 
					    <select id="listRecomOrder" resultType="com.hzs.common.domain.sale.order.SaOrder">
 | 
				
			||||||
        select so.pk_reference, max(so.pk_id) pk_id, max(so.pay_time) pay_time
 | 
					        select t.* from (
 | 
				
			||||||
 | 
					        select so.*
 | 
				
			||||||
        from sa_order so
 | 
					        from sa_order so
 | 
				
			||||||
                 left join cu_member_level cml
 | 
					        left join cu_member_level cml
 | 
				
			||||||
                           on cml.pk_member = so.pk_member
 | 
					        on cml.pk_member = so.pk_member
 | 
				
			||||||
                               and cml.pk_order = so.pk_id
 | 
					        and cml.pk_order = so.pk_id
 | 
				
			||||||
                 left join bd_grade bg
 | 
					        left join bd_grade bg
 | 
				
			||||||
                           on bg.pk_id = cml.new_level
 | 
					        on bg.pk_id = cml.new_level
 | 
				
			||||||
        where so.del_flag = 0
 | 
					        where so.del_flag = 0
 | 
				
			||||||
          and so.order_status = 1
 | 
					        and so.order_status = 1
 | 
				
			||||||
          and (so.order_type in (1, 2) or so.order_type_extend = 1)
 | 
					        and so.order_type in (1, 2)
 | 
				
			||||||
          and so.pay_time >= #{startTime}
 | 
					        and so.pay_time >= #{startTime}
 | 
				
			||||||
          and #{endTime} >= so.pay_time
 | 
					        and #{endTime} >= so.pay_time
 | 
				
			||||||
          and so.pk_reference = #{pkMember}
 | 
					        and so.pk_reference = #{pkMember}
 | 
				
			||||||
          and bg.grade_value >= (select grade_value from bd_grade where pk_id = #{pkGrade})
 | 
					        and bg.grade_value >= (select grade_value from bd_grade where pk_id = #{pkGrade})
 | 
				
			||||||
        group by so.pk_reference
 | 
					        order by so.pay_time
 | 
				
			||||||
        having count(so.pk_reference) >= #{num}
 | 
					        ) t
 | 
				
			||||||
 | 
					        where #{num} >= rownum
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
      <select id="queryList" resultType="com.hzs.activity.recommend.vo.AcDirectPushUpgradeListVO">
 | 
					      <select id="queryList" resultType="com.hzs.activity.recommend.vo.AcDirectPushUpgradeListVO">
 | 
				
			||||||
        SELECT
 | 
					        SELECT
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,15 +25,16 @@ import java.util.List;
 | 
				
			||||||
public class ActivityBackListener {
 | 
					public class ActivityBackListener {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @DubboReference
 | 
					    @DubboReference
 | 
				
			||||||
    IActivityServiceApi activityServiceApi;
 | 
					    IActivityServiceApi iActivityServiceApi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @RabbitListener(bindings = @QueueBinding(
 | 
					    @RabbitListener(bindings = @QueueBinding(
 | 
				
			||||||
            exchange = @Exchange(value = RabbitMqConstants.ORDER_CANCEL_EXCHANGE, type = "topic"),
 | 
					            exchange = @Exchange(value = RabbitMqConstants.ORDER_CANCEL_EXCHANGE, type = "topic"),
 | 
				
			||||||
            value = @Queue(value = RabbitMqConstants.ORDER_CANCEL_ACTIVITY_BACK_QUEUE, durable = "true", autoDelete = "false"),
 | 
					            value = @Queue(value = RabbitMqConstants.ORDER_CANCEL_ACTIVITY_BACK_QUEUE, durable = "true", autoDelete = "false"),
 | 
				
			||||||
            key = RabbitMqConstants.ORDER_CANCEL_KEY))
 | 
					            key = RabbitMqConstants.ORDER_CANCEL_KEY))
 | 
				
			||||||
    @RabbitHandler
 | 
					    @RabbitHandler
 | 
				
			||||||
    public void onMessage(Message<List<SaOrderExt>> message, Channel channel) throws Exception {
 | 
					    public void onMessage(Message<List<SaOrderExt>> message, Channel channel) {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
 | 
					            Thread.sleep(500);
 | 
				
			||||||
            Long deliveryTag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG);
 | 
					            Long deliveryTag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG);
 | 
				
			||||||
            channel.basicAck(deliveryTag, false);
 | 
					            channel.basicAck(deliveryTag, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,15 +45,16 @@ public class ActivityBackListener {
 | 
				
			||||||
            if (CollectionUtil.isNotEmpty(saOrderExtList)) {
 | 
					            if (CollectionUtil.isNotEmpty(saOrderExtList)) {
 | 
				
			||||||
                SaOrderExt saOrderExt = saOrderExtList.get(0);
 | 
					                SaOrderExt saOrderExt = saOrderExtList.get(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // 处理抽奖
 | 
					//                // 处理抽奖
 | 
				
			||||||
                activityServiceApi.backGiveMemberDrawNum(saOrderExt);
 | 
					//                iActivityServiceApi.backGiveMemberDrawNum(saOrderExt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
 | 
					                if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
 | 
				
			||||||
                        || EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()
 | 
					                        || EOrderType.UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
 | 
				
			||||||
                        || EOrderType.SPECIAL_REGISTER_ORDER.getValue() == saOrderExt.getOrderType()
 | 
					 | 
				
			||||||
                        || EOrderType.SPECIAL_UPGRADE_ORDER.getValue() == saOrderExt.getOrderType()) {
 | 
					 | 
				
			||||||
                    // 处理直推升级
 | 
					                    // 处理直推升级
 | 
				
			||||||
                    activityServiceApi.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder().saOrderExt(saOrderExt).orderOperateStatus(EOrderOperateStatus.CANCEL).build());
 | 
					                    iActivityServiceApi.invokeRecommendUpgrade(AcRecommendUpgradeDTO.builder().
 | 
				
			||||||
 | 
					                            saOrderExt(saOrderExt).
 | 
				
			||||||
 | 
					                            orderOperateStatus(EOrderOperateStatus.CANCEL)
 | 
				
			||||||
 | 
					                            .build());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue