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 可用(起服务时)。
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):
pay.method.not.available 国际化消息LINE_PAY × MERCHANTLINE_PAY × RIDER_FLASH 保持开 → 闪送下单仍可选 LINE Pay(维度独立交叉验证)用 curl 直连(绕过前端),向 /system/order/createOrder 提交 paymentMethod=3(平台已关 LINE_PAY):
SELECT COUNT(*) FROM payment_method_config 可为 0(缺行=开)-- 迁移后核对(测试库只读冒烟,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(老客户端自然隐藏)。
COD;用户创建 LINE Pay 闪送单