qixiaoning
2025-08-08 ef51da5404827e826e979ad614950a9e0192f4c6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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
}