package Warning import ( "Cold_mqtt/logs" _ "github.com/astaxie/beego/cache/redis" "github.com/beego/beego/v2/adapter/orm" _ "github.com/go-sql-driver/mysql" "time" ) // 模板 type WarningType struct { Id int `orm:"column(ID);size(11);auto;pk"` T_name string `orm:"size(256);"` // 分类 T_Tips string `orm:"type(text);size(256);"` // 提示 } //1 温度超上限报警 //2 温度超下限报警 //3 温度恢复正常 //4 湿度超上限报警 //5 湿度超下限报警 //6 湿度恢复正常 //7 温度超上限预警 //8 温度超下限预警 //9 温度预警恢复正常 //10 湿度超上限预警 //11 湿度超下限预警 //12 湿度预警恢复正常 //101 主机报警 //102 操作日志 //103 普通日志 //109 市电断电报警 //110 市电已恢复 //111 电池电量低报警 //112 电池电量恢复 //113 传感器故障报警 //114 传感器恢复 //115 开始监测任务 //116 中途打印任务 //117 结束监测任务 //1001 设备状态异常 //1002 用户余额通知 //1011 报警策略异常 //1012 传感器数据异常 //1013 系统预警通知 //1014 运维预警通知 var WarningType_list map[int]string // 泛型 func (t *WarningType) TableName() string { return "warning_type" // 数据库名称 // ************** 替换 FormulaList ************** } //var redisCache_WarningType cache.Cache func init() { //注册模型 orm.RegisterModel(new(WarningType)) WarningType_list = make(map[int]string) go Read_WarningType_All() } // 获取全部 func Read_WarningType_All() { time.Sleep(time.Second) logs.Println("=========== 初始化报警规则 =========") o := orm.NewOrm() for true { var r []WarningType qs := o.QueryTable(new(WarningType)) qs.All(&r) for _, v := range r { WarningType_list[v.Id] = v.T_name //logs.Println(v.T_name,v.Id) } time.Sleep(1 * time.Hour) } } func Read_WarningType_Get(Id int) string { // 有先加入 给全部人发消息 v, ok := WarningType_list[Id] /*如果确定是真实的,则存在,否则不存在 */ if ok { return v } else { return "未知报警" } }