| 
					
				 | 
			
			
				@@ -25,6 +25,7 @@ import com.tzld.longarticle.recommend.server.model.dto.ProduceContentDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.dto.ProducePlanAuditCheckDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.dto.PublishContentDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.dto.aigc.IdChannelDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.tzld.longarticle.recommend.server.model.dto.aigc.IdPlatformDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.entity.aigc.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.entity.crawler.AccountAvgInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.tzld.longarticle.recommend.server.model.entity.crawler.Article; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -50,7 +51,6 @@ import com.xxl.job.core.handler.annotation.XxlJob; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.collections4.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.collections4.MapUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.beans.BeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.util.Pair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.http.*; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2160,10 +2160,6 @@ public class DataDashboardService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             videoAuditExport.setPoolType(contentPool.getContentPool()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             map.put(contentPool.getContentPool(), videoAuditExport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<PublishSingleVideoSource> videoPoolAuditList = videoPoolRepository.getByVideoPoolAuditTimestampBetween( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                timestamp, timestamp + 86400000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<Integer, List<PublishSingleVideoSource>> videoPoolAuditMap = videoPoolAuditList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .collect(Collectors.groupingBy(PublishSingleVideoSource::getFlowPoolLevel)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (LongArticleTitleAudit titleAudit : auditList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ContentPoolTypeDTO poolTypeDTO = poolTypeMap.get(titleAudit.getContentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!map.containsKey(poolTypeDTO.getPoolType())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2198,17 +2194,6 @@ public class DataDashboardService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (CollectionUtils.isNotEmpty(watingAuditList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 videoAuditExport.setWaitingAuditCount(watingAuditList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<PublishSingleVideoSource> videoPoolList = videoPoolAuditMap.get(poolEnum.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (CollectionUtils.isNotEmpty(videoPoolList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                long videoPoolAuditCount = videoPoolList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                long videoPoolAuditPassCount = videoPoolList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .filter(o -> o.getVideoPoolAuditStatus().equals(ProduceContentAuditStatusEnum.pass.getVal())).count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                videoAuditExport.setVideoPoolAuditCount(videoPoolAuditCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                videoAuditExport.setVideoPoolAuditPassCount(videoPoolAuditPassCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (videoPoolAuditCount > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    videoAuditExport.setVideoPoolAuditPassRate(videoPoolAuditPassCount * 1.0 / videoPoolAuditCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             result.add(videoAuditExport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // sum 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2218,9 +2203,6 @@ public class DataDashboardService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         long videoAuditCount = crawlerVideoList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         long videoAuditPassCount = crawlerVideoList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .filter(o -> o.getStatus().equals(ProduceContentAuditStatusEnum.pass.getVal())).count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        long videoPoolAuditCount = videoPoolAuditList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        long videoPoolAuditPassCount = videoPoolAuditList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .filter(o -> o.getVideoPoolAuditStatus().equals(ProduceContentAuditStatusEnum.pass.getVal())).count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         VideoAuditExport sum = new VideoAuditExport(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sum.setDateStr(dateStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sum.setPoolType("SUM"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2232,11 +2214,6 @@ public class DataDashboardService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (sum.getVideoAuditCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sum.setArticleAuditPassRate(sum.getArticleAuditPassCount() * 1.0 / sum.getArticleAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sum.setVideoPoolAuditCount(videoPoolAuditCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sum.setVideoPoolAuditPassCount(videoPoolAuditPassCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (sum.getVideoPoolAuditCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sum.setVideoPoolAuditPassRate(sum.getVideoPoolAuditPassCount() * 1.0 / sum.getVideoPoolAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result.add(sum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         result.sort(Comparator.comparing(VideoAuditExport::getPoolType)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2459,11 +2436,20 @@ public class DataDashboardService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long end = start + 86400000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Date dateStart = DateUtils.getStartDateOfDay(start / 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Date dateEnd = DateUtils.getStartDateOfDay(end / 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> producePlanIds = aigcBaseMapper.getProducePlanId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> crawlerPlanIds = aigcBaseMapper.getCrawlerPlanByProducePlanIds(producePlanIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 匹配 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> matchSuccessIdList = longArticleBaseMapper.getMatchSuccessContentId(dateStart, dateEnd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> matchIdList = longArticleBaseMapper.getMatchContentId(dateStart, dateEnd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 视频审核 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<LongArticleTitleAudit> videoAuditPassList = longArticleTitleAuditRepository.getByStatusAndAuditTimestampBetween( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                1, start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<LongArticleTitleAudit> videoAuditList = longArticleTitleAuditRepository.getByAuditTimestampBetween(start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> videoAuditPassIdList = videoAuditPassList.stream().map(LongArticleTitleAudit::getContentId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<String> videoAuditIdList = videoAuditList.stream().map(LongArticleTitleAudit::getContentId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 文章 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<ChannelEnum> channelList = Arrays.asList(ChannelEnum.wx, ChannelEnum.toutiao); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (ChannelEnum channel : channelList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> producePlanIds = aigcBaseMapper.getProducePlanId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> crawlerPlanIds = aigcBaseMapper.getCrawlerPlanByProducePlanIds(producePlanIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Long crawlerCount = aigcBaseMapper.getCrawlerContentCountByCrawlerPlanIdsAndChannel(crawlerPlanIds, start, end, channel.getVal()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Long produceCount = aigcBaseMapper.getProduceContentCountByProducePlanIdsAndChannel(producePlanIds, start, end, channel.getVal()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<Integer> auditStatus = new ArrayList<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2471,30 +2457,22 @@ public class DataDashboardService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Long produceAuditPassCount = aigcBaseMapper.getProduceAuditPassCountByProducePlanIdsAndChannel(producePlanIds, auditStatus, start, end, channel.getVal()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             auditStatus.add(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Long produceAuditCount = aigcBaseMapper.getProduceAuditPassCountByProducePlanIdsAndChannel(producePlanIds, auditStatus, start, end, channel.getVal()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> matchSuccessIdList = longArticleBaseMapper.getMatchSuccessContentId(dateStart, dateEnd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<IdChannelDTO> matchSuccessList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (CollectionUtils.isNotEmpty(matchSuccessIdList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 matchSuccessList = aigcBaseMapper.getIdChannelByContentId(matchSuccessIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> matchIdList = longArticleBaseMapper.getMatchContentId(dateStart, dateEnd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<IdChannelDTO> matchList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (CollectionUtils.isNotEmpty(matchIdList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 matchList = aigcBaseMapper.getIdChannelByContentId(matchIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<LongArticleTitleAudit> videoAuditPassList = longArticleTitleAuditRepository.getByStatusAndAuditTimestampBetween( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    1, start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> videoAuditPassIdList = videoAuditPassList.stream().map(LongArticleTitleAudit::getContentId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<IdChannelDTO> videoAuditPassIdChannelList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (CollectionUtils.isNotEmpty(videoAuditPassIdList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 videoAuditPassIdChannelList = aigcBaseMapper.getIdChannelByContentId(videoAuditPassIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<LongArticleTitleAudit> videoAuditList = longArticleTitleAuditRepository.getByAuditTimestampBetween(start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<String> videoAuditIdList = videoAuditList.stream().map(LongArticleTitleAudit::getContentId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<IdChannelDTO> videoAuditIdChannelList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (CollectionUtils.isNotEmpty(videoAuditIdList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 videoAuditIdChannelList = aigcBaseMapper.getIdChannelByContentId(videoAuditIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ContentGroupFunnelExport item = ContentGroupFunnelExport.getDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setDateStr(dateStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setType("文章"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2525,17 +2503,42 @@ public class DataDashboardService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<VideoPoolPlatformEnum> videoPoolType = Arrays.asList(VideoPoolPlatformEnum.GZH, VideoPoolPlatformEnum.HkSP, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 VideoPoolPlatformEnum.SPH, VideoPoolPlatformEnum.TOUTIAO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (VideoPoolPlatformEnum videoType : videoPoolType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<PublishSingleVideoSource> videoPoolCrawlerCount = videoPoolRepository.getByCrawlerTimestampBetweenAndPlatformAndBadStatus( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    start / 1000, end / 1000, videoType.getPlatform(), ArticleVideoBadStatusEnum.TITLE_DEFAULT_STATUS.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<PublishSingleVideoSource> videoPoolPQAuditCount = videoPoolRepository.getByAuditTimestampBetweenAndPlatform( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    start / 1000, end / 1000, videoType.getPlatform()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<PublishSingleVideoSource> videoPoolAuditList = videoPoolRepository.getByVideoPoolAuditTimestampBetweenAndPlatform( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    start, end, videoType.getPlatform()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ContentGroupFunnelExport item = ContentGroupFunnelExport.getDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setDateStr(dateStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setType("视频"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setSource(videoType.getDescription()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setCrawlerCount((long) videoPoolCrawlerCount.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            long videoPoolCrawlerCount = aigcBaseMapper.getVideoPoolPlatformCrawlerCount(start, end, videoType.getPlatform()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setCrawlerCount(videoPoolCrawlerCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Long produceCount = aigcBaseMapper.getVideoPoolPlatformProduceCount(producePlanIds, start, end, videoType.getPlatform()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setProduceCount(produceCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (item.getCrawlerCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                item.setProduceRate(item.getProduceCount() * 1.0 / item.getCrawlerCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<Integer> auditStatus = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            auditStatus.add(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Long produceAuditPassCount = aigcBaseMapper.getVideoPoolPlatformProduceAuditPassCount(producePlanIds, auditStatus, start, end, videoType.getPlatform()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            auditStatus.add(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Long produceAuditCount = aigcBaseMapper.getVideoPoolPlatformProduceAuditPassCount(producePlanIds, auditStatus, start, end, videoType.getPlatform()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setProduceAuditCount(produceAuditCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setProduceAuditPassCount(produceAuditPassCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (produceAuditCount > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                item.setProduceAuditPassRate(produceAuditPassCount * 1.0 / produceAuditCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<IdPlatformDTO> matchSuccessList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (CollectionUtils.isNotEmpty(matchSuccessIdList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                matchSuccessList = aigcBaseMapper.getIdPlatformByContentId(matchSuccessIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<IdPlatformDTO> matchList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (CollectionUtils.isNotEmpty(matchIdList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                matchList = aigcBaseMapper.getIdPlatformByContentId(matchIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setMatchCount(matchList.stream().filter(o -> o.getPlatform().equals(videoType.getPlatform())).count()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setMatchSuccessCount(matchSuccessList.stream().filter(o -> o.getPlatform().equals(videoType.getPlatform())).count()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (item.getMatchCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                item.setMatchSuccessRate(item.getMatchSuccessCount() * 1.0 / item.getMatchCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<PublishSingleVideoSource> videoPoolPQAuditCount = videoPoolRepository.getByAuditTimestampBetweenAndPlatform( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    start / 1000, end / 1000, videoType.getPlatform()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.setVideoPoolPQAuditCount((long) videoPoolPQAuditCount.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             long videoPoolPQAuditPassCount = videoPoolPQAuditCount.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .filter(o -> o.getAuditStatus().equals(ProduceContentAuditStatusEnum.pass.getVal())).count(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2543,32 +2546,59 @@ public class DataDashboardService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (item.getVideoPoolPQAuditCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.setVideoPoolPQAuditPassRate(videoPoolPQAuditPassCount * 1.0 / item.getVideoPoolPQAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setVideoAuditCount((long) videoPoolAuditList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            long videoPoolAuditPassCount = videoPoolAuditList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .filter(o -> o.getVideoPoolAuditStatus().equals(ProduceContentAuditStatusEnum.pass.getVal())).count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            item.setVideoAuditPassCount(videoPoolAuditPassCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<IdPlatformDTO> videoAuditPassIdPlatformList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (CollectionUtils.isNotEmpty(videoAuditPassIdList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                videoAuditPassIdPlatformList = aigcBaseMapper.getIdPlatformByContentId(videoAuditPassIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<IdPlatformDTO> videoAuditIdPlatformList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (CollectionUtils.isNotEmpty(videoAuditIdList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                videoAuditIdPlatformList = aigcBaseMapper.getIdPlatformByContentId(videoAuditIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setVideoAuditCount(videoAuditIdPlatformList.stream().filter(o -> o.getPlatform().equals(videoType.getPlatform())).count()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.setVideoAuditPassCount(videoAuditPassIdPlatformList.stream().filter(o -> o.getPlatform().equals(videoType.getPlatform())).count()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (item.getVideoAuditCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.setVideoAuditPassRate(videoPoolAuditPassCount * 1.0 / item.getVideoAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                item.setVideoAuditPassRate(item.getVideoAuditPassCount() * 1.0 / item.getVideoAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             result.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // sum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ContentFunnelExport sum = buildContentFunnelExport(dateStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ContentGroupFunnelExport groupSum = new ContentGroupFunnelExport(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        BeanUtils.copyProperties(sum, groupSum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        groupSum.setType("SUM"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        groupSum.setSource("SUM"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (sum.getCrawlerCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            groupSum.setProduceRate(sum.getProduceCount() * 1.0 / sum.getCrawlerCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        groupSum.setCrawlerCount(sum.getCrawlerCount() + sum.getVideoPoolCrawlerCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        groupSum.setVideoAuditCount(sum.getVideoAuditCount() + sum.getVideoPoolAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        groupSum.setVideoAuditPassCount(sum.getVideoAuditPassCount() + sum.getVideoPoolAuditPassCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (groupSum.getVideoAuditCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            groupSum.setVideoAuditPassRate(groupSum.getVideoAuditPassCount() * 1.0 / groupSum.getVideoAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        result.add(groupSum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        result.add(buildContentFunnelGroupSum(dateStr, result)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ContentGroupFunnelExport buildContentFunnelGroupSum(String dateStr, List<ContentGroupFunnelExport> result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ContentGroupFunnelExport sum = ContentGroupFunnelExport.getDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setType("SUM"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setSource("SUM"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sum.setDateStr(dateStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (ContentGroupFunnelExport contentGroupFunnelExport : result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setCrawlerCount(sum.getCrawlerCount() + contentGroupFunnelExport.getCrawlerCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setProduceCount(sum.getProduceCount() + contentGroupFunnelExport.getProduceCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sum.getCrawlerCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sum.setProduceRate(sum.getProduceCount() * 1.0 / sum.getCrawlerCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setProduceAuditCount(sum.getProduceAuditCount() + contentGroupFunnelExport.getProduceAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setProduceAuditPassCount(sum.getProduceAuditPassCount() + contentGroupFunnelExport.getProduceAuditPassCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sum.getProduceAuditCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sum.setProduceAuditPassRate(sum.getProduceAuditPassCount() * 1.0 / sum.getProduceAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setMatchCount(sum.getMatchCount() + contentGroupFunnelExport.getMatchCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setMatchSuccessCount(sum.getMatchSuccessCount() + contentGroupFunnelExport.getMatchSuccessCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sum.getMatchCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sum.setMatchSuccessRate(sum.getMatchSuccessCount() * 1.0 / sum.getMatchCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setVideoAuditCount(sum.getVideoAuditCount() + contentGroupFunnelExport.getVideoAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setVideoAuditPassCount(sum.getVideoAuditPassCount() + contentGroupFunnelExport.getVideoAuditPassCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sum.getVideoAuditCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sum.setVideoAuditPassRate(sum.getVideoAuditPassCount() * 1.0 / sum.getVideoAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setVideoPoolPQAuditCount(sum.getVideoPoolPQAuditCount() + contentGroupFunnelExport.getVideoPoolPQAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setVideoPoolPQAuditPassCount(sum.getVideoPoolPQAuditPassCount() + contentGroupFunnelExport.getVideoPoolPQAuditPassCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (sum.getVideoPoolPQAuditCount() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sum.setVideoPoolPQAuditPassRate(sum.getVideoPoolPQAuditPassCount() * 1.0 / sum.getVideoPoolPQAuditCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return sum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |