From fc8b51f40e71aa09bb49f407c1e9f68ac94ceb58 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 29 七月 2024 18:51:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MgtBusinessDataService.java |   52 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MgtBusinessDataService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MgtBusinessDataService.java
index 75fef99..90d2b31 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MgtBusinessDataService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MgtBusinessDataService.java
@@ -19,6 +19,7 @@
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -52,9 +53,9 @@
      */
     public MgtOrderStaticsVO getOverview(MgtOrderStaticsQuery query) {
 
-        LocalDateTime startTime = null;
-        LocalDateTime endTime = null;
-        getTimeByTimeType(query, startTime, endTime);
+        List<LocalDateTime> timeByTimeType = getTimeByTimeType(query);
+        LocalDateTime startTime = timeByTimeType.get(0);
+        LocalDateTime endTime = timeByTimeType.get(1);
         List<Order> orderList = orderService.getStaticsOrderList(startTime, endTime);
         if (orderList.isEmpty()) {
             throw new ServiceException("暂无数据");
@@ -110,12 +111,12 @@
         long auctionOrderTotalCount = orderList.stream()
                 .filter(order -> order.getOrderFrom().equals(OrderFromEnum.AUCTION_ORDERS))
                 .count();
-        // 商城订单统计-订单总数
+        // 拍卖订单统计-拍卖商品订单
         long auctionGoodsOrderCount = orderList.stream()
                 .filter(order -> order.getOrderFrom().equals(OrderFromEnum.AUCTION_ORDERS)
                         && order.getAuctionOrderType().equals(AuctionOrderTypeEnum.REGULAR_ITEMS))
                 .count();
-        // 拍卖订单统计-拍卖商品订单
+        // 拍卖订单统计-拍卖场订单
         long auctionSalesroomOrderCount = orderList.stream()
                 .filter(order -> order.getOrderFrom().equals(OrderFromEnum.AUCTION_ORDERS)
                         && order.getAuctionOrderType().equals(AuctionOrderTypeEnum.AUCTION_ITEMS))
@@ -147,8 +148,10 @@
         return mgtOrderStaticsVO;
     }
 
-    private void getTimeByTimeType(MgtOrderStaticsQuery query, LocalDateTime startTime,
-            LocalDateTime endTime) {
+    private List<LocalDateTime> getTimeByTimeType(MgtOrderStaticsQuery query) {
+        LocalDateTime startTime;
+        LocalDateTime endTime;
+        List<LocalDateTime> range = new ArrayList<>();
         LocalDateTime now = LocalDateTime.now();
         if (Objects.equals(TimeTypeEnum.TODAY.getCode(), query.getTimeType())) {
             startTime = DateUtils.getDayStart(now);
@@ -169,6 +172,9 @@
             startTime = DateUtils.getDayStart(now);
             endTime = DateUtils.getDayEnd(now);
         }
+        range.add(startTime);
+        range.add(endTime);
+        return range;
     }
 
     /**
@@ -201,23 +207,23 @@
         CompletableFuture<List<MgtAmountChartVO>> auctionOrderTotalAmountFuture = CompletableFuture.supplyAsync(
                 () -> getMgtAmountChartVOS(datesBetween, orderList, OrderTypeEnum.AUCTION_ORDER),
                 executorService);
-        // 等待所有任务完成
-        CompletableFuture<Void> futureAll = CompletableFuture.allOf(mallOrderCountFuture,
-                mallOrderTotalAmountFuture, auctionOrderCountFuture, auctionOrderTotalAmountFuture);
+        // 使用 join 方法阻塞当前线程,直到所有任务完成
+        CompletableFuture.allOf(mallOrderCountFuture,
+                        mallOrderTotalAmountFuture, auctionOrderCountFuture, auctionOrderTotalAmountFuture)
+                .join();
         MgtOrderStaticsChartVO mgtOrderStaticsChartVO = new MgtOrderStaticsChartVO();
-        futureAll.thenRun(() -> {
-            try {
-                mgtOrderStaticsChartVO.setMallOrderCountList(mallOrderCountFuture.get());
-                mgtOrderStaticsChartVO.setMallOrderTotalAmountList(
-                        mallOrderTotalAmountFuture.get());
-                mgtOrderStaticsChartVO.setAuctionOrderCount(auctionOrderCountFuture.get());
-                mgtOrderStaticsChartVO.setAuctionOrderTotalAmount(
-                        auctionOrderTotalAmountFuture.get());
-            } catch (InterruptedException | ExecutionException e) {
-                throw new RuntimeException(e);
-            }
-            executorService.shutdown(); // 关闭线程池
-        });
+        try {
+            // 设置结果
+            mgtOrderStaticsChartVO.setMallOrderCountList(mallOrderCountFuture.get());
+            mgtOrderStaticsChartVO.setMallOrderTotalAmountList(mallOrderTotalAmountFuture.get());
+            mgtOrderStaticsChartVO.setAuctionOrderCountList(auctionOrderCountFuture.get());
+            mgtOrderStaticsChartVO.setAuctionOrderTotalAmountList(
+                    auctionOrderTotalAmountFuture.get());
+        } catch (InterruptedException | ExecutionException e) {
+            throw new RuntimeException(e);
+        } finally {
+            executorService.shutdown(); // 确保关闭线程池
+        }
         return mgtOrderStaticsChartVO;
     }
 

--
Gitblit v1.7.1