package controllers import ( "encoding/json" "rtzh_elec_temperature/rtelec_app_public_lib/service" "strings" "time" "github.com/spf13/cast" "git.rtzhtech.cn/iss/public-lib/dto" ) //告警相关服务 type AlarmController struct { BaseController } //告警策略数据列表 // @router /list [post,get] func (c *AlarmController) AlarmList() { level, _ := c.GetInt("level") name := c.GetString("name") pageIndex, _ := c.GetInt("pageindex", 1) pageSize, _ := c.GetInt("pagesize", 20) list, err := new(service.AlarmService).AlarmList(level, pageIndex, pageSize, name) if err == nil { c.Data["json"] = c.ApiOK(list) } else { c.Data["json"] = c.ApiError(err.Error()) } c.ServeJSON() } //编辑告警策略数据记录(可以带告警策略与测点关联) // @router /edit [post] func (c *AlarmController) EditAlarm() { var AlarmObject dto.AddAlarmStrategyRes AlarmObject.Strategyid, _ = c.GetInt64("strategyid") AlarmObject.Strategyname = c.GetString("strategyname") AlarmObject.Alarmlevel, _ = c.GetInt32("alarmlevel") AlarmObject.Appid = cast.ToInt32(service.RtelecManageApp().RegAppID) relationParameter := c.GetString("relation") var relationData []map[string]interface{} if relationParameter != "" { bytes := []byte(relationParameter) json_err := json.Unmarshal(bytes, &relationData) if json_err != nil { c.Data["json"] = c.ApiError("告警策略与测点关联参数不是标准的json格式!") c.ServeJSON() return } } err := new(service.AlarmService).EditAlarm(&AlarmObject, relationData) if err == nil { c.Data["json"] = c.ApiOK("编辑告警策略成功!") } else { c.Data["json"] = c.ApiError(err.Error()) } c.ServeJSON() } //编辑告警策略详细 // @router /detail [get] func (c *AlarmController) AlarmDetail() { strategyid, _ := c.GetInt64("strategyid") if strategyid == 0 { c.Data["json"] = c.ApiError("策略ID不允许为空或0!") } else { list, err := new(service.AlarmService).AlarmDetail(strategyid) if err == nil { c.Data["json"] = c.ApiOK(list) } else { c.Data["json"] = c.ApiError(err.Error()) } } c.ServeJSON() } //编辑告警策略数据记录(可以带告警策略与测点关联) // @router /delete [post] func (c *AlarmController) DeleteAlarm() { strategyid, _ := c.GetInt64("strategyid") if strategyid == 0 { c.Data["json"] = c.ApiError("策略ID不允许为空!") } else { err := new(service.AlarmService).DeleteAlarm(strategyid) if err == nil { c.Data["json"] = c.ApiOK("删除告警策略成功!") } else { c.Data["json"] = c.ApiError(err.Error()) } } c.ServeJSON() } //告警数据列表 // @router /data_list [get] func (c *AlarmController) AlarmDataList() { alarmLevel, _ := c.GetInt("alarmlevel") area := c.GetString("area") pageIndex, _ := c.GetInt("pageindex", 1) pageSize, _ := c.GetInt("pagesize", 20) alarmType, _ := c.GetInt("alarmtype") starttime := c.GetString("starttime") var startDate, endDate = 0, 0 if starttime != "" { starttime = strings.TrimLeft(starttime, " ") starttime = strings.TrimRight(starttime, " ") if strings.Index(starttime, " ") == -1 { starttime += " 00:00:00" } start_date, parseErr := time.ParseInLocation("2006-01-02 15:04:05", starttime, time.Local) if parseErr == nil { startDate = int(start_date.Unix()) } } endtime := c.GetString("endtime") if endtime != "" { endtime = strings.TrimLeft(endtime, " ") endtime = strings.TrimRight(endtime, " ") if strings.Index(endtime, " ") == -1 { endtime += " 00:00:00" } end_date, parseErr := time.ParseInLocation("2006-01-02 15:04:05", endtime, time.Local) if parseErr == nil { endDate = int(end_date.Unix()) } } appid := cast.ToInt(service.RtelecManageApp().RegAppID) list, err := new(service.AlarmService).AlarmDataList(appid, startDate, endDate, area, alarmType, alarmLevel, pageIndex, pageSize) if err == nil { c.Data["json"] = c.ApiOK(list) } else { c.Data["json"] = c.ApiError(err.Error()) } c.ServeJSON() } //告警数据列表 // @router /now [get] func (c *AlarmController) AlarmNewList() { pageIndex, _ := c.GetInt("pageindex", 1) pageSize, _ := c.GetInt("pagesize", 20) curDate := time.Now().Local().Format("2006-01-02") + " 00:00:00" formatTime, _ := time.ParseInLocation("2006-01-02 15:04:05", curDate, time.Local) var startDate = int(formatTime.Unix()) appid := cast.ToInt(service.RtelecManageApp().RegAppID) list, err := new(service.AlarmService).AlarmDataList(appid, startDate, 0, "", 0, 0, pageIndex, pageSize) if err == nil { c.Data["json"] = c.ApiOK(list) } else { c.Data["json"] = c.ApiError(err.Error()) } c.ServeJSON() } // 确认告警 godoc // @Summary 对告警记录进行确认 // @Description 对告警记录进行确认,确认时要以填确认意见 // @Tags api // @Accept x-www-form-urlencoded // @Produce json // @Param id query int true "需要确认的告警记录ID" // @Param content query string false "确认的用户填写的内容" // @Param eventid query int true "需要确认的告警事件ID" // @Success 200 {object} ApiOK 成功 // @Failure 500 status 失败 // @router /confirm [post] func (c *AlarmController) AlarmConfirm() { id, _ := c.GetInt32("id") content := c.GetString("content") eventid, _ := c.GetInt64("eventid") err := new(service.AlarmService).AlarmConfirm(id, eventid, content) if err == nil { c.Data["json"] = c.ApiOK("确认告警成功!") } else { c.Data["json"] = c.ApiError(err.Error()) } c.ServeJSON() }