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