simedkom/app/Http/Controllers/Dashboard/OverviewController.php
2025-03-21 10:06:34 +07:00

97 lines
3.4 KiB
PHP

<?php
namespace App\Http\Controllers\Dashboard;
use App\Http\Controllers\Controller;
use App\Models\Cooperation;
use App\Models\IssueManagement;
use App\Models\Media;
use App\Models\MediaMonitoring;
use App\Models\Order;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class OverviewController extends Controller
{
public function index(){
$data = [
'title' => 'Ikhtisar'
];
if(is_role(['3'])){
$mediaId = Auth::user()->company->media->id;
$media = Media::with('cooperations')->findOrFail($mediaId);
$user = User::with(['announcements'])->find(Auth::id());
// Data pengumuman
$data['announcements'] = $user->announcements()
->where(function ($query) {
$query->where('announcements_users.category', '=', 'general');
})
->get();
// Data pengajuan kerjasama
$data['cooperationRequests'] = $media->cooperations()
->where(function ($query) {
$query->where('media_cooperations.status', '=', '0');
})
->get();
// Data kalender Kerjasama
$data['cooperationMedia'] = $media->cooperations->filter(function ($cooperation) use ($mediaId){
return $cooperation->proposals->where('status', 1)->where('media_id', $mediaId)->isNotEmpty();
});
// Data kalender media order
$data['mediaOrders'] = $media->orders()
->where(function ($query) {
$query->where('media_orders.status', '=', '1');
})
->get();
}else if(is_role(['1'])){
// Statistik Isu
$issues = IssueManagement::all();
$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
$mediaMonitorings = MediaMonitoring::all();
$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
// Data kalender pengajuan kerjasama
$data['cooperationRequests'] = Cooperation::all();
// Data kalender media order
$data['mediaOrders'] = Order::with(['cooperation'])->get();
}
return view('dashboard.overview.index', $data);
}
}