|
@@ -65,7 +65,28 @@ public class RankService {
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
+
|
|
|
+ if (param.getAppType() == AppTypeEnum.PIAO_QUAN_MEIHAO_ZHUFU.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);
|
|
|
+ return new RankResult(results);
|
|
|
+ }
|
|
|
|
|
|
+
|
|
|
List<Video> rovRecallRank = mergeAndRankRovRecall(param);
|
|
|
|
|
|
List<Video> flowPoolRank = mergeAndRankFlowPoolRecall(param);
|
|
@@ -90,14 +111,7 @@ public class RankService {
|
|
|
public List<Video> mergeAndRankRovRecall(RankParam param) {
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
return mergeAndRankRovRecallOld(param);
|
|
|
}
|
|
|
|