调用模型,返回事件的时间线
This commit is contained in:
47
model/dto/video/analysis_dto.go
Normal file
47
model/dto/video/analysis_dto.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package video
|
||||
|
||||
import "github.com/gogf/gf/v2/frame/g"
|
||||
|
||||
// ---------- 提交视频分析任务 ----------
|
||||
|
||||
// AnalysisReq 提交视频分析任务请求
|
||||
type AnalysisReq struct {
|
||||
g.Meta `path:"/video/analysis" method:"post" tags:"视频分析" summary:"提交视频分析任务" dc:"接收视频链接数组,后台异步串行分析,立即返回taskId"`
|
||||
VideoURLs []string `json:"video_urls" v:"required#视频URL列表不能为空" dc:"视频URL列表"`
|
||||
CallbackURL string `json:"callback_url" v:"required#回调地址不能为空" dc:"回调地址,分析完成后POST结果到该地址"`
|
||||
}
|
||||
|
||||
// CreateAnalysisTaskRes 创建视频分析任务响应
|
||||
type CreateAnalysisTaskRes struct {
|
||||
TaskID string `json:"taskId" dc:"任务ID"`
|
||||
}
|
||||
|
||||
// ---------- 查询任务进度/结果 ----------
|
||||
|
||||
// GetAnalysisTaskReq 查询视频分析任务请求
|
||||
type GetAnalysisTaskReq struct {
|
||||
g.Meta `path:"/video/analysis/task/{taskId}" method:"get" tags:"视频分析" summary:"查询分析任务结果" dc:"根据taskId查询视频分析任务的进度和结果"`
|
||||
TaskID string `json:"taskId" dc:"任务ID"`
|
||||
}
|
||||
|
||||
// AnalysisDetailItem 单个视频分析结果项
|
||||
type AnalysisDetailItem struct {
|
||||
VideoURL string `json:"video_url" dc:"原始视频URL"`
|
||||
VideoSavePath string `json:"video_save_path" dc:"视频本地保存路径"`
|
||||
Status string `json:"status" dc:"状态: pending/success/failed"`
|
||||
CaptionResult interface{} `json:"caption_result,omitempty" dc:"Caption接口返回结果"`
|
||||
FailReason string `json:"fail_reason,omitempty" dc:"失败原因"`
|
||||
}
|
||||
|
||||
// GetAnalysisTaskRes 查询视频分析任务响应
|
||||
type GetAnalysisTaskRes struct {
|
||||
TaskID string `json:"taskId" dc:"任务ID"`
|
||||
Status string `json:"status" dc:"状态: pending/processing/success/failed"`
|
||||
Total int `json:"total" dc:"视频总数"`
|
||||
Processed int `json:"processed" dc:"已处理数"`
|
||||
SuccessCount int `json:"successCount" dc:"成功数"`
|
||||
FailedCount int `json:"failedCount" dc:"失败数"`
|
||||
List []AnalysisDetailItem `json:"list" dc:"视频详情列表"`
|
||||
ErrorMessage string `json:"errorMessage,omitempty" dc:"错误信息"`
|
||||
CreatedAt int64 `json:"createdAt" dc:"创建时间戳"`
|
||||
}
|
||||
39
model/entity/video/analysis_task.go
Normal file
39
model/entity/video/analysis_task.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package video
|
||||
|
||||
import "gitea.com/red-future/common/beans"
|
||||
|
||||
// AnalysisTask 视频分析异步任务实体
|
||||
type AnalysisTask struct {
|
||||
beans.SQLBaseDO `orm:",inherit"`
|
||||
TaskID string `orm:"task_id" json:"taskId" description:"任务唯一标识"`
|
||||
CallbackURL string `orm:"callback_url" json:"callbackUrl" description:"回调地址"`
|
||||
Status string `orm:"status" json:"status" description:"任务状态:pending/processing/success/failed"`
|
||||
Total int `orm:"total" json:"total" description:"待分析视频总数"`
|
||||
SuccessCount int `orm:"success_count" json:"successCount" description:"成功数"`
|
||||
FailedCount int `orm:"failed_count" json:"failedCount" description:"失败数"`
|
||||
ErrorMessage string `orm:"error_message" json:"errorMessage" description:"错误信息"`
|
||||
}
|
||||
|
||||
// AnalysisTaskCol 字段定义
|
||||
type AnalysisTaskCol struct {
|
||||
beans.SQLBaseCol
|
||||
TaskID string
|
||||
CallbackURL string
|
||||
Status string
|
||||
Total string
|
||||
SuccessCount string
|
||||
FailedCount string
|
||||
ErrorMessage string
|
||||
}
|
||||
|
||||
// AnalysisTaskCols 字段常量
|
||||
var AnalysisTaskCols = AnalysisTaskCol{
|
||||
SQLBaseCol: beans.DefSQLBaseCol,
|
||||
TaskID: "task_id",
|
||||
CallbackURL: "callback_url",
|
||||
Status: "status",
|
||||
Total: "total",
|
||||
SuccessCount: "success_count",
|
||||
FailedCount: "failed_count",
|
||||
ErrorMessage: "error_message",
|
||||
}
|
||||
36
model/entity/video/analysis_task_detail.go
Normal file
36
model/entity/video/analysis_task_detail.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package video
|
||||
|
||||
import "gitea.com/red-future/common/beans"
|
||||
|
||||
// AnalysisTaskDetail 视频分析任务明细实体
|
||||
type AnalysisTaskDetail struct {
|
||||
beans.SQLBaseDO `orm:",inherit"`
|
||||
TaskID string `orm:"task_id" json:"taskId" description:"所属任务ID"`
|
||||
VideoURL string `orm:"video_url" json:"videoUrl" description:"原始视频URL"`
|
||||
VideoSavePath string `orm:"video_save_path" json:"videoSavePath" description:"视频本地保存路径(永久保留)"`
|
||||
Status string `orm:"status" json:"status" description:"状态:pending/success/failed"`
|
||||
CaptionResult string `orm:"caption_result" json:"captionResult" description:"Caption接口返回结果JSON"`
|
||||
FailReason string `orm:"fail_reason" json:"failReason" description:"失败原因"`
|
||||
}
|
||||
|
||||
// AnalysisTaskDetailCol 字段定义
|
||||
type AnalysisTaskDetailCol struct {
|
||||
beans.SQLBaseCol
|
||||
TaskID string
|
||||
VideoURL string
|
||||
VideoSavePath string
|
||||
Status string
|
||||
CaptionResult string
|
||||
FailReason string
|
||||
}
|
||||
|
||||
// AnalysisTaskDetailCols 字段常量
|
||||
var AnalysisTaskDetailCols = AnalysisTaskDetailCol{
|
||||
SQLBaseCol: beans.DefSQLBaseCol,
|
||||
TaskID: "task_id",
|
||||
VideoURL: "video_url",
|
||||
VideoSavePath: "video_save_path",
|
||||
Status: "status",
|
||||
CaptionResult: "caption_result",
|
||||
FailReason: "fail_reason",
|
||||
}
|
||||
Reference in New Issue
Block a user