Bladeren bron

审核人审核数导出

wangyunpeng 1 week geleden
bovenliggende
commit
b60cfe6d08

+ 3 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mapper/aigc/AigcBaseMapper.java

@@ -5,6 +5,7 @@ import com.tzld.longarticle.recommend.server.model.dto.aigc.BadCrawlerAccountDTO
 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.vo.DailyAuditProduceExport;
 import com.tzld.longarticle.recommend.server.model.vo.IdNameVO;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -84,4 +85,6 @@ public interface AigcBaseMapper {
     Long getVideoPoolPlatformProduceAuditPassCount(List<String> producePlanIds, List<Integer> auditStatus, Long start, Long end, String platform);
 
     List<IdPlatformDTO> getIdPlatformByContentId(List<String> idList);
+
+    List<DailyAuditProduceExport> getAccountDailyProduceAuditCount(Long startTimeStamp, Long endTimeStamp);
 }

+ 3 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/mapper/longArticle/LongArticleBaseMapper.java

@@ -5,6 +5,7 @@ import com.tzld.longarticle.recommend.server.model.dto.LongArticlesCrawlerVideos
 import com.tzld.longarticle.recommend.server.model.dto.LongArticlesMatchVideos;
 import com.tzld.longarticle.recommend.server.model.entity.longArticle.*;
 import com.tzld.longarticle.recommend.server.model.param.ArticleVideoPoolSourceParam;
+import com.tzld.longarticle.recommend.server.model.vo.DailyAuditProduceExport;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.Date;
@@ -95,4 +96,6 @@ public interface LongArticleBaseMapper {
     VideoEndScreenTransformationTask getVideoEndScreenTransformationTask(Long videoOriginId);
 
     void saveVideoEndScreenTransformationTask(VideoEndScreenTransformationTask task);
+
+    List<DailyAuditProduceExport> getAccountDailyVideoAuditCount(Long startTimeStamp, Long endTimeStamp);
 }

+ 16 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/vo/DailyAuditProduceExport.java

@@ -0,0 +1,16 @@
+package com.tzld.longarticle.recommend.server.model.vo;
+
+import lombok.Data;
+
+@Data
+public class DailyAuditProduceExport {
+    private String dateStr;
+    private String type;
+    private String name;
+    private Integer auditCount = 0;
+    private Integer auditPassCount = 0;
+    private Double auditPassRate = 0.0;
+    private Integer videoAuditCount = 0;
+    private Integer videoAuditPassCount = 0;
+    private Double videoAuditPassRate = 0.0;
+}

+ 84 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/DataDashboardService.java

@@ -3495,4 +3495,88 @@ public class DataDashboardService {
     }
 
 
+    @XxlJob("dailyAuditProduceExport")
+    public ReturnT<String> dailyAuditProduceJob(String param) {
+        List<String> dateStrList = DateUtils.getBeforeDays(null, null, 1);
+        contentEffectGroupBySource(dateStrList);
+        return ReturnT.SUCCESS;
+    }
+
+    public void dailyAuditProduce(String dateStr) {
+        if (!StringUtils.hasText(dateStr)) {
+            dateStr = DateUtils.getBeforeDaysDateStr("yyyyMMdd", 1);
+        }
+        dailyAuditProduce(Collections.singletonList(dateStr));
+    }
+
+    public void dailyAuditProduce(List<String> dateStrList) {
+        List<DailyAuditProduceExport> exportList = new ArrayList<>();
+        dateStrList = Lists.reverse(dateStrList);
+        for (String dateStr : dateStrList) {
+            exportList.addAll(buildDailyAuditProduceExport(dateStr));
+        }
+        if (CollectionUtil.isEmpty(exportList)) {
+            return;
+        }
+        int rowNum = exportList.size();
+        List<List<Object>> rows = new ArrayList<>();
+        Field[] fields = DailyAuditProduceExport.class.getDeclaredFields();
+        for (DailyAuditProduceExport 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());
+                }
+            }
+        }
+
+        List<Pair<String, String>> styles = Arrays
+                .asList(
+                        Pair.of("F", "0.00%"),
+                        Pair.of("I", "0.00%")
+                );
+        List<Pair<String, List<Pair<String, String>>>> thank = Arrays
+                .asList(
+                        Pair.of("B", Arrays.asList(
+                                Pair.of("长文审核", "#BACEFD"),
+                                Pair.of("文章内容池", "#FED4A4")))
+                );
+        doSendFeishuSheet(dateStrList, dailyDetailSheetToken, "Lushkl", rowNum, rows,
+                3, styles, null, thank);
+    }
+
+    private List<DailyAuditProduceExport> buildDailyAuditProduceExport(String dateStr) {
+        Long startTimeStamp = DateUtils.getStartOfDay(dateStr, "yyyyMMdd") * 1000;
+        Long endTimeStamp = startTimeStamp + 86400000;
+        List<DailyAuditProduceExport> result = new ArrayList<>();
+        List<DailyAuditProduceExport> produceAuditList = aigcBaseMapper.getAccountDailyProduceAuditCount(startTimeStamp, endTimeStamp);
+        List<DailyAuditProduceExport> videoAuditList = longArticleBaseMapper.getAccountDailyVideoAuditCount(startTimeStamp, endTimeStamp);
+        for (DailyAuditProduceExport dailyAuditProduceExport : produceAuditList) {
+            dailyAuditProduceExport.setType("长文审核");
+            result.add(dailyAuditProduceExport);
+        }
+        for (DailyAuditProduceExport dailyAuditProduceExport : videoAuditList) {
+            dailyAuditProduceExport.setType("文章内容池");
+            result.add(dailyAuditProduceExport);
+        }
+        for (DailyAuditProduceExport item : result) {
+            item.setDateStr(dateStr);
+            if (item.getAuditCount()!= null && item.getAuditCount()!= 0) {
+                item.setAuditPassRate((double) item.getAuditPassCount() / item.getAuditCount());
+            }
+            if (item.getVideoAuditCount()!= null && item.getVideoAuditCount()!= 0) {
+                item.setVideoAuditPassRate((double) item.getVideoAuditPassCount() / item.getVideoAuditCount());
+            }
+        }
+        return result;
+    }
+
+
 }

+ 7 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/web/recommend/DataDashboardController.java

@@ -85,4 +85,11 @@ public class DataDashboardController {
         }).start();
     }
 
+    @GetMapping("/export/dailyAuditProduce")
+    public void dailyAuditProduce(String dateStr) {
+        new Thread(() -> {
+            service.dailyAuditProduce(dateStr);
+        }).start();
+    }
+
 }

+ 16 - 0
long-article-recommend-service/src/main/resources/mapper/aigc/AigcBaseMapper.xml

@@ -411,4 +411,20 @@
         </foreach>
     </select>
 
+    <select id="getAccountDailyProduceAuditCount"
+            resultType="com.tzld.longarticle.recommend.server.model.vo.DailyAuditProduceExport">
+        select audit.audit_account as name, audit.cnt as auditCount, auditPass.cnt as auditPassCount
+        from (select audit_account, count(1) as cnt
+              from produce_plan_exe_record
+              where audit_timestamp between #{startTimeStamp} and #{endTimeStamp}
+              group by audit_account) audit
+        left join (select audit_account, count(1) as cnt
+                from produce_plan_exe_record
+                where audit_timestamp between #{startTimeStamp} and #{endTimeStamp}
+                  and audit_status = 1
+                group by audit_account) auditPass
+        on audit.audit_account = auditPass.audit_account
+        where audit.audit_account != 'wangyunpeng'
+    </select>
+
 </mapper>

+ 27 - 0
long-article-recommend-service/src/main/resources/mapper/longArticle/LongArticleBaseMapper.xml

@@ -362,4 +362,31 @@
         (#{videoOriginId}, #{title}, #{ossPath})
     </insert>
 
+    <select id="getAccountDailyVideoAuditCount"
+            resultType="com.tzld.longarticle.recommend.server.model.vo.DailyAuditProduceExport">
+        select audit.audit_account as name, audit.cnt as auditCount, auditPass.cnt as auditPassCount,
+               videoAudit.cnt as videoAuditCount, videoAuditPass.cnt as videoAuditPassCount
+        from (select audit_account, count(1) as cnt
+              from long_articles_title_audit
+              where audit_timestamp between #{startTimeStamp} and #{endTimeStamp}
+              group by audit_account) audit
+        left join (select audit_account, count(1) as cnt
+                from long_articles_title_audit
+                where audit_timestamp between #{startTimeStamp} and #{endTimeStamp}
+                  and status = 1
+                group by audit_account) auditPass
+                  on audit.audit_account = auditPass.audit_account
+        left join (select audit_account, count(1) as cnt
+              from long_articles_crawler_videos
+              where audit_timestamp between #{startTimeStamp} and #{endTimeStamp}
+              group by audit_account) videoAudit
+        on audit.audit_account = videoAudit.audit_account
+        left join (select audit_account, count(1) as cnt
+                from long_articles_crawler_videos
+                where audit_timestamp between #{startTimeStamp} and #{endTimeStamp}
+                  and status = 1
+                group by audit_account) videoAuditPass
+        on audit.audit_account = videoAuditPass.audit_account
+    </select>
+
 </mapper>