qixiaoning
2025-08-21 e38654fe9eff4562da4f18f8f018aed7879d493c
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package models
 
//目前设置的是全局的规则,跟摄像机无关
type CameraTimerule struct {
    Id       string `json:"id"`
    Name     string `json:"name"`
    TimeRule string `json:"time_rule"`
}
 
//DayCtl 从周一到周日每天的布控时间
type DayCtl struct {
    Day       int         `json:"day"`
    TimeRange []TimeRange `json:"time_range"`
}
 
//TimeRange 每天的时间段
type TimeRange struct {
    Start string `json:"start"` //开始
    End   string `json:"end"`   //结束
}
 
func (CameraTimerule) TableName() string {
    return "camera_timerule"
}
 
func (ctr *CameraTimerule) Exists(id string) bool {
    if id == "" {
        return false
    }
    err = db.Table(ctr.TableName()).Where("id = ?", id).First(&ctr).Error
    if err != nil {
        return false
    }
    return true
}
 
func (ctr *CameraTimerule) Insert() bool {
    tx := db.Table(ctr.TableName()).Begin()
 
    if tx.Error != nil {
        return false
    }
 
    if err := tx.Create(&ctr).Error; err != nil {
        tx.Rollback()
        return false
    }
    return tx.Commit().Error == nil
}
 
func (ctr *CameraTimerule) SelectById(id string) (rows int64, err error) {
    exeResult := db.Table(ctr.TableName()).Where("id=?", id).First(&ctr)
    if exeResult.Error != nil {
        return 0, exeResult.Error
    }
    return exeResult.RowsAffected, nil
}
 
func (ctr *CameraTimerule) Update() bool {
    saveResult := db.Table(ctr.TableName()).Save(&ctr)
    if saveResult.Error != nil {
        return false
    }
    if saveResult.RowsAffected > 0 {
        return true
    }
    return false
}
 
func (ctr *CameraTimerule) DeleteById(id string) (rows int64, err error) {
    delResult := db.Table("camera_timerule").Where("id=?", id).Delete(&CameraTimerule{})
    if delResult.Error != nil {
        return 0, delResult.Error
    }
    return delResult.RowsAffected, nil
}
 
func (ctr *CameraTimerule) FindAll() (timeRules []CameraTimerule, err error) {
    if err := db.Table(ctr.TableName()).Find(&timeRules).Error; err != nil {
        return nil, err
    }
    return timeRules, nil
}
 
func (ctr *CameraTimerule) FindAllMap() map[string]CameraTimerule {
    m := make(map[string]CameraTimerule)
    list, _ := ctr.FindAll()
    if list != nil {
        for _, t := range list {
            m[t.Id] = t
        }
    }
    return m
}
 
func (ctr *CameraTimerule) FindByCameraId(cameraId string) (timeRules []CameraTimerule, err error) {
    if err := db.Table(ctr.TableName()).Where("camera_id=?", cameraId).Find(&timeRules).Error; err != nil {
        return nil, err
    }
    return timeRules, nil
}