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