Skip to content

Commit

Permalink
Feat: DishService 클래스에 메소드 생성
Browse files Browse the repository at this point in the history
모든 메인 음식을 보여주기 위해 findAllMainDish, getImage, getBadges 메소드 생성
  • Loading branch information
eNoLJ committed Apr 21, 2021
1 parent c887071 commit ade7ffb
Showing 1 changed file with 33 additions and 1 deletion.
34 changes: 33 additions & 1 deletion BE/src/main/java/com/mj_eno/sidedish/service/DishService.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,46 @@
package com.mj_eno.sidedish.service;

import com.mj_eno.sidedish.domain.Image.ImageRepository;
import com.mj_eno.sidedish.domain.badge.Badge;
import com.mj_eno.sidedish.domain.badge.BadgeRepository;
import com.mj_eno.sidedish.domain.dish.Dish;
import com.mj_eno.sidedish.domain.dish.DishRepository;
import com.mj_eno.sidedish.domain.dishBadge.DishBadgeRepository;
import com.mj_eno.sidedish.web.dto.MainDishResponseDTO;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

@Service
public class DishService {

public final DishRepository dishRepository;
public final ImageRepository imageRepository;
public final BadgeRepository badgeRepository;
public final DishBadgeRepository dishBadgeRepository;

public DishService(DishRepository dishRepository) {
public DishService(DishRepository dishRepository, ImageRepository imageRepository, BadgeRepository badgeRepository, DishBadgeRepository dishBadgeRepository) {
this.dishRepository = dishRepository;
this.imageRepository = imageRepository;
this.badgeRepository = badgeRepository;
this.dishBadgeRepository = dishBadgeRepository;
}

public List<MainDishResponseDTO> findAllMainDish() {
return dishRepository.findAllByMenuCategoryId(1L).stream()
.map(dish -> new MainDishResponseDTO(dish, getImage(dish), getBadges(dish)))
.collect(Collectors.toList());
}

public String getImage(Dish dish) {
return imageRepository.findByDishIdAndTopTrue(dish.getId()).get().getUrl();
}

public List<String> getBadges(Dish dish) {
return dishBadgeRepository.findAllByDishId(dish.getId()).stream()
.map(dishBadge -> badgeRepository.findById((long) dishBadge.getBadgeId()).get())
.map(Badge::getName)
.collect(Collectors.toList());
}
}

0 comments on commit ade7ffb

Please sign in to comment.