|
|
@@ -1,11 +1,14 @@
|
|
|
package cn.reghao.tnb.content.app.vod.service.impl;
|
|
|
|
|
|
+import cn.reghao.jutil.jdk.result.Result;
|
|
|
import cn.reghao.jutil.web.ServletUtil;
|
|
|
import cn.reghao.jutil.web.WebResult;
|
|
|
+import cn.reghao.tnb.common.auth.UserContext;
|
|
|
import cn.reghao.tnb.common.db.PageScroll;
|
|
|
import cn.reghao.tnb.content.api.dto.VideoCard;
|
|
|
import cn.reghao.tnb.content.api.dto.VideoPostCard;
|
|
|
import cn.reghao.tnb.content.app.util.redis.ds.RedisList;
|
|
|
+import cn.reghao.tnb.content.app.util.redis.ds.RedisOps;
|
|
|
import cn.reghao.tnb.content.app.vod.db.mapper.VideoPostMapper;
|
|
|
import cn.reghao.tnb.content.app.vod.model.po.VideoPost;
|
|
|
import cn.reghao.tnb.content.app.vod.model.query.VideoQuery;
|
|
|
@@ -43,16 +46,18 @@ public class RecommendServiceImpl implements RecommendService {
|
|
|
private final RedisSet redisSet;
|
|
|
private final RedisList redisList;
|
|
|
private final RcmdProducer rcmdProducer;
|
|
|
+ private RedisOps redisOps;
|
|
|
|
|
|
public RecommendServiceImpl(ContentPermission contentPermission, VideoPostMapper videoPostMapper,
|
|
|
VideoPostQuery videoPostQuery, RedisSet redisSet, RedisList redisList,
|
|
|
- RcmdProducer rcmdProducer) {
|
|
|
+ RcmdProducer rcmdProducer, RedisOps redisOps) {
|
|
|
this.contentPermission = contentPermission;
|
|
|
this.videoPostMapper = videoPostMapper;
|
|
|
this.videoPostQuery = videoPostQuery;
|
|
|
this.redisSet = redisSet;
|
|
|
this.redisList = redisList;
|
|
|
this.rcmdProducer = rcmdProducer;
|
|
|
+ this.redisOps = redisOps;
|
|
|
}
|
|
|
|
|
|
public List<VideoCard> getRecommendVideos(long userId, String nextId) {
|
|
|
@@ -152,4 +157,26 @@ public class RecommendServiceImpl implements RecommendService {
|
|
|
public List<BannerVideoVO> getBannerVideos() {
|
|
|
return videoPostQuery.getBannerVideos();
|
|
|
}
|
|
|
+
|
|
|
+ public Result setRecommendMode(boolean mode) {
|
|
|
+ long loginUser = UserContext.getUserId();
|
|
|
+ boolean vip = userService.isVip(loginUser);
|
|
|
+ if (mode && !vip) {
|
|
|
+ return Result.fail("此功能仅对 VIP 用户开放");
|
|
|
+ }
|
|
|
+
|
|
|
+ userService.setRecommendMode(loginUser, mode);
|
|
|
+ if (getRecommendMode()) {
|
|
|
+ String itemsKey = RedisKeys.getUserItemKey(loginUser);
|
|
|
+ redisOps.del(itemsKey);
|
|
|
+ }
|
|
|
+
|
|
|
+ return Result.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean getRecommendMode() {
|
|
|
+ long userId1 = UserContext.getUserId();
|
|
|
+ int mode = userService.getRecommendMode(userId1);
|
|
|
+ return mode == 1;
|
|
|
+ }
|
|
|
}
|