info('开始添加OpenAPI模块后台菜单...'); // 1. 创建顶级菜单'外接管理' $externalManageMenu = $this->createExternalManageMenu(); // 2. 创建OpenAPI应用管理子菜单 $this->createOpenAPIAppMenu($externalManageMenu->id); $this->info('OpenAPI模块后台菜单添加完成!'); return 0; } /** * 创建顶级菜单'外接管理' * * @return AdminMenu */ protected function createExternalManageMenu(): AdminMenu { // 检查是否已存在 $existingMenu = AdminMenu::where('title', '外接管理') ->where('parent_id', 0) ->first(); if ($existingMenu) { $this->info("顶级菜单'外接管理'已存在: ID = {$existingMenu->id}"); return $existingMenu; } // 获取最大的order值 $maxOrder = AdminMenu::max('order'); $nextOrder = $maxOrder + 1; // 创建顶级菜单 $menu = AdminMenu::create([ 'parent_id' => 0, 'order' => $nextOrder, 'title' => '外接管理', 'icon' => 'fa-plug', 'uri' => '', 'show' => 1 ]); $this->info("创建顶级菜单'外接管理': ID = {$menu->id}, Order = {$nextOrder}"); return $menu; } /** * 创建OpenAPI应用管理子菜单 * * @param int $parentId * @return AdminMenu */ protected function createOpenAPIAppMenu(int $parentId): AdminMenu { // 检查是否已存在 $existingMenu = AdminMenu::where('title', 'OpenAPI应用管理') ->where('parent_id', $parentId) ->first(); if ($existingMenu) { $this->info("子菜单'OpenAPI应用管理'已存在: ID = {$existingMenu->id}"); return $existingMenu; } // 获取父菜单下的最大order值 $maxOrder = AdminMenu::where('parent_id', $parentId)->max('order'); $nextOrder = $maxOrder ? $maxOrder + 1 : 1; // 创建子菜单 $menu = AdminMenu::create([ 'parent_id' => $parentId, 'order' => $nextOrder, 'title' => 'OpenAPI应用管理', 'icon' => 'fa-key', 'uri' => 'openapi-apps', 'show' => 1 ]); $this->info("创建子菜单'OpenAPI应用管理': ID = {$menu->id}, URI = openapi-apps"); return $menu; } /** * 显示菜单结构 */ protected function showMenuStructure() { $this->info("\n当前菜单结构:"); $this->info("外接管理 (fa-plug)"); $this->info(" └── OpenAPI应用管理 (fa-key) -> openapi-apps"); } }