WarningType.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package Warning
  2. import (
  3. "Cold_Api/logs"
  4. "Cold_Api/models"
  5. _ "github.com/astaxie/beego/cache/redis"
  6. "github.com/beego/beego/v2/adapter/orm"
  7. _ "github.com/go-sql-driver/mysql"
  8. "strconv"
  9. "strings"
  10. "time"
  11. )
  12. // 模板
  13. type WarningType struct {
  14. Id int `orm:"column(ID);size(11);auto;pk"`
  15. T_name string `orm:"size(256);null"` // 分类
  16. T_Tips string `orm:"type(text);size(256);null"` // 提示
  17. }
  18. //3
  19. //tp 报警类型
  20. // 1 温度超上限报警
  21. // 2 温度超下限报警
  22. // 3 温度超上限预警
  23. // 4 温度超下限预警
  24. // 5 温度恢复正常
  25. // 6 湿度超上限报警
  26. // 7 湿度超下限报警
  27. // 8 湿度超上限预警
  28. // 9 湿度超下限预警
  29. // 10 湿度恢复正常
  30. //12
  31. //tp 报警类型
  32. // 101 主机报警
  33. // 102 时间报警
  34. // 103 闪存报警
  35. // 104 SD卡报警
  36. // 105 网络报警
  37. // 106 普通日志
  38. // 107 升级固件报警
  39. // 108 系统故障报警
  40. // 109 市电断电报警
  41. // 110 市电已恢复
  42. // 111 电池电量低报警
  43. // 112 电池电量恢复
  44. // 113 传感器故障报警
  45. // 114 传感器恢复
  46. // 115 开始任务(移动端)
  47. // 116 中途打印任务(移动端)
  48. // 117 结束任务(移动端)
  49. // 预警系统
  50. // 1001 设备状态异常
  51. // 1002 传感器数据异常
  52. // 1011 报警策略异常
  53. func (t *WarningType) TableName() string {
  54. return "warning_type" // 数据库名称 // ************** 替换 FormulaList **************
  55. }
  56. // var redisCache_WarningType cache.Cache
  57. var WarningType_list map[int]string // 泛型
  58. func init() {
  59. //注册模型
  60. WarningType_list = make(map[int]string)
  61. orm.RegisterModel(new(WarningType))
  62. }
  63. type WarningType_R struct {
  64. Id int
  65. T_name string // 分类
  66. T_check bool // 是否勾选
  67. }
  68. type WarningType_ struct {
  69. Id int
  70. T_name string // 分类
  71. }
  72. func WarningTypeToWarningType_R(r WarningType, T_warning string) (v WarningType_R) {
  73. v.Id = r.Id
  74. v.T_name = r.T_name
  75. if strings.Contains(T_warning, "W"+strconv.Itoa(v.Id)+"|") || T_warning == "*" {
  76. v.T_check = true
  77. }
  78. return v
  79. }
  80. func WarningTypeToWarningType_(r WarningType) (v WarningType_) {
  81. v.Id = r.Id
  82. v.T_name = r.T_name
  83. return v
  84. }
  85. // 获取全部
  86. func Read_WarningType_All_T_Notice_mechanism() string {
  87. logs.Println("=========== 初始化报警规则 =========")
  88. time.Sleep(3 * time.Second)
  89. o := orm.NewOrm()
  90. var r []WarningType
  91. qs := o.QueryTable(new(WarningType))
  92. qs.All(&r)
  93. str := ""
  94. for _, v := range r {
  95. str += v.T_Tips
  96. }
  97. return str
  98. }
  99. // 获取全部
  100. func Read_WarningType_All() (r []WarningType_) {
  101. o := orm.NewOrm()
  102. var maps []WarningType
  103. qs := o.QueryTable(new(WarningType))
  104. qs.All(&maps)
  105. for _, v := range maps {
  106. r = append(r, WarningTypeToWarningType_(v))
  107. }
  108. return r
  109. }
  110. // 报警列表 返回权限拥有的报警类型列表
  111. func Read_WarningType_Power_All(T_warning string) (r []WarningType_) {
  112. o := orm.NewOrm()
  113. var maps []WarningType
  114. qs := o.QueryTable(new(WarningType))
  115. if T_warning == "*" {
  116. qs.All(&maps)
  117. } else {
  118. list := models.SplitStringIds(T_warning, "W")
  119. qs.Filter("Id__in", list).All(&maps)
  120. }
  121. for _, v := range maps {
  122. r = append(r, WarningTypeToWarningType_(v))
  123. }
  124. return r
  125. }
  126. // 权限修改 返回全部,已勾选的T_check=true
  127. func Read_WarningType_All_Power_T_Warning(T_warning string) (r []WarningType_R) {
  128. o := orm.NewOrm()
  129. // 也可以直接使用 Model 结构体作为表名
  130. var maps []WarningType
  131. qs := o.QueryTable(new(WarningType))
  132. qs.OrderBy("Id").All(&maps)
  133. for _, v := range maps {
  134. r = append(r, WarningTypeToWarningType_R(v, T_warning))
  135. }
  136. return r
  137. }
  138. // 获取全部
  139. func Read_WarningType_All_Maps() {
  140. time.Sleep(time.Second)
  141. logs.Println("=========== 初始化报警类型 =========")
  142. o := orm.NewOrm()
  143. var r []WarningType
  144. qs := o.QueryTable(new(WarningType))
  145. qs.All(&r)
  146. for _, v := range r {
  147. WarningType_list[v.Id] = v.T_name
  148. }
  149. }
  150. func Read_WarningType_Get(id int) string {
  151. // 有先加入 给全部人发消息
  152. v, ok := WarningType_list[id] /*如果确定是真实的,则存在,否则不存在 */
  153. if ok {
  154. return v
  155. } else {
  156. return "未知类型"
  157. }
  158. }