From 6d84ca2d7228a179da353cf493c0294fefa94580 Mon Sep 17 00:00:00 2001 From: Gwanghyeon-k Date: Thu, 20 Feb 2025 15:02:02 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[feat]=20budget=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=EA=B0=92=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../umc/yeogi_gal_lae/api/budget/dto/BudgetDetailResponse.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/umc/yeogi_gal_lae/api/budget/dto/BudgetDetailResponse.java b/src/main/java/com/umc/yeogi_gal_lae/api/budget/dto/BudgetDetailResponse.java index 80c2610..d1e2a05 100644 --- a/src/main/java/com/umc/yeogi_gal_lae/api/budget/dto/BudgetDetailResponse.java +++ b/src/main/java/com/umc/yeogi_gal_lae/api/budget/dto/BudgetDetailResponse.java @@ -12,6 +12,7 @@ @AllArgsConstructor @Builder public class BudgetDetailResponse { + private String location; private String imageUrl; private LocalDate startDate; private LocalDate endDate; From 68e8c93d50516115573a9aae4915061e97379a6a Mon Sep 17 00:00:00 2001 From: Gwanghyeon-k Date: Thu, 20 Feb 2025 15:02:19 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[feat]=20dto=20=EB=B3=80=ED=99=98=20convert?= =?UTF-8?q?er=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/budget/converter/BudgetConverter.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/com/umc/yeogi_gal_lae/api/budget/converter/BudgetConverter.java b/src/main/java/com/umc/yeogi_gal_lae/api/budget/converter/BudgetConverter.java index 7cf78d8..afe492b 100644 --- a/src/main/java/com/umc/yeogi_gal_lae/api/budget/converter/BudgetConverter.java +++ b/src/main/java/com/umc/yeogi_gal_lae/api/budget/converter/BudgetConverter.java @@ -2,6 +2,7 @@ import com.umc.yeogi_gal_lae.api.budget.domain.Budget; import com.umc.yeogi_gal_lae.api.budget.dto.BudgetAssignment; +import com.umc.yeogi_gal_lae.api.budget.dto.BudgetDetailResponse; import com.umc.yeogi_gal_lae.api.budget.dto.BudgetResponse; import com.umc.yeogi_gal_lae.api.budget.dto.DailyBudgetAssignmentResponse; import java.util.List; @@ -33,4 +34,17 @@ public static List toDailyBudgetAssignmentRespons .build()) .collect(Collectors.toList()); } + + public static BudgetDetailResponse toBudgetDetailResponse(Budget budget, + Map> budgetMap) { + List dailyAssignments = toDailyBudgetAssignmentResponseList(budgetMap); + return BudgetDetailResponse.builder() + .dailyAssignments(dailyAssignments) + .location(budget.getAiCourse().getTripPlan().getLocation()) + .imageUrl(budget.getAiCourse().getTripPlan().getImageUrl()) + .startDate(budget.getAiCourse().getTripPlan().getStartDate()) + .endDate(budget.getAiCourse().getTripPlan().getEndDate()) + .build(); + } + } From 831a27e81ade93aaeaa201750e459c478fc544ef Mon Sep 17 00:00:00 2001 From: Gwanghyeon-k Date: Thu, 20 Feb 2025 15:02:36 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[feat]=20=ED=94=84=EB=A1=AC=ED=94=84?= =?UTF-8?q?=ED=8A=B8=20=EC=88=98=EC=A0=95,=20controller=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../budget/controller/BudgetController.java | 18 +----------------- .../api/budget/service/BudgetService.java | 7 +++---- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/umc/yeogi_gal_lae/api/budget/controller/BudgetController.java b/src/main/java/com/umc/yeogi_gal_lae/api/budget/controller/BudgetController.java index 4bb8c84..d83f089 100644 --- a/src/main/java/com/umc/yeogi_gal_lae/api/budget/controller/BudgetController.java +++ b/src/main/java/com/umc/yeogi_gal_lae/api/budget/controller/BudgetController.java @@ -6,13 +6,11 @@ import com.umc.yeogi_gal_lae.api.budget.dto.BudgetAssignment; import com.umc.yeogi_gal_lae.api.budget.dto.BudgetDetailResponse; import com.umc.yeogi_gal_lae.api.budget.dto.BudgetResponse; -import com.umc.yeogi_gal_lae.api.budget.dto.DailyBudgetAssignmentResponse; import com.umc.yeogi_gal_lae.api.budget.repository.BudgetRepository; import com.umc.yeogi_gal_lae.api.budget.service.BudgetService; import com.umc.yeogi_gal_lae.global.common.response.Response; import com.umc.yeogi_gal_lae.global.error.ErrorCode; import com.umc.yeogi_gal_lae.global.success.SuccessCode; -import java.time.LocalDate; import java.util.Collections; import java.util.List; import java.util.Map; @@ -56,21 +54,7 @@ public Response getBudget(@PathVariable Long budgetId) { } Budget budget = budgetOpt.get(); Map> budgetMap = budgetService.getBudgetMapById(budgetId); - List dailyAssignments = BudgetConverter.toDailyBudgetAssignmentResponseList( - budgetMap); - - // AICourse를 통해 TripPlan 정보를 조회 (TripPlan 클래스가 startDate와 endDate를 LocalDate 타입으로 제공한다고 가정) - String imageUrl = budget.getAiCourse().getTripPlan().getImageUrl(); - LocalDate startDate = budget.getAiCourse().getTripPlan().getStartDate(); - LocalDate endDate = budget.getAiCourse().getTripPlan().getEndDate(); - - BudgetDetailResponse detailResponse = BudgetDetailResponse.builder() - .dailyAssignments(dailyAssignments) - .imageUrl(imageUrl) - .startDate(startDate) - .endDate(endDate) - .build(); - + BudgetDetailResponse detailResponse = BudgetConverter.toBudgetDetailResponse(budget, budgetMap); return Response.of(SuccessCode.OK, detailResponse); } diff --git a/src/main/java/com/umc/yeogi_gal_lae/api/budget/service/BudgetService.java b/src/main/java/com/umc/yeogi_gal_lae/api/budget/service/BudgetService.java index 5d0a519..0835f57 100644 --- a/src/main/java/com/umc/yeogi_gal_lae/api/budget/service/BudgetService.java +++ b/src/main/java/com/umc/yeogi_gal_lae/api/budget/service/BudgetService.java @@ -80,6 +80,7 @@ private String buildBudgetPrompt(String scheduleJson) { prompt.append("Given the following travel schedule in JSON format: ") .append(scheduleJson) .append(", generate budget recommendations for each day. "); + prompt.append("단, 'placeName' 필드의 값은 반드시 한국어로만 작성되어야 하며, 영어 표현은 사용하지 마세요. "); prompt.append( "For each place, assign exactly one budget type (one of MEAL, ACTIVITY, SHOPPING, TRANSPORT) and a recommended amount. "); prompt.append( @@ -125,7 +126,7 @@ private Map> parseBudgetGptResponse(String gptRes if (jsonStart != -1) { content = content.substring(jsonStart); } - return objectMapper.readValue(content, new TypeReference>>() { + return objectMapper.readValue(content, new TypeReference<>() { }); } catch (Exception e) { e.printStackTrace(); @@ -144,13 +145,11 @@ public Map> getBudgetMapById(Long id) { } try { String budgetJson = budgetOpt.get().getBudgetJson(); - return objectMapper.readValue(budgetJson, new TypeReference>>() { + return objectMapper.readValue(budgetJson, new TypeReference<>() { }); } catch (Exception e) { e.printStackTrace(); return Collections.emptyMap(); } } - - }