From 7844f5af457ff3b7d3f8eeac8799e8d281e635a1 Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期一, 21 九月 2026 11:04:46 +0800
Subject: [PATCH] 更新....

---
 talent-card-server/src/main/java/com/talentcard/server/service/TicketPackageAdminService.java |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/talent-card-server/src/main/java/com/talentcard/server/service/TicketPackageAdminService.java b/talent-card-server/src/main/java/com/talentcard/server/service/TicketPackageAdminService.java
index a52c6e4..081374a 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/service/TicketPackageAdminService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/service/TicketPackageAdminService.java
@@ -45,6 +45,7 @@
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.springframework.dao.DuplicateKeyException;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -59,6 +60,7 @@
     private final BenefitMerchantMapper merchantMapper;
     private final TicketPackageMerchantMapper packageMerchantMapper;
     private final TicketPackageLevelRuleMapper levelRuleMapper;
+    private final JdbcTemplate jdbcTemplate;
 
     public TicketPackageAdminService(
             TicketPackageMapper packageMapper,
@@ -66,7 +68,8 @@
             TicketPackageClaimMapper claimMapper,
             BenefitMerchantMapper merchantMapper,
             TicketPackageMerchantMapper packageMerchantMapper,
-            TicketPackageLevelRuleMapper levelRuleMapper
+            TicketPackageLevelRuleMapper levelRuleMapper,
+            JdbcTemplate jdbcTemplate
     ) {
         this.packageMapper = packageMapper;
         this.codeMapper = codeMapper;
@@ -74,6 +77,35 @@
         this.merchantMapper = merchantMapper;
         this.packageMerchantMapper = packageMerchantMapper;
         this.levelRuleMapper = levelRuleMapper;
+        this.jdbcTemplate = jdbcTemplate;
+    }
+
+    /**
+     * 票包表单的「适用商家」下拉选项:只回启用的观影服务商家(id + 名称)。
+     *
+     * <p>单独开这个只读接口,是为了让「电影票管理」这个权限自己够用——之前页面复用
+     * {@code /api/admin/business/merchants},票包运营账号没有「商家查询」权限就整页报错。
+     */
+    @Transactional(readOnly = true)
+    public List<Map<String, Object>> merchantOptions(String keyword) {
+        StringBuilder sql = new StringBuilder("""
+                select id, merchant_name, merchant_type
+                from merchant
+                where deleted = 0 and status = 1 and merchant_type_code = 'cinema'
+                """);
+        List<Object> arguments = new ArrayList<>();
+        if (keyword != null && !keyword.isBlank()) {
+            sql.append(" and merchant_name like ?");
+            arguments.add("%" + keyword.trim() + "%");
+        }
+        sql.append(" order by sort_no desc, id asc");
+        return jdbcTemplate.queryForList(sql.toString(), arguments.toArray()).stream().map(row -> {
+            Map<String, Object> option = new LinkedHashMap<>();
+            option.put("id", row.get("id"));
+            option.put("merchantName", row.get("merchant_name"));
+            option.put("merchantType", row.get("merchant_type"));
+            return option;
+        }).toList();
     }
 
     @Transactional(readOnly = true)

--
Gitblit v1.7.1