From 0d14c6214ef7afc4be02723326229a48b3b7d64f Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期四, 17 九月 2026 13:02:05 +0800
Subject: [PATCH] refactor(merchant): 自查接口补冷却剩余秒数,refreshed 改为单点返回
---
talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java b/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java
index b00c6e0..6fa75a4 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java
@@ -68,8 +68,9 @@
if (capabilities.containsKey("mer_stat")) {
stages.put("merchantNormal", "NORMAL".equals(text(capabilities.get("mer_stat"))));
// 原始值一起存下来,只是为了在完成判定里说清「状态异常(CLOSED)」这种话。
- // 它不属于六项阶段,不会进 stages 列表。
- stages.put("merchantStatus", text(capabilities.get("mer_stat")));
+ // 与 realnameQr 一样,它是对应布尔项的**证据**,不是第七个阶段:stages 列表由
+ // LABELS 生成,非 LABELS 的键不会进列表,完成判定也只认 LABELS 的六个键。
+ stages.put("merchantStat", text(capabilities.get("mer_stat")));
}
if ("S".equals(text(response.get("bind_card_status"))) && capabilities.containsKey("qry_cash_card_info_list") && capabilities.containsKey("qry_settle_config_list")) {
stages.put("bank", confirmOriginalCard(application,capabilities,owner));
@@ -275,7 +276,8 @@
* 其余六项必须是字符串 {@code "confirmed"},加进去会让进件永远无法 approved。
*/
private static List<Map<String,Object>> completionChecks(Map<String,Object> stages, Map<String,Object> application) {
- String merchantStatus = text(stages.get("merchantStatus"));
+ // 证据优先取刷新那一刻存下来的通道原值;老记录里没有这个键时回落到申请行上的快照列。
+ String merchantStatus = text(stages.get("merchantStat"));
if (merchantStatus.isBlank()) merchantStatus = text(application.get("merchantStat"));
List<Map<String,Object>> checks=new ArrayList<>();
checks.add(completionCheck("bank","结算银行卡核实",stages.get("bank"),
@@ -303,10 +305,10 @@
private static String incompleteReason(List<Map<String,Object>> progress, List<Map<String,Object>> checks) {
boolean stagesAllConfirmed = progress.stream().allMatch(stage -> "confirmed".equals(stage.get("status")));
if (!stagesAllConfirmed) return "请刷新进度核实各项能力,并按待办理项补齐缺失能力";
- String failed = checks.stream().filter(check -> !"confirmed".equals(check.get("status")))
- .map(check -> String.valueOf(check.get("label"))).collect(java.util.stream.Collectors.joining("、"));
- return failed.isBlank() ? "请刷新进度核实各项能力,并按待办理项补齐缺失能力"
- : "进件阶段已全部确认,但" + failed + "未通过核实,见下方核实结果";
+ List<String> failed = checks.stream().filter(check -> !"confirmed".equals(check.get("status")))
+ .map(check -> String.valueOf(check.get("label"))).toList();
+ return failed.isEmpty() ? "请刷新进度核实各项能力,并按待办理项补齐缺失能力"
+ : "进件阶段已全部确认,但" + String.join("、", failed) + "未通过核实,见下方核实结果";
}
/** Called only after the existing HTTP callback boundary has verified Huifu's signature. */
--
Gitblit v1.7.1