Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
toutiao-api
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Jobs
Commits
Open sidebar
chenmingyang
toutiao-api
Commits
6a68a574
Commit
6a68a574
authored
Apr 29, 2019
by
BetterXT
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add some dto
parent
76902708
Show whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
1160 additions
and
186 deletions
+1160
-186
AdvertisingCreativeApi.java
...utiao/api/advertisingdelivery/AdvertisingCreativeApi.java
+1
-1
AdvertisingGroupApi.java
.../toutiao/api/advertisingdelivery/AdvertisingGroupApi.java
+82
-0
AdvertisingPlanApi.java
...r/toutiao/api/advertisingdelivery/AdvertisingPlanApi.java
+46
-0
AdvertisingGroupApi.java
...etter/toutiao/api/advertisingput/AdvertisingGroupApi.java
+0
-133
AdvertisingPlanApi.java
...better/toutiao/api/advertisingput/AdvertisingPlanApi.java
+0
-10
DataReportApi.java
.../java/io/better/toutiao/api/datareport/DataReportApi.java
+5
-1
AudienceDTO.java
src/main/java/io/better/toutiao/dto/AudienceDTO.java
+240
-0
BaseDTO.java
src/main/java/io/better/toutiao/dto/BaseDTO.java
+1
-1
BaseRespDTO.java
src/main/java/io/better/toutiao/dto/BaseRespDTO.java
+41
-0
AdvertisingDeliveryQueryDTO.java
.../dto/advertisingdelivery/AdvertisingDeliveryQueryDTO.java
+5
-4
AccountBudgetDTO.java
...tiao/dto/advertisingdelivery/budget/AccountBudgetDTO.java
+11
-0
AdvertisingCreativeDTO.java
.../advertisingdelivery/creative/AdvertisingCreativeDTO.java
+10
-0
AdvertisingGroupDTO.java
...ao/dto/advertisingdelivery/group/AdvertisingGroupDTO.java
+7
-0
AdvertisingPlanDTO.java
...tiao/dto/advertisingdelivery/plan/AdvertisingPlanDTO.java
+136
-0
DataReportQueryDTO.java
.../io/better/toutiao/dto/datareport/DataReportQueryDTO.java
+3
-7
AdvertisingGroupReqDTO.java
...va/io/better/toutiao/dto/resp/AdvertisingGroupReqDTO.java
+38
-0
AdvertisingGroupRespDTO.java
...a/io/better/toutiao/dto/resp/AdvertisingGroupRespDTO.java
+69
-0
AdvertisingPlanRespDTO.java
...va/io/better/toutiao/dto/resp/AdvertisingPlanRespDTO.java
+200
-0
PageRespDTO.java
src/main/java/io/better/toutiao/dto/resp/PageRespDTO.java
+30
-0
UpdateStatusDTO.java
...in/java/io/better/toutiao/dto/status/UpdateStatusDTO.java
+16
-0
AdvertisingGroupStatus.java
.../java/io/better/toutiao/enums/AdvertisingGroupStatus.java
+42
-0
AdvertisingPlanDeliveryStatus.java
...o/better/toutiao/enums/AdvertisingPlanDeliveryStatus.java
+112
-0
LandingType.java
src/main/java/io/better/toutiao/enums/LandingType.java
+32
-0
AdvertisingCreativeService.java
...ao/service/advertisingput/AdvertisingCreativeService.java
+4
-0
DataReportService.java
.../better/toutiao/service/datareport/DataReportService.java
+9
-9
DataReportServiceImpl.java
...outiao/service/datareport/impl/DataReportServiceImpl.java
+20
-20
No files found.
src/main/java/io/better/toutiao/api/advertising
put
/AdvertisingCreativeApi.java
→
src/main/java/io/better/toutiao/api/advertising
delivery
/AdvertisingCreativeApi.java
View file @
6a68a574
package
io
.
better
.
toutiao
.
api
.
advertising
put
;
package
io
.
better
.
toutiao
.
api
.
advertising
delivery
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
...
...
src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingGroupApi.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
api
.
advertisingdelivery
;
import
io.better.toutiao.dto.BaseRespDTO
;
import
io.better.toutiao.dto.resp.AdvertisingGroupReqDTO
;
import
io.better.toutiao.dto.resp.AdvertisingGroupRespDTO
;
import
io.better.toutiao.dto.status.UpdateStatusDTO
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Map
;
/**
* The interface Advertising group api.
*
* @author better create in 2019-04-28 16:27
*/
@FeignClient
(
value
=
"https://ad.toutiao.com/open_api/2"
,
url
=
"/campaign"
)
public
interface
AdvertisingGroupApi
{
/**
* The constant BUDGET_MODE_INFINITE.
*/
String
BUDGET_MODE_INFINITE
=
"BUDGET_MODE_INFINITE"
;
/**
* The constant BUDGET_MODE_DAY.
*/
String
BUDGET_MODE_DAY
=
"BUDGET_MODE_DAY"
;
/**
* 广告投放-获取某广告主的广告组信息
*
* @param accessToken 访问凭证
* @param advertiserId 广告主ID
* @param page 当前页
* @param pageSize 每页记录数
* @param filtering 过滤字段
* @param fields 查询字段
* @return advertising group
*/
@GetMapping
(
value
=
"/get"
)
BaseRespDTO
<
AdvertisingGroupRespDTO
>
getAdvertisingGroup
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestParam
(
"advertiser_id"
)
Long
advertiserId
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
,
required
=
false
)
Integer
page
,
@RequestParam
(
value
=
"page_size"
,
defaultValue
=
"20"
,
required
=
false
)
Integer
pageSize
,
@RequestParam
(
value
=
"filtering"
,
required
=
false
)
Map
<
String
,
Object
>
filtering
,
@RequestParam
(
value
=
"fields"
,
required
=
false
)
String
[]
fields
);
/**
* 广告投放-为某广告主创建广告组信息
*
* @param accessToken 访问凭证
* @param advertisingGroupReqDTO 创建信息
* @return the list
*/
@PostMapping
(
value
=
"/create"
)
BaseRespDTO
<
Long
>
createAdvertisingGroup
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestBody
AdvertisingGroupReqDTO
advertisingGroupReqDTO
);
/**
* 广告投放-修改某广告主的广告组信息
*
* @param accessToken 访问凭证
* @param advertisingGroupReqDTO 更新信息
* @return the list
*/
@PostMapping
(
value
=
"/update"
)
BaseRespDTO
<
Long
>
updateAdvertisingGroup
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestBody
AdvertisingGroupReqDTO
advertisingGroupReqDTO
);
/**
* 广告投放-修改某广告主的广告组状态信息
*
* @param accessToken 访问凭证
* @param updateStatusDTO 更新状态信息
* @return list list
*/
@PostMapping
(
value
=
"/update/status"
)
BaseRespDTO
<
Long
>
updateAdvertisingGroupStatus
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestBody
UpdateStatusDTO
updateStatusDTO
);
}
src/main/java/io/better/toutiao/api/advertisingdelivery/AdvertisingPlanApi.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
api
.
advertisingdelivery
;
import
io.better.toutiao.dto.advertisingdelivery.plan.AdvertisingPlanDTO
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author better create in 2019-04-28 16:27
*/
@FeignClient
(
value
=
"https://ad.toutiao.com/open_api/2"
,
url
=
"/ad"
)
public
interface
AdvertisingPlanApi
{
/**
* 广告投放-获取某广告的广告计划
*
* @param accessToken 访问凭证
* @param page 当前页
* @param pageSize 每页记录数
* @param filtering 过滤字段
* @param fields 查询字段
* @return
*/
@GetMapping
(
value
=
"/get"
)
List
<
Object
>
getAdvertisingPlan
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestParam
(
"advertiser_id"
)
Long
advertiserId
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
,
required
=
false
)
Integer
page
,
@RequestParam
(
value
=
"page_size"
,
defaultValue
=
"20"
,
required
=
false
)
Integer
pageSize
,
@RequestParam
(
value
=
"filtering"
,
required
=
false
)
Map
<
String
,
Object
>
filtering
,
@RequestParam
(
value
=
"fields"
,
required
=
false
)
String
[]
fields
);
/**
* 广告投放-为某广告创建广告计划
*
* @param accessToken 访问凭证
* @param advertisingPlanDTO 更新对象
* @return
*/
@PostMapping
(
value
=
"https://ad.toutiao.com/open_api/2/ad/create/"
)
List
<
Object
>
createAdvertisingPlan
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestBody
AdvertisingPlanDTO
advertisingPlanDTO
);
}
src/main/java/io/better/toutiao/api/advertisingput/AdvertisingGroupApi.java
deleted
100644 → 0
View file @
76902708
package
io
.
better
.
toutiao
.
api
.
advertisingput
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
import
java.util.Map
;
/**
* The interface Advertising group api.
*
* @author better create in 2019-04-28 16:27
*/
@FeignClient
(
value
=
""
,
url
=
""
)
public
interface
AdvertisingGroupApi
{
/**
* The constant BUDGET_MODE_INFINITE.
*/
String
BUDGET_MODE_INFINITE
=
"BUDGET_MODE_INFINITE"
;
/**
* The constant BUDGET_MODE_DAY.
*/
String
BUDGET_MODE_DAY
=
"BUDGET_MODE_DAY"
;
/**
* 广告投放-获取某广告主的广告组信息
*
* @param accessToken 访问凭证
* @param advertiserId 广告主ID
* @param page 当前页
* @param pageSize 每页记录数
* @param filtering 过滤字段
* @param fields 查询字段
* @return advertising group
*/
@GetMapping
(
value
=
"https://ad.toutiao.com/open_api/2/campaign/get/"
)
List
<
Object
>
getAdvertisingGroup
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestParam
(
"advertiser_id"
)
Long
advertiserId
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
,
required
=
false
)
Integer
page
,
@RequestParam
(
value
=
"page_size"
,
defaultValue
=
"20"
,
required
=
false
)
Integer
pageSize
,
@RequestParam
(
value
=
"filtering"
,
required
=
false
)
Map
<
String
,
Object
>
filtering
,
@RequestParam
(
value
=
"fields"
,
required
=
false
)
String
[]
fields
);
/**
* 广告投放-为某广告主创建广告组信息
*
* @param accessToken 访问凭证
* @param advertiserId 广告主ID
* @param campaignName 广告组名称
* @param budgetMode 广告组预算类型
* @param budget 广告组预算
* @param landingType 广告组推广目的
* @param uniqueFk 第三方唯一键,保证幂等性
* @return the list
*/
@PostMapping
(
value
=
"https://ad.toutiao.com/open_api/2/campaign/create/"
)
List
<
Object
>
createAdvertisingGroup
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestParam
(
"advertiser_id"
)
String
advertiserId
,
@RequestParam
(
"campaign_name"
)
String
campaignName
,
@RequestParam
(
"budget_mode"
)
String
budgetMode
,
@RequestParam
(
value
=
"budget"
,
required
=
false
)
Long
budget
,
@RequestParam
(
value
=
"landing_type"
)
String
landingType
,
@RequestParam
(
value
=
"unique_fk"
,
required
=
false
)
String
uniqueFk
);
/**
* 广告投放-修改某广告主的广告组信息
*
* @param accessToken 访问凭证
* @param advertiserId 广告主ID
* @param campaignId 广告组ID
* @param campaignName 广告组名称
* @param modifyTime 修改时间
* @param budgetMode 广告组预算类型
* @param budget 广告组预算
* @return the list
*/
@PostMapping
(
value
=
"https://ad.toutiao.com/open_api/2/campaign/update/"
)
List
<
Object
>
updateAdvertisingGroup
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestParam
(
"advertiser_id"
)
String
advertiserId
,
@RequestParam
(
"campaign_id"
)
Long
campaignId
,
@RequestParam
(
value
=
"campaign_name"
,
required
=
false
)
String
campaignName
,
@RequestParam
(
"modify_time"
)
String
modifyTime
,
@RequestParam
(
value
=
"budget_mode"
,
required
=
false
)
String
budgetMode
,
@RequestParam
(
value
=
"budget"
,
required
=
false
)
Long
budget
);
/**
* 广告投放-修改某广告主的广告组状态信息
*
* @param accessToken 访问凭证
* @param advertiserId 广告主ID
* @param campaignIds 广告组ID集合
* @param optStatus 更新状态
* @return
*/
List
<
Object
>
updateAdvertisingGroupStatus
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestParam
(
"advertiser_id"
)
String
advertiserId
,
@RequestParam
(
"campaign_ids"
)
Long
[]
campaignIds
,
@RequestParam
(
"opt_status"
)
String
optStatus
);
/**
* 广告组推广目的枚举
*/
@Getter
@AllArgsConstructor
enum
LandingType
{
/**
* 销售线索收集
*/
LINK
(
"LINK"
),
/**
* 推广应用下载
*/
APP
(
"APP"
),
/**
* 产品目录
*/
DPA
(
"DPA"
),
/**
* 商品推广(鲁班)
*/
GOODS
(
"GOODS"
);
private
String
landingType
;
}
}
src/main/java/io/better/toutiao/api/advertisingput/AdvertisingPlanApi.java
deleted
100644 → 0
View file @
76902708
package
io
.
better
.
toutiao
.
api
.
advertisingput
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
/**
* @author better create in 2019-04-28 16:27
*/
@FeignClient
(
value
=
""
,
url
=
""
)
public
interface
AdvertisingPlanApi
{
}
src/main/java/io/better/toutiao/api/datareport/DataReportApi.java
View file @
6a68a574
package
io
.
better
.
toutiao
.
api
.
datareport
;
import
io.better.toutiao.dto.BaseRespDTO
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestHeader
;
...
...
@@ -55,6 +56,7 @@ public interface DataReportApi {
* @param endDate 结束时间
* @param page 当前页
* @param pageSize 页数量
* @param groupBy the group by
* @param timeGranularity 时间粒度,STAT_TIME_GRANULARITY_DAILY, STAT_TIME_GRANULARITY_HOURLY 两个取值
* @param filtering 过滤字段
* @return advertising group report data
...
...
@@ -79,12 +81,13 @@ public interface DataReportApi {
* @param endDate 结束时间
* @param page 当前页
* @param pageSize 页数量
* @param groupBy the group by
* @param timeGranularity 时间粒度,STAT_TIME_GRANULARITY_DAILY, STAT_TIME_GRANULARITY_HOURLY 两个取值
* @param filtering 过滤字段
* @return advertising plan report data
*/
@GetMapping
(
value
=
"/ad/get/"
,
consumes
=
"application/json"
)
List
<
Object
>
getAdvertisingPlanReportData
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
BaseRespDTO
<?
>
getAdvertisingPlanReportData
(
@RequestHeader
(
"Access-Token"
)
String
accessToken
,
@RequestParam
(
"advertiser_id"
)
Long
advertiserId
,
@RequestParam
(
"start_date"
)
String
startDate
,
@RequestParam
(
"end_date"
)
String
endDate
,
...
...
@@ -103,6 +106,7 @@ public interface DataReportApi {
* @param endDate 结束时间
* @param page 当前页
* @param pageSize 页数量
* @param groupBy the group by
* @param timeGranularity 时间粒度,STAT_TIME_GRANULARITY_DAILY, STAT_TIME_GRANULARITY_HOURLY 两个取值
* @param filtering 过滤字段
* @return advertising creative report data
...
...
src/main/java/io/better/toutiao/dto/AudienceDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
;
import
lombok.Data
;
/**
* @author better create in 2019-04-29 15:26
*/
@Data
public
class
AudienceDTO
{
/**
* 定向人群包类型,前者为定向人群包,后者为排除人群包
* 允许值: "RETARGETING_INCLUDE", "RETARGETING_EXCLUDE"
*/
private
String
retargetingType
;
/**
* 当选择使用人群包定向时填写,内容为人群包id
*/
private
Integer
[]
retargetingTags
;
/**
* 定向人群包列表,内容为人群包id.(新增字段,使用新增字段支持同时选择定向和排除)
*/
private
Integer
[]
retargetingTagsInclude
;
/**
* 排除人群包列表,内容为人群包id.(新增字段,使用新增字段支持同时选择定向和排除)
*/
private
Integer
[]
retargetingTagsExclude
;
/**
* 受众性别
*/
private
String
gender
;
/**
* 受众年龄区间
*/
private
String
[]
age
;
/**
* 受众最低android版本
*/
private
String
androidOsv
;
/**
* 受众最低ios版本
*/
private
String
iosOsv
;
/**
* 受众网络类型
*/
private
String
[]
ac
;
/**
* 受众手机品牌
*/
private
String
[]
deviceBrand
;
/**
* 受众文章分类
*/
private
String
[]
articleCategory
;
/**
* 用户首次激活时间
*/
private
String
[]
activateType
;
/**
* 受众平台
*/
private
String
[]
platform
;
/**
* 受众运营商
*/
private
String
[]
carrier
;
/**
* 兴趣分类,如果传空数组 [] 表示不限,如果只传[0]表示系统推荐,如果按兴趣类型传表示自定义
*/
private
Integer
[]
adTag
;
/**
* 兴趣关键词, 返回值为词id,非兴趣词包id,可通过兴趣词包接口id2word获取具体词
*/
private
Integer
[]
interestTags
;
/**
* 地域类型,前者为省市,后者为区县。当city有数据时,必填。
* 允许值: "CITY", "COUNTY" , "BUSINESS_DISTRICT","NONE"
*/
private
String
district
;
/**
* 地域定向城市列表(当传递省份ID时,旗下市县ID可省略不传)
*/
private
Integer
[]
city
;
/**
* 受众位置类型
*/
private
String
locationType
;
/**
* 商圈ID数组
*/
private
Integer
[]
businessIds
;
/**
* APP行为定向, (请注意如果投放的是应用下载-IOS不支持设置APP行为定向,请勿传值)
*/
private
String
appBehaviorTarget
;
/**
* APP行为定向,分类集合,(请注意如果投放的是应用下载-IOS不支持设置APP行为定向,请勿传值)
*/
private
Integer
[]
appCategory
;
/**
* APP行为定向,APP集合(请注意如果投放的是应用下载-IOS不支持设置APP行为定向,请勿传值)
*/
private
Integer
[]
appIds
;
/**
* 产品目录ID(ID由查询产品目录接口得到), 当推广目的landing_type=DPA时存在
*/
private
Integer
productPlatformId
;
/**
* dpa广告类型
* 取值范围:DPA_LINK(dpa落地页)DPA_APP(dpa应用下载)
*/
private
String
[]
dpaAdType
;
/**
* DPA落地页类型广告落地页链接
*/
private
String
[]
dpaExternalUrls
;
/**
* DPA直达链接
*/
private
String
[]
dpaOpenUrls
;
/**
* DPA投放范围
* 取值范围:NONE(不限)CATEGORY(指定类别)PRODUCT(指定商品)
*/
private
String
[]
dpaCategoryType
;
/**
* dpa_category_type取值范围为CATEGORY时必填,表示类别
*/
private
Integer
[]
dpaCategories
;
/**
* dpa_category_type为PRODUCT时必填,表示商品列表
*/
private
Integer
[]
dpaProducts
;
/**
* H5地址参数(DPA推广目的特有,在填写的参数后面添加"=urlencode(开放平台提供的h5链接地址)",
* 其中urlencode(开放平台提供的h5链接地址)替换为商品库中的h5地址encode的结果)
*/
private
String
externalUrlParams
;
/**
* DPA直达链接参数(DPA推广目的特有,在“产品库中提取的scheme地址"后面追加填写的参数)
*/
private
String
openUrlParams
;
/**
* DPA人群定向(DPA推广目的特有)
* 取值范围:NONE(不限)CUSTOM(自定义)
*/
private
Integer
dpaLocalAudience
;
/**
* 包含人群包,格式为Json字符串
*/
private
String
[]
includeCustomActions
;
/**
* 排除人群包,格式为Json字符串
*/
private
String
[]
excludeCustomActions
;
/**
* 穿山甲视频创意类型
* 默认值: ORIGINAL_VIDEO
* <p>
* 允许值: "ORIGINAL_VIDEO", "REWARDED_VIDEO"
*/
private
String
unionVideoType
;
/**
* 精选流量包
*/
private
String
superiorPopularityType
;
/**
* 定向流量包ID数组
*/
private
Integer
[]
flowPackage
;
/**
* 排除流量包ID数组
*/
private
Integer
[]
excludeFlowPackage
;
/**
* 深度优化方式
*/
private
String
deepBidType
;
/**
* 深度优化出价
*/
private
Integer
deepCpabid
;
/**
* 创意投放位置
*/
private
String
[]
inventoryType
;
}
src/main/java/io/better/toutiao/dto/BaseDTO.java
View file @
6a68a574
...
...
@@ -16,5 +16,5 @@ public class BaseDTO {
/**
* 广告主ID
*/
private
Stri
ng
advertiserId
;
private
Lo
ng
advertiserId
;
}
src/main/java/io/better/toutiao/dto/BaseRespDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author better create in 2019-04-29 14:06
*/
@Data
public
class
BaseRespDTO
<
T
>
{
/**
* 成功响应码
*/
private
static
final
int
SUCCESS_CODE
=
0
;
/**
* 响应状态码
*/
private
Integer
code
;
/**
* 响应消息
*/
private
String
message
;
/**
* 响应数据
*/
private
List
<
T
>
data
;
/**
* 是否成功
*
* @return true: 表示成功,false: 表示失败
*/
public
Boolean
isSuccess
()
{
return
SUCCESS_CODE
==
code
;
}
}
src/main/java/io/better/toutiao/dto/
AdvertisingPut
DTO.java
→
src/main/java/io/better/toutiao/dto/
advertisingdelivery/AdvertisingDeliveryQuery
DTO.java
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
;
package
io
.
better
.
toutiao
.
dto
.
advertisingdelivery
;
import
io.better.toutiao.dto.PageDTO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.Map
;
/**
* 广告投放DTO
* 广告投放
查询
DTO
*
* @author better create in 2019-04-2
8 17:58
* @author better create in 2019-04-2
9 11:07
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
Advertising
Put
DTO
extends
PageDTO
{
public
class
Advertising
DeliveryQuery
DTO
extends
PageDTO
{
/**
* 过滤字段
...
...
src/main/java/io/better/toutiao/dto/advertisingdelivery/budget/AccountBudgetDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
.
advertisingdelivery
.
budget
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* @author better create in 2019-04-29 14:03
*/
@Data
public
class
AccountBudgetDTO
{
}
src/main/java/io/better/toutiao/dto/advertisingdelivery/creative/AdvertisingCreativeDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
.
advertisingdelivery
.
creative
;
import
lombok.Data
;
/**
* @author better create in 2019-04-29 11:16
*/
@Data
public
class
AdvertisingCreativeDTO
{
}
src/main/java/io/better/toutiao/dto/advertisingdelivery/group/AdvertisingGroupDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
.
advertisingdelivery
.
group
;
/**
* @author better create in 2019-04-29 11:15
*/
public
class
AdvertisingGroupDTO
{
}
src/main/java/io/better/toutiao/dto/advertisingdelivery/plan/AdvertisingPlanDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
.
advertisingdelivery
.
plan
;
import
lombok.Data
;
/**
* @author better create in 2019-04-29 10:23
*/
@Data
public
class
AdvertisingPlanDTO
{
/**
* 投放范围
*/
private
String
deliveryRange
;
/**
*
*/
private
String
budgetMode
;
/**
*
*/
private
Long
budget
;
/**
*
*/
private
String
startTime
;
/**
*
*/
private
String
endTime
;
/**
*
*/
private
Long
bid
;
/**
* 计划出价类型
*/
private
String
pricing
;
/**
* 广告投放时间类型
*/
private
String
scheduleType
;
/**
* 广告投放时段
*/
private
String
scheduleTime
;
/**
* 广告投放速度类型
*/
private
String
flowControlMode
;
/**
* 应用直达链接
*/
private
String
openUrl
;
/**
* 应用下载方式
*/
private
String
downloadType
;
/**
* 广告落地页链接
*/
private
String
externalUrl
;
/**
*
*/
private
String
downloadUrl
;
/**
* 广告名称
*/
private
String
name
;
/**
* 应用广告下载类型
*/
private
String
appType
;
/**
* 广告应用下载包名
*/
private
String
packageName
;
/**
* 过滤已转化用户类型的字段,只有转化为目标时可填
*/
private
String
hideIfConverted
;
/**
* 过滤已安装,允许值: 0, 1
*/
private
Long
hideIfExists
;
/**
* ocpm广告转化出价
*/
private
Long
cpaBid
;
/**
* 转换ID
*/
private
Long
convertId
;
/**
* 穿山甲视频创意类型,允许值:ORIGINAL_VIDEO,REWARDED_VIDEO
*/
private
String
unionVideoType
;
/**
* 深度优化方式
*/
private
String
deepBidType
;
/**
* 深度优化出价,deep_bid_type=DEEP_BID_MIN时必填
*/
private
Long
deepCpabid
;
/**
* 第三方唯一键
*/
private
String
uniqueFk
;
}
src/main/java/io/better/toutiao/dto/
DataReport
DTO.java
→
src/main/java/io/better/toutiao/dto/
datareport/DataReportQuery
DTO.java
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
;
package
io
.
better
.
toutiao
.
dto
.
datareport
;
import
io.better.toutiao.dto.PageDTO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
...
...
@@ -10,12 +11,7 @@ import java.util.Map;
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
DataReportDTO
extends
PageDTO
{
/**
* 广告主ID
*/
private
Long
advertiserId
;
public
class
DataReportQueryDTO
extends
PageDTO
{
/**
* 开始时间
...
...
src/main/java/io/better/toutiao/dto/resp/AdvertisingGroupReqDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
.
resp
;
import
io.better.toutiao.dto.BaseDTO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* @author better create in 2019-04-29 14:38
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
AdvertisingGroupReqDTO
extends
BaseDTO
{
/**
* 广告组名称
*/
private
String
campaignName
;
/**
* 广告组预算
*/
private
Integer
budget
;
/**
* 广告组预算类型
*/
private
String
budgetMode
;
/**
* 广告组推广目的
*/
private
String
landingType
;
/**
* 第三方唯一键
*/
private
String
uniqueFk
;
}
src/main/java/io/better/toutiao/dto/resp/AdvertisingGroupRespDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
.
resp
;
import
lombok.Data
;
/**
* @author better create in 2019-04-29 14:21
*/
@Data
public
class
AdvertisingGroupRespDTO
{
/**
* 广告组ID
*/
private
Long
id
;
/**
* 广告组名称
*/
private
String
name
;
/**
* 广告组预算
*/
private
Integer
budget
;
/**
* 广告组预算类型
*/
private
String
budgetMode
;
/**
* 广告组推广目的
*
* @see io.better.toutiao.enums.LandingType
*/
private
String
landingType
;
/**
* 广告组时间戳,用于更新时提交,服务端判断是否基于最新信息修改
*/
private
String
modifyTime
;
/**
* 广告组状态
*
* @see io.better.toutiao.enums.AdvertisingGroupStatus
*/
private
String
status
;
/**
* 广告组创建时间
*/
private
String
campaignCreateTime
;
/**
* 广告组修改时间
*/
private
String
campaignModifyTime
;
/**
* 分页信息
*/
private
PageRespDTO
pageInfo
;
/**
* 第三方唯一键
*/
private
String
uniqueFk
;
}
src/main/java/io/better/toutiao/dto/resp/AdvertisingPlanRespDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
.
resp
;
import
io.better.toutiao.dto.AudienceDTO
;
import
lombok.Data
;
/**
* @author better create in 2019-04-29 14:21
*/
@Data
public
class
AdvertisingPlanRespDTO
{
/**
* 广告组ID
*/
private
Long
id
;
/**
* 广告组名称
*/
private
String
name
;
/**
* 广告主ID
*/
private
Long
advertiserId
;
/**
* 广告组ID
*/
private
Long
campaignId
;
/**
* 广告组时间戳,用于更新时提交,服务端判断是否基于最新信息修改
*/
private
String
modifyTime
;
/**
* 投放范围
*/
private
String
deliveryRange
;
/**
* 计划上次修改时间
*/
private
String
adModifyTime
;
/**
* 计划创建时间
*/
private
String
adCreateTime
;
/**
* 广告组预算
*/
private
Integer
budget
;
/**
* 广告组预算类型
*/
private
String
budgetMode
;
/**
* 广告组推广目的
*
* @see io.better.toutiao.enums.LandingType
*/
private
String
landingType
;
/**
* 广告计划投放状态
*
* @see io.better.toutiao.enums.AdvertisingPlanDeliveryStatus
*/
private
String
status
;
/**
* 广告计划操作状态
*/
private
String
optStatus
;
/**
* 广告投放起始时间
*/
private
String
startTime
;
/**
* 广告投放结束时间
*/
private
String
endTime
;
/**
* 广告出价
*/
private
Integer
bid
;
/**
* 广告出价类型
*/
private
String
pricing
;
/**
* 广告投放时间类型
*/
private
String
scheduleType
;
/**
* 广告投放时段
*/
private
String
scheduleTime
;
/**
* 广告投放速度类型
*/
private
String
flowControlMode
;
/**
* 应用直达链接
*/
private
String
openUrl
;
/**
* 应用下载方式
*/
private
String
downloadType
;
/**
* 广告落地页链接
*/
private
String
externalUrl
;
/**
* 广告应用下载链接
*/
private
String
downloadUrl
;
/**
* 广告应用下载类型
*/
private
String
appType
;
/**
* 广告应用下载包名
*/
private
String
packageName
;
/**
* 广告计划审核不通过原因
*/
private
String
auditRejectReason
;
/**
* ocpc广告转化出价,如果是cpc或cpm出价方式则使用bid字段
*/
private
Integer
cpaBid
;
/**
* ocpc广告是否跳过第一阶段,0表示不跳过,1表示跳过
* (此参数将于2018年7月13日下线,ocpc将与ocpm保持一致,ocpc会默认进入第二阶段)
*/
private
Integer
cpaSkipFirstPhrase
;
/**
* 转化类型广告的转化工具id
*/
private
Integer
convertId
;
/**
* 过滤已转化用户类型字段,只有转化为目标时可填
*/
private
String
hideIfConverted
;
/**
* 过滤已安装,当推广目标为安卓应用下载时可填,0表示不过滤,1表示过滤,默认为不过滤
*/
private
Integer
hideIfExists
;
/**
* 广告受众
*/
private
AudienceDTO
audience
;
/**
* 分页信息
*/
private
PageRespDTO
pageInfo
;
/**
* 第三方唯一键
*/
private
String
uniqueFk
;
/**
* 设置package属性
*
* @param packageName
*/
public
void
setPackage
(
String
packageName
)
{
this
.
packageName
=
packageName
;
}
}
src/main/java/io/better/toutiao/dto/resp/PageRespDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
.
resp
;
import
lombok.Data
;
/**
* @author better create in 2019-04-29 14:27
*/
@Data
public
class
PageRespDTO
{
/**
* 页数
*/
private
String
page
;
/**
* 页面大小
*/
private
String
pageSize
;
/**
* 总数
*/
private
String
totalNumber
;
/**
* 总页数
*/
private
String
totalPage
;
}
src/main/java/io/better/toutiao/dto/status/UpdateStatusDTO.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
dto
.
status
;
import
lombok.Data
;
/**
* @author better create in 2019-04-29 14:48
*/
@Data
public
class
UpdateStatusDTO
{
private
Long
advertiserId
;
private
Integer
[]
campaignIds
;
private
String
optStatus
;
}
src/main/java/io/better/toutiao/enums/AdvertisingGroupStatus.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
enums
;
import
lombok.Getter
;
/**
* 广告投放-广告组状态
*
* @author better create in 2019-04-29 14:30
*/
@Getter
public
enum
AdvertisingGroupStatus
{
/**
* 启用
*/
CAMPAIGN_STATUS_ENABLE
,
/**
* 暂停
*/
CAMPAIGN_STATUS_DISABLE
,
/**
* 删除
*/
CAMPAIGN_STATUS_DELETE
,
/**
* 所有包含已删除
*/
CAMPAIGN_STATUS_ALL
,
/**
* 所有不包含已删除(状态过滤默认值)
*/
CAMPAIGN_STATUS_NOT_DELETE
,
/**
* 超出账户日预算
*/
CAMPAIGN_STATUS_ADVERTISER_BUDGET_EXCEED
;
}
src/main/java/io/better/toutiao/enums/AdvertisingPlanDeliveryStatus.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
enums
;
import
lombok.Getter
;
/**
* 广告计划投放状态
*
* @author better create in 2019-04-29 15:07
*/
@Getter
public
enum
AdvertisingPlanDeliveryStatus
{
/**
* 投放中
*/
AD_STATUS_DELIVERY_OK
,
/**
* 数据错误
*/
AD_STATUS_DATA_ERROR
,
/**
* 计划暂停
*/
AD_STATUS_DISABLE
,
/**
* 新建审核中
*/
AD_STATUS_AUDIT
,
/**
* 修改审核中
*/
AD_STATUS_REAUDIT
,
/**
* 已完成(投放达到结束时间)
*/
AD_STATUS_DONE
,
/**
* 计划新建
*/
AD_STATUS_CREATE
,
/**
* 审核不通过
*/
AD_STATUS_AUDIT_DENY
,
/**
* 账户余额不足
*/
AD_STATUS_BALANCE_EXCEED
,
/**
* 超出预算
*/
AD_STATUS_BUDGET_EXCEED
,
/**
* 未到达投放时间
*/
AD_STATUS_NOT_START
,
/**
* 不在投放时段
*/
AD_STATUS_NO_SCHEDULE
,
/**
* 已被广告组暂停
*/
AD_STATUS_CAMPAIGN_DISABLE
,
/**
* 广告组超出预算
*/
AD_STATUS_CAMPAIGN_EXCEED
,
/**
* 已删除
*/
AD_STATUS_DELETE
,
/**
* 已冻结
*/
AD_STATUS_FROZEN
,
/**
* 部分投放中
*/
AD_STATUS_SOME_DELIVERY_OK
,
/**
* 所有包含已删除
*/
AD_STATUS_ALL
,
/**
* 所有不包含已删除(状态过滤默认值)
*/
AD_STATUS_NOT_DELETE
,
/**
* 超出账户日预算
*/
AD_STATUS_ADVERTISER_BUDGET_EXCEED
;
}
src/main/java/io/better/toutiao/enums/LandingType.java
0 → 100644
View file @
6a68a574
package
io
.
better
.
toutiao
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @author better create in 2019-04-28 16:27
*/
@Getter
@AllArgsConstructor
public
enum
LandingType
{
/**
* 销售线索收集
*/
LINK
(
"LINK"
),
/**
* 推广应用下载
*/
APP
(
"APP"
),
/**
* 产品目录
*/
DPA
(
"DPA"
),
/**
* 商品推广(鲁班)
*/
GOODS
(
"GOODS"
);
private
String
landingType
;
}
\ No newline at end of file
src/main/java/io/better/toutiao/service/advertisingput/AdvertisingCreativeService.java
View file @
6a68a574
package
io
.
better
.
toutiao
.
service
.
advertisingput
;
import
java.util.List
;
/**
* @author better create in 2019-04-28 16:28
*/
public
interface
AdvertisingCreativeService
{
List
<
Object
>
getAdvertisingCreatives
();
}
src/main/java/io/better/toutiao/service/datareport/DataReportService.java
View file @
6a68a574
package
io
.
better
.
toutiao
.
service
.
datareport
;
import
io.better.toutiao.dto.
DataReport
DTO
;
import
io.better.toutiao.dto.
datareport.DataReportQuery
DTO
;
import
java.util.List
;
...
...
@@ -14,32 +14,32 @@ public interface DataReportService {
/**
* 获取广告主报表信息
*
* @param dataReportDTO the data report dto
* @param dataReport
Query
DTO the data report dto
* @return the advertisers report data
*/
List
<
Object
>
getAdvertisersReportData
(
DataReport
DTO
dataReport
DTO
);
List
<
Object
>
getAdvertisersReportData
(
DataReport
QueryDTO
dataReportQuery
DTO
);
/**
* 获取某广告主的广告组报表信息
*
* @param dataReportDTO the data report dto
* @param dataReport
Query
DTO the data report dto
* @return the advertising group report data
*/
List
<
Object
>
getAdvertisingGroupReportData
(
DataReport
DTO
dataReport
DTO
);
List
<
Object
>
getAdvertisingGroupReportData
(
DataReport
QueryDTO
dataReportQuery
DTO
);
/**
* 获取某广告主的广告计划报表信息
*
* @param dataReportDTO the data report dto
* @param dataReport
Query
DTO the data report dto
* @return the advertising plan report data
*/
List
<
Object
>
getAdvertisingPlanReportData
(
DataReport
DTO
dataReport
DTO
);
List
<
Object
>
getAdvertisingPlanReportData
(
DataReport
QueryDTO
dataReportQuery
DTO
);
/**
* 获取某广告主的广告创意报表信息
*
* @param dataReportDTO the data report dto
* @param dataReport
Query
DTO the data report dto
* @return the advertising creative report data
*/
List
<
Object
>
getAdvertisingCreativeReportData
(
DataReport
DTO
dataReport
DTO
);
List
<
Object
>
getAdvertisingCreativeReportData
(
DataReport
QueryDTO
dataReportQuery
DTO
);
}
src/main/java/io/better/toutiao/service/datareport/impl/DataReportServiceImpl.java
View file @
6a68a574
package
io
.
better
.
toutiao
.
service
.
datareport
.
impl
;
import
io.better.toutiao.api.datareport.DataReportApi
;
import
io.better.toutiao.dto.
DataReport
DTO
;
import
io.better.toutiao.dto.
datareport.DataReportQuery
DTO
;
import
io.better.toutiao.service.datareport.DataReportService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -31,51 +31,51 @@ public class DataReportServiceImpl implements DataReportService {
/**
* 获取广告主报表信息
*
* @param dataReportDTO the data report dto
* @param dataReport
Query
DTO the data report dto
* @return the advertisers report data
*/
@Override
public
List
<
Object
>
getAdvertisersReportData
(
DataReport
DTO
dataReport
DTO
)
{
return
dataReportApi
.
getAdvertisersReportData
(
dataReport
DTO
.
getAccessToken
(),
dataReport
DTO
.
getAdvertiserId
(),
dataReport
DTO
.
getStartDate
(),
dataReportDTO
.
getEndDate
(),
dataReportDTO
.
getPage
(),
dataReportDTO
.
getPageSize
(),
dataReport
DTO
.
getTimeGranularity
());
public
List
<
Object
>
getAdvertisersReportData
(
DataReport
QueryDTO
dataReportQuery
DTO
)
{
return
dataReportApi
.
getAdvertisersReportData
(
dataReport
QueryDTO
.
getAccessToken
(),
dataReportQuery
DTO
.
getAdvertiserId
(),
dataReport
QueryDTO
.
getStartDate
(),
dataReportQueryDTO
.
getEndDate
(),
dataReportQueryDTO
.
getPage
(),
dataReportQueryDTO
.
getPageSize
(),
dataReportQuery
DTO
.
getTimeGranularity
());
}
/**
* 获取某广告主的广告组报表信息
*
* @param dataReportDTO the data report dto
* @param dataReport
Query
DTO the data report dto
* @return the advertising group report data
*/
@Override
public
List
<
Object
>
getAdvertisingGroupReportData
(
DataReport
DTO
dataReport
DTO
)
{
return
dataReportApi
.
getAdvertisingGroupReportData
(
dataReport
DTO
.
getAccessToken
(),
dataReport
DTO
.
getAdvertiserId
(),
dataReport
DTO
.
getStartDate
(),
dataReportDTO
.
getEndDate
(),
dataReportDTO
.
getPage
(),
dataReport
DTO
.
getPageSize
(),
dataReport
DTO
.
getGroupBy
(),
dataReportDTO
.
getTimeGranularity
(),
dataReport
DTO
.
getFiltering
());
public
List
<
Object
>
getAdvertisingGroupReportData
(
DataReport
QueryDTO
dataReportQuery
DTO
)
{
return
dataReportApi
.
getAdvertisingGroupReportData
(
dataReport
QueryDTO
.
getAccessToken
(),
dataReportQuery
DTO
.
getAdvertiserId
(),
dataReport
QueryDTO
.
getStartDate
(),
dataReportQueryDTO
.
getEndDate
(),
dataReportQueryDTO
.
getPage
(),
dataReportQuery
DTO
.
getPageSize
(),
dataReport
QueryDTO
.
getGroupBy
(),
dataReportQueryDTO
.
getTimeGranularity
(),
dataReportQuery
DTO
.
getFiltering
());
}
/**
* 获取某广告主的广告计划报表信息
*
* @param dataReportDTO the data report dto
* @param dataReport
Query
DTO the data report dto
* @return the advertising plan report data
*/
@Override
public
List
<
Object
>
getAdvertisingPlanReportData
(
DataReport
DTO
dataReport
DTO
)
{
return
dataReportApi
.
getAdvertisingPlanReportData
(
dataReport
DTO
.
getAccessToken
(),
dataReport
DTO
.
getAdvertiserId
(),
dataReport
DTO
.
getStartDate
(),
dataReportDTO
.
getEndDate
(),
dataReportDTO
.
getPage
(),
dataReport
DTO
.
getPageSize
(),
dataReport
DTO
.
getGroupBy
(),
dataReportDTO
.
getTimeGranularity
(),
dataReport
DTO
.
getFiltering
());
public
List
<
Object
>
getAdvertisingPlanReportData
(
DataReport
QueryDTO
dataReportQuery
DTO
)
{
return
dataReportApi
.
getAdvertisingPlanReportData
(
dataReport
QueryDTO
.
getAccessToken
(),
dataReportQuery
DTO
.
getAdvertiserId
(),
dataReport
QueryDTO
.
getStartDate
(),
dataReportQueryDTO
.
getEndDate
(),
dataReportQueryDTO
.
getPage
(),
dataReportQuery
DTO
.
getPageSize
(),
dataReport
QueryDTO
.
getGroupBy
(),
dataReportQueryDTO
.
getTimeGranularity
(),
dataReportQuery
DTO
.
getFiltering
());
}
/**
* 获取某广告主的广告创意报表信息
*
* @param dataReportDTO the data report dto
* @param dataReport
Query
DTO the data report dto
* @return the advertising creative report data
*/
@Override
public
List
<
Object
>
getAdvertisingCreativeReportData
(
DataReport
DTO
dataReport
DTO
)
{
return
dataReportApi
.
getAdvertisingCreativeReportData
(
dataReport
DTO
.
getAccessToken
(),
dataReport
DTO
.
getAdvertiserId
(),
dataReport
DTO
.
getStartDate
(),
dataReportDTO
.
getEndDate
(),
dataReportDTO
.
getPage
(),
dataReport
DTO
.
getPageSize
(),
dataReport
DTO
.
getGroupBy
(),
dataReportDTO
.
getTimeGranularity
(),
dataReport
DTO
.
getFiltering
());
public
List
<
Object
>
getAdvertisingCreativeReportData
(
DataReport
QueryDTO
dataReportQuery
DTO
)
{
return
dataReportApi
.
getAdvertisingCreativeReportData
(
dataReport
QueryDTO
.
getAccessToken
(),
dataReportQuery
DTO
.
getAdvertiserId
(),
dataReport
QueryDTO
.
getStartDate
(),
dataReportQueryDTO
.
getEndDate
(),
dataReportQueryDTO
.
getPage
(),
dataReportQuery
DTO
.
getPageSize
(),
dataReport
QueryDTO
.
getGroupBy
(),
dataReportQueryDTO
.
getTimeGranularity
(),
dataReportQuery
DTO
.
getFiltering
());
}
}
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