Date: 2026-09-11 | Spec: spec.md
本文记录实现前核对的代码现状(含行号锚点)与既定决策,纠正旧记忆中过时的事实。
| 值 | 含义 | 备注 |
|---|---|---|
| 1 | 到付 | 商家建单固定用它(PosOrderController.java:266/1226 setPayType("1")) |
| 2 | 信用卡(OMG) | OrderLifecycleService.isCardWalletPayType(PosOrderController.java:668) |
| 3 | LINE Pay | LinePayService.PAY_TYPE_LINE(PosOrderController.java:676) |
| 4 | 现金 | 仅商家建单场景;闪送也已用作"现金" |
| 5 | Apple Pay(OMG) | 与 2 同为 OMG 渠道 |
| 6 | 线下转账 | 027 引入 |
UserOrderController.java:261 posOrder.setPayType(input.getPaymentMethod()) —— 用户下单传什么存什么,零校验。/addorder)固定到付 1,无支付方式选择。闪送已有支付字段与逻辑(近期提交"闪送订单增加支付方式字段"+"修改normalizePayType"):
FlashDeliveryOrder.payType 已存在(FlashDeliveryOrder.java,注释:4=现金、6=线下转账)FlashDeliveryApplicationService.normalizePayType(...) 当前为透传(白名单校验被注释掉),缺省默认现金FlashDeliveryOrderView.payType、骑手列表 FlashDeliveryRiderOrderListView.payType 均已返回GET /chanting/store/bankInfo?id={storeId}(匿名)——pos_store.id → user_id → info_user,返回 bankAccountName / bankName / bankAccountNo 三字段;客户端 data != null 才显示线下支付(详见 specs/027-offline-transfer-payment/contracts/api.md)/system/orderShOprate/confirmTransferPayment(商家确认,订单级;031 的骑手确认收款是闪送订单级,二者并存不冲突)InfoUser 银行相关字段:bankAccount(185)、bankPhoto(193)、bankAccountName(197)、bankName(199)、bankAccountNo(205)。027 转账展示用的三字段 = bankName + bankAccountNo + bankAccountName。pos_store_omg(/system/storeOmg 管理)pos_store_line_payfoodie-admin-vue/src/views/mendian/storePayment(OmgTab/LinePayTab)——031 的平台开关页是独立新页(方式×维度开关),不复用该页taiwan_bank_list 已存在,且有读取先例(InfoUserController.java:815-821,query.setDictType("taiwan_bank_list"))foodie-store/src/views/SelfDeliverySettings.vue(029)sys_config 单 key;本期改用结构化表(已决策),理由:方式×维度矩阵、带排序、可逐行改info_user/pos_store_omg/pos_store_line_pay/info_bank_card(全在 ruoyi-system)→ 闸门服务放 ruoyi-system,Controller 调用在 ruoyi-admin(符合 admin→system 单向依赖)E:\QtwCode\foodie\foodie-admin-vue(新页"支付方式设置",四语言)E:\QtwCode\foodie\foodie-store(新页"支付设置"= 方式勾选 + 银行卡管理,vue-i18n 四语言 src/lang/)来源:2026-09-09 对话定稿 13 项 + 2026-09-11 补充 2 项,全文见 spec.md。
bankInfo 接口保留、结构不变、改读启用卡、套闸门info_bank_card 挂 info_user,商家/骑手通用,多卡同时仅一张 is_active,启用新卡停旧卡;付款方只见启用卡INSERT...SELECT 迁成一张启用卡;就绪度判据从"三字段齐全"改"存在启用卡"updatesql/sql.md,开发者手动执行pay_type 列扩展值域(不新增列);仅新增 payment_statusnormalizePayType 透传行为改为调用闸门校验方法(补回被注释掉的白名单 + 三层闸门)bankInfo 返回结构与字段名完全不变,仅数据源与可见性判断变化PaymentMethodGateService(ruoyi-system),提供 assertUsable(...)(校验,抛国际化异常)与 listAvailable(...)(结算页可选项)两个核心方法