From 5ae1bf40f1f314fc8017353e02de6f3f24acb904 Mon Sep 17 00:00:00 2001 From: yuhalog Date: Thu, 19 Jun 2025 17:43:39 +0900 Subject: [PATCH] fix: RecommendController --- .../controller/RecommendationController.java | 2 +- .../domain/model/CreationConditions.java | 3 -- .../external/PythonAiPosterGenerator.java | 43 ++++--------------- 3 files changed, 9 insertions(+), 39 deletions(-) diff --git a/smarketing-java/ai-recommend/src/main/java/com/won/smarketing/recommend/presentation/controller/RecommendationController.java b/smarketing-java/ai-recommend/src/main/java/com/won/smarketing/recommend/presentation/controller/RecommendationController.java index 83a66f7..842b3ff 100644 --- a/smarketing-java/ai-recommend/src/main/java/com/won/smarketing/recommend/presentation/controller/RecommendationController.java +++ b/smarketing-java/ai-recommend/src/main/java/com/won/smarketing/recommend/presentation/controller/RecommendationController.java @@ -18,7 +18,7 @@ import jakarta.validation.Valid; @Tag(name = "AI 추천", description = "AI 기반 마케팅 팁 추천 API") @Slf4j @RestController -@RequestMapping("/api/recommendations") +@RequestMapping("/api/recommend") @RequiredArgsConstructor public class RecommendationController { diff --git a/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/domain/model/CreationConditions.java b/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/domain/model/CreationConditions.java index b90959e..abb5191 100644 --- a/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/domain/model/CreationConditions.java +++ b/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/domain/model/CreationConditions.java @@ -33,9 +33,6 @@ public class CreationConditions { private String photoStyle; private String promotionType; - public CreationConditions(String category, String requirement, String toneAndManner, String emotionIntensity, String eventName, LocalDate startDate, LocalDate endDate, String photoStyle, String promotionType) { - } - /** * 이벤트 기간 유효성 검증 * @return 시작일이 종료일보다 이전이거나 같으면 true diff --git a/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/infrastructure/external/PythonAiPosterGenerator.java b/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/infrastructure/external/PythonAiPosterGenerator.java index 9227d85..030a5b6 100644 --- a/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/infrastructure/external/PythonAiPosterGenerator.java +++ b/smarketing-java/marketing-content/src/main/java/com/won/smarketing/content/infrastructure/external/PythonAiPosterGenerator.java @@ -1,9 +1,8 @@ package com.won.smarketing.content.infrastructure.external; -import com.won.smarketing.content.domain.model.store.MenuData; import com.won.smarketing.content.domain.model.store.StoreData; import com.won.smarketing.content.domain.model.store.StoreWithMenuData; -import com.won.smarketing.content.domain.service.AiPosterGenerator; // 도메인 인터페이스 import +import com.won.smarketing.content.domain.service.AiPosterGenerator; import com.won.smarketing.content.presentation.dto.PosterContentCreateRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -14,9 +13,7 @@ import org.springframework.web.reactive.function.client.WebClient; import java.time.Duration; import java.time.format.DateTimeFormatter; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * Claude AI를 활용한 포스터 생성 구현체 @@ -78,33 +75,15 @@ public class PythonAiPosterGenerator implements AiPosterGenerator { /** * Python AI 서비스 요청 데이터 구성 * Python 서비스의 PosterContentGetRequest 모델에 맞춤 - * 카테고리, */ private Map buildRequestBody(PosterContentCreateRequest request, StoreWithMenuData storeWithMenuData) { Map requestBody = new HashMap<>(); -// TODO : 매장 정보 호출 후 request - -// StoreData storeData = storeWithMenuData.getStoreData(); -// List menuDataList = storeWithMenuData.getMenuDataList(); -// -// List> menuList = menuDataList.stream() -// .map(menu -> { -// Map menuMap = new HashMap<>(); -// menuMap.put("menu_id", menu.getMenuId()); -// menuMap.put("menu_name", menu.getMenuName()); -// menuMap.put("category", menu.getCategory()); -// menuMap.put("price", menu.getPrice()); -// menuMap.put("description", menu.getDescription()); -// return menuMap; -// }) -// .collect(Collectors.toList()); -// -// requestBody.put("store_name", storeData.getStoreName()); -// requestBody.put("business_type", storeData.getBusinessType()); -// requestBody.put("location", storeData.getLocation()); -// requestBody.put("seat_count", storeData.getSeatCount()); -// requestBody.put("menu_list", menuList); + StoreData storeData = storeWithMenuData.getStoreData(); + + requestBody.put("store_name", storeData.getStoreName()); + requestBody.put("business_type", storeData.getBusinessType()); + requestBody.put("location", storeData.getLocation()); // 기본 정보 requestBody.put("title", request.getTitle()); @@ -115,11 +94,6 @@ public class PythonAiPosterGenerator implements AiPosterGenerator { requestBody.put("images", request.getImages()); } - // 스타일 정보 - if (request.getPhotoStyle() != null) { - requestBody.put("photoStyle", request.getPhotoStyle()); - } - // 요구사항 if (request.getRequirement() != null) { requestBody.put("requirement", request.getRequirement()); @@ -130,9 +104,8 @@ public class PythonAiPosterGenerator implements AiPosterGenerator { requestBody.put("menuName", request.getMenuName()); } - // 이벤트 정보 - if (request.getEventName() != null) { - requestBody.put("eventName", request.getEventName()); + if (request.getStartDate() != null) { + requestBody.put("startDate", request.getEndDate().format(DateTimeFormatter.ISO_LOCAL_DATE)); } if (request.getEndDate() != null) {