Commit 9e238f3c by huluobin

亚马逊广告

parent 8301711b
...@@ -47,6 +47,7 @@ public class AmazonAdDownloadReportJob implements SimpleJob { ...@@ -47,6 +47,7 @@ public class AmazonAdDownloadReportJob implements SimpleJob {
JobAmazonAdLogMapper jobAmazonAdLogMapper = sqlSession.getMapper(JobAmazonAdLogMapper.class); JobAmazonAdLogMapper jobAmazonAdLogMapper = sqlSession.getMapper(JobAmazonAdLogMapper.class);
DcBaseCompanyAccountMapper dcBaseCompanyAccountMapper = sqlSession.getMapper(DcBaseCompanyAccountMapper.class); DcBaseCompanyAccountMapper dcBaseCompanyAccountMapper = sqlSession.getMapper(DcBaseCompanyAccountMapper.class);
DcBaseFinanceAmazonAdProductMapper dcBaseFinanceAmazonAdProductMapper = sqlSession.getMapper(DcBaseFinanceAmazonAdProductMapper.class); DcBaseFinanceAmazonAdProductMapper dcBaseFinanceAmazonAdProductMapper = sqlSession.getMapper(DcBaseFinanceAmazonAdProductMapper.class);
//获取15分钟前未下载的报告 注:省略报告状态判断 直接根据时间 //获取15分钟前未下载的报告 注:省略报告状态判断 直接根据时间
List<JobAmazonAdLog> jobAmazonAdLogList = jobAmazonAdLogMapper.selectUnDownload(shardingContext, LocalDateTime.now().minusMinutes(15)); List<JobAmazonAdLog> jobAmazonAdLogList = jobAmazonAdLogMapper.selectUnDownload(shardingContext, LocalDateTime.now().minusMinutes(15));
...@@ -70,11 +71,12 @@ public class AmazonAdDownloadReportJob implements SimpleJob { ...@@ -70,11 +71,12 @@ public class AmazonAdDownloadReportJob implements SimpleJob {
try (Response response = client.newCall(request).execute()) { try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful() && response.body() != null) { if (response.isSuccessful() && response.body() != null) {
log.info("开始解析账号Id为 {} 的Report----{}, 文件大小为:{} 报告时间:{}", log.info("开始解析账号Id为 {} 报告时间:{} 的Report----{}, 文件大小为:{} ",
jobAmazonAdLog.getAccountId(), jobAmazonAdLog.getAccountId(),
jobAmazonAdLog.getReportDate(),
jobAmazonAdLog.getReportId(), jobAmazonAdLog.getReportId(),
response.body().contentLength(), response.body().contentLength()
jobAmazonAdLog.getReportDate()); );
try (GZIPInputStream gzipInputStream = new GZIPInputStream(response.body().byteStream())) { try (GZIPInputStream gzipInputStream = new GZIPInputStream(response.body().byteStream())) {
Type type = new TypeToken<List<AmazonAdProduct>>() { Type type = new TypeToken<List<AmazonAdProduct>>() {
}.getType(); }.getType();
...@@ -110,6 +112,9 @@ public class AmazonAdDownloadReportJob implements SimpleJob { ...@@ -110,6 +112,9 @@ public class AmazonAdDownloadReportJob implements SimpleJob {
} }
} }
} }
jobAmazonAdLog.setStatus(true);
jobAmazonAdLogMapper.updateByPrimaryKeySelective(jobAmazonAdLog);
} }
} }
......
...@@ -43,13 +43,14 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob { ...@@ -43,13 +43,14 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob {
.andAmazonAdAuthJsonNotEqualTo("") .andAmazonAdAuthJsonNotEqualTo("")
.example()); .example());
dcBaseCompanyAccountList.forEach(dcBaseCompanyAccount -> {
dcBaseCompanyAccountList
// .stream()
// .filter(dcBaseCompanyAccount -> dcBaseCompanyAccount.getAccountId() == 671)
.forEach(dcBaseCompanyAccount -> {
try { try {
// LocalDateTime reportDate = LocalDateTime.now().minusDays(1).minusHours(12);
// LocalDateTime reportDate = LocalDateTime.now().minusDays(1).minusHours(12); // LocalDateTime reportDate = LocalDateTime.of(2020, 8, finalI, 0, 0);
LocalDateTime reportDate = LocalDateTime.of(2020, 8, 25, 0, 0);
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"));
...@@ -92,6 +93,12 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob { ...@@ -92,6 +93,12 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob {
dcBaseCompanyAccount.getSiteEn(), dcBaseCompanyAccount.getSiteEn(),
dcBaseCompanyAccount.getCompanyId()); dcBaseCompanyAccount.getCompanyId());
} }
//如果已经生成了报告 是否设置为需要重新下载?//yes
else {
jobAmazonAdLog.setReportId(amazonAdSuccessResult.getReportId());
jobAmazonAdLog.setStatus(false);
jobAmazonAdLog.setBjModified(LocalDateTime.now());
}
jobAmazonAdLogMapper.upsert(jobAmazonAdLog); jobAmazonAdLogMapper.upsert(jobAmazonAdLog);
...@@ -107,6 +114,7 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob { ...@@ -107,6 +114,7 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob {
} }
}); });
} }
} }
protected static String switchSiteUrl(String siteEn, String param) { protected static String switchSiteUrl(String siteEn, String param) {
......
...@@ -50,6 +50,7 @@ class AmazonAdDownloadReportJobTest { ...@@ -50,6 +50,7 @@ class AmazonAdDownloadReportJobTest {
GZIPInputStream inputStream = new GZIPInputStream(response.body().byteStream()); GZIPInputStream inputStream = new GZIPInputStream(response.body().byteStream());
Type type = new TypeToken<List<AmazonAdProduct>>() { Type type = new TypeToken<List<AmazonAdProduct>>() {
}.getType(); }.getType();
List<AmazonAdProduct> amazonAdProductList = new Gson().fromJson(new InputStreamReader(inputStream), type); List<AmazonAdProduct> amazonAdProductList = new Gson().fromJson(new InputStreamReader(inputStream), type);
log.warn("的Report解析完成"); log.warn("的Report解析完成");
} }
......
...@@ -38,9 +38,13 @@ public class CompanyAccountSyncJob implements SimpleJob { ...@@ -38,9 +38,13 @@ public class CompanyAccountSyncJob implements SimpleJob {
.build(); .build();
log.info("开始同步百伦帐号信息"); log.info("开始同步百伦帐号信息");
log.info("请求百伦pams api 开始");
try (Response response = client.newCall(request).execute(); try (Response response = client.newCall(request).execute();
SqlSession sqlSession = SessionUtil.getFactory().openSession(true)) { SqlSession sqlSession = SessionUtil.getFactory().openSession(true)) {
log.info("请求百伦pams api 开始结束");
DcBaseCompanyAccountMapper dcBaseCompanyAccountMapper = sqlSession.getMapper(DcBaseCompanyAccountMapper.class); DcBaseCompanyAccountMapper dcBaseCompanyAccountMapper = sqlSession.getMapper(DcBaseCompanyAccountMapper.class);
String resultStr = response.body().string(); String resultStr = response.body().string();
...@@ -57,6 +61,7 @@ public class CompanyAccountSyncJob implements SimpleJob { ...@@ -57,6 +61,7 @@ public class CompanyAccountSyncJob implements SimpleJob {
if (dcBaseCompanyAccount == null) { if (dcBaseCompanyAccount == null) {
dcBaseCompanyAccount = new DcBaseCompanyAccount(); dcBaseCompanyAccount = new DcBaseCompanyAccount();
dcBaseCompanyAccount.setBjCreate(LocalDateTime.now());
} }
BeanUtils.copyProperties(dcBaseCompanyAccount, companyAccountInfo); BeanUtils.copyProperties(dcBaseCompanyAccount, companyAccountInfo);
dcBaseCompanyAccount.setBjModified(LocalDateTime.now()); dcBaseCompanyAccount.setBjModified(LocalDateTime.now());
......
...@@ -49,6 +49,9 @@ public class FbaStockJob extends PointJob { ...@@ -49,6 +49,9 @@ public class FbaStockJob extends PointJob {
Integer totalPage = null; Integer totalPage = null;
HashMap<String, DcBaseStockFba> hashmap = new HashMap<>(); HashMap<String, DcBaseStockFba> hashmap = new HashMap<>();
do { do {
log.info("总共{}页", totalPage);
log.info("当前{}页", jobPointLog.getPageIndex());
OkHttpClient client = OkHttpUtil.getInstance(); OkHttpClient client = OkHttpUtil.getInstance();
MediaType mediaType = MediaType.parse("application/json"); MediaType mediaType = MediaType.parse("application/json");
LinkedHashMap<String, Object> map = new LinkedHashMap<>(3); LinkedHashMap<String, Object> map = new LinkedHashMap<>(3);
......
...@@ -2,6 +2,7 @@ package com.bailuntec.job; ...@@ -2,6 +2,7 @@ package com.bailuntec.job;
import com.bailuntec.domain.entity.JobPointLog; import com.bailuntec.domain.entity.JobPointLog;
import com.dangdang.ddframe.job.api.ShardingContext; import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.dangdang.ddframe.job.executor.ShardingContexts; import com.dangdang.ddframe.job.executor.ShardingContexts;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
...@@ -18,14 +19,18 @@ import java.util.HashMap; ...@@ -18,14 +19,18 @@ import java.util.HashMap;
class FbaStockJobTest { class FbaStockJobTest {
@Test @Test
void executeJob() { void execute() {
FbaStockJob fbaStockJob = new FbaStockJob(); SimpleJob fbaStockJob = new FbaStockJob();
ShardingContext shardingContext = new ShardingContext(new ShardingContexts("1", "fba-stock-job", 1, "", new HashMap<>()), 0); ShardingContext shardingContext = new ShardingContext(new ShardingContexts("1",
"fba-stock-job",
1,
"", new HashMap<>()), 0);
JobPointLog jobPointLog = new JobPointLog(); JobPointLog jobPointLog = new JobPointLog();
jobPointLog.setPageIndex(1); jobPointLog.setPageIndex(1);
jobPointLog.setPageSize(100); jobPointLog.setPageSize(100);
fbaStockJob.executeJob(shardingContext, jobPointLog); fbaStockJob.execute(shardingContext);
} }
} }
...@@ -138,7 +138,7 @@ public interface DcBaseOmsSkuMapper { ...@@ -138,7 +138,7 @@ public interface DcBaseOmsSkuMapper {
/** /**
* <p> * <p>
* 过去过去的sku销量 * 过去过去的sku平均销量
* </p> * </p>
* *
* @param lowerTime lowerTime * @param lowerTime lowerTime
...@@ -148,5 +148,5 @@ public interface DcBaseOmsSkuMapper { ...@@ -148,5 +148,5 @@ public interface DcBaseOmsSkuMapper {
Integer omsSkuSellerCount(@Param("lowerTime") LocalDateTime lowerTime, Integer omsSkuSellerCount(@Param("lowerTime") LocalDateTime lowerTime,
@Param("upperTime") LocalDateTime upperTime, @Param("upperTime") LocalDateTime upperTime,
@Param("bailunSku") String bailunSku, @Param("bailunSku") String bailunSku,
@Param("warehouseCode") String warehouseCode); @Param("warehouseCode") String warehouseCode, @Param("dyas") Integer days);
} }
...@@ -491,5 +491,6 @@ ...@@ -491,5 +491,6 @@
where status = 0 where status = 0
and bj_create &lt; #{localDateTime} and bj_create &lt; #{localDateTime}
and id % #{shardingContext.shardingTotalCount} = #{shardingContext.shardingItem} and id % #{shardingContext.shardingTotalCount} = #{shardingContext.shardingItem}
order by bj_modified desc
</select> </select>
</mapper> </mapper>
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