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.
138 lines
2.9 KiB
138 lines
2.9 KiB
|
1 year ago
|
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)
|
||
|
|
}
|