KTV/app/Imports/DataImport.php
allen.yan ea0e10bb64 修正滙入功能 與寫相關記錄
修正滙入時暫存檔不會刪的問題
20250510
2025-05-10 19:41:43 +08:00

48 lines
1.3 KiB
PHP

<?php
namespace App\Imports;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithChunkReading;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Imports\HeadingRowFormatter;
use Illuminate\Support\Facades\Log;
use App\Jobs\ImportArtistChunkJob;
use App\Jobs\ImportSongChunkJob;
class DataImport implements ToCollection, WithHeadingRow, WithChunkReading
{
protected int $con=0;
protected string $modelName;
public function __construct(string $modelName)
{
HeadingRowFormatter::default('none');
$this->modelName= $modelName;
}
public function collection(Collection $rows)
{
Log::warning('匯入啟動', [
'model' => $this->modelName,
'rows_id' =>++$this->con,
'rows_count' => $rows->count()
]);
if($this->modelName=='Song'){
ImportSongChunkJob::dispatch($rows,$this->con);
}else if($this->modelName=='Artist'){
ImportArtistChunkJob::dispatch($rows,$this->con);
}else{
Log::warning('未知的 modelName', ['model' => $this->modelName]);
}
}
public function chunkSize(): int
{
return 1000;
}
public function headingRow(): int
{
return 1;
}
}