|
@@ -3,7 +3,6 @@ package com.tzld.piaoquan.recommend.server.service.recall.strategy;
|
|
|
import com.tzld.piaoquan.recommend.server.model.Video;
|
|
import com.tzld.piaoquan.recommend.server.model.Video;
|
|
|
import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
|
|
import com.tzld.piaoquan.recommend.server.service.recall.RecallParam;
|
|
|
import com.tzld.piaoquan.recommend.server.service.recall.RecallStrategy;
|
|
import com.tzld.piaoquan.recommend.server.service.recall.RecallStrategy;
|
|
|
-import com.tzld.piaoquan.recommend.server.util.DateUtils;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.math.NumberUtils;
|
|
import org.apache.commons.lang.math.NumberUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -28,16 +27,17 @@ public class AppTypeSpecialRecallStrategy implements RecallStrategy {
|
|
|
|
|
|
|
|
public static final String LAST_VIDEO_KEY_FORMAT = "recall:apptype:last:special:%s:%s";
|
|
public static final String LAST_VIDEO_KEY_FORMAT = "recall:apptype:last:special:%s:%s";
|
|
|
public static final String PUSH_FROM = "special_videos";
|
|
public static final String PUSH_FROM = "special_videos";
|
|
|
- public static final String RECALL_KEY = "recall:apptype:specil:items:2";
|
|
|
|
|
|
|
+ public static final String RECALL_KEY_FORMAT = "recall:apptype:specil:items:%s";
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<Video> recall(RecallParam param) {
|
|
public List<Video> recall(RecallParam param) {
|
|
|
|
|
|
|
|
- String recallKey = String.format(LAST_VIDEO_KEY_FORMAT, param.getAppType(), param.getVideoId());
|
|
|
|
|
- String value = redisTemplate.opsForValue().get(recallKey);
|
|
|
|
|
|
|
+ String lastVideoRedisKey = String.format(LAST_VIDEO_KEY_FORMAT, param.getAppType(), param.getVideoId());
|
|
|
|
|
+ String recallKey = String.format(RECALL_KEY_FORMAT, param.getAppType());
|
|
|
|
|
+ String value = redisTemplate.opsForValue().get(lastVideoRedisKey);
|
|
|
Long idx = 0L;
|
|
Long idx = 0L;
|
|
|
if (StringUtils.isNotBlank(value)) {
|
|
if (StringUtils.isNotBlank(value)) {
|
|
|
- idx = redisTemplate.opsForZSet().reverseRank(RECALL_KEY, value);
|
|
|
|
|
|
|
+ idx = redisTemplate.opsForZSet().reverseRank(recallKey, value);
|
|
|
if (idx == null) {
|
|
if (idx == null) {
|
|
|
idx = 0L;
|
|
idx = 0L;
|
|
|
} else {
|
|
} else {
|
|
@@ -53,7 +53,7 @@ public class AppTypeSpecialRecallStrategy implements RecallStrategy {
|
|
|
if (freq > 2) {
|
|
if (freq > 2) {
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
- Set<ZSetOperations.TypedTuple<String>> data = redisTemplate.opsForZSet().reverseRangeWithScores(RECALL_KEY, idx, idx + getSize - 1);
|
|
|
|
|
|
|
+ Set<ZSetOperations.TypedTuple<String>> data = redisTemplate.opsForZSet().reverseRangeWithScores(recallKey, idx, idx + getSize - 1);
|
|
|
if (CollectionUtils.isEmpty(data)) {
|
|
if (CollectionUtils.isEmpty(data)) {
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
@@ -63,7 +63,7 @@ public class AppTypeSpecialRecallStrategy implements RecallStrategy {
|
|
|
video.setVideoId(NumberUtils.toLong(t.getValue(), 0L));
|
|
video.setVideoId(NumberUtils.toLong(t.getValue(), 0L));
|
|
|
video.setRovScore(t.getScore());
|
|
video.setRovScore(t.getScore());
|
|
|
video.setPushFrom(PUSH_FROM);
|
|
video.setPushFrom(PUSH_FROM);
|
|
|
- video.setLastVideoKey(recallKey);
|
|
|
|
|
|
|
+ video.setLastVideoKey(lastVideoRedisKey);
|
|
|
results.add(video);
|
|
results.add(video);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|