diff --git a/src/main/java/com/umc/timeto/dailyLog/dto/DailyLogRequestDTO.java b/src/main/java/com/umc/timeto/dailyLog/dto/DailyLogRequestDTO.java index 26f6859..d9bdab6 100644 --- a/src/main/java/com/umc/timeto/dailyLog/dto/DailyLogRequestDTO.java +++ b/src/main/java/com/umc/timeto/dailyLog/dto/DailyLogRequestDTO.java @@ -6,6 +6,8 @@ import lombok.Getter; import lombok.NoArgsConstructor; +import java.time.LocalDate; + @Getter @NoArgsConstructor public class DailyLogRequestDTO { @@ -14,4 +16,6 @@ public class DailyLogRequestDTO { @Size(max = 255) private String answer3; + + private LocalDate date; } diff --git a/src/main/java/com/umc/timeto/dailyLog/entity/DailyLog.java b/src/main/java/com/umc/timeto/dailyLog/entity/DailyLog.java index 886a2fe..501ae7f 100644 --- a/src/main/java/com/umc/timeto/dailyLog/entity/DailyLog.java +++ b/src/main/java/com/umc/timeto/dailyLog/entity/DailyLog.java @@ -24,19 +24,19 @@ public class DailyLog { @Column(nullable = false) private Achievement answer2; // 1-5 계획 이행 - @Column(nullable = false) private String answer3; // 잘한 점과 아쉬운 점 @Column(nullable = false) - private LocalDate createdAt; + private LocalDate date; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; - public void update(Satisfaction answer1, Achievement answer2, String answer3) { + public void update(Satisfaction answer1, Achievement answer2, String answer3, LocalDate date) { this.answer1 = answer1; this.answer2 = answer2; this.answer3 = answer3; + this.date = date; } } diff --git a/src/main/java/com/umc/timeto/dailyLog/repository/DailyLogRepository.java b/src/main/java/com/umc/timeto/dailyLog/repository/DailyLogRepository.java index 3a73420..0d4701c 100644 --- a/src/main/java/com/umc/timeto/dailyLog/repository/DailyLogRepository.java +++ b/src/main/java/com/umc/timeto/dailyLog/repository/DailyLogRepository.java @@ -14,8 +14,7 @@ @Repository public interface DailyLogRepository extends JpaRepository { - Optional findByMemberAndCreatedAt(Member member, LocalDate createdAt); - List findByMemberAndCreatedAtBetween(Member member, LocalDate start, LocalDate end); + List findByMemberAndDateBetweenOrderByDateAscIdAsc(Member member, LocalDate start, LocalDate end); // 회원의 일지 전체 삭제 @Modifying(clearAutomatically = true, flushAutomatically = true) diff --git a/src/main/java/com/umc/timeto/dailyLog/serivce/DailyLogServiceImpl.java b/src/main/java/com/umc/timeto/dailyLog/serivce/DailyLogServiceImpl.java index 12b573b..cf44b65 100644 --- a/src/main/java/com/umc/timeto/dailyLog/serivce/DailyLogServiceImpl.java +++ b/src/main/java/com/umc/timeto/dailyLog/serivce/DailyLogServiceImpl.java @@ -28,16 +28,11 @@ public DailyLogResponseDTO saveLog(DailyLogRequestDTO dto, Long memberId) { Member member = memberRepository.findById(memberId) .orElseThrow(() -> new GlobalException(ErrorCode.MEMBER_NOT_FOUND)); // 에러 코드 수정 - LocalDate today = LocalDate.now(); - if (dailyLogRepository.findByMemberAndCreatedAt(member, today).isPresent()) { - throw new GlobalException(ErrorCode.DUPLICATE_DAILY_LOG); - } - DailyLog dailyLog = DailyLog.builder() .answer1(dto.getAnswer1()) .answer2(dto.getAnswer2()) .answer3(dto.getAnswer3()) - .createdAt(today) + .date(dto.getDate()) .member(member) .build(); @@ -48,7 +43,7 @@ public DailyLogResponseDTO saveLog(DailyLogRequestDTO dto, Long memberId) { savedLog.getAnswer1(), savedLog.getAnswer2(), savedLog.getAnswer3(), - savedLog.getCreatedAt() + savedLog.getDate() ); } @@ -61,9 +56,9 @@ public List getMonthlyLogs(int year, int month, Long memberI LocalDate start = LocalDate.of(year, month, 1); LocalDate end = start.withDayOfMonth(start.lengthOfMonth()); - return dailyLogRepository.findByMemberAndCreatedAtBetween(member, start, end) + return dailyLogRepository.findByMemberAndDateBetweenOrderByDateAscIdAsc(member, start, end) .stream() - .map(log -> new DailyLogMonthlyDTO(log.getId(), log.getCreatedAt(), log.getAnswer1())) + .map(log -> new DailyLogMonthlyDTO(log.getId(), log.getDate(), log.getAnswer1())) .toList(); } @@ -86,7 +81,7 @@ public DailyLogResponseDTO getDailyLog(Long logId, Long memberId) { dailyLog.getAnswer1(), dailyLog.getAnswer2(), dailyLog.getAnswer3(), - dailyLog.getCreatedAt() + dailyLog.getDate() ); } @@ -102,14 +97,14 @@ public DailyLogResponseDTO updateLog(Long logId, DailyLogRequestDTO dto, Long me throw new GlobalException(ErrorCode.LOG_FORBIDDEN); } - dailyLog.update(dto.getAnswer1(), dto.getAnswer2(), dto.getAnswer3()); + dailyLog.update(dto.getAnswer1(), dto.getAnswer2(), dto.getAnswer3(), dto.getDate()); return new DailyLogResponseDTO( dailyLog.getId(), dailyLog.getAnswer1(), dailyLog.getAnswer2(), dailyLog.getAnswer3(), - dailyLog.getCreatedAt() + dailyLog.getDate() ); } diff --git a/src/main/java/com/umc/timeto/global/apiPayload/code/ErrorCode.java b/src/main/java/com/umc/timeto/global/apiPayload/code/ErrorCode.java index 5fc3ffc..1599eaf 100644 --- a/src/main/java/com/umc/timeto/global/apiPayload/code/ErrorCode.java +++ b/src/main/java/com/umc/timeto/global/apiPayload/code/ErrorCode.java @@ -58,7 +58,6 @@ public enum ErrorCode { /** * 409 CONFLICT - 요청 충돌 */ - DUPLICATE_DAILY_LOG(HttpStatus.CONFLICT, "일지는 하루에 하나만 작성할 수 있습니다."), AUTH_MEMBER_DUPLICATE(HttpStatus.CONFLICT, "이미 가입된 회원입니다."), AUTH_EMAIL_DUPLICATE(HttpStatus.CONFLICT, "이미 사용 중인 이메일입니다."), AUTH_SOCIAL_ID_DUPLICATE(HttpStatus.CONFLICT, "이미 연결된 소셜 계정입니다."), diff --git a/src/main/java/com/umc/timeto/global/config/SwaggerConfig.java b/src/main/java/com/umc/timeto/global/config/SwaggerConfig.java index 8f90704..635c3c8 100644 --- a/src/main/java/com/umc/timeto/global/config/SwaggerConfig.java +++ b/src/main/java/com/umc/timeto/global/config/SwaggerConfig.java @@ -20,8 +20,8 @@ public class SwaggerConfig { @Bean public OpenAPI openAPI() { Info info = new Info() - .title("ZERO-Helper API") //이름 - .description("당신의 평범한 일상이 취업 스펙이 되는 곳, Zero Helper"); //설명 + .title("timeto API") //이름 + .description("ADHD를 가진 개인을 지원하기 위해 설계된 태스크 관리 서비스, timeto"); //설명 Server localServer = new Server().url("/");