WarningType.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package Warning
  2. import (
  3. "Cold_mqtt/logs"
  4. _ "github.com/astaxie/beego/cache/redis"
  5. "github.com/beego/beego/v2/adapter/orm"
  6. _ "github.com/go-sql-driver/mysql"
  7. "time"
  8. )
  9. // 模板
  10. type WarningType struct {
  11. Id int `orm:"column(ID);size(11);auto;pk"`
  12. T_name string `orm:"size(256);"` // 分类
  13. T_Tips string `orm:"type(text);size(256);"` // 提示
  14. }
  15. //1 温度超上限报警
  16. //2 温度超下限报警
  17. //3 温度恢复正常
  18. //4 湿度超上限报警
  19. //5 湿度超下限报警
  20. //6 湿度恢复正常
  21. //7 温度超上限预警
  22. //8 温度超下限预警
  23. //9 温度预警恢复正常
  24. //10 湿度超上限预警
  25. //11 湿度超下限预警
  26. //12 湿度预警恢复正常
  27. //101 主机报警
  28. //102 操作日志
  29. //103 普通日志
  30. //109 市电断电报警
  31. //110 市电已恢复
  32. //111 电池电量低报警
  33. //112 电池电量恢复
  34. //113 传感器故障报警
  35. //114 传感器恢复
  36. //115 开始监测任务
  37. //116 中途打印任务
  38. //117 结束监测任务
  39. //1001 设备状态异常
  40. //1002 用户余额通知
  41. //1011 报警策略异常
  42. //1012 传感器数据异常
  43. //1013 系统预警通知
  44. //1014 运维预警通知
  45. var WarningType_list map[int]string // 泛型
  46. func (t *WarningType) TableName() string {
  47. return "warning_type" // 数据库名称 // ************** 替换 FormulaList **************
  48. }
  49. //var redisCache_WarningType cache.Cache
  50. func init() {
  51. //注册模型
  52. orm.RegisterModel(new(WarningType))
  53. WarningType_list = make(map[int]string)
  54. go Read_WarningType_All()
  55. }
  56. // 获取全部
  57. func Read_WarningType_All() {
  58. time.Sleep(time.Second)
  59. logs.Println("=========== 初始化报警规则 =========")
  60. o := orm.NewOrm()
  61. for true {
  62. var r []WarningType
  63. qs := o.QueryTable(new(WarningType))
  64. qs.All(&r)
  65. for _, v := range r {
  66. WarningType_list[v.Id] = v.T_name
  67. //logs.Println(v.T_name,v.Id)
  68. }
  69. time.Sleep(1 * time.Hour)
  70. }
  71. }
  72. func Read_WarningType_Get(Id int) string {
  73. // 有先加入 给全部人发消息
  74. v, ok := WarningType_list[Id] /*如果确定是真实的,则存在,否则不存在 */
  75. if ok {
  76. return v
  77. } else {
  78. return "未知报警"
  79. }
  80. }