From edf1fcab68c5999cdb6c429c7980b1e6ad47a6a1 Mon Sep 17 00:00:00 2001 From: SL313 Date: Tue, 4 Feb 2025 00:58:41 +0900 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20newsletter=20=ED=95=AB=ED=86=A0?= =?UTF-8?q?=ED=94=BD=20=EB=AA=A9=EB=A1=9D=20=EB=B3=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/newsletter/NewsletterController.java | 6 ++++++ .../dto/response/NewsletterListResponseDto.java | 10 +++------- .../newsletter/repository/NewsletterRepository.java | 6 ++---- .../domain/newsletter/service/NewsletterService.java | 7 ++++++- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java index fd6cd7d..40aa02d 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java +++ b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java @@ -20,6 +20,12 @@ public class NewsletterController { private final NewsletterService newsletterService; + /** + * 뉴스레터 핫토픽 목록 보기 + * @param category + * @param date + * @return + */ @GetMapping("/list") public ApiResponse> getNewsletterList(@RequestParam("category") String category, @RequestParam("date") LocalDate date) { diff --git a/src/main/java/com/example/koschool/domain/newsletter/dto/response/NewsletterListResponseDto.java b/src/main/java/com/example/koschool/domain/newsletter/dto/response/NewsletterListResponseDto.java index c963de9..cf5a8c1 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/dto/response/NewsletterListResponseDto.java +++ b/src/main/java/com/example/koschool/domain/newsletter/dto/response/NewsletterListResponseDto.java @@ -1,18 +1,14 @@ package com.example.koschool.domain.newsletter.dto.response; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @Getter +@AllArgsConstructor public class NewsletterListResponseDto { - private Long newsletterId; + private Long id; private String title; - @Builder - private NewsletterListResponseDto(Long newsletterId, String title) { - this.newsletterId = newsletterId; - this.title = title; - } - } diff --git a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java index b061ba5..686316c 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java +++ b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java @@ -11,9 +11,7 @@ @Repository public interface NewsletterRepository extends JpaRepository { - @Query("SELECT NEW com.example.koschool.domain.newsletter.dto.response.NewsletterListResponseDto(n.id, n.title)" - + "FROM Newsletter n " - + "WHERE n.category = :category AND n.date = :date") - List findByCategoryAndDate(String category, LocalDate date); + + List findByCategoryAndDate(String category, LocalDate date); } diff --git a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java index 32ff4bc..1533583 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java +++ b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java @@ -9,6 +9,7 @@ import java.time.LocalDate; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -21,7 +22,11 @@ public class NewsletterService { private final NewsletterRepository newsletterRepository; public List getNewsLetterList(String category, LocalDate date) { - return newsletterRepository.findByCategoryAndDate(category, date); + List newsletters = newsletterRepository.findByCategoryAndDate(category, date); + + return newsletters.stream() + .map(newsletter -> new NewsletterListResponseDto(newsletter.getId(), newsletter.getTitle())) + .collect(Collectors.toList()); } public NewsletterResponseDto getNewsLetter(String newsletterId) { From 039a129dd3a4411fa664646c5bc6adeda28aaa87 Mon Sep 17 00:00:00 2001 From: SL313 Date: Tue, 4 Feb 2025 09:06:12 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20newsletter=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EC=84=B8=EC=8A=A4=20=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/newsletter/NewsletterController.java | 12 ++++++++++++ .../newsletter/repository/NewsletterRepository.java | 2 ++ .../domain/newsletter/service/NewsletterService.java | 8 ++++++++ 3 files changed, 22 insertions(+) diff --git a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java index 40aa02d..5b9b39a 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java +++ b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java @@ -32,6 +32,18 @@ public ApiResponse> getNewsletterList(@RequestPa return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsLetterList(category, date)); } + /** + * 뉴스레터 핫토픽 랭킹 보기 + * @param category + * @param date + * @return + */ + @GetMapping("/list/likes") + public ApiResponse> getNewsletterListWithLikes(@RequestParam("category") String category, + @RequestParam("date") LocalDate date) { + return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsLetterListWithLikes(category, date)); + } + @GetMapping("/detail") public ApiResponse getNewsletter(@RequestParam("newsletterId") String newsletterId) { return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsLetter(newsletterId)); diff --git a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java index 686316c..6932409 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java +++ b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java @@ -14,4 +14,6 @@ public interface NewsletterRepository extends JpaRepository List findByCategoryAndDate(String category, LocalDate date); + List findByCategoryAndDateOrderByLikesDesc(String category, LocalDate date); + } diff --git a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java index 1533583..8940d2d 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java +++ b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java @@ -29,6 +29,14 @@ public List getNewsLetterList(String category, LocalD .collect(Collectors.toList()); } + public List getNewsLetterListWithLikes(String category, LocalDate date) { + List newsletters = newsletterRepository.findByCategoryAndDateOrderByLikesDesc(category, date); + + return newsletters.stream() + .map(newsletter -> new NewsletterListResponseDto(newsletter.getId(), newsletter.getTitle())) + .collect(Collectors.toList()); + } + public NewsletterResponseDto getNewsLetter(String newsletterId) { Optional newsletter = newsletterRepository.findById(newsletterId); if(newsletter.isEmpty()){ From ef6aa87b97945ebb1caf72bc3ae6f9496c4589b0 Mon Sep 17 00:00:00 2001 From: SL313 Date: Tue, 4 Feb 2025 09:12:59 +0900 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20newsletter=20=ED=95=AB=ED=86=A0?= =?UTF-8?q?=ED=94=BD=20=EC=B5=9C=EC=8B=A0=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4=20=EA=B0=9C?= =?UTF-8?q?=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../koschool/domain/newsletter/NewsletterController.java | 6 ++---- .../domain/newsletter/repository/NewsletterRepository.java | 2 +- .../domain/newsletter/service/NewsletterService.java | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java index 5b9b39a..bf792b8 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java +++ b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java @@ -23,13 +23,11 @@ public class NewsletterController { /** * 뉴스레터 핫토픽 목록 보기 * @param category - * @param date * @return */ @GetMapping("/list") - public ApiResponse> getNewsletterList(@RequestParam("category") String category, - @RequestParam("date") LocalDate date) { - return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsLetterList(category, date)); + public ApiResponse> getNewsletterList(@RequestParam("category") String category) { + return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsLetterList(category)); } /** diff --git a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java index 6932409..150b043 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java +++ b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java @@ -12,7 +12,7 @@ @Repository public interface NewsletterRepository extends JpaRepository { - List findByCategoryAndDate(String category, LocalDate date); + List findTop3ByCategoryOrderByIdDesc(String category); List findByCategoryAndDateOrderByLikesDesc(String category, LocalDate date); diff --git a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java index 8940d2d..3552938 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java +++ b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java @@ -21,8 +21,8 @@ public class NewsletterService { private final NewsletterRepository newsletterRepository; - public List getNewsLetterList(String category, LocalDate date) { - List newsletters = newsletterRepository.findByCategoryAndDate(category, date); + public List getNewsLetterList(String category) { + List newsletters = newsletterRepository.findTop3ByCategoryOrderByIdDesc(category); return newsletters.stream() .map(newsletter -> new NewsletterListResponseDto(newsletter.getId(), newsletter.getTitle())) From 490efe02190e3686ff71af00d354238cccb0cb4b Mon Sep 17 00:00:00 2001 From: SL313 Date: Tue, 4 Feb 2025 09:44:53 +0900 Subject: [PATCH 4/6] =?UTF-8?q?feat:=20newsletter=20=ED=95=AB=ED=86=A0?= =?UTF-8?q?=ED=94=BD=20=EB=9E=AD=ED=82=B9=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4=20=EA=B0=9C?= =?UTF-8?q?=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../koschool/domain/newsletter/NewsletterController.java | 4 ++-- .../domain/newsletter/repository/NewsletterRepository.java | 7 +++++++ .../domain/newsletter/service/NewsletterService.java | 6 +++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java index bf792b8..5db0904 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java +++ b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java @@ -21,7 +21,7 @@ public class NewsletterController { private final NewsletterService newsletterService; /** - * 뉴스레터 핫토픽 목록 보기 + * 메인 페이지 뉴스레터 핫토픽 목록 보기 * @param category * @return */ @@ -31,7 +31,7 @@ public ApiResponse> getNewsletterList(@RequestPa } /** - * 뉴스레터 핫토픽 랭킹 보기 + * 더보기 페이지 뉴스레터 핫토픽 랭킹 보기 * @param category * @param date * @return diff --git a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java index 150b043..4e6e356 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java +++ b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java @@ -5,8 +5,10 @@ import com.example.koschool.domain.newsletter.entity.Newsletter; import java.time.LocalDate; import java.util.List; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @Repository @@ -16,4 +18,9 @@ public interface NewsletterRepository extends JpaRepository List findByCategoryAndDateOrderByLikesDesc(String category, LocalDate date); + @Query("SELECT n FROM Newsletter n WHERE n.category = :category " + + "AND n.date BETWEEN :startDate AND :endDate ORDER BY n.likes DESC") + List findTop3ByCategoryAndDateBetweenOrderByLikesDesc(@Param("category") String category, + @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, Pageable pageable); + } diff --git a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java index 3552938..7e1b86d 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java +++ b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java @@ -11,6 +11,8 @@ import java.util.Optional; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -30,8 +32,10 @@ public List getNewsLetterList(String category) { } public List getNewsLetterListWithLikes(String category, LocalDate date) { - List newsletters = newsletterRepository.findByCategoryAndDateOrderByLikesDesc(category, date); + Pageable pageable = PageRequest.of(0, 3); + List newsletters = newsletterRepository.findTop3ByCategoryAndDateBetweenOrderByLikesDesc( + category, date.minusMonths(1), date, pageable); return newsletters.stream() .map(newsletter -> new NewsletterListResponseDto(newsletter.getId(), newsletter.getTitle())) .collect(Collectors.toList()); From ac152819c5bea70fc0493788f8aed15ff95b5f2e Mon Sep 17 00:00:00 2001 From: SL313 Date: Tue, 4 Feb 2025 10:00:08 +0900 Subject: [PATCH 5/6] =?UTF-8?q?feat:=20=EC=9D=B4=EC=A0=84=20newsletter=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EC=84=B8=EC=8A=A4=20=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/newsletter/NewsletterController.java | 14 ++++++++++++-- .../repository/NewsletterRepository.java | 3 +-- .../newsletter/service/NewsletterService.java | 15 ++++++++++----- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java index 5db0904..bade0e5 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java +++ b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java @@ -27,7 +27,7 @@ public class NewsletterController { */ @GetMapping("/list") public ApiResponse> getNewsletterList(@RequestParam("category") String category) { - return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsLetterList(category)); + return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsletterList(category)); } /** @@ -39,7 +39,17 @@ public ApiResponse> getNewsletterList(@RequestPa @GetMapping("/list/likes") public ApiResponse> getNewsletterListWithLikes(@RequestParam("category") String category, @RequestParam("date") LocalDate date) { - return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsLetterListWithLikes(category, date)); + return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsletterListWithLikes(category, date)); + } + + /** + * 더보기 페이지 이전 뉴스레터 목록 보기 + * @param category + * @return + */ + @GetMapping("/list/previous") + public ApiResponse> getNewsletterListPrevious(@RequestParam("category") String category) { + return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsletterListPrevious(category)); } @GetMapping("/detail") diff --git a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java index 4e6e356..39eddb4 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java +++ b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java @@ -16,11 +16,10 @@ public interface NewsletterRepository extends JpaRepository List findTop3ByCategoryOrderByIdDesc(String category); - List findByCategoryAndDateOrderByLikesDesc(String category, LocalDate date); - @Query("SELECT n FROM Newsletter n WHERE n.category = :category " + "AND n.date BETWEEN :startDate AND :endDate ORDER BY n.likes DESC") List findTop3ByCategoryAndDateBetweenOrderByLikesDesc(@Param("category") String category, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, Pageable pageable); + List findAllByCategoryOrderByIdDesc(String category); } diff --git a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java index 7e1b86d..4a44efb 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java +++ b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java @@ -23,16 +23,14 @@ public class NewsletterService { private final NewsletterRepository newsletterRepository; - public List getNewsLetterList(String category) { + public List getNewsletterList(String category) { List newsletters = newsletterRepository.findTop3ByCategoryOrderByIdDesc(category); - return newsletters.stream() .map(newsletter -> new NewsletterListResponseDto(newsletter.getId(), newsletter.getTitle())) .collect(Collectors.toList()); } - public List getNewsLetterListWithLikes(String category, LocalDate date) { - + public List getNewsletterListWithLikes(String category, LocalDate date) { Pageable pageable = PageRequest.of(0, 3); List newsletters = newsletterRepository.findTop3ByCategoryAndDateBetweenOrderByLikesDesc( category, date.minusMonths(1), date, pageable); @@ -41,9 +39,16 @@ public List getNewsLetterListWithLikes(String categor .collect(Collectors.toList()); } + public List getNewsletterListPrevious(String category) { + List newsletters = newsletterRepository.findAllByCategoryOrderByIdDesc(category); + return newsletters.stream() + .map(newsletter -> new NewsletterListResponseDto(newsletter.getId(), newsletter.getTitle())) + .collect(Collectors.toList()); + } + public NewsletterResponseDto getNewsLetter(String newsletterId) { Optional newsletter = newsletterRepository.findById(newsletterId); - if(newsletter.isEmpty()){ + if (newsletter.isEmpty()) { throw new CustomException(ErrorCode.NEWSLETTER_NOT_FOUND); } return NewsletterResponseDto.fromEntityToDto(newsletter.get()); From 913cb41ffe893429ddaef21183d1d446361e8827 Mon Sep 17 00:00:00 2001 From: SL313 Date: Tue, 4 Feb 2025 10:07:44 +0900 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20newsletter=20=EC=83=81=EC=84=B8=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=A1=B0=ED=9A=8C=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=84=B8=EC=8A=A4=20=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/newsletter/NewsletterController.java | 9 +++++++-- .../newsletter/dto/response/NewsletterResponseDto.java | 6 ++---- .../newsletter/repository/NewsletterRepository.java | 4 ++++ .../domain/newsletter/service/NewsletterService.java | 10 ++++------ 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java index bade0e5..1eeb758 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java +++ b/src/main/java/com/example/koschool/domain/newsletter/NewsletterController.java @@ -52,8 +52,13 @@ public ApiResponse> getNewsletterListPrevious(@R return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsletterListPrevious(category)); } + /** + * 상세 페이지 뉴스레터 보기 + * @param newsletterId + * @return + */ @GetMapping("/detail") - public ApiResponse getNewsletter(@RequestParam("newsletterId") String newsletterId) { - return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsLetter(newsletterId)); + public ApiResponse getNewsletterDetail(@RequestParam("newsletterId") Long newsletterId) { + return ApiResponse.of(HttpStatus.OK, newsletterService.getNewsLetterDetail(newsletterId)); } } diff --git a/src/main/java/com/example/koschool/domain/newsletter/dto/response/NewsletterResponseDto.java b/src/main/java/com/example/koschool/domain/newsletter/dto/response/NewsletterResponseDto.java index 14a8bf0..5c87796 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/dto/response/NewsletterResponseDto.java +++ b/src/main/java/com/example/koschool/domain/newsletter/dto/response/NewsletterResponseDto.java @@ -1,25 +1,23 @@ package com.example.koschool.domain.newsletter.dto.response; import com.example.koschool.domain.newsletter.entity.Newsletter; -import java.util.Random; import lombok.Builder; import lombok.Getter; @Getter public class NewsletterResponseDto { + private String title; private String summary; private Integer likes; private String stock; private String link; - Random random = new Random(); - @Builder private NewsletterResponseDto(String title, String summary, Integer likes, String stock, String link) { this.title = title; this.summary = summary; - this.likes = random.nextInt(240)+11; + this.likes = likes; this.stock = stock; this.link = link; } diff --git a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java index 39eddb4..198a7db 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java +++ b/src/main/java/com/example/koschool/domain/newsletter/repository/NewsletterRepository.java @@ -5,6 +5,8 @@ import com.example.koschool.domain.newsletter.entity.Newsletter; import java.time.LocalDate; import java.util.List; +import java.util.Optional; +import javax.swing.text.html.Option; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; @@ -22,4 +24,6 @@ List findTop3ByCategoryAndDateBetweenOrderByLikesDesc(@Param("catego @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, Pageable pageable); List findAllByCategoryOrderByIdDesc(String category); + + Optional findById(Long id); } diff --git a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java index 4a44efb..dd7cdc5 100644 --- a/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java +++ b/src/main/java/com/example/koschool/domain/newsletter/service/NewsletterService.java @@ -46,11 +46,9 @@ public List getNewsletterListPrevious(String category .collect(Collectors.toList()); } - public NewsletterResponseDto getNewsLetter(String newsletterId) { - Optional newsletter = newsletterRepository.findById(newsletterId); - if (newsletter.isEmpty()) { - throw new CustomException(ErrorCode.NEWSLETTER_NOT_FOUND); - } - return NewsletterResponseDto.fromEntityToDto(newsletter.get()); + public NewsletterResponseDto getNewsLetterDetail(Long newsletterId) { + Newsletter newsletter = newsletterRepository.findById(newsletterId) + .orElseThrow(() -> new CustomException(ErrorCode.NEWSLETTER_NOT_FOUND)); + return NewsletterResponseDto.fromEntityToDto(newsletter); } }