|
@@ -1,13 +1,7 @@
|
|
|
package cn.com.ctop.toutiao.modules.report.service.impl;
|
|
|
|
|
|
-import cn.com.ctop.common.module.entity.CtopOauthToken;
|
|
|
-import cn.com.ctop.common.module.entity.RuleDataPlan;
|
|
|
-import cn.com.ctop.common.module.entity.RuleDataTarget;
|
|
|
-import cn.com.ctop.common.module.entity.UserAllocation;
|
|
|
-import cn.com.ctop.common.module.service.ICtopOauthTokenService;
|
|
|
-import cn.com.ctop.common.module.service.IRuleDataPlanService;
|
|
|
-import cn.com.ctop.common.module.service.IRuleDataTargetService;
|
|
|
-import cn.com.ctop.common.module.service.IUserAllocationService;
|
|
|
+import cn.com.ctop.common.module.entity.*;
|
|
|
+import cn.com.ctop.common.module.service.*;
|
|
|
import cn.com.ctop.common.module.utils.Check;
|
|
|
import cn.com.ctop.common.module.utils.CtopAdConstant;
|
|
|
import cn.com.ctop.common.module.utils.HttpUtils;
|
|
@@ -15,6 +9,7 @@ import cn.com.ctop.common.module.utils.PropertiesUtils;
|
|
|
import cn.com.ctop.common.module.vo.ByteDanceAdvertiserReportDTO;
|
|
|
import cn.com.ctop.toutiao.modules.material.entity.ByteDanceAdvertisePlan;
|
|
|
import cn.com.ctop.toutiao.modules.material.service.IByteDanceAdvertiserDataService;
|
|
|
+import cn.com.ctop.toutiao.modules.material.service.IByteDanceCreativeService;
|
|
|
import cn.com.ctop.toutiao.modules.report.entity.*;
|
|
|
import cn.com.ctop.toutiao.modules.report.mapper.BytedanceReportMaterialDailyMapper;
|
|
|
import cn.com.ctop.toutiao.modules.report.service.*;
|
|
@@ -198,20 +193,91 @@ public class ReportServiceImpl implements IReportService {
|
|
|
dailyReport.setDownloadUrl(plan.getDownloadUrl());
|
|
|
dailyReport.setExternalUrl(plan.getExternalUrl());
|
|
|
dailyReport.setPricing(plan.getPricing());
|
|
|
- RuleDataTarget target = new RuleDataTarget(token,dailyReport.getId(),data,allocation.getAuthName());
|
|
|
+ RuleDataTarget target = new RuleDataTarget();
|
|
|
+ JSONObject audienceObject = JSONObject.parseObject(plan.getAudience());
|
|
|
+ target.setAccountId(token.getAccountId());
|
|
|
+ target.setAccountName(allocation.getAuthName());
|
|
|
+ target.setPlanId(dailyReport.getPlanId());
|
|
|
+ target.setId(dailyReport.getPlanId());
|
|
|
+ target.setCreateTime(new Date());
|
|
|
+ target.setUpdateTime(new Date());
|
|
|
+ if(null!=audienceObject.getString("retargeting_tags_exclude")){
|
|
|
+ target.setRetargetingTagsExclude(audienceObject.getString("retargeting_tags_exclude"));
|
|
|
+ }
|
|
|
+ target.setHideIfConverted(plan.getHideIfConverted());
|
|
|
+ target.setHideIfExists(plan.getHideIfExists());
|
|
|
|
|
|
+ target.setInventoryType(plan.getInventoryType());
|
|
|
+ if(null!=audienceObject.getString("city")){
|
|
|
+ target.setDistrict(audienceObject.getString("city"));
|
|
|
+ }
|
|
|
+ if(null!=audienceObject.getString("gender")){
|
|
|
+ target.setGender(audienceObject.getString("gender"));
|
|
|
+ }
|
|
|
+ if(null!=audienceObject.getString("age")){
|
|
|
+ target.setAge(audienceObject.getString("age"));
|
|
|
+ }
|
|
|
+ if(null!=audienceObject.getString("exclude_flow_package")){
|
|
|
+ target.setExcludeFlowPackage(audienceObject.getString("exclude_flow_package"));
|
|
|
+ }
|
|
|
+// this.flowPackage = audience.getString("flow_package");
|
|
|
+ if(null!=audienceObject.getString("platform")){
|
|
|
+ target.setPlatform(audienceObject.getString("platform"));
|
|
|
+ }
|
|
|
+ target.setDeepBidType(plan.getDeepBidType());
|
|
|
+ target.setScheduleTime(plan.getScheduleTime());
|
|
|
+
|
|
|
+ ruleDataTargetService.saveOrUpdate(target);
|
|
|
+ Map<String, Object> creativeDetail = creativeService.getCreativeDetail(token, plan.getId());
|
|
|
+ if(null!=creativeDetail.get("data")){
|
|
|
+ JSONObject detail = (JSONObject) creativeDetail.get("data");
|
|
|
+ formatCreativeData(detail,allocation,dailyReport);
|
|
|
+ }
|
|
|
}
|
|
|
ruleDataPlanService.saveOrUpdate(dailyReport);
|
|
|
}
|
|
|
getPlanRuleDataByPage(token, conditions, page + 1);
|
|
|
}
|
|
|
|
|
|
+ private void formatCreativeData(JSONObject detail, UserAllocation allocation, RuleDataPlan plan) {
|
|
|
+ //广告来源
|
|
|
+ String source = detail.getString("source");
|
|
|
+ Integer isPresentedVideo = detail.getInteger("is_presented_video");
|
|
|
+ JSONArray creatives = detail.getJSONArray("creatives");
|
|
|
+ if(null!=creatives&&!creatives.isEmpty()){
|
|
|
+ for(int i=0;i<creatives.size();i++){
|
|
|
+ JSONObject data = creatives.getJSONObject(i);
|
|
|
+ Long creativeId = data.getLong("creative_id");
|
|
|
+ if(null!=creativeId){
|
|
|
+ String title = data.getString("title");
|
|
|
+ RuleDataCreative dataCreative = new RuleDataCreative();
|
|
|
+ dataCreative.setId(creativeId);
|
|
|
+ dataCreative.setCreativeId(creativeId);
|
|
|
+ dataCreative.setCreativeTitle(title);
|
|
|
+ dataCreative.setPlanId(plan.getId());
|
|
|
+ dataCreative.setPlanName(plan.getPlanName());
|
|
|
+ dataCreative.setAccountId(allocation.getAccountId());
|
|
|
+ dataCreative.setAccountName(allocation.getAuthName());
|
|
|
+ dataCreative.setSource(source);
|
|
|
+ dataCreative.setPresentedVideo(isPresentedVideo);
|
|
|
+ dataCreative.setCreateTime(new Date());
|
|
|
+ dataCreative.setUpdateTime(new Date());
|
|
|
+ ruleDataCreativeService.saveOrUpdate(dataCreative);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IByteDanceCreativeService creativeService;
|
|
|
@Autowired
|
|
|
private IUserAllocationService userAllocationService;
|
|
|
@Autowired
|
|
|
private IRuleDataPlanService ruleDataPlanService;
|
|
|
@Autowired
|
|
|
private IRuleDataTargetService ruleDataTargetService;
|
|
|
+ @Autowired
|
|
|
+ private IRuleDataCreativeService ruleDataCreativeService;
|
|
|
|
|
|
private void getPlanReportByPage(CtopOauthToken token, ByteDanceAdvertiserReportDTO conditions, int page) {
|
|
|
conditions.setPage(page);
|