Kaynağa Gözat

Merge branch 'wyp/1121-roosSrouceId' of Server/long-article-recommend into master

wangyunpeng 7 ay önce
ebeveyn
işleme
1465996631

+ 2 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/repository/crawler/LongArticlesRootSourceIdRepository.java

@@ -10,4 +10,6 @@ import java.util.List;
 public interface LongArticlesRootSourceIdRepository extends JpaRepository<LongArticlesRootSourceId, String> {
 
     List<LongArticlesRootSourceId> getByRootSourceIdIn(List<String> rootSourceIds);
+
+    int countByTraceId(String traceId);
 }

+ 7 - 3
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/XxlJobService.java

@@ -180,7 +180,7 @@ public class XxlJobService {
                     }
                 }
             }
-            saveLongArticlesRootSourceId(saveList);
+            saveLongArticlesRootSourceId(longArticlesVideo.getTraceId(), saveList);
         } catch (DuplicateKeyException e) {
             log.error("Error processCrawlerEachData: {}", JSONObject.toJSONString(longArticlesVideo), e);
             String errMsg = e.getMessage().substring(0, e.getMessage().indexOf("### The error"));
@@ -191,8 +191,12 @@ public class XxlJobService {
         }
     }
 
-    private void saveLongArticlesRootSourceId(List<LongArticlesRootSourceId> saveList) {
+    private void saveLongArticlesRootSourceId(String traceId, List<LongArticlesRootSourceId> saveList) {
         if (CollectionUtil.isNotEmpty(saveList)) {
+            int count = longArticlesRootSourceIdRepository.countByTraceId(traceId);
+            if (count > 0) {
+                return;
+            }
             List<String> rootSourceIds = saveList.stream().map(LongArticlesRootSourceId::getRootSourceId).distinct().collect(Collectors.toList());
             List<LongArticlesRootSourceId> existList = longArticlesRootSourceIdRepository.getByRootSourceIdIn(rootSourceIds);
             for (LongArticlesRootSourceId existItem : existList) {
@@ -250,7 +254,7 @@ public class XxlJobService {
                 saveItem.setVideoId(jsonNode.getLong("videoId"));
                 saveList.add(saveItem);
             }
-            saveLongArticlesRootSourceId(saveList);
+            saveLongArticlesRootSourceId(longArticlesMatchVideo.getTraceId(), saveList);
         } catch (DuplicateKeyException e) {
             log.error("Error processArticleEachData: {}", JSONObject.toJSONString(longArticlesMatchVideo), e);
             String errMsg = e.getMessage().substring(0, e.getMessage().indexOf("### The error"));