All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m5s
- AssetResolveResponse 新增 real_name_at 字段:card 类型取 first_realname_at,device 类型取绑定卡中最小的实名时间 - BoundCardInfo 新增 real_name_at 字段:各卡自己的 first_realname_at - RefreshCardDataFromGateway 手动刷新路径补写实名时间:检测到 0→1 变化时同步写入 first_realname_at - 同步更新 asset-resolve 规格文档 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
## Why
|
||
|
||
后台资产详情(卡视角和设备视角)缺少实名时间字段,运营人员无法直观判断资产何时完成实名,影响客服处理和问题排查效率。
|
||
|
||
## What Changes
|
||
|
||
- `GET /api/admin/assets/resolve/:identifier` 响应新增 `real_name_at` 字段(卡视角:该卡最近一次完成实名的时间;设备视角:当前所有绑定卡中最早完成实名的时间)
|
||
- 设备响应中 `cards` 数组内每个 `BoundCardInfo` 新增各卡自己的 `real_name_at`
|
||
- 修复手动刷新路径(`RefreshCardDataFromGateway`)漏写 `first_realname_at` 的 bug,与轮询路径对齐
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
|
||
(无新能力,仅扩展现有接口响应字段)
|
||
|
||
### Modified Capabilities
|
||
|
||
- `asset-resolve`:`AssetResolveResponse` 新增 `real_name_at` 字段;`BoundCardInfo` 新增 `real_name_at` 字段
|
||
|
||
## Impact
|
||
|
||
**受影响文件**:
|
||
- `internal/model/dto/asset_dto.go`:DTO 新增字段
|
||
- `internal/service/asset/service.go`:`buildCardResolveResponse` / `buildDeviceResolveResponse` 填充逻辑
|
||
- `internal/service/iot_card/service.go`:`RefreshCardDataFromGateway` 补写 `first_realname_at`
|
||
|
||
**不影响**:
|
||
- 数据库结构(`first_realname_at` 字段已存在于 `tb_iot_card`)
|
||
- 业务逻辑(`triggerFirstRealnameActivation` 由 `isFirstRealname` 条件驱动,不读取 `first_realname_at` 字段)
|
||
- 其他 API 接口
|