Skip to content

Commit

Permalink
feat: menu 추가 기능
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeongh00 committed Aug 4, 2024
1 parent d1b56ec commit aef33c7
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
package com.likelion.apimodule.customer.application;

import com.likelion.apimodule.customer.dto.AddMenu;
import com.likelion.commonmodule.image.service.AwsS3Service;
import com.likelion.coremodule.VisitList.domain.VisitList;
import com.likelion.coremodule.VisitList.service.VisitListQueryService;
import com.likelion.coremodule.menu.domain.Menu;
import com.likelion.coremodule.menu.service.MenuQueryService;
import com.likelion.coremodule.order.domain.Order;
import com.likelion.coremodule.order.service.OrderQueryService;
import com.likelion.coremodule.store.domain.Store;
import com.likelion.coremodule.store.service.StoreQueryService;
import com.likelion.coremodule.user.application.UserQueryService;
import com.likelion.coremodule.user.domain.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

@Service
@RequiredArgsConstructor
Expand All @@ -18,6 +25,9 @@ public class CustomerSaveUseCase {
private final VisitListQueryService visitListQueryService;
private final OrderQueryService orderQueryService;
private final UserQueryService userQueryService;
private final StoreQueryService storeQueryService;
private final AwsS3Service awsS3Service;
private final MenuQueryService menuQueryService;

public void changeToPreparing(Long storeId, Long orderId) {

Expand All @@ -36,4 +46,14 @@ public void changeToPrepared(Long storeId, Long orderId) {
VisitList visitList = visitListQueryService.findVisitListByStoreIdAndUserId(storeId, user.getUserId());
visitList.updateToPrepared();
}

public void addMenuInfo(Long storeId, AddMenu addMenu, MultipartFile multipartFile) {

Store store = storeQueryService.findStoreById(storeId);
String imageUrl = awsS3Service.uploadFile(multipartFile);

final Menu menu = Menu.builder().store(store).name(addMenu.name()).content(addMenu.content()).
imageUrl(imageUrl).price(addMenu.price()).build();
menuQueryService.saveMenu(menu);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.likelion.apimodule.customer.dto;

public record AddMenu(
String name,
Integer price,
String content
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.likelion.apimodule.customer.application.CustomerFIndUseCase;
import com.likelion.apimodule.customer.application.CustomerSaveUseCase;
import com.likelion.apimodule.customer.dto.AddMenu;
import com.likelion.apimodule.customer.dto.TotalOrder;
import com.likelion.commonmodule.exception.common.ApplicationResponse;
import io.swagger.v3.oas.annotations.Operation;
Expand All @@ -11,6 +12,7 @@
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

Expand Down Expand Up @@ -86,6 +88,25 @@ public ApplicationResponse<String> changeToPrepared(
return ApplicationResponse.ok("주문을 준비 완료했습니다.");
}


// 메뉴 추가 API (소연)
@PostMapping("/{storeId}/addmenu")
@ApiResponses(
value = {
@ApiResponse(
responseCode = "200",
description = "메뉴 추가 완료",
useReturnTypeSchema = true
)
}
)
@Operation(summary = "메뉴 추가 완료 API", description = "메뉴 추가 완료 API 입니다.")
public ApplicationResponse<String> addMenuInfo(
@PathVariable Long storeId,
@RequestPart(value = "dto") AddMenu addMenu,
@RequestPart(value = "file") MultipartFile multipartFile) {

customerSaveUseCase.addMenuInfo(storeId, addMenu, multipartFile);
return ApplicationResponse.ok("메뉴 추가가 완료 되었습니다.");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ public List<Menu> findAllMenus() {
return menuRepository.findAll();
}

public void saveMenu(Menu menu) {
menuRepository.save(menu);
}

public Menu findMenuById(Long menuId) {
return menuRepository.findById(menuId).orElseThrow(() -> new MenuException(MenuErrorCode.NO_MENU_INFO));
}
Expand Down

0 comments on commit aef33c7

Please sign in to comment.