# Data Model: 線下轉賬支付

**日期**：2026-09-03 | **结论**：零数据库变更，全部复用现有字段

## 字段语义（现有，不变）

### PosOrder.pay_type（支付方式）
| 值 | 含义 | 本功能关系 |
|---|---|---|
| 1 | 外送到付 | 不变 |
| 2 | 信用卡（OMG 渠道） | 不变 |
| 3 | LINE Pay | 不变 |
| 4 | 现金（到店/当面，商家确认收款已有 confirmCashPayment） | 不变，与新接口互不影响 |
| 5 | Apple Pay | 不变 |
| **6** | **線下轉賬（新增语义）** | 本功能 |

### PosOrder.pay_status（支付状态）
- 0=未支付，1=已支付。转账单：创建时 0，商家确认收款时 0→1（confirmTransferPayment）。
- 自取/堂食转账单：商家完成订单时现有逻辑自动置 1（completeOrder state 2→3）。

### PosOrder.collect_payment
- 到付=1；转账单不设（createOrder 只在 paymentMethod=1 时设置，透传 6 不触发）。

## 商家收款账户（数据源，已有表）

`info_user`（商家主账号）：
- `bank_account_name` 帳戶名稱（2026-09-03 加）
- `bank_name` 銀行名稱（下拉字典 taiwan_bank_list）
- `bank_account_no` 銀行帳號

查询路径：`pos_store.user_id → info_user`；商家级，连锁门店共享。任一为空 → 接口返回 null → 收银台隐藏选项。

## 状态机（现有，不变）

```
转账单（外送 type=0）：
下单(state=0, payStatus=0, deliveryStatus=0)
  → 商家确认收款(payStatus→1) + notifyOrderAvailable 推骑手
  → 骑手接单(deliveryStatus=1)
  → 商家接单(state→1)、出餐(state→2)        ← requireRiderAssigned 现状约束
  → 骑手取餐(deliveryStatus=2, 到店向商家收运费[线下])
  → 骑手送达(deliveryStatus=3, state→3)
```

骑手抢单池可见条件（现有查询已含）：type=0 && deliveryStatus=0 && state=0 && **payStatus=1** && afterSaleStatus=0 && qsId IS NULL → 转账单确认前自动不可见。

## 新增常量

`OrderLifecycleService.PAY_TYPE_TRANSFER = "6"`（与 PAY_TYPE_CASH 同文件同风格）。
