ソースを参照

修改定时任务

zhouzeyu@c-top.com.cn 4 年 前
コミット
a113691d7f

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IBytedanceFileImageGetService.java

@@ -12,5 +12,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IBytedanceFileImageGetService  {
 
-    void getFileImageData(OauthToken oauthToken, int i, int i1);
+    void getFileImageData(OauthToken oauthToken,String startDate,String endDate, int i, int i1);
 }

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IBytedanceFileVideoGetService.java

@@ -12,5 +12,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IBytedanceFileVideoGetService  {
 
-    void getFileVideoData(OauthToken oauthToken, int i, int i1);
+    void getFileVideoData(OauthToken oauthToken, String startDate,String endDate,int i, int i1);
 }

+ 6 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceFileImageGetServiceImpl.java

@@ -32,7 +32,7 @@ public class BytedanceFileImageGetServiceImpl implements IBytedanceFileImageGetS
     BytedanceFileImageGetMapper bytedanceFileImageGetMapper;
 
     @Override
-    public void getFileImageData(OauthToken oauthToken, int page, int pageSize) {
+    public void getFileImageData(OauthToken oauthToken, String startDate, String endDate, int page, int pageSize) {
         log.info("开始获取图片素材 accountID:{},page:{}", oauthToken.getAccountId(), page);
         // 请求地址
         String url = bytedanceApiUrl + BytedanceConstant.BYTEDANCE_V2_FILE_IMAGE_GET;
@@ -40,6 +40,10 @@ public class BytedanceFileImageGetServiceImpl implements IBytedanceFileImageGetS
         param.put("advertiser_id", oauthToken.getAccountId());
         param.put("page", page);
         param.put("page_size", pageSize);
+        JSONObject param2 = new JSONObject();
+        param2.put("start_time", startDate);
+        param2.put("end_time", endDate);
+        param.put("filtering", param2);
         JSONObject resultObject = HttpUtils.bytedanceGetRequest(oauthToken.getAccessToken(), url, param);
 
         Integer code = resultObject.getInteger("code");
@@ -71,7 +75,7 @@ public class BytedanceFileImageGetServiceImpl implements IBytedanceFileImageGetS
         page++;
         int totalPage = resultObject.getJSONObject("data").getJSONObject("page_info").getInteger("total_page");
         if (page <= totalPage) {
-            getFileImageData(oauthToken, page, 100);
+            getFileImageData(oauthToken, startDate, endDate, page, 100);
         }
     }
 }

+ 7 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceFileVideoGetServiceImpl.java

@@ -32,14 +32,19 @@ public class BytedanceFileVideoGetServiceImpl implements IBytedanceFileVideoGetS
     BytedanceFileVideoGetMapper bytedanceFileVideoGetMapper;
 
     @Override
-    public void getFileVideoData(OauthToken oauthToken, int page, int pageSize) {
+    public void getFileVideoData(OauthToken oauthToken, String startDate,String endDate,int page, int pageSize) {
         log.info("开始获取视频素材 accountID:{},page:{}", oauthToken.getAccountId(), page);
         // 请求地址
         String url = bytedanceApiUrl + BytedanceConstant.BYTEDANCE_V2_FILE_VIDEO_GET;
         JSONObject param = new JSONObject();
+
         param.put("advertiser_id", oauthToken.getAccountId());
         param.put("page", page);
         param.put("page_size", pageSize);
+        JSONObject param2 = new JSONObject();
+        param2.put("start_time",startDate);
+        param2.put("end_time",endDate);
+        param.put("filtering",param2);
         JSONObject resultObject = HttpUtils.bytedanceGetRequest(oauthToken.getAccessToken(), url, param);
 
         Integer code = resultObject.getInteger("code");
@@ -68,7 +73,7 @@ public class BytedanceFileVideoGetServiceImpl implements IBytedanceFileVideoGetS
         page++;
         int totalPage = resultObject.getJSONObject("data").getJSONObject("page_info").getInteger("total_page");
         if (page <= totalPage) {
-            getFileVideoData(oauthToken, page, 100);
+            getFileVideoData(oauthToken,startDate, endDate,page, 100);
         }
     }
 }

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceMaterialReportDailyServiceImpl.java

@@ -33,7 +33,7 @@ public class BytedanceMaterialReportDailyServiceImpl implements IBytedanceMateri
 
     @Override
     public void bytedanceDailyMaterialReportJob(OauthToken oauthToken, String yesterda, String yesterda1, int page, int pageSize) {
-        log.info("开始获取图片和视频素材日报 accountID:{},page:{}", oauthToken.getAccountId(), page);
+        log.info("开始获取图片和视频素材日报 accountID:{},page:{} date:{}", oauthToken.getAccountId(), page,yesterda);
         // 请求地址
         String url = bytedanceApiUrl + BytedanceConstant.BYTEDANCE_V2_REPORT_INTEGRATED_GET;
         JSONObject param = new JSONObject();

+ 65 - 24
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/utils/DateUtils.java

@@ -1,41 +1,82 @@
 package cn.com.ctop.job.bytedance.data.utils;
 
+import lombok.extern.slf4j.Slf4j;
+
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
 
+@Slf4j
 public class DateUtils {
 
-  public static Integer getDateInteger(String date) {
-    if (!Check.isNull(date)) {
-      String replace = date.replace("-", "");
-      return Integer.valueOf(replace);
+    public static Integer getDateInteger(String date) {
+        if (!Check.isNull(date)) {
+            String replace = date.replace("-", "");
+            return Integer.valueOf(replace);
+        }
+        return null;
     }
-    return null;
-  }
 
-  public static String getNowDate(String format) {
-    SimpleDateFormat sdf = new SimpleDateFormat(format);
-    Date date = new Date();
-    return sdf.format(date);
-  }
+    public static String getNowDate(String format) {
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        Date date = new Date();
+        return sdf.format(date);
+    }
 
 
-  public static String getAnotherDay(String format, String date, Integer num) {
+    public static String getAnotherDay(String format, String date, Integer num) {
 
-    SimpleDateFormat sdf = new SimpleDateFormat(format);
-    Date getDate = null;
-    try {
-      getDate = sdf.parse(date);
-    } catch (ParseException e) {
-      e.printStackTrace();
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        Date getDate = null;
+        try {
+            getDate = sdf.parse(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(getDate);
+        calendar.add(Calendar.DAY_OF_MONTH, num);
+        Date resultDate = calendar.getTime();
+        return sdf.format(resultDate);
     }
-    Calendar calendar = Calendar.getInstance();
-    calendar.setTime(getDate);
-    calendar.add(Calendar.DAY_OF_MONTH, num);
-    Date resultDate = calendar.getTime();
-    return sdf.format(resultDate);
-  }
+
+    /**
+     * 获取两个时间中的每一天
+     *
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    public static List<String> getPerDay(String startTime, String endTime) {
+        //定义一个接受时间的集合
+        List<String> lDate = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        try {
+            Date startDate = sdf.parse(startTime);
+            Date endDate = sdf.parse(endTime);
+            lDate.add(sdf.format(startDate));
+            Calendar calBegin = Calendar.getInstance();
+            // 使用给定的 Date 设置此 Calendar 的时间
+            calBegin.setTime(startDate);
+            Calendar calEnd = Calendar.getInstance();
+            // 使用给定的 Date 设置此 Calendar 的时间
+            calEnd.setTime(endDate);
+            // 测试此日期是否在指定日期之后
+            while (calEnd.getTime().after(calBegin.getTime())) {
+                // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
+                calBegin.add(Calendar.DAY_OF_MONTH, 1);
+                lDate.add(sdf.format(calBegin.getTime()));
+            }
+        } catch (Exception e) {
+            log.info("日期转换错误");
+        }
+
+
+        return lDate;
+    }
+
 
 }

+ 9 - 8
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/BytedanceFileGetLoadJob.java

@@ -1,8 +1,9 @@
 package cn.com.ctop.job.bytedance.handler;
 
-import cn.com.ctop.job.bytedance.data.constant.CtopAdConstant;
 import cn.com.ctop.job.bytedance.data.entity.OauthToken;
-import cn.com.ctop.job.bytedance.data.service.*;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceFileImageGetService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceFileVideoGetService;
+import cn.com.ctop.job.bytedance.data.service.IOauthTokenService;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.DateUtils;
 import com.xxl.job.core.context.XxlJobHelper;
@@ -11,8 +12,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -47,7 +46,8 @@ public class BytedanceFileGetLoadJob {
             log.error("入参为空");
             return;
         }
-
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
         String token = tokenService.getByAccountId(Long.valueOf(param));
         if (Check.isNull(token)) {
             log.error("此账户未获取到相关token,accountId:{}", param);
@@ -56,7 +56,7 @@ public class BytedanceFileGetLoadJob {
         OauthToken oauthToken = new OauthToken();
         oauthToken.setAccessToken(token);
         oauthToken.setAccountId(Long.parseLong(param));
-        fileImageService.getFileImageData(oauthToken,1,100);
+        fileImageService.getFileImageData(oauthToken, yesterda, yesterda, 1, 100);
     }
 
 
@@ -72,8 +72,9 @@ public class BytedanceFileGetLoadJob {
             log.error("入参为空");
             return;
         }
-
         String token = tokenService.getByAccountId(Long.valueOf(param));
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
         if (Check.isNull(token)) {
             log.error("此账户未获取到相关token,accountId:{}", param);
             return;
@@ -81,7 +82,7 @@ public class BytedanceFileGetLoadJob {
         OauthToken oauthToken = new OauthToken();
         oauthToken.setAccessToken(token);
         oauthToken.setAccountId(Long.parseLong(param));
-        fileVideoService.getFileVideoData(oauthToken,1,100);
+        fileVideoService.getFileVideoData(oauthToken, yesterda, yesterda, 1, 100);
     }