qixiaoning
2025-09-11 397468ddc1191bf0ce9339e544ff345d1d4e6786
camera-common/models/task.go
@@ -1 +1,77 @@
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 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 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) (total int, err error) {
   sql := "select count(1) as total from mal_task_video_link where video_id='" + cid + "'"
   err = db.Raw(sql).Count(&total).Error
   if err != nil {
      return 0, err
   }
   return total, nil
}