From e52934f6527027bd6008c2ade61c3083159efd4a Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期五, 09 十月 2026 18:14:28 +0800
Subject: [PATCH] 更新....
---
talent-card-server/src/main/java/com/talentcard/server/service/TicketPackageAdminService.java | 40 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 40 insertions(+), 0 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 081374a..07a8c59 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
@@ -341,6 +341,46 @@
return new PageResult<>(records, safePage, safeSize, total == null ? 0 : total);
}
+ /**
+ * 票包核销记录:只列已核销(status = USED)的领取记录,供后台「电影票管理 → 核销记录」查询与导出。
+ *
+ * <p>「核销商家」取领取记录上的 merchant_id。核销接口要求核销方必须等于该商户,所以这里不需要
+ * 再关联 benefit_verify_record 才能知道是谁核销的。
+ */
+ @Transactional(readOnly = true)
+ public PageResult<Map<String, Object>> verifications(Long packageId, String talentKeyword, String cardLevel,
+ LocalDate claimedStart, LocalDate claimedEnd,
+ LocalDate verifiedStart, LocalDate verifiedEnd,
+ String merchantKeyword, int page, int size) {
+ int safePage = Math.max(page, 1);
+ int safeSize = Math.min(Math.max(size, 1), 100);
+ Long total = claimMapper.countAdminVerificationPage(packageId, clean(talentKeyword), clean(cardLevel),
+ claimedStart, claimedEnd, verifiedStart, verifiedEnd, clean(merchantKeyword));
+ List<Map<String, Object>> records = claimMapper.selectAdminVerificationPage(packageId, clean(talentKeyword),
+ clean(cardLevel), claimedStart, claimedEnd, verifiedStart, verifiedEnd, clean(merchantKeyword),
+ safeSize, (safePage - 1) * safeSize)
+ .stream()
+ .map(this::verificationView)
+ .toList();
+ return new PageResult<>(records, safePage, safeSize, total == null ? 0 : total);
+ }
+
+ private Map<String, Object> verificationView(Map<String, Object> row) {
+ Map<String, Object> result = new LinkedHashMap<>();
+ result.put("id", value(row, "id"));
+ result.put("claimNo", text(row, "claimNo", "claim_no"));
+ result.put("packageId", value(row, "packageId", "package_id"));
+ result.put("packageName", text(row, "packageName", "package_name"));
+ result.put("merchantNames", text(row, "merchantNames", "merchant_names"));
+ result.put("talentName", text(row, "talentName", "talent_name"));
+ result.put("talentMobile", text(row, "talentMobile", "talent_mobile"));
+ result.put("cardLevel", text(row, "cardLevel", "card_level"));
+ result.put("claimedAt", value(row, "createdAt", "created_at"));
+ result.put("usedAt", value(row, "usedAt", "used_at"));
+ result.put("verifyMerchantName", text(row, "verifyMerchantName", "verify_merchant_name"));
+ return result;
+ }
+
@Transactional(readOnly = true)
public Map<String, Object> codeDetail(Long codeId) {
--
Gitblit v1.7.1