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