Skip to content

Commit

Permalink
Merge pull request #42 from Happy-HOBAK/feat/#41
Browse files Browse the repository at this point in the history
[#41] 기타 카테고리 추가
  • Loading branch information
yel-m authored Apr 29, 2024
2 parents 91fd48c + d26faef commit 350baeb
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<CategoryDto> categoryDtos = new ArrayList<>();

List<Category> categories = categoryRepository.findAll();
List<Category> categories = categoryRepository.findByUserIdIsNull();
for (Category category : categories) {
List<ActivityDto> activityDtos = fetchActivityDtosByCategory(category, user);
List<ActivityDto> activityDtos = fetchActivityDtosByCategory(category);
CategoryDto categoryDto = ActivityConverter.toCategoryDto(category, activityDtos);
categoryDtos.add(categoryDto);
}

Category ectCategory = categoryRepository.findByUserId(userId);
List<ActivityDto> ectActivities = fetchActivityDtosByCategory(ectCategory);
CategoryDto categoryDto2 = ActivityConverter.toCategoryDto(ectCategory, ectActivities);
categoryDtos.add(categoryDto2);
return ActivityListResponseDto.builder()
.categories(categoryDtos)
.build();
}

private List<ActivityDto> fetchActivityDtosByCategory(Category category, User user) {
private List<ActivityDto> fetchActivityDtosByCategory(Category category) {
List<Activity> activities = activityRepository.findByCategory(category);
return activities.stream()
.map(activity -> ActivityConverter.toActivityDto(activity))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,15 @@ public class Category extends BaseTimeEntity {
@OneToMany(mappedBy = "category", cascade = CascadeType.REMOVE, orphanRemoval = true)
private List<Activity> activities;

@Column(nullable = true)
private Long userId;

@Builder
public Category(Long categoryId, String name, List<Activity> activities) {
public Category(Long categoryId, String name, List<Activity> activities, Long userId) {
this.categoryId = categoryId;
this.name = name;
this.activities = activities;
this.userId = userId;
}
}

Original file line number Diff line number Diff line change
@@ -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<Category, Long>{
Page<Category> findByCategoryIdGreaterThanOrderByCategoryIdAsc(Long lastCategoryId, Pageable pageable);
Optional<Category> findByName(String name);
List<Category> findByUserIdIsNull();

Category findByUserId(Long userId);
}

0 comments on commit 350baeb

Please sign in to comment.