|
@@ -2736,11 +2736,41 @@ public class DataDashboardService {
|
|
|
List<LongArticleCrawlerVideo> longArticleCrawlerVideoList = crawlerVideoRepository.getByContentIdInAndIsIllegal(contentIdList, 0);
|
|
|
Map<String, List<LongArticleCrawlerVideo>> longArticleCrawlerVideoMap = longArticleCrawlerVideoList.stream()
|
|
|
.collect(Collectors.groupingBy(LongArticleCrawlerVideo::getContentId));
|
|
|
+ List<String> videoOssPathList = longArticleCrawlerVideoList.stream().map(LongArticleCrawlerVideo::getVideoOssPath)
|
|
|
+ .filter(StringUtils::hasText).collect(Collectors.toList());
|
|
|
+ List<PublishSingleVideoSource> singleVideoSourceList = videoPoolRepository.getByVideoOssPathIn(videoOssPathList);
|
|
|
+ Map<String, List<PublishSingleVideoSource>> singgleVideoSourceMap = singleVideoSourceList.stream()
|
|
|
+ .collect(Collectors.groupingBy(PublishSingleVideoSource::getVideoOssPath));
|
|
|
+ // 获取晋级
|
|
|
+ List<String> sourceIds = datastatSortStrategyList.stream().map(DatastatSortStrategy::getSourceId).distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<ProducePlanExeRecord> exeRecordList = producePlanExeRecordRepository.findByPlanExeIdIn(sourceIds);
|
|
|
+ Map<String, String> sourceIdMap = exeRecordList.stream()
|
|
|
+ .collect(Collectors.toMap(ProducePlanExeRecord::getPlanExeId, ProducePlanExeRecord::getChannelContentId));
|
|
|
+ List<String> channelContentIds = exeRecordList.stream().map(ProducePlanExeRecord::getChannelContentId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<ArticlePoolPromotionSource> promotionSourceList = articlePoolPromotionSourceRepository.getByChannelContentIdInAndStatusAndDeleted(
|
|
|
+ channelContentIds, ArticlePoolPromotionSourceStatusEnum.FINISH.getCode(), 0);
|
|
|
+ Map<String, String> promotionSourceMap = promotionSourceList.stream()
|
|
|
+ .collect(Collectors.toMap(ArticlePoolPromotionSource::getChannelContentId, ArticlePoolPromotionSource::getRootProduceContentId));
|
|
|
+ List<String> rootProduceContentIds = promotionSourceList.stream().map(ArticlePoolPromotionSource::getRootProduceContentId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<LongArticleCrawlerVideo> promotionCrawlerVideoList = crawlerVideoRepository.getByContentIdInAndIsIllegal(rootProduceContentIds, 0);
|
|
|
+ Map<String, List<LongArticleCrawlerVideo>> promotionCrawlerVideoMap = promotionCrawlerVideoList.stream()
|
|
|
+ .collect(Collectors.groupingBy(LongArticleCrawlerVideo::getContentId));
|
|
|
+ List<String> promotionVideoOssPathList = promotionCrawlerVideoList.stream().map(LongArticleCrawlerVideo::getVideoOssPath)
|
|
|
+ .filter(StringUtils::hasText).collect(Collectors.toList());
|
|
|
+ List<PublishSingleVideoSource> promotionSingleVideoSourceList = videoPoolRepository.getByVideoOssPathIn(promotionVideoOssPathList);
|
|
|
+ Map<String, List<PublishSingleVideoSource>> promotionSinggleVideoSourceMap = promotionSingleVideoSourceList.stream()
|
|
|
+ .collect(Collectors.groupingBy(PublishSingleVideoSource::getVideoOssPath));
|
|
|
+
|
|
|
for (Article article : articleList) {
|
|
|
boolean isVideo = false;
|
|
|
boolean isSameMiniProgram = false;
|
|
|
String source = "";
|
|
|
List<String> rootSourceIds = rootSourceIdMap.get(article.getWxSn());
|
|
|
+ List<ArticleDetailInfo> detailInfoList = articleDetailInfoMap.get(article.getWxSn());
|
|
|
+ DatastatSortStrategy datastatSortStrategy = datastatSortStrategyMap.get(article.getWxSn());
|
|
|
if (CollectionUtil.isNotEmpty(rootSourceIds)) {
|
|
|
List<LongArticlesRootSourceId> rootSourceIdItemList = new ArrayList<>();
|
|
|
for (String rootSourceId : rootSourceIds) {
|
|
@@ -2753,21 +2783,53 @@ public class DataDashboardService {
|
|
|
if (CollectionUtils.isEmpty(rootSourceIdItemList)) {
|
|
|
continue;
|
|
|
}
|
|
|
+ // 判断是否冷启视频内容池
|
|
|
String contentId = rootSourceIdItemList.get(0).getContentId();
|
|
|
List<LongArticleCrawlerVideo> crawlerVideoList = longArticleCrawlerVideoMap.get(contentId);
|
|
|
List<String> videoOssPaths = crawlerVideoList.stream().map(LongArticleCrawlerVideo::getVideoOssPath)
|
|
|
.filter(StringUtils::hasText).collect(Collectors.toList());
|
|
|
- List<PublishSingleVideoSource> singleVideoSources = videoPoolRepository.getByVideoOssPathIn(videoOssPaths);
|
|
|
+ List<PublishSingleVideoSource> singleVideoSources = new ArrayList<>();
|
|
|
+ for (String videoOssPath : videoOssPaths) {
|
|
|
+ List<PublishSingleVideoSource> item = singgleVideoSourceMap.get(videoOssPath);
|
|
|
+ if (CollectionUtil.isEmpty(item)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ singleVideoSources.addAll(item);
|
|
|
+ }
|
|
|
if (CollectionUtil.isNotEmpty(singleVideoSources)) {
|
|
|
isVideo = true;
|
|
|
source = VideoPoolPlatformEnum.from(singleVideoSources.get(0).getPlatform()).getDescription();
|
|
|
}
|
|
|
+ // 判断是否是晋级内容池
|
|
|
+ if (!isVideo && Objects.nonNull(datastatSortStrategy)) {
|
|
|
+ String channelContentId = sourceIdMap.get(datastatSortStrategy.getSourceId());
|
|
|
+ if (StringUtils.hasText(channelContentId)) {
|
|
|
+ String rootProduceContentId = promotionSourceMap.get(channelContentId);
|
|
|
+ if (StringUtils.hasText(rootProduceContentId)) {
|
|
|
+ List<LongArticleCrawlerVideo> promotionCrawlerVideos = promotionCrawlerVideoMap.get(rootProduceContentId);
|
|
|
+ if (CollectionUtil.isNotEmpty(promotionCrawlerVideos)) {
|
|
|
+ List<String> promotionVideoOssPaths = promotionCrawlerVideos.stream().map(LongArticleCrawlerVideo::getVideoOssPath)
|
|
|
+ .filter(StringUtils::hasText).collect(Collectors.toList());
|
|
|
+ List<PublishSingleVideoSource> promotionSingleVideoSources = new ArrayList<>();
|
|
|
+ for (String videoOssPath : promotionVideoOssPaths) {
|
|
|
+ List<PublishSingleVideoSource> item = promotionSinggleVideoSourceMap.get(videoOssPath);
|
|
|
+ if (CollectionUtil.isEmpty(item)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ promotionSingleVideoSources.addAll(item);
|
|
|
+ }
|
|
|
+ if (CollectionUtil.isNotEmpty(promotionSingleVideoSources)) {
|
|
|
+ isVideo = true;
|
|
|
+ source = VideoPoolPlatformEnum.from(promotionSingleVideoSources.get(0).getPlatform()).getDescription();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
if (CollectionUtil.isNotEmpty(crawlerVideoList) && crawlerVideoList.size() == 1) {
|
|
|
isSameMiniProgram = true;
|
|
|
}
|
|
|
}
|
|
|
- List<ArticleDetailInfo> detailInfoList = articleDetailInfoMap.get(article.getWxSn());
|
|
|
- DatastatSortStrategy datastatSortStrategy = datastatSortStrategyMap.get(article.getWxSn());
|
|
|
if (isVideo) {
|
|
|
addContentEffectGroupBySourceRate(article, "视频", source, isSameMiniProgram, result, detailInfoList,
|
|
|
datastatSortStrategy);
|