-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
34 changed files
with
219 additions
and
156 deletions.
There are no files selected for viewing
2 changes: 1 addition & 1 deletion
2
...orpheme/application/dto/req/TotalReq.java → ...ontents/application/dto/req/TotalReq.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 22 additions & 0 deletions
22
src/main/java/gwangjang/server/domain/contents/application/dto/res/BubbleChartRes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package gwangjang.server.domain.contents.application.dto.res; | ||
|
||
|
||
import lombok.*; | ||
|
||
@Getter | ||
@Builder | ||
@Setter | ||
@NoArgsConstructor | ||
public class BubbleChartRes { | ||
String issueTitle; | ||
String keyword; | ||
String date; | ||
Long rank; | ||
|
||
public BubbleChartRes(String issueTitle, String keyword, String date, Long rank) { | ||
this.issueTitle = issueTitle; | ||
this.keyword = keyword; | ||
this.date = date; | ||
this.rank = rank; | ||
} | ||
} |
4 changes: 2 additions & 2 deletions
4
...lication/dto/res/ContentLikeCountRes.java → ...lication/dto/res/ContentLikeCountRes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
.../application/dto/res/ContentsDataRes.java → .../application/dto/res/ContentsDataRes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 2 additions & 5 deletions
7
...heme/application/dto/res/ContentsRes.java → ...ents/application/dto/res/ContentsRes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
...pheme/application/dto/res/YoutubeRes.java → ...tents/application/dto/res/YoutubeRes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 3 additions & 3 deletions
6
...me/application/mapper/ContentsMapper.java → ...ts/application/mapper/ContentsMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 changes: 2 additions & 3 deletions
5
...main/morpheme/domain/entity/Contents.java → ...main/contents/domain/entity/Contents.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
.../domain/morpheme/domain/entity/Issue.java → .../domain/contents/domain/entity/Issue.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
.../domain/morpheme/domain/entity/Topic.java → .../domain/contents/domain/entity/Topic.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
...pheme/domain/entity/constant/ApiType.java → ...tents/domain/entity/constant/ApiType.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8 changes: 5 additions & 3 deletions
8
.../repository/ContentsCustomRepository.java → .../repository/ContentsCustomRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
src/main/java/gwangjang/server/domain/contents/domain/repository/ContentsRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package gwangjang.server.domain.contents.domain.repository; | ||
|
||
import gwangjang.server.domain.contents.application.dto.res.BubbleChartRes; | ||
import gwangjang.server.domain.contents.domain.entity.Contents; | ||
import gwangjang.server.domain.contents.domain.entity.constant.ApiType; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.data.jpa.repository.Query; | ||
import org.springframework.stereotype.Repository; | ||
|
||
import java.util.List; | ||
|
||
@Repository | ||
public interface ContentsRepository extends JpaRepository<Contents, Integer>,ContentsCustomRepository{ | ||
|
||
List<Contents> findByType(ApiType type); | ||
List<Contents> findByIssueTitleLike(String issue); | ||
List<Contents> findByKeywordLikeAndTypeOrderByPubDateDesc(String issueTitle, ApiType type); | ||
|
||
@Query( | ||
value = "SELECT issue_title, keyword, MAX(month) AS max_occurrence_date, MAX(occurrences) AS max_occurrences\n" + | ||
"FROM (\n" + | ||
" SELECT issue_title, keyword, SUBSTRING(pub_date, 1, 7) AS month, COUNT(*) AS occurrences\n" + | ||
" FROM contents\n" + | ||
" WHERE TYPE = 'YOUTUBE'\n" + | ||
" GROUP BY issue_title, keyword, month\n" + | ||
") AS subquery\n" + | ||
"GROUP BY issue_title, keyword\n" + | ||
"ORDER BY max_occurrences DESC", | ||
nativeQuery = true) | ||
List<Object[]> findMaxOccurrencesByIssueAndKeyword(); | ||
|
||
|
||
} |
56 changes: 56 additions & 0 deletions
56
src/main/java/gwangjang/server/domain/contents/domain/service/ContentsQueryService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package gwangjang.server.domain.contents.domain.service; | ||
|
||
import gwangjang.server.domain.contents.application.dto.req.TotalReq; | ||
import gwangjang.server.domain.contents.application.dto.res.BubbleChartRes; | ||
import gwangjang.server.domain.contents.application.dto.res.ContentsDataRes; | ||
import gwangjang.server.domain.contents.domain.repository.ContentsRepository; | ||
import gwangjang.server.global.annotation.DomainService; | ||
import gwangjang.server.global.feign.client.FindKeywordFeignClient; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.extern.slf4j.Slf4j; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
import java.util.Map; | ||
import java.util.stream.Collectors; | ||
|
||
@Slf4j | ||
@DomainService | ||
@RequiredArgsConstructor | ||
public class ContentsQueryService { | ||
private final ContentsRepository contentsRepository; | ||
private final FindKeywordFeignClient findKeywordFeignClient; | ||
|
||
public List<ContentsDataRes> getContentsByIssue(String issue) { | ||
return contentsRepository.getContentsByIssueId(issue); | ||
} | ||
public List<BubbleChartRes> getBubbleChart(String issue) { | ||
List<TotalReq> keywordList = findKeywordFeignClient.getAll().getBody().getData(); | ||
Map<String, Long> keywordIdMap = keywordList.stream() | ||
.collect(Collectors.toMap(keyword -> keyword.getIssueTitle() + " " + keyword.getKeyword(), TotalReq::getKeywordId)); | ||
|
||
return contentsRepository.findMaxOccurrencesByIssueAndKeyword().stream() | ||
.filter(objects -> { | ||
String issueTitle = (String) objects[0]; | ||
return issueTitle.contains(issue); | ||
}) | ||
.map(objects -> { | ||
String issueTitle = (String) objects[0]; | ||
String keyword = (String) objects[1]; | ||
String date = (String) objects[2]; | ||
Long count = (Long) objects[3]; | ||
|
||
// Construct the key to look up keywordId in the map | ||
String key = issueTitle + keyword; | ||
Long keywordId = keywordIdMap.getOrDefault(key, null); | ||
|
||
return new BubbleChartRes(issueTitle, keyword, date, keywordId != null ? keywordId : count); | ||
}) | ||
.collect(Collectors.toList()); | ||
} | ||
|
||
|
||
|
||
|
||
|
||
} |
10 changes: 3 additions & 7 deletions
10
...pheme/domain/service/ContentsService.java → ...tents/domain/service/ContentsService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 6 additions & 9 deletions
15
...e/domain/service/ContentsServiceImpl.java → ...s/domain/service/ContentsServiceImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 5 additions & 5 deletions
10
...domain/service/ImageUrlUpdateService.java → ...domain/service/ImageUrlUpdateService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 2 additions & 5 deletions
7
...heme/domain/service/ScheduledService.java → ...ents/domain/service/ScheduledService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.