|
@@ -69,6 +69,17 @@ public class RankService {
|
|
|
if (param.getAppType() == AppTypeEnum.PIAO_QUAN_ZHU_FU.getCode()){
|
|
|
List<Video> results = new ArrayList<>();
|
|
|
results.addAll(extractAndSort(param, FestivalRecallStrategyV1.PUSH_FORM));
|
|
|
+ List<String> videoIdKeys = results.stream()
|
|
|
+ .map(t -> param.getRankKeyPrefix() + t.getVideoId())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<String> videoScores = redisTemplate.opsForValue().multiGet(videoIdKeys);
|
|
|
+ if (CollectionUtils.isNotEmpty(videoScores)
|
|
|
+ && videoScores.size() == results.size()) {
|
|
|
+ for (int i = 0; i < videoScores.size(); i++) {
|
|
|
+ results.get(i).setSortScore(NumberUtils.toDouble(videoScores.get(i), 0.0));
|
|
|
+ }
|
|
|
+ Collections.sort(results, Comparator.comparingDouble(o -> -o.getSortScore()));
|
|
|
+ }
|
|
|
results.addAll(extractAndSort(param, RegionRealtimeRecallStrategyV2.PUSH_FORM));
|
|
|
results.addAll(extractAndSort(param, RegionRealtimeRecallStrategyV3.PUSH_FORM));
|
|
|
removeDuplicate(results);
|