Commit 3623224e by huluobin

心平气和写上广告

parent 1f795387
...@@ -46,156 +46,150 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob { ...@@ -46,156 +46,150 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob {
dcBaseCompanyAccountList dcBaseCompanyAccountList
.stream() // .stream()
.filter(dcBaseCompanyAccount -> dcBaseCompanyAccount.getAccountId() == 671) // .filter(dcBaseCompanyAccount -> dcBaseCompanyAccount.getAccountId() == 671)
.forEach(dcBaseCompanyAccount -> { .forEach(dcBaseCompanyAccount -> {
//productAds //productAds
try {
for (int i = 24; i <= 31; i++) {
LocalDateTime reportDate = LocalDateTime.of(2020, 8, i, 0, 0);
try {
// LocalDateTime reportDate = LocalDateTime.of(2020, 8, 30, 0, 0); // LocalDateTime reportDate = LocalDateTime.of(2020, 8, 30, 0, 0);
// LocalDateTime reportDate = LocalDateTime.now().minusDays(1).minusHours(12); LocalDateTime reportDate = LocalDateTime.now().minusDays(1).minusHours(12);
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("reportDate", reportDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"))); jsonObject.put("reportDate", reportDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
jsonObject.put("metrics", propertiesUtil.getPropertyAsString("METRICS")); jsonObject.put("metrics", propertiesUtil.getPropertyAsString("METRICS"));
MediaType mediaType = MediaType.parse("application/json"); MediaType mediaType = MediaType.parse("application/json");
Response response; Response response;
AmazonAdAuth amazonAdAuth = JSON.parseObject(dcBaseCompanyAccount.getAmazonAdAuthJson(), AmazonAdAuth.class); AmazonAdAuth amazonAdAuth = JSON.parseObject(dcBaseCompanyAccount.getAmazonAdAuthJson(), AmazonAdAuth.class);
RequestBody body = RequestBody.create(mediaType, jsonObject.toJSONString()); RequestBody body = RequestBody.create(mediaType, jsonObject.toJSONString());
Request request = new Request.Builder() Request request = new Request.Builder()
.url(switchSiteUrl(dcBaseCompanyAccount.getSiteEn(), null)) .url(switchSiteUrl(dcBaseCompanyAccount.getSiteEn(), null))
.post(body) .post(body)
.addHeader("Authorization", amazonAdAuth.getAccessToken()) .addHeader("Authorization", amazonAdAuth.getAccessToken())
.addHeader("Amazon-Advertising-API-ClientId", amazonAdAuth.getClientId()) .addHeader("Amazon-Advertising-API-ClientId", amazonAdAuth.getClientId())
.addHeader("Amazon-Advertising-API-Scope", amazonAdAuth.getProfileId()) .addHeader("Amazon-Advertising-API-Scope", amazonAdAuth.getProfileId())
.addHeader("Content-Type", "application/json") .addHeader("Content-Type", "application/json")
.build(); .build();
response = client.newCall(request).execute(); response = client.newCall(request).execute();
String string = response.body().string(); String string = response.body().string();
if (response.isSuccessful()) { if (response.isSuccessful()) {
AmazonAdSuccessResult amazonAdSuccessResult = JSON.parseObject(string, AmazonAdSuccessResult.class); AmazonAdSuccessResult amazonAdSuccessResult = JSON.parseObject(string, AmazonAdSuccessResult.class);
JobAmazonAdLog jobAmazonAdLog = jobAmazonAdLogMapper.selectOneByExample(JobAmazonAdLogExample JobAmazonAdLog jobAmazonAdLog = jobAmazonAdLogMapper.selectOneByExample(JobAmazonAdLogExample
.newAndCreateCriteria() .newAndCreateCriteria()
.andAccountIdEqualTo(dcBaseCompanyAccount.getAccountId()) .andAccountIdEqualTo(dcBaseCompanyAccount.getAccountId())
.andCompanyIdEqualTo(dcBaseCompanyAccount.getCompanyId()) .andCompanyIdEqualTo(dcBaseCompanyAccount.getCompanyId())
.andReportDateEqualTo(reportDate.toLocalDate()) .andReportDateEqualTo(reportDate.toLocalDate())
.andTypeEqualTo(1) .andTypeEqualTo(1)
.example()); .example());
if (jobAmazonAdLog == null) { if (jobAmazonAdLog == null) {
jobAmazonAdLog = new JobAmazonAdLog(null, jobAmazonAdLog = new JobAmazonAdLog(null,
dcBaseCompanyAccount.getAccountId(), dcBaseCompanyAccount.getAccountId(),
amazonAdSuccessResult.getReportId(), amazonAdSuccessResult.getReportId(),
reportDate.toLocalDate(), reportDate.toLocalDate(),
false, false,
LocalDateTime.now(), LocalDateTime.now(),
LocalDateTime.now(), LocalDateTime.now(),
dcBaseCompanyAccount.getSiteEn(), dcBaseCompanyAccount.getSiteEn(),
dcBaseCompanyAccount.getCompanyId(), dcBaseCompanyAccount.getCompanyId(),
1); 1);
}
//如果已经生成了报告 是否设置为需要重新下载?//yes
else {
jobAmazonAdLog.setReportId(amazonAdSuccessResult.getReportId());
jobAmazonAdLog.setStatus(false);
jobAmazonAdLog.setBjModified(LocalDateTime.now());
}
jobAmazonAdLogMapper.upsert(jobAmazonAdLog);
log.info("生成报告成功,报告日志:{}", JSON.toJSONString(jobAmazonAdLog));
} else {
log.error(JSON.toJSONString(response));
throw new RuntimeException("生成报告失败");
} }
//如果已经生成了报告 是否设置为需要重新下载?//yes
else {
jobAmazonAdLog.setReportId(amazonAdSuccessResult.getReportId());
jobAmazonAdLog.setStatus(false);
jobAmazonAdLog.setBjModified(LocalDateTime.now());
}
jobAmazonAdLogMapper.upsert(jobAmazonAdLog);
log.info("生成报告成功,报告日志:{}", JSON.toJSONString(jobAmazonAdLog));
} catch (Exception ex) { } else {
log.error(ex.getMessage(), ex); log.error(JSON.toJSONString(response));
log.error("帐号id :{} 下载报告失败", dcBaseCompanyAccount.getAccountId()); throw new RuntimeException("生成报告失败");
} }
//display } catch (Exception ex) {
try { log.error(ex.getMessage(), ex);
AmazonAdAuth amazonAdAuth = JSON.parseObject(dcBaseCompanyAccount.getAmazonAdAuthJson(), AmazonAdAuth.class); log.error("帐号id :{} 下载报告失败", dcBaseCompanyAccount.getAccountId());
}
// LocalDateTime reportDate = LocalDateTime.now().minusDays(1).minusHours(12); //display
try {
AmazonAdAuth amazonAdAuth = JSON.parseObject(dcBaseCompanyAccount.getAmazonAdAuthJson(), AmazonAdAuth.class);
// LocalDateTime reportDate = LocalDateTime.of(2020, 9, 1, 0, 0);
JSONObject jsonObject = new JSONObject(); // LocalDateTime reportDate = LocalDateTime.of(2020, 9, 1, 0, 0);
jsonObject.put("reportDate", reportDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
jsonObject.put("metrics", "campaignName,campaignId,impressions,adGroupId,adGroupName,asin,sku,adId,clicks,cost,currency,attributedConversions1d,attributedConversions7d,attributedConversions14d,attributedConversions30d,attributedConversions1dSameSKU,attributedConversions7dSameSKU,attributedConversions14dSameSKU,attributedConversions30dSameSKU,attributedUnitsOrdered1d,attributedUnitsOrdered7d,attributedUnitsOrdered14d,attributedUnitsOrdered30d,attributedSales1d,attributedSales7d,attributedSales14d,attributedSales30d,attributedSales1dSameSKU,attributedSales7dSameSKU,attributedSales14dSameSKU,attributedSales30dSameSKU");
//tactic = "T00020"
jsonObject.put("tactic", "T00020");
MediaType mediaType = MediaType.parse("application/json");
Response response;
RequestBody body = RequestBody.create(mediaType, jsonObject.toJSONString());
Request request = new Request.Builder()
.url(AmazonURI.getAmazonAdSiteUri(dcBaseCompanyAccount.getSiteEn()).toString() + "/sd/productAds/report")
.post(body)
.addHeader("Authorization", amazonAdAuth.getAccessToken())
.addHeader("Amazon-Advertising-API-ClientId", amazonAdAuth.getClientId())
.addHeader("Amazon-Advertising-API-Scope", amazonAdAuth.getProfileId())
.addHeader("Content-Type", "application/json")
.build();
response = client.newCall(request).execute();
String string = response.body().string();
if (response.isSuccessful()) {
AmazonAdSuccessResult reportResp = JSON.parseObject(string, AmazonAdSuccessResult.class);
JobAmazonAdLog jobAmazonAdLog = jobAmazonAdLogMapper.selectOneByExample(JobAmazonAdLogExample
.newAndCreateCriteria()
.andAccountIdEqualTo(dcBaseCompanyAccount.getAccountId())
.andCompanyIdEqualTo(dcBaseCompanyAccount.getCompanyId())
.andReportDateEqualTo(reportDate.toLocalDate())
.andTypeEqualTo(4)
.example());
if (jobAmazonAdLog == null) {
jobAmazonAdLog = new JobAmazonAdLog();
jobAmazonAdLog.setAccountId(dcBaseCompanyAccount.getAccountId());
jobAmazonAdLog.setCompanyId(dcBaseCompanyAccount.getCompanyId());
jobAmazonAdLog.setBjCreate(LocalDateTime.now());
jobAmazonAdLog.setBjModified(LocalDateTime.now());
jobAmazonAdLog.setReportDate(reportDate.toLocalDate());
jobAmazonAdLog.setType(4);
jobAmazonAdLog.setSiteEn(dcBaseCompanyAccount.getSiteEn());
jobAmazonAdLog.setReportId(reportResp.getReportId());
jobAmazonAdLog.setStatus(false);
jobAmazonAdLogMapper.insert(jobAmazonAdLog);
} else {
jobAmazonAdLog.setStatus(false);
jobAmazonAdLog.setReportId(reportResp.getReportId());
jobAmazonAdLogMapper.updateByPrimaryKeySelective(jobAmazonAdLog);
}
log.info("生成报告成功,报告日志:{}", JSON.toJSONString(jobAmazonAdLog));
LocalDateTime reportDate = LocalDateTime.now().minusDays(1).minusHours(12);
JSONObject jsonObject = new JSONObject();
jsonObject.put("reportDate", reportDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
jsonObject.put("metrics", "campaignName,campaignId,impressions,adGroupId,adGroupName,asin,sku,adId,clicks,cost,currency,attributedConversions1d,attributedConversions7d,attributedConversions14d,attributedConversions30d,attributedConversions1dSameSKU,attributedConversions7dSameSKU,attributedConversions14dSameSKU,attributedConversions30dSameSKU,attributedUnitsOrdered1d,attributedUnitsOrdered7d,attributedUnitsOrdered14d,attributedUnitsOrdered30d,attributedSales1d,attributedSales7d,attributedSales14d,attributedSales30d,attributedSales1dSameSKU,attributedSales7dSameSKU,attributedSales14dSameSKU,attributedSales30dSameSKU");
//tactic = "T00020"
jsonObject.put("tactic", "T00020");
MediaType mediaType = MediaType.parse("application/json");
Response response;
RequestBody body = RequestBody.create(mediaType, jsonObject.toJSONString());
Request request = new Request.Builder()
.url(AmazonURI.getAmazonAdSiteUri(dcBaseCompanyAccount.getSiteEn()).toString() + "/sd/productAds/report")
.post(body)
.addHeader("Authorization", amazonAdAuth.getAccessToken())
.addHeader("Amazon-Advertising-API-ClientId", amazonAdAuth.getClientId())
.addHeader("Amazon-Advertising-API-Scope", amazonAdAuth.getProfileId())
.addHeader("Content-Type", "application/json")
.build();
response = client.newCall(request).execute();
String string = response.body().string();
if (response.isSuccessful()) {
AmazonAdSuccessResult reportResp = JSON.parseObject(string, AmazonAdSuccessResult.class);
JobAmazonAdLog jobAmazonAdLog = jobAmazonAdLogMapper.selectOneByExample(JobAmazonAdLogExample
.newAndCreateCriteria()
.andAccountIdEqualTo(dcBaseCompanyAccount.getAccountId())
.andCompanyIdEqualTo(dcBaseCompanyAccount.getCompanyId())
.andReportDateEqualTo(reportDate.toLocalDate())
.andTypeEqualTo(4)
.example());
if (jobAmazonAdLog == null) {
jobAmazonAdLog = new JobAmazonAdLog();
jobAmazonAdLog.setAccountId(dcBaseCompanyAccount.getAccountId());
jobAmazonAdLog.setCompanyId(dcBaseCompanyAccount.getCompanyId());
jobAmazonAdLog.setBjCreate(LocalDateTime.now());
jobAmazonAdLog.setBjModified(LocalDateTime.now());
jobAmazonAdLog.setReportDate(reportDate.toLocalDate());
jobAmazonAdLog.setType(4);
jobAmazonAdLog.setSiteEn(dcBaseCompanyAccount.getSiteEn());
jobAmazonAdLog.setReportId(reportResp.getReportId());
jobAmazonAdLog.setStatus(false);
jobAmazonAdLogMapper.insert(jobAmazonAdLog);
} else { } else {
log.error(JSON.toJSONString(response)); jobAmazonAdLog.setStatus(false);
throw new RuntimeException("生成报告失败"); jobAmazonAdLog.setReportId(reportResp.getReportId());
jobAmazonAdLogMapper.updateByPrimaryKeySelective(jobAmazonAdLog);
} }
} catch (Exception e) { log.info("生成报告成功,报告日志:{}", JSON.toJSONString(jobAmazonAdLog));
log.error(e.getMessage(), e);
} else {
log.error(JSON.toJSONString(response));
throw new RuntimeException("生成报告失败");
} }
} catch (Exception e) {
log.error(e.getMessage(), e);
} }
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment