All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 48s
45 lines
1.7 KiB
Markdown
45 lines
1.7 KiB
Markdown
# 批量回收设备脚本
|
||
|
||
该脚本读取单列 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`。脚本不会自动重试回收请求;网络异常时应先核对设备归属,再决定是否重跑失败项。
|