truncate(); DB::table('mtb_drive_seat')->truncate(); DB::table('mtb_drive_system')->truncate(); DB::table('mtb_fuel')->truncate(); DB::table('mtb_model')->truncate(); DB::table('mtb_model_name')->truncate(); DB::table('mtb_transmission')->truncate(); DB::table('mtb_vehicle')->truncate(); $path = storage_path('app/' . $this->argument('path')); // dd($path); if (!file_exists($path)) { $this->error("File not found: {$path}"); return Command::FAILURE; } $csv = new \SplFileObject($path); $csv->setFlags( \SplFileObject::READ_CSV | \SplFileObject::READ_AHEAD | \SplFileObject::SKIP_EMPTY | \SplFileObject::DROP_NEW_LINE ); $header = null; $count = 0; foreach ($csv as $i => $line) { // dd($line); // skip if (empty($line)) continue; // if (empty($line) || count($line) < 1) continue; // dd($line); $maker_name = $line[0]; $emission_model_code = $line[1]; $base_model_code = $line[2]; $chassis_number = $line[3]; $chassis_subnumber = $line[4]; $model_name = $line[5]; $model_number = $line[6]; $td_number = $line[7]; $ci_number = $line[8]; $pod = $line[9]; $engine_number = $line[10]; $drive_system_name = $line[11]; $transmission_name = $line[12]; $grade = $line[13]; $sop = $line[14]; $eop = $line[15]; $remark = $line[16]; $charger_name = $line[17]; $displacement = $line[18]; $fuel_name = $line[19]; $drive_seat_name = $line[20]; $is_oem = $line[21]; $oem_maker_name = $line[22]; $oem_model_number = $line[23]; $oem_model_name = $line[24]; // dd( // $maker_name, // $emission_model_code, // $base_model_code, // $chassis_number, // $model_name, // $td_number, // $ci_number, // $pod, // $engine_number, // $drive_system_name, // $transmission_name, // $grade, // $sop, // $eop, // $remark, // $charger_name, // $displacement, // $fuel_name, // $drive_seat_name, // $is_oem, // $oem_maker_name, // $oem_model_number, // $oem_model_name // ); /** * ────────────────────────────────────────────────── * maker * ────────────────────────────────────────────────── */ $maker = $this->makerService->getMaker( conditions: [ 'and' => [ ['column' => 'maker_name', 'operator' => '=', 'value' => $maker_name], // ['column' => 'is_disabled', 'operator' => '=', 'value' => 0], ], ], columns: [ 'mtb_maker_id', 'maker_name', ], withJoins: false ); // dd($maker); if ($maker) { $mtb_maker_id = (int)$maker['mtb_maker_id']; // dd($mtb_maker_id); } else { $values = [ 'mtb_maker_code' => Str::random(16), 'maker_name' => $maker_name, 'is_disabled' => 0, ]; // dd($values); $mtb_maker_id = $this->makerService->createMaker( $values ); // dd($mtb_maker_id); } /** * ────────────────────────────────────────────────── * vehicle * ────────────────────────────────────────────────── */ $vehicle = $this->vehicleService->getVehicle( conditions: [ 'and' => [ ['column' => 'chassis_number', 'operator' => '=', 'value' => $chassis_number], ['column' => 'chassis_subnumber', 'operator' => '=', 'value' => $chassis_subnumber], ], ], columns: [ 'mtb_vehicle_id', ], withJoins: false ); // dd($vehicle); if ($vehicle) { $mtb_vehicle_id = (int)$vehicle['mtb_vehicle_id']; // dd($mtb_vehicle_id); } else { /** * ────────────────────────────────────────────────── * model_name * ────────────────────────────────────────────────── */ $modelname = $this->modelNameService->getModelName( conditions: [ 'and' => [ ['column' => 'model_name', 'operator' => '=', 'value' => $model_name], // ['column' => 'is_disabled', 'operator' => '=', 'value' => 0], ], ], columns: [ 'mtb_model_name_id', 'model_name', ], withJoins: false ); // dd($modelname); if ($modelname) { $mtb_model_name_id = (int)$modelname['mtb_model_name_id']; // dd($mtb_model_name_id); } else { $values = [ 'mtb_model_name_code' => Str::random(16), 'model_name' => $model_name, 'is_disabled' => 0, 'mtb_maker_id' => $mtb_maker_id, ]; // dd($values); $mtb_model_name_id = $this->modelNameService->createModelName( $values ); // dd($mtb_model_name_id); } /** * ────────────────────────────────────────────────── * oem_maker * ────────────────────────────────────────────────── */ $oem_maker = $this->makerService->getMaker( conditions: [ 'and' => [ ['column' => 'maker_name', 'operator' => '=', 'value' => $oem_maker_name], // ['column' => 'is_disabled', 'operator' => '=', 'value' => 0], ], ], columns: [ 'mtb_maker_id', 'maker_name', ], withJoins: false ); // dd($oem_maker); if ($oem_maker) { $mtb_oem_maker_id = (int)$oem_maker['mtb_maker_id']; // dd($mtb_oem_maker_id); } else { $values = [ 'mtb_maker_code' => Str::random(16), 'maker_name' => $oem_maker_name, 'is_disabled' => 0, ]; // dd($values); $mtb_oem_maker_id = $this->makerService->createMaker( $values ); // dd($mtb_oem_maker_id); } /** * ────────────────────────────────────────────────── * charger * ────────────────────────────────────────────────── */ if (empty($charger_name)) { $mtb_charger_id = 0; } else { $charger = $this->chargerService->getCharger( conditions: [ 'and' => [ ['column' => 'charger_name', 'operator' => '=', 'value' => $charger_name], // ['column' => 'is_disabled', 'operator' => '=', 'value' => 0], ], ], columns: [ 'mtb_charger_id', 'charger_name', ], withJoins: false ); // dd($charger); if ($charger) { $mtb_charger_id = (int)$charger['mtb_charger_id']; // dd($mtb_charger_id); } else { $values = [ 'mtb_charger_code' => Str::random(16), 'charger_name' => $charger_name, 'is_disabled' => 0, ]; // dd($values); $mtb_charger_id = $this->chargerService->createCharger( $values ); // dd($mtb_charger_id); } } /** * ────────────────────────────────────────────────── * drive_seat * ────────────────────────────────────────────────── */ if (empty($drive_seat_name)) { $mtb_drive_seat_id = 0; } else { $drive_seat = $this->driveSeatService->getDriveSeat( conditions: [ 'and' => [ ['column' => 'drive_seat_name', 'operator' => '=', 'value' => $drive_seat_name], // ['column' => 'is_disabled', 'operator' => '=', 'value' => 0], ], ], columns: [ 'mtb_drive_seat_id', 'drive_seat_name', ], withJoins: false ); // dd($drive_seat); if ($drive_seat) { $mtb_drive_seat_id = (int)$drive_seat['mtb_drive_seat_id']; // dd($mtb_drive_seat_id); } else { $values = [ 'mtb_drive_seat_code' => Str::random(16), 'drive_seat_name' => $drive_seat_name, 'is_disabled' => 0, ]; // dd($values); $mtb_drive_seat_id = $this->driveSeatService->createDriveSeat( $values ); // dd($mtb_drive_seat_id); } } /** * ────────────────────────────────────────────────── * drive_system * ────────────────────────────────────────────────── */ if (empty($drive_system_name)) { $mtb_drive_system_id = 0; } else { $drive_system = $this->driveSystemService->getDriveSystem( conditions: [ 'and' => [ ['column' => 'drive_system_name', 'operator' => '=', 'value' => $drive_system_name], // ['column' => 'is_disabled', 'operator' => '=', 'value' => 0], ], ], columns: [ 'mtb_drive_system_id', 'drive_system_name', ], withJoins: false ); // dd($drive_seat); if ($drive_system) { $mtb_drive_system_id = (int)$drive_system['mtb_drive_system_id']; // dd($mtb_drive_system_id); } else { $values = [ 'mtb_drive_system_code' => Str::random(16), 'drive_system_name' => $drive_system_name, 'is_disabled' => 0, ]; // dd($values); $mtb_drive_system_id = $this->driveSystemService->createDriveSystem( $values ); // dd($mtb_drive_system_id); } } /** * ────────────────────────────────────────────────── * fuel * ────────────────────────────────────────────────── */ if (empty($fuel_name)) { $mtb_fuel_id = 0; } else { $fuel = $this->fuelService->getFuel( conditions: [ 'and' => [ ['column' => 'fuel_name', 'operator' => '=', 'value' => $fuel_name], // ['column' => 'is_disabled', 'operator' => '=', 'value' => 0], ], ], columns: [ 'mtb_fuel_id', 'fuel_name', ], withJoins: false ); // dd($fuel); if ($fuel) { $mtb_fuel_id = (int)$fuel['mtb_fuel_id']; // dd($mtb_fuel_id); } else { $values = [ 'mtb_fuel_code' => Str::random(16), 'fuel_name' => $fuel_name, 'is_disabled' => 0, ]; // dd($values); $mtb_fuel_id = $this->fuelService->createFuel( $values ); // dd($mtb_fuel_id); } } /** * ────────────────────────────────────────────────── * transmission * ────────────────────────────────────────────────── */ if (empty($transmission_name)) { $mtb_transmission_id = 0; } else { $transmission = $this->transmissionService->getTransmission( conditions: [ 'and' => [ ['column' => 'transmission_name', 'operator' => '=', 'value' => $transmission_name], // ['column' => 'is_disabled', 'operator' => '=', 'value' => 0], ], ], columns: [ 'mtb_transmission_id', 'transmission_name', ], withJoins: false ); // dd($transmission); if ($transmission) { $mtb_transmission_id = (int)$transmission['mtb_transmission_id']; // dd($mtb_transmission_id); } else { $values = [ 'mtb_transmission_code' => Str::random(16), 'transmission_name' => $transmission_name, 'is_disabled' => 0, ]; // dd($values); $mtb_transmission_id = $this->transmissionService->createTransmission( $values ); // dd($mtb_transmission_id); } } /** * ────────────────────────────────────────────────── * model * ────────────────────────────────────────────────── */ $model = $this->modelService->getModel( conditions: [ 'and' => [ ['column' => 'model_number', 'operator' => '=', 'value' => $model_number], // ['column' => 'is_disabled', 'operator' => '=', 'value' => 0], ], ], columns: [ 'mtb_model_id', 'model_number', ], withJoins: false ); // dd($model); if ($model) { $mtb_model_id = (int)$model['mtb_model_id']; // dd($mtb_model_id); } else { $values = [ 'mtb_model_code' => Str::random(16), 'model_number' => $model_number, 'model_name' => $model_name, 'emission_model_code' => $emission_model_code, 'base_model_code' => $base_model_code, 'engine_number' => $engine_number, 'grade' => $grade, 'sop' => $sop, 'eop' => $eop, 'displacement' => $displacement, 'oem_model_number' => $oem_model_number, 'oem_model_name' => $oem_model_name, 'remark' => $remark, 'mtb_model_name_id' => $mtb_model_name_id, 'mtb_oem_maker_id' => $mtb_oem_maker_id, 'mtb_charger_id' => $mtb_charger_id, 'mtb_drive_seat_id' => $mtb_drive_seat_id, 'mtb_drive_system_id' => $mtb_drive_system_id, 'mtb_fuel_id' => $mtb_fuel_id, 'mtb_transmission_id' => $mtb_transmission_id, 'is_disabled' => 0, ]; // dd($values); $mtb_model_id = $this->modelService->createModel( $values ); // dd($mtb_model_id); } // set values for vehicle $values = [ 'mtb_vehicle_code' => Utility::createRandomKey(16), 'chassis_number' => $chassis_number, 'chassis_subnumber' => $chassis_subnumber, 'td_number' => $td_number, 'ci_number' => $ci_number, 'pod' => $pod, 'grade' => $grade, 'remark' => $remark, 'mtb_maker_id' => $mtb_maker_id, 'mtb_model_id' => $mtb_model_id, 'is_oem' => $is_oem == 'OEM先' ? 1 : 0, 'is_disabled' => 0, ]; // dd($values); $mtb_vehicle_id = $this->vehicleService->createVehicle( $values ); // dd($mtb_vehicle_id); } $count++; } $this->info("DONE. rows={$count}"); return self::SUCCESS; } }