From 7361c250cee0a13724bd4ac613a39e57b8576ec5 Mon Sep 17 00:00:00 2001
From: wenminjie <1036699586@qq.com>
Date: 星期三, 12 八月 2026 17:02:16 +0800
Subject: [PATCH] 小程序对接

---
 talent-card-server/src/main/java/com/talentcard/server/business/admin/TicketPackageAdminController.java |   29 ++++++++++++++++++++++++-----
 1 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/admin/TicketPackageAdminController.java b/talent-card-server/src/main/java/com/talentcard/server/business/admin/TicketPackageAdminController.java
index f81b7cf..8ec1553 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/admin/TicketPackageAdminController.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/admin/TicketPackageAdminController.java
@@ -1,10 +1,12 @@
 package com.talentcard.server.business.admin;
 
+import java.time.LocalDate;
 import java.util.Map;
 
 import com.talentcard.server.business.PageResult;
 import com.talentcard.server.common.ApiResponse;
 import com.talentcard.server.request.TicketPackageCodeImportRequest;
+import com.talentcard.server.request.TicketPackageCodeGenerateRequest;
 import com.talentcard.server.request.TicketPackageCodeLockRequest;
 import com.talentcard.server.request.TicketPackageCodeStatusRequest;
 import com.talentcard.server.request.TicketPackageSupplementRequest;
@@ -43,10 +45,11 @@
             @Parameter(description = "指定兑换商家ID") @RequestParam(required = false) Long merchantId,
             @Parameter(description = "状态:1启用,0停用") @RequestParam(required = false) Integer status,
             @Parameter(description = "票包名称或编号关键词") @RequestParam(required = false) String keyword,
+            @Parameter(description = "适用商家名称关键词") @RequestParam(required = false) String merchantKeyword,
             @Parameter(description = "页码") @RequestParam(defaultValue = "1") int page,
             @Parameter(description = "每页条数") @RequestParam(defaultValue = "10") int size
     ) {
-        return ApiResponse.success(service.packages(merchantId, status, keyword, page, size));
+        return ApiResponse.success(service.packages(merchantId, status, keyword, merchantKeyword, page, size));
     }
 
     @Operation(summary = "查询票包详情", description = "查看票包基础配置和码池库存汇总")
@@ -94,6 +97,15 @@
         return ApiResponse.success(service.importCodes(packageId, request));
     }
 
+    @Operation(summary = "批量生成票包兑换码", description = "按数量自动生成兑换码并写入指定票包码池,重复兑换码自动跳过")
+    @PostMapping("/{packageId}/codes/generate")
+    public ApiResponse<Map<String, Object>> generateCodes(
+            @PathVariable Long packageId,
+            @Valid @RequestBody TicketPackageCodeGenerateRequest request
+    ) {
+        return ApiResponse.success(service.generateCodes(packageId, request));
+    }
+
     @Operation(summary = "导入票包兑换码Excel", description = "上传Excel文件导入兑换码,读取第一个Sheet第一列,首行可为兑换码标题,重复兑换码自动跳过")
     @PostMapping(value = "/{packageId}/codes/import-file", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
     public ApiResponse<Map<String, Object>> importCodeFile(
@@ -112,10 +124,12 @@
             @Parameter(description = "兑换码状态") @RequestParam(required = false) String status,
             @Parameter(description = "导入批次号") @RequestParam(required = false) String batchNo,
             @Parameter(description = "兑换码或票包名称关键词") @RequestParam(required = false) String keyword,
+            @Parameter(description = "票包名称或编号关键词") @RequestParam(required = false) String packageKeyword,
+            @Parameter(description = "适用商家名称关键词") @RequestParam(required = false) String merchantKeyword,
             @Parameter(description = "页码") @RequestParam(defaultValue = "1") int page,
             @Parameter(description = "每页条数") @RequestParam(defaultValue = "10") int size
     ) {
-        return ApiResponse.success(service.codes(packageId, status, batchNo, keyword, page, size));
+        return ApiResponse.success(service.codes(packageId, status, batchNo, keyword, packageKeyword, merchantKeyword, page, size));
     }
 
     @Operation(summary = "修改兑换码状态", description = "后台作废兑换码,或将已发放兑换码标记为已使用")
@@ -133,11 +147,16 @@
             @Parameter(description = "票包ID") @RequestParam(required = false) Long packageId,
             @Parameter(description = "持卡人ID") @RequestParam(required = false) Long talentId,
             @Parameter(description = "发放状态") @RequestParam(required = false) String status,
-            @Parameter(description = "领取编号、兑换码、姓名或手机号关键词") @RequestParam(required = false) String keyword,
+            @Parameter(description = "领取编号或兑换码关键词") @RequestParam(required = false) String keyword,
+            @Parameter(description = "票包名称或编号关键词") @RequestParam(required = false) String packageKeyword,
+            @Parameter(description = "持卡人姓名、手机号或卡号关键词") @RequestParam(required = false) String talentKeyword,
+            @Parameter(description = "卡片等级") @RequestParam(required = false) String cardLevel,
+            @Parameter(description = "领取开始日期") @RequestParam(required = false) LocalDate claimedStart,
+            @Parameter(description = "领取结束日期") @RequestParam(required = false) LocalDate claimedEnd,
             @Parameter(description = "页码") @RequestParam(defaultValue = "1") int page,
             @Parameter(description = "每页条数") @RequestParam(defaultValue = "10") int size
     ) {
-        return ApiResponse.success(service.claims(packageId, talentId, status, keyword, page, size));
+        return ApiResponse.success(service.claims(packageId, talentId, status, keyword, packageKeyword, talentKeyword, cardLevel, claimedStart, claimedEnd, page, size));
     }
 
     @Operation(summary = "领取校验", description = "按兑换码码值校验兑换码是否可领取:是否存在、所属票包是否启用、是否在有效期内、是否适用于指定商户,以及当前状态(可用/锁定/已发放/已使用/已作废)")
@@ -191,4 +210,4 @@
     ) {
         return ApiResponse.success(service.supplementClaim(request));
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.7.1