Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion src/main/java/ssu/eatssu/domain/menu/entity/Menu.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@
import ssu.eatssu.domain.restaurant.entity.Restaurant;
import ssu.eatssu.domain.review.entity.Review;
import ssu.eatssu.domain.review.entity.Reviews;
import ssu.eatssu.domain.user.entity.Language;
import ssu.eatssu.global.i18n.Localizable;

import java.util.ArrayList;
import java.util.List;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Menu {
public class Menu implements Localizable {

// TODO : 삭제되어야 함
@Embedded
Expand All @@ -40,6 +42,12 @@ public class Menu {
@Column(name = "menu_id")
private Long id;
private String name;
@Column(name = "name_en")
private String nameEn;
@Column(name = "name_ja")
private String nameJa;
@Column(name = "name_vi")
private String nameVi;
private Integer price;
@Enumerated(EnumType.STRING)
private Restaurant restaurant;
Expand Down Expand Up @@ -67,6 +75,10 @@ public static Menu createFixed(String name, Restaurant restaurant, Integer price
return new Menu(name, restaurant, price, category);
}

public String getNameByLanguage(Language language) {
return getLocalizedValue(language, name, nameEn, nameJa, nameVi);
}

public void addReview(Review review) {
reviews.add(review);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import ssu.eatssu.domain.menu.entity.Menu;
import ssu.eatssu.domain.user.entity.Language;

@Getter
@NoArgsConstructor
Expand All @@ -24,7 +25,7 @@ public class MenuResponse {
@Schema(description = "메뉴 평점 (평점이 없으면 null) ", example = "4.4")
private Double rating;

public static MenuResponse from(Menu menu, Double rating) {
return new MenuResponse(menu.getId(), menu.getName(), menu.getPrice(), rating);
public static MenuResponse from(Menu menu, Double rating, Language language) {
return new MenuResponse(menu.getId(), menu.getNameByLanguage(language), menu.getPrice(), rating);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import ssu.eatssu.domain.menu.presentation.dto.response.MenuRestaurantResponse;
import ssu.eatssu.domain.menu.service.MenuService;
import ssu.eatssu.domain.restaurant.entity.Restaurant;
import ssu.eatssu.domain.user.entity.Language;
import ssu.eatssu.global.handler.response.BaseResponse;

@RestController
Expand All @@ -38,8 +39,9 @@ public class MenuController {
})
@GetMapping
public BaseResponse<MenuRestaurantResponse> getMenus(
@RequestParam("restaurant") Restaurant restaurant) {
@RequestParam("restaurant") Restaurant restaurant,
@RequestParam(required = false) Language language) {

return BaseResponse.success(menuService.getMenusByRestaurant(restaurant));
return BaseResponse.success(menuService.getMenusByRestaurant(restaurant, language));
}
}
12 changes: 8 additions & 4 deletions src/main/java/ssu/eatssu/domain/menu/service/MenuService.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import ssu.eatssu.domain.menu.presentation.dto.response.MenuRestaurantResponse;
import ssu.eatssu.domain.restaurant.entity.Restaurant;
import ssu.eatssu.domain.restaurant.entity.RestaurantType;
import ssu.eatssu.domain.user.entity.Language;
import ssu.eatssu.global.handler.response.BaseException;
import ssu.eatssu.global.handler.response.BaseResponseStatus;

Expand All @@ -37,7 +38,7 @@ private static void validateMenuRestaurant(Restaurant restaurant) {
}
}

public MenuRestaurantResponse getMenusByRestaurant(Restaurant restaurant) {
public MenuRestaurantResponse getMenusByRestaurant(Restaurant restaurant, Language language) {
Comment thread
pooreumjung marked this conversation as resolved.
validateMenuRestaurant(restaurant);

List<MenuCategory> categories = findCategoriesByRestaurant(restaurant);
Expand All @@ -46,7 +47,8 @@ public MenuRestaurantResponse getMenusByRestaurant(Restaurant restaurant) {

for (MenuCategory category : categories) {
List<MenuResponse> menus = getMenuResponsesByRestaurantAndCategory(restaurant,
category);
category,
language);
response.add(CategoryWithMenusResponse.of(category.getName(), menus));
}

Expand All @@ -59,12 +61,14 @@ private List<MenuCategory> findCategoriesByRestaurant(Restaurant restaurant) {

@NotNull
private List<MenuResponse> getMenuResponsesByRestaurantAndCategory(Restaurant restaurant,
MenuCategory category) {
MenuCategory category,
Language language) {
return menuRepository.findAllByRestaurantAndCategory(restaurant, category)
.stream()
.filter(Menu::isContinued)
.map(menu -> MenuResponse.from(menu,
menuRatingService.getMainRatingAverage(menu.getId())))
menuRatingService.getMainRatingAverage(menu.getId()),
language))
.toList();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import ssu.eatssu.domain.partnership.entity.Partnership;
import ssu.eatssu.domain.partnership.entity.PartnershipRestaurant;
import ssu.eatssu.domain.partnership.entity.PeriodType;
import ssu.eatssu.domain.user.entity.Language;

import java.time.LocalDate;

Expand All @@ -23,10 +24,11 @@ public class PartnershipInfo {

public static PartnershipInfo fromEntity(Partnership partnership,
PartnershipRestaurant restaurant,
boolean isLiked) {
boolean isLiked,
Language language) {
return PartnershipInfo.builder()
.id(partnership.getId())
.description(partnership.getDescription())
.description(partnership.getDescriptionByLanguage(language))
.startDate(partnership.getStartDate())
.endDate(partnership.getEndDate())
.periodType(partnership.getPeriodType())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ public static PartnershipResponse fromEntity(PartnershipRestaurant restaurant, L
List<PartnershipInfo> infos = restaurant.getPartnerships().stream()
.map(partnership -> PartnershipInfo.fromEntity(partnership,
restaurant,
isLiked))
isLiked,
language))
.collect(Collectors.toList());

return PartnershipResponse.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import org.hibernate.annotations.Where;
import ssu.eatssu.domain.user.department.entity.College;
import ssu.eatssu.domain.user.department.entity.Department;
import ssu.eatssu.domain.user.entity.Language;
import ssu.eatssu.global.i18n.Localizable;

import java.time.LocalDate;

Expand All @@ -27,7 +29,7 @@
@Builder
@AllArgsConstructor
@Where(clause = "end_date >= CURRENT_DATE")
public class Partnership {
public class Partnership implements Localizable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "partnership_id")
Expand All @@ -36,6 +38,15 @@ public class Partnership {
@Column(name = "description", nullable = false)
private String description;

@Column(name = "description_en", columnDefinition = "TEXT")
private String descriptionEn;

@Column(name = "description_ja", columnDefinition = "TEXT")
private String descriptionJa;

@Column(name = "description_vi", columnDefinition = "TEXT")
private String descriptionVi;

@Column(name = "start_date", nullable = false)
private LocalDate startDate;

Expand All @@ -59,6 +70,10 @@ public class Partnership {
@JoinColumn(name = "partnership_restaurant_id")
private PartnershipRestaurant partnershipRestaurant;

public String getDescriptionByLanguage(Language language) {
return getLocalizedValue(language, description, descriptionEn, descriptionJa, descriptionVi);
}

public void setPartnershipCollege(College partnershipCollege) {
this.partnershipCollege = partnershipCollege;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ALTER TABLE partnership
ADD COLUMN description_en TEXT NULL,
ADD COLUMN description_ja TEXT NULL,
ADD COLUMN description_vi TEXT NULL;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ALTER TABLE menu
ADD COLUMN name_en VARCHAR(255) NULL,
ADD COLUMN name_ja VARCHAR(255) NULL,
ADD COLUMN name_vi VARCHAR(255) NULL;