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/mapper/TicketPackageClaimMapper.java | 79 +++++++++++++++++++++++++++++++++++++++
1 files changed, 79 insertions(+), 0 deletions(-)
diff --git a/talent-card-server/src/main/java/com/talentcard/server/mapper/TicketPackageClaimMapper.java b/talent-card-server/src/main/java/com/talentcard/server/mapper/TicketPackageClaimMapper.java
index 451d9d0..3d1e1c6 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/mapper/TicketPackageClaimMapper.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/mapper/TicketPackageClaimMapper.java
@@ -372,4 +372,83 @@
@Param("cardLevel") String cardLevel,
@Param("claimedStart") LocalDate claimedStart,
@Param("claimedEnd") LocalDate claimedEnd);
+
+ /**
+ * 后台「核销记录」:只列已核销(status = USED)的领取记录。
+ *
+ * <p>核销商家就是领取记录上的 merchant_id——核销接口要求核销方必须等于该商户,所以不需要再关联
+ * benefit_verify_record。
+ */
+ @Select("""
+ select cl.id,
+ cl.claim_no as claimNo,
+ cl.package_id as packageId,
+ p.package_name as packageName,
+ coalesce((
+ select group_concat(m1.merchant_name order by pm1.sort_no asc, pm1.id asc separator '、')
+ from ticket_package_merchant pm1
+ join merchant m1 on m1.id = pm1.merchant_id and m1.deleted = 0
+ where pm1.package_id = p.id and pm1.deleted = 0
+ ), m.merchant_name) as merchantNames,
+ m.merchant_name as verifyMerchantName,
+ cl.talent_id as talentId,
+ cl.card_id as cardId,
+ cl.card_no as cardNo,
+ cl.card_level as cardLevel,
+ cl.talent_name as talentName,
+ cl.talent_mobile as talentMobile,
+ cl.status,
+ cl.created_at as createdAt,
+ cl.used_at as usedAt
+ from ticket_package_claim cl
+ join ticket_package p on p.id = cl.package_id and p.deleted = 0
+ left join merchant m on m.id = cl.merchant_id and m.deleted = 0
+ where cl.deleted = 0
+ and cl.status = 'USED'
+ and (#{packageId} is null or cl.package_id = #{packageId})
+ and (#{talentKeyword} is null or #{talentKeyword} = '' or cl.talent_name like concat('%', #{talentKeyword}, '%') or cl.talent_mobile like concat('%', #{talentKeyword}, '%') or cl.card_no like concat('%', #{talentKeyword}, '%'))
+ and (#{cardLevel} is null or #{cardLevel} = '' or cl.card_level = #{cardLevel} or cl.card_level like concat('%', #{cardLevel}, '%'))
+ and (#{claimedStart} is null or cl.created_at >= #{claimedStart})
+ and (#{claimedEnd} is null or cl.created_at < date_add(cast(#{claimedEnd} as date), interval 1 day))
+ and (#{verifiedStart} is null or cl.used_at >= #{verifiedStart})
+ and (#{verifiedEnd} is null or cl.used_at < date_add(cast(#{verifiedEnd} as date), interval 1 day))
+ and (#{merchantKeyword} is null or #{merchantKeyword} = '' or m.merchant_name like concat('%', #{merchantKeyword}, '%'))
+ order by cl.used_at desc, cl.id desc
+ limit #{size} offset #{offset}
+ """)
+ List<Map<String, Object>> selectAdminVerificationPage(@Param("packageId") Long packageId,
+ @Param("talentKeyword") String talentKeyword,
+ @Param("cardLevel") String cardLevel,
+ @Param("claimedStart") LocalDate claimedStart,
+ @Param("claimedEnd") LocalDate claimedEnd,
+ @Param("verifiedStart") LocalDate verifiedStart,
+ @Param("verifiedEnd") LocalDate verifiedEnd,
+ @Param("merchantKeyword") String merchantKeyword,
+ @Param("size") int size,
+ @Param("offset") int offset);
+
+ @Select("""
+ select count(*)
+ from ticket_package_claim cl
+ join ticket_package p on p.id = cl.package_id and p.deleted = 0
+ left join merchant m on m.id = cl.merchant_id and m.deleted = 0
+ where cl.deleted = 0
+ and cl.status = 'USED'
+ and (#{packageId} is null or cl.package_id = #{packageId})
+ and (#{talentKeyword} is null or #{talentKeyword} = '' or cl.talent_name like concat('%', #{talentKeyword}, '%') or cl.talent_mobile like concat('%', #{talentKeyword}, '%') or cl.card_no like concat('%', #{talentKeyword}, '%'))
+ and (#{cardLevel} is null or #{cardLevel} = '' or cl.card_level = #{cardLevel} or cl.card_level like concat('%', #{cardLevel}, '%'))
+ and (#{claimedStart} is null or cl.created_at >= #{claimedStart})
+ and (#{claimedEnd} is null or cl.created_at < date_add(cast(#{claimedEnd} as date), interval 1 day))
+ and (#{verifiedStart} is null or cl.used_at >= #{verifiedStart})
+ and (#{verifiedEnd} is null or cl.used_at < date_add(cast(#{verifiedEnd} as date), interval 1 day))
+ and (#{merchantKeyword} is null or #{merchantKeyword} = '' or m.merchant_name like concat('%', #{merchantKeyword}, '%'))
+ """)
+ Long countAdminVerificationPage(@Param("packageId") Long packageId,
+ @Param("talentKeyword") String talentKeyword,
+ @Param("cardLevel") String cardLevel,
+ @Param("claimedStart") LocalDate claimedStart,
+ @Param("claimedEnd") LocalDate claimedEnd,
+ @Param("verifiedStart") LocalDate verifiedStart,
+ @Param("verifiedEnd") LocalDate verifiedEnd,
+ @Param("merchantKeyword") String merchantKeyword);
}
--
Gitblit v1.7.1