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

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'); $started_at = $request->query('started_at');
$ended_at = $request->query('ended_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 = []; $availableMarks = [];
foreach ($marks as $mark) { foreach ($marks as $mark) {
@ -219,12 +225,12 @@ class MobileApiController extends Controller
'mark' => $mark->name, 'mark' => $mark->name,
'year' => $mark->year, 'year' => $mark->year,
'configuration' => $equipment?->name, 'configuration' => $equipment?->name,
'people' => $mark?->people, 'people' => $mark?->people ?? 5,
'actuator' => $mark?->actuator, 'actuator' => $mark?->actuator ?? 'Передний',
'fuel_type' => $mark?->fuel_type, 'fuel_type' => $mark?->fuel_type ?? 'АКПП',
'hp' => $mark?->hp, 'hp' => $mark?->hp ?? '1.6',
'engine_capacity' => $mark?->engine_capacity, 'engine_capacity' => $mark?->engine_capacity ?? 1591,
'fuel_tank' => $mark?->fuel_tank, 'fuel_tank' => $mark?->fuel_tank ?? 50,
'conditioner' => $mark?->conditioner, 'conditioner' => $mark?->conditioner,
'tariffs' => $tariffs_new 'tariffs' => $tariffs_new
]; ];

View File

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