Skip to content

Commit 9470c15

Browse files
authored
Merge pull request #53 from umc-timeto/develop
[Fix] DailyLog 날짜 시스템 변경 및 다중 등록 허용
2 parents d64020f + 35b2b65 commit 9470c15

6 files changed

Lines changed: 17 additions & 20 deletions

File tree

src/main/java/com/umc/timeto/dailyLog/dto/DailyLogRequestDTO.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import lombok.Getter;
77
import lombok.NoArgsConstructor;
88

9+
import java.time.LocalDate;
10+
911
@Getter
1012
@NoArgsConstructor
1113
public class DailyLogRequestDTO {
@@ -14,4 +16,6 @@ public class DailyLogRequestDTO {
1416

1517
@Size(max = 255)
1618
private String answer3;
19+
20+
private LocalDate date;
1721
}

src/main/java/com/umc/timeto/dailyLog/entity/DailyLog.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,19 @@ public class DailyLog {
2424
@Column(nullable = false)
2525
private Achievement answer2; // 1-5 계획 이행
2626

27-
@Column(nullable = false)
2827
private String answer3; // 잘한 점과 아쉬운 점
2928

3029
@Column(nullable = false)
31-
private LocalDate createdAt;
30+
private LocalDate date;
3231

3332
@ManyToOne(fetch = FetchType.LAZY)
3433
@JoinColumn(name = "member_id")
3534
private Member member;
3635

37-
public void update(Satisfaction answer1, Achievement answer2, String answer3) {
36+
public void update(Satisfaction answer1, Achievement answer2, String answer3, LocalDate date) {
3837
this.answer1 = answer1;
3938
this.answer2 = answer2;
4039
this.answer3 = answer3;
40+
this.date = date;
4141
}
4242
}

src/main/java/com/umc/timeto/dailyLog/repository/DailyLogRepository.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414

1515
@Repository
1616
public interface DailyLogRepository extends JpaRepository<DailyLog, Long> {
17-
Optional<DailyLog> findByMemberAndCreatedAt(Member member, LocalDate createdAt);
18-
List<DailyLog> findByMemberAndCreatedAtBetween(Member member, LocalDate start, LocalDate end);
17+
List<DailyLog> findByMemberAndDateBetweenOrderByDateAscIdAsc(Member member, LocalDate start, LocalDate end);
1918

2019
// 회원의 일지 전체 삭제
2120
@Modifying(clearAutomatically = true, flushAutomatically = true)

src/main/java/com/umc/timeto/dailyLog/serivce/DailyLogServiceImpl.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,11 @@ public DailyLogResponseDTO saveLog(DailyLogRequestDTO dto, Long memberId) {
2828
Member member = memberRepository.findById(memberId)
2929
.orElseThrow(() -> new GlobalException(ErrorCode.MEMBER_NOT_FOUND)); // 에러 코드 수정
3030

31-
LocalDate today = LocalDate.now();
32-
if (dailyLogRepository.findByMemberAndCreatedAt(member, today).isPresent()) {
33-
throw new GlobalException(ErrorCode.DUPLICATE_DAILY_LOG);
34-
}
35-
3631
DailyLog dailyLog = DailyLog.builder()
3732
.answer1(dto.getAnswer1())
3833
.answer2(dto.getAnswer2())
3934
.answer3(dto.getAnswer3())
40-
.createdAt(today)
35+
.date(dto.getDate())
4136
.member(member)
4237
.build();
4338

@@ -48,7 +43,7 @@ public DailyLogResponseDTO saveLog(DailyLogRequestDTO dto, Long memberId) {
4843
savedLog.getAnswer1(),
4944
savedLog.getAnswer2(),
5045
savedLog.getAnswer3(),
51-
savedLog.getCreatedAt()
46+
savedLog.getDate()
5247
);
5348
}
5449

@@ -61,9 +56,9 @@ public List<DailyLogMonthlyDTO> getMonthlyLogs(int year, int month, Long memberI
6156
LocalDate start = LocalDate.of(year, month, 1);
6257
LocalDate end = start.withDayOfMonth(start.lengthOfMonth());
6358

64-
return dailyLogRepository.findByMemberAndCreatedAtBetween(member, start, end)
59+
return dailyLogRepository.findByMemberAndDateBetweenOrderByDateAscIdAsc(member, start, end)
6560
.stream()
66-
.map(log -> new DailyLogMonthlyDTO(log.getId(), log.getCreatedAt(), log.getAnswer1()))
61+
.map(log -> new DailyLogMonthlyDTO(log.getId(), log.getDate(), log.getAnswer1()))
6762
.toList();
6863
}
6964

@@ -86,7 +81,7 @@ public DailyLogResponseDTO getDailyLog(Long logId, Long memberId) {
8681
dailyLog.getAnswer1(),
8782
dailyLog.getAnswer2(),
8883
dailyLog.getAnswer3(),
89-
dailyLog.getCreatedAt()
84+
dailyLog.getDate()
9085
);
9186
}
9287

@@ -102,14 +97,14 @@ public DailyLogResponseDTO updateLog(Long logId, DailyLogRequestDTO dto, Long me
10297
throw new GlobalException(ErrorCode.LOG_FORBIDDEN);
10398
}
10499

105-
dailyLog.update(dto.getAnswer1(), dto.getAnswer2(), dto.getAnswer3());
100+
dailyLog.update(dto.getAnswer1(), dto.getAnswer2(), dto.getAnswer3(), dto.getDate());
106101

107102
return new DailyLogResponseDTO(
108103
dailyLog.getId(),
109104
dailyLog.getAnswer1(),
110105
dailyLog.getAnswer2(),
111106
dailyLog.getAnswer3(),
112-
dailyLog.getCreatedAt()
107+
dailyLog.getDate()
113108
);
114109
}
115110

src/main/java/com/umc/timeto/global/apiPayload/code/ErrorCode.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ public enum ErrorCode {
5858
/**
5959
* 409 CONFLICT - 요청 충돌
6060
*/
61-
DUPLICATE_DAILY_LOG(HttpStatus.CONFLICT, "일지는 하루에 하나만 작성할 수 있습니다."),
6261
AUTH_MEMBER_DUPLICATE(HttpStatus.CONFLICT, "이미 가입된 회원입니다."),
6362
AUTH_EMAIL_DUPLICATE(HttpStatus.CONFLICT, "이미 사용 중인 이메일입니다."),
6463
AUTH_SOCIAL_ID_DUPLICATE(HttpStatus.CONFLICT, "이미 연결된 소셜 계정입니다."),

src/main/java/com/umc/timeto/global/config/SwaggerConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ public class SwaggerConfig {
2020
@Bean
2121
public OpenAPI openAPI() {
2222
Info info = new Info()
23-
.title("ZERO-Helper API") //이름
24-
.description("당신의 평범한 일상이 취업 스펙이 되는 곳, Zero Helper"); //설명
23+
.title("timeto API") //이름
24+
.description("ADHD를 가진 개인을 지원하기 위해 설계된 태스크 관리 서비스, timeto"); //설명
2525

2626
Server localServer = new Server().url("/");
2727

0 commit comments

Comments
 (0)