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