-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOrderManager.java
More file actions
43 lines (35 loc) · 1.25 KB
/
Copy pathOrderManager.java
File metadata and controls
43 lines (35 loc) · 1.25 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
42
43
import java.util.ArrayList;
import java.util.List;
public class OrderManager {
private final List<StudentOrder> orders;
private int orderCounter;
public OrderManager() {
orders = new ArrayList<>();
orderCounter = 1;
}
public StudentOrder createOrder(String studentId, List<OrderItem> items) {
String orderId = "ORD" + orderCounter++;
StudentOrder order = new StudentOrder(orderId, studentId, items);
orders.add(order);
return order;
}
public boolean updateOrderStatus(String orderId, String status) {
for (StudentOrder order : orders) {
if (order.getOrderId().equals(orderId)) {
order.setStatus(status);
return true;
}
}
return false;
}
public List<StudentOrder> getAllOrders() { return new ArrayList<>(orders); }
public void displayOrders() {
System.out.println("\n=== Orders ===");
if (orders.isEmpty()) System.out.println("No orders found.");
else orders.forEach(System.out::println);
}
public int getTotalOrders() { return orders.size(); }
public double getTotalRevenue() {
return orders.stream().mapToDouble(StudentOrder::getTotalPrice).sum();
}
}