chore: add issue and media monitoring statistic data

This commit is contained in:
myuqinurrohman 2025-03-21 10:06:34 +07:00
parent 7eaabd4408
commit f51a2ef4a3
2 changed files with 39 additions and 6 deletions

View File

@ -4,11 +4,14 @@
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\Cooperation; use App\Models\Cooperation;
use App\Models\IssueManagement;
use App\Models\Media; use App\Models\Media;
use App\Models\MediaMonitoring;
use App\Models\Order; use App\Models\Order;
use App\Models\User; use App\Models\User;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class OverviewController extends Controller class OverviewController extends Controller
{ {
@ -37,12 +40,12 @@ public function index(){
}) })
->get(); ->get();
// Data Kerjasama // Data kalender Kerjasama
$data['cooperationMedia'] = $media->cooperations->filter(function ($cooperation) use ($mediaId){ $data['cooperationMedia'] = $media->cooperations->filter(function ($cooperation) use ($mediaId){
return $cooperation->proposals->where('status', 1)->where('media_id', $mediaId)->isNotEmpty(); return $cooperation->proposals->where('status', 1)->where('media_id', $mediaId)->isNotEmpty();
}); });
// Data media order // Data kalender media order
$data['mediaOrders'] = $media->orders() $data['mediaOrders'] = $media->orders()
->where(function ($query) { ->where(function ($query) {
$query->where('media_orders.status', '=', '1'); $query->where('media_orders.status', '=', '1');
@ -50,10 +53,40 @@ public function index(){
->get(); ->get();
}else if(is_role(['1'])){ }else if(is_role(['1'])){
// Data pengajuan kerjasama
// 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['cooperationRequests'] = Cooperation::all();
// Data media order // Data kalender media order
$data['mediaOrders'] = Order::with(['cooperation'])->get(); $data['mediaOrders'] = Order::with(['cooperation'])->get();
} }

View File

@ -706,7 +706,7 @@ function ecommerceBarS1(selector, set_data) {
datasets: [{ datasets: [{
borderColor: "#fff", borderColor: "#fff",
background: ["#FE4F2D", "#E50046", "#5CB338", "#3572EF"], background: ["#FE4F2D", "#E50046", "#5CB338", "#3572EF"],
data: [100, 100, 100, 100] data: ["{{$crisisIssue}}", "{{$negativeIssue}}", "{{$neutralIssue}}", "{{$positiveIssue}}"]
}] }]
}; };
@ -717,7 +717,7 @@ function ecommerceBarS1(selector, set_data) {
datasets: [{ datasets: [{
borderColor: "#fff", borderColor: "#fff",
background: ["#1877F2", "#1DA1F2", "#28A745", "#FF0000", "#E4405F", "#00F2EA", "#333333"], background: ["#1877F2", "#1DA1F2", "#28A745", "#FF0000", "#E4405F", "#00F2EA", "#333333"],
data: [100, 100, 100, 100, 100, 100, 100] data: ["{{ $facebookMediaMonitoring }}", "{{ $twitterMediaMonitoring }}", "{{ $websiteMediaMonitoring }}", "{{ $youtubeMediaMonitoring }}", "{{ $instagramMediaMonitoring }}", "{{ $tiktokMediaMonitoring }}", "{{ $cetakMediaMonitoring }}"]
}] }]
}; };