device_config_actions.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package main
  2. import (
  3. "github.com/go-martini/martini"
  4. "github.com/martini-contrib/render"
  5. "net/http"
  6. "sparrow/pkg/rpcs"
  7. "sparrow/pkg/server"
  8. "strconv"
  9. )
  10. // GetDeviceCommands 查询设备指令列表(通过设备类型id)
  11. func GetDeviceCommands(req *http.Request, r render.Render) {
  12. deviceTypeId := req.URL.Query().Get("device_type_id")
  13. if deviceTypeId == "" {
  14. r.JSON(http.StatusOK, renderError(ErrWrongQueryFormat, errBadRequestString))
  15. return
  16. }
  17. pi, _ := strconv.Atoi(req.URL.Query().Get("pi"))
  18. ps, _ := strconv.Atoi(req.URL.Query().Get("ps"))
  19. if pi <= 0 {
  20. pi = 1
  21. }
  22. if ps <= 0 {
  23. ps = 20
  24. }
  25. name := req.URL.Query().Get("name")
  26. args := &rpcs.ArgsDeviceCommandQuery{
  27. DeviceTypeId: deviceTypeId,
  28. Pi: pi,
  29. Ps: ps,
  30. Name: name,
  31. }
  32. reply := &rpcs.ReplyDeviceCommandList{}
  33. err := server.RPCCallByName(nil, rpcs.RegistryServerName, "Registry.GetDeviceCommands", args, reply)
  34. if err != nil {
  35. server.Log.Errorf("GetDeviceCommands error: %v", err)
  36. r.JSON(http.StatusOK, renderError(ErrSystemFault, err))
  37. return
  38. }
  39. r.JSON(http.StatusOK, done(map[string]interface{}{
  40. "list": reply.List,
  41. "total": reply.Total,
  42. }))
  43. }
  44. // GetDeviceStatusList 查询设备状态列表(通过设备类型id)
  45. func GetDeviceStatusList(req *http.Request, r render.Render) {
  46. deviceTypeId := req.URL.Query().Get("device_type_id")
  47. if deviceTypeId == "" {
  48. r.JSON(http.StatusOK, renderError(ErrWrongQueryFormat, errBadRequestString))
  49. return
  50. }
  51. pi, _ := strconv.Atoi(req.URL.Query().Get("pi"))
  52. ps, _ := strconv.Atoi(req.URL.Query().Get("ps"))
  53. if pi <= 0 {
  54. pi = 1
  55. }
  56. if ps <= 0 {
  57. ps = 20
  58. }
  59. name := req.URL.Query().Get("name")
  60. args := &rpcs.ArgsDeviceStatusQuery{
  61. DeviceTypeId: deviceTypeId,
  62. Pi: pi,
  63. Ps: ps,
  64. Name: name,
  65. }
  66. reply := &rpcs.ReplyDeviceStatusList{}
  67. err := server.RPCCallByName(nil, rpcs.RegistryServerName, "Registry.GetDeviceStatusList", args, reply)
  68. if err != nil {
  69. server.Log.Errorf("GetDeviceStatusList error: %v", err)
  70. r.JSON(http.StatusOK, renderError(ErrSystemFault, err))
  71. return
  72. }
  73. r.JSON(http.StatusOK, done(map[string]interface{}{
  74. "list": reply.List,
  75. "total": reply.Total,
  76. }))
  77. }
  78. // GetSceneHis 分页查询场景执行历史
  79. func GetSceneHis(req *http.Request, r render.Render) {
  80. pi, _ := strconv.Atoi(req.URL.Query().Get("pi"))
  81. ps, _ := strconv.Atoi(req.URL.Query().Get("ps"))
  82. if pi <= 0 {
  83. pi = 1
  84. }
  85. if ps <= 0 {
  86. ps = 20
  87. }
  88. sceneId := req.URL.Query().Get("scene_id")
  89. args := &rpcs.ArgsSceneHisQuery{
  90. SceneId: sceneId,
  91. Pi: pi,
  92. Ps: ps,
  93. }
  94. reply := &rpcs.ReplySceneHisList{}
  95. err := server.RPCCallByName(nil, rpcs.RegistryServerName, "Registry.GetSceneHis", args, reply)
  96. if err != nil {
  97. server.Log.Errorf("GetSceneHis error: %v", err)
  98. r.JSON(http.StatusOK, renderError(ErrSystemFault, err))
  99. return
  100. }
  101. r.JSON(http.StatusOK, done(map[string]interface{}{
  102. "list": reply.List,
  103. "total": reply.Total,
  104. }))
  105. }
  106. // GetSceneHisBySceneId 按场景ID分页查询执行历史
  107. func GetSceneHisBySceneId(params martini.Params, req *http.Request, r render.Render) {
  108. sceneId := params["scene_id"]
  109. if sceneId == "" {
  110. r.JSON(http.StatusOK, renderError(ErrWrongQueryFormat, errBadRequestString))
  111. return
  112. }
  113. pi, _ := strconv.Atoi(req.URL.Query().Get("pi"))
  114. ps, _ := strconv.Atoi(req.URL.Query().Get("ps"))
  115. if pi <= 0 {
  116. pi = 1
  117. }
  118. if ps <= 0 {
  119. ps = 20
  120. }
  121. args := &rpcs.ArgsSceneHisQuery{
  122. SceneId: sceneId,
  123. Pi: pi,
  124. Ps: ps,
  125. }
  126. reply := &rpcs.ReplySceneHisList{}
  127. err := server.RPCCallByName(nil, rpcs.RegistryServerName, "Registry.GetSceneHisBySceneId", args, reply)
  128. if err != nil {
  129. server.Log.Errorf("GetSceneHisBySceneId error: %v", err)
  130. r.JSON(http.StatusOK, renderError(ErrSystemFault, err))
  131. return
  132. }
  133. r.JSON(http.StatusOK, done(map[string]interface{}{
  134. "list": reply.List,
  135. "total": reply.Total,
  136. }))
  137. }