From 8cc08e851b2af2a2938d7c7291773bca7d415e0d Mon Sep 17 00:00:00 2001 From: "allen.yan" Date: Tue, 20 May 2025 15:26:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BB=99=E5=85=A5=E8=B3=87=E6=96=99=20?= =?UTF-8?q?=E6=AD=8C=E6=9B=B2=20=E8=8B=B1=E6=96=87=20=E6=94=B9=20=E8=8B=B1?= =?UTF-8?q?=E8=AA=9E=20=E6=BB=99=E5=85=A5=E8=B3=87=E6=96=99=20=E6=AD=8C?= =?UTF-8?q?=E6=9B=B2=20filename=20=E8=A3=9C=E4=B8=8A=E8=B7=AF=E5=BE=91=20?= =?UTF-8?q?=E4=BD=86=E6=B2=92=E6=9C=89=E8=A8=AD=E5=82=99=E5=90=8D=E7=A8=B1?= =?UTF-8?q?=2020250520?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Enums/SongLanguageType.php | 18 ++++++++++++++++++ app/Jobs/ImportSongChunkJob.php | 19 +++++++++++++++++-- .../livewire/admin/song-import-data.blade.php | 10 ++++++++++ 開發手冊.ini | 1 - 4 files changed, 45 insertions(+), 3 deletions(-) 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 @@ 可填入歌手名稱 + + 路徑01 + 歌曲路徑 + \\SVR01\DISK01\ + + + 路徑02 + 歌曲路徑 + \\SVR02\DISK01\ + 檔名 歌曲檔名 diff --git a/開發手冊.ini b/開發手冊.ini index d4bb37c..a9486bc 100644 --- a/開發手冊.ini +++ b/開發手冊.ini @@ -129,4 +129,3 @@ composer require "darkaonline/l5-swagger" php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider" php -d memory_limit=512M artisan l5-swagger:generate -4|qdXjrZTvWzOE5kNhbmOXFO6d7DrFzGh1RqhVATLZf8475a6b \ No newline at end of file