fix: 회원의 예약 확정 여부를 확인하는 쿼리에서, 입력된 id가 없으면 예외를 던지는 문제 해결(-> false 반환)

This commit is contained in:
이상진 2025-07-19 22:41:27 +09:00
parent 036947153d
commit c2d4e10160
2 changed files with 12 additions and 6 deletions

View File

@ -201,7 +201,7 @@ class ReservationService(
fun approveWaiting(reservationId: Long, memberId: Long) { fun approveWaiting(reservationId: Long, memberId: Long) {
validateIsMemberAdmin(memberId) validateIsMemberAdmin(memberId)
if (reservationRepository. isExistConfirmedReservation(reservationId)) { if (reservationRepository.isExistConfirmedReservation(reservationId)) {
throw RoomescapeException(ErrorType.RESERVATION_DUPLICATED, HttpStatus.CONFLICT) throw RoomescapeException(ErrorType.RESERVATION_DUPLICATED, HttpStatus.CONFLICT)
} }
reservationRepository.updateStatusByReservationId(reservationId, ReservationStatus.CONFIRMED_PAYMENT_REQUIRED) reservationRepository.updateStatusByReservationId(reservationId, ReservationStatus.CONFIRMED_PAYMENT_REQUIRED)

View File

@ -28,11 +28,17 @@ interface ReservationRepository
@Query(""" @Query("""
SELECT EXISTS ( SELECT EXISTS (
SELECT 1 SELECT 1
FROM ReservationEntity r FROM ReservationEntity r2
WHERE r.id = :id WHERE r2.id = :id
AND r.reservationStatus != 'WAITING' 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 fun isExistConfirmedReservation(@Param("id") reservationId: Long): Boolean
@Query(""" @Query("""