Skip to content

Commit

Permalink
Merge pull request #28 from logostory/david
Browse files Browse the repository at this point in the history
Update order api
  • Loading branch information
torypapa authored Dec 19, 2018
2 parents c1373da + b30dedd commit 891bfc4
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import io.logostory.orderbook.backend.domain.dto.order.OrderDto.OrderSearchResultDto;
import io.logostory.orderbook.backend.domain.entity.order.Order;
import io.logostory.orderbook.backend.repository.OrderRepository;
import io.logostory.orderbook.backend.service.OrderService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
Expand All @@ -17,12 +18,13 @@ public class OrderApi {
@Autowired
OrderRepository orderRepository;

@Autowired
OrderService orderService;

@PostMapping(path = "/shops/{shopId}/orders")
public ResponseEntity<OrderSearchResultDto> addOrder(@PathVariable Long shopId, @RequestBody OrderAddDto dto) {

Order order = new Order();


Order order = orderService.create(shopId, dto);
return ResponseEntity.ok(new OrderSearchResultDto(order));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ public class OrderController {
@PostMapping(value = "/orders")
private ResponseEntity create(@RequestBody OrderAddDto dto) {

orderService.create(dto);
long shopId = 0;
orderService.create(shopId, dto);
return ResponseEntity.ok(HttpStatus.CREATED);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

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

@Data
public class ItemDto {
Expand All @@ -27,9 +28,17 @@ public static class ItemSearchResultDto extends ItemDto {
Long price;
String comment;

List<ItemOptionDto.ItemOptionSearchResultDto> options = new ArrayList<>();

public ItemSearchResultDto(Item i) {

itemId = i.getItemId();
itemName = i.getItemName();
imagePath = i.getImagePath();
price = i.getPrice();
comment = i.getComment();

options = i.getItemOptions().stream().map(io -> new ItemOptionDto.ItemOptionSearchResultDto(io)).collect(Collectors.toList());
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.logostory.orderbook.backend.domain.dto.order;

import io.logostory.orderbook.backend.domain.entity.order.ItemOption;
import lombok.Data;

@Data
Expand All @@ -16,7 +17,13 @@ public static class ItemOptionSearchResultDto extends ItemOptionDto {

Long itemOptionId;
String itemOptionName;
Long itemOptionPrice;

public ItemOptionSearchResultDto(ItemOption io) {
itemOptionId = io.getItemOptionId();
itemOptionName = io.getItemOptionName();
itemOptionPrice = io.getItemOptionPrice();
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public static class OrderSearchResultDto extends OrderDto {

public OrderSearchResultDto(Order order) {

orderId = order.getOrderId();
seatNumber = order.getSeatNumber();
items = order.getItems().stream().map(i -> new ItemDto.ItemSearchResultDto(i)).collect(Collectors.toList());
totalPrice = order.getTotalPrice();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,15 @@ public Item setOrder(Order order) {
}

public void addItemOption(ItemOption io) {
itemOptions.add(io);
io.setItem(this);
itemOptions.add(io);
}

public void setItem(Menu menu){
this.menu = menu;
this.itemName = menu.getMenuName();
this.imagePath = menu.getImagePath();
this.comment = menu.getComment();
this.price = menu.getPrice();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public class ItemOption extends AuditEntity {
@GeneratedValue(strategy = GenerationType.AUTO)
Long itemOptionId;
Long itemOptionPrice;
String itemOptionName;

@ManyToOne
@JoinColumn(name = "itemId")
Expand All @@ -31,6 +32,8 @@ public class ItemOption extends AuditEntity {


public ItemOption setItemOption(Option option) {
this.option = option;
this.itemOptionName = option.getOptionName();
this.itemOptionPrice = option.getPrice();
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import io.logostory.orderbook.backend.domain.entity.order.Item;
import io.logostory.orderbook.backend.domain.entity.order.ItemOption;
import io.logostory.orderbook.backend.domain.entity.order.Order;
import io.logostory.orderbook.backend.domain.entity.shop.Shop;
import io.logostory.orderbook.backend.repository.MenuRepository;
import io.logostory.orderbook.backend.repository.OptionRepository;
import io.logostory.orderbook.backend.repository.OrderRepository;
Expand All @@ -22,8 +23,9 @@ public class OrderService {
private final MenuRepository menuRepository;
private final OptionRepository optionRepository;

public Order create(OrderDto.OrderAddDto orderAddDto) {
public Order create(Long shopId, OrderDto.OrderAddDto orderAddDto) {
Order order = new Order();
order.setShop(Shop.builder().shopId(shopId).build());
Long totalPrice = 0L;

List<ItemDto.ItemAddDto> itemAddList = orderAddDto.getMenus();
Expand All @@ -47,9 +49,8 @@ public Order create(OrderDto.OrderAddDto orderAddDto) {
order.setSeatNumber(orderAddDto.getSeatNumber());
order.setTotalPrice((int) (long) totalPrice);

orderRepository.save(order);
order = orderRepository.save(order);

return order;
}

}

0 comments on commit 891bfc4

Please sign in to comment.