yeg
2026-09-12 41cf4fe69e47b79de8208a06815e74895d74777a
refs
用户 yeg <1347747024@qq.com>
星期六, 九月 12, 2026 12:58 +0800
提交者 yeg <1347747024@qq.com>
星期六, 九月 12, 2026 12:58 +0800
提交41cf4fe69e47b79de8208a06815e74895d74777a
目录 b38864e12b79770e2a60c056f21193b40535fd54 目录 | zip | gz
parent 00b1c49e3ab8b7ec9000040d38d1e14e6ad241ce 查看 | 对比
feat(merchant): 商户收款能力就绪后才允许支付

实现工单 01(商户进件与收款能力就绪)。

- 新增 MerchantPaymentReadinessService,作为“该商户能否收款”的唯一判定:
进件已通过 + 银行卡 token 有效 + 子商户状态 NORMAL + 自动结算已关闭 +
取现开关已开通
- 新增 HuifuMerchantCapabilityGateway,通过 v2.merchant.basicdata.query 读取
子商户配置并落库快照(V130 迁移 + SchemaInitializer 兜底加列)
- 在 AppOrderPortalService 中拦截未就绪商户创建需支付订单
- 进件回调与绑卡回调保持幂等:已决记录不会被改写,晚到通知不会覆盖终态
- 为后台结算页提供能力查询/刷新接口,并定时刷新过期快照

测试:MerchantPaymentReadinessServiceTests、MerchantSettlementCallbackIdempotencyTests、
AppOrderPortalServiceTests 均通过。整套测试需指向 MySQL(TEST_DATASOURCE_*),因为部分
迁移使用了 H2 无法解析的 MySQL 专有语法。
7个文件已添加
11个文件已修改
1083 ■■■■■ 已修改文件
.scratch/automatic-withdrawal/issues/01-merchant-readiness.md 36 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/docs/huifu-payment-integration.md 69 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/admin/AdminManagementController.java 2 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantSettlementAdminService.java 10 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingSchemaInitializer.java 7 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantPaymentCapabilityScheduler.java 25 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantPaymentReadinessService.java 290 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantSettlementService.java 34 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/payment/huifu/HuifuMerchantCapabilityGateway.java 146 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/payment/huifu/HuifuMerchantCapabilityQueryCommand.java 3 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/payment/huifu/HuifuPaymentProperties.java 6 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/portal/AppOrderPortalService.java 7 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/resources/application.yml 7 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/resources/db/migration/V130__merchant_payment_capability.sql 24 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/test/java/com/talentcard/server/business/merchant/MerchantPaymentReadinessServiceTests.java 188 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/test/java/com/talentcard/server/business/merchant/MerchantSettlementCallbackIdempotencyTests.java 158 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/test/java/com/talentcard/server/business/portal/AppOrderPortalServiceTests.java 53 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/test/resources/application-test.yml 18 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史