Переглянути джерело

增加报表写mysql定时任务

xueyiming 1 місяць тому
батько
коміт
7f53b06a35

+ 105 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/model/entity/longArticle/PublishDailyReport.java

@@ -0,0 +1,105 @@
+package com.tzld.longarticle.recommend.server.model.entity.longArticle;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@Table(name = "publish_daily_report")
+public class PublishDailyReport {
+
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "date_str")
+    private String dateStr;
+
+    @Column(name = "publish_time")
+    private String publishTime;
+
+    @Column(name = "account_source")
+    private String accountSource;
+
+    @Column(name = "account_status")
+    private String accountStatus;
+
+    @Column(name = "business_type")
+    private String businessType;
+
+    @Column(name = "account_name")
+    private String accountName;
+
+    @Column(name = "strategy")
+    private String strategy;
+
+    @Column(name = "fans")
+    private Integer fans;
+
+    @Column(name = "avg_view_count")
+    private Double avgViewCount;
+
+    @Column(name = "read_rate")
+    private Double readRate = 0.0;
+
+    @Column(name = "read_fans_rate")
+    private Double readFansRate = 0.0;
+
+    @Column(name = "first_read_rate")
+    private Double firstReadRate = 0.0;
+
+    @Column(name = "fission0_first_rate")
+    private Double fission0FirstRate = 0.0;
+
+    @Column(name = "fission0_head_first_rate")
+    private Double fission0HeadFirstRate = 0.0;
+
+    @Column(name = "fission0_recommend_first_rate")
+    private Double fission0RecommendFirstRate = 0.0;
+
+    @Column(name = "fission1_fission0_rate")
+    private Double fission1Fission0Rate = 0.0;
+
+    @Column(name = "fission0_read_avg_rate")
+    private Double fission0ReadAvgRate = 0.0;
+
+    @Column(name = "his_read_rate")
+    private Double hisReadRate = 0.0;
+
+    @Column(name = "his_first_read_rate")
+    private Double hisFirstReadRate = 0.0;
+
+    @Column(name = "his_fission0_first_rate")
+    private Double hisFission0FirstRate = 0.0;
+
+    @Column(name = "position")
+    private Integer position;
+
+    @Column(name = "gh_id")
+    private String ghId;
+
+    @Column(name = "title")
+    private String title;
+
+    @Column(name = "link")
+    private String link;
+
+    @Column(name = "crawler_plan_name")
+    private String crawlerPlanName;
+
+    @Column(name = "produce_plan_name")
+    private String producePlanName;
+
+    @Column(name = "publish_plan_name")
+    private String publishPlanName;
+
+    @Column(name = "source_produce_plan_name")
+    private String sourceProducePlanName;
+}

+ 10 - 0
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/repository/longArticle/PublishDailyReportRepository.java

@@ -0,0 +1,10 @@
+package com.tzld.longarticle.recommend.server.repository.longArticle;
+
+import com.tzld.longarticle.recommend.server.model.entity.longArticle.PublishDailyReport;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface PublishDailyReportRepository extends JpaRepository<PublishDailyReport, Long> {
+
+}

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

@@ -51,6 +51,7 @@ 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.beans.factory.annotation.Value;
 import org.springframework.data.util.Pair;
@@ -120,6 +121,8 @@ public class DataDashboardService {
     private LongArticlesPublishMiniprogramRepository longArticlesPublishMiniprogramRepository;
     @Autowired
     private LongArticlesNewVideoCoverRepository longArticlesNewVideoCoverRepository;
+    @Autowired
+    private PublishDailyReportRepository publishDailyReportRepository;
 
     @ApolloJsonValue("${export.account.ghId:[]}")
     private static List<String> ghIdList;
@@ -149,6 +152,28 @@ public class DataDashboardService {
         return ReturnT.SUCCESS;
     }
 
+    @XxlJob("scheduledExportMysql")
+    public ReturnT<String> scheduledExportMysql(String param) {
+        if (!StringUtils.hasText(param)) {
+            return ReturnT.FAIL;
+        }
+        JSONObject jsonObject = JSONObject.parseObject(param);
+        String minDate = jsonObject.getString("minDate");
+        String maxDate = jsonObject.getString("maxDate");
+        List<NewSortStrategyExport> newContentsYesData = newSortStrategyData(minDate, maxDate,
+                ArticleTypeEnum.QUNFA.getVal(), StatusEnum.ZERO.getCode());
+        if (CollectionUtils.isNotEmpty(newContentsYesData)) {
+            List<PublishDailyReport> reports = new ArrayList<>();
+            for (NewSortStrategyExport newSortStrategyExport : newContentsYesData) {
+                PublishDailyReport publishDailyReport = new PublishDailyReport();
+                BeanUtils.copyProperties(newSortStrategyExport, publishDailyReport);
+                reports.add(publishDailyReport);
+            }
+            publishDailyReportRepository.saveAll(reports);
+        }
+        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(),