Files
junhong_cmp_fiber/scripts/batch_device_recall/README.md
break 4aff9937e5
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 48s
临时批量回收设备脚本
2026-07-28 11:05:05 +08:00

45 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 批量回收设备脚本
该脚本读取单列 CSV通过生产环境已有的设备列表和回收接口处理设备不依赖尚未部署的异步 CSV 批量任务。
默认只预演,不发送 HTTP 请求。只有增加 `--execute` 才会先解析全部设备,再按每批最多 100 台调用 `POST /api/admin/devices/recall`。接口会同步设备及其绑定卡的归属,并保留分配记录和审计日志。
## CSV 格式
首行表头可选,每行填写一个设备 IMEI 或虚拟号:
```csv
device_identifier
868120000000001
VIRTUAL000001
```
脚本会拦截多列、空值、重复标识、未找到设备、模糊匹配和同一设备被 IMEI、虚拟号重复引用的情况。全部设备预检查通过后才会发送回收请求。
回收目标沿用登录账号的既有接口权限:平台账号回收到平台库存,代理账号只能从直属下级回收到自己的店铺。
## 预演
```bash
python3 scripts/batch_device_recall/batch_device_recall.py \
--base-url https://cmp-api.example.com \
--csv scripts/batch_device_recall/devices.example.csv
```
## 真实执行
推荐通过环境变量传递 Token
```bash
JUNHONG_ADMIN_TOKEN='<后台Access Token>' \
python3 scripts/batch_device_recall/batch_device_recall.py \
--base-url https://cmp-api.example.com \
--csv /path/to/devices.csv \
--remark '生产环境人工批量回收' \
--execute
```
未提供 Token 时,也可使用 `JUNHONG_ADMIN_USERNAME``JUNHONG_ADMIN_PASSWORD` 自动登录。
结果默认写入输入文件同目录的 `原文件名_回收结果_YYYYMMDD_HHMMSS.csv`。脚本不会自动重试回收请求;网络异常时应先核对设备归属,再决定是否重跑失败项。