diff --git a/app/Http/Controllers/V3/Dashboard/Reports/RoadPatrolReportController.php b/app/Http/Controllers/V3/Dashboard/Reports/RoadPatrolReportController.php index 8df975dd..3ce39b0c 100644 --- a/app/Http/Controllers/V3/Dashboard/Reports/RoadPatrolReportController.php +++ b/app/Http/Controllers/V3/Dashboard/Reports/RoadPatrolReportController.php @@ -8,6 +8,8 @@ use App\Http\Controllers\Controller; use App\Http\Traits\ApiResponse; use App\Models\EdarateShahri; use App\Models\Province; +use App\Models\RoadObserved; +use App\Models\RoadPatrol; use App\Services\Reports\RoadPatrolReportService; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -66,4 +68,25 @@ class RoadPatrolReportController extends Controller return Excel::download(new ProvinceActivity($activities), $name); } + + public function activitiesOnMap(Request $request): JsonResponse + { + $date_from = $request->date_from ? $request->date_from .' 00:00:00' : Date('Y-m-d') .' 00:00:00'; + $date_to = $request->date_to ? $request->date_to.' 23:59:59' : (new \DateTime('tomorrow'))->format('Y-m-d').' 23:59:59'; + + $data = RoadPatrol::query()->when($request->province_id, function ($query, $province) { + return $query->where('province_id', '=', $province); + }) + ->when($request->edare_id, function ($query, $edare_id) { + return $query->where('edare_id', '=', $edare_id); + }) + ->whereBetween('created_at', [ + $date_from, + $date_to, + ]) + ->select('id', 'start_lat', 'start_lon') + ->get(); + + return $this->successResponse($data); + } } diff --git a/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php b/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php index c2a7d122..525103f8 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadItemsProjectController.php @@ -95,9 +95,7 @@ class RoadItemsProjectController extends Controller public function restore(RoadItemsProject $roadItemsProject): JsonResponse { if ($roadItemsProject->status == 0) { - return response()->json([ - 'message' => 'امکان بازگردانی وضعیت این فعالیت وجود ندارد!' - ], 400); + return $this->errorResponse('امکان بازگردانی وضعیت این فعالیت وجود ندارد!'); } $roadItemsProject->update([ @@ -170,15 +168,11 @@ class RoadItemsProjectController extends Controller $user = auth()->user(); if ($user->edarate_ostani_id || is_null($user->city_id)) { - return response()->json([ - 'message' => 'امکان ثبت فعالیت برای ادارات استانی و ستادی وجود ندارد!' - ], 400); + return $this->errorResponse('امکان ثبت فعالیت برای ادارات استانی و ستادی وجود ندارد!'); } if (is_null($user->edarate_shahri_id)) { - return response()->json([ - 'message' => 'اداره شهری برای شما در سامانه ثبت نشده است!' - ], 400); + return $this->errorResponse('اداره شهری برای شما در سامانه ثبت نشده است!'); } $info_item = InfoItem::query()->where('item', $request->item_id) @@ -241,9 +235,7 @@ class RoadItemsProjectController extends Controller $road_item = RoadItemsProject::store($user, $attributes, $before_image, $after_image, $request->observed_item_id); if ($road_item === -1) { - return response()->json([ - 'message' => 'اقدام مربوطه قبلا رسیدگی شده است.' - ], 400); + return $this->errorResponse('اقدام مربوطه قبلا رسیدگی شده است.'); } $road_item->rahdaran()->attach($request->rahdaran_id); diff --git a/app/Http/Controllers/V3/Dashboard/RoadPatrolProjectController.php b/app/Http/Controllers/V3/Dashboard/RoadPatrolProjectController.php index 6d62ba03..32d5978c 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadPatrolProjectController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadPatrolProjectController.php @@ -150,15 +150,11 @@ class RoadPatrolProjectController extends Controller $user = auth()->user(); if ($user->edarate_ostani_id || is_null($user->city_id)) { - return response()->json([ - 'message' => 'امکان ثبت فعالیت برای ادارات استانی وجود ندارد!' - ], 400); + return $this->errorResponse('امکان ثبت فعالیت برای ادارات استانی وجود ندارد!'); } if (is_null($user->edarate_shahri_id)) { - return response()->json([ - 'message' => 'اداره شهری برای شما در سامانه ثبت نشده است!' - ], 400); + return $this->errorResponse('اداره شهری برای شما در سامانه ثبت نشده است!'); } $edare_id = $user->edarate_shahri_id ?? $user->edarate_ostani_id; @@ -279,9 +275,7 @@ class RoadPatrolProjectController extends Controller $road_item = RoadItemsProject::store($user, $attributes, $before_image, $after_image, $observed_item->id); if ($road_item === -1) { - return response()->json([ - 'message' => 'اقدام مربوطه قبلا رسیدگی شده است.' - ], 400); + return $this->errorResponse('اقدام مربوطه قبلا رسیدگی شده است.'); } $road_item->rahdaran()->attach($item['road_item_rahdaran_id']); @@ -332,27 +326,6 @@ class RoadPatrolProjectController extends Controller return $this->successResponse($data); } - public function getAllDataToMap(Request $request): JsonResponse - { - $date_from = $request->date_from ? $request->date_from .' 00:00:00' : Date('Y-m-d') .' 00:00:00'; - $date_to = $request->date_to ? $request->date_to.' 23:59:59' : (new \DateTime('tomorrow'))->format('Y-m-d').' 23:59:59'; - - $data = RoadPatrol::query()->when($request->province_id, function ($query, $province) { - return $query->where('province_id', '=', $province); - }) - ->when($request->edare_id, function ($query, $edare_id) { - return $query->where('edare_id', '=', $edare_id); - }) - ->whereBetween('created_at', [ - $date_from, - $date_to, - ]) - ->select('id', 'start_lat', 'start_lon') - ->get(); - - return $this->successResponse($data); - } - public function map(Request $request): JsonResponse { $province = $request->province_id; diff --git a/routes/v3.php b/routes/v3.php index 5172be4f..9557589f 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -152,9 +152,6 @@ Route::prefix('road_patrols') Route::get('/operator/report/{roadPatrol}', 'getReport') ->name('getReport'); - Route::get('/operator/map_data', 'getAllDataToMap') - ->name('getAllDataToMap'); - Route::get('/detail/{roadPatrol}', 'show') ->name('show'); }); @@ -214,4 +211,5 @@ Route::prefix('road_patrol_reports') Route::get('/province_activity', 'provincePatrolActivity')->name('provincePatrolActivity'); Route::get('/country_activity_excel', 'countryActivityExcel')->name('countryActivityExcel'); Route::get('/province_activity_excel', 'provinceActivityExcel')->name('provinceActivityExcel'); + Route::get('/activities_on_map', 'activitiesOnMap')->name('activitiesOnMap'); });