shinnosuke
2026-08-21 bc2efbdb52190fe2e7be9920bbed6902d4ee28aa
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);