| 
														
															@@ -2736,11 +2736,41 @@ public class DataDashboardService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<LongArticleCrawlerVideo> longArticleCrawlerVideoList = crawlerVideoRepository.getByContentIdInAndIsIllegal(contentIdList, 0); 
														 | 
														
														 | 
														
															         List<LongArticleCrawlerVideo> longArticleCrawlerVideoList = crawlerVideoRepository.getByContentIdInAndIsIllegal(contentIdList, 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Map<String, List<LongArticleCrawlerVideo>> longArticleCrawlerVideoMap = longArticleCrawlerVideoList.stream() 
														 | 
														
														 | 
														
															         Map<String, List<LongArticleCrawlerVideo>> longArticleCrawlerVideoMap = longArticleCrawlerVideoList.stream() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 .collect(Collectors.groupingBy(LongArticleCrawlerVideo::getContentId)); 
														 | 
														
														 | 
														
															                 .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) { 
														 | 
														
														 | 
														
															         for (Article article : articleList) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             boolean isVideo = false; 
														 | 
														
														 | 
														
															             boolean isVideo = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             boolean isSameMiniProgram = false; 
														 | 
														
														 | 
														
															             boolean isSameMiniProgram = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             String source = ""; 
														 | 
														
														 | 
														
															             String source = ""; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             List<String> rootSourceIds = rootSourceIdMap.get(article.getWxSn()); 
														 | 
														
														 | 
														
															             List<String> rootSourceIds = rootSourceIdMap.get(article.getWxSn()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            List<ArticleDetailInfo> detailInfoList = articleDetailInfoMap.get(article.getWxSn()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            DatastatSortStrategy datastatSortStrategy = datastatSortStrategyMap.get(article.getWxSn()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (CollectionUtil.isNotEmpty(rootSourceIds)) { 
														 | 
														
														 | 
														
															             if (CollectionUtil.isNotEmpty(rootSourceIds)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 List<LongArticlesRootSourceId> rootSourceIdItemList = new ArrayList<>(); 
														 | 
														
														 | 
														
															                 List<LongArticlesRootSourceId> rootSourceIdItemList = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 for (String rootSourceId : rootSourceIds) { 
														 | 
														
														 | 
														
															                 for (String rootSourceId : rootSourceIds) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -2753,21 +2783,53 @@ public class DataDashboardService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (CollectionUtils.isEmpty(rootSourceIdItemList)) { 
														 | 
														
														 | 
														
															                 if (CollectionUtils.isEmpty(rootSourceIdItemList)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     continue; 
														 | 
														
														 | 
														
															                     continue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // 判断是否冷启视频内容池 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 String contentId = rootSourceIdItemList.get(0).getContentId(); 
														 | 
														
														 | 
														
															                 String contentId = rootSourceIdItemList.get(0).getContentId(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 List<LongArticleCrawlerVideo> crawlerVideoList = longArticleCrawlerVideoMap.get(contentId); 
														 | 
														
														 | 
														
															                 List<LongArticleCrawlerVideo> crawlerVideoList = longArticleCrawlerVideoMap.get(contentId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 List<String> videoOssPaths = crawlerVideoList.stream().map(LongArticleCrawlerVideo::getVideoOssPath) 
														 | 
														
														 | 
														
															                 List<String> videoOssPaths = crawlerVideoList.stream().map(LongArticleCrawlerVideo::getVideoOssPath) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         .filter(StringUtils::hasText).collect(Collectors.toList()); 
														 | 
														
														 | 
														
															                         .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)) { 
														 | 
														
														 | 
														
															                 if (CollectionUtil.isNotEmpty(singleVideoSources)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     isVideo = true; 
														 | 
														
														 | 
														
															                     isVideo = true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     source = VideoPoolPlatformEnum.from(singleVideoSources.get(0).getPlatform()).getDescription(); 
														 | 
														
														 | 
														
															                     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) { 
														 | 
														
														 | 
														
															                 if (CollectionUtil.isNotEmpty(crawlerVideoList) && crawlerVideoList.size() == 1) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     isSameMiniProgram = true; 
														 | 
														
														 | 
														
															                     isSameMiniProgram = true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            List<ArticleDetailInfo> detailInfoList = articleDetailInfoMap.get(article.getWxSn()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            DatastatSortStrategy datastatSortStrategy = datastatSortStrategyMap.get(article.getWxSn()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (isVideo) { 
														 | 
														
														 | 
														
															             if (isVideo) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 addContentEffectGroupBySourceRate(article, "视频", source, isSameMiniProgram, result, detailInfoList, 
														 | 
														
														 | 
														
															                 addContentEffectGroupBySourceRate(article, "视频", source, isSameMiniProgram, result, detailInfoList, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         datastatSortStrategy); 
														 | 
														
														 | 
														
															                         datastatSortStrategy); 
														 |