Skip to content

Commit

Permalink
#106 Refactor: TastingNote에 시음 날짜 추가 (#107)
Browse files Browse the repository at this point in the history
* #106 Refactor: TastingNote에 시음 날짜 추가

* #106 Refactor: findMemberBy~ 메소드 getMemberBy~로 변경

* #106 Refactor: 와인 검색 시 이름 정렬 jpa 추가
  • Loading branch information
jeongyeon0208 authored Sep 23, 2024
1 parent fe0b996 commit 75c0432
Show file tree
Hide file tree
Showing 9 changed files with 40 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public static TastingNote toTastingNoteEntity(NoteRequestDTO noteRequestDTO, @No

.wine(wine)
.color(noteRequestDTO.getColor())
.tasteDate(noteRequestDTO.getTasteDate())

.sugarContent(noteRequestDTO.getSugarContent())
.acidity(noteRequestDTO.getAcidity())
Expand Down Expand Up @@ -47,6 +48,7 @@ public static NoteResponseDTO toTastingNoteResponseDTO(TastingNote tastingNote)
.imageUrl(wine.getImageUrl())

.color(tastingNote.getColor())
.tasteDate(tastingNote.getTasteDate())

.sugarContent(tastingNote.getSugarContent())
.acidity(tastingNote.getAcidity())
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/com/drinkeg/drinkeg/domain/TastingNote.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

Expand All @@ -33,6 +34,9 @@ public class TastingNote extends BaseEntity {

private String color;

// 시음 날짜
private LocalDate tasteDate;

// 점수 0 ~ 5
private int sugarContent;
private int acidity;
Expand Down Expand Up @@ -65,6 +69,11 @@ public void updateColor(String color) {
this.color = color;
}

// 시음 날짜 업데이트
public void updatetasteDate(LocalDate tasteDate) {
this.tasteDate = tasteDate;
}

// 맛 업데이트
public void updateSugarContent(int sugarContent) {
this.sugarContent = sugarContent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

Expand All @@ -21,11 +22,15 @@ public class NoteRequestDTO {
@NotBlank(message = "색상 선택 필수입니다.")
private String color;

@NotNull(message = "시음 날짜는 필수입니다")
private LocalDate tasteDate;

@NotNull(message = "당도 선택은 필수입니다.")
@Min(value = 0, message = "당도는 0 이상 10 이하의 정수 값이어야 합니다.")
@Max(value = 10, message = "당도는 0 이상 10 이하의 정수 값이어야 합니다.")
private int sugarContent;


@NotNull(message = "산도 선택은 필수입니다.")
@Min(value = 0, message = "산도는 0 이상 10 이하의 정수 값이어야 합니다.")
@Max(value = 10, message = "산도는 0 이상 10 이하의 정수 값이어야 합니다.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

Expand All @@ -13,6 +14,7 @@ public class NoteUpdateRequestDTO {
private Long wineId;

private String color;
private LocalDate tastingDate;

@Min(value = 0, message = "당도는 0 이상 5 이하의 정수 값이어야 합니다.")
@Max(value = 5, message = "당도는 0 이상 5 이하의 정수 값이어야 합니다.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

Expand All @@ -23,6 +24,7 @@ public class NoteResponseDTO {
private String imageUrl;

private String color;
private LocalDate tasteDate;

// 점수 0 ~ 5
private int sugarContent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
public interface WineRepository extends JpaRepository<Wine, Long> {

// 검색한 와인 이름이 포함된 모든 와인을 찾는다.
List<Wine> findAllByNameContainingIgnoreCase(String name);
List<Wine> findAllByNameContainingIgnoreCaseOrderByName(String name);

// 추천 와인 조회를 위한 쿼리
List<Wine> findAllBySortContainingIgnoreCase(String sort);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

public interface MemberService {

public Member findMemberById(Long memberId);
public Member getMemberById(Long memberId);

public Member findMemberByUsername(String username);
public Member getMemberByUsername(String username);

public Member loadMemberByPrincipleDetail(PrincipalDetail principalDetail);
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,16 @@ public class MemberServiceImpl implements MemberService{
private final MemberRepository memberRepository;

@Override
public Member findMemberById(Long memberId) {
public Member getMemberById(Long memberId) {

return memberRepository.findById(memberId).orElseThrow(() -> {
throw new GeneralException(ErrorStatus.MEMBER_NOT_FOUND);
});
return memberRepository.findById(memberId).orElseThrow(()
-> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND));
}

@Override
public Member findMemberByUsername(String username) {
return memberRepository.findByUsername(username).orElseThrow(() -> {
throw new GeneralException(ErrorStatus.MEMBER_NOT_FOUND);
});
public Member getMemberByUsername(String username) {
return memberRepository.findByUsername(username).orElseThrow(()
-> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Comparator;
import java.util.List;

@Service
Expand All @@ -39,9 +40,8 @@ public void saveNote(NoteRequestDTO noteRequestDTO, PrincipalDetail principalDe

// 와인을 찾는다.
Long wineId = noteRequestDTO.getWineId();
Wine wine = wineRepository.findById(wineId).orElseThrow(()-> {
throw new GeneralException(ErrorStatus.WINE_NOT_FOUND);
}
Wine wine = wineRepository.findById(wineId).orElseThrow(()
-> new GeneralException(ErrorStatus.WINE_NOT_FOUND)
);

// TastingNote를 저장한다.
Expand Down Expand Up @@ -78,9 +78,11 @@ public List<NotePriviewResponseDTO> findAllNote(PrincipalDetail principalDetail)
// Member의 TastingNote를 찾는다.
List<TastingNote> foundNotes = member.getTastingNotes();

// TastingNote를 NotePreviewDTO로 변환한 후 AllNoteResponseDTO로 변환한다.

return foundNotes.stream().map(TastingNoteConverter::toTastingNotePreviewDTO).toList();
// TastingNote를 최신 생성 순으로 정렬한 후, TastingNotePreviewDTO로 변환한다
return foundNotes.stream()
.sorted(Comparator.comparing(TastingNote::getCreatedAt).reversed())
.map(TastingNoteConverter::toTastingNotePreviewDTO)
.toList();
}

@Override
Expand Down Expand Up @@ -109,6 +111,9 @@ public void updateTastingNote(Long noteId, NoteUpdateRequestDTO noteUpdateReques
if(noteUpdateRequestDTO.getColor() != null) {
foundNote.updateColor(noteUpdateRequestDTO.getColor());
}
if(noteUpdateRequestDTO.getTastingDate() != null) {
foundNote.updatetasteDate(noteUpdateRequestDTO.getTastingDate());
}

if(noteUpdateRequestDTO.getSugarContent() != null) {
foundNote.updateSugarContent(noteUpdateRequestDTO.getSugarContent());
Expand Down

0 comments on commit 75c0432

Please sign in to comment.