This commit is contained in:
Your Name
2026-03-11 09:49:47 +08:00
parent 02ae537b4c
commit 38ad60f4bb
290 changed files with 36917 additions and 123 deletions
+248
View File
@@ -0,0 +1,248 @@
# 订单系统 - 快速开始
## 🎯 概述
完整的订单管理系统,包括:
- 订单创建、编辑、删除
- 支付、取消、退款操作
- 订单列表、搜索、筛选
- 订单详情查看
- 订单导出
## ⚡ 5分钟快速安装
### 1️⃣ 创建数据库表(必须)
**复制以下 SQL 到你的数据库管理工具执行:**
```sql
-- 订单表
CREATE TABLE IF NOT EXISTS `la_order` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`order_no` varchar(50) NOT NULL COMMENT '订单号',
`patient_id` int(11) NOT NULL COMMENT '患者ID',
`creator_id` int(11) NOT NULL COMMENT '创建人ID(推广ID',
`order_type` tinyint(1) NOT NULL COMMENT '订单类型 1-挂号费 2-问诊费 3-药品费用',
`amount` decimal(10, 2) NOT NULL COMMENT '订单金额',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '订单状态 1-待支付 2-已支付 3-已取消 4-已退款',
`payment_method` varchar(20) DEFAULT NULL COMMENT '支付方式 alipay-支付宝 wechat-微信 bank-银行卡',
`payment_time` datetime DEFAULT NULL COMMENT '支付时间',
`remark` varchar(500) DEFAULT '' COMMENT '备注',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`),
KEY `idx_patient` (`patient_id`),
KEY `idx_creator` (`creator_id`),
KEY `idx_status` (`status`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
-- 订单详情表
CREATE TABLE IF NOT EXISTS `la_order_detail` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`order_id` int(11) NOT NULL COMMENT '订单ID',
`related_type` varchar(20) NOT NULL COMMENT '关联类型 appointment-挂号 diagnosis-问诊 medicine-药品',
`related_id` int(11) NOT NULL COMMENT '关联ID',
`quantity` int(11) DEFAULT '1' COMMENT '数量',
`unit_price` decimal(10, 2) NOT NULL COMMENT '单价',
`total_price` decimal(10, 2) NOT NULL COMMENT '总价',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_order` (`order_id`),
KEY `idx_related` (`related_type`, `related_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单详情表';
```
### 2️⃣ 验证表创建
执行以下 SQL 检查表是否创建成功:
```sql
SHOW TABLES LIKE 'la_order%';
DESC la_order;
DESC la_order_detail;
```
### 3️⃣ 添加权限节点
在后端权限管理系统中添加以下权限:
```
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 - 导出订单
```
### 4️⃣ 完成!
现在你可以访问订单页面了。
## 📂 文件位置
### 前端
```
admin/src/api/order.ts # API 接口
admin/src/views/order/index.vue # 列表页面
```
### 后端
```
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
```
## 🔌 API 端点
```
GET /order.order/lists - 订单列表
GET /order.order/detail - 订单详情
POST /order.order/create - 创建订单
POST /order.order/edit - 编辑订单
POST /order.order/pay - 支付订单
POST /order.order/cancel - 取消订单
POST /order.order/refund - 退款订单
POST /order.order/delete - 删除订单
GET /order.order/export - 导出订单
```
## 📋 订单类型
| 类型 | 值 | 说明 |
|------|-----|------|
| 挂号费 | 1 | 医生挂号费用 |
| 问诊费 | 2 | 医生问诊费用 |
| 药品费用 | 3 | 药品购买费用 |
## 📊 订单状态
| 状态 | 值 | 说明 |
|------|-----|------|
| 待支付 | 1 | 订单已创建,等待支付 |
| 已支付 | 2 | 订单已支付 |
| 已取消 | 3 | 订单已取消 |
| 已退款 | 4 | 订单已退款 |
## 💳 支付方式
| 方式 | 值 | 说明 |
|------|-----|------|
| 支付宝 | alipay | 支付宝支付 |
| 微信 | wechat | 微信支付 |
| 银行卡 | bank | 银行卡支付 |
## 🚀 使用示例
### 创建订单
```typescript
import { orderCreate } from '@/api/order'
const result = await orderCreate({
patient_id: 1,
order_type: 1,
amount: 100.00,
remark: '挂号费',
details: [
{
related_type: 'appointment',
related_id: 1,
quantity: 1,
unit_price: 100.00,
total_price: 100.00
}
]
})
```
### 支付订单
```typescript
import { orderPay } from '@/api/order'
await orderPay({
id: 1,
payment_method: 'alipay'
})
```
### 获取订单列表
```typescript
import { orderLists } from '@/api/order'
const result = await orderLists({
page_no: 1,
page_size: 15,
order_type: 1,
status: 1
})
```
## ❓ 常见问题
### Q: 表不存在错误?
A: 执行上面的 SQL 脚本创建表。
### Q: 控制器找不到?
A: 确保文件在 `server/app/adminapi/controller/order/` 目录中。
### Q: 权限不足?
A: 在权限管理系统中添加相应的权限节点。
### Q: 如何删除表?
A: 执行以下 SQL
```sql
DROP TABLE IF EXISTS la_order_detail;
DROP TABLE IF EXISTS la_order;
```
## 📚 详细文档
- `ORDER_SYSTEM_GUIDE.md` - 完整系统指南
- `ORDER_SETUP.md` - 安装指南
- `INSTALL_ORDER_TABLES.md` - 表安装指南
- `ORDER_IMPLEMENTATION_COMPLETE.md` - 实现完成说明
## ✨ 特性
✅ 完整的 CRUD 操作
✅ 支付状态管理
✅ 订单详情关联
✅ 创建人追踪(推广 ID
✅ 软删除支持
✅ 事务处理
✅ 完整的验证规则
✅ 搜索和筛选
✅ 数据导出
## 🔒 安全特性
- 权限验证
- 输入验证
- SQL 注入防护
- 事务处理
- 软删除
## 📞 需要帮助?
1. 检查 `INSTALL_ORDER_TABLES.md` 了解表安装
2. 查看 `ORDER_SYSTEM_GUIDE.md` 了解完整功能
3. 参考其他模块的实现作为参考
---
**版本**: 1.0.0
**状态**: ✅ 完成
**最后更新**: 2024-03-10