diff --git a/src/main/java/org/sophy/sophy/infrastructure/BooktalkRepository.java b/src/main/java/org/sophy/sophy/infrastructure/BooktalkRepository.java index b25870c..4bbdde5 100644 --- a/src/main/java/org/sophy/sophy/infrastructure/BooktalkRepository.java +++ b/src/main/java/org/sophy/sophy/infrastructure/BooktalkRepository.java @@ -30,4 +30,6 @@ default Booktalk getBooktalkById(Long booktalkId) { + " join m.operatorProperty o" + " where m.email = :email") List getWatingBooktalks(@Param("email") String email); + + List findAllByBooktalkStatusOrderByEndDate(BooktalkStatus booktalkStatus); } diff --git a/src/main/java/org/sophy/sophy/service/BooktalkService.java b/src/main/java/org/sophy/sophy/service/BooktalkService.java index 09c30dc..8df1442 100644 --- a/src/main/java/org/sophy/sophy/service/BooktalkService.java +++ b/src/main/java/org/sophy/sophy/service/BooktalkService.java @@ -1,7 +1,5 @@ package org.sophy.sophy.service; -import java.util.ArrayList; -import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; @@ -122,22 +120,8 @@ public void postBooktalkParticipation( // 마감임박 북토크 조회 public List getBooktalkDeadlineUpcoming() { - List placeList = placeRepository.findAll(); - - List booktalkList = new ArrayList<>(); - placeList.forEach(place -> place.getBooktalkList().forEach(booktalk -> { - // 모집중인 북토크만 추가 - if (booktalk.getBooktalkStatus() == BooktalkStatus.RECRUITING) { - booktalkList.add(BooktalkDeadlineUpcomingDto.of(booktalk)); - } - } - )); - - // 마감 임박순으로 정렬 - booktalkList.sort(Comparator.comparing(BooktalkDeadlineUpcomingDto::getEndDate)); - - return booktalkList; - + return booktalkRepository.findAllByBooktalkStatusOrderByEndDate(BooktalkStatus.RECRUITING) + .stream().map(BooktalkDeadlineUpcomingDto::of).collect(Collectors.toList()); } //지역으로 북토크 조회