Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dc-java
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bltdc
dc-java
Commits
3623224e
Commit
3623224e
authored
Sep 03, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
心平气和写上广告
parent
1f795387
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
124 additions
and
130 deletions
+124
-130
AmazonAdGenerateReportIdJob.java
...n/java/com/bailuntec/job/AmazonAdGenerateReportIdJob.java
+124
-130
No files found.
data-base/base-sync-amazon-ad/src/main/java/com/bailuntec/job/AmazonAdGenerateReportIdJob.java
View file @
3623224e
...
@@ -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
);
}
}
});
});
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment