feat(routes): 注册 7 个设备 Gateway 路由
This commit is contained in:
76
.sisyphus/notepads/add-gateway-admin-api/status.md
Normal file
76
.sisyphus/notepads/add-gateway-admin-api/status.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Execution Status
|
||||
|
||||
## Completed Tasks
|
||||
|
||||
### ✅ Task 1: Bootstrap Dependency Injection
|
||||
- **Status**: COMPLETED AND VERIFIED
|
||||
- **Verification**:
|
||||
- LSP diagnostics: CLEAN
|
||||
- Build: SUCCESS
|
||||
- Changes verified in files:
|
||||
- `internal/handler/admin/iot_card.go` - Added gatewayClient field and updated constructor
|
||||
- `internal/handler/admin/device.go` - Added gatewayClient field and updated constructor
|
||||
- `internal/bootstrap/handlers.go` - Updated handler instantiation to pass deps.GatewayClient
|
||||
- **Commit**: `修改 Bootstrap 注入 Gateway Client 依赖到 IotCardHandler 和 DeviceHandler`
|
||||
- **Session**: ses_3e2531368ffes11sTWCVuBm9XX
|
||||
|
||||
## Next Wave (Wave 2 - PARALLEL)
|
||||
|
||||
### Task 2: IotCardHandler - Add 6 Gateway Methods
|
||||
**Blocked By**: Task 1 ✅ (unblocked)
|
||||
**Blocks**: Task 4
|
||||
**Can Run In Parallel**: YES (with Task 3)
|
||||
|
||||
Methods to add:
|
||||
- GetGatewayStatus (GET /:iccid/gateway-status)
|
||||
- GetGatewayFlow (GET /:iccid/gateway-flow)
|
||||
- GetGatewayRealname (GET /:iccid/gateway-realname)
|
||||
- GetRealnameLink (GET /:iccid/realname-link)
|
||||
- StopCard (POST /:iccid/stop)
|
||||
- StartCard (POST /:iccid/start)
|
||||
|
||||
### Task 3: DeviceHandler - Add 7 Gateway Methods
|
||||
**Blocked By**: Task 1 ✅ (unblocked)
|
||||
**Blocks**: Task 5
|
||||
**Can Run In Parallel**: YES (with Task 2)
|
||||
|
||||
Methods to add:
|
||||
- GetGatewayInfo (GET /by-imei/:imei/gateway-info)
|
||||
- GetGatewaySlots (GET /by-imei/:imei/gateway-slots)
|
||||
- SetSpeedLimit (PUT /by-imei/:imei/speed-limit)
|
||||
- SetWiFi (PUT /by-imei/:imei/wifi)
|
||||
- SwitchCard (POST /by-imei/:imei/switch-card)
|
||||
- RebootDevice (POST /by-imei/:imei/reboot)
|
||||
- ResetDevice (POST /by-imei/:imei/reset)
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
### Handler Method Pattern
|
||||
```go
|
||||
func (h *IotCardHandler) GetGatewayStatus(c *fiber.Ctx) error {
|
||||
iccid := c.Params("iccid")
|
||||
if iccid == "" {
|
||||
return errors.New(errors.CodeInvalidParam, "ICCID不能为空")
|
||||
}
|
||||
|
||||
// 1. Validate permission: Query DB to confirm ownership
|
||||
card, err := h.service.GetByICCID(c.UserContext(), iccid)
|
||||
if err != nil {
|
||||
return errors.New(errors.CodeNotFound, "卡不存在或无权限访问")
|
||||
}
|
||||
|
||||
// 2. Call Gateway
|
||||
resp, err := h.gatewayClient.QueryCardStatus(c.UserContext(), &gateway.CardStatusReq{
|
||||
CardNo: iccid,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return response.Success(c, resp)
|
||||
}
|
||||
```
|
||||
|
||||
### Gateway Param Conversion
|
||||
- ICCID (path param) = CardNo (Gateway param)
|
||||
- IMEI (path param) = DeviceID (Gateway param)
|
||||
Reference in New Issue
Block a user