From 043d09bee8caa1f40f8aa385a79fd951dcf6fd22 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Tue, 25 Nov 2025 14:30:35 +0800 Subject: [PATCH] =?UTF-8?q?map=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/czg/task/StatisticTask.java | 1 + .../com/czg/order/vo/ProductCostAmountVO.java | 2 ++ .../order/mapper/ShopOrderStatisticMapper.java | 5 ++--- .../impl/ShopOrderStatisticServiceImpl.java | 17 +++++++++++------ 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/cash-api/order-server/src/main/java/com/czg/task/StatisticTask.java b/cash-api/order-server/src/main/java/com/czg/task/StatisticTask.java index 43d11057f..f60f58268 100644 --- a/cash-api/order-server/src/main/java/com/czg/task/StatisticTask.java +++ b/cash-api/order-server/src/main/java/com/czg/task/StatisticTask.java @@ -16,6 +16,7 @@ import java.time.LocalDate; import java.util.List; /** + * 统计任务 * @author Administrator */ @Component diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/vo/ProductCostAmountVO.java b/cash-common/cash-common-service/src/main/java/com/czg/order/vo/ProductCostAmountVO.java index aa0dadcf3..a6973aa8f 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/vo/ProductCostAmountVO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/vo/ProductCostAmountVO.java @@ -15,4 +15,6 @@ public class ProductCostAmountVO { private Long productId; private Long skuId; private Long count; + + private BigDecimal costAmount; } 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 2f9683a1a..4eb0e67a2 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 @@ -268,7 +268,7 @@ public interface ShopOrderStatisticMapper extends BaseMapper " product.shop_id = #{shopId} " + " AND sku.cost_price > 0") @MapKey("skuId") - Map getSkuCostAmount(Long shopId); + List getSkuCostAmount(Long shopId); @Select("SELECT" + " relation.product_id as productId," + @@ -279,8 +279,7 @@ public interface ShopOrderStatisticMapper extends BaseMapper " WHERE" + " relation.shop_id = #{shopId} " + " order by relation.product_id") - @MapKey("productId") - Map getConsCostAmount(Long shopId); + List getConsCostAmount(Long shopId); @Select("SELECT " + 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 a9ecdf764..f4b0adb1b 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 @@ -23,6 +23,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; +import java.util.stream.Collectors; /** @@ -192,9 +193,9 @@ public class ShopOrderStatisticServiceImpl extends ServiceImpl skuCostAmountList = mapper.getSkuCostAmount(shopId); + List skuCostAmountList = mapper.getSkuCostAmount(shopId); // //获取商品耗材成本价 productId price - Map consCostAmountList = mapper.getConsCostAmount(shopId); + List consCostAmountList = mapper.getConsCostAmount(shopId); //获取orderDetail信息 productId skuId 数量 BigDecimal productCostAmount = BigDecimal.ZERO; if (CollUtil.isEmpty(skuCostAmountList) && CollUtil.isEmpty(consCostAmountList)) { @@ -204,12 +205,16 @@ public class ShopOrderStatisticServiceImpl extends ServiceImpl 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 (skuCostAmountList.containsKey(productCostAmountVO.getSkuId())) { - BigDecimal costAmount = skuCostAmountList.get(productCostAmountVO.getSkuId()); + 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)); - } else if (consCostAmountList.containsKey(productCostAmountVO.getProductId())) { - BigDecimal costAmount = consCostAmountList.get(productCostAmountVO.getProductId()); + } else if (consCostAmountMap.containsKey(productCostAmountVO.getProductId())) { + BigDecimal costAmount = consCostAmountMap.get(productCostAmountVO.getProductId()); productCostAmount = productCostAmount.add(costAmount.multiply(new BigDecimal(productCostAmountVO.getCount())).setScale(2, RoundingMode.HALF_UP)); } }