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-server/src/main/java/com/talentcard/server/business/admin/MerchantSettlementAdminService.java |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

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