diff --git a/defaultability/Defaultability.go b/defaultability/Defaultability.go index 4404a9a..ddf849d 100644 --- a/defaultability/Defaultability.go +++ b/defaultability/Defaultability.go @@ -201,3 +201,20 @@ func (ability *Defaultability) TaobaoUnideskRtaReportAsynctaskResultGet(req *req err = util.HandleJsonResponse(jsonStr, &respStruct) return &respStruct, err } + +/* +UD报表-小时数据报表查询接口 +*/ +func (ability *Defaultability) TaobaoUnideskRtaReportHourlyGet(req *request.TaobaoUnideskRtaReportHourlyGetRequest, accessToken string) (*response.TaobaoUnideskRtaReportHourlyGetResponse, error) { + if ability.Client == nil { + return nil, errors.New("Defaultability topClient is nil") + } + var jsonStr, err = ability.Client.ExecuteWithSession("taobao.unidesk.rta.report.hourly.get", req.ToMap(), req.ToFileMap(), accessToken) + var respStruct = response.TaobaoUnideskRtaReportHourlyGetResponse{} + if err != nil { + log.Println("taobaoUnideskRtaReportHourlyGet error", err) + return &respStruct, err + } + err = util.HandleJsonResponse(jsonStr, &respStruct) + return &respStruct, err +} diff --git a/defaultability/domain/TaobaoUnideskRtaReportHourlyQueryDto.go b/defaultability/domain/TaobaoUnideskRtaReportHourlyQueryDto.go new file mode 100644 index 0000000..f39a3ec --- /dev/null +++ b/defaultability/domain/TaobaoUnideskRtaReportHourlyQueryDto.go @@ -0,0 +1,103 @@ +package domain + +type ReportTopHourlyQueryDTO struct { + /* + 排序字段 + */ + OrderByField *string `json:"order_by_field,omitempty" required:"false" ` + + /* + 第几页 + */ + PageNo *int `json:"page_no,omitempty" required:"false"` + + /* + 排序方式,ASC:正序、DESC:倒序 + */ + OrderByType *string `json:"order_by_type,omitempty" required:"false"` + + /* + 每页多少条 + */ + PageSize *int `json:"page_size,omitempty" required:"false"` + + /* + 分组条件,素材分组仅头条2.0支持,STAT_GROUP_BY_ADVERTISER_ID:按照广告主分组,STAT_GROUP_BY_CAMPAIGN_ID:按照计划组分组,STAT_GROUP_BY_ADGROUP_ID:按照计划分组,STAT_GROUP_BY_CREATIVE_ID:按照创意分组,STAT_GROUP_BY_TIME_DAY:按照天分组,STAT_GROUP_BY_MATERIAL_ID:按照素材分组,STAT_GROUP_BY_MATERIAL_X_ADGROUP_ID:按照素材X计划分组,STAT_GROUP_BY_COMBINATION_MATERIAL_ID:按照素材组合分组,STAT_GROUP_BY_COMBINATION_MATERIALX_CAMPAIGN_ID:按照素材组合X项目分组 + */ + GroupBy *[]string `json:"group_by" required:"true"` + + /* + 需要返回的指标,不指定则返回默认指标 + */ + Fields *[]string `json:"fields,omitempty" required:"false"` + + /* + 过滤条件 + */ + Filtering *ReportFilterTopQueryDTO `json:"filtering,omitempty" required:"false"` + + /* + 查询时间,只支持今天和昨天,格式:yyyy-MM-dd + */ + TheDate *string `json:"the_date,omitempty" required:"false"` + + /* + 广告主id + */ + AdvertiserId *int64 `json:"advertiser_id" required:"true"` + + /* + 平台版本,9999:升级版API(仅巨量2.0API需传入) + */ + Version *int `json:"version,omitempty" required:"false"` +} + +func (s *ReportTopHourlyQueryDTO) SetOrderByField(v string) *ReportTopHourlyQueryDTO { + s.OrderByField = &v + return s +} + +func (s *ReportTopHourlyQueryDTO) SetPageNo(v int) *ReportTopHourlyQueryDTO { + s.PageNo = &v + return s +} + +func (s *ReportTopHourlyQueryDTO) SetOrderByType(v string) *ReportTopHourlyQueryDTO { + s.OrderByType = &v + return s +} + +func (s *ReportTopHourlyQueryDTO) SetPageSize(v int) *ReportTopHourlyQueryDTO { + s.PageSize = &v + return s +} + +func (s *ReportTopHourlyQueryDTO) SetGroupBy(v []string) *ReportTopHourlyQueryDTO { + s.GroupBy = &v + return s +} + +func (s *ReportTopHourlyQueryDTO) SetFields(v []string) *ReportTopHourlyQueryDTO { + s.Fields = &v + return s +} + +func (s *ReportTopHourlyQueryDTO) SetFiltering(v ReportFilterTopQueryDTO) *ReportTopHourlyQueryDTO { + s.Filtering = &v + return s +} + +func (s *ReportTopHourlyQueryDTO) SetTheDate(v string) *ReportTopHourlyQueryDTO { + s.TheDate = &v + return s +} + +func (s *ReportTopHourlyQueryDTO) SetAdvertiserId(v int64) *ReportTopHourlyQueryDTO { + s.AdvertiserId = &v + return s +} + +func (s *ReportTopHourlyQueryDTO) SetVersion(v int) *ReportTopHourlyQueryDTO { + s.Version = &v + return s +} diff --git a/defaultability/request/TaobaoUnideskRtaReportHourlyGetRequest.go b/defaultability/request/TaobaoUnideskRtaReportHourlyGetRequest.go new file mode 100644 index 0000000..d69548d --- /dev/null +++ b/defaultability/request/TaobaoUnideskRtaReportHourlyGetRequest.go @@ -0,0 +1,28 @@ +package request + +import ( + "git.sunqdl.cn/fgqj/topsdk/defaultability/domain" + "git.sunqdl.cn/fgqj/topsdk/util" +) + +type TaobaoUnideskRtaReportHourlyGetRequest struct { + ReportTopQueryDto *domain.ReportTopHourlyQueryDTO `json:"report_top_query_dto" required:"true" ` +} + +func (s *TaobaoUnideskRtaReportHourlyGetRequest) SetReportTopQueryDto(v domain.ReportTopHourlyQueryDTO) *TaobaoUnideskRtaReportHourlyGetRequest { + s.ReportTopQueryDto = &v + return s +} + +func (req *TaobaoUnideskRtaReportHourlyGetRequest) ToMap() map[string]interface{} { + paramMap := make(map[string]interface{}) + if req.ReportTopQueryDto != nil { + paramMap["report_top_query_dto"] = util.ConvertStructList(*req.ReportTopQueryDto) + } + return paramMap +} + +func (req *TaobaoUnideskRtaReportHourlyGetRequest) ToFileMap() map[string]interface{} { + fileMap := make(map[string]interface{}) + return fileMap +} diff --git a/defaultability/response/TaobaoUnideskRtaReportHourlyGetResponse.go b/defaultability/response/TaobaoUnideskRtaReportHourlyGetResponse.go new file mode 100644 index 0000000..5643954 --- /dev/null +++ b/defaultability/response/TaobaoUnideskRtaReportHourlyGetResponse.go @@ -0,0 +1,14 @@ +package response + +import "git.sunqdl.cn/fgqj/topsdk/defaultability/domain" + +type TaobaoUnideskRtaReportHourlyGetResponse struct { + /* + 报表数据 + */ + Result []domain.ReportTopDto `json:"result"` + /* + 总条数 + */ + Total int `json:"total"` +}