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.
yilai/TotalSalesAnalysisStrategy....

47 lines
1.5 KiB

/**
* 总销售额分析策略,计算订单的总销售额和平均订单金额
*/
package com.orderprocessing;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TotalSalesAnalysisStrategy implements OrderAnalysisStrategy {
@Override
public Map<String, Object> analyze(List<Order> orders) {
Map<String, Object> results = new HashMap<>();
if (orders == null || orders.isEmpty()) {
results.put("totalSales", 0.0);
results.put("averageOrderAmount", 0.0);
results.put("orderCount", 0);
return results;
}
double totalSales = 0.0;
int processedOrderCount = 0;
for (Order order : orders) {
if (order.getStatus() == Order.OrderStatus.PROCESSED ||
order.getStatus() == Order.OrderStatus.SHIPPED ||
order.getStatus() == Order.OrderStatus.DELIVERED) {
totalSales += order.getTotalAmount();
processedOrderCount++;
}
}
double averageOrderAmount = processedOrderCount > 0 ? totalSales / processedOrderCount : 0.0;
results.put("totalSales", totalSales);
results.put("averageOrderAmount", averageOrderAmount);
results.put("orderCount", processedOrderCount);
return results;
}
@Override
public String getStrategyName() {
return "总销售额分析";
}
}