# Change: 新增批量订购任务与逐行结果

## Why

运营需要为同一个代理商批量导入套餐订单，并统一指定整批支付方式。当前订单页面只支持单笔创建，无法上传批量订单文件、跟踪处理进度或定位逐行失败原因，批量操作也无法安全处理线下支付凭证和钱包余额不足场景。

## What Changes

- 新增批量订购套餐入口，支持选择代理商、整批支付方式和上传 Excel 文件。
- 支持线下支付时上传整批支付凭证；一个批次禁止混合支付方式。
- 模板下载使用前端静态文件，不依赖后端模板接口。
- 新增批量订购任务 API，提交 multipart 字段 `shop_id`、`payment_method`、`file`、`voucher_file` 和 `request_id`。
- 创建成功后展示任务号、任务状态、总数、成功数、失败数和金额汇总。
- 支持按 `task_id` 恢复任务详情，并轮询进行中的任务。
- 新增逐行结果查询，支持分页和状态筛选。
- 失败明细展示行号、资产、套餐编码和错误原因。
- 部分成功作为任务终态；钱包余额不足只影响对应行或后续行，不回滚已经成功的订单。
- 接入现有 RBAC 权限体系，批量订购创建、任务详情、逐行结果和模板下载权限独立控制。

## Impact

- Affected specs:
  - `bulk-purchase-task`
  - `order-management`
  - `async-task-interaction`（复用现有公共异步任务状态与恢复规则）
- Affected code:
  - `src/api/modules/bulkPurchase.ts`
  - `src/types/api/bulkPurchase.ts`
  - `src/views/order-management/bulk-purchase/index.vue`
  - `src/components/business/BulkPurchaseCreateDialog.vue`（如采用独立弹窗）
  - `src/views/order-management/order-list/index.vue`（批量入口）
  - 静态 Excel 模板资源、路由、菜单、权限和国际化配置
- Dependencies:
  - 后端提供三个批量订购接口及 multipart 鉴权契约。
  - 对象存储上传能力支持批量订单文件和线下支付凭证上传。
  - 需要确认批量订购任务的完整响应字段和并发轮询策略与公共异步任务规范一致。
- Breaking changes:
  - 无。新增 API、页面、权限和任务能力，不修改单笔订单创建接口。
