|
@@ -275,153 +275,140 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
|
|
|
* 创建组
|
|
|
*/
|
|
|
@Override
|
|
|
- public void createUnit() {
|
|
|
- QueryWrapper<KuaiShouGroupTemplate> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("task_status", 0);
|
|
|
- queryWrapper.orderByAsc("create_time");
|
|
|
- queryWrapper.last("limit 45");
|
|
|
- List<KuaiShouGroupTemplate> list = this.list(queryWrapper);
|
|
|
- if (Check.isNull(list)) {
|
|
|
- log.error("暂未未创建的组");
|
|
|
+ public void createUnit(KuaiShouGroupTemplate template) {
|
|
|
+ Long accountId = template.getAccountId();
|
|
|
+ CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
|
|
|
+ KuaiShouGroupTemplate updateTemplate = new KuaiShouGroupTemplate();
|
|
|
+ if (Check.isNull(token)) {
|
|
|
+ updateTemplate.setTaskStatus(3);
|
|
|
+ updateTemplate.setReviewDetail("未获取到授权信息");
|
|
|
+ updateTemplate.setCreativeStatus(3);
|
|
|
+ updateTemplate.setCreativeReviewDetail("未获取到授权信息");
|
|
|
+ updateById(updateTemplate);
|
|
|
return;
|
|
|
}
|
|
|
- for (KuaiShouGroupTemplate template : list) {
|
|
|
- executorService.submit(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
|
|
|
- Long accountId = template.getAccountId();
|
|
|
- CtopOauthToken token = tokenService.getTokenByAccountId(accountId);
|
|
|
- if (Check.isNull(token)) {
|
|
|
- return;
|
|
|
- }
|
|
|
- KuaiShouGroupTemplate updateTemplate = new KuaiShouGroupTemplate();
|
|
|
- updateTemplate.setId(template.getId());
|
|
|
- updateTemplate.setTaskStatus(1);
|
|
|
- updateById(updateTemplate); // 修改状态为创建中
|
|
|
- JSONObject createUnitJson = new JSONObject();
|
|
|
-
|
|
|
- JSONArray sceneIdArr = JSONArray.parseArray(template.getSceneId());
|
|
|
- if (Check.isNull(sceneIdArr)) {
|
|
|
- updateTemplate.setTaskStatus(3);
|
|
|
- updateTemplate.setReviewDetail("scene_id不能为空");
|
|
|
- updateTemplate.setCreativeStatus(3);
|
|
|
- updateTemplate.setCreativeReviewDetail("组创建失败");
|
|
|
- updateById(updateTemplate);
|
|
|
- return;
|
|
|
- }
|
|
|
- createUnitJson.put("scene_id", sceneIdArr); //资源位置
|
|
|
- Integer sceneId = (Integer) sceneIdArr.get(0);
|
|
|
- if (sceneId != 5) {
|
|
|
- if (!Check.isNull(template.getTemplateId())) {
|
|
|
- createUnitJson.put("template_id", template.getTemplateId());
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (!Check.isNull(template.getTemplateId())) {
|
|
|
- JSONObject unionJson = getUnionJson(template.getTemplateId());
|
|
|
- if (unionJson.getInteger("code") != 0) {
|
|
|
- updateTemplate.setTaskStatus(3);
|
|
|
- updateTemplate.setReviewDetail(unionJson.getString("message"));
|
|
|
- updateTemplate.setCreativeStatus(3);
|
|
|
- updateTemplate.setCreativeReviewDetail("组创建失败");
|
|
|
- updateById(updateTemplate);
|
|
|
- return;
|
|
|
- } else {
|
|
|
- createUnitJson.put("target", unionJson.getJSONObject("target"));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- createUnitJson.put("campaign_id", template.getCampaignId());
|
|
|
- createUnitJson.put("unit_name", template.getUnitName());
|
|
|
- if (!Check.isNull(template.getBidType())) {
|
|
|
- createUnitJson.put("bid_type", template.getBidType()); // 优化目标类型
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getUseAppMarket())) {
|
|
|
- createUnitJson.put("use_app_market", template.getUseAppMarket()); //优先从系统应用商店下载
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getAppStore())) {
|
|
|
- createUnitJson.put("app_store", JSONArray.parseArray(template.getAppStore())); //应用商店列表
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getBid())) {
|
|
|
- createUnitJson.put("bid", template.getBid()); //出价
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getCpaBid())) {
|
|
|
- createUnitJson.put("cpa_bid", template.getCpaBid()); //出价
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getOcpxActionType())) {
|
|
|
- createUnitJson.put("ocpx_action_type", template.getOcpxActionType()); //优化目标
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getDeepConversionType())) {
|
|
|
- createUnitJson.put("deep_conversion_type", template.getDeepConversionType()); //深度转化目标
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getDeepConversionBid())) {
|
|
|
- createUnitJson.put("deep_conversion_bid", template.getDeepConversionBid()); //深度转化目标出价
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getUnitType())) {
|
|
|
- createUnitJson.put("unit_type", template.getUnitType()); //创意制作方式
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getBeginTime())) {
|
|
|
- createUnitJson.put("begin_time", template.getBeginTime()); //投放开始时间
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getEndTime())) {
|
|
|
- createUnitJson.put("end_time", template.getEndTime()); //投放结束时间
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getScheduleTime())) {
|
|
|
- createUnitJson.put("schedule_time", template.getScheduleTime()); //投放时间段
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getDayBudget())) {
|
|
|
- createUnitJson.put("day_budget", template.getDayBudget()); //单日预算金额
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getConvertId())) {
|
|
|
- createUnitJson.put("convert_id", template.getConvertId()); //转化目标ID
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getUrlType())) {
|
|
|
- createUnitJson.put("url_type", template.getUrlType()); //url类型
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getUrl())) {
|
|
|
- createUnitJson.put("url", template.getUrl()); // 投放链接
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getAppId())) {
|
|
|
- createUnitJson.put("app_id", template.getAppId()); // 应用ID
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getShowMode())) {
|
|
|
- createUnitJson.put("show_mode", template.getShowMode()); // 创意展现方式
|
|
|
- }
|
|
|
- if (!Check.isNull(template.getSpeed())) {
|
|
|
- createUnitJson.put("speed", template.getSpeed()); // 投放方式
|
|
|
- }
|
|
|
- Map<String, Object> groupMap = iKuaishouInterfaceService.adUnitCreate(token.getAccessToken(), accountId, createUnitJson, 1);
|
|
|
- updateTemplate = new KuaiShouGroupTemplate();
|
|
|
- updateTemplate.setId(template.getId());
|
|
|
- Integer code = (Integer) groupMap.get("code");
|
|
|
- if (code == 0) {
|
|
|
- updateTemplate.setTaskStatus(2);
|
|
|
- Long unit = (Long) groupMap.get("unitId");
|
|
|
- updateTemplate.setUnitId((unit));
|
|
|
- Thread thread = new Thread() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- createCreative(token.getAccessToken(), unit, template);
|
|
|
- }
|
|
|
- };
|
|
|
- thread.start();
|
|
|
- } else {
|
|
|
- updateTemplate.setTaskStatus(3);
|
|
|
- updateTemplate.setReviewDetail((String) groupMap.get("message"));
|
|
|
- updateTemplate.setCreativeStatus(3);
|
|
|
- updateTemplate.setCreativeReviewDetail("组创建失败");
|
|
|
- }
|
|
|
+ updateTemplate.setId(template.getId());
|
|
|
+ updateTemplate.setTaskStatus(1);
|
|
|
+ updateById(updateTemplate); // 修改状态为创建中
|
|
|
+ JSONObject createUnitJson = new JSONObject();
|
|
|
+
|
|
|
+ JSONArray sceneIdArr = JSONArray.parseArray(template.getSceneId());
|
|
|
+ if (Check.isNull(sceneIdArr)) {
|
|
|
+ updateTemplate.setTaskStatus(3);
|
|
|
+ updateTemplate.setReviewDetail("scene_id不能为空");
|
|
|
+ updateTemplate.setCreativeStatus(3);
|
|
|
+ updateTemplate.setCreativeReviewDetail("组创建失败");
|
|
|
+ updateById(updateTemplate);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ createUnitJson.put("scene_id", sceneIdArr); //资源位置
|
|
|
+ Integer sceneId = (Integer) sceneIdArr.get(0);
|
|
|
+ if (sceneId != 5) {
|
|
|
+ if (!Check.isNull(template.getTemplateId())) {
|
|
|
+ createUnitJson.put("template_id", template.getTemplateId());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (!Check.isNull(template.getTemplateId())) {
|
|
|
+ JSONObject unionJson = getUnionJson(template.getTemplateId());
|
|
|
+ if (unionJson.getInteger("code") != 0) {
|
|
|
+ updateTemplate.setTaskStatus(3);
|
|
|
+ updateTemplate.setReviewDetail(unionJson.getString("message"));
|
|
|
+ updateTemplate.setCreativeStatus(3);
|
|
|
+ updateTemplate.setCreativeReviewDetail("组创建失败");
|
|
|
updateById(updateTemplate);
|
|
|
- try {
|
|
|
- Thread.sleep(2 * 1000);
|
|
|
- } catch (InterruptedException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ createUnitJson.put("target", unionJson.getJSONObject("target"));
|
|
|
}
|
|
|
- });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ createUnitJson.put("campaign_id", template.getCampaignId());
|
|
|
+ createUnitJson.put("unit_name", template.getUnitName());
|
|
|
+ if (!Check.isNull(template.getBidType())) {
|
|
|
+ createUnitJson.put("bid_type", template.getBidType()); // 优化目标类型
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getUseAppMarket())) {
|
|
|
+ createUnitJson.put("use_app_market", template.getUseAppMarket()); //优先从系统应用商店下载
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getAppStore())) {
|
|
|
+ createUnitJson.put("app_store", JSONArray.parseArray(template.getAppStore())); //应用商店列表
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getBid())) {
|
|
|
+ createUnitJson.put("bid", template.getBid()); //出价
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getCpaBid())) {
|
|
|
+ createUnitJson.put("cpa_bid", template.getCpaBid()); //出价
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getOcpxActionType())) {
|
|
|
+ createUnitJson.put("ocpx_action_type", template.getOcpxActionType()); //优化目标
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getDeepConversionType())) {
|
|
|
+ createUnitJson.put("deep_conversion_type", template.getDeepConversionType()); //深度转化目标
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getDeepConversionBid())) {
|
|
|
+ createUnitJson.put("deep_conversion_bid", template.getDeepConversionBid()); //深度转化目标出价
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getUnitType())) {
|
|
|
+ createUnitJson.put("unit_type", template.getUnitType()); //创意制作方式
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getBeginTime())) {
|
|
|
+ createUnitJson.put("begin_time", template.getBeginTime()); //投放开始时间
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getEndTime())) {
|
|
|
+ createUnitJson.put("end_time", template.getEndTime()); //投放结束时间
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getScheduleTime())) {
|
|
|
+ createUnitJson.put("schedule_time", template.getScheduleTime()); //投放时间段
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getDayBudget())) {
|
|
|
+ createUnitJson.put("day_budget", template.getDayBudget()); //单日预算金额
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getConvertId())) {
|
|
|
+ createUnitJson.put("convert_id", template.getConvertId()); //转化目标ID
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getUrlType())) {
|
|
|
+ createUnitJson.put("url_type", template.getUrlType()); //url类型
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getUrl())) {
|
|
|
+ createUnitJson.put("url", template.getUrl()); // 投放链接
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getAppId())) {
|
|
|
+ createUnitJson.put("app_id", template.getAppId()); // 应用ID
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getShowMode())) {
|
|
|
+ createUnitJson.put("show_mode", template.getShowMode()); // 创意展现方式
|
|
|
+ }
|
|
|
+ if (!Check.isNull(template.getSpeed())) {
|
|
|
+ createUnitJson.put("speed", template.getSpeed()); // 投放方式
|
|
|
+ }
|
|
|
+ Map<String, Object> groupMap = iKuaishouInterfaceService.adUnitCreate(token.getAccessToken(), accountId, createUnitJson, 1);
|
|
|
+ updateTemplate = new KuaiShouGroupTemplate();
|
|
|
+ updateTemplate.setId(template.getId());
|
|
|
+ Integer code = (Integer) groupMap.get("code");
|
|
|
+ if (code == 0) {
|
|
|
+ updateTemplate.setTaskStatus(2);
|
|
|
+ Long unit = (Long) groupMap.get("unitId");
|
|
|
+ updateTemplate.setUnitId((unit));
|
|
|
+ Thread thread = new Thread() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ createCreative(token.getAccessToken(), unit, template);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ thread.start();
|
|
|
+ } else {
|
|
|
+ updateTemplate.setTaskStatus(3);
|
|
|
+ updateTemplate.setReviewDetail((String) groupMap.get("message"));
|
|
|
+ updateTemplate.setCreativeStatus(3);
|
|
|
+ updateTemplate.setCreativeReviewDetail("组创建失败");
|
|
|
+ }
|
|
|
+ updateById(updateTemplate);
|
|
|
+ try {
|
|
|
+ Thread.sleep(2 * 1000);
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
@@ -513,6 +500,11 @@ public class KuaiShouGroupTemplateServiceImpl extends ServiceImpl<KuaiShouGroupT
|
|
|
return returnJson;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<Long> getIdList() {
|
|
|
+ return groupTemplateMapper.getIdList();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取当天api创建创意数
|
|
|
*
|