plan.md 3.1 KB

Implementation Plan: 線下轉賬支付(payType=6)

Branch: test | Date: 2026-09-03 | Spec: 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)

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)

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

无宪法违规,无需记录。