|  | @@ -65,7 +65,28 @@ public class RankService {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              return null;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        // 1 通过 apptype 判断该小程序走怎样的排序策略。
 | 
	
		
			
				|  |  | +        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);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        // 2 正常走分发 排序+冷启动
 | 
	
		
			
				|  |  |          List<Video> rovRecallRank = mergeAndRankRovRecall(param);
 | 
	
		
			
				|  |  |          // log.info("mergeAndRankRovRecall rovRecallRank={}", JSONUtils.toJson(rovRecallRank));
 | 
	
		
			
				|  |  |          List<Video> flowPoolRank = mergeAndRankFlowPoolRecall(param);
 | 
	
	
		
			
				|  | @@ -90,14 +111,7 @@ public class RankService {
 | 
	
		
			
				|  |  |      public List<Video> mergeAndRankRovRecall(RankParam param) {
 | 
	
		
			
				|  |  |          // TODO ab test
 | 
	
		
			
				|  |  |          // TODO 抽象成Strategy
 | 
	
		
			
				|  |  | -//        boolean hitTest = newRankSwitch
 | 
	
		
			
				|  |  | -//                || CommonCollectionUtils.contains(param.getAbExpCodes(), newRankAbExpCode);
 | 
	
		
			
				|  |  | -//        if (hitTest) {
 | 
	
		
			
				|  |  | -//            return mergeAndRankRovRecallNew(param);
 | 
	
		
			
				|  |  | -//        } else {
 | 
	
		
			
				|  |  | -//            return mergeAndRankRovRecallOld(param);
 | 
	
		
			
				|  |  | -//        }
 | 
	
		
			
				|  |  | -        // 研发重写了代码,直接走新逻辑
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          return mergeAndRankRovRecallOld(param);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |