improve code in controller and form request for V3 whit pint package

This commit is contained in:
2025-10-27 13:20:14 +03:30
parent 71f5001477
commit b155db758a
118 changed files with 604 additions and 559 deletions

View File

@@ -9,12 +9,11 @@ use App\Models\RoadPatrol;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class DetailController extends Controller
{
use ApiResponse;
public function map(Request $request): JsonResponse
public function map(Request $request): JsonResponse
{
$province = $request->province_id;
$edare_shahri = $request->edare_shahri_id;
@@ -25,12 +24,12 @@ class DetailController extends Controller
$date_from = $request->from_date.' 00:00:00';
$date_to = $request->date_to.' 23:59:59';
} else {
$date_from = Date('Y-m-d');
$date_from = date('Y-m-d');
$date_to = new \DateTime('tomorrow');
$date_to = $date_to->format('Y-m-d');
}
$projects = RoadObserved::query()->select(['id', 'lng', 'lat','status'])
$projects = RoadObserved::query()->select(['id', 'lng', 'lat', 'status'])
->whereBetween('created_at', [$date_from, $date_to])
->when($province, function ($query) use ($province) {
return $query->where('province_id', '=', $province);
@@ -49,6 +48,7 @@ class DetailController extends Controller
return $query->where('status', '=', $status);
})
->get();
return $this->successResponse($projects);
}

View File

@@ -2,9 +2,7 @@
namespace App\Http\Controllers\V3\Dashboard\RoadPatrol;
use App\Exports\V3\RoadPatrols\OperatorCartableReport;
use App\Facades\Sms\Sms;
use App\Http\Controllers\Controller;
use App\Http\Requests\V3\RoadPatrol\DeleteRequest;
use App\Http\Traits\ApiResponse;
@@ -18,7 +16,6 @@ use Illuminate\Support\Facades\Storage;
use Maatwebsite\Excel\Facades\Excel;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class OperatorController extends Controller
{
use ApiResponse;
@@ -26,12 +23,15 @@ class OperatorController extends Controller
public function index(Request $request, OperatorService $operatorService): JsonResponse
{
$data = $operatorService->dataTable($request);
return response()->json($data);
}
public function excel(Request $request, OperatorService $operatorService): BinaryFileResponse
{
$name = 'گزارش از کارتابل عملیات گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx';
$name = 'گزارش از کارتابل عملیات گشت راهداری '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $operatorService->dataTable($request, true);
return Excel::download(new OperatorCartableReport($data['data']), $name);
}
@@ -42,15 +42,15 @@ class OperatorController extends Controller
$road_patrol = RoadPatrol::query()->create([
'operator_id' => $user->id,
'status' => 0,
'status_fa' => 'در حال بررسی',
'status' => 0,
'status_fa' => 'در حال بررسی',
'province_id' => $mission->province_id,
'province_fa' => $mission->province_name,
'edare_id' => $mission->edare_shahri_id,
'edare_name' => $mission->edare_shahri_name,
'start_time' => $mission->start_time,
'end_time' => $mission->finish_time,
'mission_id' => $mission->id,
'edare_id' => $mission->edare_shahri_id,
'edare_name' => $mission->edare_shahri_name,
'start_time' => $mission->start_time,
'end_time' => $mission->finish_time,
'mission_id' => $mission->id,
]);
auth()->user()->addActivityComplete(1147);
@@ -74,8 +74,8 @@ class OperatorController extends Controller
$road_item = $observed_item->roadItemProject;
if ($road_item->files()->exists()) {
Storage::delete('public/' . $road_item->files[0]->path);
Storage::delete('public/' . $road_item->files[1]->path);
Storage::delete('public/'.$road_item->files[0]->path);
Storage::delete('public/'.$road_item->files[1]->path);
$road_item->files()->delete();
}

View File

@@ -18,16 +18,17 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
class ReportController extends Controller
{
use ApiResponse;
public function activitiesOnMap(Request $request): JsonResponse
{
$date_from = $request->from_date ? $request->from_date .' 00:00:00' : now()->startOfDay()->toDateTimeString();
$date_from = $request->from_date ? $request->from_date.' 00:00:00' : now()->startOfDay()->toDateTimeString();
$date_to = $request->date_to ? $request->date_to.' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString();
$provinceId = $request->province_id;
$edareId = $request->edare_id;
$data = RoadPatrol::query()
->when($provinceId, fn($query, $provinceId) => $query->where('province_id', '=', $provinceId))
->when($edareId, fn($query, $edareId) => $query->where('edare_id', '=', $edareId))
->when($provinceId, fn ($query, $provinceId) => $query->where('province_id', '=', $provinceId))
->when($edareId, fn ($query, $edareId) => $query->where('edare_id', '=', $edareId))
->whereBetween('created_at', [$date_from, $date_to])
->select('id', 'start_lat', 'start_lon')
->get();
@@ -51,11 +52,11 @@ class ReportController extends Controller
'officer_name' => $roadPatrol->officer_name,
'officer_plaque' => $roadPatrol->officer_plaque,
'officer_phone_number' => $roadPatrol->officer_phone_number,
'created_at' => $roadPatrol->created_at
'created_at' => $roadPatrol->created_at,
];
$observed_items = array();
if($roadPatrol->observedItems) {
$observed_items = [];
if ($roadPatrol->observedItems) {
foreach ($roadPatrol->observedItems as $index => $observed_item) {
$observed_items[] = [
'item' => $observed_item->item_name,
@@ -68,8 +69,10 @@ class ReportController extends Controller
}
$data['observed_items'] = $observed_items;
return $this->successResponse($data);
}
public function countryPatrolActivity(Request $request, ReportService $reportService): JsonResponse
{
$activities = $reportService->countryActivity($request);
@@ -78,13 +81,13 @@ class ReportController extends Controller
return $this->successResponse([
'activities' => $activities['data'],
'provinces' => $provinces
'provinces' => $provinces,
]);
}
public function provincePatrolActivity(Request $request, ReportService $reportService): JsonResponse
{
$request->validate(["province_id" => "required",]);
$request->validate(['province_id' => 'required']);
$activities = $reportService->provinceActivity($request);
@@ -101,7 +104,7 @@ class ReportController extends Controller
$activities = $reportService->countryActivity($request);
$provinces = Province::all(['id', 'name_fa']);
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
$name = 'گزارش از گشت راهداری و ترابری '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new CountryActivity([
'activities' => $activities,
@@ -114,7 +117,7 @@ class ReportController extends Controller
$activities = $reportService->provinceActivity($request);
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']);
$name = 'گزارش از گشت راهداری و ترابری ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
$name = 'گزارش از گشت راهداری و ترابری '.verta()->now()->format('Y-m-d H-i').'.xlsx';
return Excel::download(new ProvinceActivity([
'activities' => $activities,

View File

@@ -40,8 +40,9 @@ class SupervisorController extends Controller
*/
public function excel(Request $request, SupervisorService $supervisorService): BinaryFileResponse
{
$name = 'گزارش از کارتابل ارزیابی گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx';
$name = 'گزارش از کارتابل ارزیابی گشت راهداری '.verta()->now()->format('Y-m-d H:i').'.xlsx';
$data = $supervisorService->dataTable($request, true);
return Excel::download(new SupervisorCartableReport($data['data']), $name);
}
}