Files
zyt/admin/ORDER_SYSTEM_COMPLETE.md
T
2026-03-11 09:49:47 +08:00

298 lines
6.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.
# 订单管理系统 - 完整实现总结
## 项目状态:✅ 完成
完整的订单管理系统已成功开发并集成到项目中,包括数据库、后端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
**状态**: 生产就绪 ✅