| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package controllers
- import (
- "fmt"
- "github.com/astaxie/beego"
- "lc/common/models"
- )
- type AlarmStrategyController struct {
- BaseController
- }
- type ReqAlarmStrategy struct {
- ID int64 `json:"id"` //告警策略编号
- Name string `json:"name"` //策略名称
- UpLimit float32 `json:"limit"` //上限
- LowLimit float32 `json:"lowlimit"` //下限
- Duration uint8 `json:"duration"` //持续时间
- State int `json:"state"` //1启用,0禁用
- }
- type AlarmAssociate struct {
- Code string `json:"code"` //设备编码
- Mid int `json:"mid"` //物模型ID
- Sid int `json:"sid"` //物模型数据id
- Cid int `json:"cid"` //告警策略id
- State int `json:"state"` //1启用,0禁用
- }
- // Create @Title 创建告警策略
- // @Description 创建告警策略
- // @Param body controllers.ReqAlarmStrategy true "数据"
- // @Success 0 {int} BaseResponse.Code "成功"
- // @Failure 1 {int} BaseResponse.Code "失败"
- // @router /v1/create [post]
- func (o *AlarmStrategyController) Create() {
- var obj ReqAlarmStrategy
- if err := json.Unmarshal(o.Ctx.Input.RequestBody, &obj); err != nil {
- beego.Debug(string(o.Ctx.Input.RequestBody))
- o.Response(Failure, fmt.Sprintf("数据包解析错误:%s", err.Error()), nil)
- return
- }
- oo := models.AlarmStrategy{
- ID: obj.ID,
- Name: obj.Name,
- UpLimit: obj.UpLimit,
- LowLimit: obj.LowLimit,
- Duration: obj.Duration,
- State: obj.State,
- }
- if err := oo.SaveFromWeb(); err != nil {
- o.Response(Failure, fmt.Sprintf("数据插入失败:%s", err.Error()), nil)
- return
- }
- o.Response(Success, "成功", oo.ID)
- }
- // Update @Title 更新告警策略
- // @Description 更新告警策略
- // @Param body body controllers.ReqAlarmStrategy true "数据"
- // @Success 0 {int} BaseResponse.Code "成功"
- // @Failure 1 {int} BaseResponse.Code "失败"
- // @router /v1/update [post]
- func (o *AlarmStrategyController) Update() {
- var obj ReqAlarmStrategy
- if err := json.Unmarshal(o.Ctx.Input.RequestBody, &obj); err != nil {
- beego.Debug(string(o.Ctx.Input.RequestBody))
- o.Response(Failure, fmt.Sprintf("数据包解析错误:%s", err.Error()), nil)
- return
- }
- oo := models.AlarmStrategy{
- ID: obj.ID,
- Name: obj.Name,
- UpLimit: obj.UpLimit,
- LowLimit: obj.LowLimit,
- Duration: obj.Duration,
- State: obj.State,
- }
- if err := oo.SaveFromWeb(); err != nil {
- o.Response(Failure, fmt.Sprintf("数据更新失败:%s", err.Error()), nil)
- return
- }
- o.Response(Success, "成功", oo.ID)
- }
- // Delete @Title 删除告警策略
- // @Description 删除告警策略
- // @Param code query string true "设备ID"
- // @Success 0 {int} BaseResponse.Code "成功"
- // @Failure 1 {int} BaseResponse.Code "失败"
- // @router /v1/delete [post]
- func (o *AlarmStrategyController) Delete() {
- ID, err := o.GetInt64("id", -1)
- if err != nil {
- o.Response(Failure, fmt.Sprintf("解析id错误:%s", err.Error()), nil)
- return
- }
- c := models.AlarmStrategy{ID: ID}
- if err := c.Delete(); err != nil {
- beego.Error(fmt.Sprintf("删除失败:%s", err.Error()))
- o.Response(Failure, fmt.Sprintf("数据删除失败:%s", err.Error()), nil)
- return
- }
- o.Response(Success, "成功", c.ID)
- }
- // Associate @Title 设置告警策略
- // @Description 设置告警策略
- // @Param body body []controllers.AlarmAssociate true "数据"
- // @Success 0 {int} BaseResponse.Code "成功"
- // @Failure 1 {int} BaseResponse.Code "失败"
- // @router /v1/associate [post]
- func (o *AlarmStrategyController) Associate() {
- var arr []AlarmAssociate
- if err := json.Unmarshal(o.Ctx.Input.RequestBody, &arr); err != nil {
- beego.Debug(string(o.Ctx.Input.RequestBody))
- o.Response(Failure, fmt.Sprintf("数据包解析错误:%s", err.Error()), nil)
- return
- }
- for _, v := range arr {
- oo := models.AlarmAssociate{
- ID: v.Code,
- Mid: v.Mid,
- Sid: v.Sid,
- Cid: v.Cid,
- State: v.State,
- }
- if err := oo.SaveFromWeb(); err != nil {
- o.Response(Failure, fmt.Sprintf("数据插入失败:%s", err.Error()), nil)
- return
- }
- }
- o.Response(Success, "成功", nil)
- }
|