Browse Source

发布视频审核

wangyunpeng 7 months ago
parent
commit
26d706dc4e

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

@@ -0,0 +1,15 @@
+package com.tzld.longarticle.recommend.server.model.dto;
+
+import lombok.Data;
+
+@Data
+public class LongArticlesMatchVideoResponse {
+    private String uid;
+    private Object source;
+    private String kimiTitle;
+    private long videoID;
+    private String videoCover;
+    private String videoPath;
+    private String videoOSS;
+    private String rootSourceID;
+}

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

@@ -0,0 +1,37 @@
+package com.tzld.longarticle.recommend.server.model.entity.longArticle;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "long_articles_audit_delete")
+public class LongArticleAuditDelete {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id")
+    private Integer id;
+
+    @Column(name = "gh_id")
+    private String ghId;
+
+    @Column(name = "msg_id")
+    private String msgId;
+
+    @Column(name = "index")
+    private Integer index;
+
+    @Column(name = "status")
+    private Integer status;
+
+    @Column(name = "create_timestamp")
+    private Long createTimestamp;
+
+    @Column(name = "finish_timestamp")
+    private Long finishTimestamp;
+}

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

@@ -0,0 +1,43 @@
+package com.tzld.longarticle.recommend.server.model.entity.longArticle;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "long_articles_video_audit")
+public class LongArticleVideoAudit {
+
+    @Id
+    @Column(name = "video_id")
+    private Long videoId;
+
+    @Column(name = "content_id")
+    private String contentId;
+
+    @Column(name = "trace_id")
+    private String traceId;
+
+    @Column(name = "oss_path")
+    private String ossPath;
+
+    @Column(name = "index")
+    private Integer index;
+
+    @Column(name = "status")
+    private Integer status;
+
+    @Column(name = "fail_reason")
+    private String failReason;
+
+    @Column(name = "create_timestamp")
+    private Long createTimestamp;
+
+    @Column(name = "finish_timestamp")
+    private Long finishTimestamp;
+}

+ 10 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/param/ArticleVideoAuditResultParam.java

@@ -0,0 +1,10 @@
+package com.tzld.longarticle.recommend.server.model.param;
+
+import lombok.Data;
+
+@Data
+public class ArticleVideoAuditResultParam {
+    private Long videoId;
+    private Integer result;
+    private String failReason;
+}

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

@@ -21,7 +21,10 @@ import com.tzld.longarticle.recommend.server.model.entity.aigc.PublishAccount;
 import com.tzld.longarticle.recommend.server.model.entity.crawler.AccountAvgInfo;
 import com.tzld.longarticle.recommend.server.model.entity.crawler.GetOffVideoCrawler;
 import com.tzld.longarticle.recommend.server.model.entity.crawler.LongArticlesVideo;
-import com.tzld.longarticle.recommend.server.model.entity.longArticle.*;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.GetOffVideoArticle;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesMatchVideo;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesReadRate;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesRootSourceId;
 import com.tzld.longarticle.recommend.server.model.param.ArticleFindSourceParam;
 import com.tzld.longarticle.recommend.server.remote.ODPSManager;
 import com.tzld.longarticle.recommend.server.repository.crawler.GetOffVideoCrawlerRepository;
@@ -47,7 +50,6 @@ import org.springframework.util.StringUtils;
 import java.time.LocalTime;
 import java.util.*;
 import java.util.concurrent.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import static com.tzld.longarticle.recommend.server.common.constant.TimeConstant.MILLISECOND_DAY;
@@ -72,8 +74,6 @@ public class XxlJobService {
     @Autowired
     private LongArticlesMatchVideoRepository longArticlesMatchVideoRepository;
     @Autowired
-    private LongArticleCrawlerVideoRepository longArticleCrawlerVideoRepository;
-    @Autowired
     private LongArticlesReadRateRepository longArticlesReadRateRepository;
     @Autowired
     private LongArticlesRootSourceIdRepository longArticlesRootSourceIdRepository;
@@ -516,29 +516,4 @@ public class XxlJobService {
         return ReturnT.SUCCESS;
     }
 
-    @XxlJob("articleVideoAudit")
-    public ReturnT<String> articleVideoAudit(String param) {
-        long publishTime = DateUtils.getBeforeDayStart(1);
-        if (StringUtils.hasText(param)) {
-            publishTime = DateUtils.getStartOfDay(param, "yyyyMMdd");
-        }
-        List<GetOffVideoArticle> getOffVideoArticleList = getOffVideoArticleRepository.getByPublishTimeGreaterThanEqual(publishTime);
-        List<String> traceIds = getOffVideoArticleList.stream().map(GetOffVideoArticle::getTraceId).collect(Collectors.toList());
-        if (CollectionUtil.isEmpty(traceIds)) {
-            return ReturnT.SUCCESS;
-        }
-        List<LongArticlesMatchVideo> longArticlesMatchVideoList = longArticlesMatchVideoRepository.getByTraceIdIn(traceIds);
-        Map<String, LongArticlesMatchVideo> longarticlesMatchVideoMap = longArticlesMatchVideoList.stream()
-                .collect(Collectors.toMap(LongArticlesMatchVideo::getTraceId, Function.identity()));
-        List<LongArticleCrawlerVideo> longArticleCrawlerVideoList = longArticleCrawlerVideoRepository.getByTraceIdIn(traceIds);
-        Map<String, List<LongArticleCrawlerVideo>> longArticleCrawlerVideoMap = longArticleCrawlerVideoList.stream()
-               .collect(Collectors.groupingBy(LongArticleCrawlerVideo::getTraceId));
-        Map<String, Object> traceIdMap = new HashMap<>();
-        for (String traceId : traceIds) {
-            LongArticlesMatchVideo longArticlesMatchVideo = longarticlesMatchVideoMap.get(traceId);
-            List<LongArticleCrawlerVideo> longArticleCrawlerVideos = longArticleCrawlerVideoMap.get(traceId);
-        }
-
-        return ReturnT.SUCCESS;
-    }
 }

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

@@ -0,0 +1,94 @@
+package com.tzld.longarticle.recommend.server.service.recommend;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.tzld.longarticle.recommend.server.model.dto.LongArticlesMatchVideoResponse;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.GetOffVideoArticle;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticleCrawlerVideo;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticleVideoAudit;
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.LongArticlesMatchVideo;
+import com.tzld.longarticle.recommend.server.model.param.ArticleVideoAuditResultParam;
+import com.tzld.longarticle.recommend.server.repository.longArticle.GetOffVideoArticleRepository;
+import com.tzld.longarticle.recommend.server.repository.longArticle.LongArticleCrawlerVideoRepository;
+import com.tzld.longarticle.recommend.server.repository.longArticle.LongArticlesMatchVideoRepository;
+import com.tzld.longarticle.recommend.server.util.DateUtils;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class ArticleAuditService {
+
+    @Autowired
+    private GetOffVideoArticleRepository getOffVideoArticleRepository;
+    @Autowired
+    private LongArticlesMatchVideoRepository longArticlesMatchVideoRepository;
+    @Autowired
+    private LongArticleCrawlerVideoRepository longArticleCrawlerVideoRepository;
+
+
+    @XxlJob("articleVideoAudit")
+    public ReturnT<String> articleVideoAudit(String param) {
+        long publishTime = DateUtils.getBeforeDayStart(1);
+        if (StringUtils.hasText(param)) {
+            publishTime = DateUtils.getStartOfDay(param, "yyyyMMdd");
+        }
+        List<GetOffVideoArticle> getOffVideoArticleList = getOffVideoArticleRepository.getByPublishTimeGreaterThanEqual(publishTime);
+        List<String> traceIds = getOffVideoArticleList.stream().map(GetOffVideoArticle::getTraceId).collect(Collectors.toList());
+        if (CollectionUtil.isEmpty(traceIds)) {
+            return ReturnT.SUCCESS;
+        }
+        List<LongArticlesMatchVideo> longArticlesMatchVideoList = longArticlesMatchVideoRepository.getByTraceIdIn(traceIds);
+        Map<String, LongArticlesMatchVideo> longarticlesMatchVideoMap = longArticlesMatchVideoList.stream()
+                .collect(Collectors.toMap(LongArticlesMatchVideo::getTraceId, Function.identity()));
+        List<LongArticleCrawlerVideo> longArticleCrawlerVideoList = longArticleCrawlerVideoRepository.getByTraceIdIn(traceIds);
+        Map<String, List<LongArticleCrawlerVideo>> longArticleCrawlerVideoMap = longArticleCrawlerVideoList.stream()
+                .collect(Collectors.groupingBy(LongArticleCrawlerVideo::getTraceId));
+        Map<String, LongArticleVideoAudit> traceIdMap = new HashMap<>();
+        for (String traceId : traceIds) {
+            LongArticlesMatchVideo longArticlesMatchVideo = longarticlesMatchVideoMap.get(traceId);
+            List<LongArticlesMatchVideoResponse> responseList = JSONArray.parseArray(longArticlesMatchVideo.getResponse()
+                    , LongArticlesMatchVideoResponse.class);
+            List<String> videoOssList = new ArrayList<>();
+            responseList.forEach(item -> {
+                if (StringUtils.hasText(item.getVideoOSS())) {
+                    videoOssList.add(item.getVideoOSS());
+                }
+            });
+            List<LongArticleCrawlerVideo> longArticleCrawlerVideos = longArticleCrawlerVideoMap.get(traceId);
+        }
+
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     *
+     * @param param
+     * @return
+     */
+    public void articleVideoAuditResult(ArticleVideoAuditResultParam param) {
+
+    }
+
+    /**
+     * 删除审核不通过,已发布文章
+     * @param param
+     * @return
+     */
+    @XxlJob("articleVideoDelete")
+    public ReturnT<String> articleVideoDelete(String param) {
+
+        return ReturnT.SUCCESS;
+    }
+}

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

@@ -69,9 +69,5 @@ public class XxlJobController {
         service.articleCategoryJobRetry(null);
     }
 
-    @GetMapping("/articleVideoAudit")
-    public void articleVideoAudit() {
-        service.articleVideoAudit(null);
-    }
 
 }

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

@@ -0,0 +1,34 @@
+package com.tzld.longarticle.recommend.server.web.recommend;
+
+import com.tzld.longarticle.recommend.server.common.response.CommonResponse;
+import com.tzld.longarticle.recommend.server.model.param.ArticleVideoAuditResultParam;
+import com.tzld.longarticle.recommend.server.service.recommend.ArticleAuditService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/articleAudit")
+@Slf4j
+public class ArticleAuditController {
+
+    @Autowired
+    private ArticleAuditService service;
+
+
+    @GetMapping("/articleVideoAudit")
+    public void articleVideoAudit() {
+        service.articleVideoAudit(null);
+    }
+
+    @PostMapping("/articleVideoAuditResult")
+    public CommonResponse<Void> articleVideoAuditResult(@RequestBody ArticleVideoAuditResultParam param) {
+        service.articleVideoAuditResult(param);
+        return CommonResponse.success();
+    }
+
+    @GetMapping("/articleVideoDelete")
+    public void articleVideoDelete() {
+        service.articleVideoDelete(null);
+    }
+}