You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
2.9 KiB
137 lines
2.9 KiB
package handler |
|
|
|
import ( |
|
"fmt" |
|
"server/call" |
|
"server/common" |
|
"server/db" |
|
"server/modules/backend/app" |
|
"server/modules/backend/bdb" |
|
"server/modules/backend/values" |
|
|
|
"github.com/gin-gonic/gin" |
|
"github.com/liangdas/mqant/log" |
|
) |
|
|
|
// WarnList 查看预警列表 |
|
func WarnList(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
|
|
resp := values.WarnListResp{List: []call.SysWarn{}} |
|
_, err := db.ES().QueryList(common.ESIndexBackWarn, 0, 5000, nil, &resp.List, "Time", false) |
|
if err != nil { |
|
log.Error(err.Error()) |
|
} |
|
a.Data = resp |
|
} |
|
|
|
// AddWarn 新增预警 |
|
func AddWarn(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := new(values.AddWarnReq) |
|
if !a.S(req) { |
|
return |
|
} |
|
log.Debug("add warn:%+v", req) |
|
var phones []string |
|
// 首先检查预警人员的情况 |
|
for _, v := range req.WarnMember { |
|
one := &values.User{ID: uint(v)} |
|
if err := bdb.BackDB.Get(one); err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeParam |
|
a.Msg = "预警人员有误" |
|
return |
|
} |
|
if one.Phone == "" { |
|
a.Code = values.CodeParam |
|
a.Msg = fmt.Sprintf("预警人员%v还未设置手机号", one.Name) |
|
return |
|
} |
|
phones = append(phones, one.Phone) |
|
} |
|
err := call.AddSysWarn(req.Channel, req.Type, req.Interval, req.Condition, req.WarnWay, req.WarnMember, phones, req.OtherPhone) |
|
if err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeParam |
|
a.Msg = err.Error() |
|
return |
|
} |
|
db.ES().Refresh(common.ESIndexBackWarn) |
|
} |
|
|
|
// EditWarn 修改预警 |
|
func EditWarn(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := new(values.EditWarnReq) |
|
if !a.S(req) { |
|
return |
|
} |
|
|
|
// 删除预警 逻辑 |
|
err := call.DelSysWarn(req.ID) |
|
if err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeParam |
|
a.Msg = err.Error() |
|
return |
|
} |
|
|
|
// 添加预警 |
|
log.Debug("add warn:%+v", req) |
|
var phones []string |
|
// 首先检查预警人员的情况 |
|
for _, v := range *req.WarnMember { |
|
one := &values.User{ID: uint(v)} |
|
if err := bdb.BackDB.Get(one); err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeParam |
|
a.Msg = "预警人员有误" |
|
return |
|
} |
|
if one.Phone == "" { |
|
a.Code = values.CodeParam |
|
a.Msg = fmt.Sprintf("预警人员%v还未设置手机号", one.Name) |
|
return |
|
} |
|
phones = append(phones, one.Phone) |
|
} |
|
|
|
err = call.AddSysWarn(*req.Channel, *req.Type, *req.Interval, *req.Condition, *req.WarnWay, *req.WarnMember, phones, *req.OtherPhone) |
|
if err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeParam |
|
a.Msg = err.Error() |
|
return |
|
} |
|
db.ES().Refresh(common.ESIndexBackWarn) |
|
} |
|
|
|
// DelWarn 删除预警 |
|
func DelWarn(c *gin.Context) { |
|
a := app.NewApp(c) |
|
defer func() { |
|
a.Response() |
|
}() |
|
req := new(values.DelWarnReq) |
|
if !a.S(req) { |
|
return |
|
} |
|
err := call.DelSysWarn(req.ID) |
|
if err != nil { |
|
log.Error("err:%v", err) |
|
a.Code = values.CodeParam |
|
a.Msg = err.Error() |
|
return |
|
} |
|
db.ES().Refresh(common.ESIndexBackWarn) |
|
}
|
|
|