All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m9s
- 企业卡授权唯一约束:新增 DB 迁移(000154),卡级部分唯一索引防止同一张卡被多个企业同时持有,Service 层新增跨企业冲突检测 - 单卡列表新增 network_status 过滤参数 - 单卡/设备列表新增 asset_status、asset_status_name、generation 响应字段 - 单卡/设备列表新增企业维度过滤(authorized_enterprise_id、is_authorized_to_enterprise)及响应中企业授权信息(批量加载,无 N+1) - 主钱包流水/退款列表新增 asset_identifier 精确过滤参数 - 企业卡授权/收回接口升级为三模式(list/range/filter),企业设备授权/收回升级为双模式(list/filter) - 升级 sonic v1.14.2 → v1.15.2 以兼容 Go 1.26 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
39 lines
1.8 KiB
Markdown
39 lines
1.8 KiB
Markdown
Status: ready-for-human
|
||
|
||
## Parent
|
||
|
||
`.scratch/enterprise-auth-and-asset-enhancements/PRD.md`
|
||
|
||
## What to build
|
||
|
||
将企业设备授权和收回接口升级为支持 list/filter 两种模式批量选取设备,替代原来只接受精确设备号列表的方式。
|
||
|
||
**涉及接口:**
|
||
- `POST /api/admin/enterprises/{id}/allocate-devices`
|
||
- `POST /api/admin/enterprises/{id}/recall-devices`
|
||
|
||
**`AllocateDevicesReq` 重构为:**
|
||
- `selection_type string`(必填,`list` 或 `filter`)
|
||
- list 模式:`device_nos []string`(设备虚拟号列表)
|
||
- filter 模式过滤字段:`virtual_no string`(模糊)、`batch_no string`、`shop_id *uint`
|
||
|
||
**`RecallDevicesReq` 重构为:**
|
||
- `selection_type string`(必填,`list` 或 `filter`)
|
||
- list 模式:`device_nos []string`
|
||
- filter 模式过滤字段:`virtual_no string`(模糊)、`batch_no string`
|
||
|
||
filter 模式下,allocate 操作的候选设备集受操作者权限约束(代理用户只能授权自己店铺的设备)。filter 模式命中的设备数量无硬性上限,但单次事务处理建议分批,超大批次需记录日志。
|
||
|
||
## Acceptance criteria
|
||
|
||
- [x] `allocate-devices` 接口接受 `selection_type=list` + `device_nos` 列表,行为与改动前一致
|
||
- [x] `allocate-devices` 接口接受 `selection_type=filter` + 过滤条件,批量授权所有匹配设备
|
||
- [x] `recall-devices` 接口接受 `selection_type=list` + `device_nos` 列表,行为与改动前一致
|
||
- [x] `recall-devices` 接口接受 `selection_type=filter` + 过滤条件,批量收回所有匹配设备
|
||
- [x] filter 模式下代理用户只能操作自己店铺的设备,超出范围的设备进入失败列表
|
||
- [x] 响应中 `success_count`、`fail_count`、`failed_items` 准确反映实际执行结果
|
||
|
||
## Blocked by
|
||
|
||
None - can start immediately
|