generated from pricelees/issue-pr-template
refactor: schedule에서의 존재 조건 확인을 위한 storeId 필드 추가
This commit is contained in:
parent
54648a6c04
commit
89ada4b146
@ -41,13 +41,13 @@ class ScheduleValidator(
|
||||
val time: LocalTime = request.time
|
||||
val themeId: Long = request.themeId
|
||||
|
||||
validateAlreadyExists(date, themeId, time)
|
||||
validateAlreadyExists(storeId, date, themeId, time)
|
||||
validateNotInPast(date, time)
|
||||
validateTimeNotConflict(storeId, request.date, request.themeId, request.time)
|
||||
}
|
||||
|
||||
private fun validateAlreadyExists(date: LocalDate, themeId: Long, time: LocalTime) {
|
||||
if (scheduleRepository.existsByDateAndThemeIdAndTime(date, themeId, time)) {
|
||||
private fun validateAlreadyExists(storeId: Long, date: LocalDate, themeId: Long, time: LocalTime) {
|
||||
if (scheduleRepository.existsDuplicate(storeId, date, themeId, time)) {
|
||||
log.info {
|
||||
"[ScheduleValidator.validateAlreadyExists] 동일한 날짜, 테마, 시간 존재로 인한 실패: date=${date} / themeId=${themeId} / time=${time}"
|
||||
}
|
||||
|
||||
@ -8,7 +8,18 @@ import java.time.LocalTime
|
||||
|
||||
interface ScheduleRepository : JpaRepository<ScheduleEntity, Long> {
|
||||
|
||||
fun existsByDateAndThemeIdAndTime(date: LocalDate, themeId: Long, time: LocalTime): Boolean
|
||||
@Query("""
|
||||
SELECT
|
||||
COUNT(s) > 0
|
||||
FROM
|
||||
ScheduleEntity s
|
||||
WHERE
|
||||
s.storeId = :storeId
|
||||
AND s.date = :date
|
||||
AND s.themeId = :themeId
|
||||
AND s.time = :time
|
||||
""")
|
||||
fun existsDuplicate(storeId: Long, date: LocalDate, themeId: Long, time: LocalTime): Boolean
|
||||
|
||||
@Query(
|
||||
"""
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user