Sfoglia il codice sorgente

快手创意报表修改

yumeng 5 anni fa
parent
commit
7d5927b661

+ 13 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/TestController.java

@@ -256,7 +256,7 @@ public class TestController {
                                     campaignQueryWrapper.eq("account_id", ctopOauthToken.getAccountId());
                                     log.info("获取创意报表,账号id:{}", allocation.getAccountId());
                                     List<KuaiShouCampaign> campaigns = campaignService.list(campaignQueryWrapper);
-                                    if (!Check.isNull(list)) {
+                                    if (!Check.isNull(campaigns)) {
                                         for (KuaiShouCampaign campaign : campaigns) {
                                             kuaishouInterfaceService.getAdvertiserCreativeReportDailyV2(campaign.getCampaignId(), ctopOauthToken, endDate, endDate);
                                         }
@@ -340,7 +340,18 @@ public class TestController {
                 oauthTokenQueryWrapper.eq("account_id", accountId);
                 CtopOauthToken ctopOauthToken = oauthTokenMapper.selectOne(oauthTokenQueryWrapper);
                 System.err.println("创意报表accountId:" + ctopOauthToken.getAccountId());
-                kuaishouInterfaceService.getAdvertiserCreativeReportDaily(ctopOauthToken, startDate, endDate);
+
+
+                QueryWrapper<KuaiShouCampaign> campaignQueryWrapper = new QueryWrapper<>();
+                campaignQueryWrapper.eq("account_id", ctopOauthToken.getAccountId());
+
+                List<KuaiShouCampaign> campaigns = campaignService.list(campaignQueryWrapper);
+                if (!Check.isNull(campaigns)) {
+                    for (KuaiShouCampaign campaign : campaigns) {
+                        kuaishouInterfaceService.getAdvertiserCreativeReportDailyV2(campaign.getCampaignId(), ctopOauthToken, endDate, endDate);
+                    }
+                }
+
             }
         };
         thread.start();

+ 25 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/job/KuaishouDailyCreativeReportLoadJob.java

@@ -2,8 +2,11 @@ package org.jeecg.modules.ctop.job;
 
 import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
+import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouCampaignService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
+import com.alibaba.fastjson.JSONArray;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.util.DateUtils;
 import org.quartz.Job;
@@ -30,6 +33,9 @@ public class KuaishouDailyCreativeReportLoadJob implements Job {
 
     static ExecutorService executorService = null;
 
+    @Autowired
+    private IKuaiShouCampaignService campaignService;
+
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         Thread thread = new Thread() {
@@ -39,7 +45,7 @@ public class KuaishouDailyCreativeReportLoadJob implements Job {
                 kuaishouInterfaceService.deleteHourlyReport(deleteDate);
                 Date getDate = DateUtils.addDay(new Date(), -1);
                 //1:查询当日数据
-                executorService = Executors.newFixedThreadPool(3);
+                executorService = Executors.newFixedThreadPool(4);
                 List<CtopOauthToken> tokens = tokenService.getTokenListByType(CtopAdConstant.PLATFORM_TYPE_KUAISHOU);
                 if (null == tokens || tokens.size() <= 0) {
                     log.info("定时获取快手数据异常:未获取到可用的token");
@@ -50,8 +56,24 @@ public class KuaishouDailyCreativeReportLoadJob implements Job {
                     executorService.submit(new Runnable() {
                         @Override
                         public void run() {
-                            log.info("获取创意分天报表开始,accountId:{}", token.getAccountId());
-                            kuaishouInterfaceService.getAdvertiserCreativeReportDaily(token, getDate, getDate);
+
+                            try {
+                                log.info("获取创意分天报表开始,accountId:{}", token.getAccountId());
+                                kuaishouInterfaceService.getCampaignList(token, null, null);
+                                sleep(5 * 100);
+                                List<JSONArray> campaigns = campaignService.getJsonArrByAccount(token.getAccountId(), 20);
+                                if (!Check.isNull(campaigns) && campaigns.size() > 0) {
+                                    for (int i = 0; i < campaigns.size(); i++) {
+                                        JSONArray campaignIds = (JSONArray) JSONArray.parse(campaigns.get(i).toJSONString());
+                                        kuaishouInterfaceService.getAdvertiserCreativeReportDaily(token, getDate, getDate, campaignIds);
+                                    }
+
+                                }
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+
+
                         }
                     });
 

+ 2 - 2
jeecg-boot-module-system/src/main/resources/application-dev.yml

@@ -102,8 +102,8 @@ spring:
       datasource:
         master:
           url: jdbc:mysql://39.106.184.70:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
-          username: root
-          password: hcst2019
+          username: hcst
+          password: test@20190531
           driver-class-name: com.mysql.jdbc.Driver
           # 多数据源配置
           #multi-datasource1:

+ 3 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouCampaignService.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.batch.service;
 
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouCampaign;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
@@ -14,4 +15,6 @@ import java.util.List;
 public interface IKuaiShouCampaignService extends IService<KuaiShouCampaign> {
 
     void replaceBatch(List<KuaiShouCampaign> campaigns);
+
+    List<JSONArray> getJsonArrByAccount(Long accountId, int idSize);
 }

+ 1 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaishouInterfaceService.java

@@ -254,7 +254,7 @@ public interface IKuaishouInterfaceService {
 
     void getAdvertiserGroupReportDaily(CtopOauthToken token, Date startDate, Date endDate);
 
-    void getAdvertiserCreativeReportDaily(CtopOauthToken token, Date startDate, Date endDate);
+    void getAdvertiserCreativeReportDaily(CtopOauthToken token, Date startDate, Date endDate,JSONArray campaignIds);
 
     void getAdvertiserReportHourly(CtopOauthToken token, Date startDate, Date endDate);
 

+ 36 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouCampaignServiceImpl.java

@@ -1,12 +1,16 @@
 package cn.com.ctop.kuaishou.modules.batch.service.impl;
 
+import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouCampaign;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouCampaignMapper;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouCampaignService;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -24,4 +28,36 @@ public class KuaiShouCampaignServiceImpl extends ServiceImpl<KuaiShouCampaignMap
     public void replaceBatch(List<KuaiShouCampaign> campaigns) {
         campaignMapper.replaceBatch(campaigns);
     }
+
+
+    /**
+     * 获取创意
+     *
+     * @param accountId
+     * @return
+     */
+    @Override
+    public List<JSONArray> getJsonArrByAccount(Long accountId, int idSize) {
+        QueryWrapper<KuaiShouCampaign> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("account_id", accountId);
+        List<KuaiShouCampaign> list = this.list(queryWrapper);
+        List<JSONArray> campaignArr = new ArrayList<>();
+        if (!Check.isNull(list)) {
+            int arrSize = list.size() % idSize == 0 ? list.size() / idSize : list.size() / idSize + 1;
+            for (int i = 0; i < arrSize; i++) {
+                JSONArray arr = new JSONArray();
+                for (int j = i * idSize; j <= idSize * (i + 1) - 1; j++) {
+                    if (j <= list.size() - 1) {
+                        KuaiShouCampaign campaign = list.get(i);
+                        arr.add(campaign.getCampaignId());
+                    }
+                }
+                campaignArr.add(arr);
+            }
+            return campaignArr;
+        }
+
+        return null;
+    }
+
 }

+ 11 - 6
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java

@@ -777,11 +777,11 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
     }
 
     @Override
-    public void getAdvertiserCreativeReportDaily(CtopOauthToken token, Date startDate, Date endDate) {
-        getAdvertiserCreativeReportDailyByPage(token, startDate, endDate, 1);
+    public void getAdvertiserCreativeReportDaily(CtopOauthToken token, Date startDate, Date endDate, JSONArray campaignIds) {
+        getAdvertiserCreativeReportDailyByPage(token, startDate, endDate, campaignIds, 1);
     }
 
-    private void getAdvertiserCreativeReportDailyByPage(CtopOauthToken token, Date startDate, Date endDate, int page) {
+    private void getAdvertiserCreativeReportDailyByPage(CtopOauthToken token, Date startDate, Date endDate, JSONArray campaignIds, int page) {
         String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.CREATIVE_REPORT;
         Map<String, String> headers = new HashMap<String, String>();
         headers.put("Content-Type", "application/json");
@@ -793,9 +793,14 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         if (!Check.isNull(endDate)) {
             param.put("end_date", DateUtils.formatDate(endDate));
         }
+        if (!Check.isNull(campaignIds) && campaignIds.size() > 0) {
+            param.put("campaign_ids", campaignIds);
+
+        }
+
         param.put("advertiser_id", token.getAccountId());
         param.put("temporal_granularity", "DAILY");
-        param.put("page_size", 500);
+        param.put("page_size", 1000);
         param.put("page", page);
 
         String result = HttpUtils.httpPostRequest(url, param, headers);
@@ -830,7 +835,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             dailyCreativeStatisticService.saveOrUpdate(statistic);
             dailyCreativeService.saveOrUpdate(creative);
         }
-        getAdvertiserCreativeReportDailyByPage(token, startDate, endDate, page + 1);
+        getAdvertiserCreativeReportDailyByPage(token, startDate, endDate, campaignIds, page + 1);
     }
 
     private KuaishouReportDailyCreativeStatistic setDailyStatistic(KuaishouReportDailyCreative creative, CtopOauthToken token) {
@@ -1056,7 +1061,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             //3:获取广告组信息数据
             getAdvertiserGroupReportDaily(token, getStartDate, getEndDate);
             //4: 获取广告创意信息数据
-            getAdvertiserCreativeReportDaily(token, getStartDate, getEndDate);
+         //   getAdvertiserCreativeReportDaily(token, getStartDate, getEndDate);
 
             //获取全量广告计划数据
             getCampaignList(token, null, null);