批量收回功能
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m1s

This commit is contained in:
2026-07-28 10:53:15 +08:00
parent 7c5b6ee036
commit 178cc45bc2
16 changed files with 117 additions and 71 deletions

View File

@@ -1,4 +1,4 @@
# 设备 CSV 批量分配功能总结
# 设备 CSV 批量分配与回收功能总结
## 功能边界
@@ -22,7 +22,8 @@ POST /api/admin/devices/import/allocations
- `assign_shop``target_id` 为目标代理店铺 ID。
- `assign_series``target_id` 为目标套餐系列 ID。
- 每个任务只能选择一种操作和一个目标,不能逐行指定不同目标
- `recall`:不传 `target_id`;平台回收到平台库存,代理回收到自己店铺
- 每个任务只能选择一种操作,不能逐行指定不同操作或目标。
## CSV 格式
@@ -34,8 +35,9 @@ Worker 批量解析设备后调用现有业务方法:
- 分配代理调用 `DeviceService.AllocateDevices`,沿用直属下级、平台库存、绑定卡归属同步、分配记录和资产审计规则。
- 设置套餐系列调用 `DeviceService.BatchSetSeriesBinding`,沿用套餐系列有效性、代理授权、设备归属和资产审计规则。
- 回收设备调用 `DeviceService.RecallDevices`,代理只能回收直属下级的设备,平台可回收店铺设备,并同步绑定卡归属、分配记录和资产审计。
任务创建时冻结操作者 ID、类型和店铺 IDWorker 重建权限上下文,不能因异步执行丢失数据范围。重复消费时,已经属于目标店铺已经绑定目标系列的设备直接按成功处理任务完成或失败后不重复执行。CSV 内重复设备记录为跳过,不产生重复副作用。
任务创建时冻结操作者 ID、类型和店铺 IDWorker 重建权限上下文,不能因异步执行丢失数据范围。重复消费时,已经属于目标店铺已经绑定目标系列或已经回收到操作者归属的设备直接按成功处理任务完成或失败后不重复执行。CSV 内重复设备记录为跳过,不产生重复副作用。
## 任务查询与回滚