From 5c2fae8dca2c89de68d2c037722bb143074e813a Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期四, 06 八月 2026 23:29:22 +0800
Subject: [PATCH] fix(admin): 展示个人进件完整证件号 (bug #24216)
---
talent-card-admin/src/views/MerchantOnboardingDetailView.vue | 2 +-
talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantSettlementAdminService.java | 11 +++++++++--
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/talent-card-admin/src/views/MerchantOnboardingDetailView.vue b/talent-card-admin/src/views/MerchantOnboardingDetailView.vue
index 6e6382b..b8075ea 100644
--- a/talent-card-admin/src/views/MerchantOnboardingDetailView.vue
+++ b/talent-card-admin/src/views/MerchantOnboardingDetailView.vue
@@ -80,7 +80,7 @@
<div v-else class="detail-grid">
<div class="detail-field"><span>个人姓名</span><strong>{{ text(detail.subjectName) }}</strong></div>
<div class="detail-field"><span>个人证件类型</span><strong>身份证</strong></div>
- <div class="detail-field"><span>个人证件号码</span><strong>{{ text(detail.subjectIdNoMasked) }}</strong></div>
+ <div class="detail-field"><span>个人证件号码</span><strong>{{ text(detail.subjectIdNo || detail.subjectIdNoMasked) }}</strong></div>
<div class="detail-field"><span>个人证件有效期类型</span><strong>{{ validityTypeLabel(detail.subjectCertValidityType) }}</strong></div>
<div class="detail-field"><span>个人证件有效期开始日期</span><strong>{{ dateText(detail.subjectCertBeginDate) }}</strong></div>
<div class="detail-field"><span>个人证件有效期截止日期</span><strong>{{ dateText(detail.subjectCertEndDate) }}</strong></div>
diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantSettlementAdminService.java b/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantSettlementAdminService.java
index 2790664..9b1d3a8 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantSettlementAdminService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantSettlementAdminService.java
@@ -9,6 +9,7 @@
import com.talentcard.server.business.PageResult;
import com.talentcard.server.common.BusinessException;
import com.talentcard.server.common.ErrorCode;
+import com.talentcard.server.common.SensitiveDataCrypto;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -18,7 +19,8 @@
public class MerchantSettlementAdminService {
private final JdbcTemplate jdbc;
private final HuifuMerchantWithdrawalService withdrawalService;
- public MerchantSettlementAdminService(JdbcTemplate jdbc, HuifuMerchantWithdrawalService withdrawalService) { this.jdbc = jdbc; this.withdrawalService = withdrawalService; }
+ private final SensitiveDataCrypto sensitiveDataCrypto;
+ public MerchantSettlementAdminService(JdbcTemplate jdbc, HuifuMerchantWithdrawalService withdrawalService, SensitiveDataCrypto sensitiveDataCrypto) { this.jdbc = jdbc; this.withdrawalService = withdrawalService; this.sensitiveDataCrypto = sensitiveDataCrypto; }
@Transactional(readOnly = true)
public PageResult<Map<String, Object>> onboardings(int page, int size, String merchantName, String contactMobile, String merchantType, String status, String startDate, String endDate) {
@@ -28,7 +30,12 @@
public Map<String, Object> onboarding(Long id) {
List<Map<String, Object>> rows = rows("select a.*, m.merchant_name, m.merchant_type, m.contact_mobile, s.store_name from merchant_onboarding_application a join merchant m on m.id = a.merchant_id join merchant_store s on s.id = a.store_id where a.id = ?", id);
if (rows.isEmpty()) throw new BusinessException(ErrorCode.NOT_FOUND, "商户进件不存在");
- return rows.get(0);
+ Map<String, Object> result = rows.get(0);
+ if ("individual".equalsIgnoreCase(String.valueOf(result.get("subjectType")))) {
+ String encrypted = String.valueOf(result.get("subjectIdNoEncrypted"));
+ if (!encrypted.isBlank() && !"null".equals(encrypted)) result.put("subjectIdNo", sensitiveDataCrypto.decrypt(encrypted));
+ }
+ return result;
}
@Transactional(readOnly = true)
public PageResult<Map<String, Object>> bankCards(int page, int size, String merchantName, String contactMobile, String merchantType, String status, String startDate, String endDate) {
--
Gitblit v1.7.1