HaniBlindBox/.kiro/specs/order-management-frontend/requirements.md
2026-01-17 20:21:30 +08:00

140 lines
8.8 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.

# Requirements Document
## Introduction
本文档定义了订单管理模块前端迁移的需求规范。该模块将从老项目PHP ThinkPHP + Layui迁移到新项目ASP.NET Core + Vue 3 + Element Plus。订单管理模块是后台管理系统的核心业务模块之一包含购买订单、发货订单、回收订单、卡单订单等多种订单类型的管理功能。
## Glossary
- **Order_System**: 订单管理系统,负责处理所有订单相关的业务逻辑
- **Buy_Order**: 购买订单,用户购买抽奖的订单记录
- **Shipping_Order**: 发货订单,用户申请发货的订单
- **Recovery_Order**: 回收订单,用户回收奖品的订单
- **Stuck_Order**: 卡单订单,支付成功但未发奖的异常订单
- **Order_List_Page**: 订单列表页面,展示订单数据的主页面
- **Order_Detail_Dialog**: 订单详情弹窗,展示订单详细信息
- **Shipping_Dialog**: 发货弹窗,填写物流信息进行发货
- **Search_Form**: 搜索表单组件,提供订单筛选功能
- **Order_Table**: 订单表格组件,展示订单列表数据
- **API_Module**: 前端API模块封装后端接口调用
## Requirements
### Requirement 1: 购买订单列表
**User Story:** As a 运营人员, I want to 查看用户购买抽奖的订单记录, so that I can 了解用户消费情况和订单状态。
#### Acceptance Criteria
1. WHEN 运营人员访问购买订单页面 THEN THE Order_System SHALL 显示购买订单列表,包含用户信息、订单号、盒子信息、金额详情、时间等字段
2. WHEN 运营人员输入搜索条件用户ID/UID、手机号、订单号、时间范围 THEN THE Order_System SHALL 根据条件筛选并返回匹配的订单列表
3. WHEN 订单列表数据量较大 THEN THE Order_System SHALL 支持分页展示,每页显示可配置数量的记录
4. WHEN 运营人员点击订单详情按钮 THEN THE Order_System SHALL 打开订单详情弹窗,显示订单中奖奖品明细
5. WHEN 运营人员点击导出按钮 THEN THE Order_System SHALL 导出当前筛选条件下的订单数据为CSV文件
### Requirement 2: 购买订单详情
**User Story:** As a 运营人员, I want to 查看订单的中奖奖品明细, so that I can 了解用户抽奖结果。
#### Acceptance Criteria
1. WHEN 运营人员打开订单详情弹窗 THEN THE Order_System SHALL 显示订单基本信息(订单号、用户信息、盒子信息、支付金额)
2. WHEN 订单包含多个奖品 THEN THE Order_System SHALL 按奖品类型分组展示,显示奖品图片、名称、价值、兑换价值、数量
3. WHEN 奖品有不同状态(待处理/已回收/已发货) THEN THE Order_System SHALL 用不同颜色或标签区分显示
### Requirement 3: 卡单订单列表
**User Story:** As a 运营人员, I want to 查看支付成功但未发奖的订单, so that I can 及时处理异常订单。
#### Acceptance Criteria
1. WHEN 运营人员访问卡单订单页面 THEN THE Order_System SHALL 显示所有卡单订单列表
2. WHEN 运营人员输入搜索条件 THEN THE Order_System SHALL 根据条件筛选卡单订单
3. WHEN 卡单订单列表为空 THEN THE Order_System SHALL 显示空状态提示
### Requirement 4: 发货订单列表
**User Story:** As a 运营人员, I want to 管理用户申请发货的订单, so that I can 处理发货流程。
#### Acceptance Criteria
1. WHEN 运营人员访问发货订单页面 THEN THE Order_System SHALL 显示发货订单列表,包含用户信息、订单号、发货数量、总价格、运费、收货信息、订单状态、申请时间、备注
2. WHEN 运营人员输入搜索条件用户ID/UID、手机号、订单号、状态、申请时间范围 THEN THE Order_System SHALL 根据条件筛选发货订单
3. WHEN 发货订单列表加载完成 THEN THE Order_System SHALL 显示统计信息(数据条数、全部价值、本页总发货价值)
4. WHEN 运营人员点击查看详情按钮 THEN THE Order_System SHALL 打开发货订单详情弹窗
5. WHEN 运营人员点击取消发货按钮 THEN THE Order_System SHALL 弹出确认对话框,确认后取消发货订单
6. WHEN 运营人员点击导出按钮 THEN THE Order_System SHALL 导出当前筛选条件下的发货订单数据
### Requirement 5: 发货订单详情与发货操作
**User Story:** As a 运营人员, I want to 查看发货订单详情并进行发货操作, so that I can 完成发货流程。
#### Acceptance Criteria
1. WHEN 运营人员打开发货订单详情弹窗 THEN THE Order_System SHALL 显示订单信息(订单号、收件人、收货手机号、收货地址、订单状态、下单时间)
2. WHEN 发货订单包含多个奖品 THEN THE Order_System SHALL 显示奖品列表,包含奖品图片、名称、价值、兑换价值、数量、发货备注、发货状态
3. WHEN 运营人员点击发货按钮 THEN THE Order_System SHALL 打开发货弹窗,要求填写物流公司和快递单号
4. WHEN 运营人员提交发货信息 THEN THE Order_System SHALL 验证物流公司和快递单号不为空,验证通过后更新发货状态
5. WHEN 发货成功 THEN THE Order_System SHALL 刷新订单详情,显示物流信息(快递名称、快递单号、发货时间)
6. IF 发货信息验证失败 THEN THE Order_System SHALL 显示错误提示,不关闭弹窗
### Requirement 6: 回收订单列表
**User Story:** As a 运营人员, I want to 查看用户回收奖品的订单, so that I can 了解回收情况。
#### Acceptance Criteria
1. WHEN 运营人员访问回收订单页面 THEN THE Order_System SHALL 显示回收订单列表,包含用户信息、兑换金额、兑换数量、兑换时间
2. WHEN 运营人员输入搜索条件用户ID/UID、手机号、时间范围 THEN THE Order_System SHALL 根据条件筛选回收订单
3. WHEN 运营人员点击详情按钮 THEN THE Order_System SHALL 打开回收订单详情弹窗,显示回收的奖品明细
4. WHEN 运营人员点击导出按钮 THEN THE Order_System SHALL 导出当前筛选条件下的回收订单数据
### Requirement 7: 综合订单列表
**User Story:** As a 运营人员, I want to 使用更多筛选条件查询订单, so that I can 进行更精细的订单分析。
#### Acceptance Criteria
1. WHEN 运营人员访问综合订单页面 THEN THE Order_System SHALL 显示综合订单列表,包含订单号、用户信息、盒子详情、金额详情、抽奖情况、支付信息
2. WHEN 运营人员输入搜索条件用户ID、手机号、订单号、支付状态、账号类型、账号状态、时间范围 THEN THE Order_System SHALL 根据条件筛选订单
3. WHEN 运营人员点击详情按钮 THEN THE Order_System SHALL 打开订单详情弹窗
4. WHEN 运营人员点击导出按钮 THEN THE Order_System SHALL 导出当前筛选条件下的订单数据
### Requirement 8: 前端API模块
**User Story:** As a 开发人员, I want to 有统一的API调用模块, so that I can 方便地与后端接口交互。
#### Acceptance Criteria
1. THE API_Module SHALL 定义所有订单相关的TypeScript接口类型
2. THE API_Module SHALL 实现购买订单列表查询、详情查询、导出功能的API调用
3. THE API_Module SHALL 实现发货订单列表查询、详情查询、发货操作、取消发货的API调用
4. THE API_Module SHALL 实现回收订单列表查询、详情查询的API调用
5. THE API_Module SHALL 实现卡单订单列表查询的API调用
6. THE API_Module SHALL 实现综合订单列表查询的API调用
7. WHEN API调用失败 THEN THE API_Module SHALL 返回统一格式的错误信息
### Requirement 9: 路由和权限配置
**User Story:** As a 开发人员, I want to 配置订单管理模块的路由和权限, so that I can 控制页面访问。
#### Acceptance Criteria
1. THE Order_System SHALL 配置购买订单页面路由 `/business/order/buy`
2. THE Order_System SHALL 配置发货订单页面路由 `/business/order/shipping`
3. THE Order_System SHALL 配置回收订单页面路由 `/business/order/recovery`
4. THE Order_System SHALL 配置卡单订单页面路由 `/business/order/stuck`
5. THE Order_System SHALL 配置综合订单页面路由 `/business/order/list`
6. THE Order_System SHALL 为每个页面配置对应的权限标识order:list, order:ship, order:export
### Requirement 10: 后端API补充如需要
**User Story:** As a 开发人员, I want to 确保后端API完整, so that I can 支持前端所有功能。
#### Acceptance Criteria
1. WHEN 前端需要按手机号搜索订单 THEN THE Order_System SHALL 支持手机号筛选参数
2. WHEN 前端需要发货订单统计信息 THEN THE Order_System SHALL 返回统计数据(总条数、总价值)
3. WHEN 前端需要导出发货订单 THEN THE Order_System SHALL 提供发货订单导出API
4. WHEN 前端需要导出回收订单 THEN THE Order_System SHALL 提供回收订单导出API