From 3326ab326ece04e0d16c5e6bcff91e69da4e9d10 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Mon, 3 Mar 2025 11:59:29 +0330 Subject: [PATCH] add more detail to api --- .../SafetyAndPrivacyReportController.php | 12 +- .../Dashboard/SafetyAndPrivacyController.php | 2 +- .../SafetyAndPrivacyTableService.php | 104 +++++++++++++++--- 3 files changed, 99 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/V3/Dashboard/Reports/SafetyAndPrivacyReportController.php b/app/Http/Controllers/V3/Dashboard/Reports/SafetyAndPrivacyReportController.php index cc4291f8..0b0b5a84 100644 --- a/app/Http/Controllers/V3/Dashboard/Reports/SafetyAndPrivacyReportController.php +++ b/app/Http/Controllers/V3/Dashboard/Reports/SafetyAndPrivacyReportController.php @@ -6,6 +6,8 @@ use App\Exports\V3\SafetyAndPrivacy\CountryActivityReport; use App\Exports\V3\SafetyAndPrivacy\ProvinceActivityReport; use App\Http\Controllers\Controller; use App\Http\Traits\ApiResponse; +use App\Models\EdarateShahri; +use App\Models\Province; use App\Services\Cartables\SafetyAndPrivacyTableService; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -19,13 +21,19 @@ class SafetyAndPrivacyReportController extends Controller public function countryActivity(Request $request, SafetyAndPrivacyTableService $safetyAndPrivacyTableService): JsonResponse { $data = $safetyAndPrivacyTableService->countryActivity($request); - return $this->successResponse($data['activities']); + return $this->successResponse([ + 'activities' => $data['activities'], + 'provinces' => Province::all(['id', 'name_fa']) + ]); } public function provinceActivity(Request $request, SafetyAndPrivacyTableService $safetyAndPrivacyTableService): JsonResponse { $data = $safetyAndPrivacyTableService->provinceActivity($request); - return $this->successResponse($data['activities']); + return $this->successResponse([ + 'activities' => $data['activities'], + 'edarateShahri' => EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']), + ]); } public function countryExcelActivity(Request $request, SafetyAndPrivacyTableService $safetyAndPrivacyTableService): BinaryFileResponse diff --git a/app/Http/Controllers/V3/Dashboard/SafetyAndPrivacyController.php b/app/Http/Controllers/V3/Dashboard/SafetyAndPrivacyController.php index 36fa1928..f1562b5d 100644 --- a/app/Http/Controllers/V3/Dashboard/SafetyAndPrivacyController.php +++ b/app/Http/Controllers/V3/Dashboard/SafetyAndPrivacyController.php @@ -165,7 +165,7 @@ class SafetyAndPrivacyController extends Controller public function deserialize(SafetyAndPrivacy $safetyAndPrivacy): JsonResponse { - $judiciaries = isset($safetyAndPrivacy->judiciary_document) ? unserialize($safetyAndPrivacy->judiciary_document) : []; + $judiciaries = $safetyAndPrivacy->judiciary_document ? unserialize($safetyAndPrivacy->judiciary_document) : []; $result = []; diff --git a/app/Services/Cartables/SafetyAndPrivacyTableService.php b/app/Services/Cartables/SafetyAndPrivacyTableService.php index 7093dbae..bd2c253a 100644 --- a/app/Services/Cartables/SafetyAndPrivacyTableService.php +++ b/app/Services/Cartables/SafetyAndPrivacyTableService.php @@ -61,25 +61,61 @@ class SafetyAndPrivacyTableService ); $countryTotalSum = 0; - $activities[]["name_fa"] = 'کشوری'; - $activities[]["province_id"] = -1; + $countryData = [ + 'name_fa' => 'کشوری', + 'province_id' => -1, + '89' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + '90' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + '91' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + ]; foreach ($country as $key => $value) { $countryTotalSum += $value->qty; - $activities[][$value->info_id][$value->step] = $value->qty; - $activities[]["sum"] = $countryTotalSum; + $countryData[$value->info_id][$value->step] = $value->qty; + $countryData["sum"] = $countryTotalSum; } + $activities[] = $countryData; $provinces = DB::select( "SELECT province_id, province_fa, COUNT(*) as qty,info_id, step, step_fa, info_fa FROM safety_and_privacy where created_at BETWEEN '".$fromDate."' and '".$toDate."' GROUP BY info_id,step,province_id,province_fa" ); $provinceTotalSum = 0; + $provinceData = [ + '89' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + '90' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + '91' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + ]; foreach ($provinces as $key => $value) { $provinceTotalSum += $value->qty; - $activities[][$value->info_id][$value->step] = $value->qty; - $activities[]["sum"] = $provinceTotalSum; - $activities[]["province_fa"] = $value->province_fa; - $activities[]["province_id"] = $value->province_id; + $provinceData[$value->info_id][$value->step] = $value->qty; + $provinceData["sum"] = $provinceTotalSum; + $provinceData["province_fa"] = $value->province_fa; + $provinceData["province_id"] = $value->province_id; + $activities[] = $provinceData; } return [ @@ -101,25 +137,61 @@ class SafetyAndPrivacyTableService '); $provinceTotalSum = 0; - $activities[]["name_fa"] = 'استانی'; - $activities[]["edare_shahri_id"] = -1; + $provinceData = [ + 'name_fa' => 'استانی', + 'edare_shahri_id' => -1, + '89' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + '90' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + '91' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + ]; foreach ($province as $key => $value) { $provinceTotalSum += $value->qty; - $activities[]["info-".$value->info_id]["step-".$value->step] = $value->qty; - $activities[]["sum"] = $provinceTotalSum; + $provinceData["info-".$value->info_id]["step-".$value->step] = $value->qty; + $provinceData["sum"] = $provinceTotalSum; } + $activities[] = $provinceData; $cities = DB::select(' SELECT edare_shahri_id, COUNT(*) as qty,info_id, step,step_fa, info_fa FROM safety_and_privacy where province_id ='.$provinceId.' and created_at BETWEEN "'.$fromDate.'" and "'.$toDate.'" GROUP BY info_id,step,edare_shahri_id '); $cityTotalSum = 0; + $cityData = [ + '89' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + '90' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + '91' => [ + '1' => 0, + '2' => 0, + '3' => 0, + ], + ]; foreach ($cities as $key => $value) { $cityTotalSum += $value->qty; - $activities[][$value->info_id][$value->step] = $value->qty; - $activities[]["name_fa"] = \App\Models\EdarateShahri::query()->find($value->edare_shahri_id)->name_fa; - $activities[]["edare_shahri_id"] = $value->edare_shahri_id; - $activities[]["sum"] = $cityTotalSum; + $cityData[$value->info_id][$value->step] = $value->qty; + $cityData["name_fa"] = \App\Models\EdarateShahri::query()->find($value->edare_shahri_id)->name_fa; + $cityData["edare_shahri_id"] = $value->edare_shahri_id; + $cityData["sum"] = $cityTotalSum; + $activities[] = $cityData; } return [