瀏覽代碼

docs: 现金支付开放堂食/自取的变更记录(027 spec + 030 tab 谓词同步)

qmj 1 月之前
父節點
當前提交
0160a6f6c3

+ 2 - 0
specs/027-offline-transfer-payment/data-model.md

@@ -14,6 +14,8 @@
 | 5 | Apple Pay | 不变 |
 | 5 | Apple Pay | 不变 |
 | **6** | **線下轉賬(新增语义)** | 本功能 |
 | **6** | **線下轉賬(新增语义)** | 本功能 |
 
 
+> **2026-09-21 变更**:现金(4)开放用户端**自取/堂食**下单(原仅商家创建订单可用,外送 type=0 维持仅商家)。pay_status 语义不变:创建时 0,商家 `confirmCashPayment` 确认后置 1;自取/堂食单商家 `completeOrder`(state 2→3)时自动置 1。详见 spec.md 变更记录。
+
 ### PosOrder.pay_status(支付状态)
 ### PosOrder.pay_status(支付状态)
 - 0=未支付,1=已支付。转账单:创建时 0,商家确认收款时 0→1(confirmTransferPayment)。
 - 0=未支付,1=已支付。转账单:创建时 0,商家确认收款时 0→1(confirmTransferPayment)。
 - 自取/堂食转账单:商家完成订单时现有逻辑自动置 1(completeOrder state 2→3)。
 - 自取/堂食转账单:商家完成订单时现有逻辑自动置 1(completeOrder state 2→3)。

+ 22 - 0
specs/027-offline-transfer-payment/spec.md

@@ -122,3 +122,25 @@
 - 骑手运费由骑手与商家线下交接,系统不记录、不结算。
 - 骑手运费由骑手与商家线下交接,系统不记录、不结算。
 - 支付方式值 6 为全新值,无历史数据冲突(历史值域 1-5)。
 - 支付方式值 6 为全新值,无历史数据冲突(历史值域 1-5)。
 - 商家确认收款入口同时面向商家 App 与商家 Web 预留(本期实现接口,Web 端按钮可后续按需补)。
 - 商家确认收款入口同时面向商家 App 与商家 Web 预留(本期实现接口,Web 端按钮可后续按需补)。
+
+---
+
+## 2026-09-21 变更记录:现金支付开放用户端堂食/自取下单
+
+现金(payType=4)原规则「仅商家创建订单可用,客户端下单直接拒绝」调整为:**用户端自取(type=1)/堂食(type=2)可直接以现金下单**;外送(type=0)维持仅商家创建(客户端仍报 `no.paytype.cash.merchant.only`)。
+
+**改动点**(commit `31bb384`,branch test):
+
+1. `UserOrderController.createOrder`:现金限制改为「type 非 1/2 才拒绝」
+2. `UserOrderController.orderList` active tab:线下收款分支 `payType='1'` 扩为 `IN ('1','4')`——现金自取/堂食单在商家确认收款前即可见
+3. `PosOrderShOprateController.orderList` pending tab:同上扩展——否则用户下的现金自取单(state=0)不进商家待受理列表
+4. `UnifiedOrderTab` ACTIVE(SQL 条件与 matches 内存判定同源扩展,常量 `OFFLINE_PAYABLE_PAY_TYPES=['1','4']`)
+5. 测试同步:`OrderListPaymentFilterTest`、`UnifiedOrderTabTest` 补 payType=4 断言(62/62 绿)
+
+**不变的语义**:
+
+- `confirmCashPayment`(商家确认现金收款,payStatus 0→1)流程不变;商家创建现金单路径不变
+- 待付款 tab 仍仅在线支付未付(现金/到付不进待付款)
+- `completeOrder`(自取/堂食完成)自动 payStatus 0→1 不变
+- 用户取消仅限 state=0;现金单未支付、无退款路径
+- LinePayOrderGuard 只拦 LINE Pay 未付单,现金单受理/出餐/完成不受影响

+ 2 - 0
specs/027-offline-transfer-payment/tasks.md

@@ -59,3 +59,5 @@ T007,T010 ──> T011 ──> T012
 ## MVP
 ## MVP
 
 
 US2(T001+T004+T005+T006):确认收款 + 骑手门禁是资金闸门核心;US1 银行信息接口紧随其后(App 展示依赖),US3 标签纯展示可最后。
 US2(T001+T004+T005+T006):确认收款 + 骑手门禁是资金闸门核心;US1 银行信息接口紧随其后(App 展示依赖),US3 标签纯展示可最后。
+
+- [x] T013(2026-09-21 追加)现金支付开放用户端堂食/自取下单:createOrder 放开 type=1/2、用户/商家/统一列表三处 tab 条件扩到 payType 1/4、测试补断言(commit 31bb384,62/62 绿)

+ 1 - 1
specs/030-unified-order-list/data-model.md

@@ -46,7 +46,7 @@
 | tab | 条件 |
 | tab | 条件 |
 |---|---|
 |---|---|
 | unpaid | `payStatus=0 AND payType IN (2,3) AND state≠4 AND afterSaleStatus=0`(仅在线支付未付) |
 | unpaid | `payStatus=0 AND payType IN (2,3) AND state≠4 AND afterSaleStatus=0`(仅在线支付未付) |
-| active | `state IN (0,1,2) AND afterSaleStatus=0 AND (payStatus=1 OR (payType='1' AND type IN (1,2)))` |
+| active | `state IN (0,1,2) AND afterSaleStatus=0 AND (payStatus=1 OR (payType IN ('1','4') AND type IN (1,2)))`(2026-09-21:payType 扩入现金 4,随堂食/自取现金下单开放) |
 | completed | `state=3 AND afterSaleStatus=0` |
 | completed | `state=3 AND afterSaleStatus=0` |
 | cancelled | `state=4 AND afterSaleStatus=0` |
 | cancelled | `state=4 AND afterSaleStatus=0` |
 | refund | `afterSaleStatus>0` |
 | refund | `afterSaleStatus>0` |

+ 1 - 0
specs/030-unified-order-list/tasks.md

@@ -106,6 +106,7 @@ mvn -pl ruoyi-admin -am test -Dtest='XxxTest' -Dsurefire.failIfNoSpecifiedTests=
 ## Phase 7: 追加需求(2026-09-21)——外卖卡片店铺信息修正
 ## Phase 7: 追加需求(2026-09-21)——外卖卡片店铺信息修正
 
 
 - [x] T021 外卖 `storeName` 修正为店铺名称:`UnifiedOrderQueryService` 批量回填由「shId 查 InfoUser 昵称」改为「mdId 查 PosStore.posName」,店铺已删/缺失时回退订单快照 posName/logo;新增 `storeAvatar`(PosStore.logo,同回退)、`goodsCount`(food 快照数组 number 求和,空/非法为 null);DTO/测试/api-contract/data-model 同步
 - [x] T021 外卖 `storeName` 修正为店铺名称:`UnifiedOrderQueryService` 批量回填由「shId 查 InfoUser 昵称」改为「mdId 查 PosStore.posName」,店铺已删/缺失时回退订单快照 posName/logo;新增 `storeAvatar`(PosStore.logo,同回退)、`goodsCount`(food 快照数组 number 求和,空/非法为 null);DTO/测试/api-contract/data-model 同步
+- [x] T022 ACTIVE 谓词线下收款分支扩入现金:`UnifiedOrderTab` `payType='1'` → `IN ('1','4')`(SQL 与 matches 同源,常量改 `OFFLINE_PAYABLE_PAY_TYPES`),配合堂食/自取开放用户现金下单(027 spec 2026-09-21 变更记录,commit 31bb384);测试补 payType=4 判定与 wrapper 断言
 
 
 ---
 ---