quickstart.md 3.4 KB

Quickstart: 可配置支付方式(031-pay-method-config)

Date: 2026-09-11 | Spec: spec.md | Contracts: contracts/api.md

验证场景按 spec Success Criteria 展开。环境要求:本地编译用 JDK21(C:\Users\qmj\.jdks\graalvm-jdk-21.0.7 临时 JAVA_HOME);数据库变更已手动执行 updatesql/sql.md 中 031 各条;本地 Redis 可用(起服务时)。

0. 编译与单测

export JAVA_HOME="C:\Users\qmj\.jdks\graalvm-jdk-21.0.7" && export PATH="$JAVA_HOME/bin:$PATH"
mvn compile -q -DskipTests        # 编译
mvn test -pl ruoyi-admin -am -Dtest='PaymentMethodGate*,PayMethod*,BankCard*,FlashDelivery*' -Dsurefire.failIfNoSpecifiedTests=false

重点单测(对照 FR):

  • 闸门服务:平台关/商家未选/不就绪 三独立原因都拒绝;缺行=开;CARD_OMG 组 2+5 联动;COD 默认开;现金不校验
  • 三下单入口:各传被禁方式 → pay.method.not.available 国际化消息
  • 抢单过滤:骑手只接受现金 → 银行转账单不出现;NULL=全部
  • 银行卡:启用新卡停旧卡(事务);删除启用卡后线下转账不就绪
  • 迁移:三字段齐全才生成启用卡

1. 平台开关即时生效(SC-001)

  1. 平台端"支付方式设置"页:关闭 LINE_PAY × MERCHANT
  2. 用户端任意商家结算页刷新 → LINE Pay 消失
  3. 重新开启 → 恢复(无重启)
  4. LINE_PAY × RIDER_FLASH 保持开 → 闪送下单仍可选 LINE Pay(维度独立交叉验证)

2. 下单校验堵漏(SC-002)

用 curl 直连(绕过前端),向 /system/order/createOrder 提交 paymentMethod=3(平台已关 LINE_PAY):

  • 预期:HTTP 200 但 code=500,msg 为所请求语言的"该支付方式当前不可用"
  • zh-TW / en / vi 各请求一次(Accept-Language 或用户语言上下文),文案随语言切换

3. 存量零回归(SC-003)

  1. 升级部署后不执行任何设置操作
  2. 抽样存量商家下单(各支付方式)、商家建单(到付)、闪送下单(现金/转账)
  3. 行为与升级前一致;SELECT COUNT(*) FROM payment_method_config 可为 0(缺行=开)
  4. 抽样骑手(未设置 flash_pay_methods)抢单列表 → 全部平台开放方式的订单可见

4. 027 迁移不回退(SC-004)

-- 迁移后核对(测试库只读冒烟,pymysql)
SELECT COUNT(*) FROM info_user
WHERE bank_name<>'' AND bank_account_no<>'' AND bank_account_name<>''
  AND user_id NOT IN (SELECT user_id FROM info_bank_card WHERE is_active=1);
-- 预期 0(三字段齐全者 100% 迁移为启用卡)

再调 GET /chanting/store/bankInfo?id={已迁移商家门店} → 三字段值与迁移前一致;平台关 OFFLINE_TRANSFER×MERCHANT 再调 → data=null(老客户端自然隐藏)。

5. 抢单过滤与确认收款(SC-005 / FR-013)

  1. 骑手 A 设置只接受 COD;用户创建 LINE Pay 闪送单
  2. 骑手 A 新任务列表无此单;骑手 B(未设置)可见
  3. 骑手 B 接单→取件→送达(不确认收款),用户确认收货 → 订单正常完成,收款状态=未收
  4. 骑手 B 补确认收款 → payment_status=1,flash_delivery_order_log 增 RIDER 操作行;重复调用幂等成功

6. 前端页面冒烟

  • admin-vue 支付方式设置页:矩阵渲染、开关切换、@Log 入库、四语言切换无 key 裸奔
  • foodie-store 支付设置页:勾选保存→再进回显;银行卡增删改启用;四语言