From f082328abe329087823ce4b9b62ce195c492a6ec Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Wed, 28 Jan 2026 18:20:49 +0530 Subject: [PATCH] Handle duplicate cardId on revoke --- .../com/android/trisolarisserver/controller/IssuedCards.kt | 3 ++- .../kotlin/com/android/trisolarisserver/repo/IssuedCardRepo.kt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/IssuedCards.kt b/src/main/kotlin/com/android/trisolarisserver/controller/IssuedCards.kt index 1a3a8e4..0e8dbb6 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/IssuedCards.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/IssuedCards.kt @@ -249,7 +249,8 @@ class IssuedCards( return if (uuid != null) { issuedCardRepo.findByIdAndPropertyId(uuid, propertyId) } else { - issuedCardRepo.findByCardIdIgnoreCaseAndPropertyId(trimmed, propertyId) + issuedCardRepo.findAllByCardIdIgnoreCaseAndPropertyId(trimmed, propertyId) + .maxByOrNull { it.issuedAt } } } diff --git a/src/main/kotlin/com/android/trisolarisserver/repo/IssuedCardRepo.kt b/src/main/kotlin/com/android/trisolarisserver/repo/IssuedCardRepo.kt index 0f4e625..7fc3c25 100644 --- a/src/main/kotlin/com/android/trisolarisserver/repo/IssuedCardRepo.kt +++ b/src/main/kotlin/com/android/trisolarisserver/repo/IssuedCardRepo.kt @@ -8,6 +8,7 @@ interface IssuedCardRepo : JpaRepository { fun findByRoomStayIdOrderByIssuedAtDesc(roomStayId: UUID): List fun findByIdAndPropertyId(id: UUID, propertyId: UUID): IssuedCard? fun findByCardIdIgnoreCaseAndPropertyId(cardId: String, propertyId: UUID): IssuedCard? + fun findAllByCardIdIgnoreCaseAndPropertyId(cardId: String, propertyId: UUID): List @org.springframework.data.jpa.repository.Query(""" select case when count(c) > 0 then true else false end