package models import ( "fmt" "strings" "vamicro/camera-common/models" ) // 查询列表数据 func GetListTask(ids []string) (items []models.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 := db2.Raw(sqlStr).Scan(&items).Error; err != nil { fmt.Println(err.Error()) return nil, err } return } type VideoLink struct { ID int `gorm:"column:id" json:"id"` VideoId string `gorm:"column:video_id" json:"videoId"` TaskId int `gorm:"column:task_id" json:"taskId"` } func GetTasks() map[string][]interface{} { var lists []VideoLink sqlStr := `select id,video_id,task_id from mal_task_video_link` if err := db2.Raw(sqlStr).Scan(&lists).Error; err != nil { fmt.Println(err.Error()) return nil } checkMap := make(map[string][]interface{}) for _, d2 := range lists { if d2.VideoId != "" { checkMap[d2.VideoId] = append(checkMap[d2.VideoId], d2) } } return checkMap }