package controllers import ( "rtzh_elec_temperature/rtelec_app_public_lib/service" "strconv" ) //指令控制相关服务 type CommandController struct { BaseController } //调用系统下发的指令 //安防系统中,只有周界的“一键布防”“一键撤防”为另外的接口函数 //安防系统,只有电子围栏和门禁有控制 //这里的控制命令专门针对电子围栏 // @router /control [post] func (c *CommandController) ControlCommand() { var controlObject = service.CommandMgr{} controlObject.DeviceId, _ = c.GetInt("deviceid", 0) controlObject.AttrName = c.GetString("attrname") state := c.GetString("state", "") modelid, err := new(service.DeviceService).GetModelIdByDeviceId(controlObject.DeviceId) if err != nil { c.Data["json"] = c.ApiError("获取模型ID异常!") c.ServeJSON() return } if modelid == nil { c.Data["json"] = c.ApiError("获取模型ID异常!") c.ServeJSON() return } // var dids []int //定义一个设备id数组用于存放需要返回的设备id if state == "" { c.Data["json"] = c.ApiError("控制状态不允许为空!") c.ServeJSON() return } ctlState, err := strconv.Atoi(state) if err != nil { c.Data["json"] = c.ApiError("控制状态参数必须为数字类型!") c.ServeJSON() return } controlObject.State = ctlState if controlObject.AttrName != "" && controlObject.DeviceId == 0 { c.Data["json"] = c.ApiError("设备ID不允许为空或0!") c.ServeJSON() return } resultValue, err2 := new(service.CommandService).PushCommand(controlObject) if err2 != nil { c.Data["json"] = c.ApiError(err2.Error()) } else { //Logic.Adddefencehis(controlObject, cast.ToString(modelid), ctlState) c.Data["json"] = c.ApiOK(resultValue) } c.ServeJSON() } //设备重启 // @router /restart [post] func (c *CommandController) DeviceRestart() { var controlObject = new(service.CommandService) controlObject.DeviceId, _ = c.GetInt("deviceid", 0) err := controlObject.DeviceRestart() if err != nil { c.Data["json"] = c.ApiError(err.Error()) } else { c.Data["json"] = c.ApiOK("指令下发成功") } c.ServeJSON() }