fix: 修复设备限速和切卡接口请求字段解析错误
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m15s

SetSpeedLimit 和 SwitchCard 的 Handler 直接解析 gateway 结构体(驼峰命名),
导致与 OpenAPI 文档(DTO 蛇形命名)不一致,前端按文档调用时参数被静默丢弃。

改为先解析 DTO,再手动映射到 gateway 结构体,使文档与实际行为一致。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-06 18:16:10 +08:00
parent b52cb9a078
commit 9417179161

View File

@@ -279,7 +279,7 @@ func (h *DeviceHandler) SetSpeedLimit(c *fiber.Ctx) error {
return errors.New(errors.CodeInvalidParam, "设备号不能为空") return errors.New(errors.CodeInvalidParam, "设备号不能为空")
} }
var req gateway.SpeedLimitReq var req dto.SetSpeedLimitRequest
if err := c.BodyParser(&req); err != nil { if err := c.BodyParser(&req); err != nil {
return errors.New(errors.CodeInvalidParam, "请求参数解析失败") return errors.New(errors.CodeInvalidParam, "请求参数解析失败")
} }
@@ -291,8 +291,11 @@ func (h *DeviceHandler) SetSpeedLimit(c *fiber.Ctx) error {
} }
// 调用 Gateway // 调用 Gateway
req.DeviceID = imei err = h.gatewayClient.SetSpeedLimit(c.UserContext(), &gateway.SpeedLimitReq{
err = h.gatewayClient.SetSpeedLimit(c.UserContext(), &req) DeviceID: imei,
UploadSpeed: req.UploadSpeed,
DownloadSpeed: req.DownloadSpeed,
})
if err != nil { if err != nil {
return err return err
} }
@@ -335,7 +338,7 @@ func (h *DeviceHandler) SwitchCard(c *fiber.Ctx) error {
return errors.New(errors.CodeInvalidParam, "设备号不能为空") return errors.New(errors.CodeInvalidParam, "设备号不能为空")
} }
var req gateway.SwitchCardReq var req dto.SwitchCardRequest
if err := c.BodyParser(&req); err != nil { if err := c.BodyParser(&req); err != nil {
return errors.New(errors.CodeInvalidParam, "请求参数解析失败") return errors.New(errors.CodeInvalidParam, "请求参数解析失败")
} }
@@ -347,8 +350,10 @@ func (h *DeviceHandler) SwitchCard(c *fiber.Ctx) error {
} }
// 调用 Gateway // 调用 Gateway
req.DeviceID = imei err = h.gatewayClient.SwitchCard(c.UserContext(), &gateway.SwitchCardReq{
err = h.gatewayClient.SwitchCard(c.UserContext(), &req) DeviceID: imei,
TargetICCID: req.TargetICCID,
})
if err != nil { if err != nil {
return err return err
} }