qixiaoning
2025-08-08 ef51da5404827e826e979ad614950a9e0192f4c6
chanmanage-service/models/camera.go
@@ -1,76 +1,76 @@
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
}
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
}