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