|
|
@@ -132,6 +132,7 @@ public class BytedanceProjectServiceImpl implements IBytedanceProjectService {
|
|
|
*/
|
|
|
public void checkProjectBidType(String accessToken, JSONObject detail) {
|
|
|
Long accountId = detail.getLong("advertiser_id");
|
|
|
+ Long projectId = detail.getLong("project_id");
|
|
|
//项目ID
|
|
|
JSONObject json = projectListMapper.getProjectByAccountId(accountId);
|
|
|
if (Check.isNull(json) || Check.isNull(detail)) {
|
|
|
@@ -187,6 +188,8 @@ public class BytedanceProjectServiceImpl implements IBytedanceProjectService {
|
|
|
String pricing = detail.getString("pricing");
|
|
|
List<JSONObject> advertiserList = new ArrayList<>();
|
|
|
if (Check.isNull(cpaBid) && Check.isNull(deepConversionBid)) {
|
|
|
+ this.checkAdvertiserList(accountId, accessToken, projectId, 1, advertiserList);
|
|
|
+
|
|
|
if (advertiserList.size() > 0) {
|
|
|
for (JSONObject adObj : advertiserList) {
|
|
|
String statusFirst = adObj.getString("status_first");
|
|
|
@@ -225,6 +228,44 @@ public class BytedanceProjectServiceImpl implements IBytedanceProjectService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void checkAdvertiserList(Long accountId, String token, Long projectId, int page, List<JSONObject> advertiserList) {
|
|
|
+ // 请求地址
|
|
|
+ String url = bytedanceApiUrl + "/v3.0/promotion/list/";
|
|
|
+ JSONObject param = new JSONObject();
|
|
|
+ param.put("advertiser_id", accountId);
|
|
|
+ param.put("page", page);
|
|
|
+ param.put("page_size", 20);
|
|
|
+ JSONObject filtering = new JSONObject();
|
|
|
+ // filtering.put("promotion_modify_time", date);
|
|
|
+ filtering.put("project_id", projectId);
|
|
|
+ param.put("filtering", filtering);
|
|
|
+ JSONObject resultObject = HttpUtils.bytedanceGetRequest(token, url, param);
|
|
|
+ if (Check.isNull(resultObject)) {
|
|
|
+ log.error("获取广告列表异常==》accountId:{},调用结果为null", accountId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Integer code = resultObject.getInteger("code");
|
|
|
+ if (null == code || !code.equals(0)) {
|
|
|
+ log.error("获取广告列表接口异常==》accountId:{},message:{},code{}", accountId, resultObject.getString("message"), code);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ JSONArray data = resultObject.getJSONObject("data").getJSONArray("list");
|
|
|
+ if (null == data || data.isEmpty()) {
|
|
|
+ log.info("获取广告列表数据为空==》accountId:{},message:{},code{}", accountId, resultObject.getString("message"), code);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (int i = 0; i < data.size(); i++) {
|
|
|
+ JSONObject dataObject = data.getJSONObject(i);
|
|
|
+ advertiserList.add(dataObject);
|
|
|
+ }
|
|
|
+
|
|
|
+ int totalPage = resultObject.getJSONObject("data").getJSONObject("page_info").getInteger("total_page");
|
|
|
+ if (page <= totalPage) {
|
|
|
+ checkAdvertiserList(accountId, token, projectId, page + 1, advertiserList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//判断逻辑
|
|
|
private void checkLogic(String token, String type, JSONObject detail, Map<String, String> ocpxMap, Map<String, String> textMap, Map<String, String> deepMap,
|
|
|
String cpaBid, String deepConversionBid, String localProject, JSONObject adObj) {
|