From 7ead425bb2a1689c07db4ab8195e60126ce5f932 Mon Sep 17 00:00:00 2001 From: yxhwxn Date: Fri, 14 Jun 2024 01:30:51 +0900 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Feat:=20=EA=B0=95=EC=A2=8C=20?= =?UTF-8?q?=EC=84=B8=EB=B6=80=20=EC=A1=B0=ED=9A=8C=20=EC=8B=9C=20topword?= =?UTF-8?q?=20=ED=95=84=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bigdata/infou/business/LectureConverter.java | 8 +++++++- .../bigdata/infou/implement/LectureService.java | 15 ++++++--------- .../infou/repository/LectureTagRepository.java | 11 +++++++++++ .../bigdata/infou/web/dto/LectureResponseDTO.java | 6 +++++- 4 files changed, 29 insertions(+), 11 deletions(-) create mode 100644 src/main/java/khu/bigdata/infou/repository/LectureTagRepository.java diff --git a/src/main/java/khu/bigdata/infou/business/LectureConverter.java b/src/main/java/khu/bigdata/infou/business/LectureConverter.java index 9200bab..f014ff4 100644 --- a/src/main/java/khu/bigdata/infou/business/LectureConverter.java +++ b/src/main/java/khu/bigdata/infou/business/LectureConverter.java @@ -1,6 +1,7 @@ package khu.bigdata.infou.business; import khu.bigdata.infou.domain.LectureDetail; +import khu.bigdata.infou.domain.LectureTag; import khu.bigdata.infou.domain.LectureUdemy; import khu.bigdata.infou.domain.PlatformStudent; import khu.bigdata.infou.web.dto.LectureResponseDTO; @@ -62,7 +63,7 @@ public static LectureResponseDTO.KeywordRecommendLectureDto toKeywordRecommendLe } // 강좌 세부 조회 - public static LectureResponseDTO.LectureDetailDto toLectureDetailDto(LectureUdemy lectureUdemy, LectureDetail lectureDetail) { + public static LectureResponseDTO.LectureDetailDto toLectureDetailDto(LectureUdemy lectureUdemy, LectureDetail lectureDetail, LectureTag lectureTag) { return LectureResponseDTO.LectureDetailDto.builder() .lectureId(lectureUdemy.getLectureId()) @@ -80,6 +81,11 @@ public static LectureResponseDTO.LectureDetailDto toLectureDetailDto(LectureUdem .practice(lectureDetail.getPractice()) .rating(lectureDetail.getRating()) .level(lectureDetail.getLevel()) + .topword1(lectureTag.getTopword1()) + .topword2(lectureTag.getTopword2()) + .topword3(lectureTag.getTopword3()) + .topword4(lectureTag.getTopword4()) + .topword5(lectureTag.getTopword5()) .build(); } diff --git a/src/main/java/khu/bigdata/infou/implement/LectureService.java b/src/main/java/khu/bigdata/infou/implement/LectureService.java index 5af602d..b57ee0a 100644 --- a/src/main/java/khu/bigdata/infou/implement/LectureService.java +++ b/src/main/java/khu/bigdata/infou/implement/LectureService.java @@ -1,14 +1,8 @@ package khu.bigdata.infou.implement; import khu.bigdata.infou.business.LectureConverter; -import khu.bigdata.infou.domain.LectureDetail; -import khu.bigdata.infou.domain.LectureInflearn; -import khu.bigdata.infou.domain.LectureUdemy; -import khu.bigdata.infou.domain.PlatformStudent; -import khu.bigdata.infou.repository.LectureDetailRepository; -import khu.bigdata.infou.repository.LectureInflearnRepository; -import khu.bigdata.infou.repository.LectureUdemyRepository; -import khu.bigdata.infou.repository.PlatformStudentRepository; +import khu.bigdata.infou.domain.*; +import khu.bigdata.infou.repository.*; import khu.bigdata.infou.web.dto.LectureResponseDTO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -27,6 +21,7 @@ public class LectureService { private final LectureInflearnRepository lectureInflearnRepository; private final LectureUdemyRepository lectureUdemyRepository; private final LectureDetailRepository lectureDetailRepository; + private final LectureTagRepository lectureTagRepository; /** @@ -111,8 +106,10 @@ public LectureResponseDTO.LectureDetailDto findLectureDetail(Integer lectureId) .orElseThrow(() -> new IllegalArgumentException("Lecture not found")); LectureDetail lectureDetail = lectureDetailRepository.findByLectureUdemyId(lectureId) .orElseThrow(() -> new IllegalArgumentException("Lecture detail not found")); + LectureTag lectureTag = lectureTagRepository.findByLectureUdemyId(lectureId) + .orElseThrow(() -> new IllegalArgumentException("Lecture tag not found")); - return LectureConverter.toLectureDetailDto(lectureUdemy, lectureDetail); + return LectureConverter.toLectureDetailDto(lectureUdemy, lectureDetail, lectureTag); } /** diff --git a/src/main/java/khu/bigdata/infou/repository/LectureTagRepository.java b/src/main/java/khu/bigdata/infou/repository/LectureTagRepository.java new file mode 100644 index 0000000..6415379 --- /dev/null +++ b/src/main/java/khu/bigdata/infou/repository/LectureTagRepository.java @@ -0,0 +1,11 @@ +package khu.bigdata.infou.repository; + +import khu.bigdata.infou.domain.LectureTag; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface LectureTagRepository extends JpaRepository { + + Optional findByLectureUdemyId(Integer lectureId); +} diff --git a/src/main/java/khu/bigdata/infou/web/dto/LectureResponseDTO.java b/src/main/java/khu/bigdata/infou/web/dto/LectureResponseDTO.java index fdddf25..814efef 100644 --- a/src/main/java/khu/bigdata/infou/web/dto/LectureResponseDTO.java +++ b/src/main/java/khu/bigdata/infou/web/dto/LectureResponseDTO.java @@ -24,7 +24,6 @@ public static class CategoryRecommendLectureInfo { private float price; private String instructorName; - // todo: topword1 ~ 5까지 추가 -> lecture_tag 테이블에서 가져오기 private String topword1; private String topword2; private String topword3; @@ -97,6 +96,11 @@ public static class LectureDetailDto { private float rating; private float level; + private String topword1; + private String topword2; + private String topword3; + private String topword4; + private String topword5; } @Builder