298 lines
6.7 KiB
Markdown
298 lines
6.7 KiB
Markdown
# 订单管理系统 - 完整实现总结
|
||
|
||
## 项目状态:✅ 完成
|
||
|
||
完整的订单管理系统已成功开发并集成到项目中,包括数据库、后端API和前端UI。
|
||
|
||
---
|
||
|
||
## 系统架构
|
||
|
||
### 数据库层
|
||
- **表前缀**: `la_` (正确配置)
|
||
- **主表**: `la_order` - 订单主表
|
||
- **详情表**: `la_order_detail` - 订单详情表
|
||
|
||
### 后端层
|
||
- **控制器**: `OrderController` - 处理所有订单操作
|
||
- **业务逻辑**: `OrderLogic` - 订单业务逻辑处理
|
||
- **验证层**: `OrderValidate` - 参数验证
|
||
- **列表层**: `OrderLists` - 列表查询和搜索
|
||
- **模型**: `Order`, `OrderDetail` - 数据模型
|
||
|
||
### 前端层
|
||
- **页面**: `admin/src/views/order/index.vue` - 订单列表和管理页面
|
||
- **API**: `admin/src/api/order.ts` - API接口定义
|
||
|
||
---
|
||
|
||
## 核心功能
|
||
|
||
### 1. 订单管理
|
||
- ✅ 订单列表展示(支持搜索、筛选、分页)
|
||
- ✅ 订单详情查看
|
||
- ✅ 订单创建
|
||
- ✅ 订单编辑
|
||
- ✅ 订单删除
|
||
|
||
### 2. 订单状态管理
|
||
- ✅ 待支付 (status=1)
|
||
- ✅ 已支付 (status=2)
|
||
- ✅ 已取消 (status=3)
|
||
- ✅ 已退款 (status=4)
|
||
|
||
### 3. 订单类型
|
||
- ✅ 挂号费 (order_type=1)
|
||
- ✅ 问诊费 (order_type=2)
|
||
- ✅ 药品费用 (order_type=3)
|
||
|
||
### 4. 支付功能
|
||
- ✅ 支付宝支付
|
||
- ✅ 微信支付
|
||
- ✅ 银行卡支付
|
||
- ✅ 支付状态跟踪
|
||
|
||
### 5. 订单操作
|
||
- ✅ 支付订单
|
||
- ✅ 取消订单
|
||
- ✅ 退款订单
|
||
- ✅ 删除订单
|
||
|
||
### 6. 患者关联
|
||
- ✅ 从诊单表搜索患者
|
||
- ✅ 患者信息展示(姓名、电话、身份证)
|
||
- ✅ 患者关键词搜索
|
||
|
||
### 7. 创建人追踪
|
||
- ✅ 自动记录创建人ID(推广ID)
|
||
- ✅ 创建人信息展示
|
||
|
||
---
|
||
|
||
## 数据库表结构
|
||
|
||
### la_order 表
|
||
```sql
|
||
- id: 主键
|
||
- order_no: 订单号(唯一)
|
||
- patient_id: 患者ID
|
||
- creator_id: 创建人ID(推广ID)
|
||
- order_type: 订单类型 (1-挂号费, 2-问诊费, 3-药品费用)
|
||
- amount: 订单金额
|
||
- status: 订单状态 (1-待支付, 2-已支付, 3-已取消, 4-已退款)
|
||
- payment_method: 支付方式 (alipay, wechat, bank)
|
||
- payment_time: 支付时间
|
||
- remark: 备注
|
||
- create_time: 创建时间
|
||
- update_time: 更新时间
|
||
- delete_time: 删除时间(软删除)
|
||
```
|
||
|
||
### la_order_detail 表
|
||
```sql
|
||
- id: 主键
|
||
- order_id: 订单ID
|
||
- related_type: 关联类型 (appointment-挂号, diagnosis-问诊, medicine-药品)
|
||
- related_id: 关联ID
|
||
- quantity: 数量
|
||
- unit_price: 单价
|
||
- total_price: 总价
|
||
- create_time: 创建时间
|
||
```
|
||
|
||
---
|
||
|
||
## API 端点
|
||
|
||
### 订单列表
|
||
- **URL**: `/order.order/lists`
|
||
- **方法**: GET
|
||
- **参数**:
|
||
- order_no: 订单号
|
||
- patient_keyword: 患者关键词
|
||
- order_type: 订单类型
|
||
- status: 订单状态
|
||
- create_time_start: 创建时间开始
|
||
- create_time_end: 创建时间结束
|
||
- page_no: 页码
|
||
- page_size: 每页数量
|
||
|
||
### 订单详情
|
||
- **URL**: `/order.order/detail`
|
||
- **方法**: GET
|
||
- **参数**: id (订单ID)
|
||
|
||
### 创建订单
|
||
- **URL**: `/order.order/create`
|
||
- **方法**: POST
|
||
- **参数**:
|
||
- patient_id: 患者ID
|
||
- order_type: 订单类型
|
||
- amount: 订单金额
|
||
- remark: 备注(可选)
|
||
- details: 订单详情数组
|
||
|
||
### 编辑订单
|
||
- **URL**: `/order.order/edit`
|
||
- **方法**: POST
|
||
- **参数**: id, remark
|
||
|
||
### 支付订单
|
||
- **URL**: `/order.order/pay`
|
||
- **方法**: POST
|
||
- **参数**: id, payment_method
|
||
|
||
### 取消订单
|
||
- **URL**: `/order.order/cancel`
|
||
- **方法**: POST
|
||
- **参数**: id
|
||
|
||
### 退款订单
|
||
- **URL**: `/order.order/refund`
|
||
- **方法**: POST
|
||
- **参数**: id
|
||
|
||
### 删除订单
|
||
- **URL**: `/order.order/delete`
|
||
- **方法**: POST
|
||
- **参数**: id
|
||
|
||
### 导出订单
|
||
- **URL**: `/order.order/export`
|
||
- **方法**: GET
|
||
- **参数**: 同列表接口
|
||
|
||
### 搜索患者
|
||
- **URL**: `/tcm.diagnosis/searchPatient`
|
||
- **方法**: GET
|
||
- **参数**:
|
||
- keyword: 搜索关键词
|
||
- page_no: 页码
|
||
- page_size: 每页数量
|
||
|
||
---
|
||
|
||
## 前端功能
|
||
|
||
### 订单列表页面
|
||
- 搜索表单(订单号、患者信息、订单类型、订单状态、创建时间)
|
||
- 数据表格(显示订单信息)
|
||
- 分页控件
|
||
- 导出功能
|
||
|
||
### 订单操作
|
||
- 查看详情
|
||
- 支付订单(选择支付方式)
|
||
- 取消订单
|
||
- 退款订单
|
||
- 删除订单
|
||
|
||
### 创建订单
|
||
- 患者选择(远程搜索)
|
||
- 订单类型选择
|
||
- 订单金额输入
|
||
- 备注输入
|
||
- 订单详情管理(添加/删除项目)
|
||
- 自动计算总价
|
||
|
||
---
|
||
|
||
## 文件清单
|
||
|
||
### 后端文件
|
||
- `server/app/common/model/Order.php` - 订单模型
|
||
- `server/app/common/model/OrderDetail.php` - 订单详情模型
|
||
- `server/app/adminapi/controller/order/OrderController.php` - 订单控制器
|
||
- `server/app/adminapi/logic/order/OrderLogic.php` - 订单业务逻辑
|
||
- `server/app/adminapi/validate/order/OrderValidate.php` - 订单验证
|
||
- `server/app/adminapi/lists/order/OrderLists.php` - 订单列表
|
||
- `server/database/migrations/2024_03_10_create_order_tables.php` - 数据库迁移
|
||
|
||
### 前端文件
|
||
- `admin/src/views/order/index.vue` - 订单列表页面
|
||
- `admin/src/api/order.ts` - 订单API接口
|
||
|
||
### 数据库文件
|
||
- `admin/order.sql` - 订单表创建脚本
|
||
|
||
### 文档文件
|
||
- `admin/README_ORDER.md` - 快速开始指南
|
||
- `admin/PATIENT_SEARCH_API.md` - 患者搜索API文档
|
||
- `admin/INSTALLATION_CHECKLIST.md` - 安装检查清单
|
||
|
||
---
|
||
|
||
## 安装步骤
|
||
|
||
### 1. 创建数据库表
|
||
```bash
|
||
# 执行SQL脚本
|
||
mysql -u root -p database_name < admin/order.sql
|
||
```
|
||
|
||
### 2. 配置权限
|
||
在后台权限管理中添加以下权限:
|
||
- `order.order/lists` - 订单列表
|
||
- `order.order/detail` - 订单详情
|
||
- `order.order/create` - 创建订单
|
||
- `order.order/edit` - 编辑订单
|
||
- `order.order/pay` - 支付订单
|
||
- `order.order/cancel` - 取消订单
|
||
- `order.order/refund` - 退款订单
|
||
- `order.order/delete` - 删除订单
|
||
- `order.order/export` - 导出订单
|
||
|
||
### 3. 菜单配置
|
||
在后台菜单管理中添加订单管理菜单,指向 `/order` 路由
|
||
|
||
---
|
||
|
||
## 类型检查
|
||
|
||
✅ 所有TypeScript类型错误已修复
|
||
- 订单类型标签返回类型正确
|
||
- 订单状态标签返回类型正确
|
||
- 所有未使用的变量已清理
|
||
|
||
---
|
||
|
||
## 测试清单
|
||
|
||
- ✅ 订单列表查询
|
||
- ✅ 订单详情查看
|
||
- ✅ 订单创建
|
||
- ✅ 患者搜索
|
||
- ✅ 订单支付
|
||
- ✅ 订单取消
|
||
- ✅ 订单退款
|
||
- ✅ 订单删除
|
||
- ✅ 订单导出
|
||
|
||
---
|
||
|
||
## 注意事项
|
||
|
||
1. **数据库前缀**: 系统使用 `la_` 前缀,确保与项目配置一致
|
||
2. **患者搜索**: 从 `tcm_diagnosis` 诊单表搜索患者
|
||
3. **创建人ID**: 自动从当前登录管理员获取
|
||
4. **软删除**: 订单支持软删除,不会真正删除数据
|
||
5. **权限控制**: 所有操作都需要相应的权限验证
|
||
|
||
---
|
||
|
||
## 后续扩展
|
||
|
||
可以考虑的功能扩展:
|
||
- 订单统计和报表
|
||
- 订单导入功能
|
||
- 订单模板
|
||
- 自动发票生成
|
||
- 订单提醒功能
|
||
- 订单评价系统
|
||
|
||
---
|
||
|
||
**最后更新**: 2026-03-10
|
||
**系统版本**: 1.0.0
|
||
**状态**: 生产就绪 ✅
|