Kaynağa Gözat

fix on 2020.09.03

jiequan.bi 4 yıl önce
ebeveyn
işleme
0e05d3fb88

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/ProjectMemberMapper.xml

@@ -28,6 +28,7 @@
                  open="(" close=")">
             #{item}
         </foreach>
+        order by create_time desc
     </select>
 
     <!-- 视频报表设计师leader展示自己所在公司的所有项目 -->
@@ -121,6 +122,7 @@
                  open="(" close=")">
             #{item}
         </foreach>
+        order by b.create_time desc
     </select>
 
     <select id="getSaleProjects" resultType="org.jeecg.modules.ctop.entity.ProjectMember">

+ 17 - 3
jeecg-boot-module-system/src/test/java/org/jeecg/SampleTest.java

@@ -15,6 +15,8 @@ import cn.com.ctop.kuaishou.modules.graphql.service.IKuaishouWebInterfaceService
 import cn.com.ctop.kuaishou.modules.report.service.IKuaiShouDailyAgentService;
 import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportDailyAgentService;
 import cn.com.ctop.toutiao.modules.report.service.IReportService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.log.XxlJobLogger;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.util.DateUtils;
@@ -140,10 +142,22 @@ public class SampleTest {
         }
     }
 
+    @Autowired
+    private ICtopOauthTokenService tokenService;
     @Test
     public void loadAccountData() {
-        CtopOauthToken token = oauthTokenService.getTokenByAccountId(1665922219192387L);
-        reportService.getAdvertiserReport(token, DateUtils.parseDate("2020-09-01","yy-MM-dd"),  DateUtils.parseDate("2020-09-01","yy-MM-dd"), CtopAdConstant.BYTEDANCE_REPORT_TYPE_HOURLY);
+        //查询需要拉取数据的账户token
+        List<CtopOauthToken> tokens = tokenService.selectToutiaoToken();
+
+        Date yesterday = DateUtils.parseDate(DateUtils.getAnotherDay("yy-MM-dd", DateUtils.getNowDate("yy-MM-dd"), -1), "yy-MM-dd");
+        tokens.forEach(it -> {
+            try {
+                reportService.getAdvertiserReport(it, yesterday, yesterday, CtopAdConstant.BYTEDANCE_REPORT_TYPE_HOURLY);
+            } catch (Exception e) {
+                XxlJobLogger.log("获取昨日头条小时数据异常:拉取数据异常");
+                XxlJobLogger.log(e.getMessage());
+            }
+        });
     }
 
     @Autowired
@@ -164,7 +178,7 @@ public class SampleTest {
                 uReportExportService.exportExcel(uReport.getString("name"));
                 uReportSubscriber.forEach(sender->{
                     emailSendMsgHandle.SendAttachment("bijiequan@c-top.com.cn",title,content,
-                            new File(System.getProperty("user.dir")+ File.separator + "uReport"+File.separator+uReport.getString("name").replace("ureport.xml","")+"xlsx"));
+                            new File("/data/file/report"+ File.separator + "uReport"+File.separator+uReport.getString("name").replace("ureport.xml","")+"xlsx"));
                 }); }
         });
         //发完全部订阅,删除文件

+ 1 - 1
module-job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/BytedanceAdvertiserHourlyReportLoadJob.java

@@ -26,7 +26,7 @@ public class BytedanceAdvertiserHourlyReportLoadJob {
     private ICtopOauthTokenService tokenService;
     @Autowired
     private IReportService reportService;
-    static ExecutorService executorService = Executors.newFixedThreadPool(4);;
+    static ExecutorService executorService = Executors.newFixedThreadPool(4);
 
     @XxlJob("bytedanceAdvertiserHourlyReport")
     public ReturnT<String> execute(String param) throws Exception {

+ 52 - 0
module-job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/BytedanceYesterdayAdvertiserHourlyLoadJob.java

@@ -0,0 +1,52 @@
+package cn.com.ctop.job.bytedance.handler;
+
+import cn.com.ctop.common.module.entity.CtopOauthToken;
+import cn.com.ctop.common.module.service.ICtopOauthTokenService;
+import cn.com.ctop.common.module.utils.CtopAdConstant;
+import cn.com.ctop.toutiao.modules.report.service.IReportService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ *  Created by JQ.bi on 2020.09.03
+ */
+public class BytedanceYesterdayAdvertiserHourlyLoadJob {
+
+    @Autowired
+    private ICtopOauthTokenService tokenService;
+
+    @Autowired
+    private IReportService reportService;
+
+    private ExecutorService executorService = Executors.newFixedThreadPool(5);
+    @XxlJob("byteDanceAdvertiserHourlyReport")
+    public ReturnT<String> execute(String param) throws Exception {
+        //查询需要拉取数据的账户token
+        List<CtopOauthToken> tokens = tokenService.selectToutiaoToken();
+        if (null == tokens || tokens.isEmpty()) {
+            XxlJobLogger.log("获取昨日头条小时数据异常:未获取到可用的token");
+            return ReturnT.FAIL;
+        }
+        Date yesterday = DateUtils.parseDate(DateUtils.getAnotherDay("yy-MM-dd", DateUtils.getNowDate("yy-MM-dd"), -1), "yy-MM-dd");
+        tokens.forEach(it ->executorService.submit(() -> {
+            try {
+                reportService.getAdvertiserReport(it, yesterday, yesterday, CtopAdConstant.BYTEDANCE_REPORT_TYPE_HOURLY);
+            } catch (Exception e) {
+                XxlJobLogger.log("获取昨日头条小时数据异常:拉取数据异常");
+                XxlJobLogger.log(e.getMessage());
+            }
+        }));
+        if(!executorService.isShutdown()){
+            executorService.shutdown();
+        }
+        return ReturnT.SUCCESS;
+    }
+}

+ 3 - 3
module-job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/SendDailyUReportJob.java

@@ -23,7 +23,7 @@ public class SendDailyUReportJob {
     @Autowired
     IUReportService uReportService;
     @Autowired
-    ICtopCorpWexinUserService CorpUserService;
+    ICtopCorpWexinUserService corpUserService;
 
     /**
      * 检查任务执行结果
@@ -38,7 +38,7 @@ public class SendDailyUReportJob {
                  //下载文件到本地
                  uReportExportService.exportExcel(uReport.getString("name"));
                  uReportSubscriber.forEach(sender->{
-                     String receiver=CorpUserService.getEmailByUserId(sender.getSender());
+                     String receiver=corpUserService.getEmailByUserId(sender.getSender());
                      emailSendMsgHandle.SendAttachment(receiver,title,content,
                              new File("/data/file/report"+ File.separator + "uReport"+File.separator+uReport.getString("name")
                                      .replace("ureport.xml","")+"xlsx"));
@@ -46,7 +46,7 @@ public class SendDailyUReportJob {
              }
         });
         //发完全部订阅,删除文件
-        File file =new File(System.getProperty("/data/file/report")+ File.separator + "uReport");
+        File file =new File("/data/file/report"+ File.separator + "uReport");
             File[] files=file.listFiles();
             if(files!=null&&files.length>0){
                 for (File f: files){