feat(merchant): 商户收款能力就绪后才允许支付
实现工单 01(商户进件与收款能力就绪)。
- 新增 MerchantPaymentReadinessService,作为“该商户能否收款”的唯一判定:
进件已通过 + 银行卡 token 有效 + 子商户状态 NORMAL + 自动结算已关闭 +
取现开关已开通
- 新增 HuifuMerchantCapabilityGateway,通过 v2.merchant.basicdata.query 读取
子商户配置并落库快照(V130 迁移 + SchemaInitializer 兜底加列)
- 在 AppOrderPortalService 中拦截未就绪商户创建需支付订单
- 进件回调与绑卡回调保持幂等:已决记录不会被改写,晚到通知不会覆盖终态
- 为后台结算页提供能力查询/刷新接口,并定时刷新过期快照
测试:MerchantPaymentReadinessServiceTests、MerchantSettlementCallbackIdempotencyTests、
AppOrderPortalServiceTests 均通过。整套测试需指向 MySQL(TEST_DATASOURCE_*),因为部分
迁移使用了 H2 无法解析的 MySQL 专有语法。