-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBill.java
More file actions
41 lines (32 loc) · 1.17 KB
/
Bill.java
File metadata and controls
41 lines (32 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package domain;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import repository.MenuRepository;
import repository.OrderRepository;
//주문 메뉴와 수량을 알고있는 객체. OrderRepository는 이 객체를 통해 주문을 추가한다.
public class Bill {
private final int tableNumber;
Map<Menu, Integer> orderedMenus;
public Bill(int tableNumber) {
this.tableNumber = tableNumber;
this.orderedMenus = Collections.emptyMap();
}
//해당 테이블에서 주문한 메뉴와 수량을 return한다.
public Bill(OrderRepository orderRepository, int tableNumber) {
List<Order> orders = orderRepository.findByTableNumber(tableNumber);
Map<Menu, Integer> orderedMenus = orders.stream()
.filter(order -> order.getTableNumber() == tableNumber)
.collect(Collectors.toMap(order -> MenuRepository.findByNumber(order.getMenuNumber()),
order -> order.getMenuCount(), (c1, c2) -> c1 + c2));
this.tableNumber = tableNumber;
this.orderedMenus = orderedMenus;
}
public int getTableNumber() {
return tableNumber;
}
public Map<Menu, Integer> getOrderedMenus() {
return this.orderedMenus;
}
}