From 66dfc9994f9fb21f6ae131dd35d1a4dfc289c8a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Wed, 12 Mar 2025 19:34:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=BB=9F=E8=AE=A1=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ShopOrderStatisticServiceImpl.java | 54 ++++++++++++++++--- 1 file changed, 48 insertions(+), 6 deletions(-) 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 d26ff5e5..2753dc76 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 @@ -1,8 +1,14 @@ package com.czg.service.order.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ArrayUtil; +import com.czg.account.entity.ShopTable; +import com.czg.account.entity.ShopUserFlow; +import com.czg.account.service.ShopTableService; +import com.czg.account.service.ShopUserFlowService; import com.czg.order.entity.OrderInfo; import com.czg.order.entity.ShopOrderStatistic; import com.czg.order.service.OrderInfoService; @@ -11,13 +17,17 @@ import com.czg.service.order.mapper.ShopOrderStatisticMapper; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; +import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 服务层实现。 @@ -29,6 +39,10 @@ import java.util.List; public class ShopOrderStatisticServiceImpl extends ServiceImpl implements ShopOrderStatisticService { @Resource private OrderInfoService orderInfoService; + @DubboReference + private ShopUserFlowService shopUserFlowService; + @DubboReference + private ShopTableService shopTableService; @Override @@ -44,12 +58,32 @@ public class ShopOrderStatisticServiceImpl extends ServiceImpl flowMap = shopUserFlowService.list(new QueryWrapper() + .ge(ShopUserFlow::getCreateTime, startOfDay) + .le(ShopUserFlow::getCreateTime, endOfDay) + .in(ShopUserFlow::getBizCode, CollUtil.newArrayList("cashIn", "wechatIn", "alipayIn", "awardIn"))).stream() + .collect(Collectors.groupingBy( + ShopUserFlow::getShopId, + Collectors.reducing( + BigDecimal.ZERO, + ShopUserFlow::getAmount, + BigDecimal::add + ) + )); + HashMap countInfo = new HashMap<>(); for (OrderInfo item : orderInfos) { ShopOrderStatistic statisticTask = countInfo.get(item.getShopId()); if (statisticTask == null) { countInfo.put(item.getShopId(), statisticTask = new ShopOrderStatistic()); } + + BigDecimal bigDecimal = flowMap.get(item.getShopId()); + if (bigDecimal != null) { + statisticTask.setRechargeAmount(bigDecimal); + } + if ("refunding".equals(item.getStatus()) || "refund".equals(item.getStatus()) || "part-refund".equals(item.getStatus())) { statisticTask.setRefundAmount(statisticTask.getRefundAmount().add(item.getRefundAmount())); statisticTask.setRefundCount(statisticTask.getRefundCount() + 1); @@ -61,6 +95,8 @@ public class ShopOrderStatisticServiceImpl extends ServiceImpl