同步视频
This commit is contained in:
73
model/dto/tencent/video_dto.go
Normal file
73
model/dto/tencent/video_dto.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package tencent
|
||||
|
||||
import "github.com/gogf/gf/v2/frame/g"
|
||||
|
||||
// SyncVideoReq 同步视频素材请求
|
||||
type SyncVideoReq struct {
|
||||
g.Meta `path:"/syncVideo" method:"post" tags:"腾讯广告视频素材" summary:"同步视频素材" dc:"遍历所有账户,自动分页获取视频素材并保存到数据库"`
|
||||
AccessToken string `json:"access_token" dc:"访问令牌(可选,不传则从配置读取)"`
|
||||
}
|
||||
|
||||
// SyncVideoRes 同步视频素材响应
|
||||
type SyncVideoRes struct {
|
||||
TotalAccounts int `json:"total_accounts" dc:"处理的账户数"`
|
||||
TotalVideos int `json:"total_videos" dc:"总视频数"`
|
||||
SyncedCount int `json:"synced_count" dc:"同步成功数量"`
|
||||
Message string `json:"message" dc:"消息"`
|
||||
}
|
||||
|
||||
// ListVideoReq 获取视频素材列表请求(旧接口,无分页)
|
||||
type ListVideoReq struct {
|
||||
g.Meta `path:"/listVideo" method:"post" tags:"腾讯广告视频素材" summary:"获取视频素材列表" dc:"从本地数据库查询所有视频素材(无分页)"`
|
||||
}
|
||||
|
||||
// ListVideoPageReq 分页查询视频素材请求
|
||||
type ListVideoPageReq struct {
|
||||
g.Meta `path:"/listVideoPage" method:"post" tags:"腾讯广告视频素材" summary:"分页查询视频素材" dc:"支持分页、时间过滤、账户过滤等条件查询"`
|
||||
Page int `json:"page" dc:"页码" d:"1"`
|
||||
PageSize int `json:"page_size" dc:"每页数量" d:"20"`
|
||||
AccountId *int64 `json:"account_id,omitempty" dc:"账户ID(可选)"`
|
||||
StartTime *int64 `json:"start_time,omitempty" dc:"开始时间戳(秒,可选)"`
|
||||
EndTime *int64 `json:"end_time,omitempty" dc:"结束时间戳(秒,可选)"`
|
||||
Status string `json:"status,omitempty" dc:"状态筛选(可选)"`
|
||||
}
|
||||
|
||||
// ListVideoQueryReq 视频素材查询请求(Service层使用)
|
||||
type ListVideoQueryReq struct {
|
||||
Page int `json:"page" dc:"页码"`
|
||||
PageSize int `json:"page_size" dc:"每页数量"`
|
||||
AccountId *int64 `json:"account_id,omitempty" dc:"账户ID(可选)"`
|
||||
StartTime *int64 `json:"start_time,omitempty" dc:"开始时间戳(秒,可选)"`
|
||||
EndTime *int64 `json:"end_time,omitempty" dc:"结束时间戳(秒,可选)"`
|
||||
Status string `json:"status,omitempty" dc:"状态筛选(可选)"`
|
||||
}
|
||||
|
||||
// ListVideoRes 获取视频素材列表响应
|
||||
type ListVideoRes struct {
|
||||
List []VideoItem `json:"list" dc:"视频素材列表"`
|
||||
Total int `json:"total" dc:"总记录数"`
|
||||
Page int `json:"page" dc:"当前页码"`
|
||||
PageSize int `json:"page_size" dc:"每页数量"`
|
||||
TotalPages int `json:"total_pages" dc:"总页数"`
|
||||
}
|
||||
|
||||
// VideoItem 视频素材项
|
||||
type VideoItem struct {
|
||||
Id int64 `json:"id" dc:"主键ID"`
|
||||
VideoId string `json:"video_id" dc:"视频ID"`
|
||||
AccountId int64 `json:"account_id" dc:"账户ID"`
|
||||
Width int `json:"width" dc:"宽度"`
|
||||
Height int `json:"height" dc:"高度"`
|
||||
VideoFrames int `json:"video_frames" dc:"视频帧数"`
|
||||
VideoFps int `json:"video_fps" dc:"帧率"`
|
||||
FileSize int64 `json:"file_size" dc:"文件大小"`
|
||||
Type string `json:"type" dc:"媒体类型"`
|
||||
Description string `json:"description" dc:"描述"`
|
||||
PreviewUrl string `json:"preview_url" dc:"预览URL"`
|
||||
KeyFrameImageUrl string `json:"key_frame_image_url" dc:"关键帧图片URL"`
|
||||
Status string `json:"status" dc:"状态"`
|
||||
CreatedTime int64 `json:"created_time" dc:"创建时间戳"`
|
||||
LastModifiedTime int64 `json:"last_modified_time" dc:"最后修改时间戳"`
|
||||
CreatedAt string `json:"created_at" dc:"数据库创建时间"`
|
||||
UpdatedAt string `json:"updated_at" dc:"数据库更新时间"`
|
||||
}
|
||||
159
model/entity/tencent/video.go
Normal file
159
model/entity/tencent/video.go
Normal file
@@ -0,0 +1,159 @@
|
||||
package tencent
|
||||
|
||||
import (
|
||||
"gitea.com/red-future/common/beans"
|
||||
)
|
||||
|
||||
// Video 腾讯广告视频素材实体
|
||||
type Video struct {
|
||||
beans.SQLBaseDO `orm:",inherit"`
|
||||
|
||||
VideoId string `orm:"video_id" json:"videoId" description:"视频ID"`
|
||||
AccountId int64 `orm:"account_id" json:"accountId" description:"账户ID"`
|
||||
Width int `orm:"width" json:"width" description:"宽度"`
|
||||
Height int `orm:"height" json:"height" description:"高度"`
|
||||
VideoFrames int `orm:"video_frames" json:"videoFrames" description:"视频帧数"`
|
||||
VideoFps int `orm:"video_fps" json:"videoFps" description:"帧率"`
|
||||
VideoCodec string `orm:"video_codec" json:"videoCodec" description:"视频编码"`
|
||||
VideoBitRate int64 `orm:"video_bit_rate" json:"videoBitRate" description:"视频码率"`
|
||||
AudioCodec string `orm:"audio_codec" json:"audioCodec" description:"音频编码"`
|
||||
AudioBitRate int64 `orm:"audio_bit_rate" json:"audioBitRate" description:"音频码率"`
|
||||
FileSize int64 `orm:"file_size" json:"fileSize" description:"文件大小"`
|
||||
Type string `orm:"type" json:"type" description:"媒体类型"`
|
||||
Signature string `orm:"signature" json:"signature" description:"签名"`
|
||||
SystemStatus string `orm:"system_status" json:"systemStatus" description:"系统状态"`
|
||||
Description string `orm:"description" json:"description" description:"描述"`
|
||||
PreviewUrl string `orm:"preview_url" json:"previewUrl" description:"预览URL"`
|
||||
KeyFrameImageUrl string `orm:"key_frame_image_url" json:"keyFrameImageUrl" description:"关键帧图片URL"`
|
||||
CreatedTime int64 `orm:"created_time" json:"createdTime" description:"创建时间戳"`
|
||||
LastModifiedTime int64 `orm:"last_modified_time" json:"lastModifiedTime" description:"最后修改时间戳"`
|
||||
VideoProfileName string `orm:"video_profile_name" json:"videoProfileName" description:"视频配置名称"`
|
||||
AudioSampleRate int `orm:"audio_sample_rate" json:"audioSampleRate" description:"音频采样率"`
|
||||
MaxKeyframeInterval int `orm:"max_keyframe_interval" json:"maxKeyframeInterval" description:"最大关键帧间隔"`
|
||||
MinKeyframeInterval int `orm:"min_keyframe_interval" json:"minKeyframeInterval" description:"最小关键帧间隔"`
|
||||
SampleAspectRatio string `orm:"sample_aspect_ratio" json:"sampleAspectRatio" description:"示例宽高比"`
|
||||
AudioProfileName string `orm:"audio_profile_name" json:"audioProfileName" description:"音频配置名称"`
|
||||
ScanType string `orm:"scan_type" json:"scanType" description:"扫描类型"`
|
||||
ImageDurationMillisecond int64 `orm:"image_duration_millisecond" json:"imageDurationMillisecond" description:"图片时长(毫秒)"`
|
||||
AudioDurationMillisecond int64 `orm:"audio_duration_millisecond" json:"audioDurationMillisecond" description:"音频时长(毫秒)"`
|
||||
SourceType string `orm:"source_type" json:"sourceType" description:"来源类型"`
|
||||
ProductCatalogId string `orm:"product_catalog_id" json:"productCatalogId" description:"产品目录ID"`
|
||||
ProductOuterId string `orm:"product_outer_id" json:"productOuterId" description:"产品外部ID"`
|
||||
SourceReferenceId string `orm:"source_reference_id" json:"sourceReferenceId" description:"源引用ID"`
|
||||
OwnerAccountId string `orm:"owner_account_id" json:"ownerAccountId" description:"所有者账户ID"`
|
||||
Status string `orm:"status" json:"status" description:"状态"`
|
||||
SourceMaterialId string `orm:"source_material_id" json:"sourceMaterialId" description:"源素材ID"`
|
||||
NewSourceType string `orm:"new_source_type" json:"newSourceType" description:"新来源类型"`
|
||||
AigcType int `orm:"aigc_type" json:"aigcType" description:"AIGC类型"`
|
||||
FirstPublicationStatus string `orm:"first_publication_status" json:"firstPublicationStatus" description:"首次发布状态"`
|
||||
QualityStatus string `orm:"quality_status" json:"qualityStatus" description:"质量状态"`
|
||||
CoverId string `orm:"cover_id" json:"coverId" description:"封面ID"`
|
||||
SimilarityStatus string `orm:"similarity_status" json:"similarityStatus" description:"相似度状态"`
|
||||
UserAigcStatus string `orm:"user_aigc_status" json:"userAigcStatus" description:"用户AIGC状态"`
|
||||
SystemAigcStatus string `orm:"system_aigc_status" json:"systemAigcStatus" description:"系统AIGC状态"`
|
||||
AigcSource string `orm:"aigc_source" json:"aigcSource" description:"AIGC来源"`
|
||||
AigcFlag string `orm:"aigc_flag" json:"aigcFlag" description:"AIGC标志"`
|
||||
MuseAigcVersion int `orm:"muse_aigc_version" json:"museAigcVersion" description:"Muse AIGC版本"`
|
||||
}
|
||||
|
||||
// VideoCol 视频素材表字段定义
|
||||
type VideoCol struct {
|
||||
beans.SQLBaseCol
|
||||
VideoId string
|
||||
AccountId string
|
||||
Width string
|
||||
Height string
|
||||
VideoFrames string
|
||||
VideoFps string
|
||||
VideoCodec string
|
||||
VideoBitRate string
|
||||
AudioCodec string
|
||||
AudioBitRate string
|
||||
FileSize string
|
||||
Type string
|
||||
Signature string
|
||||
SystemStatus string
|
||||
Description string
|
||||
PreviewUrl string
|
||||
KeyFrameImageUrl string
|
||||
CreatedTime string
|
||||
LastModifiedTime string
|
||||
VideoProfileName string
|
||||
AudioSampleRate string
|
||||
MaxKeyframeInterval string
|
||||
MinKeyframeInterval string
|
||||
SampleAspectRatio string
|
||||
AudioProfileName string
|
||||
ScanType string
|
||||
ImageDurationMillisecond string
|
||||
AudioDurationMillisecond string
|
||||
SourceType string
|
||||
ProductCatalogId string
|
||||
ProductOuterId string
|
||||
SourceReferenceId string
|
||||
OwnerAccountId string
|
||||
Status string
|
||||
SourceMaterialId string
|
||||
NewSourceType string
|
||||
AigcType string
|
||||
FirstPublicationStatus string
|
||||
QualityStatus string
|
||||
CoverId string
|
||||
SimilarityStatus string
|
||||
UserAigcStatus string
|
||||
SystemAigcStatus string
|
||||
AigcSource string
|
||||
AigcFlag string
|
||||
MuseAigcVersion string
|
||||
}
|
||||
|
||||
// VideoCols 视频素材表字段常量
|
||||
var VideoCols = VideoCol{
|
||||
SQLBaseCol: beans.DefSQLBaseCol,
|
||||
VideoId: "video_id",
|
||||
AccountId: "account_id",
|
||||
Width: "width",
|
||||
Height: "height",
|
||||
VideoFrames: "video_frames",
|
||||
VideoFps: "video_fps",
|
||||
VideoCodec: "video_codec",
|
||||
VideoBitRate: "video_bit_rate",
|
||||
AudioCodec: "audio_codec",
|
||||
AudioBitRate: "audio_bit_rate",
|
||||
FileSize: "file_size",
|
||||
Type: "type",
|
||||
Signature: "signature",
|
||||
SystemStatus: "system_status",
|
||||
Description: "description",
|
||||
PreviewUrl: "preview_url",
|
||||
KeyFrameImageUrl: "key_frame_image_url",
|
||||
CreatedTime: "created_time",
|
||||
LastModifiedTime: "last_modified_time",
|
||||
VideoProfileName: "video_profile_name",
|
||||
AudioSampleRate: "audio_sample_rate",
|
||||
MaxKeyframeInterval: "max_keyframe_interval",
|
||||
MinKeyframeInterval: "min_keyframe_interval",
|
||||
SampleAspectRatio: "sample_aspect_ratio",
|
||||
AudioProfileName: "audio_profile_name",
|
||||
ScanType: "scan_type",
|
||||
ImageDurationMillisecond: "image_duration_millisecond",
|
||||
AudioDurationMillisecond: "audio_duration_millisecond",
|
||||
SourceType: "source_type",
|
||||
ProductCatalogId: "product_catalog_id",
|
||||
ProductOuterId: "product_outer_id",
|
||||
SourceReferenceId: "source_reference_id",
|
||||
OwnerAccountId: "owner_account_id",
|
||||
Status: "status",
|
||||
SourceMaterialId: "source_material_id",
|
||||
NewSourceType: "new_source_type",
|
||||
AigcType: "aigc_type",
|
||||
FirstPublicationStatus: "first_publication_status",
|
||||
QualityStatus: "quality_status",
|
||||
CoverId: "cover_id",
|
||||
SimilarityStatus: "similarity_status",
|
||||
UserAigcStatus: "user_aigc_status",
|
||||
SystemAigcStatus: "system_aigc_status",
|
||||
AigcSource: "aigc_source",
|
||||
AigcFlag: "aigc_flag",
|
||||
MuseAigcVersion: "muse_aigc_version",
|
||||
}
|
||||
Reference in New Issue
Block a user