package controllers import ( "rtzh_elec_temperature/rtelec_app_public_lib/service" "rtzh_elec_temperature/tools" "strings" ) // 告警配置黑名单控制器 type AlarmSettingController struct { BaseController } // 声明一个告警黑名单配置服务类 var blackListService = new(service.AlarmSettingService) // 获取黑名单列表 // @Summary 获取黑名单列表 // @Description 获取黑名单列表。返回黑名单主信息和测点明细信息 // @Tags api // @Accept x-www-form-urlencoded // @Produce json // @Success 200 {object} ApiOK|ApiError 服务访问成功 // @Failure 401 status 认证未通过,一般是未指定token或token已失效 // @Failure 500 status 服务器|后台发生错误 // @router /list [get] func (c *AlarmSettingController) GetBlackList() { lst, err := blackListService.BuildBlackList4Frontend() if err != nil { c.Data["json"] = c.ApiError(err.Error()) c.ServeJSON() return } c.Data["json"] = c.ApiOK(lst) c.ServeJSON() } // 保存黑名单列表信息 // @Summary 保存黑名单列表信息 // @Description 保存黑名单基本信息和设备对应的测点 // @Tags api // @Accept x-www-form-urlencoded // @Produce json // @Param deviceid query int64 true "设备ID必传." // @Param area query string false "区域名称必填否则无法显示区域." // @Param devicename query string false "设备名称必填否则无法显示设备名称." // @Param devicecode query string false "设备code必填,否则无法显示设备编码." // @Param creator query string false "添加人必填,否则无法显示" // @Param mplist query string false "按逗号分割的测点字符串" // @Success 200 {object} ApiOK|ApiError 服务访问成功 // @Failure 401 status 认证未通过,一般是未指定token或token已失效 // @Failure 500 status 服务器|后台发生错误 // @router /saveblacklist [POST] func (c *AlarmSettingController) SaveDeviceMpList() { // 声明一个参数数组 paramValues := map[string]interface{}{} deviceid, err := c.GetInt64("deviceid") if err != nil { c.Data["json"] = c.ApiError("设备Id参数(deviceid)不允许为空或0!") c.ServeJSON() return } // 组装前端传到后端的数组 paramValues["deviceid"] = deviceid paramValues["area"] = c.GetString("area") paramValues["devicename"] = c.GetString("devicename") paramValues["devicecode"] = c.GetString("devicecode") paramValues["creator"] = c.GetString("creator") mpstr := c.GetString("mplist") if len(mpstr) == 0 { c.Data["json"] = c.ApiError("测点至少选择一个!") c.ServeJSON() return } mpArray := strings.Split(mpstr, ",") mpList := tools.String2Int64(mpArray) _, err = blackListService.InsertDeviceBlackList(paramValues, mpList) if err != nil { c.Data["json"] = c.ApiError(err.Error()) } else { c.Data["json"] = c.ApiOK("保存成功!") } c.ServeJSON() return } // 修改黑名单测点列表信息 // @Summary 修改黑名单测点列表信息 // @Description 修改黑名单测点列表信息 // @Tags api // @Accept x-www-form-urlencoded // @Produce json // @Param deviceid query int64 true "设备ID必传." // @Param mplist query string false "按逗号分割的测点字符串" // @Success 200 {object} ApiOK|ApiError 服务访问成功 // @Failure 401 status 认证未通过,一般是未指定token或token已失效 // @Failure 500 status 服务器|后台发生错误 // @router /updatemplist [POST] func (c *AlarmSettingController) UpdateMpList() { deviceid, err := c.GetInt64("deviceid") if err != nil { c.Data["json"] = c.ApiError("设备Id参数(deviceid)不允许为空或0!") c.ServeJSON() return } // 组装前端传到后端的数组 mpstr := c.GetString("mplist") if len(mpstr) == 0 { c.Data["json"] = c.ApiError("测点至少选择一个!") c.ServeJSON() return } mpArray := strings.Split(mpstr, ",") mpList := tools.String2Int64(mpArray) _, err = blackListService.UpdateDeviceBlackList(deviceid, mpList) if err != nil { c.Data["json"] = c.ApiError(err) } else { c.Data["json"] = c.ApiOK("保存成功!") } c.ServeJSON() return } // 删除黑名单主记录和明细记录 // @Summary 删除黑名单主记录和明细记录 // @Description 通过设备id删除黑名单主记录和明细记录 // @Tags api // @Accept x-www-form-urlencoded // @Produce json // @Param deviceid query int64 true "设备id必填" // @router /delblacklist [POST] func (c *AlarmSettingController) DelBlackList() { deviceid, err := c.GetInt64("deviceid") if err != nil { c.Data["json"] = c.ApiError("设备id错误,不是int64格式!") c.ServeJSON() return } flag := blackListService.DelBlackList(deviceid) if !flag { c.Data["json"] = c.ApiError("删除设备黑名单失败!") c.ServeJSON() return } c.Data["json"] = c.ApiOK(flag) c.ServeJSON() return }