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 피드백 조회 */