refactor the speed
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user