data-model.md 2.0 KB

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 同文件同风格)。