add more detail to api

This commit is contained in:
2025-03-03 11:59:29 +03:30
parent cc8175a15e
commit 3326ab326e
3 changed files with 99 additions and 19 deletions

View File

@@ -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

View File

@@ -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 = [];

View File

@@ -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 [