ソースを参照

通过ossPath手动删除接口

wangyunpeng 6 ヶ月 前
コミット
eb4a81fac4
12 ファイル変更127 行追加21 行削除
  1. 38 0
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/common/enums/aigc/PublishContentStatusEnum.java
  2. 1 1
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mapper/crawler/CrawlerBaseMapper.java
  3. 1 1
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mapper/longArticle/LongArticleBaseMapper.java
  4. 0 14
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/dto/LongArticlesText.java
  5. 34 0
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/entity/longArticle/LongArticlesText.java
  6. 2 0
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/repository/longArticle/LongArticlesMatchVideoRepository.java
  7. 12 0
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/repository/longArticle/LongArticlesTextRepository.java
  8. 1 0
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/DataFlushService.java
  9. 30 3
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/ArticleAuditService.java
  10. 6 0
      long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/web/recommend/ArticleAuditController.java
  11. 1 1
      long-article-recommend-service/src/main/resources/mapper/crawler/CrawlerBaseMapper.xml
  12. 1 1
      long-article-recommend-service/src/main/resources/mapper/longArticle/LongArticleBaseMapper.xml

+ 38 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/common/enums/aigc/PublishContentStatusEnum.java

@@ -0,0 +1,38 @@
+package com.tzld.longarticle.recommend.server.common.enums.aigc;
+
+import lombok.Getter;
+
+import java.util.Objects;
+
+@Getter
+public enum PublishContentStatusEnum {
+    not_publish(0, "未发布"),
+    waiting_publish(1, "待发布"),
+    published(2, "已发布"),
+    no_publish(3, "不发布"),
+    publishing(4, "发布中"),
+    publish_fail(5, "发布失败"),
+    platformReview(6, "平台审核中"),
+    input_delete(7, "输入删除"),
+    input_deprecated(8, "输入废弃"),
+    other(999, "其他"),
+    ;
+
+    private final Integer val;
+    private final String description;
+
+    PublishContentStatusEnum(Integer val, String description) {
+        this.val = val;
+        this.description = description;
+    }
+
+    public static PublishContentStatusEnum from(Integer val) {
+        for (PublishContentStatusEnum statusEnum : PublishContentStatusEnum.values()) {
+            if (Objects.equals(statusEnum.val, val)) {
+                return statusEnum;
+            }
+        }
+        return other;
+    }
+
+}

+ 1 - 1
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mapper/crawler/CrawlerBaseMapper.java

@@ -2,7 +2,7 @@ package com.tzld.longarticle.recommend.server.mapper.crawler;
 
 import com.tzld.longarticle.recommend.server.model.dto.ArticleMatchVideos;
 import com.tzld.longarticle.recommend.server.model.dto.GetOffVideos;
-import com.tzld.longarticle.recommend.server.model.dto.LongArticlesText;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesText;
 import com.tzld.longarticle.recommend.server.model.dto.LongArticlesVideoDTO;
 import com.tzld.longarticle.recommend.server.model.entity.crawler.AccountAvgInfo;
 import com.tzld.longarticle.recommend.server.model.entity.crawler.AccountCorrelation;

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

@@ -3,7 +3,7 @@ package com.tzld.longarticle.recommend.server.mapper.longArticle;
 import com.tzld.longarticle.recommend.server.model.dto.GetOffVideos;
 import com.tzld.longarticle.recommend.server.model.dto.LongArticlesCrawlerVideos;
 import com.tzld.longarticle.recommend.server.model.dto.LongArticlesMatchVideos;
-import com.tzld.longarticle.recommend.server.model.dto.LongArticlesText;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesText;
 import com.tzld.longarticle.recommend.server.model.entity.longArticle.*;
 import com.tzld.longarticle.recommend.server.model.param.ArticleVideoPoolSourceParam;
 import org.apache.ibatis.annotations.Mapper;

+ 0 - 14
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/dto/LongArticlesText.java

@@ -1,14 +0,0 @@
-package com.tzld.longarticle.recommend.server.model.dto;
-
-import lombok.Data;
-
-@Data
-public class LongArticlesText {
-    private String contentId;
-    private String articleTitle;
-    private String articleText;
-    private String kimiTitle;
-    private String kimiSummary;
-    private String kimiKeys;
-    private Integer kimiStatus;
-}

+ 34 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/entity/longArticle/LongArticlesText.java

@@ -0,0 +1,34 @@
+package com.tzld.longarticle.recommend.server.model.entity.longArticle;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "long_articles_text")
+public class LongArticlesText {
+
+    @Id
+    @Column(name = "content_id")
+    private String contentId;
+    @Column(name = "article_title")
+    private String articleTitle;
+    @Column(name = "article_text")
+    private String articleText;
+    @Column(name = "kimi_title")
+    private String kimiTitle;
+    @Column(name = "kimi_summary")
+    private String kimiSummary;
+    @Column(name = "kimi_keys")
+    private String kimiKeys;
+    @Column(name = "kimi_status")
+    private Integer kimiStatus;
+}

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

@@ -12,4 +12,6 @@ public interface LongArticlesMatchVideoRepository extends JpaRepository<LongArti
     List<LongArticlesMatchVideo> getByTraceIdIn(List<String> traceIds);
 
     LongArticlesMatchVideo getByTraceId(String traceId);
+
+    List<LongArticlesMatchVideo> getByContentIdIn(List<String> contentIds);
 }

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

@@ -0,0 +1,12 @@
+package com.tzld.longarticle.recommend.server.repository.longArticle;
+
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesText;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface LongArticlesTextRepository extends JpaRepository<LongArticlesText, String> {
+    List<LongArticlesText> getByContentIdIn(List<String> contentIds);
+}

+ 1 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/DataFlushService.java

@@ -11,6 +11,7 @@ import com.tzld.longarticle.recommend.server.mapper.crawler.CrawlerBaseMapper;
 import com.tzld.longarticle.recommend.server.mapper.longArticle.LongArticleBaseMapper;
 import com.tzld.longarticle.recommend.server.model.dto.*;
 import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesRootSourceId;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesText;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

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

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.google.common.collect.Lists;
 import com.tzld.longarticle.recommend.server.common.enums.StatusEnum;
+import com.tzld.longarticle.recommend.server.common.enums.aigc.PublishContentStatusEnum;
 import com.tzld.longarticle.recommend.server.common.enums.aigc.PushTypeEnum;
 import com.tzld.longarticle.recommend.server.common.enums.cgi.PQVideoAuditResultEnum;
 import com.tzld.longarticle.recommend.server.common.enums.cgi.PQVideoSensitiveLevelEnum;
@@ -14,6 +15,7 @@ import com.tzld.longarticle.recommend.server.mapper.longArticle.LongArticleBaseM
 import com.tzld.longarticle.recommend.server.model.cgi.PQVideoAuditResult;
 import com.tzld.longarticle.recommend.server.model.dto.*;
 import com.tzld.longarticle.recommend.server.model.entity.aigc.PublishAccount;
+import com.tzld.longarticle.recommend.server.model.entity.aigc.PublishContent;
 import com.tzld.longarticle.recommend.server.model.entity.crawler.Article;
 import com.tzld.longarticle.recommend.server.model.entity.longArticle.*;
 import com.tzld.longarticle.recommend.server.model.param.ArticleDangerFindDeleteParam;
@@ -23,6 +25,7 @@ import com.tzld.longarticle.recommend.server.remote.WxArticleDeleteService;
 import com.tzld.longarticle.recommend.server.remote.pq.PQVideoAuditResultService;
 import com.tzld.longarticle.recommend.server.remote.pq.PQVideoAuditStartProcessService;
 import com.tzld.longarticle.recommend.server.repository.aigc.PublishAccountRepository;
+import com.tzld.longarticle.recommend.server.repository.aigc.PublishContentRepository;
 import com.tzld.longarticle.recommend.server.repository.crawler.ArticleRepository;
 import com.tzld.longarticle.recommend.server.repository.longArticle.*;
 import com.tzld.longarticle.recommend.server.util.DateUtils;
@@ -73,6 +76,10 @@ public class ArticleAuditService {
     private PQVideoAuditResultService pqVideoAuditResultService;
     @Autowired
     private LongArticleBaseMapper longArticleBaseMapper;
+    @Autowired
+    private PublishContentRepository publishContentRepository;
+    @Autowired
+    private LongArticlesTextRepository longArticlesTextRepository;
 
 
     @XxlJob("articleVideoAudit")
@@ -198,24 +205,44 @@ public class ArticleAuditService {
         }
     }
 
-    private void saveDeleteRecord(String ossPath) {
+    public void saveDeleteRecord(String ossPath) {
         List<LongArticleCrawlerVideo> crawlerVideoList = longArticleCrawlerVideoRepository.getByVideoOssPath(ossPath);
-        List<String> traceIds = crawlerVideoList.stream().map(LongArticleCrawlerVideo::getTraceId).collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(crawlerVideoList)) {
+            return;
+        }
+        List<String> contentIds = crawlerVideoList.stream().map(LongArticleCrawlerVideo::getContentId).collect(Collectors.toList());
+        List<LongArticlesMatchVideo> matchVideoList = longArticlesMatchVideoRepository.getByContentIdIn(contentIds);
+        List<String> traceIds = matchVideoList.stream().map(LongArticlesMatchVideo::getTraceId).collect(Collectors.toList());
         List<PublishContentMiniprogramDTO> publishContentList = aigcBaseMapper.getPublishContentByTraceIdIn(traceIds);
         List<String> publishContentIds = publishContentList.stream().map(PublishContentMiniprogramDTO::getPublishContentId).collect(Collectors.toList());
         buildArticleAuditDelete(publishContentIds);
+        List<LongArticlesText> textList = longArticlesTextRepository.getByContentIdIn(contentIds);
+        for (LongArticlesText text : textList) {
+            String titleMd5 = Md5Util.encoderByMd5(text.getArticleTitle());
+            buildArticleUnsafeTitle(titleMd5, text.getArticleTitle());
+        }
     }
 
     private void buildArticleAuditDelete(List<String> publishContentIds) {
         if (CollectionUtils.isEmpty(publishContentIds)) {
             return;
         }
+        // 过滤已删除数据
         List<LongArticleAuditDelete> existList = longArticleAuditDeleteRepository.getByPublishContentIdIn(publishContentIds);
         List<String> existContentIds = existList.stream().map(LongArticleAuditDelete::getPublishContentId).collect(Collectors.toList());
         publishContentIds = publishContentIds.stream().filter(id -> !existContentIds.contains(id)).collect(Collectors.toList());
         if (CollectionUtils.isEmpty(publishContentIds)) {
             return;
         }
+        // 过滤状态非已发布内容
+        List<PublishContent> publishContentList = publishContentRepository.getByIdIn(publishContentIds);
+        List<String> publishedIds = publishContentList.stream()
+                .filter(o -> Objects.equals(o.getStatus(), PublishContentStatusEnum.published.getVal()))
+                .map(PublishContent::getId).collect(Collectors.toList());
+        publishContentIds = publishContentIds.stream().filter(publishedIds::contains).collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(publishContentIds)) {
+            return;
+        }
         List<PublishGzhPushContentRelDTO> pushContentRelList = aigcBaseMapper.getPushContentRelByPublishContentIdIn(publishContentIds);
         if (CollectionUtils.isEmpty(pushContentRelList)) {
             return;
@@ -241,7 +268,7 @@ public class ArticleAuditService {
                 .collect(Collectors.groupingBy(PublishGzhPushContentRelDTO::getPushId));
         List<PublishAccountTypeDTO> accountTypeList = aigcBaseMapper.getAccountTypeList();
         Map<String, PublishAccountTypeDTO> accountTypeMap = accountTypeList.stream()
-               .collect(Collectors.toMap(PublishAccountTypeDTO::getGhId, Function.identity()));
+                .collect(Collectors.toMap(PublishAccountTypeDTO::getGhId, Function.identity()));
         // 删除文章
         for (String publishContentId : publishContentIds) {
             String pushId = publishPushIdMap.get(publishContentId);

+ 6 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/web/recommend/ArticleAuditController.java

@@ -27,6 +27,12 @@ public class ArticleAuditController {
         return CommonResponse.success();
     }
 
+    @GetMapping("/saveDeleteRecord")
+    public CommonResponse<Void> saveDeleteRecord(String ossPath) {
+        service.saveDeleteRecord(ossPath);
+        return CommonResponse.success();
+    }
+
     @PostMapping("/titleDangerFindDelete")
     public CommonResponse<Void> titleDangerFindDelete(@RequestBody ArticleDangerFindDeleteParam param) {
         service.titleDangerFindDelete(param);

+ 1 - 1
long-article-recommend-service/src/main/resources/mapper/crawler/CrawlerBaseMapper.xml

@@ -35,7 +35,7 @@
             resultType="com.tzld.longarticle.recommend.server.model.dto.LongArticlesVideoDTO">
         select * from long_articles_video where content_status = 2 and success = 0 and id > #{id} order by id limit #{pageSize}
     </select>
-    <select id="getLongArticlesText" resultType="com.tzld.longarticle.recommend.server.model.dto.LongArticlesText">
+    <select id="getLongArticlesText" resultType="com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesText">
         select content_id, kimi_title, kimi_summary, kimi_keys from long_articles_video where kimi_summary is not null group by content_id
     </select>
 

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

@@ -168,7 +168,7 @@
     </select>
 
     <select id="getNeedUpdateRecords"
-            resultType="com.tzld.longarticle.recommend.server.model.dto.LongArticlesText">
+            resultType="com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesText">
         select * from long_articles_text where kimi_title is null
     </select>