Files
zyt/admin/ORDER_SIMPLIFICATION_UPDATE.md
T
2026-03-11 14:33:49 +08:00

217 lines
4.6 KiB
Markdown

# 订单系统 - 简化更新
## 更新说明
根据需求,订单系统已简化,移除了订单详情表功能。
---
## 变更内容
### 前端变更
#### 1. 创建订单弹窗简化
- ❌ 移除了订单详情管理表格
- ❌ 移除了"添加订单项"功能
- ✅ 保留了基本信息:患者、订单类型、金额、备注
#### 2. 订单详情弹窗简化
- ❌ 移除了订单详情项表格
- ✅ 保留了订单基本信息展示
#### 3. 移除的函数
- `addOrderDetail()` - 添加订单项
- `removeOrderDetail()` - 删除订单项
- `updateDetailTotal()` - 更新订单项总价
- `getRelatedTypeText()` - 获取关联类型文本
#### 4. 简化的数据结构
```javascript
// 之前
createForm = {
patient_id: '',
order_type: '',
amount: 0,
remark: '',
details: [] // ❌ 移除
}
// 现在
createForm = {
patient_id: '',
order_type: '',
amount: 0,
remark: ''
}
```
### 后端变更
#### 1. OrderLogic 简化
- ❌ 移除了事务处理(不再需要创建订单详情)
- ❌ 移除了订单详情的创建逻辑
- ❌ 移除了订单详情的删除逻辑
- ✅ 保留了订单的基本CRUD操作
#### 2. OrderLists 简化
- ❌ 移除了 `details` 关联加载
- ✅ 保留了 `patient``creator` 关联
#### 3. 数据库表
-`la_order` 表保留(主表)
- ⚠️ `la_order_detail` 表可选(不再使用)
---
## 创建订单流程
### 简化后的流程
```
1. 用户点击"创建订单"
2. 打开创建订单弹窗
3. 搜索患者 → 调用 /tcm.diagnosis/searchPatient
4. 选择患者、类型、金额、备注
5. 提交 → 调用 /order.order/create
6. 后端创建订单
7. 返回成功,刷新列表
```
### API 请求示例
```bash
POST /order.order/create
{
"patient_id": 1,
"order_type": 1,
"amount": 100.00,
"remark": "备注信息"
}
```
---
## 文件变更清单
### 前端文件
-`admin/src/views/order/index.vue` - 已更新
-`admin/src/api/order.ts` - 无需更改
### 后端文件
-`server/app/adminapi/logic/order/OrderLogic.php` - 已更新
-`server/app/adminapi/lists/order/OrderLists.php` - 已更新
-`server/app/adminapi/controller/order/OrderController.php` - 无需更改
-`server/app/adminapi/validate/order/OrderValidate.php` - 无需更改
### 数据库文件
- ⚠️ `admin/order.sql` - 可选更新(移除 la_order_detail 表)
---
## 代码质量
✅ 所有 TypeScript 类型检查通过
✅ 无编译错误
✅ 无运行时错误
✅ 所有未使用的变量已清理
---
## 向后兼容性
### 数据库
- 如果已创建 `la_order_detail` 表,可以保留(不会被使用)
- 或者执行以下 SQL 删除:
```sql
DROP TABLE IF EXISTS `la_order_detail`;
```
### API
- 创建订单 API 不再接受 `details` 参数
- 订单详情 API 不再返回 `details` 字段
---
## 迁移指南
### 如果已有订单数据
#### 1. 保留现有数据
```sql
-- 保留 la_order_detail 表,但不再使用
-- 现有数据不受影响
```
#### 2. 清理订单详情表
```sql
-- 可选:删除订单详情表
DROP TABLE IF EXISTS `la_order_detail`;
```
#### 3. 更新应用代码
- 部署新的前端代码
- 部署新的后端代码
- 清除浏览器缓存
---
## 功能对比
| 功能 | 简化前 | 简化后 |
|------|--------|--------|
| 创建订单 | ✅ 支持详情项 | ✅ 仅基本信息 |
| 查看详情 | ✅ 显示详情项 | ✅ 仅基本信息 |
| 支付订单 | ✅ | ✅ |
| 取消订单 | ✅ | ✅ |
| 退款订单 | ✅ | ✅ |
| 删除订单 | ✅ | ✅ |
| 导出订单 | ✅ | ✅ |
---
## 性能改进
- ⚡ 减少数据库查询(不需要加载订单详情)
- ⚡ 简化前端逻辑(减少状态管理)
- ⚡ 减少网络传输(更小的响应体)
---
## 测试清单
- ✅ 创建订单 - 仅包含基本信息
- ✅ 查看列表 - 正常显示
- ✅ 查看详情 - 不显示详情项
- ✅ 支付订单 - 正常工作
- ✅ 取消订单 - 正常工作
- ✅ 退款订单 - 正常工作
- ✅ 删除订单 - 正常工作
- ✅ 导出订单 - 正常工作
---
## 常见问题
### Q: 为什么移除订单详情功能?
A: 根据需求简化系统,订单只需要记录基本信息(患者、类型、金额)。
### Q: 现有的订单详情数据怎么办?
A: 可以保留 `la_order_detail` 表,但新系统不会使用。
### Q: 能否恢复订单详情功能?
A: 可以,需要恢复相关代码和数据库表。
### Q: 订单金额如何计算?
A: 直接输入,不再通过订单详情项自动计算。
---
## 版本信息
- **更新版本**: 1.1.0
- **更新日期**: 2026-03-10
- **更新类型**: 功能简化
- **状态**: ✅ 完成
---
**更新完成**