From 672637fa4a4914ec9667cb15f70b67482b8a0e5e Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期四, 25 九月 2025 17:16:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/send_coupon' into user_action

---
 framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java |   91 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 89 insertions(+), 2 deletions(-)

diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
index 76fcfeb..62358bd 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -1368,13 +1368,100 @@
                         map -> map.get("day").toString(),  // 鏃ユ湡瀛楃涓诧紙濡�2023-09-19锛�
                         map -> Long.valueOf(map.get("count").toString())  // 璁㈠崟鏁伴噺
                 ));
-        System.out.println(dayCountMap);
+
         List<Long> orderCounts = new ArrayList<>();
         for (String date : dateList) {
             // 鏍稿績锛氬瓨鍦ㄥ垯鍙栨煡璇㈢粨鏋滐紝涓嶅瓨鍦ㄥ垯琛�0
             orderCounts.add(dayCountMap.getOrDefault(date, 0L));
         }
-        System.out.println(orderCounts);
+
+
+        return Result.ok().data(orderCounts);
+    }
+
+    @Override
+    public Result getOrderTimePeriod(StatisticsQueryParam queryParam) {
+        Date startTime = null;
+        Date endTime = new Date(); // 缁撴潫鏃堕棿榛樿鏄綋鍓嶆椂闂�
+        List<String> dateList = new ArrayList<>();
+
+        Calendar calendar = Calendar.getInstance(); // 鐢ㄤ簬鏃ユ湡璁$畻鐨勬棩鍘嗗疄渚�
+        for (int i =0;i<=24;i++){
+            dateList.add(i + "鐐�");
+        }
+        switch (queryParam.getSearchType()) {
+            case "TODAY":
+                // 浠婂ぉ锛氫粠浠婂ぉ0鐐瑰埌鐜板湪
+                calendar.setTime(new Date()); // 閲嶇疆涓哄綋鍓嶆椂闂�
+                calendar.set(Calendar.HOUR_OF_DAY, 0); // 灏忔椂璁句负0锛�24灏忔椂鍒讹級
+                calendar.set(Calendar.MINUTE, 0);      // 鍒嗛挓璁句负0
+                calendar.set(Calendar.SECOND, 0);      // 绉掕涓�0
+                calendar.set(Calendar.MILLISECOND, 0); // 姣璁句负0
+                startTime = calendar.getTime();        // 寰楀埌浠婂ぉ0鐐圭殑Date瀵硅薄
+                break;
+            case "YESTERDAY":
+                // 鏄ㄥぉ锛氫粠鏄ㄥぉ0鐐瑰埌鏄ㄥぉ23:59:59.999
+                calendar.setTime(new Date());
+                calendar.add(Calendar.DATE, -1); // 鏃ユ湡鍑�1澶╋紙鍙樹负鏄ㄥぉ锛�
+
+                // 璁剧疆鏄ㄥぉ0鐐�
+                calendar.set(Calendar.HOUR_OF_DAY, 0);
+                calendar.set(Calendar.MINUTE, 0);
+                calendar.set(Calendar.SECOND, 0);
+                calendar.set(Calendar.MILLISECOND, 0);
+                startTime = calendar.getTime();
+
+                // 璁剧疆鏄ㄥぉ23:59:59.999
+                calendar.set(Calendar.HOUR_OF_DAY, 23);
+                calendar.set(Calendar.MINUTE, 59);
+                calendar.set(Calendar.SECOND, 59);
+                calendar.set(Calendar.MILLISECOND, 999);
+                endTime = calendar.getTime();
+
+                break;
+            case "LAST_SEVEN":
+                // 杩囧幓涓冨ぉ锛氫粠7澶╁墠0鐐瑰埌鐜板湪锛堝惈浠婂ぉ鍏�7澶╋級
+                calendar.setTime(new Date());
+                calendar.add(Calendar.DATE, -6); // 鏃ユ湡鍑�6澶╋紙7澶╁墠鐨勪粖澶╋級
+
+                // 璁剧疆7澶╁墠0鐐�
+                calendar.set(Calendar.HOUR_OF_DAY, 0);
+                calendar.set(Calendar.MINUTE, 0);
+                calendar.set(Calendar.SECOND, 0);
+                calendar.set(Calendar.MILLISECOND, 0);
+                startTime = calendar.getTime();
+
+                break;
+            case "LAST_THIRTY":
+                // 杩囧幓30澶╋細浠�30澶╁墠0鐐瑰埌鐜板湪锛堝惈浠婂ぉ鍏�30澶╋級
+                calendar.setTime(new Date());
+                calendar.add(Calendar.DATE, -29); // 鏃ユ湡鍑�29澶╋紙30澶╁墠鐨勪粖澶╋級
+
+                // 璁剧疆30澶╁墠0鐐�
+                calendar.set(Calendar.HOUR_OF_DAY, 0);
+                calendar.set(Calendar.MINUTE, 0);
+                calendar.set(Calendar.SECOND, 0);
+                calendar.set(Calendar.MILLISECOND, 0);
+                startTime = calendar.getTime();
+
+                break;
+            default:
+                return Result.error("涓嶆敮鎸佺殑鏃堕棿鑼冨洿绫诲瀷");
+        }
+        List<Map<String, Object>> maps = baseMapper.selectOrderTimePeriod(startTime,endTime);
+
+        Map<String, Long> dayCountMap = maps.stream()
+                .collect(Collectors.toMap(
+                        map -> map.get("day").toString(),  // 鏃ユ湡瀛楃涓诧紙濡�2023-09-19锛�
+                        map -> Long.valueOf(map.get("count").toString())  // 璁㈠崟鏁伴噺
+                ));
+
+        List<Long> orderCounts = new ArrayList<>();
+        for (String date : dateList) {
+            // 鏍稿績锛氬瓨鍦ㄥ垯鍙栨煡璇㈢粨鏋滐紝涓嶅瓨鍦ㄥ垯琛�0
+            orderCounts.add(dayCountMap.getOrDefault(date, 0L));
+        }
+
 
         return Result.ok().data(orderCounts);
     }

--
Gitblit v1.8.0