All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m28s
- tb_iot_card 新增 device_virtual_no 字段,存储绑定设备的虚拟号快照 - 列表/详情接口响应新增 device_virtual_no 字段 - 列表接口 is_standalone 改为可选参数(不传返回全部卡) - 移除列表接口 virtual_no 查询参数 - 绑卡/解绑时同步更新 device_virtual_no 快照 - 设备导入时批量写入 device_virtual_no 快照 - 归档 feat-iot-card-device-virtual-no 变更提案 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Why
/api/admin/iot-cards/standalone 当前使用硬编码 WHERE is_standalone = true 过滤,导致已绑定设备的 IoT 卡完全不可见。运营人员无法在卡管列表中看到这些卡,也无法通过列表查询某张卡目前归属于哪台设备,造成管理盲区。
What Changes
- 移除硬编码
is_standalone = true过滤:is_standalone改为可选查询参数,不传时返回全部卡(含绑定设备的卡) - 移除
virtual_no列表过滤参数:不再支持按卡虚拟号模糊搜索 - 新增
device_virtual_no冗余快照字段:在tb_iot_card表新增device_virtual_no列,记录当前绑定设备的虚拟号(无绑定时为空字符串) - 响应新增
device_virtual_no字段:列表和详情接口均返回对应的设备虚拟号 - 写入时机快照:BindCard / UnbindCard / 设备导入(device_import)时同步写入或清空该字段
Capabilities
New Capabilities
iot-card-device-snapshot:IoT 卡列表展示绑定设备虚拟号的能力——包括device_virtual_no快照字段的数据库维护、列表/详情响应扩展、以及is_standalone可选过滤。
Modified Capabilities
(无现有 spec 级别的行为变更,仅实现层调整)
Impact
数据库
tb_iot_card新增列device_virtual_no VARCHAR(100) NOT NULL DEFAULT ''- 迁移时回填现有绑定数据
API
GET /api/admin/iot-cards/standalone- 查询参数:移除
virtual_no,新增is_standalone(可选布尔) - 响应:新增
device_virtual_no字段
- 查询参数:移除
GET /api/admin/iot-cards/standalone/:iccid(详情)- 响应:新增
device_virtual_no字段
- 响应:新增
代码
internal/model/iot_card.go:新增字段internal/model/dto/iot_card_dto.go:修改 Request / Response DTOinternal/store/postgres/iot_card_store.go:移除硬编码过滤,支持可选is_standalone条件internal/service/iot_card/service.go:传递新过滤参数,填充响应字段internal/service/device/binding.go:BindCard / UnbindCard 时更新卡字段internal/task/device_import.go:导入时批量写入device_virtual_no