From e61e98ed7df758632b5e6093d23963523cf57728 Mon Sep 17 00:00:00 2001 From: lsh9672 Date: Mon, 16 Jun 2025 14:30:58 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EB=B6=84=EC=84=9Dapi=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 --- .../ktds/hi/analytics/biz/service/AnalyticsService.java | 2 +- .../ktds/hi/analytics/biz/usecase/out/AnalyticsPort.java | 8 +++++++- .../infra/gateway/AnalyticsRepositoryAdapter.java | 6 ++++++ .../infra/gateway/repository/AiFeedbackJpaRepository.java | 6 +++--- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/analytics/src/main/java/com/ktds/hi/analytics/biz/service/AnalyticsService.java b/analytics/src/main/java/com/ktds/hi/analytics/biz/service/AnalyticsService.java index b2a99c2..c42071c 100644 --- a/analytics/src/main/java/com/ktds/hi/analytics/biz/service/AnalyticsService.java +++ b/analytics/src/main/java/com/ktds/hi/analytics/biz/service/AnalyticsService.java @@ -445,7 +445,7 @@ public class AnalyticsService implements AnalyticsUseCase { try { // 1. AI 피드백 조회 - var aiFeedback = analyticsPort.findAIFeedbackByStoreId(feedbackId); // 실제로는 feedbackId로 조회하는 메서드 필요 + var aiFeedback = analyticsPort.findAIFeedbackById(feedbackId); if (aiFeedback.isEmpty()) { throw new RuntimeException("AI 피드백을 찾을 수 없습니다: " + feedbackId); diff --git a/analytics/src/main/java/com/ktds/hi/analytics/biz/usecase/out/AnalyticsPort.java b/analytics/src/main/java/com/ktds/hi/analytics/biz/usecase/out/AnalyticsPort.java index 05563dc..f8a44a0 100644 --- a/analytics/src/main/java/com/ktds/hi/analytics/biz/usecase/out/AnalyticsPort.java +++ b/analytics/src/main/java/com/ktds/hi/analytics/biz/usecase/out/AnalyticsPort.java @@ -25,7 +25,13 @@ public interface AnalyticsPort { * 매장 ID로 AI 피드백 조회 */ Optional findAIFeedbackByStoreId(Long storeId); - + + /** + * AI 피드백 ID로 조회 (추가된 메서드) + */ + Optional findAIFeedbackById(Long feedbackId); + + /** * AI 피드백 저장 */ diff --git a/analytics/src/main/java/com/ktds/hi/analytics/infra/gateway/AnalyticsRepositoryAdapter.java b/analytics/src/main/java/com/ktds/hi/analytics/infra/gateway/AnalyticsRepositoryAdapter.java index 565a000..0a660d0 100644 --- a/analytics/src/main/java/com/ktds/hi/analytics/infra/gateway/AnalyticsRepositoryAdapter.java +++ b/analytics/src/main/java/com/ktds/hi/analytics/infra/gateway/AnalyticsRepositoryAdapter.java @@ -55,6 +55,12 @@ public class AnalyticsRepositoryAdapter implements AnalyticsPort { AiFeedbackEntity saved = aiFeedbackJpaRepository.save(entity); return toAiFeedbackDomain(saved); } + + @Override + public Optional findAIFeedbackById(Long feedbackId) { + return aiFeedbackJpaRepository.findById(feedbackId) + .map(this::toAiFeedbackDomain); + } /** * Analytics Entity를 Domain으로 변환 diff --git a/analytics/src/main/java/com/ktds/hi/analytics/infra/gateway/repository/AiFeedbackJpaRepository.java b/analytics/src/main/java/com/ktds/hi/analytics/infra/gateway/repository/AiFeedbackJpaRepository.java index b002e31..511dc86 100644 --- a/analytics/src/main/java/com/ktds/hi/analytics/infra/gateway/repository/AiFeedbackJpaRepository.java +++ b/analytics/src/main/java/com/ktds/hi/analytics/infra/gateway/repository/AiFeedbackJpaRepository.java @@ -21,13 +21,13 @@ public interface AiFeedbackJpaRepository extends JpaRepository findByStoreId(Long storeId); - + /** * 매장 ID로 최신 AI 피드백 조회 */ - @Query("SELECT af FROM AiFeedbackEntity af WHERE af.storeId = :storeId ORDER BY af.generatedAt DESC") + @Query("SELECT af FROM AiFeedbackEntity af WHERE af.storeId = :storeId ORDER BY af.createdAt DESC LIMIT 1") Optional findLatestByStoreId(@Param("storeId") Long storeId); - + /** * 특정 기간 이후 생성된 AI 피드백 조회 */