Доработка апи

pull/6/head
Rustem 2025-03-25 16:43:49 +05:00
parent f41b0fe7eb
commit 6a25070d4f
3 changed files with 62 additions and 24 deletions

View File

@ -186,8 +186,14 @@ class MobileApiController extends Controller
{
$started_at = $request->query('started_at');
$ended_at = $request->query('ended_at');
$class = $request->query('class');
$marks = UniModel::model('pipi_brand_models')->get();
$marks = UniModel::model('pipi_brand_models');
if ($class) {
$class_id = UniModel::model('pipi_auto_class')->firstWhere('name', $class)->id;
$marks = $marks->where('class_id', $class_id);
}
$marks->get();
$availableMarks = [];
foreach ($marks as $mark) {
@ -219,12 +225,12 @@ class MobileApiController extends Controller
'mark' => $mark->name,
'year' => $mark->year,
'configuration' => $equipment?->name,
'people' => $mark?->people,
'actuator' => $mark?->actuator,
'fuel_type' => $mark?->fuel_type,
'hp' => $mark?->hp,
'engine_capacity' => $mark?->engine_capacity,
'fuel_tank' => $mark?->fuel_tank,
'people' => $mark?->people ?? 5,
'actuator' => $mark?->actuator ?? 'Передний',
'fuel_type' => $mark?->fuel_type ?? 'АКПП',
'hp' => $mark?->hp ?? '1.6',
'engine_capacity' => $mark?->engine_capacity ?? 1591,
'fuel_tank' => $mark?->fuel_tank ?? 50,
'conditioner' => $mark?->conditioner,
'tariffs' => $tariffs_new
];

View File

@ -49,6 +49,39 @@ class Sync1cApiController extends Controller
$inspectionKit = json_decode($value['КомпректацияДляОсмотра'], true);
}
}
$car = UniModel::model('pipi_auto', $segment->connector)->where('guid', $value['id'])->exist();
if ($value['ПометкаУдаления'] == 'Да') {
$class_id = UniModel::model('pipi_auto_classes', $segment->connector)
->first(['name' => $value['Класс']])->id;
$type_id = UniModel::model('pipi_auto_types', $segment->connector)
->first(['name' => $value['Тип']]);
$brand_id = UniModel::model('pipi_auto_brands', $segment->connector)
->first(['name' => $value['Марка']]);
$color_id = UniModel::model('pipi_auto_colors', $segment->connector)
->first(['name' => $value['Цвет']]);
$model = UniModel::model('pipi_brand_models', $segment->connector)
->first([
'name' => $value['Модель'],
'brand_id' => $brand_id->id,
'year' => $this->formatDate($value['ГодПроизводства'])?->format('Y'),
]);
} else {
$class_id = UniModel::model('pipi_auto_classes', $segment->connector)
->firstOrCreate(['name' => $value['Класс']])->id;
$type_id = UniModel::model('pipi_auto_types', $segment->connector)
->firstOrCreate(['name' => $value['Тип']]);
$brand_id = UniModel::model('pipi_auto_brands', $segment->connector)
->firstOrCreate(['name' => $value['Марка']]);
$color_id = UniModel::model('pipi_auto_colors', $segment->connector)
->firstOrCreate(['name' => $value['Цвет']]);
$model = UniModel::model('pipi_brand_models', $segment->connector)
->firstOrCreate([
'name' => $value['Модель'],
'brand_id' => $brand_id->id,
'year' => $this->formatDate($value['ГодПроизводства'])?->format('Y'),
]);
}
UniModel::model('pipi_auto', $segment->connector)->updateOrCreate(
[
'guid' => $value['id'],
@ -56,21 +89,11 @@ class Sync1cApiController extends Controller
[
'code' => $value['Код'],
'name' => $value['Наименование'],
'type_id' => UniModel::model('pipi_auto_types', $segment->connector)
->firstOrCreate(['name' => $value['Тип']])->id,
'class_id' => UniModel::model('pipi_auto_classes', $segment->connector)
->firstOrCreate(['name' => $value['Класс']])->id,
'brand_id' => UniModel::model('pipi_auto_brands', $segment->connector)
->firstOrCreate(['name' => $value['Марка']])->id,
'model_id' => UniModel::model('pipi_brand_models', $segment->connector)
->firstOrCreate([
'name' => $value['Модель'],
'brand_id' => UniModel::model('pipi_auto_brands', $segment->connector)
->firstOrCreate(['name' => $value['Марка']])->id,
'year' => $this->formatDate($value['ГодПроизводства'])?->format('Y'),
])->id,
'color_id' => UniModel::model('pipi_auto_colors', $segment->connector)
->firstOrCreate(['name' => $value['Цвет']])->id,
'type_id' => $type_id->id,
'class_id' => $class_id,
'brand_id' => $brand_id->id,
'model_id' => $model->id,
'color_id' => $color_id->id,
'serial_number' => $value['СерийныйНомер'],
'state_number' => $value['ГосНомер'],
'manufacture_year' => $this->formatDate($value['ГодПроизводства'])?->format('Y-m-d'),
@ -88,6 +111,9 @@ class Sync1cApiController extends Controller
'deleted_at' => $value['ПометкаУдаления'] == 'Да' ? now() : null,
]
);
$model->class_id = $class_id;
$model->save();
}
}
@ -238,11 +264,11 @@ class Sync1cApiController extends Controller
foreach ($request->all() as $value) {
UniModel::model('pipi_auto_calendar', $segment->connector)->updateOrCreate(
[
'auto_id' => UniModel::model('pipi_auto')->where('name', $value['Имущество'])->first()?->id,
'auto_id' => UniModel::model('pipi_auto')->where('guid', $value['id'])->first()?->id,
'date' => $this->formatDate($value['Дата']),
],
[
'auto_id' => UniModel::model('pipi_auto')->where('name', $value['Имущество'])->first()?->id,
'auto_id' => UniModel::model('pipi_auto')->where('guid', $value['id'])->first()?->id,
'date' => $this->formatDate($value['Дата']),
'status' => AutoStatusEnums::from($value['Статус'])->name
]

View File

@ -55,6 +55,12 @@ return new class extends \A7kz\Platform\Commands\InstallScript {
$table->boolean('conditioner')->default(true)->comment('Кондиционер');
});
}
if (!Schema::connection($segment->connector)->hasColumn('pipi_brand_models', 'class_id')) {
Schema::connection($segment->connector)->table('pipi_brand_models', function ($table) {
$table->unsignedBigInteger('class_id')->nullable()->comment('Класс');
});
}
}
}
};