瀏覽代碼

Update AdminController, improve dashboard caching

Daniel Supernault 5 年之前
父節點
當前提交
72db2b35b5
共有 1 個文件被更改,包括 13 次插入5 次删除
  1. 13 5
      app/Http/Controllers/AdminController.php

+ 13 - 5
app/Http/Controllers/AdminController.php

@@ -45,20 +45,21 @@ class AdminController extends Controller
 
 
     public function home()
     public function home()
     {
     {
-        $data = Cache::remember('admin:dashboard:home:data', now()->addMinutes(15), function() {
-          $day = config('database.default') == 'pgsql' ? 'DATE_PART(\'day\',' : 'day(';
+        $day = config('database.default') == 'pgsql' ? 'DATE_PART(\'day\',' : 'day(';
+
+        $recent = Cache::remember('admin:dashboard:home:data:15min', now()->addMinutes(15), function() use ($day) {
           return [
           return [
             'contact' => [
             'contact' => [
               'count' => PrettyNumber::convert(Contact::whereNull('read_at')->count()),
               'count' => PrettyNumber::convert(Contact::whereNull('read_at')->count()),
-              'graph' => Contact::selectRaw('count(*) as count, '.$day.'created_at) as day')->whereNull('read_at')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count')
+              'graph' => Contact::selectRaw('count(*) as count, '.$day.'created_at) as d')->groupBy('d')->whereNull('read_at')->whereBetween('created_at',[now()->subDays(14), now()])->orderBy('d')->pluck('count')
             ],
             ],
             'failedjobs' => [
             'failedjobs' => [
               'count' => PrettyNumber::convert(FailedJob::where('failed_at', '>=', \Carbon\Carbon::now()->subDay())->count()),
               'count' => PrettyNumber::convert(FailedJob::where('failed_at', '>=', \Carbon\Carbon::now()->subDay())->count()),
-              'graph' => FailedJob::selectRaw('count(*) as count, '.$day.'failed_at) as d')->groupBy('d')->whereBetween('failed_at',[now()->subDays(24), now()])->orderBy('d')->pluck('count')
+              'graph' => FailedJob::selectRaw('count(*) as count, '.$day.'failed_at) as d')->groupBy('d')->whereBetween('failed_at',[now()->subDays(14), now()])->orderBy('d')->pluck('count')
             ],
             ],
             'reports' => [
             'reports' => [
               'count' => PrettyNumber::convert(Report::whereNull('admin_seen')->count()),
               'count' => PrettyNumber::convert(Report::whereNull('admin_seen')->count()),
-              'graph' => Report::selectRaw('count(*) as count, '.$day.'created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count')
+              'graph' => Report::selectRaw('count(*) as count, '.$day.'created_at) as d')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('d')->orderBy('d')->pluck('count')
             ],
             ],
             'statuses' => [
             'statuses' => [
               'count' => PrettyNumber::convert(Status::whereNull('in_reply_to_id')->whereNull('reblog_of_id')->count()),
               'count' => PrettyNumber::convert(Status::whereNull('in_reply_to_id')->whereNull('reblog_of_id')->count()),
@@ -80,6 +81,11 @@ class AdminController extends Controller
               'count' => PrettyNumber::convert(Profile::count()),
               'count' => PrettyNumber::convert(Profile::count()),
               'graph' => Profile::selectRaw('count(*) as count, '.$day.'created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count')
               'graph' => Profile::selectRaw('count(*) as count, '.$day.'created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count')
             ],
             ],
+          ];
+        });
+
+        $longer = Cache::remember('admin:dashboard:home:data:24hr', now()->addHours(24), function() use ($day) {
+          return [
             'users' => [
             'users' => [
               'count' => PrettyNumber::convert(User::count()),
               'count' => PrettyNumber::convert(User::count()),
               'graph' => User::selectRaw('count(*) as count, '.$day.'created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count')
               'graph' => User::selectRaw('count(*) as count, '.$day.'created_at) as day')->whereBetween('created_at',[now()->subDays(14), now()])->groupBy('day')->orderBy('day')->pluck('count')
@@ -98,6 +104,8 @@ class AdminController extends Controller
             ]
             ]
           ];
           ];
         });
         });
+
+        $data = array_merge($recent, $longer);
         return view('admin.home', compact('data'));
         return view('admin.home', compact('data'));
     }
     }