|
|
@@ -26,24 +26,18 @@ public class AppTypeSpecialRecallStrategy implements RecallStrategy {
|
|
|
@Qualifier("redisTemplate")
|
|
|
private RedisTemplate<String, String> redisTemplate;
|
|
|
|
|
|
- public static final String LAST_VIDEO_KEY_FORMAT = "recall:apptype:special:%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 RECALL_KEY = "recall:apptype:specil:items:2";
|
|
|
|
|
|
@Override
|
|
|
public List<Video> recall(RecallParam param) {
|
|
|
- String keyNamePrefix = "apptype:special:videos:item:";
|
|
|
- String dateStr = DateUtils.getCurrentDateStr("yyyyMMdd");
|
|
|
- String specialKeyName = keyNamePrefix + dateStr;
|
|
|
- if (!redisTemplate.hasKey(specialKeyName)) {
|
|
|
- dateStr = DateUtils.getBeforeDaysDateStr("yyyyMMdd", 1);
|
|
|
- specialKeyName = keyNamePrefix + dateStr;
|
|
|
- }
|
|
|
|
|
|
- String recallKey = String.format(LAST_VIDEO_KEY_FORMAT, param.getAppType());
|
|
|
+ String recallKey = String.format(LAST_VIDEO_KEY_FORMAT, param.getAppType(), param.getVideoId());
|
|
|
String value = redisTemplate.opsForValue().get(recallKey);
|
|
|
Long idx = 0L;
|
|
|
if (StringUtils.isNotBlank(value)) {
|
|
|
- idx = redisTemplate.opsForZSet().reverseRank(specialKeyName, value);
|
|
|
+ idx = redisTemplate.opsForZSet().reverseRank(RECALL_KEY, value);
|
|
|
if (idx == null) {
|
|
|
idx = 0L;
|
|
|
} else {
|
|
|
@@ -59,7 +53,7 @@ public class AppTypeSpecialRecallStrategy implements RecallStrategy {
|
|
|
if (freq > 2) {
|
|
|
break;
|
|
|
}
|
|
|
- Set<ZSetOperations.TypedTuple<String>> data = redisTemplate.opsForZSet().reverseRangeWithScores(specialKeyName, idx, idx + getSize - 1);
|
|
|
+ Set<ZSetOperations.TypedTuple<String>> data = redisTemplate.opsForZSet().reverseRangeWithScores(RECALL_KEY, idx, idx + getSize - 1);
|
|
|
if (CollectionUtils.isEmpty(data)) {
|
|
|
break;
|
|
|
}
|