zhangzengfei
2023-09-04 e8e536d1cb52d2126c8c7ce2ba1c7a76f7208678
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
package models
 
type LocalConfig struct {
    Id                 string `gorm:"primary_key;column:id" json:"id"`
    AlarmIp            string `gorm:"column:alarm_ip" json:"alarm_ip" example:"192.168.1.182"`
    AlarmPort          int    `gorm:"column:alarm_port" json:"alarm_port" example:"22122"`
    AlarmThresholdType int    `gorm:"column:alarm_threshold_type" json:"alarm_threshold_type"` //报警阈值类型设置:1:按最高分,2:按阈值以上
    AlarmThreshold     int    `gorm:"column:alarm_threshold" json:"alarm_threshold"`           //报警阈值
    WebPicIp           string `gorm:"column:web_pic_ip" json:"web_pic_ip" example:""`
    WebPicPort         int    `gorm:"column:web_pic_port" json:"web_pic_port" example:"22122"`
    EsPicIp            string `gorm:"column:es_pic_ip" json:"es_pic_ip" example:""`
    EsPicPort          int    `gorm:"column:es_pic_port" json:"es_pic_port" example:"22122"`
 
    CutMaxDuration int    `gorm:"column:cut_max_duration" json:"cut_max_duration" example:"20"`
    CutMinDuration int    `gorm:"column:cut_min_duration" json:"cut_min_duration" example:"5"`
    ServerId       string `gorm:"column:server_id" json:"server_id" example:"分析设备id"`
    ServerName     string `gorm:"column:server_name" json:"server_name" example:"分析设备名称"`
    ServerType     int    `gorm:"column:server_type" json:"server_type" example:"1"`
    Reserved       string `gorm:"column:reserved" json:"reserved" example:"1"`
    RealMax        int    `gorm:"column:real_max" json:"real_max"`                      //实时处理的最大路数
    NeedAuthPwd    int    `gorm:"column:need_auth_pwd;default:0;" json:"need_auth_pwd"` //设备授权管理方式 0:不用密码 1:通过密码
    AuthPwd        string `gorm:"column:auth_pwd" json:"auth_pwd"`                      //设备授权密码
}
 
// 设置表名为`profiles`
func (LocalConfig) TableName() string {
    return "local_configs"
}
 
func (loCon *LocalConfig) FindAreaSliece() (config []LocalConfig, err error) {
    if err := db.Table(loCon.TableName()).Find(&config).Error; err != nil {
        return nil, err
    }
    return config, nil
}
 
func (loCon *LocalConfig) Insert() (err error) {
    tx := db.Table(loCon.TableName()).Begin()
    if tx.Error != nil {
        return err
    }
    if err := tx.Create(&loCon).Error; err != nil {
        tx.Rollback()
        return err
    }
    return tx.Commit().Error
}
 
func (loCon *LocalConfig) Select() (err error) {
    if err = db.Table(loCon.TableName()).First(&loCon).Error; err != nil {
        if err.Error() == "record not found" {
            loCon = nil
            return nil
        }
        return err
    }
    return nil
}
 
func (loCon *LocalConfig) SelectByDeviceId(deviceId string) (err error) {
    if err = db.Table(loCon.TableName()).Where("server_id=?", deviceId).First(&loCon).Error; err != nil {
        if err.Error() == "record not found" {
            loCon = nil
            return nil
        }
        return err
    }
    return nil
}
 
func (loCon *LocalConfig) Update() error {
    if err := db.Save(&loCon).Error; err != nil {
        return err
    }
    return nil
}
 
func (loCon *LocalConfig) UpdateAuth() error {
    // 根据id查找记录,修改密码和授权方式两个字段,传空值也会修改,只要与原来值发生变化
    if err := db.Model(&loCon).Updates(map[string]interface{}{"auth_pwd": loCon.AuthPwd, "need_auth_pwd": loCon.NeedAuthPwd}).Error; err != nil {
        return err
    }
    return nil
}