From 15b01c722463f12b056e22ce967db89d599fff2a Mon Sep 17 00:00:00 2001 From: pro Date: Fri, 30 Jan 2026 21:07:44 +0900 Subject: [PATCH] =?UTF-8?q?feat:=EC=98=81=EC=97=85=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=20=EC=A0=95=EB=A6=AC=20=EC=8B=9C=EB=8D=94=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 세일즈 사이트, 렌딩페이지 영업관리 하위로 이동 - 중복 영업관리 메뉴 제거 Co-Authored-By: Claude Opus 4.5 --- database/seeders/SalesMenuFixSeeder.php | 87 +++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 database/seeders/SalesMenuFixSeeder.php diff --git a/database/seeders/SalesMenuFixSeeder.php b/database/seeders/SalesMenuFixSeeder.php new file mode 100644 index 00000000..90c80289 --- /dev/null +++ b/database/seeders/SalesMenuFixSeeder.php @@ -0,0 +1,87 @@ +where('name', '영업관리') + ->whereNull('parent_id') + ->orderBy('id') + ->get(); + + if ($salesMenus->count() > 1) { + // 첫 번째를 유지하고 나머지는 삭제 + $mainSalesMenu = $salesMenus->first(); + $duplicates = $salesMenus->skip(1); + + foreach ($duplicates as $dup) { + // 중복 메뉴의 하위 메뉴들을 메인으로 이동 + Menu::where('parent_id', $dup->id)->update(['parent_id' => $mainSalesMenu->id]); + // 중복 메뉴 삭제 + $dup->forceDelete(); + $this->command->info("중복 영업관리 메뉴 삭제: ID {$dup->id}"); + } + } + + // 영업관리 메뉴 ID + $salesParentId = Menu::where('tenant_id', $tenantId) + ->where('name', '영업관리') + ->whereNull('parent_id') + ->value('id'); + + if (!$salesParentId) { + $this->command->error('영업관리 메뉴를 찾을 수 없습니다.'); + return; + } + + // 세일즈 사이트 메뉴 찾아서 이동 + $salesSite = Menu::where('tenant_id', $tenantId) + ->where('name', '세일즈 사이트') + ->first(); + + if ($salesSite) { + $salesSite->parent_id = $salesParentId; + $salesSite->sort_order = 5; + $salesSite->save(); + $this->command->info('세일즈 사이트 → 영업관리 하위로 이동'); + } + + // 렌딩페이지 메뉴 찾아서 이동 및 URL 설정 + $landingPage = Menu::where('tenant_id', $tenantId) + ->where('name', '렌딩페이지') + ->first(); + + if ($landingPage) { + $landingPage->parent_id = $salesParentId; + $landingPage->sort_order = 6; + $landingPage->url = '/sales/salesmanagement/dashboard'; + $landingPage->save(); + $this->command->info('렌딩페이지 → 영업관리 하위로 이동, URL 설정'); + } + + // 결과 출력 + $this->command->info(''); + $this->command->info('=== 영업관리 하위 메뉴 ==='); + $children = Menu::where('parent_id', $salesParentId) + ->orderBy('sort_order') + ->get(['name', 'url', 'sort_order']); + + foreach ($children as $child) { + $this->command->info("{$child->sort_order}. {$child->name} ({$child->url})"); + } + } +}