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