Przeglądaj źródła

adq-账户报表

yumeng 1 rok temu
rodzic
commit
1044bd78bb

+ 10 - 23
job-adq/src/main/java/cn/com/ctop/job/adq/controller/AdqController.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.job.adq.controller;
 
+import cn.com.ctop.job.adq.data.service.IAdqAccountReportService;
 import cn.com.ctop.job.adq.data.service.IAdqAdminAdvertiserListService;
 import cn.com.ctop.job.adq.data.service.IAdqCreativeReportService;
 import cn.com.ctop.job.adq.data.service.IAdqRetryReportService;
@@ -32,33 +33,19 @@ public class AdqController {
     private static ExecutorService dailyExecutorService = Executors.newFixedThreadPool(5);
     @Autowired
     private IAdqCreativeReportService adqReportService;
+
+    @Autowired
+    private IAdqAccountReportService accountReportService;
     @Autowired
     private IAdqRetryReportService retryReportService;
     @Autowired
     private IAdqAdminAdvertiserListService adminAdvertiserListService;
 
     @GetMapping("/testCreativeHour")
-    public JSONObject testRefreshToken(String date) {
-        List<JSONObject> list = adqReportService.getAccountList();
-        List<String> days = DateUtils.getDays("2025-02-15", "2025-03-13");
-
-        for (int i = 0; i < list.size(); i++) {
-            JSONObject jsonObject = list.get(i);
-
-            Long advertiserId = jsonObject.getLong("advertiserId");
-            String accessToken = jsonObject.getString("accessToken");
-            for (int j = 0; j < days.size(); j++) {
-                String s = days.get(j);
-                dailyExecutorService.submit(new Runnable() {
-                    @Override
-                    public void run() {
-                        adqReportService.getAdqCreativeHour(advertiserId, accessToken, s, s, 1, 1);
-                    }
-                });
-            }
-
-
-        }
+    public JSONObject testRefreshToken(Long advertiserId, String accessToken, String date) {
+       // accountReportService.getAdqAccountHour(advertiserId, accessToken, "2025-03-28", date, 1, 1);
+        accountReportService.getAdqAccountDaily(advertiserId, accessToken, "2025-03-27", date, 1, 1);
+    //    adqReportService.getAdqCreativeDaily(advertiserId, accessToken, "2025-03-27", date, 1, 1);
         return null;
     }
 
@@ -79,10 +66,10 @@ public class AdqController {
 
                 if ("creative".equals(dataDimension)) {
                     if (dataType.equals("hour")) { // 广告时报
-                        retryReportService.getCreativeHourRetry(id, advertiserId, accessToken, startDate, endDate, 1,2);
+                        retryReportService.getCreativeHourRetry(id, advertiserId, accessToken, startDate, endDate, 1, 2);
                     }
                     if (dataType.equals("daily")) { // 广告日报
-                        retryReportService.getCreativeDailyRetry(id, advertiserId, accessToken, startDate, endDate, 1,2);
+                        retryReportService.getCreativeDailyRetry(id, advertiserId, accessToken, startDate, endDate, 1, 2);
                     }
                 }
             }

+ 246 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/AdqAdvertiserReportDaily.java

@@ -0,0 +1,246 @@
+package cn.com.ctop.job.adq.data.entity;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 广点通创意时报对象 adq_creative_report_hour
+ *
+ * @author ruoyi
+ * @date 2025-03-06
+ */
+public class AdqAdvertiserReportDaily {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 广告主ID
+     */
+    private Long advertiserId;
+
+
+    /**
+     * 数据起始时间
+     */
+    private Long statTimeDay;
+
+
+    /**
+     * 消耗
+     */
+    private BigDecimal cost;
+
+    /**
+     * 展示
+     */
+    private Long viewCount;
+
+    /**
+     * 点击
+     */
+    private Long validClickCount;
+
+    /**
+     * 转化
+     */
+    private Long conversionsCount;
+
+    /**
+     * 深度转化
+     */
+    private Long deepConversionsCount;
+
+    /**
+     * APP激活次数
+     */
+    private Long activatedCount;
+
+    /**
+     * 注册次数
+     */
+    private Long regPv;
+
+    /**
+     * 次日留存次数
+     */
+    private Long retentionCount;
+
+    /**
+     * 视频有效播放次数
+     */
+    private Long videoOuterPlayCount;
+
+    /**
+     * 100%进度播放次数
+     */
+    private Long videoOuterPlay100Count;
+
+    /**
+     * 关键行为转化次数
+     */
+    private Long keyBehaviorConversionsCount;
+
+    /**
+     * 付费次数
+     */
+    private Long purchasePv;
+
+    /**
+     * 付费金额
+     */
+    private BigDecimal purchaseAmount;
+
+    /**
+     * 首次付费人数
+     */
+    private Long firstPayCount;
+
+    public Long getAdvertiserId() {
+        return advertiserId;
+    }
+
+    public void setAdvertiserId(Long advertiserId) {
+        this.advertiserId = advertiserId;
+    }
+
+    public Long getStatTimeDay() {
+        return statTimeDay;
+    }
+
+    public void setStatTimeDay(Long statTimeDay) {
+        this.statTimeDay = statTimeDay;
+    }
+
+    public BigDecimal getCost() {
+        return cost;
+    }
+
+    public void setCost(BigDecimal cost) {
+        this.cost = cost;
+    }
+
+    public Long getViewCount() {
+        return viewCount;
+    }
+
+    public void setViewCount(Long viewCount) {
+        this.viewCount = viewCount;
+    }
+
+    public Long getValidClickCount() {
+        return validClickCount;
+    }
+
+    public void setValidClickCount(Long validClickCount) {
+        this.validClickCount = validClickCount;
+    }
+
+    public Long getConversionsCount() {
+        return conversionsCount;
+    }
+
+    public void setConversionsCount(Long conversionsCount) {
+        this.conversionsCount = conversionsCount;
+    }
+
+    public Long getDeepConversionsCount() {
+        return deepConversionsCount;
+    }
+
+    public void setDeepConversionsCount(Long deepConversionsCount) {
+        this.deepConversionsCount = deepConversionsCount;
+    }
+
+    public Long getActivatedCount() {
+        return activatedCount;
+    }
+
+    public void setActivatedCount(Long activatedCount) {
+        this.activatedCount = activatedCount;
+    }
+
+    public Long getRegPv() {
+        return regPv;
+    }
+
+    public void setRegPv(Long regPv) {
+        this.regPv = regPv;
+    }
+
+    public Long getRetentionCount() {
+        return retentionCount;
+    }
+
+    public void setRetentionCount(Long retentionCount) {
+        this.retentionCount = retentionCount;
+    }
+
+    public Long getVideoOuterPlayCount() {
+        return videoOuterPlayCount;
+    }
+
+    public void setVideoOuterPlayCount(Long videoOuterPlayCount) {
+        this.videoOuterPlayCount = videoOuterPlayCount;
+    }
+
+    public Long getVideoOuterPlay100Count() {
+        return videoOuterPlay100Count;
+    }
+
+    public void setVideoOuterPlay100Count(Long videoOuterPlay100Count) {
+        this.videoOuterPlay100Count = videoOuterPlay100Count;
+    }
+
+    public Long getKeyBehaviorConversionsCount() {
+        return keyBehaviorConversionsCount;
+    }
+
+    public void setKeyBehaviorConversionsCount(Long keyBehaviorConversionsCount) {
+        this.keyBehaviorConversionsCount = keyBehaviorConversionsCount;
+    }
+
+    public Long getPurchasePv() {
+        return purchasePv;
+    }
+
+    public void setPurchasePv(Long purchasePv) {
+        this.purchasePv = purchasePv;
+    }
+
+    public BigDecimal getPurchaseAmount() {
+        return purchaseAmount;
+    }
+
+    public void setPurchaseAmount(BigDecimal purchaseAmount) {
+        this.purchaseAmount = purchaseAmount;
+    }
+
+    public Long getFirstPayCount() {
+        return firstPayCount;
+    }
+
+    public void setFirstPayCount(Long firstPayCount) {
+        this.firstPayCount = firstPayCount;
+    }
+
+    @Override
+    public String toString() {
+        return "AdqAdvertiserReportDaily{" +
+                "advertiserId=" + advertiserId +
+                ", statTimeDay=" + statTimeDay +
+                ", cost=" + cost +
+                ", viewCount=" + viewCount +
+                ", validClickCount=" + validClickCount +
+                ", conversionsCount=" + conversionsCount +
+                ", deepConversionsCount=" + deepConversionsCount +
+                ", activatedCount=" + activatedCount +
+                ", regPv=" + regPv +
+                ", retentionCount=" + retentionCount +
+                ", videoOuterPlayCount=" + videoOuterPlayCount +
+                ", videoOuterPlay100Count=" + videoOuterPlay100Count +
+                ", keyBehaviorConversionsCount=" + keyBehaviorConversionsCount +
+                ", purchasePv=" + purchasePv +
+                ", purchaseAmount=" + purchaseAmount +
+                ", firstPayCount=" + firstPayCount +
+                '}';
+    }
+}

+ 1 - 1
job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/AdqAccountReportHour.java

@@ -9,7 +9,7 @@ import java.math.BigDecimal;
  * @author ruoyi
  * @date 2025-03-06
  */
-public class AdqAccountReportHour {
+public class AdqAdvertiserReportHour {
     private static final long serialVersionUID = 1L;
 
     /**

+ 9 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AdqAccountReportMapper.java

@@ -1,4 +1,13 @@
 package cn.com.ctop.job.adq.data.mapper;
 
+import cn.com.ctop.job.adq.data.entity.AdqAdvertiserReportDaily;
+import cn.com.ctop.job.adq.data.entity.AdqAdvertiserReportHour;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
 public interface AdqAccountReportMapper {
+    void addAccountHourList(@Param("adds") List<AdqAdvertiserReportHour> hourList);
+
+    void addAccountDailyList(@Param("adds") List<AdqAdvertiserReportDaily> dailyList);
 }

+ 85 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AdqAccountReportMapper.xml

@@ -3,5 +3,90 @@
 <mapper namespace="cn.com.ctop.job.adq.data.mapper.AdqAccountReportMapper">
 
 
+    <insert id="addAccountHourList">
+        replace into adq_advertiser_report_hour (
+        advertiser_id,
+        stat_time_day,
+        `hour`,
+        cost,
+        view_count,
+        valid_click_count,
+        conversions_count,
+        deep_conversions_count,
+        activated_count,
+        reg_pv,
+        retention_count,
+        video_outer_play_count,
+        video_outer_play100_count,
+        key_behavior_conversions_count,
+        purchase_pv,
+        purchase_amount,
+        first_pay_count
+        )
+        values
+        <foreach collection="adds" item="item" separator=",">
+            (
 
+            #{item.advertiserId},
+            #{item.statTimeDay},
+            #{item.hour},
+            #{item.cost},
+            #{item.viewCount},
+            #{item.validClickCount},
+            #{item.conversionsCount},
+            #{item.deepConversionsCount},
+            #{item.activatedCount},
+            #{item.regPv},
+            #{item.retentionCount},
+            #{item.videoOuterPlayCount},
+            #{item.videoOuterPlay100Count},
+            #{item.keyBehaviorConversionsCount},
+            #{item.purchasePv},
+            #{item.purchaseAmount},
+            #{item.firstPayCount}
+            )
+        </foreach>
+    </insert>
+    <insert id="addAccountDailyList">
+        replace into adq_advertiser_report_daily (
+        advertiser_id,
+        stat_time_day,
+        cost,
+        view_count,
+        valid_click_count,
+        conversions_count,
+        deep_conversions_count,
+        activated_count,
+        reg_pv,
+        retention_count,
+        video_outer_play_count,
+        video_outer_play100_count,
+        key_behavior_conversions_count,
+        purchase_pv,
+        purchase_amount,
+        first_pay_count
+        )
+        values
+        <foreach collection="adds" item="item" separator=",">
+            (
+
+            #{item.advertiserId},
+            #{item.statTimeDay},
+            #{item.cost},
+            #{item.viewCount},
+            #{item.validClickCount},
+            #{item.conversionsCount},
+            #{item.deepConversionsCount},
+            #{item.activatedCount},
+            #{item.regPv},
+            #{item.retentionCount},
+            #{item.videoOuterPlayCount},
+            #{item.videoOuterPlay100Count},
+            #{item.keyBehaviorConversionsCount},
+            #{item.purchasePv},
+            #{item.purchaseAmount},
+            #{item.firstPayCount}
+            )
+        </foreach>
+    </insert>
 </mapper>

+ 2 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/IAdqAccountReportService.java

@@ -2,4 +2,6 @@ package cn.com.ctop.job.adq.data.service;
 
 public interface IAdqAccountReportService {
     void getAdqAccountHour(Long advertiserId, String accessToken, String startDate, String endDate,Integer page,Integer isLog);
+
+    void getAdqAccountDaily(Long advertiserId, String accessToken, String startDate, String endDate, Integer page, Integer isLog);
 }

+ 85 - 11
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqAccountReportServiceImpl.java

@@ -1,7 +1,7 @@
 package cn.com.ctop.job.adq.data.service.impl;
 
-import cn.com.ctop.job.adq.data.entity.AdqAccountReportHour;
-import cn.com.ctop.job.adq.data.entity.AdqCreativeReportHour;
+import cn.com.ctop.job.adq.data.entity.AdqAdvertiserReportDaily;
+import cn.com.ctop.job.adq.data.entity.AdqAdvertiserReportHour;
 import cn.com.ctop.job.adq.data.entity.AdqErrorLog;
 import cn.com.ctop.job.adq.data.mapper.AdqAccountReportMapper;
 import cn.com.ctop.job.adq.data.mapper.AdqErrorLogMapper;
@@ -27,6 +27,8 @@ import java.util.Map;
 public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
     @Autowired
     private AdqErrorLogMapper adqErrorLogMapper;
+    @Autowired
+    private AdqAccountReportMapper accountReportMapper;
 
 
     @Override
@@ -46,15 +48,15 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
             date_range.put("end_date", endDate);
             paramsMap.put("date_range", date_range);
             JSONArray group_by = new JSONArray();
+            group_by.add("date");
             group_by.add("hour");
             paramsMap.put("group_by", group_by);
-            JSONArray fieldsList = FieldsConfig.getFieldsList();
+            JSONArray fieldsList = FieldsConfig.getAccountHourFieldsList();
             paramsMap.put("fields", fieldsList);
             Integer totalNumber = 0;
-            List<AdqAccountReportHour> hourList = new ArrayList<>();
+            List<AdqAdvertiserReportHour> hourList = new ArrayList<>();
             String s = HttpUtils.httpGet("https://api.e.qq.com/v3.0/hourly_reports/get", paramsMap, null);
             JSONObject jsonObject = JSONObject.parseObject(s);
-            System.err.println(jsonObject);
             if (!Check.isNull(jsonObject)) {
                 Integer code = jsonObject.getInteger("code");
                 if (code == 0) {
@@ -68,7 +70,7 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
                         if (!Check.isNull(list)) {
                             for (int i = 0; i < list.size(); i++) {
                                 JSONObject dataJson = list.getJSONObject(i);
-                                AdqAccountReportHour hourReport = JSONObject.parseObject(dataJson.toJSONString(), AdqAccountReportHour.class);
+                                AdqAdvertiserReportHour hourReport = JSONObject.parseObject(dataJson.toJSONString(), AdqAdvertiserReportHour.class);
                                 hourReport.setAdvertiserId(advertiserId);
                                 hourReport.setStatTimeDay(Long.valueOf(startDate.replace("-", "")));
                                 hourList.add(hourReport);
@@ -76,26 +78,98 @@ public class AdqAccountReportServiceImpl implements IAdqAccountReportService {
                         }
                     }
                 } else {
-                    log.error("请求创意时报失败,account_id:{},返回信息:{}", advertiserId, jsonObject);
+                    log.error("请求账户时报失败,account_id:{},返回信息:{}", advertiserId, jsonObject);
                     if (isLog == 1) {
                         AdqErrorLog errorInfo = new AdqErrorLog();
                         errorInfo.setAdvertiserId(advertiserId);
                         errorInfo.setStartDate(startDate);
                         errorInfo.setEndDate(endDate);
-                        errorInfo.setDataDimension("creative");
+                        errorInfo.setDataDimension("account");
                         errorInfo.setDataType("hour");
-                       // adqErrorLogMapper.replaceErrorInfo(errorInfo);
+                        adqErrorLogMapper.replaceErrorInfo(errorInfo);
                     }
                     return;
                 }
             }
             if (!Check.isNull(hourList)) {
-            //    accountReportMapper.addsHourList(hourList);
+                accountReportMapper.addAccountHourList(hourList);
+            }
+            if (totalNumber >= 1000) {
+                getAdqAccountHour(advertiserId, accessToken, startDate, endDate, page + 1, isLog);
+            } else {
+                log.error("请求账户时报完成,account_id:{},日期:{}", advertiserId, startDate);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void getAdqAccountDaily(Long advertiserId, String accessToken, String startDate, String endDate, Integer page, Integer isLog) {
+        try {
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("access_token", accessToken);
+            long timestamp = Instant.now().getEpochSecond();
+            paramsMap.put("timestamp", String.valueOf(timestamp));
+            paramsMap.put("nonce", RandomStringGenerator.generateRandomString(32));
+            paramsMap.put("page", page);
+            paramsMap.put("page_size", 1000);
+            paramsMap.put("account_id", advertiserId);
+            paramsMap.put("level", "REPORT_LEVEL_ADVERTISER");
+            JSONObject date_range = new JSONObject();
+            date_range.put("start_date", startDate);
+            date_range.put("end_date", endDate);
+            paramsMap.put("date_range", date_range);
+            JSONArray group_by = new JSONArray();
+            group_by.add("date");
+            paramsMap.put("group_by", group_by);
+            JSONArray fieldsList = FieldsConfig.getAccountDailyFieldsList();
+            paramsMap.put("fields", fieldsList);
+            Integer totalNumber = 0;
+            List<AdqAdvertiserReportDaily> dailyList = new ArrayList<>();
+            String s = HttpUtils.httpGet("https://api.e.qq.com/v3.0/daily_reports/get", paramsMap, null);
+            JSONObject jsonObject = JSONObject.parseObject(s);
+            if (!Check.isNull(jsonObject)) {
+                Integer code = jsonObject.getInteger("code");
+                if (code == 0) {
+                    JSONObject data = jsonObject.getJSONObject("data");
+                    if (!Check.isNull(data)) {
+                        JSONObject pageInfo = data.getJSONObject("page_info");
+                        if (!Check.isNull(pageInfo)) {
+                            totalNumber = pageInfo.getInteger("total_number");
+                        }
+                        JSONArray list = data.getJSONArray("list");
+                        if (!Check.isNull(list)) {
+                            for (int i = 0; i < list.size(); i++) {
+                                JSONObject dataJson = list.getJSONObject(i);
+                                AdqAdvertiserReportDaily dailyReport = JSONObject.parseObject(dataJson.toJSONString(), AdqAdvertiserReportDaily.class);
+                                dailyReport.setAdvertiserId(advertiserId);
+                                dailyReport.setStatTimeDay(Long.valueOf(dataJson.getString("date").replace("-", "")));
+                                dailyList.add(dailyReport);
+                            }
+                        }
+                    }
+                } else {
+                    log.error("请求账户日报失败,account_id:{},返回信息:{}", advertiserId, jsonObject);
+                    if (isLog == 1) {
+                        AdqErrorLog errorInfo = new AdqErrorLog();
+                        errorInfo.setAdvertiserId(advertiserId);
+                        errorInfo.setStartDate(startDate);
+                        errorInfo.setEndDate(endDate);
+                        errorInfo.setDataDimension("account");
+                        errorInfo.setDataType("daily");
+                        adqErrorLogMapper.replaceErrorInfo(errorInfo);
+                    }
+                    return;
+                }
+            }
+            if (!Check.isNull(dailyList)) {
+                accountReportMapper.addAccountDailyList(dailyList);
             }
             if (totalNumber >= 1000) {
                 getAdqAccountHour(advertiserId, accessToken, startDate, endDate, page + 1, isLog);
             } else {
-                log.error("请求创意时报完成,account_id:{},日期:{}", advertiserId, startDate);
+                log.error("请求账户日报完成,account_id:{},日期:{}", advertiserId, startDate);
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 5 - 4
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqCreativeCreativeReportServiceImpl.java

@@ -52,7 +52,7 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
             group_by.add("adgroup_id");
             group_by.add("dynamic_creative_id");
             paramsMap.put("group_by", group_by);
-            JSONArray fieldsList = FieldsConfig.getFieldsList();
+            JSONArray fieldsList = FieldsConfig.getCreativeHourFieldsList();
             paramsMap.put("fields", fieldsList);
             Integer totalNumber = 0;
             List<AdqCreativeReportHour> hourList = new ArrayList<>();
@@ -130,12 +130,13 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
             JSONArray group_by = new JSONArray();
             group_by.add("adgroup_id");
             group_by.add("dynamic_creative_id");
+            group_by.add("date");
             paramsMap.put("group_by", group_by);
-            JSONArray fieldsList = FieldsConfig.getFieldsList();
+            JSONArray fieldsList = FieldsConfig.getCreativeDailyFieldsList();
             paramsMap.put("fields", fieldsList);
             Integer totalNumber = 0;
             List<AdqCreativeReportDaily> dailies = new ArrayList<>();
-            String s = HttpUtils.httpGet("https://api.e.qq.com/v3.0/hourly_reports/get", paramsMap, null);
+            String s = HttpUtils.httpGet("https://api.e.qq.com/v3.0/daily_reports/get", paramsMap, null);
             JSONObject jsonObject = JSONObject.parseObject(s);
             if (!Check.isNull(jsonObject)) {
                 Integer code = jsonObject.getInteger("code");
@@ -152,7 +153,7 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
                                 JSONObject dataJson = list.getJSONObject(i);
                                 AdqCreativeReportDaily hourReport = JSONObject.parseObject(dataJson.toJSONString(), AdqCreativeReportDaily.class);
                                 hourReport.setAdvertiserId(advertiserId);
-                                hourReport.setStatTimeDay(Long.valueOf(startDate.replace("-", "")));
+                                hourReport.setStatTimeDay(Long.valueOf(dataJson.getString("date").replace("-", "")));
                                 dailies.add(hourReport);
                             }
                         }

+ 5 - 4
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AdqRetryReportServiceImpl.java

@@ -51,7 +51,7 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
         group_by.add("adgroup_id");
         group_by.add("dynamic_creative_id");
         paramsMap.put("group_by", group_by);
-        JSONArray fieldsList = FieldsConfig.getFieldsList();
+        JSONArray fieldsList = FieldsConfig.getCreativeHourFieldsList();
         paramsMap.put("fields", fieldsList);
         Integer totalNumber = 0;
         List<AdqCreativeReportHour> hourList = new ArrayList<>();
@@ -116,12 +116,13 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
             JSONArray group_by = new JSONArray();
             group_by.add("adgroup_id");
             group_by.add("dynamic_creative_id");
+            group_by.add("date");
             paramsMap.put("group_by", group_by);
-            JSONArray fieldsList = FieldsConfig.getFieldsList();
+            JSONArray fieldsList = FieldsConfig.getCreativeDailyFieldsList();
             paramsMap.put("fields", fieldsList);
             Integer totalNumber = 0;
             List<AdqCreativeReportDaily> dailies = new ArrayList<>();
-            String s = HttpUtils.httpGet("https://api.e.qq.com/v3.0/hourly_reports/get", paramsMap, null);
+            String s = HttpUtils.httpGet("https://api.e.qq.com/v3.0/daily_reports/get", paramsMap, null);
             JSONObject jsonObject = JSONObject.parseObject(s);
             if (!Check.isNull(jsonObject)) {
                 Integer code = jsonObject.getInteger("code");
@@ -138,7 +139,7 @@ public class AdqRetryReportServiceImpl implements IAdqRetryReportService {
                                 JSONObject dataJson = list.getJSONObject(i);
                                 AdqCreativeReportDaily hourReport = JSONObject.parseObject(dataJson.toJSONString(), AdqCreativeReportDaily.class);
                                 hourReport.setAdvertiserId(advertiserId);
-                                hourReport.setStatTimeDay(Long.valueOf(startDate.replace("-", "")));
+                                hourReport.setStatTimeDay(Long.valueOf(dataJson.getString("date").replace("-", "")));
                                 dailies.add(hourReport);
                             }
                         }

+ 75 - 1
job-adq/src/main/java/cn/com/ctop/job/adq/data/utils/FieldsConfig.java

@@ -7,7 +7,51 @@ import java.util.List;
 
 public class FieldsConfig {
 
-    public static JSONArray getFieldsList(){
+    public static JSONArray getAccountHourFieldsList(){
+        JSONArray fields = new JSONArray();
+        fields.add("account_id");
+        fields.add("hour");
+        fields.add("cost");
+        fields.add("view_count");
+        fields.add("valid_click_count");
+        fields.add("conversions_count");
+        fields.add("deep_conversions_count");
+        fields.add("activated_count");
+        fields.add("reg_pv");
+        fields.add("retention_count");
+        fields.add("video_outer_play_count");
+        fields.add("video_outer_play100_count");
+        fields.add("key_behavior_conversions_count");
+        fields.add("purchase_pv");
+        fields.add("purchase_amount");
+        fields.add("first_pay_count");
+        return fields;
+    }
+
+
+    public static JSONArray getAccountDailyFieldsList() {
+        JSONArray fields = new JSONArray();
+        fields.add("account_id");
+        fields.add("date");
+        fields.add("cost");
+        fields.add("view_count");
+        fields.add("valid_click_count");
+        fields.add("conversions_count");
+        fields.add("deep_conversions_count");
+        fields.add("activated_count");
+        fields.add("reg_pv");
+        fields.add("retention_count");
+        fields.add("video_outer_play_count");
+        fields.add("video_outer_play100_count");
+        fields.add("key_behavior_conversions_count");
+        fields.add("purchase_pv");
+        fields.add("purchase_amount");
+        fields.add("first_pay_count");
+        return fields;
+    }
+
+
+    public static JSONArray getCreativeHourFieldsList(){
         JSONArray fields = new JSONArray();
         fields.add("account_id");
         fields.add("adgroup_id");
@@ -32,4 +76,34 @@ public class FieldsConfig {
         return fields;
 
     }
+
+
+    public static JSONArray getCreativeDailyFieldsList(){
+        JSONArray fields = new JSONArray();
+        fields.add("account_id");
+        fields.add("adgroup_id");
+        fields.add("adgroup_name");
+        fields.add("date");
+        fields.add("dynamic_creative_id");
+        fields.add("dynamic_creative_name");
+        fields.add("cost");
+        fields.add("view_count");
+        fields.add("valid_click_count");
+        fields.add("conversions_count");
+        fields.add("deep_conversions_count");
+        fields.add("activated_count");
+        fields.add("reg_pv");
+        fields.add("retention_count");
+        fields.add("video_outer_play_count");
+        fields.add("video_outer_play100_count");
+        fields.add("key_behavior_conversions_count");
+        fields.add("purchase_pv");
+        fields.add("purchase_amount");
+        fields.add("first_pay_count");
+        return fields;
+
+    }
+
+
+
 }