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
huluobin
dc-java
Commits
094a48b1
Commit
094a48b1
authored
Aug 31, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
广告!!!!!
parent
4e5c0351
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
116 additions
and
1 deletion
+116
-1
AmazonURI.java
...ad/src/main/java/com/bailuntec/domain/pojo/AmazonURI.java
+43
-0
AmazonAdGenerateReportIdJob.java
...n/java/com/bailuntec/job/AmazonAdGenerateReportIdJob.java
+72
-0
DcAutoSalesForecastStageConfigMapper.xml
...bailuntec/mapper/DcAutoSalesForecastStageConfigMapper.xml
+1
-1
JobAmazonAdLogMapper.xml
...c/main/java/com/bailuntec/mapper/JobAmazonAdLogMapper.xml
+0
-0
No files found.
data-base/base-sync-amazon-ad/src/main/java/com/bailuntec/domain/pojo/AmazonURI.java
0 → 100644
View file @
094a48b1
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
;
}
}
}
data-base/base-sync-amazon-ad/src/main/java/com/bailuntec/job/AmazonAdGenerateReportIdJob.java
View file @
094a48b1
...
...
@@ -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
);
}
});
}
...
...
data-common/src/main/java/com/bailuntec/mapper/DcAutoSalesForecastStageConfigMapper.xml
View file @
094a48b1
...
...
@@ -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.ware
ListenerContainer
house_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)
...
...
data-common/src/main/java/com/bailuntec/mapper/JobAmazonAdLogMapper.xml
View file @
094a48b1
This diff is collapsed.
Click to expand it.
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