Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.umc.valuedi.domain.mbti.service;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.umc.valuedi.domain.mbti.converter.FinanceMbtiTestConverter;
Expand All @@ -13,13 +12,11 @@
import org.umc.valuedi.domain.mbti.validator.FinanceMbtiTestValidator;
import org.umc.valuedi.domain.member.entity.Member;
import org.umc.valuedi.domain.member.repository.MemberRepository;
import org.umc.valuedi.domain.savings.service.RecommendationService;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Slf4j
@Service
@RequiredArgsConstructor
@Transactional
Expand All @@ -31,7 +28,6 @@ public class FinanceMbtiService {
private final FinanceMbtiScoringService scoringService;
private final FinanceMbtiTestValidator financeMbtiTestValidator;
private final FinanceMbtiTestConverter financeMbtiTestConverter;
private final RecommendationService recommendationService;

public MemberMbtiTest submitTest(Long memberId, FinanceMbtiTestRequestDto req) {

Expand All @@ -52,15 +48,6 @@ public MemberMbtiTest submitTest(Long memberId, FinanceMbtiTestRequestDto req) {
FinanceMbtiScoringService.ScoreResult score = scoringService.score(activeQuestions, answersByQuestionId);
MemberMbtiTest test = financeMbtiTestConverter.toEntity(member, req, score, activeQuestionMap);

MemberMbtiTest savedTest = memberMbtiTestRepository.save(test);

try {
recommendationService.generateAndSaveRecommendations(memberId);
log.info("[Recommend] MBTI 검사 후 자동 추천 생성 성공. memberId={}", memberId);
} catch (Exception e) {
// 제미나이 호출이 실패해도 MBTI 저장은 유지되도록 예외를 삼키고 로그만 남김
log.error("[Recommend] MBTI 저장에는 성공했으나, 자동 추천 생성 중 오류 발생. memberId={}: {}", memberId, e.getMessage());
}
return savedTest;
return memberMbtiTestRepository.save(test);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
public interface RecommendationControllerDocs {

@Operation(
summary = "[개발/수동 갱신용] 적금 추천 생성 API",
summary = "적금 추천 생성 API",
description = """
**주의: 일반적인 서비스 흐름에서는 MBTI 검사 완료 시 서버 내부에서 자동 호출됩니다.**

- 로그인 사용자(JWT)의 현재 MBTI를 바탕으로 Gemini 추천을 생성하고 DB를 갱신합니다.
로그인 사용자(JWT)의 현재 MBTI를 바탕으로 Gemini 추천을 생성하고 DB를 갱신합니다.
MBTI 검사 완료 후 이 API를 호출하여 맞춤 추천을 받을 수 있습니다.

- 응답 속도는 Gemini API 호출을 포함하므로 약 3~7초 정도 소요될 수 있습니다
""",
responses = {
Expand Down