wangyunpeng 3 weken geleden
bovenliggende
commit
11caa11c0c

+ 2 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mapper/longArticle/LongArticleBaseMapper.java

@@ -93,4 +93,6 @@ public interface LongArticleBaseMapper {
     VideoEndScreenTransformationTask getVideoEndScreenTransformationTask(Long videoOriginId);
 
     void saveVideoEndScreenTransformationTask(VideoEndScreenTransformationTask task);
+
+    void updateUnsafeStatusByTitle(String title, Integer status);
 }

+ 1 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/dto/LongArticlesMatchVideoResponse.java

@@ -7,7 +7,7 @@ public class LongArticlesMatchVideoResponse {
     private String uid;
     private Object source;
     private String kimiTitle;
-    private long videoID;
+    private Long videoID;
     private String videoCover;
     private String videoPath;
     private String videoOSS;

+ 4 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/repository/longArticle/ArticleCategoryRepository.java

@@ -22,4 +22,8 @@ public interface ArticleCategoryRepository extends JpaRepository<ArticleCategory
     List<ArticleCategory> getAllByChannelContentIdInAndVersion(List<String> channelContentIds, Integer version);
 
     List<ArticleCategory> getByStatusAndRetryTimesLessThanAndVersion(Integer status, Integer retryTimes, Integer version);
+
+    List<ArticleCategory> getByTitleInAndVersion(List<String> titles, Integer version);
+
+    List<ArticleCategory> getByStatusAndRetryTimesLessThan(Integer status, Integer retryTimes);
 }

+ 4 - 0
long-article-recommend-service/src/main/resources/mapper/longArticle/LongArticleBaseMapper.xml

@@ -349,4 +349,8 @@
         (#{videoOriginId}, #{title}, #{ossPath})
     </insert>
 
+    <update id="updateUnsafeStatusByTitle">
+        update article_unsafe_title set status = #{status} where title = #{title}
+    </update>
+
 </mapper>

+ 89 - 6
long-article-recommend-service/src/test/java/com/tzld/longarticle/recommend/server/ArticleVideoAuditTest.java

@@ -4,17 +4,27 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 import com.tzld.longarticle.recommend.server.common.enums.recommend.ArticleCategoryStatusEnum;
+import com.tzld.longarticle.recommend.server.mapper.aigc.PublishContentMapper;
 import com.tzld.longarticle.recommend.server.mapper.longArticle.ArticleAuditMapper;
 import com.tzld.longarticle.recommend.server.mapper.longArticle.ArticleCategoryMapper;
+import com.tzld.longarticle.recommend.server.mapper.longArticle.LongArticleBaseMapper;
+import com.tzld.longarticle.recommend.server.model.dto.PublishContentDTO;
 import com.tzld.longarticle.recommend.server.model.dto.kimi.KimiResult;
 import com.tzld.longarticle.recommend.server.model.entity.aigc.ProducePlan;
 import com.tzld.longarticle.recommend.server.model.entity.aigc.ProducePlanExeRecord;
+import com.tzld.longarticle.recommend.server.model.entity.aigc.PublishAccount;
 import com.tzld.longarticle.recommend.server.model.entity.longArticle.ArticleCategory;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.ArticleUnsafeTitle;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.IllegalArticles;
 import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticleTitleAudit;
+import com.tzld.longarticle.recommend.server.model.param.PublishContentParam;
 import com.tzld.longarticle.recommend.server.remote.DeepSeekApiService;
 import com.tzld.longarticle.recommend.server.repository.aigc.ProducePlanExeRecordRepository;
 import com.tzld.longarticle.recommend.server.repository.aigc.ProducePlanRepository;
+import com.tzld.longarticle.recommend.server.repository.aigc.PublishAccountRepository;
 import com.tzld.longarticle.recommend.server.repository.longArticle.ArticleCategoryRepository;
+import com.tzld.longarticle.recommend.server.repository.longArticle.ArticleUnsafeTitleRepository;
+import com.tzld.longarticle.recommend.server.repository.longArticle.IllegalArticlesRepository;
 import com.tzld.longarticle.recommend.server.repository.longArticle.LongArticleTitleAuditRepository;
 import com.tzld.longarticle.recommend.server.util.TitleSimilarCheckUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -33,10 +43,7 @@ import org.springframework.util.StringUtils;
 import javax.annotation.Resource;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @SpringBootTest(classes = Application.class)
@@ -57,6 +64,16 @@ public class ArticleVideoAuditTest {
     ArticleCategoryRepository articleCategoryRepository;
     @Autowired
     DeepSeekApiService deepSeekApiService;
+    @Autowired
+    ArticleUnsafeTitleRepository articleUnsafeTitleRepository;
+    @Autowired
+    IllegalArticlesRepository illegalArticlesRepository;
+    @Autowired
+    PublishAccountRepository publishAccountRepository;
+    @Autowired
+    PublishContentMapper publishContentMapper;
+    @Autowired
+    LongArticleBaseMapper longArticleBaseMapper;
 
     @Value("${kimiCategoryPrompt:}")
     private String kimiCategoryPrompt;
@@ -193,8 +210,8 @@ public class ArticleVideoAuditTest {
         List<ArticleCategory> newList = articleCategoryRepository.getByStatusAndVersion(
                 ArticleCategoryStatusEnum.SUCCESS.getCode(), 2);
         List<String> newIds = newList.stream().map(ArticleCategory::getProduceContentId)
-               .filter(o ->!o.startsWith("video"))
-               .collect(Collectors.toList());
+                .filter(o -> !o.startsWith("video"))
+                .collect(Collectors.toList());
         List<ArticleCategory> saveList = new ArrayList<>();
         for (String oldId : oldIds) {
             if (newIds.contains(oldId)) {
@@ -216,4 +233,70 @@ public class ArticleVideoAuditTest {
             articleCategoryMapper.batchInsertArticleCategory(saveList);
         }
     }
+
+    @Test
+    public void unsafeReAudit() {
+        List<ArticleUnsafeTitle> unsafeTitleList = articleUnsafeTitleRepository.getByStatus(1);
+        List<IllegalArticles> illegalArticlesList = illegalArticlesRepository.findAll();
+        Map<String, List<String>> illegalMap = illegalArticlesList.stream()
+                .collect(Collectors.groupingBy(IllegalArticles::getTitle, Collectors.mapping(IllegalArticles::getIllegalReason, Collectors.toList())));
+        unsafeTitleList = unsafeTitleList.stream()
+                .filter(o -> {
+                    List<String> illegalReasons = illegalMap.get(o.getTitle());
+                    if (CollectionUtils.isNotEmpty(illegalReasons)) {
+                        for (String illegalReason : illegalReasons) {
+                            if (!illegalReason.contains("导流")) {
+                                return false;
+                            }
+                        }
+                    }
+                    return true;
+                })
+                .filter(o -> o.getCreateTimestamp() < 1737302400000L)
+                .collect(Collectors.toList());
+        List<String> ghIds = unsafeTitleList.stream().map(ArticleUnsafeTitle::getGhId).distinct().collect(Collectors.toList());
+        // 获取发布账号
+        List<PublishAccount> publishAccountList = publishAccountRepository.getAllByGhIdIn(ghIds);
+        Map<String, PublishAccount> publishAccountMap = publishAccountList.stream().collect(Collectors.toMap(PublishAccount::getGhId, o -> o));
+        List<PublishContentParam> publishContentParamList = unsafeTitleList.stream().map(article -> {
+            PublishContentParam item = new PublishContentParam();
+            item.setTitle(article.getTitle());
+            PublishAccount account = publishAccountMap.get(article.getGhId());
+            if (Objects.nonNull(account)) {
+                item.setPublishAccountId(account.getId());
+                return item;
+            }
+            return null;
+        }).filter(Objects::nonNull).collect(Collectors.toList());
+        List<PublishContentDTO> publishContents = new ArrayList<>();
+        for (List<PublishContentParam> partitions : Lists.partition(publishContentParamList, 100)) {
+            publishContents.addAll(publishContentMapper.getPublishContentByTitle(partitions));
+        }
+        for (PublishContentDTO publishContent : publishContents) {
+            if (publishContent.getSourceType() != 1) {
+                continue;
+            }
+            String sourceId = publishContent.getSourceId();
+            LongArticleTitleAudit titleAudit = titleAuditRepository.getByContentId(sourceId);
+            if (Objects.nonNull(titleAudit)) {
+                if (titleAudit.getStatus() == 1) {
+                    longArticleBaseMapper.updateUnsafeStatusByTitle(publishContent.getTitle(), 0);
+                }
+//                titleAudit.setStatus(0);
+//                titleAuditRepository.save(titleAudit);
+//            } else {
+//                ProducePlanExeRecord exeRecord = exeRecordRepository.getByPlanExeId(sourceId);
+//                ProducePlan producePlan = producePlanRepository.getById(exeRecord.getPlanId());
+//                titleAudit = new LongArticleTitleAudit();
+//                titleAudit.setContentId(sourceId);
+//                titleAudit.setStatus(0);
+//                titleAudit.setFlowPoolLevel(producePlan.getPlanTag());
+//                titleAudit.setProducePlanId(producePlan.getId());
+//                titleAudit.setCreateTimestamp(System.currentTimeMillis());
+//                titleAuditRepository.save(titleAudit);
+            }
+
+        }
+    }
+
 }

File diff suppressed because it is too large
+ 21 - 3
long-article-recommend-service/src/test/java/com/tzld/longarticle/recommend/server/DataDashboardTest.java


Some files were not shown because too many files changed in this diff