浏览代码

Merge branch 'wyp/0303-articleCategory' of Server/long-article-recommend into master

wangyunpeng 4 月之前
父节点
当前提交
8619c56c66

+ 29 - 4
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/ArticleCategoryService.java

@@ -26,6 +26,7 @@ import com.tzld.longarticle.recommend.server.repository.longArticle.ArticleCrawl
 import com.tzld.longarticle.recommend.server.repository.longArticle.ArticlePoolPromotionSourceRepository;
 import com.tzld.longarticle.recommend.server.util.DateUtils;
 import com.tzld.longarticle.recommend.server.util.Md5Util;
+import com.tzld.longarticle.recommend.server.util.TitleSimilarCheckUtil;
 import com.tzld.longarticle.recommend.server.util.page.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -119,8 +120,20 @@ public class ArticleCategoryService {
                     articleCategory.setCategory(obj.getString(articleCategory.getTitle()));
                     articleCategory.setStatus(ArticleCategoryStatusEnum.SUCCESS.getCode());
                 } else {
-                    articleCategory.setStatus(ArticleCategoryStatusEnum.FAIL.getCode());
-                    articleCategory.setFailReason(kimiResult.getFailReason());
+                    if (Objects.nonNull(obj)) {
+                        for (Map.Entry<String, Object> entry : obj.entrySet()) {
+                            if (TitleSimilarCheckUtil.isSimilar(articleCategory.getTitle(), entry.getKey(),
+                                    TitleSimilarCheckUtil.ARTICLE_PROMOTION_THRESHOLD)) {
+                                articleCategory.setCategory(obj.getString(entry.getKey()));
+                                articleCategory.setStatus(ArticleCategoryStatusEnum.SUCCESS.getCode());
+                                break;
+                            }
+                        }
+                    }
+                    if (!StringUtils.hasText(articleCategory.getCategory())) {
+                        articleCategory.setStatus(ArticleCategoryStatusEnum.FAIL.getCode());
+                        articleCategory.setFailReason(kimiResult.getFailReason());
+                    }
                 }
                 articleCategoryRepository.save(articleCategory);
             }
@@ -312,8 +325,20 @@ public class ArticleCategoryService {
                 articleCategory.setStatus(ArticleCategoryStatusEnum.SUCCESS.getCode());
                 articleCategory.setFailReason(null);
             } else {
-                articleCategory.setStatus(ArticleCategoryStatusEnum.FAIL.getCode());
-                articleCategory.setFailReason(kimiResult.getFailReason());
+                if (Objects.nonNull(obj)) {
+                    for (Map.Entry<String, Object> entry : obj.entrySet()) {
+                        if (TitleSimilarCheckUtil.isSimilar(articleCategory.getTitle(), entry.getKey(),
+                                TitleSimilarCheckUtil.ARTICLE_PROMOTION_THRESHOLD)) {
+                            articleCategory.setCategory(obj.getString(entry.getKey()));
+                            articleCategory.setStatus(ArticleCategoryStatusEnum.SUCCESS.getCode());
+                            break;
+                        }
+                    }
+                }
+                if (!StringUtils.hasText(articleCategory.getCategory())) {
+                    articleCategory.setStatus(ArticleCategoryStatusEnum.FAIL.getCode());
+                    articleCategory.setFailReason(kimiResult.getFailReason());
+                }
             }
             articleCategoryRepository.save(articleCategory);
         }