diff --git a/app/Http/Controllers/V3/NotificationController.php b/app/Http/Controllers/V3/NotificationController.php index 78fd9444..d322a95a 100644 --- a/app/Http/Controllers/V3/NotificationController.php +++ b/app/Http/Controllers/V3/NotificationController.php @@ -25,9 +25,9 @@ class NotificationController extends Controller public function __invoke(Request $request): JsonResponse { return $this->successResponse([ - 'roadItemNotifications' => $this->roadItemNotifications(), - 'safetyAndPrivacyNotifications' => $this->safetyAndPrivacyNotifications(), - 'roadObservedNotifications' => $this->roadObservedNotifications(), + 'roadItem' => $this->roadItemNotifications(), + 'safetyAndPrivacy' => $this->safetyAndPrivacyNotifications(), + 'roadObserved' => $this->roadObservedNotifications(), ]); } @@ -135,72 +135,61 @@ class NotificationController extends Controller { $user = auth()->user(); $road_observations = [ - 'total' => 0 + 'total' => 0, + 'operation_cnt' => 0, + 'complaint_cnt' => 0, + 'supervise_cnt' => 0 + ]; + + $conditions = []; + $complaintConditions = [ + ['rms_status', '=', 0], + ['edarate_shahri_id', '!=', null] ]; if ($user->hasPermissionTo('show-fast-react')) { - $road_observations['operation_cnt'] = RoadObserved::query() - ->where('status', '=', 2) - ->count(); - - $road_observations['complaint_cnt'] = RoadObserved::query() - ->where('rms_status', '=', 0) - ->count(); - - $road_observations['total'] += ($road_observations['operation_cnt'] + $road_observations['complaint_cnt']); + $conditions[] = ['status', '=', 2]; } elseif ($user->hasPermissionTo('show-fast-react-province')) { - throw_if(is_null($user->province_id) || !$user->province_id, new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); - - $road_observations['operation_cnt'] = RoadObserved::query() - ->where('status', '=', 2) - ->where('rms_province_id', $user->province_id) - ->count(); - - $road_observations['complaint_cnt'] = RoadObserved::query() - ->where('rms_status', '=', 0) - ->count(); - - $road_observations['total'] += ($road_observations['operation_cnt'] + $road_observations['complaint_cnt']); + throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); + $conditions = [ + ['status', '=', 2], + ['rms_province_id', '=', $user->province_id] + ]; + $complaintConditions[] = ['province_id', '=', $user->province_id]; } elseif ($user->hasPermissionTo('show-fast-react-edarate-shahri')) { throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!')); - - $road_observations['operation_cnt'] = RoadObserved::query() - ->where('status', '=', 2) - ->where('edarate_shahri_id', '=', $user->edarate_shahri_id) - ->count(); - - $road_observations['complaint_cnt'] = RoadObserved::query() - ->where('rms_status', '=', 0) - ->count(); - - $road_observations['total'] += ($road_observations['operation_cnt'] + $road_observations['complaint_cnt']); + $conditions = [ + ['status', '=', 2], + ['edarate_shahri_id', '=', $user->edarate_shahri_id] + ]; + $complaintConditions[] = ['edarate_shahri_id', '=', $user->edarate_shahri_id]; } + + if (!empty($conditions)) { + $road_observations['operation_cnt'] = RoadObserved::query()->where($conditions)->count(); + $road_observations['complaint_cnt'] = RoadObserved::query()->where($complaintConditions)->count(); + $road_observations['total'] += $road_observations['operation_cnt'] + $road_observations['complaint_cnt']; + } + + $superviseConditions = [ + ['status', '=', 0] + ]; + if ($user->hasPermissionTo('supervise-fast-react')) { - $road_observations['supervise_cnt'] = RoadObserved::query() - ->where('status', '=', 0) - ->count(); - - $road_observations['complaint_cnt'] = RoadObserved::query() - ->where('rms_status', '=', 0) - ->count(); - - $road_observations['total'] += ($road_observations['supervise_cnt'] + $road_observations['complaint_cnt']); + $road_observations['supervise_cnt'] = RoadObserved::query()->where($superviseConditions)->count(); + $road_observations['complaint_cnt'] = RoadObserved::query()->where($complaintConditions)->count(); + $road_observations['total'] += $road_observations['supervise_cnt'] + $road_observations['complaint_cnt']; } elseif ($user->hasPermissionTo('supervise-fast-react-province')) { - throw_if(is_null($user->province_id) || !$user->province_id, new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); + throw_if(is_null($user->province_id), new ProhibitedAction('استانی برای شما در سامانه ثبت نشده است!')); + $superviseConditions[] = ['province_id', '=', $user->province_id]; + $complaintConditions[] = ['province_id', '=', $user->province_id]; - $road_observations['supervise_cnt'] = RoadObserved::query() - ->where('province_id', '=', $user->province_id) - ->where('status', '=', 0) - ->count(); - - $road_observations['complaint_cnt'] = RoadObserved::query() - ->where('rms_status', '=', 0) - ->count(); - - $road_observations['total'] += ($road_observations['supervise_cnt'] + $road_observations['complaint_cnt']); + $road_observations['supervise_cnt'] = RoadObserved::query()->where($superviseConditions)->count(); + $road_observations['complaint_cnt'] = RoadObserved::query()->where($complaintConditions)->count(); + $road_observations['total'] += $road_observations['supervise_cnt'] + $road_observations['complaint_cnt']; } return $road_observations;