Commit 094a48b1 by huluobin

广告!!!!!

parent 4e5c0351
package com.bailuntec.domain.pojo;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020/8/24 10:29 上午
*/
public class AmazonURI {
public static final URI NA_AMAZON_AD_URL = URI.create("https://advertising-api.amazon.com");
public static final URI EU_AMAZON_AD_URL = URI.create("https://advertising-api-eu.amazon.com");
public static final URI FE_AMAZON_AD_URL = URI.create("https://advertising-api-fe.amazon.com");
public static final Map<String, URI> amazonUriMap = new HashMap<>();
public static URI getAmazonAdSiteUri(String siteEn) {
switch (siteEn.toUpperCase()) {
case "UK":
case "FR":
case "IT":
case "ES":
case "DE":
return EU_AMAZON_AD_URL;
case "AU":
case "JP":
case "IN":
return FE_AMAZON_AD_URL;
case "US":
case "CA":
case "MX":
default:
return NA_AMAZON_AD_URL;
}
}
}
......@@ -8,6 +8,7 @@ import com.bailuntec.domain.example.DcBaseCompanyAccountExample;
import com.bailuntec.domain.example.JobAmazonAdLogExample;
import com.bailuntec.domain.pojo.AmazonAdAuth;
import com.bailuntec.domain.pojo.AmazonAdSuccessResult;
import com.bailuntec.domain.pojo.AmazonURI;
import com.bailuntec.mapper.DcBaseCompanyAccountMapper;
import com.bailuntec.mapper.JobAmazonAdLogMapper;
import com.bailuntec.utils.OkHttpUtil;
......@@ -48,7 +49,12 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob {
// .stream()
// .filter(dcBaseCompanyAccount -> dcBaseCompanyAccount.getAccountId() == 671)
.forEach(dcBaseCompanyAccount -> {
//productAds
try {
// LocalDateTime reportDate = LocalDateTime.of(2020, 8, 30, 0, 0);
LocalDateTime reportDate = LocalDateTime.now().minusDays(1).minusHours(12);
JSONObject jsonObject = new JSONObject();
jsonObject.put("reportDate", reportDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
......@@ -78,7 +84,9 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob {
JobAmazonAdLog jobAmazonAdLog = jobAmazonAdLogMapper.selectOneByExample(JobAmazonAdLogExample
.newAndCreateCriteria()
.andAccountIdEqualTo(dcBaseCompanyAccount.getAccountId())
.andCompanyIdEqualTo(dcBaseCompanyAccount.getCompanyId())
.andReportDateEqualTo(reportDate.toLocalDate())
.andTypeEqualTo(1)
.example());
if (jobAmazonAdLog == null) {
......@@ -113,6 +121,70 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob {
log.error(ex.getMessage(), ex);
log.error("帐号id :{} 下载报告失败", dcBaseCompanyAccount.getAccountId());
}
//display
try {
AmazonAdAuth amazonAdAuth = JSON.parseObject(dcBaseCompanyAccount.getAmazonAdAuthJson(), AmazonAdAuth.class);
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");
;
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);
}
} else {
log.error(JSON.toJSONString(response));
throw new RuntimeException("生成报告失败");
}
} catch (Exception e) {
log.error(e.getMessage(), e);
}
});
}
......
......@@ -53,7 +53,7 @@
and (t4.config_id = t5.id or t5.id not in (select config_id
from dc_auto_sales_forecast_product_code_config
where product_code = t1.product_code))
and (t6.warehouse_code = t5.wareListenerContainerhouse_code or length(trim(t5.warehouse_code)) = 0)
and (t6.warehouse_code = t5.warehouse_code or length(trim(t5.warehouse_code)) = 0)
and (t6.hq_type = t5.warehouse_type or length(trim(t5.warehouse_type)) = 0)
and (t2.product_type = t5.category or length(trim(t5.category)) = 0)
and (t6.area_id = t5.warehouse_area_id or length(trim(t5.warehouse_area_id)) = 0)
......
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