Skip to content

Commit

Permalink
feat: 음식 주문 api 기능 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
summit45 committed Nov 11, 2023
1 parent aa2e819 commit 8c065fb
Show file tree
Hide file tree
Showing 7 changed files with 106 additions and 3 deletions.
1 change: 0 additions & 1 deletion src/main/java/com/kusitms/jipbap/food/FoodService.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ public class FoodService {

@Transactional
public CategoryDto registerCategory(RegisterCategoryRequestDto dto) {
System.out.println(dto.getName());
Category category = categoryRepository.save(
new Category(null, dto.getName(), dto.getImage())
);
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/com/kusitms/jipbap/order/Order.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.kusitms.jipbap.order;

import com.kusitms.jipbap.common.entity.DateEntity;
import com.kusitms.jipbap.food.Category;
import com.kusitms.jipbap.food.Food;
import com.kusitms.jipbap.store.Store;
import com.kusitms.jipbap.user.User;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
Expand Down
29 changes: 29 additions & 0 deletions src/main/java/com/kusitms/jipbap/order/OrderController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.kusitms.jipbap.order;

import com.kusitms.jipbap.common.response.CommonResponse;
import com.kusitms.jipbap.food.dto.CategoryDto;
import com.kusitms.jipbap.food.dto.RegisterCategoryRequestDto;
import com.kusitms.jipbap.order.dto.OrderDto;
import com.kusitms.jipbap.order.dto.OrderFoodRequestDto;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;

@RestController
@RequestMapping("/order")
@RequiredArgsConstructor
public class OrderController {

private final OrderService orderService;

@Operation(summary = "음식 주문하기")
@PostMapping("/food")
@ResponseStatus(HttpStatus.CREATED)
public CommonResponse<OrderDto> orderFood(@Valid @RequestBody OrderFoodRequestDto dto) {
return new CommonResponse<>(orderService.orderFood(dto));
}

}
7 changes: 7 additions & 0 deletions src/main/java/com/kusitms/jipbap/order/OrderRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.kusitms.jipbap.order;

import com.kusitms.jipbap.food.Food;
import org.springframework.data.jpa.repository.JpaRepository;

public interface OrderRepository extends JpaRepository <Order, Long> {
}
36 changes: 36 additions & 0 deletions src/main/java/com/kusitms/jipbap/order/OrderService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.kusitms.jipbap.order;

import com.kusitms.jipbap.food.Category;
import com.kusitms.jipbap.food.Food;
import com.kusitms.jipbap.food.FoodRepository;
import com.kusitms.jipbap.food.dto.CategoryDto;
import com.kusitms.jipbap.food.exception.FoodNotExistsException;
import com.kusitms.jipbap.order.dto.OrderDto;
import com.kusitms.jipbap.order.dto.OrderFoodRequestDto;
import com.kusitms.jipbap.user.User;
import com.kusitms.jipbap.user.UserRepository;
import com.kusitms.jipbap.user.exception.UserNotFoundException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@Slf4j
@Service
@RequiredArgsConstructor
public class OrderService {

private final OrderRepository orderRepository;
private final UserRepository userRepository;
private final FoodRepository foodRepository;

public OrderDto orderFood(OrderFoodRequestDto dto) {
User user = userRepository.findById(dto.getUser()).orElseThrow(()-> new UserNotFoundException("유저 정보가 존재하지 않습니다."));
Food food = foodRepository.findById(dto.getFood()).orElseThrow(()-> new FoodNotExistsException("해당 음식은 유효하지 않습니다."));

Order order = orderRepository.save(
new Order(null, user, food, dto.getOrderCount())
);

return new OrderDto(order.getId(), user.getId(), food.getId(), order.getOrderCount());
}
}
19 changes: 19 additions & 0 deletions src/main/java/com/kusitms/jipbap/order/dto/OrderDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.kusitms.jipbap.order.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@AllArgsConstructor
public class OrderDto {

private Long id;

private Long user;

private Long food;

private Long orderCount;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.kusitms.jipbap.order.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class OrderFoodRequestDto {
private Long user;

private Long food;

private Long orderCount;
}

0 comments on commit 8c065fb

Please sign in to comment.