From b61d0a10cee0c39628635514a306b2c54dc589f8 Mon Sep 17 00:00:00 2001 From: zinzoddari Date: Sat, 6 Jan 2024 18:46:40 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=82=A0=EC=A7=9C=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=ED=95=98=EB=8A=94=20=EB=B6=80=EB=B6=84=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 --- .../yesslave/worktimer/application/WorkTimerService.java | 4 ++-- .../yesslave/worktimer/repository/WorkTimerRepository.java | 5 ++--- .../yesslave/worktimer/application/WorkTimerServiceTest.java | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/idiot/yesslave/worktimer/application/WorkTimerService.java b/src/main/java/org/idiot/yesslave/worktimer/application/WorkTimerService.java index 086a73c..2656031 100644 --- a/src/main/java/org/idiot/yesslave/worktimer/application/WorkTimerService.java +++ b/src/main/java/org/idiot/yesslave/worktimer/application/WorkTimerService.java @@ -20,11 +20,11 @@ public class WorkTimerService { public Long registerTimer(LocalDateTime checkIn, AuthenticateCodeGenerator authenticateCodeStrategy) { VerificationCode code = VerificationCode.create(authenticateCodeStrategy); - boolean isExistence = workTimerRepository.findByCheckInAndCode(checkIn.toLocalDate(), code).isPresent(); + boolean isExistence = workTimerRepository.findByCheckInGreaterThanEqualAndCode(checkIn.toLocalDate().atStartOfDay(), code).isPresent(); while (isExistence) { code = VerificationCode.create(authenticateCodeStrategy); - isExistence = workTimerRepository.findByCheckInAndCode(checkIn.toLocalDate(), code).isPresent(); + isExistence = workTimerRepository.findByCheckInGreaterThanEqualAndCode(checkIn.toLocalDate().atStartOfDay(), code).isPresent(); } return workTimerRepository.save(WorkTimer.registerOf(checkIn, code)) diff --git a/src/main/java/org/idiot/yesslave/worktimer/repository/WorkTimerRepository.java b/src/main/java/org/idiot/yesslave/worktimer/repository/WorkTimerRepository.java index 481cb48..f450fd3 100644 --- a/src/main/java/org/idiot/yesslave/worktimer/repository/WorkTimerRepository.java +++ b/src/main/java/org/idiot/yesslave/worktimer/repository/WorkTimerRepository.java @@ -3,14 +3,13 @@ import org.idiot.yesslave.worktimer.domain.VerificationCode; import org.idiot.yesslave.worktimer.domain.WorkTimer; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Optional; public interface WorkTimerRepository extends JpaRepository { - @Query("SELECT wt FROM WorkTimer wt WHERE DATE(wt.checkIn) = :checkIn AND wt.code = :code") - Optional findByCheckInAndCode(@Param("checkIn") LocalDate checkIn, @Param("code") VerificationCode code); + Optional findByCheckInGreaterThanEqualAndCode(@Param("checkIn") LocalDateTime checkIn, @Param("code") VerificationCode code); } diff --git a/src/test/java/org/idiot/yesslave/worktimer/application/WorkTimerServiceTest.java b/src/test/java/org/idiot/yesslave/worktimer/application/WorkTimerServiceTest.java index 7e290bf..7f32050 100644 --- a/src/test/java/org/idiot/yesslave/worktimer/application/WorkTimerServiceTest.java +++ b/src/test/java/org/idiot/yesslave/worktimer/application/WorkTimerServiceTest.java @@ -40,7 +40,7 @@ void success() { final WorkTimer expectedWorkTime = new WorkTimer(1L, checkIn, null, code); - given(workTimerRepository.findByCheckInAndCode(eq(checkIn.toLocalDate()), any(VerificationCode.class))) + given(workTimerRepository.findByCheckInGreaterThanEqualAndCode(eq(checkIn.toLocalDate().atStartOfDay()), any(VerificationCode.class))) .willReturn(Optional.empty()); given(workTimerRepository.save(any(WorkTimer.class)))