'Aktivitas Login', 'category' => 'login-activities', 'is_available' => false ], [ 'name' => 'Jurnalis', 'category' => 'journalists', 'is_available' => false ], [ 'name' => 'Kerja Sama Media', 'category' => 'media-cooperations', 'is_available' => false ], [ 'name' => 'Laporan Bukti Tayang', 'category' => 'reports', 'is_available' => false ], [ 'name' => 'Media', 'category' => 'media', 'is_available' => false ], [ 'name' => 'Monitoring Media & Manajemen Isu', 'category' => 'media-monitorings-issue-management', 'is_available' => true ], [ 'name' => 'Penyelesaian Kerja Sama', 'category' => 'cooperation-completions', 'is_available' => false ], [ 'name' => 'Pengguna', 'category' => 'users', 'is_available' => false ], [ 'name' => 'Perusahaan', 'category' => 'companies', 'is_available' => false ], [ 'name' => 'Rekap Konten', 'category' => 'content-recaps', 'is_available' => false ], [ 'name' => 'Pengunjung Website', 'category' => 'website-visitors', 'is_available' => false ], ]; return view('dashboard.statistics.index', [ 'title' => 'Statistik', 'statistics' => $statistics ]); } public function show(Request $request, $category){ $data = [ 'category' => $category, 'year' => $request->input('year') ? $request->input('year') : null, 'from_month' => $request->input('from_month') ? $request->input('from_month') : null, 'to_month' => $request->input('to_month') ? $request->input('to_month') : null, ]; $upComings = [ 'login-activities', 'journalists', 'media-cooperations', 'reports', 'media', 'cooperation-completions', 'users', 'companies', 'content-recaps', 'website-visitors', ]; if(in_array($category, $upComings)){ return redirect()->back()->with('waiting-status', 'Dalam pegembangan'); } $year = $request->input('year') ? $request->input('year') : Carbon::now()->year; switch($category){ case 'media-monitorings-issue-management': $data['title'] = 'Statistik Monitoring Media & Manajemen Isu'; // Statistik Isu $issues = IssueManagement::with(['mediaMonitoring']); $mediaMonitorings = MediaMonitoring::with(['issue']); if($year !== 'all'){ $issues->whereYear('created_at', $year); $mediaMonitorings->whereYear('created_at', $year); } $issues = $issues->get(); $mediaMonitorings = $mediaMonitorings->get(); $issueCounts = $issues->groupBy('issue')->map(function ($group) { return $group->count(); }); $data['crisisIssue'] = $issueCounts->get('krisis', 0); $data['negativeIssue'] = $issueCounts->get('negatif', 0); $data['neutralIssue'] = $issueCounts->get('netral', 0); $data['positiveIssue'] = $issueCounts->get('positif', 0); // Akhir Statistik Isu // Statistik Monitoring Media $mediaMonitoringCount = $mediaMonitorings->groupBy('channel')->map(function ($group) { return $group->count(); }); $data['facebookMediaMonitoring'] = $mediaMonitoringCount->get('facebook', 0); $data['twitterMediaMonitoring'] = $mediaMonitoringCount->get('twitter', 0); $data['websiteMediaMonitoring'] = $mediaMonitoringCount->get('website', 0); $data['youtubeMediaMonitoring'] = $mediaMonitoringCount->get('youtube', 0); $data['instagramMediaMonitoring'] = $mediaMonitoringCount->get('instagram', 0); $data['tiktokMediaMonitoring'] = $mediaMonitoringCount->get('tiktok', 0); $data['cetakMediaMonitoring'] = $mediaMonitoringCount->get('cetak', 0); // Akhir Statistik Monitoring Media // Media Monitoring 2 (pakai koleksi yang sudah ada) $mediaMonitoringMonthly = array_fill(0, 12, 0); // Init array 12 bulan $mediaMonitorings->groupBy(function ($item) { return (int) $item->created_at->format('m'); // bulan sebagai int })->each(function ($group, $month) use (&$mediaMonitoringMonthly) { $mediaMonitoringMonthly[$month - 1] = $group->count(); }); // Issue Management 2 (pakai koleksi yang sudah ada) $issueManagementMonthly = array_fill(0, 12, 0); $issues->groupBy(function ($item) { return (int) $item->created_at->format('m'); })->each(function ($group, $month) use (&$issueManagementMonthly) { $issueManagementMonthly[$month - 1] = $group->count(); }); $mediaMonitoringWithoutIssue = MediaMonitoring::doesntHave('issue') ->when($year !== 'all', function ($query) use ($year) { $query->whereYear('created_at', $year); }) ->get(); $mediaMonitoringWithIssue = MediaMonitoring::has('issue') ->when($year !== 'all', function ($query) use ($year) { $query->whereYear('created_at', $year); }) ->get(); $data['mediaMonitoringWithoutIssueCount'] = $mediaMonitoringWithoutIssue->count(); $data['mediaMonitoringWithIssueCount'] = $mediaMonitoringWithIssue->count(); $data['mediaMonitoringMonthly'] = $mediaMonitoringMonthly; $data['issueManagementMonthly'] = $issueManagementMonthly; return view('dashboard.statistics.show.media-monitoring-issue-management', $data); case 'issue-managements': $data['title'] = 'Statistik Manajemen Isu'; break; } } }