Browse Source

增加记录

xueyiming 7 tháng trước cách đây
mục cha
commit
2f05065086

+ 59 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/bo/PublishMiniprogramBo.java

@@ -0,0 +1,59 @@
+package com.tzld.piaoquan.longarticle.model.bo;
+
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.Date;
+
+@Data
+@ToString
+public class PublishMiniprogramBo {
+
+    private Long id;
+
+    private Long contentId;
+
+    private Long planAccountId;
+
+    private String publishContentId;
+
+    private String appId;
+
+    private String appName;
+
+    private String avatar;
+
+    private Integer miniId;
+
+    private Integer miniProgramType;
+
+    private Long videoId;
+
+    private String source;
+
+    private String videoTitle;
+
+    private String videoCover;
+
+    private String videoPath;
+
+    private String productionPath;
+
+    private String rootSourceId;
+
+    private String rootShareId;
+
+    private Integer index;
+
+    private String uid;
+
+    private String traceId;
+
+    private String wxUrl;
+
+    private Integer isDelete;
+
+    private Date createTime;
+
+    private Date updateTime;
+}

+ 25 - 25
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/CardServiceImpl.java

@@ -2,6 +2,7 @@ package com.tzld.piaoquan.longarticle.service.local.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
+import com.tzld.piaoquan.longarticle.model.bo.PublishMiniprogramBo;
 import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
 import com.tzld.piaoquan.longarticle.model.po.PublishMiniprogram;
 import com.tzld.piaoquan.longarticle.service.local.CardService;
@@ -72,7 +73,7 @@ public class CardServiceImpl implements CardService {
         }
     }
 
-    public PublishMiniprogram generateSingleCard(Long planAccountId, Integer index, String ghId, Integer miniId, VideoDetail videoDetail, Integer miniProgramType, String publishContentId) throws UnsupportedEncodingException {
+    public PublishMiniprogramBo generateSingleCard(Long planAccountId, Integer index, String ghId, Integer miniId, VideoDetail videoDetail, Integer miniProgramType, String publishContentId) throws UnsupportedEncodingException {
         String strMiniId = String.valueOf(miniId);
         JSONObject miniInfo = miniProgramMap.getJSONObject(strMiniId);
         String avatar = miniInfo.getString("avatar");
@@ -83,37 +84,36 @@ public class CardServiceImpl implements CardService {
         String uid = videoDetail.getUid();
         JSONObject jsonObject = createGzhPath(videoId, uid, ghId, miniProgramType);
 
-
-        PublishMiniprogram publishMiniprogram = new PublishMiniprogram();
-        publishMiniprogram.setPlanAccountId(planAccountId);
-        publishMiniprogram.setAppId(appId);
-        publishMiniprogram.setPublishContentId(publishContentId);
-        publishMiniprogram.setAppId(appId);
-        publishMiniprogram.setAppName(appName);
-        publishMiniprogram.setAvatar(avatar);
-        publishMiniprogram.setMiniId(miniId);
-        publishMiniprogram.setMiniProgramType(miniProgramType);
-        publishMiniprogram.setVideoId(Long.parseLong(videoId));
-        publishMiniprogram.setSource(videoDetail.getSource());
-        publishMiniprogram.setVideoTitle(videoDetail.getKimiTitle());
-        publishMiniprogram.setVideoCover(videoDetail.getVideoCover());
-        publishMiniprogram.setVideoPath(videoDetail.getVideoPath());
-        publishMiniprogram.setProductionPath(jsonObject.getString("productionPath"));
-        publishMiniprogram.setRootSourceId(jsonObject.getString("rootSourceId"));
-        publishMiniprogram.setRootShareId(jsonObject.getString("rootShareId"));
-        publishMiniprogram.setIndex(index);
-        publishMiniprogram.setTraceId(videoDetail.getTraceId());
-        return publishMiniprogram;
+        PublishMiniprogramBo publishMiniprogramBo = new PublishMiniprogramBo();
+        publishMiniprogramBo.setPlanAccountId(planAccountId);
+        publishMiniprogramBo.setAppId(appId);
+        publishMiniprogramBo.setPublishContentId(publishContentId);
+        publishMiniprogramBo.setAppName(appName);
+        publishMiniprogramBo.setAvatar(avatar);
+        publishMiniprogramBo.setMiniId(miniId);
+        publishMiniprogramBo.setMiniProgramType(miniProgramType);
+        publishMiniprogramBo.setVideoId(Long.parseLong(videoId));
+        publishMiniprogramBo.setSource(videoDetail.getSource());
+        publishMiniprogramBo.setVideoTitle(videoDetail.getKimiTitle());
+        publishMiniprogramBo.setVideoCover(videoDetail.getVideoCover());
+        publishMiniprogramBo.setVideoPath(videoDetail.getVideoPath());
+        publishMiniprogramBo.setProductionPath(jsonObject.getString("productionPath"));
+        publishMiniprogramBo.setRootSourceId(jsonObject.getString("rootSourceId"));
+        publishMiniprogramBo.setRootShareId(jsonObject.getString("rootShareId"));
+        publishMiniprogramBo.setIndex(index);
+        publishMiniprogramBo.setUid(videoDetail.getUid());
+        publishMiniprogramBo.setTraceId(videoDetail.getTraceId());
+        return publishMiniprogramBo;
     }
 
-    public List<PublishMiniprogram> generateCards(Long planAccountId, String ghId, List<VideoDetail> videoDetails, int miniProgramType, String publishContentId) {
+    public List<PublishMiniprogramBo> generateCards(Long planAccountId, String ghId, List<VideoDetail> videoDetails, int miniProgramType, String publishContentId) {
         try {
             int longArticlesMiniProgramId = 25;
             int touliuMiniProgramId = 33;
             int weComMiniProgramId = 27;
             int miniId = 0;
 
-            List<PublishMiniprogram> cardList = new ArrayList<>();
+            List<PublishMiniprogramBo> cardList = new ArrayList<>();
 
             switch (miniProgramType) {
                 case 1:
@@ -133,7 +133,7 @@ public class CardServiceImpl implements CardService {
             }
             for (int index = 0; index < videoDetails.size(); index++) {
                 VideoDetail videoDetail = videoDetails.get(index);
-                PublishMiniprogram card = generateSingleCard(planAccountId, index + 1, ghId, miniId, videoDetail, miniProgramType, publishContentId);
+                PublishMiniprogramBo card = generateSingleCard(planAccountId, index + 1, ghId, miniId, videoDetail, miniProgramType, publishContentId);
                 if (card != null) {
                     cardList.add(card);
                 }

+ 18 - 1
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/ContentServiceImpl.java

@@ -1,5 +1,6 @@
 package com.tzld.piaoquan.longarticle.service.local.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.tzld.piaoquan.longarticle.dao.mapper.CrawlerVideoMapper;
 import com.tzld.piaoquan.longarticle.dao.mapper.MatchVideoMapper;
@@ -54,11 +55,27 @@ public class ContentServiceImpl implements ContentService {
         publishMiniprogramExample.createCriteria().andPublishContentIdEqualTo(publishArticleData.getId());
         List<PublishMiniprogram> publishMiniprograms = publishMiniprogramMapper.selectByExample(publishMiniprogramExample);
         if (CollectionUtils.isEmpty(publishMiniprograms)) {
-            return null;
+            return new ArrayList<>();
         }
         return publishMiniprograms;
     }
 
+    public String updateMatchContent(String contentId, String ghId, JSONArray jsonArray) {
+        MatchVideoExample matchVideoExample = new MatchVideoExample();
+        matchVideoExample.createCriteria().andGhIdEqualTo(ghId).andContentIdEqualTo(contentId);
+        List<MatchVideo> matchVideos = matchVideoMapper.selectByExample(matchVideoExample);
+        if (CollectionUtils.isEmpty(matchVideos)) {
+            return null;
+        }
+        MatchVideo matchVideo = matchVideos.get(0);
+        MatchVideo updateMatchVideo = new MatchVideo();
+        updateMatchVideo.setId(matchVideo.getId());
+        updateMatchVideo.setContentStatus(4);
+        updateMatchVideo.setResponse(jsonArray.toJSONString());
+        matchVideoMapper.updateByPrimaryKeySelective(updateMatchVideo);
+        return matchVideo.getTraceId();
+    }
+
 
     public List<CrawlerVideo> getContentMiniVideo(PublishArticleData publishArticleData, PlanAccount planAccount) {
         CrawlerVideoExample example = new CrawlerVideoExample();

+ 37 - 17
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/CoreServiceImpl.java

@@ -1,10 +1,13 @@
 package com.tzld.piaoquan.longarticle.service.local.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.tzld.piaoquan.longarticle.common.enums.ContentStatusEnum;
 import com.tzld.piaoquan.longarticle.common.enums.PublishGzhPushTypeEnum;
 import com.tzld.piaoquan.longarticle.dao.mapper.*;
 import com.tzld.piaoquan.longarticle.model.bo.MatchContent;
+import com.tzld.piaoquan.longarticle.model.bo.PublishMiniprogramBo;
 import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
 import com.tzld.piaoquan.longarticle.model.dto.*;
 import com.tzld.piaoquan.longarticle.model.po.*;
@@ -20,6 +23,7 @@ import com.tzld.piaoquan.longarticle.utils.LarkRobotUtil;
 import com.tzld.piaoquan.longarticle.utils.TimeZoneUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -77,6 +81,9 @@ public class CoreServiceImpl implements CoreService {
     @Autowired
     private PublicContentServiceImpl publicContentService;
 
+    @Autowired
+    private RootSourceServiceImpl rootSourceService;
+
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
 
@@ -429,6 +436,8 @@ public class CoreServiceImpl implements CoreService {
                 sendIds.add(publishContent.getId());
                 //获取小程序
                 List<PublishMiniprogram> publishMiniprogramList = contentService.getPublishMiniprograms(publishArticleData);
+
+                //不存在则重新生成
                 if (CollectionUtils.isEmpty(publishMiniprogramList)) {
                     List<CrawlerVideo> contentVideos =
                             contentService.getContentMiniVideo(publishArticleData, planAccount);
@@ -468,31 +477,42 @@ public class CoreServiceImpl implements CoreService {
                     }
                     String ghId = planAccount.getGhId();
                     Long planAccountId = planAccount.getId();
-                    publishMiniprogramList = cardService.generateCards(planAccountId, ghId, videoDetails,
+                    List<PublishMiniprogramBo> publishMiniprogramBoList = cardService.generateCards(planAccountId, ghId, videoDetails,
                             planAccount.getMiniprogramUseType(), publishContent.getPublishContentId());
-                    if (CollectionUtils.isEmpty(publishMiniprogramList) && publishMiniprogramList.size() < 2) {
+                    if (CollectionUtils.isEmpty(publishMiniprogramBoList) && publishMiniprogramBoList.size() < 2) {
                         continue;
                     }
-                    for (PublishMiniprogram publishMiniprogram : publishMiniprogramList) {
-                        String videoCover = publishMiniprogram.getVideoCover();
-                        String wxUrl = aigcService.pushCover(videoCover, publishMiniprogram.getPublishContentId());
+                    JSONArray jsonArray = new JSONArray();
+                    for (PublishMiniprogramBo publishMiniprogramBo : publishMiniprogramBoList) {
+                        String videoCover = publishMiniprogramBo.getVideoCover();
+                        String wxUrl = aigcService.pushCover(videoCover, publishMiniprogramBo.getPublishContentId());
                         if (StringUtils.isEmpty(wxUrl)) {
                             continue;
                         }
-                        publishMiniprogram.setWxUrl(wxUrl);
-                        publishMiniprogram.setContentId(publishContent.getId());
-                        RootSource rootSource = new RootSource();
-                        rootSource.setAccountName(planAccount.getAccountName());
-                        rootSource.setRootSourceId(publishMiniprogram.getRootSourceId());
-                        rootSource.setGhId(planAccount.getGhId());
-                        rootSource.setRequestTime(Integer.valueOf(String.valueOf(System.currentTimeMillis() / 1000)));
-                        rootSource.setTraceId(publishMiniprogram.getTraceId());
-                        rootSource.setPushType(2);
-                        rootSource.setVideoId(publishMiniprogram.getVideoId());
-                        rootSource.setContentId(publishArticleData.getSourceId());
-                        rootSourceMapper.insertSelective(rootSource);
+                        publishMiniprogramBo.setWxUrl(wxUrl);
+                        publishMiniprogramBo.setContentId(publishContent.getId());
+                        //插入rootSource
+                        rootSourceService.addRootSource(publishMiniprogramBo, planAccount, publishArticleData);
+
+                        //TODO 更新match表
+                        JSONObject jsonObject = new JSONObject();
+                        jsonObject.put("uid", publishMiniprogramBo.getUid());
+                        jsonObject.put("source", publishMiniprogramBo.getSource());
+                        jsonObject.put("kimiTitle", publishMiniprogramBo.getVideoTitle());
+                        jsonObject.put("videoId", publishMiniprogramBo.getVideoId());
+                        jsonObject.put("videoCover", publishMiniprogramBo.getVideoCover());
+                        jsonObject.put("videoPath", publishMiniprogramBo.getVideoPath());
+                        jsonObject.put("videoOss", publishMiniprogramBo.getVideoPath());
+                        jsonObject.put("rootSourceId", publishMiniprogramBo.getRootSourceId());
+                        jsonArray.add(jsonObject);
+
+                        PublishMiniprogram publishMiniprogram = new PublishMiniprogram();
+                        BeanUtils.copyProperties(publishMiniprogram, publishMiniprogramBo);
                         publishMiniprogramMapper.insertSelective(publishMiniprogram);
+                        publishMiniprogramList.add(publishMiniprogram);
                     }
+                    String traceId = contentService.updateMatchContent(publishArticleData.getSourceId(), planAccount.getGhId(), jsonArray);
+
                 }
 
                 List<PublishMiniprogramParam> publishCardList = new ArrayList<>();

+ 30 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/local/impl/RootSourceServiceImpl.java

@@ -0,0 +1,30 @@
+package com.tzld.piaoquan.longarticle.service.local.impl;
+
+import com.tzld.piaoquan.longarticle.dao.mapper.RootSourceMapper;
+import com.tzld.piaoquan.longarticle.model.bo.PublishMiniprogramBo;
+import com.tzld.piaoquan.longarticle.model.dto.PublishArticleData;
+import com.tzld.piaoquan.longarticle.model.po.PlanAccount;
+import com.tzld.piaoquan.longarticle.model.po.RootSource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RootSourceServiceImpl {
+
+    @Autowired
+    private RootSourceMapper rootSourceMapper;
+
+    public void addRootSource(PublishMiniprogramBo publishMiniprogramBo, PlanAccount planAccount, PublishArticleData publishArticleData){
+        RootSource rootSource = new RootSource();
+        rootSource.setAccountName(planAccount.getAccountName());
+        rootSource.setRootSourceId(publishMiniprogramBo.getRootSourceId());
+        rootSource.setGhId(planAccount.getGhId());
+        rootSource.setRequestTime(Integer.valueOf(String.valueOf(System.currentTimeMillis() / 1000)));
+        rootSource.setTraceId(publishMiniprogramBo.getTraceId());
+        rootSource.setPushType(2);
+        rootSource.setVideoId(publishMiniprogramBo.getVideoId());
+        rootSource.setContentId(publishArticleData.getSourceId());
+        //TODO 更新crawler_videos表
+        rootSourceMapper.insertSelective(rootSource);
+    }
+}

+ 1 - 1
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/AigcServiceImpl.java

@@ -62,7 +62,7 @@ public class AigcServiceImpl implements AigcService {
     }
 
     @Override
-    //分页获取待排序内容列表
+    //分页获取待匹配内容列表
     public LongArticleSystemContentVO listWaitingMatchMiniprogramContents(LongArticleSystemGetContentsParam param) {
         String apiUrl = "http://aigc-api.cybertogether.net/aigc/publish/LongArticleSystem/listWaitingMatchMiniprogramContents";
         try {

+ 17 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/service/remote/impl/VideoServiceImpl.java

@@ -6,17 +6,25 @@ import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
 import com.tzld.piaoquan.longarticle.service.remote.VideoService;
+import com.tzld.piaoquan.longarticle.utils.HttpClientUtil;
+import com.tzld.piaoquan.longarticle.utils.HttpPoolClientUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+@Slf4j
 @Service
 public class VideoServiceImpl implements VideoService {
 
+    private static final HttpPoolClientUtil HTTP_POOL_CLIENT_UTIL_DEFAULT = HttpClientUtil.create(5000, 5000, 20, 100, 3, 3000);
+
+
     private static final String PUBLISH_URL = "https://vlogapi.piaoquantv.com/longvideoapi/crawler/video/send";
     private static final String VIDEO_DETAIL_URL = "https://longvideoapi.piaoquantv.com/longvideoapi/openapi/video/batchSelectVideoInfo";
 
@@ -91,4 +99,13 @@ public class VideoServiceImpl implements VideoService {
         }
         return videoDetail;
     }
+
+    @Override
+    public void miniProgramVideoOff(String traceId) throws IOException {
+        String apiUrl = "http://47.99.132.47:8111/get_off_videos";
+        log.info("miniProgramVideoOff,traceId:{}", traceId);
+        com.alibaba.fastjson.JSONObject params = new com.alibaba.fastjson.JSONObject();
+        params.put("traceId", traceId);
+        String post = HTTP_POOL_CLIENT_UTIL_DEFAULT.post(apiUrl, params.toJSONString());
+    }
 }