vehicle.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. package vehicle
  2. import (
  3. "fmt"
  4. "strconv"
  5. "github.com/gin-gonic/gin"
  6. "wails-app/internal/model/common/response"
  7. "wails-app/internal/model/vehicle/request"
  8. vehicleResponse "wails-app/internal/model/vehicle/response"
  9. )
  10. // CreateVehicle 创建车辆信息
  11. func CreateVehicle(c *gin.Context) {
  12. var req request.VehicleCreate
  13. if err := c.ShouldBindJSON(&req); err != nil {
  14. response.FailWithMessage(err.Error(), c)
  15. return
  16. }
  17. err := vehicleService.CreateVehicle(req)
  18. if err != nil {
  19. response.FailWithMessage(err.Error(), c)
  20. return
  21. }
  22. response.OkWithMessage("创建成功", c)
  23. }
  24. // UpdateVehicle 更新车辆信息
  25. func UpdateVehicle(c *gin.Context) {
  26. var req request.VehicleUpdate
  27. if err := c.ShouldBindJSON(&req); err != nil {
  28. response.FailWithMessage(err.Error(), c)
  29. return
  30. }
  31. err := vehicleService.UpdateVehicle(req)
  32. if err != nil {
  33. response.FailWithMessage(err.Error(), c)
  34. return
  35. }
  36. response.OkWithMessage("更新成功", c)
  37. }
  38. // GetVehicleByID 根据ID获取车辆信息
  39. func GetVehicleByID(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. vehicleInfo, err := vehicleService.GetVehicleByID(uintID)
  48. if err != nil {
  49. response.FailWithMessage(err.Error(), c)
  50. return
  51. }
  52. response.OkWithData(vehicleInfo, c)
  53. }
  54. // GetVehicleByPlateNumber 根据车牌号获取车辆信息
  55. func GetVehicleByPlateNumber(c *gin.Context) {
  56. plateNumber := c.Query("plate_number")
  57. if plateNumber == "" {
  58. response.FailWithMessage("车牌号不能为空", c)
  59. return
  60. }
  61. vehicleInfo, err := vehicleService.GetVehicleByPlateNumber(plateNumber, "")
  62. if err != nil {
  63. response.FailWithMessage(err.Error(), c)
  64. return
  65. }
  66. response.OkWithData(vehicleInfo, c)
  67. }
  68. func QueryAllVehicles(c *gin.Context) {
  69. vehicles, err := vehicleService.QueryAllVehicles()
  70. if err != nil {
  71. response.FailWithMessage(err.Error(), c)
  72. return
  73. }
  74. response.OkWithData(vehicles, c)
  75. }
  76. // ListVehicles 获取车辆列表
  77. func ListVehicles(c *gin.Context) {
  78. var req request.VehicleQuery
  79. if err := c.ShouldBindQuery(&req); err != nil {
  80. response.FailWithMessage(err.Error(), c)
  81. return
  82. }
  83. total, list, err := vehicleService.ListVehicles(req)
  84. if err != nil {
  85. response.FailWithMessage(err.Error(), c)
  86. return
  87. }
  88. response.OkWithData(vehicleResponse.VehicleList{
  89. Total: total,
  90. List: list,
  91. }, c)
  92. }
  93. // DeleteVehicle 删除车辆
  94. func DeleteVehicle(c *gin.Context) {
  95. id := c.Query("id")
  96. uintID := uint(0)
  97. _, err := fmt.Sscanf(id, "%d", &uintID)
  98. if err != nil {
  99. response.FailWithMessage("无效的ID", c)
  100. return
  101. }
  102. err = vehicleService.DeleteVehicle(uintID)
  103. if err != nil {
  104. response.FailWithMessage(err.Error(), c)
  105. return
  106. }
  107. response.OkWithMessage("删除成功", c)
  108. }
  109. // VehicleEntry 车辆入场
  110. func VehicleEntry(c *gin.Context) {
  111. var req request.VehicleEntry
  112. if err := c.ShouldBindJSON(&req); err != nil {
  113. response.FailWithMessage(err.Error(), c)
  114. return
  115. }
  116. resp, err := vehicleService.VehicleEntry(req)
  117. if err != nil {
  118. response.FailWithMessage(err.Error(), c)
  119. return
  120. }
  121. response.OkWithData(resp, c)
  122. }
  123. // VehicleExit 车辆出场
  124. func VehicleExit(c *gin.Context) {
  125. var req request.VehicleExit
  126. if err := c.ShouldBindJSON(&req); err != nil {
  127. response.FailWithMessage(err.Error(), c)
  128. return
  129. }
  130. resp, err := vehicleService.VehicleExit(req)
  131. if err != nil {
  132. response.FailWithMessage(err.Error(), c)
  133. return
  134. }
  135. response.OkWithData(resp, c)
  136. }
  137. // GetInParkVehicles 获取所有在场车辆
  138. func GetInParkVehicles(c *gin.Context) {
  139. lotID, _ := strconv.Atoi(c.Query("parking_lot_id"))
  140. plateNumber := c.Query("plate_number")
  141. list, err := vehicleService.GetInParkVehicles(uint(lotID), plateNumber)
  142. if err != nil {
  143. response.FailWithMessage(err.Error(), c)
  144. return
  145. }
  146. response.OkWithData(list, c)
  147. }