From 1163c1112d2e61b0727dbb7a3f36d0b9d7fc28fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=98=88=EC=A7=84=20=EB=B0=95?= Date: Thu, 12 Feb 2026 13:53:40 +0900 Subject: [PATCH] =?UTF-8?q?Refactor:=20=EC=9D=91=EB=8B=B5=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EC=88=98=EC=A0=95=20(#221)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../emotion/converter/EmotionAnalysisConverter.java | 3 +++ .../emotion/dto/response/GoldenTimeResDTO.java | 2 ++ .../emotion/service/EmotionAnalysisServiceImpl.java | 11 +++++++++++ 3 files changed, 16 insertions(+) diff --git a/src/main/java/com/umc/finly/domain/analysis/emotion/converter/EmotionAnalysisConverter.java b/src/main/java/com/umc/finly/domain/analysis/emotion/converter/EmotionAnalysisConverter.java index 45265772..31caffb7 100644 --- a/src/main/java/com/umc/finly/domain/analysis/emotion/converter/EmotionAnalysisConverter.java +++ b/src/main/java/com/umc/finly/domain/analysis/emotion/converter/EmotionAnalysisConverter.java @@ -4,6 +4,7 @@ import com.umc.finly.domain.analysis.emotion.dto.response.GoldenTimeResDTO; import com.umc.finly.domain.analysis.emotion.dto.response.ShakenKeywordsResDTO; import com.umc.finly.domain.market.stock.entity.Stock; + import com.umc.finly.domain.record.enums.Session; import org.springframework.stereotype.Component; @@ -54,6 +55,7 @@ public static ShakenKeywordsResDTO toShakenKeywordsResDTO( // 감정 골든 타임 응답 DTO 변환 public GoldenTimeResDTO toGoldenTimeResDTO( + String nickname, Stock stock, int totalRecords, Session goldenTime, @@ -73,6 +75,7 @@ public GoldenTimeResDTO toGoldenTimeResDTO( .build(); return GoldenTimeResDTO.builder() + .nickname(nickname) .stock(stockDto) .summary(summaryDto) .session(sessions) diff --git a/src/main/java/com/umc/finly/domain/analysis/emotion/dto/response/GoldenTimeResDTO.java b/src/main/java/com/umc/finly/domain/analysis/emotion/dto/response/GoldenTimeResDTO.java index adbea1b9..54c515eb 100644 --- a/src/main/java/com/umc/finly/domain/analysis/emotion/dto/response/GoldenTimeResDTO.java +++ b/src/main/java/com/umc/finly/domain/analysis/emotion/dto/response/GoldenTimeResDTO.java @@ -1,5 +1,6 @@ package com.umc.finly.domain.analysis.emotion.dto.response; +import com.umc.finly.domain.member.entity.Member; import com.umc.finly.domain.record.enums.Session; import lombok.AllArgsConstructor; import lombok.Builder; @@ -14,6 +15,7 @@ @AllArgsConstructor public class GoldenTimeResDTO { + private String nickname; private SelectedStock stock; private Summary summary; private List session; diff --git a/src/main/java/com/umc/finly/domain/analysis/emotion/service/EmotionAnalysisServiceImpl.java b/src/main/java/com/umc/finly/domain/analysis/emotion/service/EmotionAnalysisServiceImpl.java index 00896219..5a1bb11d 100644 --- a/src/main/java/com/umc/finly/domain/analysis/emotion/service/EmotionAnalysisServiceImpl.java +++ b/src/main/java/com/umc/finly/domain/analysis/emotion/service/EmotionAnalysisServiceImpl.java @@ -9,6 +9,9 @@ import com.umc.finly.domain.analysis.emotion.util.KeywordExtractor; import com.umc.finly.domain.market.stock.entity.Stock; import com.umc.finly.domain.market.stock.repository.StockRepository; +import com.umc.finly.domain.member.entity.Member; +import com.umc.finly.domain.member.exception.code.MemberErrorCode; +import com.umc.finly.domain.member.repository.MemberRepository; import com.umc.finly.domain.record.entity.RecordEntry; import com.umc.finly.domain.record.enums.EmotionCode; import com.umc.finly.domain.record.enums.Session; @@ -31,6 +34,7 @@ public class EmotionAnalysisServiceImpl implements EmotionAnalysisService { // 키워드 추출 상위 8개 private static final int MAX_KEYWORDS = 8; + private final MemberRepository memberRepository; @Override public EmotionDistributionResDTO getEmotionDistribution(Long memberId, String symbol) { @@ -170,6 +174,12 @@ public GoldenTimeResDTO getEmotionGoldenTime(Long memberId, String symbol) { throw new CustomException(ErrorCode.INVALID_REQUEST); } + // Member nickname + Member member = memberRepository.findById(memberId) + .orElseThrow(() -> new CustomException(MemberErrorCode.MEMBER_NOT_FOUND)); + + String nickname = member.getNickname(); + // 종목 조회 Stock stock = stockRepository.findBySymbol(symbol) .orElseThrow(() -> new CustomException(EmotionAnalysisErrorCode.ANALYSIS_EMOTION_STOCK_NOT_FOUND)); @@ -232,6 +242,7 @@ public GoldenTimeResDTO getEmotionGoldenTime(Long memberId, String symbol) { // Converter로 최종 응답 조립 return emotionAnalysisConverter.toGoldenTimeResDTO( + nickname, stock, totalRecords, goldenTime,