|
@@ -189,19 +189,24 @@ public class OrderCalcServiceImpl implements OrderCalcService {
|
|
|
tradeOrderDO.forEach(k -> {
|
|
|
|
|
|
// 计算单个订单的总单价
|
|
|
- Long priceStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getPrice).sum();
|
|
|
+ long priceStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getPrice).sum();
|
|
|
// 计算单个订单的总成本
|
|
|
- Long longStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getCostPrice).sum();
|
|
|
- // 计算当个订单的总数量
|
|
|
- Integer intStream = k.getOrderItemMessages().stream().mapToInt(OrderItemMessage::getProductCount).sum();
|
|
|
+ long longStream = k.getOrderItemMessages().stream().mapToLong(OrderItemMessage::getCostPrice).sum();
|
|
|
+ BigDecimal price = new BigDecimal(priceStream);
|
|
|
+ BigDecimal costPrice = new BigDecimal(longStream);
|
|
|
|
|
|
- BigDecimal price = new BigDecimal(String.valueOf(priceStream));
|
|
|
- BigDecimal costPrice = new BigDecimal(String.valueOf(longStream));
|
|
|
- BigDecimal productCount = new BigDecimal(String.valueOf(intStream));
|
|
|
|
|
|
// 计算
|
|
|
// 计算利润: (价格 - 成本价格) * 产品数量
|
|
|
- BigDecimal profit = price.subtract(costPrice).multiply(productCount);
|
|
|
+ BigDecimal profit = new BigDecimal("0");
|
|
|
+ k.getOrderItemMessages().forEach(j -> {
|
|
|
+ // 计算该订单的利润
|
|
|
+ BigDecimal onePrice = new BigDecimal(j.getPrice());
|
|
|
+ BigDecimal oneCostPrice = new BigDecimal(j.getCostPrice());
|
|
|
+ BigDecimal productCount = new BigDecimal(j.getCount());
|
|
|
+ BigDecimal oneGrossProfit = onePrice.subtract(oneCostPrice).multiply(productCount);
|
|
|
+ profit.add(oneGrossProfit);
|
|
|
+ });
|
|
|
|
|
|
|
|
|
// 计算毛利: 利润 * 0.38
|
|
@@ -253,7 +258,7 @@ public class OrderCalcServiceImpl implements OrderCalcService {
|
|
|
.orderId(k.getOrderId())
|
|
|
.cost(costPrice.longValue())
|
|
|
.price(price.longValue())
|
|
|
- .productCount(productCount.intValue())
|
|
|
+ .productCount(k.getProductCount())
|
|
|
.nickName(k.getNickName())
|
|
|
.name(k.getName())
|
|
|
.grossProfit(grossProfitInt)
|