From c2d4e10160e95ab460a815cb930bcc7b4ccd9d7d Mon Sep 17 00:00:00 2001 From: pricelees Date: Sat, 19 Jul 2025 22:41:27 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=9A=8C=EC=9B=90=EC=9D=98=20=EC=98=88?= =?UTF-8?q?=EC=95=BD=20=ED=99=95=EC=A0=95=20=EC=97=AC=EB=B6=80=EB=A5=BC=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8=ED=95=98=EB=8A=94=20=EC=BF=BC=EB=A6=AC?= =?UTF-8?q?=EC=97=90=EC=84=9C,=20=EC=9E=85=EB=A0=A5=EB=90=9C=20id=EA=B0=80?= =?UTF-8?q?=20=EC=97=86=EC=9C=BC=EB=A9=B4=20=EC=98=88=EC=99=B8=EB=A5=BC=20?= =?UTF-8?q?=EB=8D=98=EC=A7=80=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0(->=20false=20=EB=B0=98=ED=99=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reservation/business/ReservationService.kt | 2 +- .../persistence/ReservationRepository.kt | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/roomescape/reservation/business/ReservationService.kt b/src/main/java/roomescape/reservation/business/ReservationService.kt index f93c7eb3..1047b9c7 100644 --- a/src/main/java/roomescape/reservation/business/ReservationService.kt +++ b/src/main/java/roomescape/reservation/business/ReservationService.kt @@ -201,7 +201,7 @@ class ReservationService( fun approveWaiting(reservationId: Long, memberId: Long) { validateIsMemberAdmin(memberId) - if (reservationRepository. isExistConfirmedReservation(reservationId)) { + if (reservationRepository.isExistConfirmedReservation(reservationId)) { throw RoomescapeException(ErrorType.RESERVATION_DUPLICATED, HttpStatus.CONFLICT) } reservationRepository.updateStatusByReservationId(reservationId, ReservationStatus.CONFIRMED_PAYMENT_REQUIRED) diff --git a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.kt b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.kt index c14602b1..5d17d47a 100644 --- a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.kt +++ b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.kt @@ -28,11 +28,17 @@ interface ReservationRepository @Query(""" SELECT EXISTS ( SELECT 1 - FROM ReservationEntity r - WHERE r.id = :id - AND r.reservationStatus != 'WAITING' - ) - """) + FROM ReservationEntity r2 + WHERE r2.id = :id + AND EXISTS ( + SELECT 1 FROM ReservationEntity r + WHERE r.theme.id = r2.theme.id + AND r.reservationTime.id = r2.reservationTime.id + AND r.date = r2.date + AND r.reservationStatus != 'WAITING' + ) + ) + """) fun isExistConfirmedReservation(@Param("id") reservationId: Long): Boolean @Query("""