From 012659178435ea0f9043a817891294864435a8a7 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 25 Nov 2025 14:55:48 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=AB=E5=90=8D=E7=9A=84null=E5=80=BC?= =?UTF-8?q?=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ShopOrderStatisticMapper.java | 5 ++-- .../impl/ShopOrderStatisticServiceImpl.java | 23 +++++++++++-------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/mapper/ShopOrderStatisticMapper.java b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/ShopOrderStatisticMapper.java index afa0960ff..d0d6fca9e 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/mapper/ShopOrderStatisticMapper.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/ShopOrderStatisticMapper.java @@ -1,10 +1,9 @@ package com.czg.service.order.mapper; +import com.czg.order.entity.ShopOrderStatistic; import com.czg.order.vo.ProductCostAmountVO; import com.czg.order.vo.TotalVo; import com.mybatisflex.core.BaseMapper; -import com.czg.order.entity.ShopOrderStatistic; -import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Select; import java.math.BigDecimal; @@ -283,7 +282,7 @@ public interface ShopOrderStatisticMapper extends BaseMapper @Select("SELECT " + - " detail.product_id as productId," + + " detail.product_id as productId," + " detail.sku_id as skuId," + " sum(detail.num - detail.return_num) as count " + "FROM " + diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/ShopOrderStatisticServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/ShopOrderStatisticServiceImpl.java index f4b0adb1b..d9c0b8a07 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/ShopOrderStatisticServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/ShopOrderStatisticServiceImpl.java @@ -19,10 +19,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; @@ -192,24 +189,30 @@ public class ShopOrderStatisticServiceImpl extends ServiceImpl orderDetailProduct = mapper.getOrderDetailProduct(shopId, day); + orderDetailProduct = orderDetailProduct.stream() + .filter(Objects::nonNull) + .collect(Collectors.toList()); + if (CollUtil.isEmpty(orderDetailProduct)) { + return productCostAmount; + } //获取商品sku成本价 productId skuId price List skuCostAmountList = mapper.getSkuCostAmount(shopId); // //获取商品耗材成本价 productId price List consCostAmountList = mapper.getConsCostAmount(shopId); - //获取orderDetail信息 productId skuId 数量 - BigDecimal productCostAmount = BigDecimal.ZERO; if (CollUtil.isEmpty(skuCostAmountList) && CollUtil.isEmpty(consCostAmountList)) { return productCostAmount; } - List orderDetailProduct = mapper.getOrderDetailProduct(shopId, day); - if (CollUtil.isEmpty(orderDetailProduct)) { - return productCostAmount; - } Map skuCostAmountMap = skuCostAmountList.stream() .collect(Collectors.toMap(ProductCostAmountVO::getSkuId, ProductCostAmountVO::getCostAmount)); Map consCostAmountMap = consCostAmountList.stream() .collect(Collectors.toMap(ProductCostAmountVO::getProductId, ProductCostAmountVO::getCostAmount)); for (ProductCostAmountVO productCostAmountVO : orderDetailProduct) { + if (productCostAmountVO == null || productCostAmountVO.getCount() <= 0) { + continue; + } if (skuCostAmountMap.containsKey(productCostAmountVO.getSkuId())) { BigDecimal costAmount = skuCostAmountMap.get(productCostAmountVO.getSkuId()); productCostAmount = productCostAmount.add(costAmount.multiply(new BigDecimal(productCostAmountVO.getCount())).setScale(2, RoundingMode.HALF_UP));