calarmstrategy.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package controllers
  2. import (
  3. "fmt"
  4. "github.com/astaxie/beego"
  5. "lc/common/models"
  6. )
  7. type AlarmStrategyController struct {
  8. BaseController
  9. }
  10. type ReqAlarmStrategy struct {
  11. ID int64 `json:"id"` //告警策略编号
  12. Name string `json:"name"` //策略名称
  13. UpLimit float32 `json:"limit"` //上限
  14. LowLimit float32 `json:"lowlimit"` //下限
  15. Duration uint8 `json:"duration"` //持续时间
  16. State int `json:"state"` //1启用,0禁用
  17. }
  18. type AlarmAssociate struct {
  19. Code string `json:"code"` //设备编码
  20. Mid int `json:"mid"` //物模型ID
  21. Sid int `json:"sid"` //物模型数据id
  22. Cid int `json:"cid"` //告警策略id
  23. State int `json:"state"` //1启用,0禁用
  24. }
  25. // Create @Title 创建告警策略
  26. // @Description 创建告警策略
  27. // @Param body controllers.ReqAlarmStrategy true "数据"
  28. // @Success 0 {int} BaseResponse.Code "成功"
  29. // @Failure 1 {int} BaseResponse.Code "失败"
  30. // @router /v1/create [post]
  31. func (o *AlarmStrategyController) Create() {
  32. var obj ReqAlarmStrategy
  33. if err := json.Unmarshal(o.Ctx.Input.RequestBody, &obj); err != nil {
  34. beego.Debug(string(o.Ctx.Input.RequestBody))
  35. o.Response(Failure, fmt.Sprintf("数据包解析错误:%s", err.Error()), nil)
  36. return
  37. }
  38. oo := models.AlarmStrategy{
  39. ID: obj.ID,
  40. Name: obj.Name,
  41. UpLimit: obj.UpLimit,
  42. LowLimit: obj.LowLimit,
  43. Duration: obj.Duration,
  44. State: obj.State,
  45. }
  46. if err := oo.SaveFromWeb(); err != nil {
  47. o.Response(Failure, fmt.Sprintf("数据插入失败:%s", err.Error()), nil)
  48. return
  49. }
  50. o.Response(Success, "成功", oo.ID)
  51. }
  52. // Update @Title 更新告警策略
  53. // @Description 更新告警策略
  54. // @Param body body controllers.ReqAlarmStrategy true "数据"
  55. // @Success 0 {int} BaseResponse.Code "成功"
  56. // @Failure 1 {int} BaseResponse.Code "失败"
  57. // @router /v1/update [post]
  58. func (o *AlarmStrategyController) Update() {
  59. var obj ReqAlarmStrategy
  60. if err := json.Unmarshal(o.Ctx.Input.RequestBody, &obj); err != nil {
  61. beego.Debug(string(o.Ctx.Input.RequestBody))
  62. o.Response(Failure, fmt.Sprintf("数据包解析错误:%s", err.Error()), nil)
  63. return
  64. }
  65. oo := models.AlarmStrategy{
  66. ID: obj.ID,
  67. Name: obj.Name,
  68. UpLimit: obj.UpLimit,
  69. LowLimit: obj.LowLimit,
  70. Duration: obj.Duration,
  71. State: obj.State,
  72. }
  73. if err := oo.SaveFromWeb(); err != nil {
  74. o.Response(Failure, fmt.Sprintf("数据更新失败:%s", err.Error()), nil)
  75. return
  76. }
  77. o.Response(Success, "成功", oo.ID)
  78. }
  79. // Delete @Title 删除告警策略
  80. // @Description 删除告警策略
  81. // @Param code query string true "设备ID"
  82. // @Success 0 {int} BaseResponse.Code "成功"
  83. // @Failure 1 {int} BaseResponse.Code "失败"
  84. // @router /v1/delete [post]
  85. func (o *AlarmStrategyController) Delete() {
  86. ID, err := o.GetInt64("id", -1)
  87. if err != nil {
  88. o.Response(Failure, fmt.Sprintf("解析id错误:%s", err.Error()), nil)
  89. return
  90. }
  91. c := models.AlarmStrategy{ID: ID}
  92. if err := c.Delete(); err != nil {
  93. beego.Error(fmt.Sprintf("删除失败:%s", err.Error()))
  94. o.Response(Failure, fmt.Sprintf("数据删除失败:%s", err.Error()), nil)
  95. return
  96. }
  97. o.Response(Success, "成功", c.ID)
  98. }
  99. // Associate @Title 设置告警策略
  100. // @Description 设置告警策略
  101. // @Param body body []controllers.AlarmAssociate true "数据"
  102. // @Success 0 {int} BaseResponse.Code "成功"
  103. // @Failure 1 {int} BaseResponse.Code "失败"
  104. // @router /v1/associate [post]
  105. func (o *AlarmStrategyController) Associate() {
  106. var arr []AlarmAssociate
  107. if err := json.Unmarshal(o.Ctx.Input.RequestBody, &arr); err != nil {
  108. beego.Debug(string(o.Ctx.Input.RequestBody))
  109. o.Response(Failure, fmt.Sprintf("数据包解析错误:%s", err.Error()), nil)
  110. return
  111. }
  112. for _, v := range arr {
  113. oo := models.AlarmAssociate{
  114. ID: v.Code,
  115. Mid: v.Mid,
  116. Sid: v.Sid,
  117. Cid: v.Cid,
  118. State: v.State,
  119. }
  120. if err := oo.SaveFromWeb(); err != nil {
  121. o.Response(Failure, fmt.Sprintf("数据插入失败:%s", err.Error()), nil)
  122. return
  123. }
  124. }
  125. o.Response(Success, "成功", nil)
  126. }