Files
junhong_cmp_fiber/.scratch/enterprise-auth-and-asset-enhancements/issues/09-enterprise-device-auth-multi-mode.md
break 3b7b856e48
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>
2026-06-17 16:23:03 +09:00

1.8 KiB
Raw Blame History

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(必填,listfilter
  • list 模式:device_nos []string(设备虚拟号列表)
  • filter 模式过滤字段:virtual_no string(模糊)、batch_no stringshop_id *uint

RecallDevicesReq 重构为:

  • selection_type string(必填,listfilter
  • list 模式:device_nos []string
  • filter 模式过滤字段:virtual_no string(模糊)、batch_no string

filter 模式下allocate 操作的候选设备集受操作者权限约束代理用户只能授权自己店铺的设备。filter 模式命中的设备数量无硬性上限,但单次事务处理建议分批,超大批次需记录日志。

Acceptance criteria

  • allocate-devices 接口接受 selection_type=list + device_nos 列表,行为与改动前一致
  • allocate-devices 接口接受 selection_type=filter + 过滤条件,批量授权所有匹配设备
  • recall-devices 接口接受 selection_type=list + device_nos 列表,行为与改动前一致
  • recall-devices 接口接受 selection_type=filter + 过滤条件,批量收回所有匹配设备
  • filter 模式下代理用户只能操作自己店铺的设备,超出范围的设备进入失败列表
  • 响应中 success_countfail_countfailed_items 准确反映实际执行结果

Blocked by

None - can start immediately