调用模型,返回事件的时间线
This commit is contained in:
99
dao/video/analysis_task_detail_dao.go
Normal file
99
dao/video/analysis_task_detail_dao.go
Normal file
@@ -0,0 +1,99 @@
|
||||
package video
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
entity "media/model/entity/video"
|
||||
|
||||
"gitea.com/red-future/common/db/gfdb"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
var AnalysisTaskDetail = new(analysisTaskDetailDao)
|
||||
|
||||
type analysisTaskDetailDao struct{}
|
||||
|
||||
const analysisTaskDetailTable = "video_analysis_task_detail"
|
||||
|
||||
// Insert 创建明细
|
||||
func (d *analysisTaskDetailDao) Insert(ctx context.Context, data *entity.AnalysisTaskDetail) (id int64, err error) {
|
||||
r, err := gfdb.DB(ctx).Model(ctx, analysisTaskDetailTable).
|
||||
Data(data).
|
||||
FieldsEx(entity.AnalysisTaskDetailCols.Id).
|
||||
Insert()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return r.LastInsertId()
|
||||
}
|
||||
|
||||
// BatchInsert 批量创建明细
|
||||
func (d *analysisTaskDetailDao) BatchInsert(ctx context.Context, taskID string, videoURLs []string) error {
|
||||
for _, videoURL := range videoURLs {
|
||||
detail := &entity.AnalysisTaskDetail{
|
||||
TaskID: taskID,
|
||||
VideoURL: videoURL,
|
||||
Status: "pending",
|
||||
}
|
||||
if _, err := d.Insert(ctx, detail); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetByTaskID 根据taskId查询所有明细
|
||||
func (d *analysisTaskDetailDao) GetByTaskID(ctx context.Context, taskID string) (res []*entity.AnalysisTaskDetail, err error) {
|
||||
r, err := gfdb.DB(ctx).Model(ctx, analysisTaskDetailTable).
|
||||
Where(entity.AnalysisTaskDetailCols.TaskID, taskID).
|
||||
Order("id asc").
|
||||
All()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if r == nil {
|
||||
return nil, nil
|
||||
}
|
||||
err = r.Structs(&res)
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateSuccess 更新明细为成功
|
||||
func (d *analysisTaskDetailDao) UpdateSuccess(ctx context.Context, taskID string, videoURL string, videoSavePath string, captionResult string) error {
|
||||
_, err := gfdb.DB(ctx).Model(ctx, analysisTaskDetailTable).
|
||||
Data(g.Map{
|
||||
entity.AnalysisTaskDetailCols.Status: "success",
|
||||
entity.AnalysisTaskDetailCols.VideoSavePath: videoSavePath,
|
||||
entity.AnalysisTaskDetailCols.CaptionResult: captionResult,
|
||||
entity.AnalysisTaskDetailCols.FailReason: "",
|
||||
}).
|
||||
Where(entity.AnalysisTaskDetailCols.TaskID, taskID).
|
||||
Where(entity.AnalysisTaskDetailCols.VideoURL, videoURL).
|
||||
Update()
|
||||
return err
|
||||
}
|
||||
|
||||
// UpdateError 更新明细为失败
|
||||
func (d *analysisTaskDetailDao) UpdateError(ctx context.Context, taskID string, videoURL string, failReason string) error {
|
||||
_, err := gfdb.DB(ctx).Model(ctx, analysisTaskDetailTable).
|
||||
Data(g.Map{
|
||||
entity.AnalysisTaskDetailCols.Status: "failed",
|
||||
entity.AnalysisTaskDetailCols.FailReason: failReason,
|
||||
}).
|
||||
Where(entity.AnalysisTaskDetailCols.TaskID, taskID).
|
||||
Where(entity.AnalysisTaskDetailCols.VideoURL, videoURL).
|
||||
Update()
|
||||
return err
|
||||
}
|
||||
|
||||
// UpdateVideoSavePath 更新视频保存路径
|
||||
func (d *analysisTaskDetailDao) UpdateVideoSavePath(ctx context.Context, taskID string, videoURL string, savePath string) error {
|
||||
_, err := gfdb.DB(ctx).Model(ctx, analysisTaskDetailTable).
|
||||
Data(g.Map{
|
||||
entity.AnalysisTaskDetailCols.VideoSavePath: savePath,
|
||||
}).
|
||||
Where(entity.AnalysisTaskDetailCols.TaskID, taskID).
|
||||
Where(entity.AnalysisTaskDetailCols.VideoURL, videoURL).
|
||||
Update()
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user