From d26faefa7de0b4e6f56b6909a8b9913032c8134e Mon Sep 17 00:00:00 2001 From: sangeun Date: Mon, 29 Apr 2024 17:44:54 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=ED=99=9C=EB=8F=99=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A1=B0=ED=9A=8C=20API=EC=97=90=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=EB=B3=84=20=EA=B8=B0=ED=83=80=20?= =?UTF-8?q?=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/application/ActivityListService.java | 15 +++++++-------- .../domain/activity/domain/Category.java | 6 +++++- .../activity/repository/CategoryRepository.java | 8 ++++---- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/hobak/happinessql/domain/activity/application/ActivityListService.java b/src/main/java/com/hobak/happinessql/domain/activity/application/ActivityListService.java index eb9d927..881ca64 100644 --- a/src/main/java/com/hobak/happinessql/domain/activity/application/ActivityListService.java +++ b/src/main/java/com/hobak/happinessql/domain/activity/application/ActivityListService.java @@ -8,8 +8,6 @@ import com.hobak.happinessql.domain.activity.dto.CategoryDto; import com.hobak.happinessql.domain.activity.repository.ActivityRepository; import com.hobak.happinessql.domain.activity.repository.CategoryRepository; -import com.hobak.happinessql.domain.user.domain.User; -import com.hobak.happinessql.domain.user.application.UserFindService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,25 +23,26 @@ public class ActivityListService { private final ActivityRepository activityRepository; private final CategoryRepository categoryRepository; - private final UserFindService userFindService; public ActivityListResponseDto getActivitiesByUserId(Long userId) { - User user = userFindService.findUserById(userId); List categoryDtos = new ArrayList<>(); - List categories = categoryRepository.findAll(); + List categories = categoryRepository.findByUserIdIsNull(); for (Category category : categories) { - List activityDtos = fetchActivityDtosByCategory(category, user); + List activityDtos = fetchActivityDtosByCategory(category); CategoryDto categoryDto = ActivityConverter.toCategoryDto(category, activityDtos); categoryDtos.add(categoryDto); } - + Category ectCategory = categoryRepository.findByUserId(userId); + List ectActivities = fetchActivityDtosByCategory(ectCategory); + CategoryDto categoryDto2 = ActivityConverter.toCategoryDto(ectCategory, ectActivities); + categoryDtos.add(categoryDto2); return ActivityListResponseDto.builder() .categories(categoryDtos) .build(); } - private List fetchActivityDtosByCategory(Category category, User user) { + private List fetchActivityDtosByCategory(Category category) { List activities = activityRepository.findByCategory(category); return activities.stream() .map(activity -> ActivityConverter.toActivityDto(activity)) diff --git a/src/main/java/com/hobak/happinessql/domain/activity/domain/Category.java b/src/main/java/com/hobak/happinessql/domain/activity/domain/Category.java index 36ad489..cee5c6c 100644 --- a/src/main/java/com/hobak/happinessql/domain/activity/domain/Category.java +++ b/src/main/java/com/hobak/happinessql/domain/activity/domain/Category.java @@ -25,11 +25,15 @@ public class Category extends BaseTimeEntity { @OneToMany(mappedBy = "category", cascade = CascadeType.REMOVE, orphanRemoval = true) private List activities; + @Column(nullable = true) + private Long userId; + @Builder - public Category(Long categoryId, String name, List activities) { + public Category(Long categoryId, String name, List activities, Long userId) { this.categoryId = categoryId; this.name = name; this.activities = activities; + this.userId = userId; } } diff --git a/src/main/java/com/hobak/happinessql/domain/activity/repository/CategoryRepository.java b/src/main/java/com/hobak/happinessql/domain/activity/repository/CategoryRepository.java index 233b698..9ab9746 100644 --- a/src/main/java/com/hobak/happinessql/domain/activity/repository/CategoryRepository.java +++ b/src/main/java/com/hobak/happinessql/domain/activity/repository/CategoryRepository.java @@ -1,14 +1,14 @@ package com.hobak.happinessql.domain.activity.repository; -import com.hobak.happinessql.domain.activity.domain.Activity; import com.hobak.happinessql.domain.activity.domain.Category; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface CategoryRepository extends JpaRepository{ - Page findByCategoryIdGreaterThanOrderByCategoryIdAsc(Long lastCategoryId, Pageable pageable); Optional findByName(String name); + List findByUserIdIsNull(); + + Category findByUserId(Long userId); } \ No newline at end of file