From f2cca8fe463efe96ad8d949a40bbee52baf89d8c Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 12 十月 2026 14:28:20 +0800
Subject: [PATCH] fix(admin): 精简纳管对话框的文字
---
talent-card-server/src/test/java/com/talentcard/server/business/admin/MerchantManagedOnboardingTests.java | 6 +++++-
talent-card-admin/src/views/MerchantSettlementView.vue | 23 +++++++----------------
talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java | 11 ++++++++++-
3 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/talent-card-admin/src/views/MerchantSettlementView.vue b/talent-card-admin/src/views/MerchantSettlementView.vue
index 8705464..e52dd6d 100644
--- a/talent-card-admin/src/views/MerchantSettlementView.vue
+++ b/talent-card-admin/src/views/MerchantSettlementView.vue
@@ -473,10 +473,6 @@
:close-on-click-modal="false"
destroy-on-close
>
- <p class="adopt-hint">
- 用于把<b>已在汇付侧完成进件</b>的商户接到我方某个商家上。纳管全程只查询、不下发:不会补开微信、
- 不会绑定人才端、不会改动支付场景与延迟入账。
- </p>
<el-form label-width="120px" class="adopt-form">
<el-form-item label="我方商家" required>
<el-select
@@ -506,14 +502,14 @@
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" plain :loading="adoptPreviewing" @click="runAdoptPreview">核验通道商户</el-button>
- <span class="adopt-tip">卡号不用填,从通道查回来。</span>
</el-form-item>
</el-form>
<template v-if="adoptPreview">
<el-descriptions :column="1" border size="small" class="adopt-preview">
<el-descriptions-item label="我方商家">
- {{ adoptPreview.merchantName }}<span class="muted">(门店:{{ adoptPreview.storeName }})</span>
+ {{ adoptPreview.merchantName
+ }}<span v-if="adoptPreview.storeName && adoptPreview.storeName !== adoptPreview.merchantName" class="muted">(门店:{{ adoptPreview.storeName }})</span>
</el-descriptions-item>
<el-descriptions-item label="通道商户注册名称">{{ adoptPreview.channelMerchantName }}</el-descriptions-item>
<el-descriptions-item label="通道商户简称">{{ adoptPreview.channelShortName }}</el-descriptions-item>
@@ -526,22 +522,20 @@
<span v-if="adoptPreview.settlementBankName" class="muted">({{ adoptPreview.settlementBankName }})</span>
</el-descriptions-item>
</el-descriptions>
- <!-- 只提示不拦截:连锁各门店共用一个收款主体是允许的,这里列出已绑的商家让运营自己确认。 -->
+ <!-- 只提示不拦截:连锁各门店共用一个收款主体是允许的,列出已绑的商家让运营自己确认。 -->
<el-alert
v-if="adoptPreview.alreadyManaged"
class="adopt-alert"
type="success"
:closable="false"
- title="该商家已纳管过这个汇付商户号"
- description="重复纳管是幂等的,提交会直接返回原来那条进件记录,不会产生第二条。"
+ title="该商家已纳管过这个汇付商户号,提交会返回原进件记录,不会新建"
/>
<el-alert
v-if="adoptPreview.boundMerchants?.length"
class="adopt-alert"
type="info"
:closable="false"
- :title="`该汇付商户号已绑给:${adoptPreview.boundMerchants.join('、')}`"
- description="可以继续纳管(连锁各门店共用一个收款主体)。"
+ :title="`该汇付商户号已绑给:${adoptPreview.boundMerchants.join('、')},可继续纳管`"
/>
<el-alert
v-if="adoptPreview.nameWarning"
@@ -556,8 +550,7 @@
class="adopt-alert"
type="warning"
:closable="false"
- title="商户端登录"
- :description="adoptPreview.loginNotice"
+ :title="adoptPreview.loginNotice"
/>
<el-alert
v-for="blocker in adoptPreview.blockers || []"
@@ -568,7 +561,7 @@
:title="blocker"
/>
<el-checkbox v-model="adoptConfirmed" :disabled="(adoptPreview.blockers || []).length > 0">
- 我已把通道侧的商户注册名称与简称与所选商家核对一致(纳管后该商家的收款将进入这个收款主体)
+ 我已核对通道商户名称与所选商家一致(该商家的收款将进入这个收款主体)
</el-checkbox>
</template>
@@ -601,9 +594,7 @@
.query-actions { justify-content: flex-end; }
.query-actions :deep(.el-form-item__content) { justify-content: flex-end; }
.settlement-table-tools { margin: 0 0 12px; }
-.adopt-hint { margin: 0 0 16px; color: #606266; font-size: 13px; line-height: 20px; }
.adopt-form :deep(.el-select) { width: 100%; }
-.adopt-tip { margin-left: 12px; color: #909399; font-size: 12px; }
.adopt-preview { margin-bottom: 14px; }
.adopt-alert { margin-bottom: 12px; }
.table-panel { margin-top: 16px; padding: 0 20px 12px; }
diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java b/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java
index 6658be1..68ee993 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java
@@ -419,11 +419,20 @@
where a.provider_huifu_id = ? and a.merchant_id <> ? and a.status in ('pending', 'approved')
order by a.id
""", huifuId, exceptMerchantId).stream()
- .map(row -> clean(row.get("merchantName")) + (clean(row.get("storeName")).isBlank() ? "" : "(" + clean(row.get("storeName")) + ")"))
+ .map(row -> displayName(clean(row.get("merchantName")), clean(row.get("storeName"))))
.distinct().toList();
}
/**
+ * 「商家名(门店名)」的展示形式。门店名与商家名一样时不再重复一遍——多数门店名就是商家名,
+ * 加上去只是把同一句话印两遍(列表里看起来像「某某商户(某某商户)」)。
+ */
+ private static String displayName(String merchantName, String storeName) {
+ return storeName.isBlank() || storeName.equals(merchantName)
+ ? merchantName : merchantName + "(" + storeName + ")";
+ }
+
+ /**
* 通道侧两个名称与所选商家名**连一个字符都不重叠**时的警示。
*
* <p>刻意不做「名称是否对得上」的判定:形态不对应(工商全称 vs 品牌简称),规则化匹配必然误判。
diff --git a/talent-card-server/src/test/java/com/talentcard/server/business/admin/MerchantManagedOnboardingTests.java b/talent-card-server/src/test/java/com/talentcard/server/business/admin/MerchantManagedOnboardingTests.java
index 291be6d..371c846 100644
--- a/talent-card-server/src/test/java/com/talentcard/server/business/admin/MerchantManagedOnboardingTests.java
+++ b/talent-card-server/src/test/java/com/talentcard/server/business/admin/MerchantManagedOnboardingTests.java
@@ -159,9 +159,13 @@
stubConvergedChannel(huifuId, "622200001234", "external-card-token");
service.adopt(first.merchantId(), huifuId, APPLY_NO, true);
+ // 门店名与商家名一样时不重复印一遍——多数门店就是这样,列表里不该出现「某某商户(某某商户)」。
+ jdbc.update("update merchant_store set store_name = ? where id = ?", first.key(), first.storeId());
Map<String, Object> preview = service.preview(second.merchantId(), huifuId);
- assertThat((List<?>) preview.get("boundMerchants")).anySatisfy(name -> assertThat(String.valueOf(name)).contains(first.key()));
+ assertThat(preview.get("boundMerchants"))
+ .asInstanceOf(org.assertj.core.api.InstanceOfAssertFactories.list(String.class))
+ .containsExactly(first.key());
assertThat((List<?>) preview.get("blockers")).as("已被其他商家绑定只是提示,不能拦").isEmpty();
assertThat(service.adopt(second.merchantId(), huifuId, APPLY_NO, true)).containsEntry("status", "approved");
assertThat(readinessService.requireCollectingMerchant(second.merchantId(), second.storeId()).huifuId()).isEqualTo(huifuId);
--
Gitblit v1.7.1