diff --git a/src/main/java/org/cotato/csquiz/api/session/dto/UpdateSessionRequest.java b/src/main/java/org/cotato/csquiz/api/session/dto/UpdateSessionRequest.java index bde86c08..c1608383 100644 --- a/src/main/java/org/cotato/csquiz/api/session/dto/UpdateSessionRequest.java +++ b/src/main/java/org/cotato/csquiz/api/session/dto/UpdateSessionRequest.java @@ -1,6 +1,10 @@ package org.cotato.csquiz.api.session.dto; +import static org.cotato.csquiz.domain.attendance.enums.DeadLine.DEFAULT_ATTENDANCE_DEADLINE; +import static org.cotato.csquiz.domain.attendance.enums.DeadLine.DEFAULT_LATE_DEADLINE; + import java.time.LocalDate; +import java.util.Objects; import org.cotato.csquiz.api.attendance.dto.AttendanceDeadLineDto; import org.cotato.csquiz.domain.attendance.embedded.Location; import org.cotato.csquiz.domain.generation.enums.CSEducation; @@ -28,4 +32,10 @@ public record UpdateSessionRequest( @NotNull DevTalk devTalk ) { + public UpdateSessionRequest { + if (Objects.isNull(attendTime)) { + attendTime = new AttendanceDeadLineDto(DEFAULT_ATTENDANCE_DEADLINE.getTime(), + DEFAULT_LATE_DEADLINE.getTime()); + } + } } diff --git a/src/main/java/org/cotato/csquiz/domain/generation/service/SessionService.java b/src/main/java/org/cotato/csquiz/domain/generation/service/SessionService.java index 18dacacd..e0aef929 100644 --- a/src/main/java/org/cotato/csquiz/domain/generation/service/SessionService.java +++ b/src/main/java/org/cotato/csquiz/domain/generation/service/SessionService.java @@ -131,6 +131,7 @@ public void updateSessionDate(Session session, LocalDate newDate, AttendanceDead Attendance findAttendance = attendanceRepository.findBySessionId(session.getId()) .orElseThrow(() -> new EntityNotFoundException("해당 세션의 출석이 존재하지 않습니다")); + // 날짜가 바뀌지 않았고, 출결 시간이 모두 동일한 경우 if (newDate.equals(session.getSessionDate()) && findAttendance.getAttendanceDeadLine().toLocalTime().equals(newDeadline.attendanceDeadLine()) && @@ -140,7 +141,7 @@ public void updateSessionDate(Session session, LocalDate newDate, AttendanceDead session.updateSessionDate(newDate); LocalDateTime newAttendanceDeadline = LocalDateTime.of(newDate, newDeadline.attendanceDeadLine()); - LocalDateTime newLateDeadline = LocalDateTime.of(newDate, newDeadline.attendanceDeadLine()); + LocalDateTime newLateDeadline = LocalDateTime.of(newDate, newDeadline.lateDeadLine()); findAttendance.updateDeadLine(newAttendanceDeadline, newLateDeadline); attendanceRecordService.updateAttendanceStatus(findAttendance);