Переглянути джерело

文章已晋级过滤修改

wangyunpeng 1 місяць тому
батько
коміт
cadc5b59fc

+ 11 - 3
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/filter/strategy/ArticlePromotionStrategy.java

@@ -29,9 +29,11 @@ public class ArticlePromotionStrategy implements FilterStrategy {
         List<String> result = new ArrayList<>();
         List<Content> contents = param.getContents();
         List<Content> filterContents = new ArrayList<>();
-        List<String> channelContentIds = contents.stream().map(Content::getCrawlerChannelContentId).collect(Collectors.toList());
-        List<ArticlePoolPromotionSource> promotionSourceList = repository.getByChannelContentIdInAndStatusAndDeleted(channelContentIds, 1, 0);
-        Map<String, ArticlePoolPromotionSource> promotionSourceMap = promotionSourceList.stream().collect(Collectors.toMap(ArticlePoolPromotionSource::getChannelContentId, a -> a));
+        List<ArticlePoolPromotionSource> promotionSourceList = repository.getByStatusAndDeleted(1, 0);
+        Map<String, ArticlePoolPromotionSource> promotionSourceMap = promotionSourceList.stream()
+                .collect(Collectors.toMap(ArticlePoolPromotionSource::getChannelContentId, a -> a));
+        Map<String, ArticlePoolPromotionSource> promotionTitleMap = promotionSourceList.stream()
+                .collect(Collectors.toMap(ArticlePoolPromotionSource::getChannelContentId, a -> a, (a, b) -> a));
         for (Content content : contents) {
             if (promotionSourceMap.containsKey(content.getCrawlerChannelContentId())) {
                 ArticlePoolPromotionSource promotionSource = promotionSourceMap.get(content.getCrawlerChannelContentId());
@@ -39,6 +41,12 @@ public class ArticlePromotionStrategy implements FilterStrategy {
                     content.setFilterReason("内容已晋级过滤");
                     filterContents.add(content);
                 }
+            } else if (promotionTitleMap.containsKey(content.getTitle())) {
+                ArticlePoolPromotionSource promotionSource = promotionTitleMap.get(content.getTitle());
+                if (!promotionSource.getLevel().equals(content.getContentPoolType())) {
+                    content.setFilterReason("内容已晋级过滤");
+                    filterContents.add(content);
+                }
             }
             if (!StringUtils.hasText(content.getFilterReason())) {
                 result.add(content.getId());