device.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package parking
  2. import (
  3. "fmt"
  4. "server/model/common/response"
  5. "server/model/parking/request"
  6. parkingResponse "server/model/parking/response"
  7. "server/service/parking"
  8. "github.com/gin-gonic/gin"
  9. )
  10. // CreateDevice 创建设备
  11. func CreateDevice(c *gin.Context) {
  12. var req request.DeviceCreate
  13. if err := c.ShouldBindJSON(&req); err != nil {
  14. response.FailWithMessage(err.Error(), c)
  15. return
  16. }
  17. err := parking.DeviceService.CreateDevice(req)
  18. if err != nil {
  19. response.FailWithMessage(err.Error(), c)
  20. return
  21. }
  22. response.OkWithMessage("创建成功", c)
  23. }
  24. // UpdateDevice 更新设备
  25. func UpdateDevice(c *gin.Context) {
  26. var req request.DeviceUpdate
  27. if err := c.ShouldBindJSON(&req); err != nil {
  28. response.FailWithMessage(err.Error(), c)
  29. return
  30. }
  31. err := parking.DeviceService.UpdateDevice(req)
  32. if err != nil {
  33. response.FailWithMessage(err.Error(), c)
  34. return
  35. }
  36. response.OkWithMessage("更新成功", c)
  37. }
  38. // GetDeviceByID 根据ID获取设备
  39. func GetDeviceByID(c *gin.Context) {
  40. id := c.Query("id")
  41. uintID := uint(0)
  42. _, err := fmt.Sscanf(id, "%d", &uintID)
  43. if err != nil {
  44. response.FailWithMessage("无效的ID", c)
  45. return
  46. }
  47. device, err := parking.DeviceService.GetDeviceByID(uintID)
  48. if err != nil {
  49. response.FailWithMessage(err.Error(), c)
  50. return
  51. }
  52. response.OkWithData(device, c)
  53. }
  54. // GetDeviceByCode 根据编码获取设备
  55. func GetDeviceByCode(c *gin.Context) {
  56. code := c.Query("code")
  57. if code == "" {
  58. response.FailWithMessage("设备编码不能为空", c)
  59. return
  60. }
  61. device, err := parking.DeviceService.GetDeviceByCode(code)
  62. if err != nil {
  63. response.FailWithMessage(err.Error(), c)
  64. return
  65. }
  66. response.OkWithData(device, c)
  67. }
  68. // ListDevices 获取设备列表
  69. func ListDevices(c *gin.Context) {
  70. var req request.DeviceQuery
  71. if err := c.ShouldBindQuery(&req); err != nil {
  72. response.FailWithMessage(err.Error(), c)
  73. return
  74. }
  75. total, list, err := parking.DeviceService.ListDevices(req)
  76. if err != nil {
  77. response.FailWithMessage(err.Error(), c)
  78. return
  79. }
  80. response.OkWithData(parkingResponse.DeviceList{
  81. Total: total,
  82. List: list,
  83. }, c)
  84. }
  85. // DeleteDevice 删除设备
  86. func DeleteDevice(c *gin.Context) {
  87. id := c.Query("id")
  88. uintID := uint(0)
  89. _, err := fmt.Sscanf(id, "%d", &uintID)
  90. if err != nil {
  91. response.FailWithMessage("无效的ID", c)
  92. return
  93. }
  94. err = parking.DeviceService.DeleteDevice(uintID)
  95. if err != nil {
  96. response.FailWithMessage(err.Error(), c)
  97. return
  98. }
  99. response.OkWithMessage("删除成功", c)
  100. }
  101. // UpdateDeviceStatus 更新设备状态
  102. func UpdateDeviceStatus(c *gin.Context) {
  103. id := c.Query("id")
  104. uintID := uint(0)
  105. _, err := fmt.Sscanf(id, "%d", &uintID)
  106. if err != nil {
  107. response.FailWithMessage("无效的ID", c)
  108. return
  109. }
  110. var req struct {
  111. Status string `json:"status" binding:"required"`
  112. }
  113. if err := c.ShouldBindJSON(&req); err != nil {
  114. response.FailWithMessage(err.Error(), c)
  115. return
  116. }
  117. err = parking.DeviceService.UpdateDeviceStatus(uintID, req.Status)
  118. if err != nil {
  119. response.FailWithMessage(err.Error(), c)
  120. return
  121. }
  122. response.OkWithMessage("状态更新成功", c)
  123. }