浏览代码

Merge branch 'wyp/1216-exportDetailRollDel' of Server/long-article-recommend into master

wangyunpeng 7 月之前
父节点
当前提交
656e128c8b

+ 53 - 34
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/vo/NewSortStrategyExport.java

@@ -1,39 +1,45 @@
 package com.tzld.longarticle.recommend.server.model.vo;
 
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.DatastatSortStrategy;
 import lombok.Data;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.BeanUtils;
+
+import java.util.ArrayList;
+import java.util.List;
 
 @Data
 public class NewSortStrategyExport {
 
     private String dateStr;
     private String publishTime;
-    private String accountMode;
+//    private String accountMode;
     private String accountSource;
-    private String accountType;
+//    private String accountType;
     private String accountStatus;
     private String businessType;
     private String accountName;
     private String strategy;
     private long fans;
-    private Integer viewCount;
+//    private Integer viewCount;
     private Double avgViewCount;
-    private Integer firstViewCount;
-    private Double firstAvgViewCount;
-    // 首日
-    private Integer firstLevel;
-    private Integer fission0;
-    private Integer fission1;
-    private Integer fission2;
-    // 次日
-    private Integer secondFirstLevel;
-    private Integer secondFission0;
-    private Integer secondFission1;
-    private Integer secondFission2;
-    // 第三日
-    private Integer thirdFirstLevel;
-    private Integer thirdFission0;
-    private Integer thirdFission1;
-    private Integer thirdFission2;
+//    private Integer firstViewCount;
+//    private Double firstAvgViewCount;
+//    // 首日
+//    private Integer firstLevel;
+//    private Integer fission0;
+//    private Integer fission1;
+//    private Integer fission2;
+//    // 次日
+//    private Integer secondFirstLevel;
+//    private Integer secondFission0;
+//    private Integer secondFission1;
+//    private Integer secondFission2;
+//    // 第三日
+//    private Integer thirdFirstLevel;
+//    private Integer thirdFission0;
+//    private Integer thirdFission1;
+//    private Integer thirdFission2;
     private Double readRate = 0.0;
     private Double readFansRate = 0.0;
     private Double firstReadRate = 0.0;
@@ -49,28 +55,41 @@ public class NewSortStrategyExport {
     private String ghId;
     private String title;
     private String link;
-    private String wxSn;
-    private Double fission0ReadAvg100Rate = 0.0;
-    private Double fission0ReadAvg500Rate = 0.0;
-    private Double fission0ReadAvg1000Rate = 0.0;
+//    private String wxSn;
+//    private Double fission0ReadAvg100Rate = 0.0;
+//    private Double fission0ReadAvg500Rate = 0.0;
+//    private Double fission0ReadAvg1000Rate = 0.0;
 
     // 抓取计划名称
     private String crawlerPlanName;
-    // 抓取计划策略
-    private String crawlerPlanTag;
+//    // 抓取计划策略
+//    private String crawlerPlanTag;
     // 生成计划名称
     private String producePlanName;
-    // 生成计划策略
-    private String producePlanTag;
+//    // 生成计划策略
+//    private String producePlanTag;
     // 发布计划名称
     private String publishPlanName;
-    // 发布匹配小程序策略
-    private String publishMiniProgramInsertStrategy;
-    // 发布匹配小程序小程序用途
-    private String publishMiniProgramInsertUseType;
-    // 发布内容小程序数量
-    private Integer publishMiniProgramNum;
+//    // 发布匹配小程序策略
+//    private String publishMiniProgramInsertStrategy;
+//    // 发布匹配小程序小程序用途
+//    private String publishMiniProgramInsertUseType;
+//    // 发布内容小程序数量
+//    private Integer publishMiniProgramNum;
     // 源生成计划名称
     private String sourceProducePlanName;
 
+    public static List<NewSortStrategyExport> dbObjToExportObj(List<DatastatSortStrategy> list) {
+        if (CollectionUtils.isEmpty(list)) {
+            return null;
+        }
+        List<NewSortStrategyExport> result = new ArrayList<>();
+        list.forEach(item -> {
+            NewSortStrategyExport export = new NewSortStrategyExport();
+            BeanUtils.copyProperties(item, export);
+            result.add(export);
+        });
+        return result;
+    }
+
 }

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

@@ -45,7 +45,6 @@ import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.util.Pair;
 import org.springframework.http.*;
@@ -99,35 +98,39 @@ public class DataDashboardService {
 
     public void export(String beginDate, String endDate) {
         List<String> dateStrList = DateUtils.getBeforeDays(beginDate, endDate, 5);
+        // 滚动删除,仅保留最近14天内容
+        List<String> delDateStrList = DateUtils.getBeforeDays(null, null, 14);
         exportFeishuNewSortStrategy(dateStrList, ArticleTypeEnum.QUNFA.getVal(), StatusEnum.ZERO.getCode(),
-                sheetToken, "7d4e12");
+                sheetToken, "7d4e12", delDateStrList);
     }
 
     @XxlJob("scheduledExport")
     public ReturnT<String> scheduledExport(String param) {
         List<String> dateStrList = DateUtils.getBeforeDays(null, null, 5);
+        // 滚动删除,仅保留最近14天内容
+        List<String> delDateStrList = DateUtils.getBeforeDays(null, null, 14);
         exportFeishuNewSortStrategy(dateStrList, ArticleTypeEnum.QUNFA.getVal(), StatusEnum.ZERO.getCode(),
-                sheetToken, "7d4e12");
+                sheetToken, "7d4e12", delDateStrList);
         return ReturnT.SUCCESS;
     }
 
     public void exportWuXianLiu(String beginDate, String endDate) {
         List<String> dateStrList = DateUtils.getBeforeDays(beginDate, endDate, 5);
         exportFeishuNewSortStrategy(dateStrList, ArticleTypeEnum.WUXIANLIU.getVal(), StatusEnum.ONE.getCode(),
-                sheetToken, "Ucycvw");
+                sheetToken, "Ucycvw", null);
     }
 
     @XxlJob("scheduledExportWuXianLiu")
     public ReturnT<String> scheduledExportWuXianLiu(String param) {
         List<String> dateStrList = DateUtils.getBeforeDays(null, null, 5);
         exportFeishuNewSortStrategy(dateStrList, ArticleTypeEnum.WUXIANLIU.getVal(), StatusEnum.ONE.getCode(),
-                sheetToken, "Ucycvw");
+                sheetToken, "Ucycvw", null);
         return ReturnT.SUCCESS;
     }
 
 
     private void exportFeishuNewSortStrategy(List<String> dateStrList, String articleType, Integer filter,
-                                             String sheetToken, String sheetId) {
+                                             String sheetToken, String sheetId, List<String> delDateStrList) {
         String minDate = dateStrList.stream().min(String::compareTo).orElse("");
         String maxDate = dateStrList.stream().max(String::compareTo).orElse("");
         List<NewSortStrategyExport> newContentsYesData = newSortStrategyData(minDate, maxDate, articleType, filter);
@@ -156,21 +159,17 @@ public class DataDashboardService {
 
         List<Pair<String, String>> styles = Arrays
                 .asList(
-                        Pair.of("AA", "0.00%"),
-                        Pair.of("AB", "0.00%"),
-                        Pair.of("AC", "0.00%"),
-                        Pair.of("AD", "0.00%"),
-                        Pair.of("AE", "0.00%"),
-                        Pair.of("AF", "0.00%"),
-                        Pair.of("AG", "0.00%"),
-                        Pair.of("AH", "0.00%"),
-                        Pair.of("AI", "0.00%"),
-                        Pair.of("AO", "0.00%"),
-                        Pair.of("AP", "0.00%"),
-                        Pair.of("AQ", "0.00%")
+                        Pair.of("J", "0.00%"),
+                        Pair.of("K", "0.00%"),
+                        Pair.of("L", "0.00%"),
+                        Pair.of("M", "0.00%"),
+                        Pair.of("M", "0.00%"),
+                        Pair.of("O", "0.00%"),
+                        Pair.of("P", "0.00%"),
+                        Pair.of("Q", "0.00%"),
+                        Pair.of("R", "0.00%")
                 );
-
-        doSendFeishuSheet(dateStrList, sheetToken, sheetId, rowNum, rows, 2, styles);
+        doSendFeishuSheet(dateStrList, sheetToken, sheetId, rowNum, rows, 2, styles, delDateStrList);
     }
 
     private List<NewSortStrategyExport> newSortStrategyData(String beginDate, String endDate,
@@ -187,7 +186,6 @@ public class DataDashboardService {
                 Collectors.groupingBy(Article::getAppMsgId, Collectors.toMap(Article::getItemIndex, o -> o))));
         log.info("newSortStrategyData articleList finish");
         Set<String> snList = articleList.stream().map(Article::getWxSn).collect(Collectors.toSet());
-        Map<String, Article> wxSnMap = articleList.stream().collect(Collectors.toMap(Article::getWxSn, Function.identity()));
         List<ArticleDetailInfo> articleDetailInfoList = new ArrayList<>();
         for (List<String> partitions : Lists.partition(new ArrayList<>(snList), 1000)) {
             articleDetailInfoList.addAll(articleDetailInfoRepository.getAllByWxSnIn(partitions));
@@ -332,9 +330,11 @@ public class DataDashboardService {
                 .collect(Collectors.groupingBy(ArticleDetailInfo::getWxSn));
 
         // result
-        List<NewSortStrategyExport> result = new ArrayList<>();
+        List<DatastatSortStrategy> saveList = new ArrayList<>();
         for (Article article : articleList) {
-            NewSortStrategyExport obj = new NewSortStrategyExport();
+            DatastatSortStrategy obj = new DatastatSortStrategy();
+            obj.setType(articleType);
+            obj.setPublishTimestamp(article.getPublishTimestamp());
             List<ArticleDetailInfo> articleDetailInfos = articleDetailInfoMap.get(article.getWxSn());
             setObjArticleDetailInfo(article, obj, articleDetailInfos);
             Article firstArticle = articleMap.get(article.getGhId()).get(article.getAppMsgId()).get(1);
@@ -367,6 +367,8 @@ public class DataDashboardService {
                                 }
                             }
                         }
+                        obj.setSourceType(sortLog.getSourceType());
+                        obj.setSourceId(sortLog.getSourceId());
                         obj.setStrategy(strategy);
                     }
                 }
@@ -381,49 +383,27 @@ public class DataDashboardService {
             setObjAigcInfo(article, obj, date, publishAccountMap, publishContentMap, publishContentLayoutMap,
                     publishPlanMap, miniprogramTaskMap, planExeRecordMap, producePlanMap, inputSourceMap,
                     resultRelMap, crawlerPlanMap, sourceTitlePlanMap);
-            result.add(obj);
+            saveList.add(obj);
         }
         log.info("newSortStrategyData buildData finish");
-        if (CollectionUtil.isNotEmpty(result) && filter == StatusEnum.ONE.getCode()) {
-            result = result.stream()
+        if (CollectionUtil.isNotEmpty(saveList) && filter == StatusEnum.ONE.getCode()) {
+            saveList = saveList.stream()
                     .filter(o -> Objects.nonNull(o.getPublishMiniProgramNum()) && o.getPublishMiniProgramNum() > 0)
                     .collect(Collectors.toList());
         }
-        result.sort(Comparator.comparing(NewSortStrategyExport::getDateStr).reversed()
-                .thenComparing(NewSortStrategyExport::getGhId).thenComparing(NewSortStrategyExport::getPosition));
-        if (CollectionUtils.isNotEmpty(result)) {
+        saveList.sort(Comparator.comparing(DatastatSortStrategy::getDateStr).reversed()
+                .thenComparing(DatastatSortStrategy::getGhId).thenComparing(DatastatSortStrategy::getPosition));
+        if (CollectionUtils.isNotEmpty(saveList)) {
             longArticleBaseMapper.deleteByDateStrBetween(beginDate, endDate, articleType);
-            List<DatastatSortStrategy> saveList = new ArrayList<>();
-            for (NewSortStrategyExport newSortStrategyExport : result) {
-                DatastatSortStrategy item = new DatastatSortStrategy();
-                BeanUtils.copyProperties(newSortStrategyExport, item);
-                item.setType(articleType);
-                PublishAccount publishAccount = publishAccountMap.get(item.getGhId());
-                item.setAccountCreateTimestamp(publishAccount.getCreateTimestamp() / 1000);
-                Article article = wxSnMap.get(item.getWxSn());
-                item.setPublishTimestamp(article.getPublishTimestamp());
-                Map<String, Map<String, PublishSortLog>> dateStrategy = sortStrategyMap.get(article.getGhId());
-                if (Objects.nonNull(dateStrategy)) {
-                    Map<String, PublishSortLog> titleStrategyMap = dateStrategy.get(newSortStrategyExport.getDateStr());
-                    if (Objects.nonNull(titleStrategyMap)) {
-                        PublishSortLog sortLog = titleStrategyMap.get(article.getTitle());
-                        if (Objects.nonNull(sortLog)) {
-                            item.setSourceType(sortLog.getSourceType());
-                            item.setSourceId(sortLog.getSourceId());
-                        }
-                    }
-                }
-                saveList.add(item);
-            }
             for (List<DatastatSortStrategy> saveListPartition : Lists.partition(saveList, 1000)) {
                 longArticleBaseMapper.batchInsertDatastatSortStrategy(saveListPartition);
             }
         }
         log.info("newSortStrategyData finish");
-        return result;
+        return NewSortStrategyExport.dbObjToExportObj(saveList);
     }
 
-    private void setObjAigcInfo(Article article, NewSortStrategyExport obj, String date,
+    private void setObjAigcInfo(Article article, DatastatSortStrategy obj, String date,
                                 Map<String, PublishAccount> publishAccountMap,
                                 Map<String, Map<String, Map<Long, PublishContentDTO>>> publishContentMap,
                                 Map<String, PublishContentLayout> publishContentLayoutMap,
@@ -436,6 +416,7 @@ public class DataDashboardService {
                                 Map<String, CrawlerPlan> crawlerPlanMap,
                                 Map<String, ProducePlan> sourceTitlePlanMap) {
         PublishAccount publishAccount = publishAccountMap.get(article.getGhId());
+        obj.setAccountCreateTimestamp(publishAccount.getCreateTimestamp() / 1000);
         Map<String, Map<Long, PublishContentDTO>> titleContentMap = publishContentMap.get(publishAccount.getId());
         if (Objects.isNull(titleContentMap)) {
             return;
@@ -508,7 +489,7 @@ public class DataDashboardService {
         }
     }
 
-    private void setObjHisRateInfo(Article article, NewSortStrategyExport obj,
+    private void setObjHisRateInfo(Article article, DatastatSortStrategy obj,
                                    Map<String, List<Article>> hisArticleMap,
                                    Map<String, Map<String, Map<String, AccountAvgInfo>>> accountAvgInfoIndexMap,
                                    Map<String, List<ArticleDetailInfo>> hisArticleDetailInfoMap) {
@@ -553,7 +534,7 @@ public class DataDashboardService {
         }
     }
 
-    private void setObjBaseInfo(Article article, NewSortStrategyExport obj, String date) {
+    private void setObjBaseInfo(Article article, DatastatSortStrategy obj, String date) {
         obj.setGhId(article.getGhId());
         obj.setAccountName(article.getAccountName());
         obj.setTitle(article.getTitle());
@@ -565,7 +546,7 @@ public class DataDashboardService {
         obj.setWxSn(article.getWxSn());
     }
 
-    private void setObjArticleDetailInfo(Article article, NewSortStrategyExport obj, List<ArticleDetailInfo> articleDetailInfos) {
+    private void setObjArticleDetailInfo(Article article, DatastatSortStrategy obj, List<ArticleDetailInfo> articleDetailInfos) {
         if (CollectionUtils.isNotEmpty(articleDetailInfos)) {
             Date publishDate = DateUtils.getStartDateOfDay(article.getPublishTimestamp());
             articleDetailInfos = articleDetailInfos.stream().filter(o -> !o.getRecallDt().before(publishDate))
@@ -620,7 +601,7 @@ public class DataDashboardService {
         }
     }
 
-    private void setObjAvgInfo(Article article, NewSortStrategyExport obj, AccountAvgInfo avgInfo) {
+    private void setObjAvgInfo(Article article, DatastatSortStrategy obj, AccountAvgInfo avgInfo) {
         if (Objects.nonNull(avgInfo)) {
             obj.setAccountMode(avgInfo.getAccountMode());
             obj.setAccountSource(avgInfo.getAccountSource());
@@ -685,12 +666,14 @@ public class DataDashboardService {
 
     private static void doSendFeishuSheet(List<String> dateStrList, String sheetToken, String sheetId,
                                           int rowNum, List<List<Object>> rows, Integer startRowIndex,
-                                          List<Pair<String, String>> styles) {
+                                          List<Pair<String, String>> styles,
+                                          List<String> delDateStrList) {
         Pair<String, Integer> token = FeiShu.requestAccessToken();
         RestTemplate restTemplate = new RestTemplate();
         HttpHeaders httpHeaders = new HttpHeaders();
         httpHeaders.add("Authorization", "Bearer " + token.getFirst());
 
+        delFeishuSheet(httpHeaders, sheetId, startRowIndex, delDateStrList);
         // 先删除掉已存在的dateStr数据
         HttpEntity<Object> queryEntity = new HttpEntity<>(httpHeaders);
         int deleteRowNum = rowNum < 20 ? startRowIndex + dateStrList.size() * rowNum : startRowIndex + (rowNum * 2);
@@ -809,6 +792,63 @@ public class DataDashboardService {
         }
     }
 
+    public static void delFeishuSheet(HttpHeaders httpHeaders, String sheetId, Integer startRowIndex,
+                                       List<String> delDateStrList) {
+        if (CollectionUtil.isEmpty(delDateStrList)) {
+            return;
+        }
+        RestTemplate restTemplate = new RestTemplate();
+        HttpEntity<Object> queryEntity = new HttpEntity<>(httpHeaders);
+        ResponseEntity<String> queryResponseEntity = restTemplate.exchange(
+                String.format("https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/%s/values/%s!A"
+                        + startRowIndex + ":A", sheetToken, sheetId),
+                HttpMethod.GET, queryEntity, String.class);
+        JSONArray values = JSON.parseObject(queryResponseEntity.getBody())
+                .getJSONObject("data")
+                .getJSONObject("valueRange")
+                .getJSONArray("values");
+        int deleteStartRow = values.size();
+        if (!values.isEmpty() && Objects.nonNull(values.get(0)) && !((JSONArray) values.get(0)).isEmpty()
+                && Objects.nonNull(((JSONArray) values.get(0)).get(0))) {
+            for (int i = 0; i < values.size(); i++) {
+                JSONArray value = values.getJSONArray(i);
+                if (value.get(0) != null) {
+                    List<String> dates = value.stream().map(Object::toString).collect(Collectors.toList());
+                    if (!delDateStrList.contains(dates.get(0))) {
+                        deleteStartRow = i + startRowIndex;
+                        break;
+                    }
+                }
+            }
+        }
+        int count = values.size();
+        int delCount = values.size() - deleteStartRow;
+        if (delCount > 0) {
+            int delNum = 0;
+            do {
+                // 删除当前日期已存在的旧数据
+                httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+                HttpEntity<Object> deleteEntity = new HttpEntity<>(
+                        String.format("{\n" +
+                                "    \"dimension\": {\n" +
+                                "        \"sheetId\": \"%s\",\n" +
+                                "        \"majorDimension\": \"ROWS\",\n" +
+                                "        \"startIndex\": %s,\n" +
+                                "        \"endIndex\": %s\n" +
+                                "    }\n" +
+                                "}", sheetId, deleteStartRow, Math.min(startRowIndex + 4000, count - delNum + startRowIndex) - 1),
+                        httpHeaders);
+                ResponseEntity<String> response = restTemplate.exchange(String.format("https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/%s/dimension_range", sheetToken),
+                        HttpMethod.DELETE, deleteEntity, String.class);
+                JSONObject responseJSON = JSONObject.parseObject(response.getBody());
+                if (0 != responseJSON.getInteger("code")) {
+                    log.error("doSendFeishuSheet write error :{}", responseJSON.getString("msg"));
+                }
+                delNum = Math.min(delNum + 4000, delCount);
+            } while (delNum < delCount);
+        }
+    }
+
     @XxlJob("scheduleExportIntermediateIndicators")
     public ReturnT<String> scheduleIntermediateIndicatorsExport(String param) {
         List<String> dateStrList = DateUtils.getBeforeDays(null, null, 3);
@@ -890,7 +930,7 @@ public class DataDashboardService {
                         Pair.of("BP", "0.00%")
                 );
 
-        doSendFeishuSheet(dateStrs, sheetToken, sheetId, rowNum, rows, 3, styles);
+        doSendFeishuSheet(dateStrs, sheetToken, sheetId, rowNum, rows, 3, styles, null);
     }
 
     public List<IntermediateIndicatorsExport> intermediateIndicatorsData(String dateStr) {
@@ -929,7 +969,7 @@ public class DataDashboardService {
         Map<String, Map<String, Map<Integer, List<PublishSortLog>>>> publishSortLogMap = publishSortLogList.stream()
                 .collect(Collectors.groupingBy(PublishSortLog::getGhId,
                         Collectors.groupingBy(PublishSortLog::getDateStr, Collectors.groupingBy(PublishSortLog::getIndex))));
-        List<NewSortStrategyExport> newSortStrategyExportList = getNewSortStrategyExportList(todayPublish,
+        List<DatastatSortStrategy> newSortStrategyExportList = getNewSortStrategyExportList(todayPublish,
                 articleDetailInfoMap, accountAvgInfoIndexMap);
 
         List<Article> futurePublishList = articleRepository.getByPublishTimestampGreaterThanAndTypeEquals(dateEnd, ArticleTypeEnum.QUNFA.getVal());
@@ -944,7 +984,7 @@ public class DataDashboardService {
         Map<String, Map<Integer, List<String>>> titleTypePoolMap = new HashMap<>();
         Map<String, Set<String>> wxsnHisDistinctSetMap = new HashMap<>();
         Map<String, List<String>> fansAccountTypeMap = new HashMap<>();
-        for (NewSortStrategyExport data : newSortStrategyExportList) {
+        for (DatastatSortStrategy data : newSortStrategyExportList) {
             String type = getArticleType(data, small);
             Article article = articleMap.get(data.getWxSn());
             if (!checkIsAigcPublish(article, publishSortLogMap)) {
@@ -1026,7 +1066,7 @@ public class DataDashboardService {
         return avgInfo;
     }
 
-    private void setPublishFuturePerformance(IntermediateIndicatorsExport item, NewSortStrategyExport data, Integer poolLevel,
+    private void setPublishFuturePerformance(IntermediateIndicatorsExport item, DatastatSortStrategy data, Integer poolLevel,
                                              Map<String, ArticlePoolPromotionSource> promotionSourceMap,
                                              Map<String, List<Article>> futurePublishMap,
                                              List<String> small) {
@@ -1157,12 +1197,12 @@ public class DataDashboardService {
         }
     }
 
-    private List<NewSortStrategyExport> getNewSortStrategyExportList(List<Article> todayPublish,
+    private List<DatastatSortStrategy> getNewSortStrategyExportList(List<Article> todayPublish,
                                                                      Map<String, List<ArticleDetailInfo>> articleDetailInfoMap,
                                                                      Map<String, Map<String, Map<String, AccountAvgInfo>>> accountAvgInfoIndexMap) {
-        List<NewSortStrategyExport> result = new ArrayList<>();
+        List<DatastatSortStrategy> result = new ArrayList<>();
         for (Article article : todayPublish) {
-            NewSortStrategyExport obj = new NewSortStrategyExport();
+            DatastatSortStrategy obj = new DatastatSortStrategy();
             List<ArticleDetailInfo> articleDetailInfos = articleDetailInfoMap.get(article.getWxSn());
             setObjArticleDetailInfo(article, obj, articleDetailInfos);
             AccountAvgInfo avgInfo = getAccountAvgInfo(accountAvgInfoIndexMap, article.getGhId(),
@@ -1176,7 +1216,7 @@ public class DataDashboardService {
     }
 
     private void setPublishSourcePerformance(IntermediateIndicatorsExport item,
-                                             NewSortStrategyExport data,
+                                             DatastatSortStrategy data,
                                              Article article,
                                              Map<String, Map<String, Map<String, AccountAvgInfo>>> accountAvgInfoIndexMap,
                                              Map<String, List<ArticleDetailInfo>> articleDetailInfoMap,
@@ -1289,7 +1329,7 @@ public class DataDashboardService {
         scoreHisPublishTimeMap.put(type, scorePublishTime);
     }
 
-    private void setPublishPerformance(IntermediateIndicatorsExport item, NewSortStrategyExport data,
+    private void setPublishPerformance(IntermediateIndicatorsExport item, DatastatSortStrategy data,
                                        Map<String, Map<String, Map<Integer, List<PublishSortLog>>>> publishSortLogMap) {
         if (Objects.isNull(data.getFirstLevel())) {
             return;
@@ -1416,7 +1456,7 @@ public class DataDashboardService {
         }
     }
 
-    private String getArticleType(NewSortStrategyExport data, List<String> small) {
+    private String getArticleType(DatastatSortStrategy data, List<String> small) {
         if (data.getPosition() == 1) {
             if (small.contains(data.getGhId())) {
                 return "L3";
@@ -1496,7 +1536,7 @@ public class DataDashboardService {
                         Pair.of("W", "#,##0.00")
                 );
 
-        doSendFeishuSheet(dateStrList, sheetToken, sheetId, rowNum, rows, 2, styles);
+        doSendFeishuSheet(dateStrList, sheetToken, sheetId, rowNum, rows, 2, styles, null);
     }
 
     private List<FirstContentScoreExport> firstContentScoreData(List<String> dateStrList) {