6.7 KiB
6.7 KiB
订单管理系统 - 完整实现总结
项目状态:✅ 完成
完整的订单管理系统已成功开发并集成到项目中,包括数据库、后端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 表
- 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 表
- 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. 创建数据库表
# 执行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类型错误已修复
- 订单类型标签返回类型正确
- 订单状态标签返回类型正确
- 所有未使用的变量已清理
测试清单
- ✅ 订单列表查询
- ✅ 订单详情查看
- ✅ 订单创建
- ✅ 患者搜索
- ✅ 订单支付
- ✅ 订单取消
- ✅ 订单退款
- ✅ 订单删除
- ✅ 订单导出
注意事项
- 数据库前缀: 系统使用
la_前缀,确保与项目配置一致 - 患者搜索: 从
tcm_diagnosis诊单表搜索患者 - 创建人ID: 自动从当前登录管理员获取
- 软删除: 订单支持软删除,不会真正删除数据
- 权限控制: 所有操作都需要相应的权限验证
后续扩展
可以考虑的功能扩展:
- 订单统计和报表
- 订单导入功能
- 订单模板
- 自动发票生成
- 订单提醒功能
- 订单评价系统
最后更新: 2026-03-10 系统版本: 1.0.0 状态: 生产就绪 ✅