Bläddra i källkod

智投助手-相关接口

yumeng 8 månader sedan
förälder
incheckning
ce337644ca

+ 27 - 16
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/BytedanceController.java

@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -59,13 +60,27 @@ public class BytedanceController {
     private IClTaskStatusService clTaskStatusService;
     @Autowired
     private IAdvertiserFundGetServer advertiserFundGetServer;
+    @Autowired
+    private IBytedanceBudgetStatusService bytedanceBudgetStatusService;
+
+
+    @GetMapping("/bytedanceBudgetStatus")
+    public JSONObject bytedanceBudgetStatus(Long advertiserId) {
 
+        //  JSONObject json =  bytedanceBudgetStatusService.getAdvertiserBudget(advertiserId);
+        String optStatus = "DISABLE";
+        Long promotionId = 7602526668272369710L;
+        JSONObject json = bytedanceBudgetStatusService.updatePromotionStatus(advertiserId, promotionId, optStatus);
+        return json;
+
+
+    }
 
     @GetMapping("/getAdvertiserFundGet")
     public void getAdvertiserFundGet() {
-        Long advertiserId =1851213792607364L;
+        Long advertiserId = 1851213792607364L;
         String accessToken = "d99c62d791180d2a6adfe149f5996e0a769acbdd";
-        advertiserFundGetServer.getAdvertiserFundGet( advertiserId, accessToken );
+        advertiserFundGetServer.getAdvertiserFundGet(advertiserId, accessToken);
 
 
     }
@@ -73,20 +88,19 @@ public class BytedanceController {
 
     @GetMapping("/getCLTaskStatus")
     public void getCLTaskStatus() {
-       List<JSONObject> taskList =  clTaskStatusService.getClTaskListByStatus("0");
-       if(!Check.isNull(taskList)){
-           for (int i = 0; i < taskList.size(); i++) {
-               JSONObject jsonObject = taskList.get(i);
-               Long id = jsonObject.getLong("id");
-               String batchId = jsonObject.getString("batch_id");
-               clTaskStatusService.downLoadTaskResult(id,batchId);
-           }
-       }
+        List<JSONObject> taskList = clTaskStatusService.getClTaskListByStatus("0");
+        if (!Check.isNull(taskList)) {
+            for (int i = 0; i < taskList.size(); i++) {
+                JSONObject jsonObject = taskList.get(i);
+                Long id = jsonObject.getLong("id");
+                String batchId = jsonObject.getString("batch_id");
+                clTaskStatusService.downLoadTaskResult(id, batchId);
+            }
+        }
 
     }
 
 
-
     @GetMapping("/agentData")
     public void agentData() {
         List<JSONObject> adminAdvertiserList = adminAdvertiserListService.getNotAgentAdvertiserList();
@@ -345,7 +359,7 @@ public class BytedanceController {
         for (JSONObject jsonObject : costAccount) {
             executor10Service1.submit(() -> {
                 Long adverId = jsonObject.getLong("advertiserId");
-                bytedanceMaterialReportService.getBytedanceMaterialVideo(adverId, null, null, null, 1, null, 1, 0,1);
+                bytedanceMaterialReportService.getBytedanceMaterialVideo(adverId, null, null, null, 1, null, 1, 0, 1);
             });
         }
     }
@@ -363,9 +377,6 @@ public class BytedanceController {
     }
 
 
-
-
-
     @GetMapping("/getWxAppInfo")
     public void getWxAppInfo(Long advertiserId) {
         cdpProjectService.getWxAppInfo(advertiserId);

+ 7 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceBudgetStatusMapper.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+import org.apache.ibatis.annotations.Param;
+
+public interface BytedanceBudgetStatusMapper {
+    String getAccessToken(@Param("advertiserId") Long advertiserId);
+}

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

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceBudgetStatusMapper">
+
+
+    <select id="getAccessToken" resultType="java.lang.String">
+        select t2.access_token
+        from deepthink.bytedance_advertiser_list t1
+                 left join
+             deepthink.bytedance_auth_list t2 on t1.admin_advertiser_id = t2.admin_advertiser_id
+        where t1.advertiser_id = #{advertiserId}
+    </select>
+</mapper>

+ 86 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IBytedanceBudgetStatusService.java

@@ -0,0 +1,86 @@
+package cn.com.ctop.job.bytedance.data.service;
+
+import com.alibaba.fastjson.JSONObject;
+
+import java.math.BigDecimal;
+
+public interface IBytedanceBudgetStatusService {
+    /**
+     * 获取账户预算
+     *
+     * @param advertiserId
+     * @return
+     */
+    JSONObject getAdvertiserBudget(Long advertiserId);
+
+    /**
+     * 获取项目预算
+     *
+     * @param advertiserId
+     * @param projectId
+     * @return
+     */
+    JSONObject getProjectBudget(Long advertiserId, Long projectId);
+
+    /**
+     * h获取计划预算
+     *
+     * @param advertiserId
+     * @param promotionId
+     * @return
+     */
+    JSONObject getPromotionBudget(Long advertiserId, Long promotionId);
+
+    /**
+     * 修改账户预算
+     *
+     * @param advertiserId
+     * @param budgetMode
+     * @param budget
+     * @return
+     */
+    JSONObject updateAdvertiserBudget(Long advertiserId, String budgetMode, BigDecimal budget);
+
+    /**
+     * 修改项目预算
+     *
+     * @param advertiserId
+     * @param projectId
+     * @param budgetMode
+     * @param budget
+     * @return
+     */
+    JSONObject updateProjectBudget(Long advertiserId, Long projectId, String budgetMode, BigDecimal budget);
+
+    /**
+     * 更新计划预算
+     *
+     * @param advertiserId
+     * @param promotionId
+     * @param budgetMode
+     * @param budget
+     * @return
+     */
+
+    JSONObject updatePromotionBudget(Long advertiserId, Long promotionId, String budgetMode, BigDecimal budget);
+
+    /**
+     * 更新项目状态
+     *
+     * @param advertiserId
+     * @param projectId
+     * @param optStatus
+     * @return
+     */
+    JSONObject updateProjectStatus(Long advertiserId, Long projectId, String optStatus);
+
+    /**
+     * 更新计划状态
+     *
+     * @param advertiserId
+     * @param promotionId
+     * @param optStatus
+     * @return
+     */
+    JSONObject updatePromotionStatus(Long advertiserId, Long promotionId, String optStatus);
+}

+ 471 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceBudgetStatusServiceImpl.java

@@ -0,0 +1,471 @@
+package cn.com.ctop.job.bytedance.data.service.impl;
+
+import cn.com.ctop.job.bytedance.data.mapper.BytedanceBudgetStatusMapper;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceBudgetStatusService;
+import cn.com.ctop.job.bytedance.data.utils.Check;
+import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
+import cn.com.ctop.job.bytedance.utils.RateLimitUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class BytedanceBudgetStatusServiceImpl implements IBytedanceBudgetStatusService {
+    @Autowired
+    private BytedanceBudgetStatusMapper bytedanceBudgetStatusMapper;
+    @Autowired
+    private RateLimitUtil rateLimitUtil;
+    private static String devAppId = "1742489802322972";
+
+    @Override
+    public JSONObject getAdvertiserBudget(Long advertiserId) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            String accessToken = bytedanceBudgetStatusMapper.getAccessToken(advertiserId);
+            if (Check.isNull(accessToken)) {
+                throw new Exception("根据此账户未获取到相关token");
+            }
+            String url = "https://ad.oceanengine.com/open_api/2/advertiser/budget/get/";
+            Map<String, Object> paramsMap = new HashMap<>();
+            JSONArray advertiser_ids = new JSONArray();
+            advertiser_ids.add(advertiserId);
+            paramsMap.put("advertiser_ids", advertiser_ids);
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", "application/json;charset=UTF-8");
+            String s = null;
+            if (rateLimitUtil.acquire(devAppId, url)) {
+                s = HttpUtils.httpGet(url, paramsMap, headers);
+            }
+            JSONObject result = JSONObject.parseObject(s);
+            if (Check.isNull(result)) {
+                throw new Exception("获取预算返回结果为空");
+            }
+            Integer code = result.getInteger("code");
+            if (code != 0) {
+                throw new Exception(result.getString("message"));
+            }
+
+            JSONObject data = result.getJSONObject("data");
+            if (Check.isNull(data)) {
+                throw new Exception("获取预算data返回结果为空");
+            }
+            JSONObject budgeJson = data.getJSONArray("list").getJSONObject(0);
+            returnJson.put("code", 0);
+            returnJson.put("data", budgeJson);
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
+        }
+
+
+        return returnJson;
+
+    }
+
+    @Override
+    public JSONObject getProjectBudget(Long advertiserId, Long projectId) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            String accessToken = bytedanceBudgetStatusMapper.getAccessToken(advertiserId);
+            if (Check.isNull(accessToken)) {
+                throw new Exception("根据此账户未获取到相关token");
+            }
+            String url = "https://api.oceanengine.com/open_api/v3.0/project/list/";
+
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("advertiser_id", advertiserId);
+            JSONObject filtering = new JSONObject();
+            JSONArray ids = new JSONArray();
+            ids.add(projectId);
+            filtering.put("ids", ids);
+            paramsMap.put("filtering", filtering);
+            paramsMap.put("page", 1);
+            paramsMap.put("page_size", 10);
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", "application/json;charset=UTF-8");
+            String s = null;
+            if (rateLimitUtil.acquire(devAppId, url)) {
+                s = HttpUtils.httpGet(url, paramsMap, headers);
+            }
+            JSONObject result = JSONObject.parseObject(s);
+            if (Check.isNull(result)) {
+                throw new Exception("获取预算返回结果为空");
+            }
+            Integer code = result.getInteger("code");
+            if (code != 0) {
+                throw new Exception(result.getString("message"));
+            }
+
+            JSONObject data = result.getJSONObject("data");
+            if (Check.isNull(data)) {
+                throw new Exception("获取预算data返回结果为空");
+            }
+
+            JSONObject dataJson = data.getJSONArray("list").getJSONObject(0);
+            if (Check.isNull(dataJson)) {
+                if (Check.isNull(data)) {
+                    throw new Exception("获取预算data返回结果为空");
+                }
+            }
+
+
+            JSONObject deliverySetting = dataJson.getJSONObject("delivery_setting");
+            if (Check.isNull(deliverySetting)) {
+                throw new Exception("获取预算delivery_setting返回结果为空");
+            }
+
+            JSONObject budgeJson = new JSONObject();
+            String budget_mode = deliverySetting.getString("budget_mode");
+            BigDecimal budget = deliverySetting.getBigDecimal("budget");
+            budgeJson.put("budget_mode", budget_mode);
+            budgeJson.put("budget", budget);
+            budgeJson.put("advertiser_id", advertiserId);
+            budgeJson.put("project_id", projectId);
+            returnJson.put("code", 0);
+            returnJson.put("data", budgeJson);
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
+        }
+
+
+        return returnJson;
+    }
+
+    @Override
+    public JSONObject getPromotionBudget(Long advertiserId, Long promotionId) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            String accessToken = bytedanceBudgetStatusMapper.getAccessToken(advertiserId);
+            if (Check.isNull(accessToken)) {
+                throw new Exception("根据此账户未获取到相关token");
+            }
+            String url = "https://api.oceanengine.com/open_api/v3.0/promotion/list/";
+
+            Map<String, Object> paramsMap = new HashMap<>();
+
+            paramsMap.put("advertiser_id", advertiserId);
+/*            JSONArray fields = new JSONArray();
+            fields.add("project_id");
+            fields.add("advertiser_id");
+            fields.add("budget");
+            fields.add("budget_mode");
+            paramsMap.put("fields", fields.toJSONString());*/
+
+            JSONObject filtering = new JSONObject();
+            JSONArray ids = new JSONArray();
+            ids.add(promotionId);
+            filtering.put("ids", ids);
+            paramsMap.put("filtering", filtering);
+            paramsMap.put("page", 1);
+            paramsMap.put("page_size", 10);
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", "application/json;charset=UTF-8");
+            String s = null;
+            if (rateLimitUtil.acquire(devAppId, url)) {
+                s = HttpUtils.httpGet(url, paramsMap, headers);
+            }
+            JSONObject result = JSONObject.parseObject(s);
+            if (Check.isNull(result)) {
+                throw new Exception("获取计划预算返回结果为空");
+            }
+            Integer code = result.getInteger("code");
+            if (code != 0) {
+                throw new Exception(result.getString("message"));
+            }
+
+            JSONObject data = result.getJSONObject("data");
+            if (Check.isNull(data)) {
+                throw new Exception("获取预算data返回结果为空");
+            }
+
+            JSONObject dataJson = data.getJSONArray("list").getJSONObject(0);
+            if (Check.isNull(dataJson)) {
+                if (Check.isNull(data)) {
+                    throw new Exception("获取预算data返回结果为空");
+                }
+            }
+
+            JSONObject budgeJson = new JSONObject();
+            String budget_mode = dataJson.getString("budget_mode");
+            BigDecimal budget = dataJson.getBigDecimal("budget");
+            budgeJson.put("budget_mode", budget_mode);
+            budgeJson.put("budget", budget);
+            budgeJson.put("advertiser_id", advertiserId);
+            budgeJson.put("promotion_id", promotionId);
+            returnJson.put("code", 0);
+            returnJson.put("data", budgeJson);
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
+        }
+        return returnJson;
+    }
+
+    @Override
+    public JSONObject updateAdvertiserBudget(Long advertiserId, String budgetMode, BigDecimal budget) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            String accessToken = bytedanceBudgetStatusMapper.getAccessToken(advertiserId);
+            if (Check.isNull(accessToken)) {
+                throw new Exception("根据此账户未获取到相关token");
+            }
+            String url = "https://ad.oceanengine.com/open_api/2/advertiser/update/budget/";
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("advertiser_id", advertiserId);
+            paramsMap.put("budget_mode", budgetMode);
+            paramsMap.put("budget", budget);
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", "application/json;charset=UTF-8");
+            String s = null;
+            if (rateLimitUtil.acquire(devAppId, url)) {
+                s = HttpUtils.httpPostRequest(url, paramsMap, headers);
+            }
+            JSONObject result = JSONObject.parseObject(s);
+            if (Check.isNull(result)) {
+                throw new Exception("修改账户预算返回结果为空");
+            }
+            Integer code = result.getInteger("code");
+            if (code != 0) {
+                throw new Exception(result.getString("message"));
+            }
+            returnJson.put("code", 0);
+            returnJson.put("message", "success");
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
+        }
+
+
+        return returnJson;
+    }
+
+    @Override
+    public JSONObject updateProjectBudget(Long advertiserId, Long projectId, String budgetMode, BigDecimal budget) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            String accessToken = bytedanceBudgetStatusMapper.getAccessToken(advertiserId);
+            if (Check.isNull(accessToken)) {
+                throw new Exception("根据此账户未获取到相关token");
+            }
+            String url = "https://api.oceanengine.com/open_api/v3.0/project/budget/update/";
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("advertiser_id", advertiserId);
+            JSONArray data = new JSONArray();
+            JSONObject dataJson = new JSONObject();
+            dataJson.put("project_id", projectId);
+            dataJson.put("budget_mode", budgetMode);
+            dataJson.put("budget", budget);
+            data.add(dataJson);
+            paramsMap.put("data", data);
+
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", "application/json;charset=UTF-8");
+            String s = null;
+            if (rateLimitUtil.acquire(devAppId, url)) {
+                s = HttpUtils.httpPostRequest(url, paramsMap, headers);
+            }
+            JSONObject result = JSONObject.parseObject(s);
+            if (Check.isNull(result)) {
+                throw new Exception("修改账户预算返回结果为空");
+            }
+            Integer code = result.getInteger("code");
+            if (code != 0) {
+                throw new Exception(result.getString("message"));
+            }
+            returnJson.put("code", 0);
+            returnJson.put("message", "success");
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
+        }
+
+
+        return returnJson;
+
+
+    }
+
+    @Override
+    public JSONObject updatePromotionBudget(Long advertiserId, Long promotionId, String budgetMode, BigDecimal budget) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            String accessToken = bytedanceBudgetStatusMapper.getAccessToken(advertiserId);
+            if (Check.isNull(accessToken)) {
+                throw new Exception("根据此账户未获取到相关token");
+            }
+            String url = "https://api.oceanengine.com/open_api/v3.0/promotion/budget/update/";
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("advertiser_id", advertiserId);
+            JSONArray data = new JSONArray();
+            JSONObject dataJson = new JSONObject();
+            dataJson.put("promotion_id", promotionId);
+            dataJson.put("budget_mode", budgetMode);
+            dataJson.put("budget", budget);
+            data.add(dataJson);
+            paramsMap.put("data", data);
+
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", "application/json;charset=UTF-8");
+            String s = null;
+            if (rateLimitUtil.acquire(devAppId, url)) {
+                s = HttpUtils.httpPostRequest(url, paramsMap, headers);
+            }
+            JSONObject result = JSONObject.parseObject(s);
+            if (Check.isNull(result)) {
+                throw new Exception("修改账户预算返回结果为空");
+            }
+            Integer code = result.getInteger("code");
+            if (code != 0) {
+                throw new Exception(result.getString("message"));
+            }
+            JSONObject dataResult = result.getJSONObject("data");
+            String errorMessage = "";
+            if (!Check.isNull(dataResult)) {
+                JSONArray errors = dataResult.getJSONArray("errors");
+
+                if (!Check.isNull(errors)) {
+                    JSONObject jsonObject = errors.getJSONObject(0);
+                    if (!Check.isNull(jsonObject)) {
+                        errorMessage = jsonObject.getString("error_message");
+                    }
+                }
+            }
+            if (!Check.isNull(errorMessage)) {
+                throw new Exception(errorMessage);
+            }
+            returnJson.put("code", 0);
+            returnJson.put("message", "success");
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
+        }
+
+
+        return returnJson;
+    }
+
+    @Override
+    public JSONObject updateProjectStatus(Long advertiserId, Long projectId, String optStatus) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            String accessToken = bytedanceBudgetStatusMapper.getAccessToken(advertiserId);
+            if (Check.isNull(accessToken)) {
+                throw new Exception("根据此账户未获取到相关token");
+            }
+            String url = "https://api.oceanengine.com/open_api/v3.0/project/status/update/";
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("advertiser_id", advertiserId);
+            JSONArray data = new JSONArray();
+            JSONObject dataJson = new JSONObject();
+            dataJson.put("project_id", projectId);
+            dataJson.put("opt_status", optStatus);
+            data.add(dataJson);
+            paramsMap.put("data", data);
+
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", "application/json;charset=UTF-8");
+            String s = null;
+            if (rateLimitUtil.acquire(devAppId, url)) {
+                s = HttpUtils.httpPostRequest(url, paramsMap, headers);
+            }
+            JSONObject result = JSONObject.parseObject(s);
+            if (Check.isNull(result)) {
+                throw new Exception("修改账户预算返回结果为空");
+            }
+            Integer code = result.getInteger("code");
+            if (code != 0) {
+                throw new Exception(result.getString("message"));
+            }
+            returnJson.put("code", 0);
+            returnJson.put("message", "success");
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
+        }
+
+
+        return returnJson;
+    }
+
+    @Override
+    public JSONObject updatePromotionStatus(Long advertiserId, Long promotionId, String optStatus) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            String accessToken = bytedanceBudgetStatusMapper.getAccessToken(advertiserId);
+            if (Check.isNull(accessToken)) {
+                throw new Exception("根据此账户未获取到相关token");
+            }
+            String url = "https://api.oceanengine.com/open_api/v3.0/promotion/status/update/";
+            Map<String, Object> paramsMap = new HashMap<>();
+            paramsMap.put("advertiser_id", advertiserId);
+            JSONArray data = new JSONArray();
+            JSONObject dataJson = new JSONObject();
+            dataJson.put("promotion_id", promotionId);
+            dataJson.put("opt_status", optStatus);
+            data.add(dataJson);
+            paramsMap.put("data", data);
+
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", "application/json;charset=UTF-8");
+            String s = null;
+            if (rateLimitUtil.acquire(devAppId, url)) {
+                s = HttpUtils.httpPostRequest(url, paramsMap, headers);
+            }
+            JSONObject result = JSONObject.parseObject(s);
+            if (Check.isNull(result)) {
+                throw new Exception("修改账户预算返回结果为空");
+            }
+            Integer code = result.getInteger("code");
+            if (code != 0) {
+                throw new Exception(result.getString("message"));
+            }
+            JSONObject dataResult = result.getJSONObject("data");
+            String errorMessage = "";
+            if (!Check.isNull(dataResult)) {
+                JSONArray errors = dataResult.getJSONArray("errors");
+                if (!Check.isNull(errors)) {
+                    JSONObject jsonObject = errors.getJSONObject(0);
+                    if (!Check.isNull(jsonObject)) {
+                        errorMessage = jsonObject.getString("error_message");
+                    }
+                }
+            }
+
+            if (!Check.isNull(errorMessage)) {
+                throw new Exception(errorMessage);
+            }
+            returnJson.put("code", 0);
+            returnJson.put("message", "success");
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
+        }
+
+
+        return returnJson;
+    }
+}

+ 7 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/RateLimitUtil.java

@@ -45,6 +45,13 @@ public class RateLimitUtil {
             .put("/open_api/2/dpa/product/create/", 10)
             .put("/open_api/2/dpa/product/update/", 10)
             .put("/open_api/2/advertiser/fund/get/", 50)
+            .put("/open_api/2/advertiser/budget/get//", 25)
+            .put("/open_api/2/advertiser/update/budget/", 5)
+            .put("/open_api/v3.0/project/update/", 5)
+            .put("/open_api/v3.0/project/budget/update/", 25)
+            .put("/open_api/v3.0/promotion/budget/update/", 25)
+            .put("/open_api/v3.0/project/status/update/", 5)
+            .put("/open_api/v3.0/promotion/status/update/", 25)
             .build();
 
     /**