# Implementation Plan: 線下轉賬支付（payType=6）

**Branch**: `test` | **Date**: 2026-09-03 | **Spec**: [spec.md](spec.md)

**Input**: Feature specification from `/specs/027-offline-transfer-payment/spec.md`

## Summary

收银台新增「線下支付」：商家银行三字段齐全才显示，选中展开收款账户卡片；下单 payType=6；商家确认收款（payStatus 0→1）后推送附近骑手、解锁骑手接单；金额含运费全归商家，骑手到店线下收运费。**下单透传、骑手抢单池过滤（payStatus=1）均零改动**；核心改动 = 收款账户查询接口 + 确认收款接口（挂骑手通知钩子）+ 骑手接单防绕过门禁 + 商家 Web 支付标签。零 DDL。App 端不在工作区，交付接口与交互说明。

## Technical Context

**Language/Version**: Java 21（Spring Boot + MyBatis-Plus），前端 Vue2 + Element UI
**Primary Dependencies**: ruoyi-admin（改动集中）/ ruoyi-system（仅常量）/ foodie-store（标签）
**Storage**: MySQL，零 DDL（复用 pos_order.pay_type/pay_status、info_user 银行三字段）
**Testing**: mvn compile（JDK21）+ curl 冒烟（quickstart.md）+ review 子代理
**Target Platform**: 商家/骑手 App（复用接口）、商家 Web（foodie-store）
**Performance Goals**: N/A（低频操作，与现有订单接口同级）
**Constraints**: 不动现金确认/线上支付链路；后端文件 CRLF，Python 脚本编辑；注释禁 `*/`
**Scale/Scope**: 后端 4 文件 + i18n 5 properties + 前端 5 文件

## Constitution Check

`​.specify/memory/constitution.md` 为未填写的模板占位（无项目宪法约束）→ 无门槛项，通过。

## Project Structure

### Documentation (this feature)

```text
specs/027-offline-transfer-payment/
├── plan.md              # 本文件
├── research.md          # 决策与依据（D1-D9）
├── data-model.md        # 字段语义与状态机（零 DDL）
├── quickstart.md        # 冒烟验证场景
├── contracts/api.md     # 接口契约 + App 交互说明
└── tasks.md             # /speckit-tasks 生成
```

### Source Code (repository root)

```text
ruoyi-admin/src/main/java/com/ruoyi/app/
├── order/OrderLifecycleService.java          # +PAY_TYPE_TRANSFER 常量
├── order/PosOrderShOprateController.java     # +confirmTransferPayment（注入 DeliveryOrderNotificationService）
├── order/PosOrderQsOprateController.java     # acceptOrder +转账单门禁
└── mendian/PosStoreController.java           # +bankInfo 收款账户查询
ruoyi-admin/src/main/resources/i18n/           # 4 个新 key × 5 份 properties
E:/QtwCode/foodie/foodie-store/src/
├── views/index.vue                           # paymentTypeLabel +6
└── lang/{zh,tw,en,vi}.js                     # index.OfflineTransfer ×4
```

**Structure Decision**: 全部落在现有控制器/服务的既有模式上（银行接口随门店控制器、确认收款随商家订单操作控制器、门禁随骑手控制器），不新建类。

## Complexity Tracking

无宪法违规，无需记录。
