wangyunpeng hai 10 horas
pai
achega
ee4eb6e1d5

+ 16 - 21
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/rank/RankStrategy.java

@@ -30,29 +30,11 @@ public interface RankStrategy {
         for (int i = 0; i < result.size(); i++) {
             if (TitleSimilarCheckUtil.isDuplicateContent(result.get(i).getTitle(), titles, TitleSimilarCheckUtil.SIMILARITY_THRESHOLD)) {
                 if (i == 0) {
-                    for (Content content : contentMap.get(publishPool[0])) {
-                        if (!TitleSimilarCheckUtil.isDuplicateContent(content.getTitle(), titles, TitleSimilarCheckUtil.SIMILARITY_THRESHOLD)) {
-                            result.set(i, content);
-                            titles.add(content.getTitle());
-                            break;
-                        }
-                    }
+                    replaceDuplicate(result, i, titles, contentMap.get(publishPool[0]));
                 } else if (i == 1) {
-                    for (Content content : contentMap.get(publishPool[1])) {
-                        if (!TitleSimilarCheckUtil.isDuplicateContent(content.getTitle(), titles, TitleSimilarCheckUtil.SIMILARITY_THRESHOLD)) {
-                            result.set(i, content);
-                            titles.add(content.getTitle());
-                            break;
-                        }
-                    }
+                    replaceDuplicate(result, i, titles, contentMap.get(publishPool[1]));
                 } else {
-                    for (Content content : contentMap.get(publishPool[2])) {
-                        if (!TitleSimilarCheckUtil.isDuplicateContent(content.getTitle(), titles, TitleSimilarCheckUtil.SIMILARITY_THRESHOLD)) {
-                            result.set(i, content);
-                            titles.add(content.getTitle());
-                            break;
-                        }
-                    }
+                    replaceDuplicate(result, i, titles, contentMap.get(publishPool[2]));
                 }
             } else {
                 titles.add(result.get(i).getTitle());
@@ -60,6 +42,19 @@ public interface RankStrategy {
         }
     }
 
+    static void replaceDuplicate(List<Content> result, int index, List<String> titles, List<Content> pool) {
+        if (CollectionUtils.isEmpty(pool)) {
+            return;
+        }
+        for (Content content : pool) {
+            if (!TitleSimilarCheckUtil.isDuplicateContent(content.getTitle(), titles, TitleSimilarCheckUtil.SIMILARITY_THRESHOLD)) {
+                result.set(index, content);
+                titles.add(content.getTitle());
+                break;
+            }
+        }
+    }
+
     public static ScoreParam convertToScoreParam(RankParam param) {
         ScoreParam scoreParam = new ScoreParam();
         scoreParam.setGhId(param.getGhId());