Skip to content

Commit

Permalink
Merge pull request #80 from Happy-HOBAK/feat/#78
Browse files Browse the repository at this point in the history
[#78] ν™œλ™ 검색 였λ₯˜ μˆ˜μ • 및 description 검색 μΆ”κ°€
  • Loading branch information
yel-m authored May 14, 2024
2 parents 45b927b + bd05d91 commit d77fc91
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class ActivitySearchService {
public ActivitySearchResponseDto searchActivities(String keyword, Long userId) {
List<Activity> activitiesByCategory = activityRepository.findByCategoryNameContaining(keyword);
List<Activity> activitiesByName = activityRepository.findByNameContaining(keyword);

List<Activity> activitiesByDescription = activityRepository.findByDescriptionContaining(keyword);
Map<Long, CategoryDto> categoryDtoMap = new HashMap<>();

for (Activity activity : activitiesByCategory) {
Expand All @@ -39,21 +39,32 @@ public ActivitySearchResponseDto searchActivities(String keyword, Long userId) {

for (Activity activity : activitiesByName) {
Category category = activity.getCategory();
if(categoryDtoMap.containsKey(category.getCategoryId())){
if(activitiesByCategory.contains(activity)){
continue;
}
if(category.getUserId() == null || category.getUserId().equals(userId)){
CategoryDto categoryDto = categoryDtoMap.getOrDefault(category.getCategoryId(), ActivityConverter.toCategoryDto(category));
ActivityDto activityDto = ActivityConverter.toActivityDto(activity);
if (!categoryDto.getActivities().contains(activityDto)) {
categoryDto.getActivities().add(activityDto);
}
categoryDtoMap.put(category.getCategoryId(), categoryDto);
addActivity(userId, categoryDtoMap, activity, category);
}
for(Activity activity : activitiesByDescription) {
Category category = activity.getCategory();
if(activitiesByCategory.contains(activity) || activitiesByName.contains(activity)){
continue;
}
addActivity(userId, categoryDtoMap, activity, category);
}

return ActivityConverter
.toActivitySearchResponseDto(new ArrayList<>(categoryDtoMap.values()));

}

private void addActivity(Long userId, Map<Long, CategoryDto> categoryDtoMap, Activity activity, Category category) {
if(category.getUserId() == null || category.getUserId().equals(userId)){
CategoryDto categoryDto = categoryDtoMap.getOrDefault(category.getCategoryId(), ActivityConverter.toCategoryDto(category));
ActivityDto activityDto = ActivityConverter.toActivityDto(activity);
if (!categoryDto.getActivities().contains(activityDto)) {
categoryDto.getActivities().add(activityDto);
}
categoryDtoMap.put(category.getCategoryId(), categoryDto);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public static Activity toActivity(ActivityCreateRequestDto requestDto, Category
}
public static ActivityDto toActivityDto(Activity activity) {
return ActivityDto.builder()
.description(activity.getDescription())
.id(activity.getActivityId())
.name(activity.getName())
.emoji(activity.getEmoji())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ public interface ActivityRepository extends JpaRepository<Activity, Long> {

List<Activity> findByCategoryNameContaining(String keyword);
List<Activity> findByNameContaining(String keyword);
List<Activity> findByDescriptionContaining(String keyword);
}

0 comments on commit d77fc91

Please sign in to comment.