diff --git a/app/Enums/SongLanguageType.php b/app/Enums/SongLanguageType.php index 7f9a715..507b770 100644 --- a/app/Enums/SongLanguageType.php +++ b/app/Enums/SongLanguageType.php @@ -35,4 +35,22 @@ enum SongLanguageType: string self::Other => __('enums.song.LanguageType.Other'), }; } + public static function fromLabelOrName(string $input): self + { + $aliasMap = [ + '英文' => '英語', + '華語' => '國語', + '普通話' => '國語', + '台灣話' => '台語', + '客家話' => '客語', + ]; + // 將別名轉為正式值 + $input = $aliasMap[$input] ?? $input; + foreach (self::cases() as $case) { + if ($case->value === $input || $case->name === $input) { + return $case; + } + } + return self::Unset; + } } \ No newline at end of file diff --git a/app/Jobs/ImportSongChunkJob.php b/app/Jobs/ImportSongChunkJob.php index 47045e0..94f4df4 100644 --- a/app/Jobs/ImportSongChunkJob.php +++ b/app/Jobs/ImportSongChunkJob.php @@ -43,6 +43,17 @@ class ImportSongChunkJob implements ShouldQueue $ToInsert = []; $artistMap = []; $categoryMap = []; + $pMap = [ + '\\\\SVR01\\DISK01\\' => 'DISK01\\', + '\\\\SVR01\\DISK02\\' => 'DISK02\\', + '\\\\SVR01\\DISK03\\' => 'DISK03\\', + '\\\\SVR01\\DISK04\\' => 'DISK04\\', + '\\\\SVR01\\DISK05\\' => 'DISK05\\', + '\\\\SVR01\\DISK06\\' => 'DISK06\\', + '\\\\SVR01\\DISK07\\' => 'DISK07\\', + '\\\\SVR01\\DISK08\\' => 'DISK08\\', + '\\\\SVR01\\DISK09\\' => 'DISK09\\', + ]; foreach ($this->rows as $index => $row) { $songId = trim($row['編號'] ?? ''); @@ -76,13 +87,17 @@ class ImportSongChunkJob implements ShouldQueue } else { $songNumber=trim($row['kk4'] ?? 0); } + $pathKey = trim($row['路徑01'] ?? ''); + $disk = $pMap[$pathKey] ?? ''; + $filename = trim($row['檔名'] ?? ''); // 準備 song 資料 $ToInsert[] = [ 'id' => $songId, 'name' => $this->formatText($row['歌名']), 'adddate' => $this->parseExcelDate($row['日期'] ?? null), - 'filename' => trim($row['檔名'] ?? ''), - 'language_type' => SongLanguageType::tryFrom(trim($row['語別'] ?? '')) ?? SongLanguageType::Unset, + 'filename' => $disk . $filename, + //'language_type' => SongLanguageType::tryFrom(trim($row['語別'] ?? '')) ?? SongLanguageType::Unset, + 'language_type' => SongLanguageType::fromLabelOrName($row['語別'] ?? ''), 'db_change' => trim($row['kk2'] ?? 0),//分貝增減 'vocal' => trim($row['kk6'] ?? 0),//人聲 'situation' => SongSituation::tryFrom(trim($row['kk7'] ?? '')) ?? SongSituation::Unset,//情境 diff --git a/resources/views/livewire/admin/song-import-data.blade.php b/resources/views/livewire/admin/song-import-data.blade.php index e7d0b91..5c1a2fb 100644 --- a/resources/views/livewire/admin/song-import-data.blade.php +++ b/resources/views/livewire/admin/song-import-data.blade.php @@ -36,6 +36,16 @@