# Quickstart: 订单状态四字段分离

## 前置条件

1. 数据库执行 `updatesql/sql.md` 中的 ALTER TABLE 语句添加三个新列
2. 历史订单数据手动清空（系统未正式使用）

## 实施顺序

### Step 1: 数据库 & 实体层
- SQL 脚本写入 `updatesql/sql.md`
- PosOrder.java 新增 3 个字段
- PosOrderMapper.xml resultMap + insert/update 添加新字段

### Step 2: 订单创建 & 支付回调
- UserOrderController.createOrder() 设置新字段初始值
- 支付回调中更新 payStatus

### Step 3: 商家操作改造
- 接单：state 0→1
- 出餐：state 1→2，外送额外设 deliveryStatus=0
- 完成（自取/堂食）：state 2→3 + payStatus 0→1

### Step 4: 骑手操作改造
- acceptOrder：deliveryStatus=1
- pickupOrder：deliveryStatus=2
- deliverOrder：deliveryStatus=3 + state=3

### Step 5: 订单取消
- OrderAppealController 改造取消逻辑：state→4

### Step 6: 定时任务改造
- TestTask.java 使用新字段条件

### Step 7: 新列表接口（三端）
- 用户端 UserOrderController.orderList()
- 商家端 PosOrderShOprateController.orderList()
- 骑手端 PosOrderQsOprateController.orderList()

### Step 8: 骑手约束逻辑
- RiderPositionMapper 条件更新

### Step 9: 平台管理端前端
- foodie-admin-vue 订单列表页改造

## 验证方式

每个 Step 完成后：
1. 启动服务确认无编译错误
2. 用 Postman/curl 测试相关接口
3. 检查数据库字段值正确
