|
@@ -308,6 +308,49 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
return BaseController.succeed(result);
|
|
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:";
|
|
public static final String BUY_2_QQHE_LOCK = "BUY_2_QQHE_LOCK:";
|
|
|
|
|
|
@Override
|
|
@Override
|