package models import ( "fmt" "strings" ) // 智查任务 type Task struct { TaskId int64 `db:"task_id" json:"taskId"` TaskName string `db:"task_name" json:"taskName"` } type TaskAggregate struct { ID int64 `gorm:"column:task_id" json:"id"` Name string `gorm:"column:task_name" json:"name"` IsDelete int8 `json:"isDelete"` } type TaskIdM struct { ID int64 `gorm:"column:task_id" json:"id"` } type TaskM struct { TaskId int64 `db:"task_id" json:"taskId"` TaskName string `db:"task_name" json:"taskName"` TaskDescription string `db:"task_description" json:"taskDescription"` EventName string `db:"event_name" json:"eventName"` } // 训练模型标签 type TrainTags struct { Id int64 `gorm:"primaryKey;autoIncrement;column:id" json:"id"` Createtime string `gorm:"type:varchar(50);column:create_time;default:''" json:"create_time"` } func (TrainTags) TableName() string { return "mal_train_tags" } // 视频 type Video struct { VideoIds []string `json:"videoIds"` } // 查询列表数据 func GetListTask(ids []string) (items []Task, err error) { //idList := strings.Join(ids, ",") idList := "'" + strings.Join(ids, "','") + "'" // 主查询SQL //sqlStr := `select c.task_id, c.task_name from mal_task_video_link a left join mal_smart_task c on a.task_id = c.task_id where a.video_id in(?) ORDER BY a.task_id desc` sqlStr := fmt.Sprintf(` SELECT c.task_id, c.task_name FROM mal_task_video_link a LEFT JOIN mal_smart_task c ON a.task_id = c.task_id WHERE a.video_id IN (%s) ORDER BY a.task_id DESC `, idList) if err := db.Raw(sqlStr).Scan(&items).Error; err != nil { fmt.Println(err.Error()) return nil, err } return } // 查询列表数据 func GetAllTask() (items []TaskAggregate, err error) { // 主查询SQL sqlStr := fmt.Sprintf(` SELECT task_id, task_name FROM mal_smart_task ORDER BY task_id DESC `) if err := db.Raw(sqlStr).Scan(&items).Error; err != nil { fmt.Println(err.Error()) return nil, err } return } // 根据cid查询视频 func GetTaskTotal(cid string) (items []TaskIdM, err error) { sqlStr := "select task_id from mal_task_video_link where video_id='" + cid + "'" if err := db.Raw(sqlStr).Scan(&items).Error; err != nil { fmt.Println(err.Error()) return nil, err } return }