Browse Source

直播活动调整,支持3个免费商品,每个商品每人只能买一次

zouxuan 3 years ago
parent
commit
132e636f9e

+ 23 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TempBuyFreeLiveTheoryCourse.java

@@ -12,6 +12,10 @@ public class TempBuyFreeLiveTheoryCourse {
 	
 	/**  */
 	private Integer userId;
+
+	private String liveId;
+
+	private Integer liveGoodsId;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -19,8 +23,26 @@ public class TempBuyFreeLiveTheoryCourse {
 	/**  */
 	private java.util.Date updateTime;
 
-	public TempBuyFreeLiveTheoryCourse(Integer userId) {
+	public TempBuyFreeLiveTheoryCourse(Integer userId,String liveId,Integer liveGoodsId) {
 		this.userId = userId;
+		this.liveId = liveId;
+		this.liveGoodsId = liveGoodsId;
+	}
+
+	public String getLiveId() {
+		return liveId;
+	}
+
+	public void setLiveId(String liveId) {
+		this.liveId = liveId;
+	}
+
+	public Integer getLiveGoodsId() {
+		return liveGoodsId;
+	}
+
+	public void setLiveGoodsId(Integer liveGoodsId) {
+		this.liveGoodsId = liveGoodsId;
 	}
 
 	public void setId(Integer id){

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

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

+ 4 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -276,8 +276,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             //扣减库存
             liveGoodsService.reduceGoodsStock(memberPayParamDto.getLiveGoodsId(),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());
+            StringBuffer sb = new StringBuffer(RedisKeyConstant.LIVE_GOODS_ZERO_CACHE_KEY).append(memberPayParamDto.getLiveGoodsId());
             RBucket<List<Integer>> bucket = redissonClient.getBucket(sb.toString());
             List<Integer> list = bucket.get();
             if(CollectionUtils.isEmpty(list)){
@@ -293,7 +292,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 //                throw new BizException("免费直播课已达到领取次数上限");
 //            }
             //保存购买记录
-            tempBuyFreeLiveTheoryCourseDao.insert(new TempBuyFreeLiveTheoryCourse(sysUser.getId()));
+            tempBuyFreeLiveTheoryCourseDao.insert(
+                    new TempBuyFreeLiveTheoryCourse(sysUser.getId(),memberPayParamDto.getLiveId(),memberPayParamDto.getLiveGoodsId()));
             //扣减库存
             liveGoodsService.reduceGoodsStock(memberPayParamDto.getLiveGoodsId(),memberPayParamDto.getLiveId());
             list.add(sysUser.getId());
@@ -345,8 +345,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 }
             }
         } 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());
+            StringBuffer sb = new StringBuffer(RedisKeyConstant.LIVE_GOODS_ZERO_CACHE_KEY).append(memberPayParamDto.getLiveGoodsId());
             RBucket<List<Integer>> bucket = redissonClient.getBucket(sb.toString());
             List<Integer> list = bucket.get();
             if(CollectionUtils.isEmpty(list)){

+ 12 - 3
mec-biz/src/main/resources/config/mybatis/TempBuyFreeLiveTheoryCourseMapper.xml

@@ -9,6 +9,8 @@
 	<resultMap type="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse" id="TempBuyFreeLiveTheoryCourse">
 		<result column="id_" property="id" />
 		<result column="user_id_" property="userId" />
+		<result column="live_id_" property="liveId" />
+		<result column="live_goods_id_" property="liveGoodsId" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>
@@ -25,17 +27,24 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO temp_buy_free_live_theory_course (user_id_,create_time_,update_time_) VALUES(#{userId},NOW(),NOW())
+		INSERT INTO temp_buy_free_live_theory_course (user_id_,live_id_,live_goods_id_,create_time_,update_time_)
+		VALUES(#{userId},#{liveId},#{liveGoodsId},NOW(),NOW())
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse">
 		UPDATE temp_buy_free_live_theory_course <set>
+		<if test="liveGoodsId != null">
+			live_goods_id_ = #{liveGoodsId},
+		</if>
+		<if test="liveId != null">
+			live_id_ = #{liveId},
+		</if>
 		<if test="userId != null">
-		user_id_ = #{userId},
+			user_id_ = #{userId},
 		</if>
 		<if test="updateTime != null">
-		update_time_ = #{updateTime},
+			update_time_ = #{updateTime},
 		</if>
 		</set> WHERE id_ = #{id}
 	</update>