From 583854bd352899c3fc0686815e33a5257ea5259d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Tue, 17 Mar 2026 04:24:10 +0800 Subject: [PATCH] refactor(dashboard): inject 7d range from controller to avoid drift --- app/Http/Controllers/Admin/DashboardController.php | 6 ++++++ resources/views/admin/dashboard.blade.php | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php index f5011c7..2e31dac 100644 --- a/app/Http/Controllers/Admin/DashboardController.php +++ b/app/Http/Controllers/Admin/DashboardController.php @@ -164,6 +164,10 @@ class DashboardController extends Controller $trendStart = now()->startOfDay()->subDays($trendDays - 1); $trendEnd = now()->endOfDay(); + // 统一提供给视图做“趋势/排行/占比”跳转的日期范围口径,避免 Blade 内重复 now() 计算导致漂移。 + $dashboardRangeFrom7d = (string) $trendStart->format('Y-m-d'); + $dashboardRangeTo7d = (string) $trendEnd->format('Y-m-d'); + $trendRawRows = PlatformOrder::query() ->selectRaw("DATE(created_at) as d") ->selectRaw('COUNT(*) as cnt') @@ -265,6 +269,8 @@ class DashboardController extends Controller 'stats' => $stats, 'platformOrderTrend7d' => $platformOrderTrend7d, 'recentPlatformOrders' => $recentPlatformOrders, + 'dashboardRangeFrom7d' => $dashboardRangeFrom7d, + 'dashboardRangeTo7d' => $dashboardRangeTo7d, 'planOrderShare' => $planOrderShare, 'planOrderShareTotal' => (int) $planOrderShareTotal, 'planIdToName' => $planIdToName, diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index 2b96c87..d951d3f 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -15,9 +15,9 @@ 'plans' => \App\Support\BackUrl::withBack('/admin/plans', $selfWithoutBack), ]; - // 仪表盘内所有“近7天”口径统一在这里计算,避免散落 now()->subDays(6) 导致未来改动遗漏。 - $rangeFrom7d = now()->subDays(6)->format('Y-m-d'); - $rangeTo7d = now()->format('Y-m-d'); + // 仪表盘内所有“近7天”口径统一从 Controller 注入(避免 Blade 内 now() 计算导致跨天漂移)。 + $rangeFrom7d = (string) ($dashboardRangeFrom7d ?? now()->subDays(6)->format('Y-m-d')); + $rangeTo7d = (string) ($dashboardRangeTo7d ?? now()->format('Y-m-d')); $platformOrdersQuickLinks = [ // 复用工作台入口(避免 /admin/platform-orders 入口口径分叉)