You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.1 KiB
86 lines
2.1 KiB
/**
|
|
* 订单类,包含订单的基本信息
|
|
*/
|
|
package com.orderprocessing;
|
|
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
public class Order {
|
|
private String orderId;
|
|
private Date orderDate;
|
|
private double totalAmount;
|
|
private String customerName;
|
|
private List<OrderItem> items;
|
|
private OrderStatus status;
|
|
|
|
public enum OrderStatus {
|
|
CREATED, VALIDATED, PROCESSED, SHIPPED, DELIVERED, CANCELLED
|
|
}
|
|
|
|
// 构造方法
|
|
public Order(String orderId, String customerName, List<OrderItem> items) {
|
|
this.orderId = orderId;
|
|
this.customerName = customerName;
|
|
this.items = items;
|
|
this.orderDate = new Date();
|
|
this.status = OrderStatus.CREATED;
|
|
calculateTotalAmount();
|
|
}
|
|
|
|
// 计算订单总金额
|
|
private void calculateTotalAmount() {
|
|
totalAmount = 0;
|
|
if (items != null) {
|
|
for (OrderItem item : items) {
|
|
totalAmount += item.getPrice() * item.getQuantity();
|
|
}
|
|
}
|
|
}
|
|
|
|
// 应用折扣
|
|
public void applyDiscount(double discountAmount) {
|
|
if (discountAmount > 0 && discountAmount <= totalAmount) {
|
|
totalAmount -= discountAmount;
|
|
}
|
|
}
|
|
|
|
// getter和setter方法
|
|
public String getOrderId() {
|
|
return orderId;
|
|
}
|
|
|
|
public Date getOrderDate() {
|
|
return orderDate;
|
|
}
|
|
|
|
public double getTotalAmount() {
|
|
return totalAmount;
|
|
}
|
|
|
|
public String getCustomerName() {
|
|
return customerName;
|
|
}
|
|
|
|
public List<OrderItem> getItems() {
|
|
return items;
|
|
}
|
|
|
|
public OrderStatus getStatus() {
|
|
return status;
|
|
}
|
|
|
|
public void setStatus(OrderStatus status) {
|
|
this.status = status;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "Order{" +
|
|
"orderId='" + orderId + '\'' +
|
|
", customerName='" + customerName + '\'' +
|
|
", totalAmount=" + totalAmount +
|
|
", status=" + status +
|
|
'}';
|
|
}
|
|
} |