Browse Source

直播活动调整,支持3个免费商品

zouxuan 3 years ago
parent
commit
916f6a1c16

+ 4 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/LiveGoodsMapperServiceImpl.java

@@ -152,9 +152,11 @@ public class LiveGoodsMapperServiceImpl extends BaseServiceImpl<Integer, LiveGoo
 		//商品下架后,将缓存的库存设置为0
 		redissonClient.getBucket(RedisKeyConstant.LIVE_GOODS_STOCK_CACHE_KEY + liveId + liveGoodsId).set(0);
 		//如果下架的是免费的直播课商品,清空购买的学员的缓存记录
-		if(liveGoodsId.equals(2)){
+		if(liveGoodsId.equals(2) || liveGoodsId.equals(3) || liveGoodsId.equals(4)){
 			//删除当前直播间免费直播课的购买记录缓存
-			redissonClient.getBucket(RedisKeyConstant.LIVE_GOODS_ZERO_CACHE_KEY + liveId).delete();
+			StringBuffer sb = new StringBuffer(RedisKeyConstant.LIVE_GOODS_ZERO_CACHE_KEY).append(liveId).
+					append("_").append(liveGoodsId);
+			redissonClient.getBucket(sb.toString()).delete();
 		}
 	}
 

+ 17 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -275,8 +275,10 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             amount = vipGroupActivity.getMarketPrice();
             //扣减库存
             liveGoodsService.reduceGoodsStock(memberPayParamDto.getLiveGoodsId(),memberPayParamDto.getLiveId());
-        } else if (memberPayParamDto.getLiveGoodsId() == 2){
-            RBucket<List<Integer>> bucket = redissonClient.getBucket(RedisKeyConstant.LIVE_GOODS_ZERO_CACHE_KEY + memberPayParamDto.getLiveId());
+        } else if (memberPayParamDto.getLiveGoodsId() == 2 || memberPayParamDto.getLiveGoodsId() == 3 || memberPayParamDto.getLiveGoodsId() == 4){
+            StringBuffer sb = new StringBuffer(RedisKeyConstant.LIVE_GOODS_ZERO_CACHE_KEY).append(memberPayParamDto.getLiveId()).
+                    append("_").append(memberPayParamDto.getLiveGoodsId());
+            RBucket<List<Integer>> bucket = redissonClient.getBucket(sb.toString());
             List<Integer> list = bucket.get();
             if(CollectionUtils.isEmpty(list)){
                 list = new ArrayList<>();
@@ -286,10 +288,10 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 throw new BizException("您已领取过本轮免费直播课");
             }
             //购买次数是否超过2次
-            int count = tempBuyFreeLiveTheoryCourseDao.countByUserId(sysUser.getId());
-            if(count >= 2){
-                throw new BizException("免费直播课已达到领取次数上限");
-            }
+//            int count = tempBuyFreeLiveTheoryCourseDao.countByUserId(sysUser.getId());
+//            if(count >= 2){
+//                throw new BizException("免费直播课已达到领取次数上限");
+//            }
             //保存购买记录
             tempBuyFreeLiveTheoryCourseDao.insert(new TempBuyFreeLiveTheoryCourse(sysUser.getId()));
             //扣减库存
@@ -342,8 +344,10 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                     return succeed;
                 }
             }
-        } else if (memberPayParamDto.getLiveGoodsId() == 2){
-            RBucket<List<Integer>> bucket = redissonClient.getBucket(RedisKeyConstant.LIVE_GOODS_ZERO_CACHE_KEY + memberPayParamDto.getLiveId());
+        } else if (memberPayParamDto.getLiveGoodsId() == 2 || memberPayParamDto.getLiveGoodsId() == 3 || memberPayParamDto.getLiveGoodsId() == 4){
+            StringBuffer sb = new StringBuffer(RedisKeyConstant.LIVE_GOODS_ZERO_CACHE_KEY).append(memberPayParamDto.getLiveId()).
+                    append("_").append(memberPayParamDto.getLiveGoodsId());
+            RBucket<List<Integer>> bucket = redissonClient.getBucket(sb.toString());
             List<Integer> list = bucket.get();
             if(CollectionUtils.isEmpty(list)){
                 list = new ArrayList<>();
@@ -354,11 +358,11 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 return succeed;
             }
             //购买次数是否超过2次
-            int count = tempBuyFreeLiveTheoryCourseDao.countByUserId(sysUser.getId());
-            if(count >= 2){
-                succeed.setMsg("免费直播课已达到领取次数上限");
-                return succeed;
-            }
+//            int count = tempBuyFreeLiveTheoryCourseDao.countByUserId(sysUser.getId());
+//            if(count >= 2){
+//                succeed.setMsg("免费直播课已达到领取次数上限");
+//                return succeed;
+//            }
         }else {
             succeed.setMsg("当前商品不可购买");
             return succeed;