Ver Fonte

优化代码

xueyiming há 7 meses atrás
pai
commit
64f30addf7

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

@@ -9,8 +9,6 @@ import java.util.Date;
 @ToString
 public class PublishMiniprogramBo {
 
-    private Long id;
-
     private Long contentId;
 
     private Long planAccountId;

+ 2 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/ContentItemVO.java

@@ -2,11 +2,13 @@ package com.tzld.piaoquan.longarticle.model.vo;
 
 import lombok.Getter;
 import lombok.Setter;
+import lombok.ToString;
 import lombok.experimental.Accessors;
 
 @Getter
 @Setter
 @Accessors(chain = true)
+@ToString
 public class ContentItemVO {
     //"发布内容ID")
     private String publishContentId;

+ 2 - 0
long-article-server/src/main/java/com/tzld/piaoquan/longarticle/model/vo/LongArticleSystemContentVO.java

@@ -2,6 +2,7 @@ package com.tzld.piaoquan.longarticle.model.vo;
 
 import lombok.Getter;
 import lombok.Setter;
+import lombok.ToString;
 import lombok.experimental.Accessors;
 
 import java.util.List;
@@ -9,6 +10,7 @@ import java.util.List;
 @Getter
 @Setter
 @Accessors(chain = true)
+@ToString
 public class LongArticleSystemContentVO {
 
     //"内容总数")

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

@@ -4,9 +4,13 @@ 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.PlanAccount;
+import com.tzld.piaoquan.longarticle.model.po.PublishContent;
 import com.tzld.piaoquan.longarticle.model.po.PublishMiniprogram;
 import com.tzld.piaoquan.longarticle.service.local.CardService;
+import com.tzld.piaoquan.longarticle.service.remote.AigcService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -24,6 +28,9 @@ public class CardServiceImpl implements CardService {
     @ApolloJsonValue("${miniMap:{}}")
     private JSONObject miniProgramMap;
 
+    @Autowired
+    AigcService aigcService;
+
 
     public JSONObject createGzhPath(String videoId, String sharedUid, String ghId, Integer miniProgramType) throws UnsupportedEncodingException {
         String rootShareId = UUID.randomUUID().toString();
@@ -73,7 +80,8 @@ public class CardServiceImpl implements CardService {
         }
     }
 
-    public PublishMiniprogramBo generateSingleCard(Long planAccountId, Integer index, String ghId, Integer miniId, VideoDetail videoDetail, Integer miniProgramType, String publishContentId) throws UnsupportedEncodingException {
+    public PublishMiniprogramBo generateSingleCard(Integer index, Integer miniId, VideoDetail videoDetail,
+                                                   PlanAccount planAccount, PublishContent publishContent) throws UnsupportedEncodingException {
         String strMiniId = String.valueOf(miniId);
         JSONObject miniInfo = miniProgramMap.getJSONObject(strMiniId);
         String avatar = miniInfo.getString("avatar");
@@ -82,16 +90,17 @@ public class CardServiceImpl implements CardService {
 
         String videoId = videoDetail.getVideoId();
         String uid = videoDetail.getUid();
-        JSONObject jsonObject = createGzhPath(videoId, uid, ghId, miniProgramType);
+        JSONObject jsonObject = createGzhPath(videoId, uid, planAccount.getGhId(), planAccount.getMiniprogramUseType());
 
         PublishMiniprogramBo publishMiniprogramBo = new PublishMiniprogramBo();
-        publishMiniprogramBo.setPlanAccountId(planAccountId);
+        publishMiniprogramBo.setContentId(publishContent.getId());
+        publishMiniprogramBo.setPlanAccountId(planAccount.getId());
         publishMiniprogramBo.setAppId(appId);
-        publishMiniprogramBo.setPublishContentId(publishContentId);
+        publishMiniprogramBo.setPublishContentId(publishContent.getPublishContentId());
         publishMiniprogramBo.setAppName(appName);
         publishMiniprogramBo.setAvatar(avatar);
         publishMiniprogramBo.setMiniId(miniId);
-        publishMiniprogramBo.setMiniProgramType(miniProgramType);
+        publishMiniprogramBo.setMiniProgramType(planAccount.getMiniprogramUseType());
         publishMiniprogramBo.setVideoId(Long.parseLong(videoId));
         publishMiniprogramBo.setSource(videoDetail.getSource());
         publishMiniprogramBo.setVideoTitle(videoDetail.getKimiTitle());
@@ -108,16 +117,14 @@ public class CardServiceImpl implements CardService {
         return publishMiniprogramBo;
     }
 
-    public List<PublishMiniprogramBo> generateCards(Long planAccountId, String ghId, List<VideoDetail> videoDetails, int miniProgramType, String publishContentId) {
+    public List<PublishMiniprogramBo> generateCards(List<VideoDetail> videoDetails, PlanAccount planAccount, PublishContent publishContent) {
         try {
             int longArticlesMiniProgramId = 25;
             int touliuMiniProgramId = 33;
             int weComMiniProgramId = 27;
             int miniId = 0;
-
             List<PublishMiniprogramBo> cardList = new ArrayList<>();
-
-            switch (miniProgramType) {
+            switch (planAccount.getMiniprogramUseType()) {
                 case 1:
                     miniId = longArticlesMiniProgramId;
                     break;
@@ -135,8 +142,14 @@ public class CardServiceImpl implements CardService {
             }
             for (int index = 0; index < videoDetails.size(); index++) {
                 VideoDetail videoDetail = videoDetails.get(index);
-                PublishMiniprogramBo card = generateSingleCard(planAccountId, index + 1, ghId, miniId, videoDetail, miniProgramType, publishContentId);
+                PublishMiniprogramBo card = generateSingleCard(index + 1, miniId, videoDetail, planAccount, publishContent);
                 if (card != null) {
+                    String videoCover = card.getVideoCover();
+                    String wxUrl = aigcService.pushCover(videoCover, card.getPublishContentId());
+                    if (StringUtils.isEmpty(wxUrl)) {
+                        continue;
+                    }
+                    card.setWxUrl(wxUrl);
                     cardList.add(card);
                 }
             }

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

@@ -1,14 +1,27 @@
 package com.tzld.piaoquan.longarticle.service.local.impl;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
+import com.tzld.piaoquan.longarticle.common.enums.PublishGzhPushTypeEnum;
 import com.tzld.piaoquan.longarticle.dao.mapper.CrawlerVideoMapper;
 import com.tzld.piaoquan.longarticle.dao.mapper.MatchVideoMapper;
 import com.tzld.piaoquan.longarticle.dao.mapper.PublishContentMapper;
 import com.tzld.piaoquan.longarticle.dao.mapper.PublishMiniprogramMapper;
+import com.tzld.piaoquan.longarticle.model.bo.PublishMiniprogramBo;
+import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortRequest;
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortResponse;
+import com.tzld.piaoquan.longarticle.model.dto.ArticleSortResponseData;
 import com.tzld.piaoquan.longarticle.model.dto.PublishArticleData;
 import com.tzld.piaoquan.longarticle.model.po.*;
+import com.tzld.piaoquan.longarticle.model.vo.*;
 import com.tzld.piaoquan.longarticle.service.local.ContentService;
+import com.tzld.piaoquan.longarticle.service.local.KimiService;
+import com.tzld.piaoquan.longarticle.service.remote.AigcService;
+import com.tzld.piaoquan.longarticle.service.remote.SortService;
+import com.tzld.piaoquan.longarticle.service.remote.VideoService;
+import com.tzld.piaoquan.longarticle.utils.LarkRobotUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +47,18 @@ public class ContentServiceImpl implements ContentService {
     @Autowired
     private PublicContentServiceImpl publicContentService;
 
+    @Autowired
+    private AigcService aigcService;
+
+    @Autowired
+    private SortService sortService;
+
+    @Autowired
+    private KimiService kimiService;
+
+    @Autowired
+    private VideoService videoService;
+
 
     public MatchVideo getContent(String contentId, String ghId, Integer publishFlag) {
         MatchVideoExample matchVideoExample = new MatchVideoExample();
@@ -46,16 +71,30 @@ public class ContentServiceImpl implements ContentService {
         return matchVideos.get(0);
     }
 
-    public void updateMatchContent(PublishContent publishContent, String ghId, JSONArray jsonArray) {
+    public void updateMatchContent(PublishContent publishContent, PlanAccount planAccount, List<PublishMiniprogramBo> publishMiniprogramBoList) {
         try {
             MatchVideoExample matchVideoExample = new MatchVideoExample();
-            matchVideoExample.createCriteria().andGhIdEqualTo(ghId).andContentIdEqualTo(publishContent.getSourceId())
+            matchVideoExample.createCriteria().andGhIdEqualTo(planAccount.getGhId()).andContentIdEqualTo(publishContent.getSourceId())
                     .andPublishFlagIn(Arrays.asList(1, 2));
             matchVideoExample.setOrderByClause("publish_flag desc");
             List<MatchVideo> matchVideos = matchVideoMapper.selectByExample(matchVideoExample);
             if (CollectionUtils.isEmpty(matchVideos)) {
                 return;
             }
+            JSONArray jsonArray = new JSONArray();
+            for (PublishMiniprogramBo publishMiniprogramBo : publishMiniprogramBoList) {
+                //生成match表json数据
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("uid", publishMiniprogramBo.getUserId());
+                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.getVideoOssPath());
+                jsonObject.put("rootSourceId", publishMiniprogramBo.getRootSourceId());
+                jsonArray.add(jsonObject);
+            }
             String traceId = matchVideos.get(0).getTraceId();
             MatchVideo matchVideo = matchVideos.get(0);
             MatchVideo updateMatchVideo = new MatchVideo();
@@ -70,15 +109,134 @@ public class ContentServiceImpl implements ContentService {
         }
     }
 
+    public List<PublishArticleData> getWaitingSort(PlanAccount planAccount) {
+        //获取待排序数据
+        LongArticleSystemGetContentsParam waitingSortParam = new LongArticleSystemGetContentsParam();
+        waitingSortParam.setPlanId(planAccount.getPlanId());
+        waitingSortParam.setAccountId(planAccount.getAccountId());
+        waitingSortParam.setPageNum(1);
+        waitingSortParam.setPageSize(planAccount.getPublishPreNum());
+        LongArticleSystemContentVO longArticleSystemContentVO = aigcService.listWaitingSortContents(waitingSortParam);
+        log.info("aigcService.listWaitingSortContents={}", longArticleSystemContentVO);
+        if (longArticleSystemContentVO == null
+                || longArticleSystemContentVO.getTotalCount() < planAccount.getPublishPreMinNum()
+                || CollectionUtils.isEmpty(longArticleSystemContentVO.getContentItemList())
+                || longArticleSystemContentVO.getContentItemList().size() < planAccount.getPublishPreMinNum()) {
+            return new ArrayList<>();
+        }
+        List<PublishArticleData> waitSortList = new ArrayList<>();
+        for (ContentItemVO contentItemVO : longArticleSystemContentVO.getContentItemList()) {
+            PublishArticleData publishArticleData = new PublishArticleData();
+            publishArticleData.setId(contentItemVO.getPublishContentId());
+            publishArticleData.setSourceId(contentItemVO.getSourceId());
+            publishArticleData.setTitle(contentItemVO.getTitle());
+            publishArticleData.setContentPoolType(contentItemVO.getFlowPoolLevelTag());
+            waitSortList.add(publishArticleData);
+        }
+        return waitSortList;
+    }
+
+    public List<PublishArticleData> getSortList(PlanAccount planAccount) {
+        ArticleSortRequest articleSortRequest = new ArticleSortRequest();
+        articleSortRequest.setAccountId(planAccount.getAccountId());
+        articleSortRequest.setAccountName(planAccount.getAccountName());
+        articleSortRequest.setGhId(planAccount.getGhId());
+        //测试参数
+//            articleSortRequest.setStrategy("ArticleRankRandom");
+//            articleSortRequest.setExcludeLog(true);
+        articleSortRequest.setStrategy(planAccount.getSortStrategy());
+        articleSortRequest.setPublishNum(planAccount.getPublishPreNum());
+        if (Objects.equals(PublishGzhPushTypeEnum.auto_group_publish.getVal(), planAccount.getPushType())) {
+            articleSortRequest.setPublishNum(planAccount.getPublishNum());
+        }
+        articleSortRequest.setPlanId(planAccount.getPlanId());
+        articleSortRequest.setPushType(planAccount.getPushType());
+
+        ArticleSortResponse articleSortResponse = sortService.publishArticleSort(articleSortRequest);
+
+        if (articleSortResponse == null || articleSortResponse.getData() == null) {
+            log.info("articleSortResponse={}", articleSortResponse);
+            LarkRobotUtil.sendMessage("排序结果为空");
+            return new ArrayList<>();
+        }
+        ArticleSortResponseData data = articleSortResponse.getData();
+        if (!CollectionUtils.isEmpty(data.getFilter_list())) {
+            List<FilterSortContentParam> list = new ArrayList<>();
+            for (PublishArticleData publishArticleData : data.getFilter_list()) {
+                FilterSortContentParam param = new FilterSortContentParam();
+                param.setFilterReason(publishArticleData.getFilterReason());
+                param.setPublishContentId(publishArticleData.getId());
+                list.add(param);
+            }
+            FilterSortParam param = new FilterSortParam();
+            param.setFilterSortContentList(list);
+            aigcService.filterSortContents(param);
+        }
+        if (CollectionUtils.isEmpty(articleSortResponse.getData().getRank_list())
+                || articleSortResponse.getData().getRank_list().size() < planAccount.getPublishPreMinNum()) {
+            log.info("rank_list = {}", articleSortResponse.getData().getRank_list());
+            LarkRobotUtil.sendMessage("排序结果不足");
+            return new ArrayList<>();
+        }
+        return data.getRank_list();
+    }
+
+    public List<VideoDetail> getPublishVideoDetail(PublishContent publishContent, PlanAccount planAccount) {
+        List<CrawlerVideo> contentMiniVideos = getContentMiniVideo(publishContent, planAccount);
+        log.info("getPublishVideoDetail contentMiniVideos={}", contentMiniVideos);
+        if (contentMiniVideos.size() < 2) {
+            publicContentService.delPublishContent(publishContent);
+            return new ArrayList<>();
+        }
+        List<VideoDetail> videoDetails = publishVideo(contentMiniVideos);
+        log.info("getPublishVideoDetail videoDetails={}", videoDetails);
+        if (videoDetails.size() < 2) {
+            publicContentService.delPublishContent(publishContent);
+            return new ArrayList<>();
+        }
+        return videoDetails;
+    }
+
+    public List<VideoDetail> publishVideo(List<CrawlerVideo> contentMiniVideos) {
+        List<VideoDetail> videoDetails = new ArrayList<>();
+        //发布小程序
+        for (CrawlerVideo crawlerVideo : contentMiniVideos) {
+            Integer crawlerVideoId = crawlerVideo.getId();
+            String videoOssPath = crawlerVideo.getVideoOssPath();
+            String platform = crawlerVideo.getPlatform();
+            String userId = crawlerVideo.getUserId();
+            String traceId = crawlerVideo.getTraceId();
+            String kimiTitle;
+            LongArticlesText kimiText = kimiService.getKimiText(crawlerVideo.getContentId());
+            if (kimiText != null && StringUtils.isNotEmpty(kimiText.getKimiTitle())) {
+                kimiTitle = kimiText.getKimiTitle();
+            } else {
+                kimiTitle = crawlerVideo.getVideoTitle();
+            }
+            VideoDetail videoDetail = videoService.publish(videoOssPath, userId, kimiTitle);
+            if (videoDetail == null) {
+                continue;
+            }
+            videoDetail.setCrawlerVideoId(crawlerVideoId);
+            videoDetail.setKimiTitle(kimiTitle);
+            videoDetail.setUid(userId);
+            videoDetail.setVideoOss(videoOssPath);
+            videoDetail.setSource(platform);
+            videoDetail.setTraceId(traceId);
+            videoDetails.add(videoDetail);
+        }
+        return videoDetails;
+    }
+
 
-    public List<CrawlerVideo> getContentMiniVideo(PublishArticleData publishArticleData, PlanAccount planAccount) {
+    public List<CrawlerVideo> getContentMiniVideo(PublishContent publishContent, PlanAccount planAccount) {
         try {
             CrawlerVideoExample example = new CrawlerVideoExample();
             example.setOrderByClause("score desc");
-            example.createCriteria().andDownloadStatusEqualTo(2).andContentIdEqualTo(publishArticleData.getSourceId());
+            example.createCriteria().andDownloadStatusEqualTo(2).andContentIdEqualTo(publishContent.getSourceId());
             List<CrawlerVideo> crawlerVideoList = crawlerVideoMapper.selectByExample(example);
             List<CrawlerVideo> videoList;
-            switch (publishArticleData.getContentPoolType()) {
+            switch (publishContent.getContentPoolType()) {
                 case "autoArticlePoolLevel4":
                     // 冷启层,全量做
                     videoList = shuffleList(crawlerVideoList).subList(0, Math.min(crawlerVideoList.size(), 3));

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

@@ -388,77 +388,18 @@ public class CoreServiceImpl implements CoreService {
             if (!flag) {
                 continue;
             }
-            //获取待排序数据
-            LongArticleSystemGetContentsParam waitingSortParam = new LongArticleSystemGetContentsParam();
-            waitingSortParam.setPlanId(planAccount.getPlanId());
-            waitingSortParam.setAccountId(planAccount.getAccountId());
-            waitingSortParam.setPageNum(1);
-            waitingSortParam.setPageSize(planAccount.getPublishPreNum());
-            LongArticleSystemContentVO longArticleSystemContentVO = aigcService.listWaitingSortContents(waitingSortParam);
-            log.info("aigcService.listWaitingSortContents={}", longArticleSystemContentVO);
-            if (longArticleSystemContentVO == null
-                    || longArticleSystemContentVO.getTotalCount() < planAccount.getPublishPreMinNum()
-                    || CollectionUtils.isEmpty(longArticleSystemContentVO.getContentItemList())
-                    || longArticleSystemContentVO.getContentItemList().size() < planAccount.getPublishPreMinNum()) {
+            //获取待排序数据  数量不足会返回空list
+            List<PublishArticleData> rankList = contentService.getWaitingSort(planAccount);
+            if (CollectionUtils.isEmpty(rankList)) {
                 continue;
             }
-            List<PublishArticleData> rankList;
             if (StringUtils.isNotEmpty(planAccount.getSortStrategy())) {
-                ArticleSortRequest articleSortRequest = new ArticleSortRequest();
-                articleSortRequest.setAccountId(planAccount.getAccountId());
-                articleSortRequest.setAccountName(planAccount.getAccountName());
-                articleSortRequest.setGhId(planAccount.getGhId());
-                //测试参数
-//            articleSortRequest.setStrategy("ArticleRankRandom");
-//            articleSortRequest.setExcludeLog(true);
-                articleSortRequest.setStrategy(planAccount.getSortStrategy());
-                articleSortRequest.setPublishNum(planAccount.getPublishPreNum());
-                if (Objects.equals(PublishGzhPushTypeEnum.auto_group_publish.getVal(), planAccount.getPushType())) {
-                    articleSortRequest.setPublishNum(planAccount.getPublishNum());
-                }
-                articleSortRequest.setPlanId(planAccount.getPlanId());
-                articleSortRequest.setPushType(planAccount.getPushType());
-
-                ArticleSortResponse articleSortResponse = sortService.publishArticleSort(articleSortRequest);
-
-                if (articleSortResponse == null || articleSortResponse.getData() == null) {
-                    log.info("articleSortResponse={}", articleSortResponse);
-                    LarkRobotUtil.sendMessage("排序结果为空");
-                    continue;
-                }
-                ArticleSortResponseData data = articleSortResponse.getData();
-                if (!CollectionUtils.isEmpty(data.getFilter_list())) {
-                    List<FilterSortContentParam> list = new ArrayList<>();
-                    for (PublishArticleData publishArticleData : data.getFilter_list()) {
-                        FilterSortContentParam param = new FilterSortContentParam();
-                        param.setFilterReason(publishArticleData.getFilterReason());
-                        param.setPublishContentId(publishArticleData.getId());
-                        list.add(param);
-                    }
-                    FilterSortParam param = new FilterSortParam();
-                    param.setFilterSortContentList(list);
-                    aigcService.filterSortContents(param);
-                }
-                if (CollectionUtils.isEmpty(articleSortResponse.getData().getRank_list())
-                        || articleSortResponse.getData().getRank_list().size() < planAccount.getPublishPreMinNum()) {
-                    log.info("rank_list = {}", articleSortResponse.getData().getRank_list());
-                    LarkRobotUtil.sendMessage("排序结果不足");
+                rankList = contentService.getSortList(planAccount);
+                if (CollectionUtils.isEmpty(rankList)) {
                     continue;
                 }
-                //排序结束
-                rankList = data.getRank_list();
-            } else {
-                List<PublishArticleData> notSortList = new ArrayList<>();
-                for (ContentItemVO contentItemVO : longArticleSystemContentVO.getContentItemList()) {
-                    PublishArticleData publishArticleData = new PublishArticleData();
-                    publishArticleData.setId(contentItemVO.getPublishContentId());
-                    publishArticleData.setSourceId(contentItemVO.getSourceId());
-                    publishArticleData.setTitle(contentItemVO.getTitle());
-                    publishArticleData.setContentPoolType(contentItemVO.getFlowPoolLevelTag());
-                    notSortList.add(publishArticleData);
-                }
-                rankList = notSortList;
             }
+            //文章处理  小程序查询和发布
             List<LongArticleSystemPushContentParam> pushContentList = new ArrayList<>();
             List<Long> sendIds = new ArrayList<>();
             for (PublishArticleData publishArticleData : rankList) {
@@ -470,73 +411,29 @@ public class CoreServiceImpl implements CoreService {
                 sendIds.add(publishContent.getId());
                 //获取小程序
                 List<PublishMiniprogram> publishMiniprogramList = publicContentService.getPublishMiniprograms(publishArticleData);
-
                 //不存在则重新生成
                 if (CollectionUtils.isEmpty(publishMiniprogramList)) {
-                    List<CrawlerVideo> contentVideos =
-                            contentService.getContentMiniVideo(publishArticleData, planAccount);
-                    List<VideoDetail> videoDetails = new ArrayList<>();
-                    //发布小程序
-                    for (CrawlerVideo crawlerVideo : contentVideos) {
-                        Integer crawlerVideoId = crawlerVideo.getId();
-                        String videoOssPath = crawlerVideo.getVideoOssPath();
-                        String platform = crawlerVideo.getPlatform();
-                        String userId = crawlerVideo.getUserId();
-                        String traceId = crawlerVideo.getTraceId();
-                        String kimiTitle;
-                        LongArticlesText kimiText = kimiService.getKimiText(crawlerVideo.getContentId());
-                        if (kimiText != null && StringUtils.isNotEmpty(kimiText.getKimiTitle())) {
-                            kimiTitle = kimiText.getKimiTitle();
-                        } else {
-                            kimiTitle = crawlerVideo.getVideoTitle();
-                        }
-                        VideoDetail publish = videoService.publish(crawlerVideoId, videoOssPath, userId, kimiTitle, platform, traceId);
-                        if (publish == null) {
-                            continue;
-                        }
-                        videoDetails.add(publish);
-                    }
-                    log.info("videoDetails={}", videoDetails);
-                    if (videoDetails.size() < 2) {
-                        publicContentService.delPublishContent(publishContent);
+                    List<VideoDetail> videoDetails = contentService.getPublishVideoDetail(publishContent, planAccount);
+                    log.info("publishContentId={}, videoDetails={}", publishContent.getId(), videoDetails);
+                    if (CollectionUtils.isEmpty(videoDetails)) {
                         continue;
                     }
-                    String ghId = planAccount.getGhId();
-                    Long planAccountId = planAccount.getId();
-                    List<PublishMiniprogramBo> publishMiniprogramBoList = cardService.generateCards(planAccountId, ghId, videoDetails,
-                            planAccount.getMiniprogramUseType(), publishContent.getPublishContentId());
+                    //获取小程序卡片  判断封面是否可用
+                    List<PublishMiniprogramBo> publishMiniprogramBoList = cardService.generateCards(videoDetails, planAccount, publishContent);
                     if (CollectionUtils.isEmpty(publishMiniprogramBoList) && publishMiniprogramBoList.size() < 2) {
                         continue;
                     }
-                    JSONArray jsonArray = new JSONArray();
                     for (PublishMiniprogramBo publishMiniprogramBo : publishMiniprogramBoList) {
-                        String videoCover = publishMiniprogramBo.getVideoCover();
-                        String wxUrl = aigcService.pushCover(videoCover, publishMiniprogramBo.getPublishContentId());
-                        if (StringUtils.isEmpty(wxUrl)) {
-                            continue;
-                        }
-                        publishMiniprogramBo.setWxUrl(wxUrl);
-                        publishMiniprogramBo.setContentId(publishContent.getId());
                         //插入rootSource
                         rootSourceService.addRootSource(publishMiniprogramBo, planAccount, publishArticleData);
 
-                        JSONObject jsonObject = new JSONObject();
-                        jsonObject.put("uid", publishMiniprogramBo.getUserId());
-                        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.getVideoOssPath());
-                        jsonObject.put("rootSourceId", publishMiniprogramBo.getRootSourceId());
-                        jsonArray.add(jsonObject);
-
+                        //拷贝小程序BO到PO中 写入数据库
                         PublishMiniprogram publishMiniprogram = new PublishMiniprogram();
                         BeanUtils.copyProperties(publishMiniprogramBo, publishMiniprogram);
                         publishMiniprogramMapper.insertSelective(publishMiniprogram);
                         publishMiniprogramList.add(publishMiniprogram);
                     }
-                    contentService.updateMatchContent(publishContent, planAccount.getGhId(), jsonArray);
+                    contentService.updateMatchContent(publishContent, planAccount, publishMiniprogramBoList);
                 }
 
                 List<PublishMiniprogramParam> publishCardList = new ArrayList<>();

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

@@ -4,7 +4,7 @@ import com.tzld.piaoquan.longarticle.model.bo.VideoDetail;
 
 public interface VideoService {
 
-    VideoDetail publish(Integer crawlerVideoId, String ossPath, String uid, String title, String platform, String traceId);
+    VideoDetail publish(String ossPath, String uid, String title);
 
     void miniProgramVideoOff(String traceId);
 }

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

@@ -14,7 +14,6 @@ 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;
@@ -30,22 +29,12 @@ public class VideoServiceImpl implements VideoService {
     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";
 
-    public VideoDetail publish(Integer crawlerVideoId, String ossPath, String uid, String title, String platform, String traceId) {
+    public VideoDetail publish(String ossPath, String uid, String title) {
         String videoId = publishToPQ(ossPath, uid, title);
         if (videoId == null) {
             return null;
         }
-        VideoDetail videoDetail = getPQVideoDetail(videoId);
-        if (videoDetail == null) {
-            return null;
-        }
-        videoDetail.setCrawlerVideoId(crawlerVideoId);
-        videoDetail.setKimiTitle(title);
-        videoDetail.setUid(uid);
-        videoDetail.setVideoOss(ossPath);
-        videoDetail.setSource(platform);
-        videoDetail.setTraceId(traceId);
-        return videoDetail;
+        return getPQVideoDetail(videoId);
     }
 
     private String publishToPQ(String ossPath, String uid, String title) {