device.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. package apis
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "IotAdmin/core/sdk/api"
  6. "IotAdmin/core/sdk/pkg/jwt-auth/user"
  7. _ "IotAdmin/core/sdk/pkg/response"
  8. "IotAdmin/app/iot/models"
  9. "IotAdmin/app/iot/service"
  10. "IotAdmin/app/iot/service/dto"
  11. "IotAdmin/common/permission"
  12. )
  13. // IotDeviceApi 设备接口
  14. type IotDeviceApi struct {
  15. api.Api
  16. }
  17. // GetPage 获取设备列表
  18. // @Summary 获取设备列表
  19. // @Description 获取设备列表
  20. // @Tags 设备管理
  21. // @Param groupId query string false "设备分组"
  22. // @Param sn query string false "设备编码"
  23. // @Param name query string false "设备名称"
  24. // @Param type query string false "设备类型"
  25. // @Param mode query string false "设备模式"
  26. // @Param pageSize query int false "页条数"
  27. // @Param pageIndex query int false "页码"
  28. // @Success 200 {object} response.Response{data=response.Page{list=[]models.IotDevice}} "{"code": 200, "data": [...]}"
  29. // @Router /api/iot-device [get]
  30. // @Security Bearer
  31. func (e IotDeviceApi) GetPage(c *gin.Context) {
  32. req := dto.IotDeviceGetPageReq{}
  33. s := service.IotDeviceService{}
  34. err := e.MakeContext(c).
  35. MakeOrm().
  36. Bind(&req).
  37. MakeService(&s.Service).
  38. Errors
  39. if err != nil {
  40. e.Logger.Error(err)
  41. e.Error(500, err, err.Error())
  42. return
  43. }
  44. p := permission.GetPermissionFromContext(c)
  45. list := make([]models.IotDevice, 0)
  46. var count int64
  47. err = s.GetPage(&req, p, &list, &count)
  48. if err != nil {
  49. e.Error(500, err, fmt.Sprintf("获取设备失败,\r\n失败信息 %s", err.Error()))
  50. return
  51. }
  52. e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  53. }
  54. // Get 获取设备
  55. // @Summary 获取设备
  56. // @Description 获取设备
  57. // @Tags 设备管理
  58. // @Param id path int false "id"
  59. // @Success 200 {object} response.Response{data=models.IotDevice} "{"code": 200, "data": [...]}"
  60. // @Router /api/iot-device/{id} [get]
  61. // @Security Bearer
  62. func (e IotDeviceApi) Get(c *gin.Context) {
  63. req := dto.IotDeviceGetReq{}
  64. s := service.IotDeviceService{}
  65. err := e.MakeContext(c).
  66. MakeOrm().
  67. Bind(&req).
  68. MakeService(&s.Service).
  69. Errors
  70. if err != nil {
  71. e.Logger.Error(err)
  72. e.Error(500, err, err.Error())
  73. return
  74. }
  75. var object models.IotDevice
  76. p := permission.GetPermissionFromContext(c)
  77. err = s.Get(&req, p, &object)
  78. if err != nil {
  79. e.Error(500, err, fmt.Sprintf("获取设备失败,\r\n失败信息 %s", err.Error()))
  80. return
  81. }
  82. e.OK( object, "查询成功")
  83. }
  84. // Insert 添加设备
  85. // @Summary 添加设备
  86. // @Description 添加设备
  87. // @Tags 设备管理
  88. // @Accept application/json
  89. // @Product application/json
  90. // @Param data body dto.IotDeviceInsertReq true "data"
  91. // @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}"
  92. // @Router /api/iot-device [post]
  93. // @Security Bearer
  94. func (e IotDeviceApi) Insert(c *gin.Context) {
  95. req := dto.IotDeviceInsertReq{}
  96. s := service.IotDeviceService{}
  97. err := e.MakeContext(c).
  98. MakeOrm().
  99. Bind(&req).
  100. MakeService(&s.Service).
  101. Errors
  102. if err != nil {
  103. e.Logger.Error(err)
  104. e.Error(500, err, err.Error())
  105. return
  106. }
  107. // 设置创建人
  108. req.SetCreateBy(user.GetUserId(c))
  109. err = s.Insert(&req)
  110. if err != nil {
  111. e.Error(500, err, fmt.Sprintf("添加设备失败,\r\n失败信息 %s", err.Error()))
  112. return
  113. }
  114. e.OK(req.GetId(), "添加成功")
  115. }
  116. // Update 修改设备
  117. // @Summary 修改设备
  118. // @Description 修改设备
  119. // @Tags 设备管理
  120. // @Accept application/json
  121. // @Product application/json
  122. // @Param id path int true "id"
  123. // @Param data body dto.IotDeviceUpdateReq true "body"
  124. // @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
  125. // @Router /api/iot-device/{id} [put]
  126. // @Security Bearer
  127. func (e IotDeviceApi) Update(c *gin.Context) {
  128. req := dto.IotDeviceUpdateReq{}
  129. s := service.IotDeviceService{}
  130. err := e.MakeContext(c).
  131. MakeOrm().
  132. Bind(&req).
  133. MakeService(&s.Service).
  134. Errors
  135. if err != nil {
  136. e.Logger.Error(err)
  137. e.Error(500, err, err.Error())
  138. return
  139. }
  140. req.SetUpdateBy(user.GetUserId(c))
  141. p := permission.GetPermissionFromContext(c)
  142. err = s.Update(&req, p)
  143. if err != nil {
  144. e.Error(500, err, fmt.Sprintf("修改设备失败,\r\n失败信息 %s", err.Error()))
  145. return
  146. }
  147. e.OK( req.GetId(), "修改成功")
  148. }
  149. // Delete 删除设备
  150. // @Summary 删除设备
  151. // @Description 删除设备
  152. // @Tags 设备管理
  153. // @Param data body dto.IotDeviceDeleteReq true "body"
  154. // @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}"
  155. // @Router /api/iot-device [delete]
  156. // @Security Bearer
  157. func (e IotDeviceApi) Delete(c *gin.Context) {
  158. s := service.IotDeviceService{}
  159. req := dto.IotDeviceDeleteReq{}
  160. err := e.MakeContext(c).
  161. MakeOrm().
  162. Bind(&req).
  163. MakeService(&s.Service).
  164. Errors
  165. if err != nil {
  166. e.Logger.Error(err)
  167. e.Error(500, err, err.Error())
  168. return
  169. }
  170. // req.SetUpdateBy(user.GetUserId(c))
  171. p := permission.GetPermissionFromContext(c)
  172. err = s.Remove(&req, p)
  173. if err != nil {
  174. e.Error(500, err, fmt.Sprintf("删除设备失败,\r\n失败信息 %s", err.Error()))
  175. return
  176. }
  177. e.OK( req.GetId(), "删除成功")
  178. }