wangyunpeng 4 месяцев назад
Родитель
Сommit
bd4ff28822

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

@@ -0,0 +1,32 @@
+package com.tzld.longarticle.recommend.server.model.vo;
+
+import lombok.Data;
+
+@Data
+public class ContentGroupFunnelExport {
+
+    private String dateStr;
+    private String type;
+    private Long planCrawlerCount = 0L;
+    private Long crawlerCount = 0L;
+    private Long produceCount = 0L;
+    private Long produceAuditPassCount = 0L;
+    private Long produceAuditCount = 0L;
+    private Double produceAuditPassRate = 0.0;
+    private Long matchSuccessCount = 0L;
+    private Long matchCount = 0L;
+    private Double matchSuccessRate = 0.0;
+    private Long videoAuditPassCount = 0L;
+    private Long videoAuditCount = 0L;
+    private Double videoAuditPassRate = 0.0;
+    private Double articleAuditPassRate = 0.0;
+    private Long videoPoolCrawlerCount = 0L;
+    private Long videoPoolPQAuditCount = 0L;
+    private Long videoPoolPQAuditPassCount = 0L;
+    private Double videoPoolPQAuditPassRate = 0.0;
+    private Long videoPoolAuditCount = 0L;
+    private Long videoPoolAuditPassCount = 0L;
+    private Double videoPoolAuditPassRate = 0.0;
+    private Double videoPoolCrawlerAuditPassRate = 0.0;
+
+}

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

@@ -2206,7 +2206,7 @@ public class DataDashboardService {
                         Pair.of("V", "0.00%")
                 );
         doSendFeishuSheet(dateStrList, dailyDetailSheetToken, "qEipyL", rowNum, rows,
-                3, styles, null);
+                4, styles, null);
     }
 
     private ContentFunnelExport buildContentFunnelExport(String dateStr) {
@@ -2295,4 +2295,69 @@ public class DataDashboardService {
         return result;
     }
 
+    @XxlJob("contentGroupFunnelExport")
+    public ReturnT<String> contentGroupFunnelExportJob(String param) {
+        List<String> dateStrList = DateUtils.getBeforeDays(null, null, 1);
+        contentGroupFunnelExport(dateStrList);
+        return ReturnT.SUCCESS;
+    }
+
+    public void contentGroupFunnelExport(String dateStr) {
+        if (!StringUtils.hasText(dateStr)) {
+            dateStr = DateUtils.getBeforeDaysDateStr("yyyyMMdd", 1);
+        }
+        contentGroupFunnelExport(Collections.singletonList(dateStr));
+    }
+
+    public void contentGroupFunnelExport(List<String> dateStrList) {
+        List<ContentGroupFunnelExport> exportList = new ArrayList<>();
+        dateStrList = Lists.reverse(dateStrList);
+        for (String dateStr : dateStrList) {
+            exportList.addAll(buildContentGroupFunnelExport(dateStr));
+        }
+        if (CollectionUtil.isEmpty(exportList)) {
+            return;
+        }
+        int rowNum = exportList.size();
+        List<List<Object>> rows = new ArrayList<>();
+        Field[] fields = ContentGroupFunnelExport.class.getDeclaredFields();
+        for (ContentGroupFunnelExport 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("H", "0.00%"),
+                        Pair.of("K", "0.00%"),
+                        Pair.of("N", "0.00%"),
+                        Pair.of("O", "0.00%"),
+                        Pair.of("S", "0.00%"),
+                        Pair.of("V", "0.00%"),
+                        Pair.of("W", "0.00%")
+                );
+        doSendFeishuSheet(dateStrList, dailyDetailSheetToken, "tP33UK", rowNum, rows,
+                2, styles, null);
+    }
+
+    private List<ContentGroupFunnelExport> buildContentGroupFunnelExport(String dateStr) {
+        List<ContentGroupFunnelExport> result = new ArrayList<>();
+        Long start = DateUtils.getStartOfDay(dateStr, "yyyyMMdd") * 1000;
+        Long end = start + (24 * 60 * 60 * 1000);
+
+
+        return result;
+    }
+
 }

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

@@ -64,6 +64,13 @@ public class DataDashboardController {
         }).start();
     }
 
+    @GetMapping("/export/contentGroupFunnel")
+    public void contentGroupFunnelExport(String dateStr) {
+        new Thread(() -> {
+            service.contentGroupFunnelExport(dateStr);
+        }).start();
+    }
+
     @GetMapping("/export/dailySafeScore")
     public void dailySafeScore(String dateStr) {
         new Thread(() -> {