Merge pull request #56 from witelgroup/develop

Develop
This commit is contained in:
Amir Ghasempoor
2025-09-27 15:41:51 +03:30
committed by GitHub
14 changed files with 135 additions and 37 deletions

View File

@@ -2,24 +2,24 @@
namespace App\Enums;
enum FMSResultCode: int
enum FMSResultCode: string
{
case SUCCESSFUL = 0;
case INVALID_CREDENTIAL = 1;
case NO_GPS_DEVICE_CONNECTED = 2;
case UNAUTHORIZE = 3;
case RATE_LIMIT = 4;
case INVALID_PARAMETERS = 5;
case SUCCESSFUL = "0";
case INVALID_CREDENTIAL = "-1";
case NO_GPS_DEVICE_CONNECTED = "-2";
case UNAUTHORIZE = "-3";
case RATE_LIMIT = "-4";
case INVALID_PARAMETERS = "-5";
public static function name(int $state): string
public static function name(string $state): string
{
$mapArray = [
0 => "اﺟﺮاي ﺗﺎﺑﻊ ﻣﻮﻓﻘﯿﺖ آﻣﯿﺰ ﺑﻮد.",
1 => "نام ﮐﺎرﺑﺮي ﯾﺎ ﮐﻠﻤﻪ ﻋﺒﻮر ﺻﺤﯿﺢ ﻧﯿﺴﺖ.",
2 => "خودرو با کد مورد نظر وجود ندارد یا دستگاه ردیاب به آن متصل نیست.",
3 => "کاربر به خودرو مورد نظر دسترسی ندارد.",
4 => "ﺗﻌﺪاد دﻓﻌﺎت ﺟﺮاي ﺗﺎﺑﻊ ﺑﯿﺶ از ﺣﺪ ﻣﺠﺎز اﺳﺖ(اﯾﻦ ﺳﺮوﯾﺲ را در ﻫﺮ ثاﻧﯿﻪ ﻓﻘﻂ ﯾﮏ ﺑﺎر ﻣﯽﺗﻮان اﺟﺮاﮐﺮد)",
5 => "پارامتر های داده شده صحیح نیستند",
"0" => "اﺟﺮاي ﺗﺎﺑﻊ ﻣﻮﻓﻘﯿﺖ آﻣﯿﺰ ﺑﻮد.",
"-1" => "نام ﮐﺎرﺑﺮي ﯾﺎ ﮐﻠﻤﻪ ﻋﺒﻮر ﺻﺤﯿﺢ ﻧﯿﺴﺖ.",
"-2" => "خودرو با کد مورد نظر وجود ندارد یا دستگاه ردیاب به آن متصل نیست.",
"-3" => "کاربر به خودرو مورد نظر دسترسی ندارد.",
"-4" => "ﺗﻌﺪاد دﻓﻌﺎت ﺟﺮاي ﺗﺎﺑﻊ ﺑﯿﺶ از ﺣﺪ ﻣﺠﺎز اﺳﺖ(اﯾﻦ ﺳﺮوﯾﺲ را در ﻫﺮ ثاﻧﯿﻪ ﻓﻘﻂ ﯾﮏ ﺑﺎر ﻣﯽﺗﻮان اﺟﺮاﮐﺮد)",
"-5" => "پارامتر های داده شده صحیح نیستند",
];
return $mapArray[$state];

View File

@@ -86,10 +86,14 @@ class RequestPortalController extends Controller
{
DB::transaction(function () use ($request, $mission) {
$user = auth()->user();
$mission->update([
'finish_time' => now(),
'state_id' => MissionStates::END_MISSION->value,
'state_name' => MissionStates::name(MissionStates::END_MISSION->value),
]);
$mission->update(['finish_time' => now()]);
$state = MissionStates::REQUEST_CREATED->value;
$state = MissionStates::START_MISSION->value;
$category = $request->category_id;
$newMission = Mission::query()->create([

View File

@@ -39,6 +39,7 @@ class TransportationUnitController extends Controller
$mission->update([
'state_id' => $state,
'state_name' => MissionStates::name($state),
'km' => $request->km
]);
});

View File

@@ -7,6 +7,7 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Rahdaran\StoreRequest;
use App\Http\Requests\V3\Rahdaran\UpdateRequest;
use App\Http\Traits\ApiResponse;
use App\Models\Province;
use App\Models\Rahdaran;
use Illuminate\Database\QueryException;
use Illuminate\Http\JsonResponse;
@@ -28,11 +29,17 @@ class RahdaranController extends Controller
public function store(StoreRequest $request): JsonResponse
{
$province = Province::query()->find($request->input('province_id'));
Rahdaran::query()->create([
'name' =>$request->name,
'code' =>$request->code,
'mobile' =>$request->mobile,
'name' => $request->name,
'code' => $request->code,
'mobile' => $request->mobile,
'province_id' => $province->id,
'province_name' => $province->name_fa,
'edareh_shahri_id' => $request->edareh_shahri_id,
]);
return $this->successResponse();
}
@@ -43,11 +50,17 @@ class RahdaranController extends Controller
public function update(UpdateRequest $request, Rahdaran $rahdaran): JsonResponse
{
$province = Province::query()->find($request->input('province_id'));
$rahdaran->update([
'name' =>$request->name,
'code' =>$request->code,
'mobile' =>$request->mobile,
'province_id' => $province->id,
'province_name' => $province->name_fa,
'edareh_shahri_id' => $request->edareh_shahri_id,
]);
return $this->successResponse();
}

View File

@@ -26,6 +26,8 @@ class StoreRequest extends FormRequest
'name' => 'required|string|max:255',
'code' => 'required|string|max:255|unique:rahdaran,code',
'mobile' => 'required|digits:11|regex:/^09\d{9}$/',
'province_id' => 'required|exists:provinces,id',
'edareh_shahri_id' => 'required|exists:edarate_shahri,id',
];
}
}

View File

@@ -27,6 +27,8 @@ class UpdateRequest extends FormRequest
'name' => 'required|string|max:255',
'code' => ['required', 'string', Rule::unique('rahdaran', 'code')->ignore($this->rahdaran->id)],
'mobile' => 'required|digits:11|regex:/^09\d{9}$/',
'province_id' => 'required|exists:provinces,id',
'edareh_shahri_id' => 'required|exists:edarate_shahri,id',
];
}
}

View File

@@ -29,7 +29,7 @@ class SendDataToFMSListener implements ShouldQueue
$mission = $event->mission;
$this->getErrorRateService->setInputParameters([
'url' => config('fms_web_services.Error_Rate.url'),
'username' => config('fms_web_services.Error_Rate.username'),
'password' => config('fms_web_services.Error_Rate.password'),
'missionArea' => $mission->area['coordinates'],
'missionStartDT' => $mission->start_time->format('Y-m-d\TH:i:s'),

View File

@@ -134,7 +134,7 @@ class Accident extends Model
);
}
protected function depositIdaghiImage(): Attribute
protected function depositDaghiImage(): Attribute
{
return Attribute::make(
get: fn($value) => $value == null ? null : Storage::disk('public')->url($value)

View File

@@ -73,6 +73,12 @@ class RouteServiceProvider extends ServiceProvider
->middleware(['web', 'auth', 'confirmUser'])
->namespace($this->namespace)
->group(base_path('routes/v3.php'));
Route::prefix('webservice')
->name('webservice.')
->namespace($this->namespace)
->group(base_path('routes/webservices.php'));
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)

View File

@@ -10,13 +10,11 @@ class GetErrorRateService
{
protected string $url;
protected string $channelName;
protected string $password;
protected string $username;
protected array $inputParameters;
public function __construct()
{
$this->username = config('fms_web_services.Error_Rate.username');
$this->url = config('fms_web_services.Error_Rate.url');
$this->channelName = 'fms_error_rate';
}
@@ -48,9 +46,10 @@ class GetErrorRateService
public function sendRequest(): array
{
return Http::withHeaders(['Content-Type' => 'application/json'])
->withBody(json_encode($this->inputParameters))
->throw()
->withoutVerifying()
->post($this->url, $this->inputParameters)
->post($this->url)
->json();
}
}

View File

@@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('rahdaran', function (Blueprint $table) {
$table->unsignedTinyInteger('province_id');
$table->foreign('province_id')->references('id')->on('provinces');
$table->string('province_name');
$table->unsignedBigInteger('edareh_shahri_id');
$table->foreign('edareh_shahri_id')->references('id')->on('edarate_shahri');
$table->boolean('is_driver')->default(false);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('rahdaran', function (Blueprint $table) {
$table->dropForeign('province_id');
$table->dropForeign('edareh_shahri_id');
$table->dropColumn(['province_id', 'province_name']);
});
}
};

View File

@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('missions', function (Blueprint $table) {
$table->string('km')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('missions', function (Blueprint $table) {
$table->dropColumn('km');
});
}
};

View File

@@ -10,7 +10,6 @@ use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshSampleController;
use App\Http\Controllers\V3\Dashboard\Azmayesh\AzmayeshTypeController;
use App\Http\Controllers\V3\Dashboard\Harim\GeneralManagerController;
use App\Http\Controllers\V3\Dashboard\Harim\HarimOfficeController;
use App\Http\Controllers\V3\Dashboard\Harim\PanjareVahedController;
use App\Http\Controllers\V3\Dashboard\Harim\ProvinceOfficeController;
use App\Http\Controllers\V3\Dashboard\Harim\TechnicalDeputyController;
use App\Http\Controllers\V3\Dashboard\ItemsManagementController;
@@ -488,7 +487,7 @@ Route::prefix('missions')
Route::get('/', 'index')->name('index');
Route::post('/', 'store')->name('store');
Route::post('/no_process','noProcess')->name('noProcess');
Route::post('/continue','continueMission')->name('continueMission');
Route::post('/continue/{mission}','continueMission')->name('continueMission');
Route::get('/{mission}', 'show')->name('show');
Route::post('/{mission}', 'update')->name('update');
Route::delete('/{mission}', 'destroy')->name('destroy');
@@ -568,15 +567,6 @@ Route::prefix('harim')
Route::post('/confirm_guarantee_letter_need/{harim}', 'confirmGuaranteeLetterNeed')->name('confirmGuaranteeLetterNeed');
Route::get('/{harim}', 'show')->name('show');
});
Route::prefix('panjare_vahed')
->name('panjarevahed.')
->controller(PanjarevahedController::class)
->group(function () {
Route::post('/receive_new_request', 'receiveNewRequest')->name('receiveNewRequest');
Route::post('/receive_access_road','getAccessRoad')->name('getAccessRoad');
Route::post('/get_status_request','getRejectRequest')->name('getRejectRequest');
Route::post('/get_final_polygons','getFinalPolygons')->name('getFinalPolygons');
});
});
Route::prefix('user_management')

18
routes/webservices.php Normal file
View File

@@ -0,0 +1,18 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\V3\Dashboard\Harim\PanjareVahedController;
Route::prefix('harim')
->name('harim.')
->group(function () {
Route::prefix('panjare_vahed')
->name('panjarevahed.')
->controller(PanjarevahedController::class)
->group(function () {
Route::post('/receive_new_request', 'receiveNewRequest')->name('receiveNewRequest');
Route::post('/receive_access_road','getAccessRoad')->name('getAccessRoad');
Route::post('/get_status_request','getRejectRequest')->name('getRejectRequest');
Route::post('/get_final_polygons','getFinalPolygons')->name('getFinalPolygons');
});
});