Jelajahi Sumber

feat:添加小程序安全视频列表

zhaohaipeng 6 hari lalu
induk
melakukan
f78210eb22

+ 4 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -176,15 +176,15 @@ public class RecommendService {
                 return specialMidRecommend(request);
             }
             Stopwatch stopwatch = Stopwatch.createStarted();
+            if (CollectionUtils.isNotEmpty(specialAppTypeSet) && specialAppTypeSet.contains(request.getAppType())) {
+                return specialAppTypeRecommend(request);
+            }
+
             if (StringUtils.isNotBlank(request.getMid())
                     && redisTemplate.opsForSet().isMember("special:mid", request.getMid())) {
                 return specialMidRecommend(request);
             }
 
-            if (CollectionUtils.isNotEmpty(specialAppTypeSet) && specialAppTypeSet.contains(request.getAppType())) {
-                return specialAppTypeRecommend(request);
-            }
-
             stopwatch.reset().start();
             RecommendParam param = genRecommendParam(request, recommendType);
             long genRecommendParamTime = stopwatch.stop().elapsed(TimeUnit.MILLISECONDS);

+ 10 - 10
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankService.java

@@ -38,6 +38,16 @@ public abstract class RankService {
             return null;
         }
 
+        if (param.isAppTypeSpecialRecommend()) {
+            Optional<RecallResult.RecallData> data = param.getRecallResult().getData().stream()
+                    .filter(d -> d.getPushFrom().equals(AppTypeSpecialRecallStrategy.PUSH_FROM))
+                    .findFirst();
+            if (data.isPresent() && CollectionUtils.isNotEmpty(data.get().getVideos())) {
+                return new RankResult(data.get().getVideos());
+            }
+            return null;
+        }
+
         if (2 == param.getRecommendType()) {
             tagDuplicateVideos(param);
             List<Video> rovRecallRank = mergeAndRankRovRecall(param);
@@ -55,16 +65,6 @@ public abstract class RankService {
             return null;
         }
 
-        if (param.isAppTypeSpecialRecommend()) {
-            Optional<RecallResult.RecallData> data = param.getRecallResult().getData().stream()
-                    .filter(d -> d.getPushFrom().equals(AppTypeSpecialRecallStrategy.PUSH_FROM))
-                    .findFirst();
-            if (data.isPresent() && CollectionUtils.isNotEmpty(data.get().getVideos())) {
-                return new RankResult(data.get().getVideos());
-            }
-            return null;
-        }
-
         // 1 通过 apptype 判断该小程序走怎样的排序策略。
         if (param.getAppType() == AppTypeEnum.PIAO_QUAN_MEIHAO_ZHUFU.getCode() && Objects.equals(param.getCategoryId(), 100)) {
             List<Video> results = new ArrayList<>(extractAndSort(param, BlessRecallStrategy.PUSH_FORM));

+ 5 - 4
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

@@ -89,6 +89,11 @@ public class RecallService implements ApplicationContextAware {
 
     private List<RecallStrategy> getRecallStrategy(RecallParam param) {
         List<RecallStrategy> strategies = new ArrayList<>();
+        if (param.isAppTypeSpecialRecommend()){
+            strategies.add(strategyMap.get(AppTypeSpecialRecallStrategy.class.getSimpleName()));
+            return strategies;
+        }
+
         if (2 == param.getRecommendType()) {
             strategies.add(strategyMap.get(HotReturnUvRecallStrategy.class.getSimpleName()));
             return strategies;
@@ -97,10 +102,6 @@ public class RecallService implements ApplicationContextAware {
             strategies.add(strategyMap.get(SpecialRecallStrategy.class.getSimpleName()));
             return strategies;
         }
-        if (param.isAppTypeSpecialRecommend()){
-            strategies.add(strategyMap.get(AppTypeSpecialRecallStrategy.class.getSimpleName()));
-            return strategies;
-        }
 
         //1:通过“产品”控制“召回子策略”. 票圈美好祝福与内部tab只走祝福召回。APP只走固定列表。特殊配置的app只有固定召回列表。
         if (this.matchSpecialApp(param.getAppType())) {