generated from pricelees/issue-pr-template
[#28] 쿠버네티스 환경 배포 #29
@ -79,7 +79,7 @@ class ReservationService(
|
|||||||
createEntity(timeId, themeId, date, memberId, ReservationStatus.CONFIRMED)
|
createEntity(timeId, themeId, date, memberId, ReservationStatus.CONFIRMED)
|
||||||
|
|
||||||
return reservationRepository.save(reservation)
|
return reservationRepository.save(reservation)
|
||||||
.also { log.info { "[ReservationService.createConfirmedReservation] 예약 추가 완료: reservationId=${it.id}, status=${it.reservationStatus}" } }
|
.also { log.info { "[ReservationService.createConfirmedReservation] 예약 추가 완료: reservationId=${it.id}, status=${it.status}" } }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createReservationByAdmin(request: AdminReservationCreateRequest): ReservationRetrieveResponse {
|
fun createReservationByAdmin(request: AdminReservationCreateRequest): ReservationRetrieveResponse {
|
||||||
@ -192,7 +192,7 @@ class ReservationService(
|
|||||||
time = time,
|
time = time,
|
||||||
theme = theme,
|
theme = theme,
|
||||||
member = member,
|
member = member,
|
||||||
reservationStatus = status
|
status = status
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,7 +259,7 @@ class ReservationService(
|
|||||||
if (!reservation.isWaiting()) {
|
if (!reservation.isWaiting()) {
|
||||||
log.warn {
|
log.warn {
|
||||||
"[ReservationService.deleteWaiting] 대기 취소 실패(대기 예약이 아님): reservationId=$reservationId" +
|
"[ReservationService.deleteWaiting] 대기 취소 실패(대기 예약이 아님): reservationId=$reservationId" +
|
||||||
", currentStatus=${reservation.reservationStatus} memberId=$memberId"
|
", currentStatus=${reservation.status} memberId=$memberId"
|
||||||
}
|
}
|
||||||
throw ReservationException(ReservationErrorCode.ALREADY_CONFIRMED)
|
throw ReservationException(ReservationErrorCode.ALREADY_CONFIRMED)
|
||||||
}
|
}
|
||||||
@ -284,7 +284,7 @@ class ReservationService(
|
|||||||
if (!reservation.isWaiting()) {
|
if (!reservation.isWaiting()) {
|
||||||
log.warn {
|
log.warn {
|
||||||
"[ReservationService.rejectWaiting] 대기 예약 삭제 실패(이미 확정 상태): reservationId=$reservationId" +
|
"[ReservationService.rejectWaiting] 대기 예약 삭제 실패(이미 확정 상태): reservationId=$reservationId" +
|
||||||
", status=${reservation.reservationStatus}"
|
", status=${reservation.status}"
|
||||||
}
|
}
|
||||||
throw ReservationException(ReservationErrorCode.ALREADY_CONFIRMED)
|
throw ReservationException(ReservationErrorCode.ALREADY_CONFIRMED)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,7 @@ class ReservationEntity(
|
|||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
var id: Long? = null,
|
var id: Long? = null,
|
||||||
|
|
||||||
|
@Column(name = "date", nullable = false)
|
||||||
var date: LocalDate,
|
var date: LocalDate,
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
@ -29,10 +30,11 @@ class ReservationEntity(
|
|||||||
var member: MemberEntity,
|
var member: MemberEntity,
|
||||||
|
|
||||||
@Enumerated(value = EnumType.STRING)
|
@Enumerated(value = EnumType.STRING)
|
||||||
var reservationStatus: ReservationStatus
|
@Column(name = "status", nullable = false)
|
||||||
|
var status: ReservationStatus
|
||||||
) {
|
) {
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
fun isWaiting(): Boolean = reservationStatus == ReservationStatus.WAITING
|
fun isWaiting(): Boolean = status == ReservationStatus.WAITING
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
fun isReservedBy(memberId: Long): Boolean {
|
fun isReservedBy(memberId: Long): Boolean {
|
||||||
|
|||||||
@ -19,7 +19,7 @@ interface ReservationRepository
|
|||||||
@Query(
|
@Query(
|
||||||
"""
|
"""
|
||||||
UPDATE ReservationEntity r
|
UPDATE ReservationEntity r
|
||||||
SET r.reservationStatus = :status
|
SET r.status = :status
|
||||||
WHERE r.id = :id
|
WHERE r.id = :id
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
@ -39,7 +39,7 @@ interface ReservationRepository
|
|||||||
WHERE r.theme.id = r2.theme.id
|
WHERE r.theme.id = r2.theme.id
|
||||||
AND r.time.id = r2.time.id
|
AND r.time.id = r2.time.id
|
||||||
AND r.date = r2.date
|
AND r.date = r2.date
|
||||||
AND r.reservationStatus != 'WAITING'
|
AND r.status != 'WAITING'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
@ -53,7 +53,7 @@ interface ReservationRepository
|
|||||||
t.name,
|
t.name,
|
||||||
r.date,
|
r.date,
|
||||||
r.time.startAt,
|
r.time.startAt,
|
||||||
r.reservationStatus,
|
r.status,
|
||||||
(SELECT COUNT (r2) * 1L FROM ReservationEntity r2 WHERE r2.theme = r.theme AND r2.date = r.date AND r2.time = r.time AND r2.id < r.id),
|
(SELECT COUNT (r2) * 1L FROM ReservationEntity r2 WHERE r2.theme = r.theme AND r2.date = r.date AND r2.time = r.time AND r2.id < r.id),
|
||||||
p.paymentKey,
|
p.paymentKey,
|
||||||
p.totalAmount
|
p.totalAmount
|
||||||
|
|||||||
@ -54,7 +54,7 @@ fun ReservationEntity.toRetrieveResponse(): ReservationRetrieveResponse = Reserv
|
|||||||
member = this.member.toRetrieveResponse(),
|
member = this.member.toRetrieveResponse(),
|
||||||
time = this.time.toCreateResponse(),
|
time = this.time.toCreateResponse(),
|
||||||
theme = this.theme.toResponse(),
|
theme = this.theme.toResponse(),
|
||||||
status = this.reservationStatus
|
status = this.status
|
||||||
)
|
)
|
||||||
|
|
||||||
data class ReservationRetrieveListResponse(
|
data class ReservationRetrieveListResponse(
|
||||||
|
|||||||
@ -106,7 +106,7 @@ class ReservationRepositoryTest(
|
|||||||
entityManager.clear()
|
entityManager.clear()
|
||||||
|
|
||||||
reservationRepository.findByIdOrNull(reservationId)?.also { updated ->
|
reservationRepository.findByIdOrNull(reservationId)?.also { updated ->
|
||||||
updated.reservationStatus shouldBe it
|
updated.status shouldBe it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -331,7 +331,7 @@ class ReservationControllerTest(
|
|||||||
ReservationEntity::class.java,
|
ReservationEntity::class.java,
|
||||||
reservationId
|
reservationId
|
||||||
)
|
)
|
||||||
reservation.reservationStatus = ReservationStatus.CONFIRMED_PAYMENT_REQUIRED
|
reservation.status = ReservationStatus.CONFIRMED_PAYMENT_REQUIRED
|
||||||
entityManager.persist(reservation)
|
entityManager.persist(reservation)
|
||||||
entityManager.flush()
|
entityManager.flush()
|
||||||
entityManager.clear()
|
entityManager.clear()
|
||||||
@ -443,7 +443,7 @@ class ReservationControllerTest(
|
|||||||
test("대기 중인 예약 목록을 조회한다.") {
|
test("대기 중인 예약 목록을 조회한다.") {
|
||||||
login(MemberFixture.create(role = Role.ADMIN))
|
login(MemberFixture.create(role = Role.ADMIN))
|
||||||
val expected = reservations.values.flatten()
|
val expected = reservations.values.flatten()
|
||||||
.count { it.reservationStatus == ReservationStatus.WAITING }
|
.count { it.status == ReservationStatus.WAITING }
|
||||||
|
|
||||||
Given {
|
Given {
|
||||||
port(port)
|
port(port)
|
||||||
@ -601,7 +601,7 @@ class ReservationControllerTest(
|
|||||||
ReservationEntity::class.java,
|
ReservationEntity::class.java,
|
||||||
reservation.id
|
reservation.id
|
||||||
)?.also {
|
)?.also {
|
||||||
it.reservationStatus shouldBe ReservationStatus.CONFIRMED_PAYMENT_REQUIRED
|
it.status shouldBe ReservationStatus.CONFIRMED_PAYMENT_REQUIRED
|
||||||
} ?: throw AssertionError("Reservation not found")
|
} ?: throw AssertionError("Reservation not found")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user