2.0 KiB
2.0 KiB
02 — 完成 CSV 批量分配代理接口闭环
What to build: 平台员工或代理提交已上传的 CSV 与目标代理后,系统创建并执行批量分配任务;任务按既有设备分配规则安全处理每一行、同步绑定卡和设备状态、写入资产分配与审计事实,并向前端提供可轮询的进度、成功、幂等和失败原因。
Blocked by: 01 — 建立设备 CSV 批量任务与受控上传基础设施。
Status: ready-for-agent
架构通道: 主通道为复杂写,辅助通道为 Query。
完整业务边界: 本票收口任务提交、后台执行、设备归属/绑定卡归属与状态/资产分配记录的同事务变更、条件更新和重试幂等,以及任务详情安全读取。复杂写必须遵循 Handler → Application UseCase → Domain → Repository/Infrastructure;不变量、并发和审计不得一半留在旧 Service、一半迁入 Domain。
明确不迁移: 不迁移既有页面勾选、ID 列表、号段、筛选分配、设备回收和横向转移入口;既有同步分配只能作为内部业务规则门面,不能复制宽松逻辑。
batch-assign-shop只接受file_key与正目标代理 ID,提交时校验操作者、对象和目标权限,并返回前端轮询所需的任务标识、命令和状态。- 平台仅能分配平台库存,代理仅能分配自己名下设备给直属下级;同目标为幂等成功,横向转移、跨级、无权和未命中均安全拒绝。
- 每个写批次经 Application 编排 Domain 与 Repository/Infrastructure,以条件更新在同一事务内完成设备归属、绑定卡同步、状态变化、资产分配记录和实际变更审计;重试或并发不会重复记录或覆盖其他操作。
- 任务详情由 Query 负责权限、批量加载和 DTO 投影,只读展示目标摘要、状态名称、进度、总数、成功数、幂等数、失败数、逐行中文失败原因及起止时间;权限不足与不存在使用相同安全语义。