From bc2efbdb52190fe2e7be9920bbed6902d4ee28aa Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期五, 21 八月 2026 11:53:37 +0800
Subject: [PATCH] fix: centralize merchant type integration

---
 talent-card-server/src/main/java/com/talentcard/server/service/MerchantDisplayPolicyPortalService.java |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/talent-card-server/src/main/java/com/talentcard/server/service/MerchantDisplayPolicyPortalService.java b/talent-card-server/src/main/java/com/talentcard/server/service/MerchantDisplayPolicyPortalService.java
index 073e195..50c9963 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/service/MerchantDisplayPolicyPortalService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/service/MerchantDisplayPolicyPortalService.java
@@ -9,6 +9,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.talentcard.server.business.PageResult;
+import com.talentcard.server.business.merchant.MerchantTypeCatalog;
 import com.talentcard.server.common.BusinessException;
 import com.talentcard.server.common.ErrorCode;
 import com.talentcard.server.entity.BenefitFamilyCardApplication;
@@ -49,12 +50,12 @@
         List<String> aliases = cardLevelAliases(card.cardLevel());
         List<Map<String, Object>> records = merchantMapper.selectPortalPage(
                 aliases,
-                clean(merchantType),
+                merchantTypeCode(merchantType),
                 clean(keyword),
                 safeSize,
                 (safePage - 1) * safeSize
         ).stream().map(row -> portalView(row, card)).toList();
-        Long total = merchantMapper.countPortalPage(aliases, clean(merchantType), clean(keyword));
+        Long total = merchantMapper.countPortalPage(aliases, merchantTypeCode(merchantType), clean(keyword));
         return new PageResult<>(records, safePage, safeSize, total == null ? 0 : total);
     }
 
@@ -69,6 +70,11 @@
         return portalView(row, card);
     }
 
+    private String merchantTypeCode(String value) {
+        String cleaned = clean(value);
+        return cleaned.isBlank() ? "" : MerchantTypeCatalog.canonicalCode(cleaned);
+    }
+
     @Transactional
     public Map<String, Object> recordEvent(Long merchantId, MerchantDisplayPolicyEventRequest request) {
         Long id = requireMerchantId(merchantId);

--
Gitblit v1.7.1