package parking import ( "fmt" "server/model/common/response" "server/model/parking/request" parkingResponse "server/model/parking/response" "server/service/parking" "github.com/gin-gonic/gin" ) // CreateDevice 创建设备 func CreateDevice(c *gin.Context) { var req request.DeviceCreate if err := c.ShouldBindJSON(&req); err != nil { response.FailWithMessage(err.Error(), c) return } err := parking.DeviceService.CreateDevice(req) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("创建成功", c) } // UpdateDevice 更新设备 func UpdateDevice(c *gin.Context) { var req request.DeviceUpdate if err := c.ShouldBindJSON(&req); err != nil { response.FailWithMessage(err.Error(), c) return } err := parking.DeviceService.UpdateDevice(req) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("更新成功", c) } // GetDeviceByID 根据ID获取设备 func GetDeviceByID(c *gin.Context) { id := c.Query("id") uintID := uint(0) _, err := fmt.Sscanf(id, "%d", &uintID) if err != nil { response.FailWithMessage("无效的ID", c) return } device, err := parking.DeviceService.GetDeviceByID(uintID) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithData(device, c) } // GetDeviceByCode 根据编码获取设备 func GetDeviceByCode(c *gin.Context) { code := c.Query("code") if code == "" { response.FailWithMessage("设备编码不能为空", c) return } device, err := parking.DeviceService.GetDeviceByCode(code) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithData(device, c) } // ListDevices 获取设备列表 func ListDevices(c *gin.Context) { var req request.DeviceQuery if err := c.ShouldBindQuery(&req); err != nil { response.FailWithMessage(err.Error(), c) return } total, list, err := parking.DeviceService.ListDevices(req) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithData(parkingResponse.DeviceList{ Total: total, List: list, }, c) } // DeleteDevice 删除设备 func DeleteDevice(c *gin.Context) { id := c.Query("id") uintID := uint(0) _, err := fmt.Sscanf(id, "%d", &uintID) if err != nil { response.FailWithMessage("无效的ID", c) return } err = parking.DeviceService.DeleteDevice(uintID) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("删除成功", c) } // UpdateDeviceStatus 更新设备状态 func UpdateDeviceStatus(c *gin.Context) { id := c.Query("id") uintID := uint(0) _, err := fmt.Sscanf(id, "%d", &uintID) if err != nil { response.FailWithMessage("无效的ID", c) return } var req struct { Status string `json:"status" binding:"required"` } if err := c.ShouldBindJSON(&req); err != nil { response.FailWithMessage(err.Error(), c) return } err = parking.DeviceService.UpdateDeviceStatus(uintID, req.Status) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("状态更新成功", c) }