Skip to content

Commit

Permalink
๐Ÿž BugFix: ์ผ๊ธฐ ํ•„๋“œ ํƒ€์ž… ๋ณ€๊ฒฝ ๋ฐ ๋‚ ์งœ ์ค‘๋ณต ๊ฒ€์‚ฌ ๋กœ์ง ์ˆ˜์ • (#64)
Browse files Browse the repository at this point in the history
* ๐Ÿž BugFix: ์ผ๊ธฐ date ํ•„๋“œ ํƒ€์ž… LocalDate๋กœ ๋ณ€๊ฒฝ

* ๐Ÿž BugFix: ์ผ๊ธฐ ๋‚ ์งœ ์ค‘๋ณต ๊ฒ€์‚ฌ ๋กœ์ง ์ˆ˜์ •
  • Loading branch information
ahnsugyeong authored May 6, 2024
1 parent e198e30 commit 726d46a
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public static DiaryResponse toDiaryResponse(Diary diary) {

public static DiarySummaryResponse toDiarySummaryResponse(Diary diary) {
return DiarySummaryResponse.builder()
.date(diary.getDate().toLocalDate())
.date(diary.getDate())
.id(diary.getId())
.imageUrl(diary.getPainting().getImageUrl())
.build();
Expand All @@ -41,7 +41,7 @@ public static DiaryListResponse toDiaryListResponse(List<Diary> diaries, int yea

Map<LocalDate, Diary> diaryMap = diaries.stream()
.collect(Collectors.toMap(
diary -> diary.getDate().toLocalDate(),
diary -> diary.getDate(),
diary -> diary,
(existing, replacement) -> existing
));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import groovy.util.logging.Slf4j;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -38,13 +37,13 @@ public Diary createDiary(User user, DiaryCreateRequest request, String color,
return diaryRepository.save(diary);
}

private void validateDiaryDate(LocalDateTime date) {
if (date.toLocalDate().isAfter(LocalDate.now())) {
private void validateDiaryDate(LocalDate date) {
if (date.isAfter(LocalDate.now())) {
throw DiaryDateOutOfBoundsException.EXCEPTION;
}
}

private void checkDiaryDuplication(User user, LocalDateTime date) {
private void checkDiaryDuplication(User user, LocalDate date) {
if (diaryRepository.existsByDateAndUserId(date, user.getId())) {
throw DiaryDuplicateDateException.EXCEPTION;
}
Expand Down Expand Up @@ -84,13 +83,19 @@ public Diary updateDiary(User user, Long diaryId, DiaryUpdateRequest request) {
checkDiaryOwnership(user, diary);
if (request.getDate() != null) {
validateDiaryDate(request.getDate());
checkDiaryDuplication(user, request.getDate());
checkDuplicateDiaryExcludingSelf(user, request.getDate(), diaryId);
}
diary.updateDate(request.getDate());
diary.updateContent(request.getContent());
return diary;
}

private void checkDuplicateDiaryExcludingSelf(User user, LocalDate date, Long diaryId) {
if (diaryRepository.existsByDateAndUserIdAndIdNot(date, user.getId(), diaryId)) {
throw DiaryDuplicateDateException.EXCEPTION;
}
}

@Override
public void deleteDiary(User user, Long diaryId) {
Diary diary = diaryRepository.findById(diaryId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.time.LocalDate;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
Expand All @@ -15,9 +15,9 @@
@AllArgsConstructor
public class DiaryCreateRequest {

@Schema(example = "2024-04-21T21:10", type = "string")
@Schema(example = "2024-04-21", type = "string")
@NotNull(message = "date๋Š” ํ•„์ˆ˜๊ฐ’์ž…๋‹ˆ๋‹ค.")
private LocalDateTime date;
private LocalDate date;

@Schema(example = "์˜ค๋Š˜์€ ์˜ค๋žœ๋งŒ์— ์นœ๊ตฌ๋“ค๊ณผ ๋†€์ด๊ณต์›์— ๋‹ค๋…€์™”๋‹ค. ์ •๋ง ์‹ ๋‚˜๋Š” ํ•˜๋ฃจ์˜€๋‹ค. ์ง‘์— ๋Œ์•„์˜ค๋Š” ๊ธธ์—๋Š” ์กฐ๊ธˆ ํ—ˆ์ „ํ•˜๊ณ  ์•„์‰ฌ์šด ๋งˆ์Œ๋„ ๋“ค์—ˆ์ง€๋งŒ, ์˜ค๋Š˜ ํ•˜๋ฃจ ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ •๋ง ํ–‰๋ณตํ–ˆ๋‹ค.")
@NotEmpty(message = "content๋Š” ํ•„์ˆ˜๊ฐ’์ž…๋‹ˆ๋‹ค.")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package zzangdol.diary.presentation.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import java.time.LocalDateTime;
import java.time.LocalDate;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
Expand All @@ -13,8 +13,8 @@
@AllArgsConstructor
public class DiaryUpdateRequest {

@Schema(example = "2024-04-20T21:10", type = "string")
private LocalDateTime date;
@Schema(example = "2024-04-20", type = "string")
private LocalDate date;

@Schema(example = "์˜ค๋Š˜์€ ์˜ค๋žœ๋งŒ์— ์นœ๊ตฌ๋“ค๊ณผ ๋†€์ด๊ณต์›์— ๋‹ค๋…€์™”๋‹ค. ์ธ„๋Ÿฌ์Šค๋„ ๋จน๊ณ  ์ •๋ง ์‹ ๋‚˜๋Š” ํ•˜๋ฃจ์˜€๋‹ค. ์ง‘์— ๋Œ์•„์˜ค๋Š” ๊ธธ์—๋Š” ์กฐ๊ธˆ ํ—ˆ์ „ํ•˜๊ณ  ์•„์‰ฌ์šด ๋งˆ์Œ๋„ ๋“ค์—ˆ์ง€๋งŒ, ์˜ค๋Š˜ ํ•˜๋ฃจ ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ •๋ง ํ–‰๋ณตํ–ˆ๋‹ค.")
private String content;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package zzangdol.diary.presentation.dto.response;

import java.time.LocalDateTime;
import java.time.LocalDate;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
Expand All @@ -13,7 +13,7 @@
public class DiaryResponse {

private Long id;
private LocalDateTime date;
private LocalDate date;
private String content;
private String imageUrl;
private String color;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package zzangdol.diary.dao;

import java.time.LocalDateTime;
import java.time.LocalDate;
import org.springframework.data.jpa.repository.JpaRepository;
import zzangdol.diary.domain.Diary;
import zzangdol.user.domain.User;

public interface DiaryRepository extends JpaRepository<Diary, Long> {

boolean existsByDateAndUserId(LocalDateTime date, Long userId);
boolean existsByDateAndUserId(LocalDate date, Long userId);

boolean existsByDateAndUserIdAndIdNot(LocalDate date, Long userId, Long id);

void deleteByUser(User user);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package zzangdol.diary.dao.querydsl;

import static zzangdol.diary.domain.QDiary.diary;

import com.querydsl.jpa.impl.JPAQueryFactory;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import zzangdol.diary.domain.Diary;
import zzangdol.diary.domain.QDiary;

@Repository
@RequiredArgsConstructor
Expand All @@ -14,13 +15,11 @@ public class DiaryQueryRepositoryImpl implements DiaryQueryRepository {
private final JPAQueryFactory queryFactory;

public List<Diary> findDiariesByUserAndYearAndMonth(Long userId, int year, int month) {
QDiary qDiary = QDiary.diary;

return queryFactory.selectFrom(qDiary)
.where(qDiary.user.id.eq(userId)
.and(qDiary.date.year().eq(year))
.and(qDiary.date.month().eq(month)))
.orderBy(qDiary.date.asc())
return queryFactory.selectFrom(diary)
.where(diary.user.id.eq(userId)
.and(diary.date.year().eq(year))
.and(diary.date.month().eq(month)))
.orderBy(diary.date.asc())
.fetch();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import java.time.LocalDateTime;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import lombok.AccessLevel;
Expand All @@ -29,7 +29,7 @@ public class Diary extends BaseTimeEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private LocalDateTime date;
private LocalDate date;
private String content;

@ManyToOne(fetch = FetchType.LAZY)
Expand All @@ -44,14 +44,14 @@ public class Diary extends BaseTimeEntity {
private List<DiaryEmotion> diaryEmotions = new ArrayList<>();

@Builder
public Diary(LocalDateTime date, String content, User user, Painting painting) {
public Diary(LocalDate date, String content, User user, Painting painting) {
this.date = date;
this.content = content;
this.user = user;
this.painting = painting;
}

public void updateDate(LocalDateTime date) {
public void updateDate(LocalDate date) {
if (date != null) {
this.date = date;
}
Expand Down

0 comments on commit 726d46a

Please sign in to comment.