diff --git a/src/main/kotlin/com/didit/adapter/integration/scheduler/MissionScheduler.kt b/src/main/kotlin/com/didit/adapter/integration/scheduler/MissionScheduler.kt index 13506a9a..5f78223b 100644 --- a/src/main/kotlin/com/didit/adapter/integration/scheduler/MissionScheduler.kt +++ b/src/main/kotlin/com/didit/adapter/integration/scheduler/MissionScheduler.kt @@ -3,13 +3,11 @@ package com.didit.adapter.integration.scheduler import com.didit.application.achievement.required.MissionRepository import com.didit.application.achievement.required.UserMissionRepository import com.didit.application.retrospect.required.RetrospectiveRepository +import com.didit.domain.shared.ServiceTime import jakarta.transaction.Transactional import org.slf4j.LoggerFactory import org.springframework.scheduling.annotation.Scheduled import org.springframework.stereotype.Component -import java.time.LocalDate -import java.time.LocalDateTime -import java.time.LocalTime import java.time.temporal.TemporalAdjusters @Component @@ -42,14 +40,13 @@ class MissionScheduler( consecutiveWeekMissions.forEach { userMission -> val lastWeekStart = - LocalDate.now().with(TemporalAdjusters.previousOrSame(java.time.DayOfWeek.MONDAY)).minusWeeks(1) - val lastWeekEnd = lastWeekStart.plusDays(6) + ServiceTime.today().with(TemporalAdjusters.previousOrSame(java.time.DayOfWeek.MONDAY)).minusWeeks(1) val lastWeekRetroCount = retrospectiveRepository.countCompletedByUserIdAndPeriod( userId = userMission.userId, - from = LocalDateTime.of(lastWeekStart, LocalTime.MIDNIGHT), - to = LocalDateTime.of(lastWeekEnd, LocalTime.of(23, 59, 59)), + from = ServiceTime.startOfDayUtc(lastWeekStart), + to = ServiceTime.startOfDayUtc(lastWeekStart.plusWeeks(1)), ) if (lastWeekRetroCount == 0) { diff --git a/src/main/kotlin/com/didit/application/achievement/MissionQueryService.kt b/src/main/kotlin/com/didit/application/achievement/MissionQueryService.kt index 33cda84d..f7189df2 100644 --- a/src/main/kotlin/com/didit/application/achievement/MissionQueryService.kt +++ b/src/main/kotlin/com/didit/application/achievement/MissionQueryService.kt @@ -16,12 +16,11 @@ import com.didit.domain.achievement.Mission import com.didit.domain.achievement.MissionStatus import com.didit.domain.achievement.MissionType import com.didit.domain.achievement.UserMission +import com.didit.domain.shared.ServiceTime import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import java.time.DayOfWeek import java.time.LocalDate -import java.time.LocalDateTime -import java.time.LocalTime import java.time.temporal.TemporalAdjusters import java.util.UUID @@ -89,15 +88,14 @@ class MissionQueryService( return null } - val weekStartDate = getWeekStartDate(LocalDate.now()) - val weekEndDate = weekStartDate.plusDays(6) - val from = LocalDateTime.of(weekStartDate, LocalTime.MIDNIGHT) - val to = LocalDateTime.of(weekEndDate, LocalTime.of(23, 59, 59)) + val weekStartDate = getWeekStartDate(ServiceTime.today()) + val from = ServiceTime.startOfDayUtc(weekStartDate) + val to = ServiceTime.startOfDayUtc(weekStartDate.plusWeeks(1)) val completedRetros = retrospectiveRepository.findCompletedByUserIdAndPeriod(userId, from, to) - val completedDates = completedRetros.map { it.completedAt?.toLocalDate() }.toSet() + val completedDates = completedRetros.mapNotNull { it.completedAt?.let(ServiceTime::toServiceDate) }.toSet() - val today = LocalDate.now() + val today = ServiceTime.today() val days = mutableListOf() for (i in 0..6) {