Browse Source

、修改

yumeng 2 weeks ago
parent
commit
b15cb1e875

+ 10 - 3
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/BytedanceController.java

@@ -48,9 +48,16 @@ public class BytedanceController {
     @PostMapping(value = "/getBytedanceVideoByAccountId")
     public Map<String, String> getBytedanceVideoByAccountId(@RequestBody JSONObject jsonObject) {
 
-        Long accountId = jsonObject.getLong("accountId");
-        String token = tokenService.getByAccountId(accountId);
-        bytedanceReportNewService.getAdvertiserDailyReport(accountId, token, "2025-09-25", "2025-09-25", 1);
+        Long projectId = jsonObject.getLong("projectId");
+        String startDate = jsonObject.getString("startDate");
+        String endDate = jsonObject.getString("endDate");
+        List<Long> accountIds = bytedanceReportNewService.getAccountIds(projectId);
+        for (Long accountId : accountIds) {
+            String token = tokenService.getByAccountId(accountId);
+            bytedanceReportNewService.getAdvertiserDailyReport(accountId, token, startDate, endDate, 1);
+        }
+
+
         return null;
     }
 

+ 2 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/AccountReportNewMapper.java

@@ -13,4 +13,6 @@ public interface AccountReportNewMapper {
     void replaceAccountReportDailys(@Param("adds") List<BytedanceAdvertiserReportDaily> dailies);
 
     JSONObject getTokenInfo();
+
+    List<Long> getAccountIds(@Param("projectId") Long projectId);
 }

+ 5 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/AccountReportNewMapper.xml

@@ -338,5 +338,10 @@
         order by update_time desc
             limit 1
     </select>
+    <select id="getAccountIds" resultType="java.lang.Long">
+        select account_id
+        from `jeecg-boot`.ctop_user_allocation
+        where project_id = #{projectId}
+    </select>
 
 </mapper>

+ 4 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IBytedanceReportNewService.java

@@ -4,6 +4,8 @@ import cn.com.ctop.job.bytedance.data.entity.OauthToken;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 
+import java.util.List;
+
 public interface IBytedanceReportNewService {
     void getBytedanceAccountHour(Long advertiserId, String accessToken, String startDate, String endDate, Integer page);
 
@@ -12,4 +14,6 @@ public interface IBytedanceReportNewService {
     JSONArray getMetrics(Long advertiserId, String token);
 
     JSONObject getTokenInfo();
+
+    List<Long> getAccountIds(Long projectId);
 }

+ 21 - 5
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceReportNewServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.job.bytedance.data.service.impl;
 
+import cn.com.ctop.job.bytedance.data.constant.CtopAdConstant;
 import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportDaily;
 import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHourly;
 import cn.com.ctop.job.bytedance.data.mapper.AccountReportNewMapper;
@@ -13,17 +14,14 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Slf4j
 @Service
 public class BytedanceReportNewServiceImpl implements IBytedanceReportNewService {
     @Autowired
     private AccountReportNewMapper accountReportNewMapper;
-
+    private String urlPath = "http://192.168.0.85:8765/webhook/bytedance_account_report";
     private static JSONArray metrics = new JSONArray();
 
     @Override
@@ -116,6 +114,13 @@ public class BytedanceReportNewServiceImpl implements IBytedanceReportNewService
                 getBytedanceAccountHour(advertiserId, accessToken, startDate, endDate, page + 1);
             } else {
                 log.info("账户ID:{},日期:{},广告时报(账户粒度)数据请求成功", advertiserId, startDate);
+                log.info("账户ID:{},开始日期:{},结束日期:{},广告日报(账户粒度)数据请求成功", advertiserId, startDate, endDate);
+                JSONObject param = new JSONObject();
+                param.put("advertiser_id", advertiserId);
+                param.put("start_date", startDate);
+                param.put("end_date", endDate);
+                param.put("date_type", "hourly");
+                HttpUtils.httpPostRequest(urlPath, param, null);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -210,6 +215,12 @@ public class BytedanceReportNewServiceImpl implements IBytedanceReportNewService
                 getAdvertiserDailyReport(advertiserId, oauthToken, startDate, endDate, page + 1);
             } else {
                 log.info("账户ID:{},开始日期:{},结束日期:{},广告日报(账户粒度)数据请求成功", advertiserId, startDate, endDate);
+                JSONObject param = new JSONObject();
+                param.put("advertiser_id", advertiserId);
+                param.put("start_date", startDate);
+                param.put("end_date", endDate);
+                param.put("date_type", "daily");
+                HttpUtils.httpPostRequest(urlPath, param, null);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -266,4 +277,9 @@ public class BytedanceReportNewServiceImpl implements IBytedanceReportNewService
     public JSONObject getTokenInfo() {
         return accountReportNewMapper.getTokenInfo();
     }
+
+    @Override
+    public List<Long> getAccountIds(Long projectId) {
+        return accountReportNewMapper.getAccountIds(projectId);
+    }
 }