印度包网
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

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)
}