|  | @@ -35,9 +35,7 @@ import com.tzld.longarticle.recommend.server.repository.crawler.AccountAvgInfoRe
 | 
	
		
			
				|  |  |  import com.tzld.longarticle.recommend.server.repository.crawler.ArticleDetailInfoRepository;
 | 
	
		
			
				|  |  |  import com.tzld.longarticle.recommend.server.repository.crawler.ArticleRepository;
 | 
	
		
			
				|  |  |  import com.tzld.longarticle.recommend.server.repository.crawler.PublishSortLogRepository;
 | 
	
		
			
				|  |  | -import com.tzld.longarticle.recommend.server.repository.longArticle.ArticleCategoryRepository;
 | 
	
		
			
				|  |  | -import com.tzld.longarticle.recommend.server.repository.longArticle.ArticlePoolPromotionSourceRepository;
 | 
	
		
			
				|  |  | -import com.tzld.longarticle.recommend.server.repository.longArticle.DatastatScoreRepository;
 | 
	
		
			
				|  |  | +import com.tzld.longarticle.recommend.server.repository.longArticle.*;
 | 
	
		
			
				|  |  |  import com.tzld.longarticle.recommend.server.service.recommend.score.ScoreStrategy;
 | 
	
		
			
				|  |  |  import com.tzld.longarticle.recommend.server.util.DateUtils;
 | 
	
		
			
				|  |  |  import com.tzld.longarticle.recommend.server.util.MapBuilder;
 | 
	
	
		
			
				|  | @@ -95,6 +93,10 @@ public class DataDashboardService {
 | 
	
		
			
				|  |  |      private ArticleCategoryRepository articleCategoryRepository;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private ArticlePoolPromotionSourceRepository articlePoolPromotionSourceRepository;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private LongArticleTitleAuditRepository titleAuditRepository;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private LongArticleCrawlerVideoRepository crawlerVideoRepository;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @ApolloJsonValue("${export.account.ghId:[]}")
 | 
	
		
			
				|  |  |      private static List<String> ghIdList;
 | 
	
	
		
			
				|  | @@ -1952,4 +1954,67 @@ public class DataDashboardService {
 | 
	
		
			
				|  |  |          return result;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @XxlJob("videoAuditExport")
 | 
	
		
			
				|  |  | +    public ReturnT<String> videoAuditExportJob(String param) {
 | 
	
		
			
				|  |  | +        List<String> dateStrList = DateUtils.getBeforeDays(null, null, 1);
 | 
	
		
			
				|  |  | +        videoAuditExport(dateStrList);
 | 
	
		
			
				|  |  | +        return ReturnT.SUCCESS;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public void videoAuditExport(String dateStr) {
 | 
	
		
			
				|  |  | +        if (!StringUtils.hasText(dateStr)) {
 | 
	
		
			
				|  |  | +            dateStr = DateUtils.getBeforeDaysDateStr("yyyyMMdd", 1);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        videoAuditExport(Collections.singletonList(dateStr));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public void videoAuditExport(List<String> dateStrList) {
 | 
	
		
			
				|  |  | +        List<VideoAuditExport> exportList = new ArrayList<>();
 | 
	
		
			
				|  |  | +        dateStrList = Lists.reverse(dateStrList);
 | 
	
		
			
				|  |  | +        for (String dateStr : dateStrList) {
 | 
	
		
			
				|  |  | +            exportList.add(buildVideoAuditExport(dateStr));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (CollectionUtil.isEmpty(exportList)) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        int rowNum = exportList.size();
 | 
	
		
			
				|  |  | +        List<List<Object>> rows = new ArrayList<>();
 | 
	
		
			
				|  |  | +        Field[] fields = VideoAuditExport.class.getDeclaredFields();
 | 
	
		
			
				|  |  | +        for (VideoAuditExport datum : exportList) {
 | 
	
		
			
				|  |  | +            List<Object> rowDatas = new ArrayList<>();
 | 
	
		
			
				|  |  | +            rows.add(rowDatas);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            for (Field field : fields) {
 | 
	
		
			
				|  |  | +                field.setAccessible(true);
 | 
	
		
			
				|  |  | +                try {
 | 
	
		
			
				|  |  | +                    rowDatas.add(field.get(datum));
 | 
	
		
			
				|  |  | +                } catch (IllegalAccessException e) {
 | 
	
		
			
				|  |  | +                    log.error("获取值出错:{}", field.getName());
 | 
	
		
			
				|  |  | +                } catch (Exception e) {
 | 
	
		
			
				|  |  | +                    throw new RuntimeException(e.getMessage());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        doSendFeishuSheet(dateStrList, dailyDetailSheetToken, "vddANt", rowNum, rows,
 | 
	
		
			
				|  |  | +                2, null, null);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private VideoAuditExport buildVideoAuditExport(String dateStr) {
 | 
	
		
			
				|  |  | +        VideoAuditExport result = new VideoAuditExport();
 | 
	
		
			
				|  |  | +        long timestamp = DateUtils.getStartOfDay(dateStr, "yyyyMMdd") * 1000;
 | 
	
		
			
				|  |  | +        long articleAuditCount = titleAuditRepository.countByAuditTimestampBetween(timestamp, timestamp + 86400000);
 | 
	
		
			
				|  |  | +        long articleAuditPassCount = titleAuditRepository.countByStatusAndAuditTimestampBetween(
 | 
	
		
			
				|  |  | +                ProduceContentAuditStatusEnum.pass.getVal(), timestamp, timestamp + 86400000);
 | 
	
		
			
				|  |  | +        long videoAuditCount = crawlerVideoRepository.countByAuditTimestampBetween(timestamp, timestamp + 86400000);
 | 
	
		
			
				|  |  | +        long videoAuditPassCount = crawlerVideoRepository.countByStatusAndAuditTimestampBetween(
 | 
	
		
			
				|  |  | +                ProduceContentAuditStatusEnum.pass.getVal(), timestamp, timestamp + 86400000);
 | 
	
		
			
				|  |  | +        result.setDateStr(dateStr);
 | 
	
		
			
				|  |  | +        result.setArticleAuditCount(articleAuditCount);
 | 
	
		
			
				|  |  | +        result.setArticleAuditPassCount(articleAuditPassCount);
 | 
	
		
			
				|  |  | +        result.setVideoAuditCount(videoAuditCount);
 | 
	
		
			
				|  |  | +        result.setVideoAuditPassCount(videoAuditPassCount);
 | 
	
		
			
				|  |  | +        return result;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |