|
@@ -300,7 +300,7 @@ public class KuaishouChannelServiceImpl extends ServiceImpl<KuaishouChannelMappe
|
|
|
try {
|
|
|
KuaishouChannelCreateStrategy replaceData = replaceWildcard(strategy, i);
|
|
|
createApp(replaceData, null, null);
|
|
|
- createChannel(replaceData, i, 0);
|
|
|
+ createChannel(replaceData, i, 1);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -319,7 +319,7 @@ public class KuaishouChannelServiceImpl extends ServiceImpl<KuaishouChannelMappe
|
|
|
try {
|
|
|
KuaishouChannelCreateStrategy replaceData = replaceWildcard(strategy, i);
|
|
|
createApp(replaceData, token, oldAppList);
|
|
|
- createChannel(replaceData, i, 0);
|
|
|
+ createChannel(replaceData, i, 1);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -816,7 +816,7 @@ public class KuaishouChannelServiceImpl extends ServiceImpl<KuaishouChannelMappe
|
|
|
strategy.setImageToken(tokenJson.getString("imageToken"));
|
|
|
try {
|
|
|
createApp(strategy, token, oldAppList);
|
|
|
- createChannel(strategy, 0, 0);
|
|
|
+ createChannel(strategy, 0, 1);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -849,7 +849,10 @@ public class KuaishouChannelServiceImpl extends ServiceImpl<KuaishouChannelMappe
|
|
|
}
|
|
|
if (usageRange == 1) {
|
|
|
/**============================账户范围============================*/
|
|
|
- if ("plan".equals(usageLevel) && usageLevel.equals(level)) {
|
|
|
+ if ("account".equals(usageLevel)) {
|
|
|
+ //---------------------账户层级---------------------
|
|
|
+ return doAccountRangeAccountLevel(accountId, strategys);
|
|
|
+ } else if ("plan".equals(usageLevel) && usageLevel.equals(level)) {
|
|
|
//---------------------计划层级---------------------
|
|
|
return doAccountRangePlanLevel(accountId, strategys);
|
|
|
} else if ("group".equals(usageLevel)) {
|
|
@@ -861,7 +864,7 @@ public class KuaishouChannelServiceImpl extends ServiceImpl<KuaishouChannelMappe
|
|
|
/**============================项目范围============================*/
|
|
|
if ("account".equals(usageLevel)) {
|
|
|
//---------------------账户层级---------------------
|
|
|
- return doProjectRangeAccountLevel(accountId, strategys);
|
|
|
+ return doAccountRangePlanLevel(accountId, strategys);
|
|
|
} else if ("plan".equals(usageLevel) && usageLevel.equals(level)) {
|
|
|
//---------------------计划层级---------------------
|
|
|
return doProjectRangePlanLevel(accountId, strategys);
|
|
@@ -873,103 +876,271 @@ public class KuaishouChannelServiceImpl extends ServiceImpl<KuaishouChannelMappe
|
|
|
return Result.error("未查到渠道号");
|
|
|
}
|
|
|
|
|
|
+ private Result<Object> doAccountRangeAccountLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) throws Exception {
|
|
|
+ List<KuaishouChannel> channelList = channelMapper.queryByAccountIdLevel(accountId, "account");
|
|
|
+ if (!Check.isNull(channelList)) {
|
|
|
+ for (KuaishouChannel channel : channelList) {
|
|
|
+ KuaishouChannelRel channelRel = channelRelService.queryByAccountChannelCode(channel.getChannelCode(), accountId);
|
|
|
+ if (Check.isNull(channelRel)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (Check.isNull(channelRel.getAppId())) {
|
|
|
+ createNewApp(channel, accountId, 1);
|
|
|
+ if (Check.isNull(channel.getAppId())) {
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ channelRel.setAppId(channel.getAppId());
|
|
|
+ channelRelService.saveOrUpdate(channelRel);
|
|
|
+ return Result.ok(channelRel);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return Result.ok(channelRel);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Result.error("未查询到渠道号");
|
|
|
+ }
|
|
|
+
|
|
|
//通过账户范围计划层级查询
|
|
|
- private Result<Object> doAccountRangePlanLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) {
|
|
|
- for (KuaishouChannelCreateStrategy strategy : strategys) {
|
|
|
- boolean flag = false;
|
|
|
- Integer cycleTimes = strategy.getCycleTimes();//可循环次数
|
|
|
- if (strategy.getCreateType() == 1) {
|
|
|
- /**---------------------组、计划 批量 创建逻辑--------------------------*/
|
|
|
- Integer numberMin = strategy.getNumberMin();
|
|
|
- Integer numberMax = strategy.getNumberMax(); //编号最大值
|
|
|
- //查询所有该策略下创建的渠道号
|
|
|
- List<KuaishouChannel> builtChannel = channelMapper.queryMaxChannelNumber(strategy.getId());
|
|
|
- if (!Check.isNull(builtChannel)) {
|
|
|
- for (KuaishouChannel maxChannel : builtChannel) {
|
|
|
- Integer haveCycleTimes = maxChannel.getHaveCycleTimes();//已用次数
|
|
|
- Long channelNumber = maxChannel.getChannelNumber();//已建最大编码
|
|
|
- //判断可循环次数>已循环次数
|
|
|
- if (cycleTimes >= haveCycleTimes) {
|
|
|
- //判断已建的编码,是否最大值,是,就跳过
|
|
|
- if (channelNumber >= numberMax) {
|
|
|
- continue;
|
|
|
- } else {
|
|
|
- //本次可用编码
|
|
|
- int number = channelNumber.intValue() + 1;
|
|
|
- //查询到计划或者组级未被分配给账户的渠道号
|
|
|
- //获取token
|
|
|
- CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
|
|
|
- //获取应用图片token
|
|
|
- JSONObject tokenJson = getAccountImgToken(strategy.getAppIconUrl(), token);
|
|
|
- strategy.setImageToken(tokenJson.getString("imageToken"));
|
|
|
- //使用范围是账户时,查询旧app来做匹配
|
|
|
- List<KuaiShouAppList> oldAppList = kuaiShouAppListService.getAppListByAccountId(accountId);
|
|
|
- strategy.setAccountId(accountId);
|
|
|
- KuaishouChannelCreateStrategy replaceData = replaceWildcard(strategy, number);
|
|
|
-// createApp(strategy, token, oldAppList);
|
|
|
-// createChannel(strategy, number, 1);
|
|
|
- flag = true;
|
|
|
- break;
|
|
|
- }
|
|
|
+ private Result<Object> doAccountRangePlanLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) throws Exception {
|
|
|
+ List<Integer> haveCycleTimesList = channelMapper.queryUsedLevel(strategys);
|
|
|
+ if (Check.isNull(haveCycleTimesList)) {
|
|
|
+ return Result.error("渠道号已无效");
|
|
|
+ }
|
|
|
+ for (Integer haveCycleTimes : haveCycleTimesList) {
|
|
|
+ //获取20个可用渠道号,筛查出一个返回给前端
|
|
|
+ List<KuaishouChannel> list = channelMapper.queryChannelByHaveCycleTimes(haveCycleTimes, "plan", strategys);
|
|
|
+ if (Check.isNull(list)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ for (KuaishouChannel channel : list) {
|
|
|
+ Integer cycleTimes = channel.getCycleTimes();//可循环次数
|
|
|
+ Integer usageTimes = channel.getUsageTimes();//使用次数
|
|
|
+ //优先判断已经循环的次数 大于 使用次数
|
|
|
+ if (haveCycleTimes > usageTimes) {
|
|
|
+ // 符合条件,获取该渠道号
|
|
|
+ KuaishouChannelRel channelRel = channelRelService.queryByAccountChannelCode(channel.getChannelCode(), accountId);
|
|
|
+ if (Check.isNull(channelRel.getAppId())) {
|
|
|
+ //创建APP
|
|
|
+ createNewApp(channel, accountId, 1);
|
|
|
+ if (Check.isNull(channel.getAppId())) {
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ channelRel.setAppId(channel.getAppId());
|
|
|
+ channelRelService.saveOrUpdate(channelRel);
|
|
|
+ return Result.ok(channelRel);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ return Result.ok(channelRel);
|
|
|
}
|
|
|
} else {
|
|
|
-
|
|
|
+ //判断可循环次数 大于 已经循环的次数
|
|
|
+ if (cycleTimes > haveCycleTimes) {
|
|
|
+ //已循环次数+1
|
|
|
+ channel.setHaveCycleTimes(haveCycleTimes + 1);
|
|
|
+ this.saveOrUpdate(channel);
|
|
|
+ }
|
|
|
+ continue;
|
|
|
}
|
|
|
}
|
|
|
- if (flag) {
|
|
|
- break;
|
|
|
- }
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- return Result.ok();
|
|
|
+ return Result.ok("未查询到渠道号");
|
|
|
}
|
|
|
|
|
|
//通过账户范围广告组层级查询
|
|
|
- private Result<Object> doAccountRangeGroupLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) {
|
|
|
- return Result.ok();
|
|
|
+ private Result<Object> doAccountRangeGroupLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) throws Exception {
|
|
|
+ List<Integer> haveCycleTimesList = channelMapper.queryUsedLevel(strategys);
|
|
|
+ if (Check.isNull(haveCycleTimesList)) {
|
|
|
+ return Result.error("渠道号已无效");
|
|
|
+ }
|
|
|
+ for (Integer haveCycleTimes : haveCycleTimesList) {
|
|
|
+ //获取20个可用渠道号,筛查出一个返回给前端
|
|
|
+ List<KuaishouChannel> list = channelMapper.queryChannelByHaveCycleTimes(haveCycleTimes, "group", strategys);
|
|
|
+ if (Check.isNull(list)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ for (KuaishouChannel channel : list) {
|
|
|
+ Integer cycleTimes = channel.getCycleTimes();//可循环次数
|
|
|
+ Integer usageTimes = channel.getUsageTimes();//使用次数
|
|
|
+ //优先判断已经循环的次数 大于 使用次数
|
|
|
+ if (haveCycleTimes > usageTimes) {
|
|
|
+ // 符合条件,获取该渠道号
|
|
|
+ KuaishouChannelRel channelRel = channelRelService.queryByAccountChannelCode(channel.getChannelCode(), accountId);
|
|
|
+ if (Check.isNull(channelRel.getAppId())) {
|
|
|
+ //创建APP
|
|
|
+ createNewApp(channel, accountId, 1);
|
|
|
+ if (Check.isNull(channel.getAppId())) {
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ channelRel.setAppId(channel.getAppId());
|
|
|
+ channelRelService.saveOrUpdate(channelRel);
|
|
|
+ return Result.ok(channelRel);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return Result.ok(channelRel);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //判断可循环次数 大于 已经循环的次数
|
|
|
+ if (cycleTimes > haveCycleTimes) {
|
|
|
+ //已循环次数+1
|
|
|
+ channel.setHaveCycleTimes(haveCycleTimes + 1);
|
|
|
+ this.saveOrUpdate(channel);
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Result.ok("未查询到渠道号");
|
|
|
}
|
|
|
|
|
|
//通过项目范围账户层级查询
|
|
|
- private Result<Object> doProjectRangeAccountLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) throws Exception {
|
|
|
- JSONObject request = new JSONObject();
|
|
|
- List<KuaishouChannel> channelList = channelMapper.queryByAccountIdLevel(accountId, "account");
|
|
|
- if (!Check.isNull(channelList)) {
|
|
|
- KuaishouChannel channel = channelList.get(0);
|
|
|
- KuaishouChannelRel channelRel = channelRelService.queryByAccountChannelCode(channel.getChannelCode(), channel.getAccountId());
|
|
|
- if (Check.isNull(channelRel)) {/////
|
|
|
- return Result.error("未查询到渠道号");
|
|
|
+ private Result<Object> doProjectRangePlanLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) throws Exception {
|
|
|
+ List<Integer> haveCycleTimesList = channelMapper.queryUsedLevel(strategys);
|
|
|
+ if (Check.isNull(haveCycleTimesList)) {
|
|
|
+ return Result.error("渠道号已无效");
|
|
|
+ }
|
|
|
+ for (Integer haveCycleTimes : haveCycleTimesList) {
|
|
|
+ //获取20个可用渠道号,筛查出一个返回给前端
|
|
|
+ List<KuaishouChannel> list = channelMapper.queryChannelByHaveCycleTimes(haveCycleTimes, "plan", strategys);
|
|
|
+ if (Check.isNull(list)) {
|
|
|
+ continue;
|
|
|
}
|
|
|
- if (Check.isNull(channelRel.getAppId())) {
|
|
|
- createNewApp(channel, accountId, 1);
|
|
|
- if (Check.isNull(channel.getAppId())) {
|
|
|
- return Result.error("账户创建应用失败,渠道号不可用");
|
|
|
+ for (KuaishouChannel channel : list) {
|
|
|
+ Integer cycleTimes = channel.getCycleTimes();//可循环次数
|
|
|
+ Integer usageTimes = channel.getUsageTimes();//使用次数
|
|
|
+ //优先判断已经循环的次数 大于 使用次数
|
|
|
+ if (haveCycleTimes > usageTimes) {
|
|
|
+ // 符合条件,获取该渠道号
|
|
|
+ KuaishouChannelRel channelRel = channelRelService.queryByAccountChannelCode(channel.getChannelCode(), accountId);
|
|
|
+ if (Check.isNull(channelRel.getAppId())) {
|
|
|
+ //创建APP
|
|
|
+ createNewApp(channel, accountId, 1);
|
|
|
+ if (Check.isNull(channel.getAppId())) {
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ channelRel.setAppId(channel.getAppId());
|
|
|
+ channelRelService.saveOrUpdate(channelRel);
|
|
|
+ return Result.ok(channelRel);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return Result.ok(channelRel);
|
|
|
+ }
|
|
|
} else {
|
|
|
- channelRel.setAppId(channel.getAppId());
|
|
|
- channelRelService.saveOrUpdate(channelRel);
|
|
|
- request.put("channelCode", channelRel.getChannelCode());
|
|
|
- request.put("appId", channelRel.getAppId());
|
|
|
- return Result.ok(request);
|
|
|
+ //判断可循环次数 大于 已经循环的次数
|
|
|
+ if (cycleTimes > haveCycleTimes) {
|
|
|
+ //已循环次数+1
|
|
|
+ channel.setHaveCycleTimes(haveCycleTimes + 1);
|
|
|
+ this.saveOrUpdate(channel);
|
|
|
+ }
|
|
|
+ continue;
|
|
|
}
|
|
|
- } else {
|
|
|
- request.put("channelCode", channelRel.getChannelCode());
|
|
|
- request.put("appId", channelRel.getAppId());
|
|
|
- return Result.ok(request);
|
|
|
}
|
|
|
- } else {
|
|
|
- return Result.error("未查询到渠道号");
|
|
|
}
|
|
|
+ return Result.ok("未查询到渠道号");
|
|
|
}
|
|
|
|
|
|
- //通过项目范围账户层级查询
|
|
|
- private Result<Object> doProjectRangePlanLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) {
|
|
|
- return Result.ok();
|
|
|
+ //通过项目范围广告组层级查询
|
|
|
+ private Result<Object> doProjectRangeGroupLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) throws Exception {
|
|
|
+ List<Integer> haveCycleTimesList = channelMapper.queryUsedLevel(strategys);
|
|
|
+ if (Check.isNull(haveCycleTimesList)) {
|
|
|
+ return Result.error("渠道号已无效");
|
|
|
+ }
|
|
|
+ for (Integer haveCycleTimes : haveCycleTimesList) {
|
|
|
+ //获取20个可用渠道号,筛查出一个返回给前端
|
|
|
+ List<KuaishouChannel> list = channelMapper.queryChannelByHaveCycleTimes(haveCycleTimes, "group", strategys);
|
|
|
+ if (Check.isNull(list)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ for (KuaishouChannel channel : list) {
|
|
|
+ Integer cycleTimes = channel.getCycleTimes();//可循环次数
|
|
|
+ Integer usageTimes = channel.getUsageTimes();//使用次数
|
|
|
+ //优先判断已经循环的次数 大于 使用次数
|
|
|
+ if (haveCycleTimes > usageTimes) {
|
|
|
+ // 符合条件,获取该渠道号
|
|
|
+ KuaishouChannelRel channelRel = channelRelService.queryByAccountChannelCode(channel.getChannelCode(), accountId);
|
|
|
+ if (Check.isNull(channelRel.getAppId())) {
|
|
|
+ //创建APP
|
|
|
+ createNewApp(channel, accountId, 1);
|
|
|
+ if (Check.isNull(channel.getAppId())) {
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ channelRel.setAppId(channel.getAppId());
|
|
|
+ channelRelService.saveOrUpdate(channelRel);
|
|
|
+ return Result.ok(channelRel);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return Result.ok(channelRel);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //判断可循环次数 大于 已经循环的次数
|
|
|
+ if (cycleTimes > haveCycleTimes) {
|
|
|
+ //已循环次数+1
|
|
|
+ channel.setHaveCycleTimes(haveCycleTimes + 1);
|
|
|
+ this.saveOrUpdate(channel);
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Result.ok("未查询到渠道号");
|
|
|
}
|
|
|
|
|
|
- //通过项目范围广告组层级查询
|
|
|
- private Result<Object> doProjectRangeGroupLevel(Long accountId, List<KuaishouChannelCreateStrategy> strategys) {
|
|
|
- return Result.ok();
|
|
|
+ private void createNewApp(KuaishouChannel channel, Long accountId, int count) throws Exception {
|
|
|
+ CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
|
|
|
+ String accessToken = null;
|
|
|
+ if (!Check.isNull(token)) {
|
|
|
+ accessToken = token.getAccessToken();
|
|
|
+ }
|
|
|
+ if (Check.isNull(channel.getChannelAppInfoId())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ KuaishouChannelAppInfo one = channelAppInfoService.getById(channel.getChannelAppInfoId());
|
|
|
+ JSONObject tokenJson = getAccountImgToken(one.getAppIconUrl(), token);
|
|
|
+ String imageToken = tokenJson.getString("imageToken");
|
|
|
+ JSONObject requestJson = new JSONObject();
|
|
|
+ requestJson.put("advertiser_id", accountId);
|
|
|
+ requestJson.put("app_version", one.getAppVersion());
|
|
|
+ requestJson.put("app_name", one.getAppName());
|
|
|
+ requestJson.put("image_token", imageToken);
|
|
|
+ requestJson.put("package_name", one.getPackageName());
|
|
|
+ requestJson.put("platform", 1);//Android应用下载
|
|
|
+ requestJson.put("url", one.getUrl());
|
|
|
+ requestJson.put("use_sdk", 0);
|
|
|
+ requestJson.put("app_privacy_url", one.getAppPrivacyUrl());
|
|
|
+ String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.APP_CREATE;
|
|
|
+ Map<String, String> headerMap = new HashMap<>();
|
|
|
+ headerMap.put("Content-Type", "multipart/form-data");
|
|
|
+ headerMap.put("Access-Token", accessToken);
|
|
|
+ String request = materialUploadService.exceptInfoForRestTemplate(url, requestJson, headerMap);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(request);
|
|
|
+ if (!Check.isNull(resultJson)) {
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ if (code == 0) {
|
|
|
+ JSONObject data = resultJson.getJSONObject("data");
|
|
|
+ Long appId = data.getLong("app_id");
|
|
|
+ one.setState(1);//成功
|
|
|
+ one.setRemark("创建" + count + "次,succsee");
|
|
|
+ one.setAppId(appId);
|
|
|
+ channelAppInfoService.saveOrUpdate(one);
|
|
|
+ channel.setAppId(appId);
|
|
|
+ } else {
|
|
|
+ String message = resultJson.getString("message");
|
|
|
+ one.setRemark("创建" + count + "次," + message);
|
|
|
+ channelAppInfoService.saveOrUpdate(one);
|
|
|
+ if (message.contains("token")) {
|
|
|
+ //token失效直接跳过
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (count == 3) {
|
|
|
+ //渠道号关联的应用创建3次未成功,该渠道号状态置为无效
|
|
|
+ channel.setState(0);
|
|
|
+ this.saveOrUpdate(channel);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Check.isNull(one.getAppId()) && count < 4) {
|
|
|
+ createNewApp(channel, accountId, count + 1);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -993,7 +1164,6 @@ public class KuaishouChannelServiceImpl extends ServiceImpl<KuaishouChannelMappe
|
|
|
isCycle = createStrategy.getIsCycle();
|
|
|
//若有渠道号策略,则必须创建渠道号,除非渠道号已经建满(是否循环,循环次数决定)
|
|
|
//判断是否已创建过渠道号,若未创建,则进行创建
|
|
|
- newAccountId(accountId, strategys, usageLevel);
|
|
|
} else {
|
|
|
usageRange = channel.getUsageRange();
|
|
|
usageLevel = channel.getUsageLevel();
|
|
@@ -1027,50 +1197,6 @@ public class KuaishouChannelServiceImpl extends ServiceImpl<KuaishouChannelMappe
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- private void createNewApp(KuaishouChannel channel, Long accountId, int count) throws Exception {
|
|
|
- CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
|
|
|
- String accessToken = null;
|
|
|
- if (!Check.isNull(token)) {
|
|
|
- accessToken = token.getAccessToken();
|
|
|
- }
|
|
|
- KuaishouChannelAppInfo one = channelAppInfoService.getById(channel.getChannelAppInfoId());
|
|
|
- JSONObject tokenJson = getAccountImgToken(one.getAppIconUrl(), token);
|
|
|
- String imageToken = tokenJson.getString("imageToken");
|
|
|
- JSONObject requestJson = new JSONObject();
|
|
|
- requestJson.put("advertiser_id", channel.getAccountId());
|
|
|
- requestJson.put("app_version", one.getAppVersion());
|
|
|
- requestJson.put("app_name", one.getAppName());
|
|
|
- requestJson.put("image_token", imageToken);
|
|
|
- requestJson.put("package_name", one.getPackageName());
|
|
|
- requestJson.put("platform", 1);//Android应用下载
|
|
|
- requestJson.put("url", one.getUrl());
|
|
|
- requestJson.put("use_sdk", 0);
|
|
|
- requestJson.put("app_privacy_url", one.getAppPrivacyUrl());
|
|
|
- String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.APP_CREATE;
|
|
|
- Map<String, String> headerMap = new HashMap<>();
|
|
|
- headerMap.put("Content-Type", "multipart/form-data");
|
|
|
- headerMap.put("Access-Token", accessToken);
|
|
|
- String request = materialUploadService.exceptInfoForRestTemplate(url, requestJson, headerMap);
|
|
|
- JSONObject resultJson = JSONObject.parseObject(request);
|
|
|
- if (!Check.isNull(resultJson)) {
|
|
|
- Integer code = resultJson.getInteger("code");
|
|
|
- if (code == 0) {
|
|
|
- JSONObject data = resultJson.getJSONObject("data");
|
|
|
- Long appId = data.getLong("app_id");
|
|
|
- one.setState(1);//成功
|
|
|
- one.setRemark("应用创建成功");
|
|
|
- one.setAppId(appId);
|
|
|
- channelAppInfoService.saveOrUpdate(one);
|
|
|
- channel.setAppId(appId);
|
|
|
- this.saveOrUpdate(channel);
|
|
|
- }
|
|
|
- }
|
|
|
- if (Check.isNull(one.getAppId()) && count < 4) {
|
|
|
- createNewApp(channel, accountId, count + 1);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* 1、通过账户id查询渠道号,查到则返回
|
|
|
*/
|
|
@@ -1112,131 +1238,4 @@ public class KuaishouChannelServiceImpl extends ServiceImpl<KuaishouChannelMappe
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- private void newAccountId(Long accountId, List<KuaishouChannelCreateStrategy> strategys, String usageLevel) throws Exception {
|
|
|
- for (KuaishouChannelCreateStrategy strategy : strategys) {
|
|
|
- boolean flag = false;
|
|
|
- Integer cycleTimes = strategy.getCycleTimes();//可循环次数
|
|
|
- if ("account".equals(usageLevel)) {
|
|
|
- if (strategy.getCreateType() == 1) {
|
|
|
- Integer numberMin = strategy.getNumberMin();
|
|
|
- Integer numberMax = strategy.getNumberMax(); //编号最大值
|
|
|
- //查询所有该策略下创建的渠道号
|
|
|
- List<KuaishouChannel> builtChannel = channelMapper.queryMaxChannelNumber(strategy.getId());
|
|
|
- if (!Check.isNull(builtChannel)) {
|
|
|
- for (KuaishouChannel maxChannel : builtChannel) {
|
|
|
- Integer haveCycleTimes = maxChannel.getHaveCycleTimes();//已用次数
|
|
|
- Long channelNumber = maxChannel.getChannelNumber();//已建最大编码
|
|
|
- //判断可循环次数>已循环次数
|
|
|
- if (cycleTimes >= haveCycleTimes) {
|
|
|
- //判断已建的编码,是否最大值,是,就跳过
|
|
|
- if (channelNumber >= numberMax) {
|
|
|
- continue;
|
|
|
- } else {
|
|
|
- //获取token
|
|
|
- CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
|
|
|
- //获取应用图片token
|
|
|
- JSONObject tokenJson = getAccountImgToken(strategy.getAppIconUrl(), token);
|
|
|
- strategy.setImageToken(tokenJson.getString("imageToken"));
|
|
|
- //使用范围是账户时,查询旧app来做匹配
|
|
|
- List<KuaiShouAppList> oldAppList = kuaiShouAppListService.getAppListByAccountId(accountId);
|
|
|
- strategy.setAccountId(accountId);
|
|
|
- KuaishouChannelCreateStrategy replaceData = replaceWildcard(strategy, channelNumber.intValue() + 1);
|
|
|
- createApp(strategy, token, oldAppList);
|
|
|
- createChannel(strategy, channelNumber.intValue() + 1, 1);
|
|
|
- if (!"account".equals(usageLevel)) {
|
|
|
-
|
|
|
- }
|
|
|
- flag = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- /**通过策略没有查询到则取最小值重新创建*/
|
|
|
- //获取token
|
|
|
- CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
|
|
|
- //获取应用图片token
|
|
|
- JSONObject tokenJson = getAccountImgToken(strategy.getAppIconUrl(), token);
|
|
|
- strategy.setImageToken(tokenJson.getString("imageToken"));
|
|
|
- //使用范围是账户时,查询旧app来做匹配
|
|
|
- List<KuaiShouAppList> oldAppList = kuaiShouAppListService.getAppListByAccountId(accountId);
|
|
|
- strategy.setAccountId(accountId);
|
|
|
- KuaishouChannelCreateStrategy replaceData = replaceWildcard(strategy, numberMin);
|
|
|
- createApp(strategy, token, oldAppList);
|
|
|
- createChannel(strategy, numberMin, 1);//自定义,excel创建的排序都为0
|
|
|
- flag = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- } else {
|
|
|
- /**---------------------创建方式是 excel和自定义--------------------------*/
|
|
|
- //查询已用次数
|
|
|
- Integer usedCount = channelMapper.queryUsedChannelNumber(strategy.getId());
|
|
|
- if (usedCount >= cycleTimes) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- //获取token
|
|
|
- CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
|
|
|
- //获取应用图片token
|
|
|
- JSONObject tokenJson = getAccountImgToken(strategy.getAppIconUrl(), token);
|
|
|
- //使用范围是账户时,查询旧app来做匹配
|
|
|
- List<KuaiShouAppList> oldAppList = kuaiShouAppListService.getAppListByAccountId(accountId);
|
|
|
- strategy.setImageToken(tokenJson.getString("imageToken"));
|
|
|
- strategy.setAccountId(accountId);
|
|
|
- createApp(strategy, token, oldAppList);
|
|
|
- createChannel(strategy, 1, 1);
|
|
|
- }
|
|
|
- } else {
|
|
|
- /**---------------------组、计划逻辑--------------------------*/
|
|
|
- if (strategy.getCreateType() == 1) {
|
|
|
- /**---------------------组、计划 批量 创建逻辑--------------------------*/
|
|
|
- Integer numberMin = strategy.getNumberMin();
|
|
|
- Integer numberMax = strategy.getNumberMax(); //编号最大值
|
|
|
- //查询所有该策略下创建的渠道号
|
|
|
- List<KuaishouChannel> builtChannel = channelMapper.queryMaxChannelNumber(strategy.getId());
|
|
|
- if (!Check.isNull(builtChannel)) {
|
|
|
- for (KuaishouChannel maxChannel : builtChannel) {
|
|
|
- Integer haveCycleTimes = maxChannel.getHaveCycleTimes();//已用次数
|
|
|
- Long channelNumber = maxChannel.getChannelNumber();//已建最大编码
|
|
|
- //判断可循环次数>已循环次数
|
|
|
- if (cycleTimes >= haveCycleTimes) {
|
|
|
- //判断已建的编码,是否最大值,是,就跳过
|
|
|
- if (channelNumber >= numberMax) {
|
|
|
- continue;
|
|
|
- } else {
|
|
|
- //本次可用编码
|
|
|
- int number = channelNumber.intValue() + 1;
|
|
|
- //查询到计划或者组级未被分配给账户的渠道号
|
|
|
- //获取token
|
|
|
- CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
|
|
|
- //获取应用图片token
|
|
|
- JSONObject tokenJson = getAccountImgToken(strategy.getAppIconUrl(), token);
|
|
|
- strategy.setImageToken(tokenJson.getString("imageToken"));
|
|
|
- //使用范围是账户时,查询旧app来做匹配
|
|
|
- List<KuaiShouAppList> oldAppList = kuaiShouAppListService.getAppListByAccountId(accountId);
|
|
|
- strategy.setAccountId(accountId);
|
|
|
- KuaishouChannelCreateStrategy replaceData = replaceWildcard(strategy, number);
|
|
|
- createApp(strategy, token, oldAppList);
|
|
|
- createChannel(strategy, number, 1);
|
|
|
- flag = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- /**---------------------组、计划 Excel、自定义 创建逻辑--------------------------*/
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- if (flag) {
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
}
|