소스 검색

appList2 获取应用列表新增v2接口

hcst_sunzhen 4 년 전
부모
커밋
fb034ac0f4

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

@@ -774,4 +774,38 @@ public class TestController {
         ResultMapUtils.setResultMap(result,StatusCode.COMMON_SUCCESS);
         return result;
     }
+
+
+
+    @GetMapping(value = "/getAppList")
+    public void getAppList() throws JobExecutionException {
+        try {
+            //1:查询当日数据
+            QueryWrapper<CtopOauthToken> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("media_id", 2);
+            queryWrapper.orderByDesc("create_time");
+            List<CtopOauthToken> tokens = tokenService.list(queryWrapper);
+            if (null == tokens || tokens.size() <= 0) {
+                log.info("定时获取快手数据异常:未获取到可用的token");
+                return;
+            }
+
+            tokens.forEach(token -> {
+
+                kuaishouInterfaceService.getAppList2(token.getAccountId(),token.getAccessToken());
+                //suzhaoService.submit(new Runnable() {
+                //    @Override
+                //    public void run() {
+                //        //1: 获取广告主信息数据
+                //        log.info("获取素造素材:accountId:{}", token.getAccountId());
+                //        kuaishouInterfaceService.getSuZaoList(token.getAccessToken(), token.getAccountId(), 1, null, null);
+                //    }
+                //});
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+
+    }
 }

+ 5 - 0
module-common/src/main/java/cn/com/ctop/common/module/utils/KuaishouInterfaceConstant.java

@@ -83,12 +83,17 @@ public class KuaishouInterfaceConstant {
      * 创建广告获取应用列表
      */
     public static final String APP_LIST = "/rest/openapi/v1/file/ad/app/list";
+    /**
+     * 创建广告获取应用列表(新版本)
+     */
+    public static final String APP_LIST_v2 = "/rest/openapi/v2/file/ad/app/list";
 
     /**
      * 账户日预算查询
      */
     public static final String ACCOUNT_BUDGET = "/rest/openapi/v1/advertiser/budget/get";
 
+
     /**
      * 获取账户余额
      */

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

@@ -266,6 +266,14 @@ public interface IKuaishouInterfaceService {
     void getAppList(Long advertiserId, String accessToken);
 
     /**
+     * 获取应用列表
+     *
+     * @param advertiserId
+     * @param accessToken
+     */
+    void getAppList2(Long advertiserId, String accessToken);
+
+    /**
      * 文件上传 发送请求
      *
      * @param url

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

@@ -3232,4 +3232,91 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         return returnArr;
     }
 
+    /**
+     * 获取应用列表(新)
+     *
+     * @param advertiserId
+     * @param accessToken
+     */
+    @Override
+    public void getAppList2(Long advertiserId, String accessToken) {
+        Integer pageSize = 20;
+        Integer page = 1;
+        getAppList2ByPage(advertiserId, accessToken, page, pageSize);
+    }
+
+    private void getAppList2ByPage(Long advertiserId, String accessToken, Integer page, Integer pageSize) {
+        try {
+            String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.APP_LIST_v2;
+            Map<String, String> headers = new HashMap<>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", " application/json");
+            JSONObject json = new JSONObject();
+            json.put("advertiser_id", advertiserId);
+            json.put("page", page);
+            json.put("page_size", pageSize);
+            String result = HttpUtils.kuaiShouhttpPostRequest(url, json.toJSONString(), headers);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            if (!Check.isNull(resultJson)) {
+                Integer code = resultJson.getInteger("code");
+                if (code == 0) {
+                    if(page == 1){ //分页保存数据,如果页数为1,删除之前的数据重新入库
+                        Map<String, Object> deleteMap = new HashMap<>();
+                        deleteMap.put("account_id", advertiserId);
+                        appListMapper.deleteByMap(deleteMap);
+                    }
+                    JSONObject data = resultJson.getJSONObject("data");
+                    if (!Check.isNull(data)) {
+                        Integer totalCount = data.getInteger("total_count");
+                        JSONArray dataArr = data.getJSONArray("details");
+                        for (int i = 0; i < dataArr.size(); i++) {
+                            JSONObject dataJson = JSONObject.parseObject(dataArr.get(i).toString());
+                            if (!Check.isNull(dataJson)) {
+                                KuaiShouAppList appList = new KuaiShouAppList();
+                                appList.setAccountId(advertiserId);
+                                appList.setPlatform(dataJson.getInteger("platform"));
+                                appList.setUrl(dataJson.getString("url"));
+                                appList.setAppId(dataJson.getLong("app_id"));
+                                appList.setAppVersion(dataJson.getString("app_version"));
+                                appList.setAppName(dataJson.getString("app_name"));
+                                appList.setAppIconUrl(dataJson.getString("app_icon_url"));
+                                appList.setImageToken(dataJson.getString("image_token"));
+                                appList.setPackageName(dataJson.getString("package_name"));
+                                appList.setReturnTime(DateUtils.timeStamp2Date(dataJson.getTimestamp("update_time")));
+                                appListMapper.insert(appList);
+                            }
+                        }
+                        Integer totalPage = (totalCount-1)/pageSize + 1;
+                        if(page < totalPage ){
+                            getAppList2ByPage(advertiserId,accessToken,page+1,pageSize);
+                        }
+                    }
+                } else {
+                    log.error("获取应用列表失败,返回信息:{}", resultJson);
+                }
+            } else {
+                log.error("获取地域列表返回结果为空");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 }