From 0ac7539734a0a2cd59cccf6b0d83d6564b2c0221 Mon Sep 17 00:00:00 2001 From: pricelees Date: Fri, 18 Jul 2025 18:31:23 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=82=A0=EC=A7=9C,=20=ED=85=8C?= =?UTF-8?q?=EB=A7=88=EC=97=90=20=EB=8C=80=ED=95=9C=20=EC=98=88=EC=95=BD=20?= =?UTF-8?q?=EC=8B=9C=EA=B0=84=EC=9D=84=20=EC=A1=B0=ED=9A=8C=ED=95=A0=20?= =?UTF-8?q?=EB=95=8C=20=EC=BF=BC=EB=A6=AC=EC=97=90=EC=84=9C=20=EB=82=A0?= =?UTF-8?q?=EC=A7=9C,=20=ED=85=8C=EB=A7=88=EB=A5=BC=20=EB=AA=A8=EB=91=90?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=EB=B0=9B=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/ReservationTimeService.kt | 15 +++++---------- .../persistence/ReservationEntity.kt | 6 ------ .../persistence/ReservationRepository.kt | 6 +++--- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/main/java/roomescape/reservation/business/ReservationTimeService.kt b/src/main/java/roomescape/reservation/business/ReservationTimeService.kt index 2cfd3acb..5f940834 100644 --- a/src/main/java/roomescape/reservation/business/ReservationTimeService.kt +++ b/src/main/java/roomescape/reservation/business/ReservationTimeService.kt @@ -64,16 +64,11 @@ class ReservationTimeService( @Transactional(readOnly = true) fun findAllAvailableTimesByDateAndTheme(date: LocalDate, themeId: Long): ReservationTimeInfosResponse { val allTimes = reservationTimeRepository.findAll() - val reservations: List = reservationRepository.findByThemeId(themeId) + val reservations: List = reservationRepository.findByDateAndThemeId(date, themeId) - return ReservationTimeInfosResponse(allTimes - .map { time -> - ReservationTimeInfoResponse( - time.id!!, - time.startAt, - reservations.any { reservation -> reservation.hasSameDateTime(date, time) } - ) - } - ) + return ReservationTimeInfosResponse(allTimes.map { time -> + val alreadyBooked: Boolean = reservations.any { reservation -> reservation.reservationTime.id == time.id } + time.toInfoResponse(alreadyBooked) + }) } } diff --git a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt index 211c8a77..f513d5c2 100644 --- a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt +++ b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt @@ -31,12 +31,6 @@ class ReservationEntity( @Enumerated(value = EnumType.STRING) var reservationStatus: ReservationStatus ) { - - @JsonIgnore - fun hasSameDateTime(date: LocalDate?, time: ReservationTimeEntity): Boolean { - return this.date == date && time.startAt == this.reservationTime.startAt - } - @JsonIgnore fun isWaiting(): Boolean = reservationStatus == ReservationStatus.WAITING diff --git a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.kt b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.kt index 9b676727..85267cd1 100644 --- a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.kt +++ b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.kt @@ -6,13 +6,13 @@ import org.springframework.data.jpa.repository.Modifying import org.springframework.data.jpa.repository.Query import org.springframework.data.repository.query.Param import roomescape.reservation.web.MyReservationResponse +import java.time.LocalDate interface ReservationRepository - : JpaRepository, JpaSpecificationExecutor -{ + : JpaRepository, JpaSpecificationExecutor { fun findByReservationTime(reservationTime: ReservationTimeEntity): List - fun findByThemeId(themeId: Long): List + fun findByDateAndThemeId(date: LocalDate, themeId: Long): List @Modifying @Query("""