调用模型,返回事件的时间线
This commit is contained in:
38
controller/video/analysis_controller.go
Normal file
38
controller/video/analysis_controller.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package video
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
dto "media/model/dto/video"
|
||||
service "media/service/video"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
type analysis struct{}
|
||||
|
||||
var Analysis = new(analysis)
|
||||
|
||||
// Analysis 提交视频分析任务 POST /video/analysis
|
||||
func (c *analysis) Analysis(ctx context.Context, req *dto.AnalysisReq) (res *dto.CreateAnalysisTaskRes, err error) {
|
||||
ctx = withUser(ctx)
|
||||
g.Log().Infof(ctx, "[视频分析] 收到请求 入参: total_videos=%d, callback=%s", len(req.VideoURLs), req.CallbackURL)
|
||||
|
||||
if len(req.VideoURLs) == 0 {
|
||||
return nil, fmt.Errorf("视频URL列表不能为空")
|
||||
}
|
||||
|
||||
taskID, taskErr := service.Analysis.CreateAsyncTask(ctx, req.VideoURLs, req.CallbackURL)
|
||||
if taskErr != nil {
|
||||
return nil, taskErr
|
||||
}
|
||||
|
||||
return &dto.CreateAnalysisTaskRes{TaskID: taskID}, nil
|
||||
}
|
||||
|
||||
// GetAnalysisTask 查询视频分析任务结果 GET /video/analysis/task/{taskId}
|
||||
func (c *analysis) GetAnalysisTask(ctx context.Context, req *dto.GetAnalysisTaskReq) (res *dto.GetAnalysisTaskRes, err error) {
|
||||
ctx = withUser(ctx)
|
||||
return service.Analysis.GetTaskResult(ctx, req.TaskID)
|
||||
}
|
||||
Reference in New Issue
Block a user