Ver Fonte

视频审核

wangyunpeng há 7 meses atrás
pai
commit
c7dd234468

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

@@ -29,6 +29,9 @@ public class LongArticleVideoAudit {
     @Column(name = "status")
     private Integer status;
 
+    @Column(name = "task_id")
+    private Long taskId;
+
     @Column(name = "fail_reason")
     private String failReason;
 

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

@@ -0,0 +1,15 @@
+package com.tzld.longarticle.recommend.server.model.param;
+
+import lombok.Data;
+
+@Data
+public class PQResponse<T> {
+
+    private long code;
+    private String msg;
+    private T data;
+
+}
+
+
+

+ 64 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/remote/pq/PQVideoAuditStartProcessService.java

@@ -0,0 +1,64 @@
+package com.tzld.longarticle.recommend.server.remote.pq;
+
+import com.alibaba.fastjson.JSONObject;
+import com.tzld.longarticle.recommend.server.common.HttpPoolFactory;
+import com.tzld.longarticle.recommend.server.repository.crawler.ArticleRepository;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpEntity;
+import org.apache.http.StatusLine;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.util.EntityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+
+@Service
+@Slf4j
+public class PQVideoAuditStartProcessService {
+
+    @Autowired
+    ArticleRepository articleRepository;
+
+    private final CloseableHttpClient client = HttpPoolFactory.aigcPool();
+    private static final String url = "https://longvideoapi.piaoquantv.com/longvideoapi/openai/audit/startProcess";
+
+    public Long startProcess(Long videoId) {
+        JSONObject params = new JSONObject();
+        params.put("videoId", videoId);
+        try {
+            HttpPost httpPost = new HttpPost(url);
+            StringEntity stringEntity = new StringEntity(params.toJSONString(), StandardCharsets.UTF_8);
+            httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");
+            httpPost.setEntity(stringEntity);
+            CloseableHttpResponse response = client.execute(httpPost);
+            StatusLine statusLine = response.getStatusLine();
+            if (statusLine.getStatusCode() == 200) {
+                HttpEntity responseEntity = response.getEntity();
+                if (Objects.nonNull(responseEntity)) {
+                    String responseBody = EntityUtils.toString(responseEntity, "UTF-8");
+                    JSONObject jsonObject = JSONObject.parseObject(responseBody);
+                    if (jsonObject.getInteger("code") == 0) {
+                        JSONObject data = jsonObject.getJSONObject("data");
+                        if (data.containsKey("taskId")) {
+                            return data.getLong("taskId");
+                        }
+                    } else {
+                        // todo 任务处理失败
+                    }
+                }
+            }
+        } catch (IOException e) {
+            log.error("articleGetProducePlanDetail error", e);
+        }
+        // todo 失败增加重试
+        return null;
+    }
+
+
+}

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

@@ -12,6 +12,7 @@ import com.tzld.longarticle.recommend.server.model.entity.longArticle.*;
 import com.tzld.longarticle.recommend.server.model.param.ArticleVideoAuditResultParam;
 import com.tzld.longarticle.recommend.server.remote.WxAccessTokenRemoteService;
 import com.tzld.longarticle.recommend.server.remote.WxArticleDeleteService;
+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.longArticle.*;
 import com.tzld.longarticle.recommend.server.util.DateUtils;
@@ -51,6 +52,8 @@ public class ArticleAuditService {
     private AigcBaseMapper aigcBaseMapper;
     @Autowired
     private PublishAccountRepository publishAccountRepository;
+    @Autowired
+    private PQVideoAuditStartProcessService pqVideoAuditStartProcessService;
 
 
     @XxlJob("articleVideoAudit")
@@ -86,7 +89,14 @@ public class ArticleAuditService {
                 videoAudit.setStatus(StatusEnum.ZERO.getCode());
                 videoAudit.setCreateTimestamp(System.currentTimeMillis());
                 longArticleVideoAuditRepository.save(videoAudit);
-                // todo 调用PQ 审核视频
+                // 调用PQ 审核视频
+                try {
+                    Long taskId = pqVideoAuditStartProcessService.startProcess(response.getVideoID());
+                    videoAudit.setTaskId(taskId);
+                    longArticleVideoAuditRepository.save(videoAudit);
+                } catch (Exception e) {
+                    log.error("PQVideoAuditStartProcess start process error:{}", e.getMessage());
+                }
             }
         }