|  | @@ -308,6 +308,49 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 | 
	
		
			
				|  |  |          return BaseController.succeed(result);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public HttpResponseResult checkActiveBuy(MemberPayParamDto memberPayParamDto) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).orElseThrow(()-> new BizException("请登录"));
 | 
	
		
			
				|  |  | +        //判断当前商品是否可以购买(库存、上架状态、是否购买过)
 | 
	
		
			
				|  |  | +        //如果是云教练商品,那么只能购买一次、如果是免费直播课,那么每次上架只能买一次,总共只能买2次
 | 
	
		
			
				|  |  | +        if(memberPayParamDto.getLiveGoodsId() == 1){
 | 
	
		
			
				|  |  | +            String activeConfig = sysConfigDao.findConfigValue("cloud_teacher_active_config");
 | 
	
		
			
				|  |  | +            List<Cloud2022ActivityDto> cloud2022ActivityDtos = JSONArray.parseArray(activeConfig, Cloud2022ActivityDto.class);
 | 
	
		
			
				|  |  | +            List<Cloud2022ActivityDto> activityDtos = cloud2022ActivityDtos.stream().filter(e -> e.getOrganId().contains(sysUser.getOrganId().toString())).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +            if(CollectionUtils.isEmpty(activityDtos)){
 | 
	
		
			
				|  |  | +                return BaseController.failed("当前分部暂未开通活动");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //是否还有购买资格
 | 
	
		
			
				|  |  | +            Integer activityId = Integer.parseInt(activityDtos.get(0).getActivityId());
 | 
	
		
			
				|  |  | +            VipGroupActivity vipGroupActivity = Optional.of(vipGroupActivityDao.get(activityId)).orElseThrow(()-> new BizException("活动不存在"));
 | 
	
		
			
				|  |  | +            if(vipGroupActivity.getStudentMaxUsedTimes() != -1){
 | 
	
		
			
				|  |  | +                //获取活动购买次数
 | 
	
		
			
				|  |  | +                int activityBuyNum = activityUserMapperDao.countActivityBuyNum(vipGroupActivity.getId(),sysUser.getId());
 | 
	
		
			
				|  |  | +                if(activityBuyNum >= vipGroupActivity.getStudentMaxUsedTimes()){
 | 
	
		
			
				|  |  | +                    return BaseController.failed("您已达到购买次数上限");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        } else if (memberPayParamDto.getLiveGoodsId() == 2){
 | 
	
		
			
				|  |  | +            RBucket<List<Integer>> bucket = redissonClient.getBucket(RedisKeyConstant.LIVE_GOODS_ZERO_CACHE_KEY + memberPayParamDto.getLiveId());
 | 
	
		
			
				|  |  | +            List<Integer> list = bucket.get();
 | 
	
		
			
				|  |  | +            if(CollectionUtils.isEmpty(list)){
 | 
	
		
			
				|  |  | +                list = new ArrayList<>();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //当前用户是否购买过免费直播课
 | 
	
		
			
				|  |  | +            if(list.contains(sysUser.getId())){
 | 
	
		
			
				|  |  | +                return BaseController.failed("您已购买过本轮免费直播课");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //购买次数是否超过2次
 | 
	
		
			
				|  |  | +            int count = tempBuyFreeLiveTheoryCourseDao.countByUserId(sysUser.getId());
 | 
	
		
			
				|  |  | +            if(count >= 2){
 | 
	
		
			
				|  |  | +                return BaseController.failed("免费直播课已达到购买次数上限");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +            return BaseController.failed("当前商品不可购买");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return BaseController.succeed();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      public static final String BUY_2_QQHE_LOCK = "BUY_2_QQHE_LOCK:";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 |