package models import ( "fmt" "strings" "vamicro/camera-common/models" ) // 查询列表数据 func GetListTask(ids []string) (items []models.TaskM, 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,c.task_description,b.dict_value as event_name FROM mal_task_video_link a LEFT JOIN mal_smart_task c ON a.task_id = c.task_id LEFT JOIN mal_dict_type b ON b.dict_id = c.event_level 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 } func GetAllRule() map[int64]string { var items []models.RuleOption sqlStr := ` SELECT a.file_name,a.rule_id,b.task_id FROM mal_warning_rule a LEFT JOIN mal_task_rule_link b ON a.rule_id = b.rule_id WHERE task_id>0 group BY a.rule_id ` if err := db2.Raw(sqlStr).Scan(&items).Error; err != nil { fmt.Println(err.Error()) return nil } ruleMap := make(map[int64]string) for _, d2 := range items { if d2.TaskId > 0 { ruleMap[d2.TaskId] = d2.FileName } } return ruleMap } 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 }