commandController.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package controllers
  2. import (
  3. "rtzh_elec_temperature/rtelec_app_public_lib/service"
  4. "strconv"
  5. )
  6. //指令控制相关服务
  7. type CommandController struct {
  8. BaseController
  9. }
  10. //调用系统下发的指令
  11. //安防系统中,只有周界的“一键布防”“一键撤防”为另外的接口函数
  12. //安防系统,只有电子围栏和门禁有控制
  13. //这里的控制命令专门针对电子围栏
  14. // @router /control [post]
  15. func (c *CommandController) ControlCommand() {
  16. var controlObject = service.CommandMgr{}
  17. controlObject.DeviceId, _ = c.GetInt("deviceid", 0)
  18. controlObject.AttrName = c.GetString("attrname")
  19. state := c.GetString("state", "")
  20. modelid, err := new(service.DeviceService).GetModelIdByDeviceId(controlObject.DeviceId)
  21. if err != nil {
  22. c.Data["json"] = c.ApiError("获取模型ID异常!")
  23. c.ServeJSON()
  24. return
  25. }
  26. if modelid == nil {
  27. c.Data["json"] = c.ApiError("获取模型ID异常!")
  28. c.ServeJSON()
  29. return
  30. }
  31. // var dids []int //定义一个设备id数组用于存放需要返回的设备id
  32. if state == "" {
  33. c.Data["json"] = c.ApiError("控制状态不允许为空!")
  34. c.ServeJSON()
  35. return
  36. }
  37. ctlState, err := strconv.Atoi(state)
  38. if err != nil {
  39. c.Data["json"] = c.ApiError("控制状态参数必须为数字类型!")
  40. c.ServeJSON()
  41. return
  42. }
  43. controlObject.State = ctlState
  44. if controlObject.AttrName != "" && controlObject.DeviceId == 0 {
  45. c.Data["json"] = c.ApiError("设备ID不允许为空或0!")
  46. c.ServeJSON()
  47. return
  48. }
  49. resultValue, err2 := new(service.CommandService).PushCommand(controlObject)
  50. if err2 != nil {
  51. c.Data["json"] = c.ApiError(err2.Error())
  52. } else {
  53. //Logic.Adddefencehis(controlObject, cast.ToString(modelid), ctlState)
  54. c.Data["json"] = c.ApiOK(resultValue)
  55. }
  56. c.ServeJSON()
  57. }
  58. //设备重启
  59. // @router /restart [post]
  60. func (c *CommandController) DeviceRestart() {
  61. var controlObject = new(service.CommandService)
  62. controlObject.DeviceId, _ = c.GetInt("deviceid", 0)
  63. err := controlObject.DeviceRestart()
  64. if err != nil {
  65. c.Data["json"] = c.ApiError(err.Error())
  66. } else {
  67. c.Data["json"] = c.ApiOK("指令下发成功")
  68. }
  69. c.ServeJSON()
  70. }