From 1a2395d9e8422a15766332478e0ef302a511522f Mon Sep 17 00:00:00 2001 From: RCNR Date: Wed, 19 Feb 2025 23:33:37 +0900 Subject: [PATCH] =?UTF-8?q?[FEAT]=20:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20Meal?= =?UTF-8?q?PlanId=20=ED=99=95=EC=9D=B8=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mealPlan/controller/MealPlanController.java | 8 ++++++++ .../bulk/mealPlan/dto/MealPlanResponseDTO.java | 4 ++-- .../mealPlan/exception/MealPlanErrorCode.java | 5 ++++- .../mealPlan/repository/MealPlanRepository.java | 7 +++---- .../service/query/MealPlanQueryService.java | 5 +++++ .../service/query/MealPlanQueryServiceImpl.java | 16 ++++++++++++++++ 6 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/umc7th/bulk/mealPlan/controller/MealPlanController.java b/src/main/java/umc7th/bulk/mealPlan/controller/MealPlanController.java index c28d992..df9997f 100644 --- a/src/main/java/umc7th/bulk/mealPlan/controller/MealPlanController.java +++ b/src/main/java/umc7th/bulk/mealPlan/controller/MealPlanController.java @@ -54,4 +54,12 @@ public CustomResponse createUserMealPlan( return CustomResponse.onSuccess(GeneralSuccessCode.OK); } + + @GetMapping("/user") + @Operation(summary = "유저의 MealPlanId 존재 여부 확인 API") + public CustomResponse getUserMealPlansId() { + + User user = userService.getAuthenticatedUserInfo(); + return CustomResponse.onSuccess(GeneralSuccessCode.OK, mealPlanQueryService.getMealPlans(user)); + } } diff --git a/src/main/java/umc7th/bulk/mealPlan/dto/MealPlanResponseDTO.java b/src/main/java/umc7th/bulk/mealPlan/dto/MealPlanResponseDTO.java index 627866b..09b4425 100644 --- a/src/main/java/umc7th/bulk/mealPlan/dto/MealPlanResponseDTO.java +++ b/src/main/java/umc7th/bulk/mealPlan/dto/MealPlanResponseDTO.java @@ -18,7 +18,7 @@ public class MealPlanResponseDTO { public static class MealPlanGetResponseDTO { private Long userId; - private Long planMealId; + private Long mealPlanId; private LocalDate startDate; private LocalDate endDate; private List dailyMeals; @@ -26,7 +26,7 @@ public static class MealPlanGetResponseDTO { public static MealPlanGetResponseDTO from(Long userId, MealPlan mealPlan) { return MealPlanGetResponseDTO.builder() .userId(userId) - .planMealId(mealPlan.getId()) + .mealPlanId(mealPlan.getId()) .startDate(mealPlan.getStartDate()) .endDate(mealPlan.getEndDate()) .dailyMeals(mealPlan.getDailyMeals().stream() diff --git a/src/main/java/umc7th/bulk/mealPlan/exception/MealPlanErrorCode.java b/src/main/java/umc7th/bulk/mealPlan/exception/MealPlanErrorCode.java index ca7fe19..6b79dc8 100644 --- a/src/main/java/umc7th/bulk/mealPlan/exception/MealPlanErrorCode.java +++ b/src/main/java/umc7th/bulk/mealPlan/exception/MealPlanErrorCode.java @@ -9,9 +9,12 @@ @RequiredArgsConstructor public enum MealPlanErrorCode implements BaseErrorCode { - MEAL_PLAN_NOT_FOUND(HttpStatus.NOT_FOUND, "MEAL_PLAN_NOT_FOUND", "해당 Id의 일주일 식단이 없습니다.") + MEAL_PLAN_NOT_FOUND(HttpStatus.NOT_FOUND, "MEAL_PLAN_NOT_FOUND", "해당 Id의 일주일 식단이 없습니다."), + USER_MEAL_PLAN_NOT_FOUND(HttpStatus.NOT_FOUND, "USER_MEAL_PLAN_NOT_FOUND", "유저의 mealPlan(식단)이 존재 하지 않습니다.") ; + + private final HttpStatus status; private final String code; private final String message; diff --git a/src/main/java/umc7th/bulk/mealPlan/repository/MealPlanRepository.java b/src/main/java/umc7th/bulk/mealPlan/repository/MealPlanRepository.java index 0f91be0..a97edea 100644 --- a/src/main/java/umc7th/bulk/mealPlan/repository/MealPlanRepository.java +++ b/src/main/java/umc7th/bulk/mealPlan/repository/MealPlanRepository.java @@ -4,11 +4,10 @@ import org.springframework.stereotype.Repository; import umc7th.bulk.mealPlan.entity.MealPlan; +import java.util.List; + @Repository public interface MealPlanRepository extends JpaRepository { + List findByUserId(Long userId); -// @Query("SELECT mp FROM MealPlan mp WHERE mp.user.id = :userId ORDER BY mp.createdAt DESC") - MealPlan findByUserId(Long userId); - -// List findByIdWithDailyMeals(Long mealPlanId); } diff --git a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryService.java b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryService.java index dd573a6..e95e49e 100644 --- a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryService.java +++ b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryService.java @@ -1,9 +1,14 @@ package umc7th.bulk.mealPlan.service.query; import umc7th.bulk.mealPlan.entity.MealPlan; +import umc7th.bulk.user.domain.User; + +import java.util.List; public interface MealPlanQueryService { // MealPlan getMealPlan(Long userId, Long mealPlanId, int pageSize); MealPlan getMealPlan(Long userId, Long mealPlanId); + + List getMealPlans(User user); } diff --git a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java index 1e5c90f..9d3067f 100644 --- a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java +++ b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java @@ -14,6 +14,8 @@ import umc7th.bulk.user.exception.UserException; import umc7th.bulk.user.repository.UserRepository; +import java.util.List; + @Service @RequiredArgsConstructor @Transactional @@ -32,4 +34,18 @@ public MealPlan getMealPlan(Long userId, Long mealPlanId) { } return mealPlan; } + + @Override + public List getMealPlans(User user) { + + List userMealPlans = mealPlanRepository.findByUserId(user.getId()); + if (userMealPlans.isEmpty()) { + throw new MealPlanException(MealPlanErrorCode.USER_MEAL_PLAN_NOT_FOUND); + } + + return userMealPlans.stream() + .map(mealPlan -> mealPlan.getId()) + .toList(); + + } }