| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?php
- namespace App\Module\UrsPromotion\Commands;
- use Illuminate\Console\Command;
- use Illuminate\Support\Facades\DB;
- /**
- * URS推广模块后台菜单配置命令
- *
- * 用于配置URS推广模块的后台管理菜单
- */
- class InsertUrsPromotionAdminMenuCommand extends Command
- {
- /**
- * 命令签名
- */
- protected $signature = 'urs:insert-admin-menu {--force : 强制重新创建菜单}';
- /**
- * 命令描述
- */
- protected $description = '配置URS推广模块后台管理菜单';
- /**
- * 执行命令
- */
- public function handle()
- {
- $this->info('开始配置URS推广模块后台管理菜单...');
-
- // 检查是否强制重新创建
- $force = $this->option('force');
-
- // 检查菜单是否已存在
- $existingMenu = DB::table('admin_menu')->where('title', 'URS推广管理')->first();
- if ($existingMenu && !$force) {
- $this->warn('URS推广管理菜单已存在,使用 --force 参数强制重新创建');
- return;
- }
-
- if ($existingMenu && $force) {
- $this->info('删除现有菜单...');
- $this->deleteExistingMenus();
- }
-
- // 创建菜单
- $this->createMenus();
-
- $this->info('URS推广模块后台管理菜单配置完成!');
- }
-
- /**
- * 删除现有菜单
- */
- private function deleteExistingMenus(): void
- {
- // 删除URS推广相关的所有菜单
- DB::table('admin_menu')->where('title', 'like', '%URS%')->delete();
- }
-
- /**
- * 创建菜单
- */
- private function createMenus(): void
- {
- // 获取下一个可用的order值
- $maxOrder = DB::table('admin_menu')->max('order') ?? 0;
-
- // 1. 创建一级菜单:URS推广管理
- $parentId = DB::table('admin_menu')->insertGetId([
- 'parent_id' => 0,
- 'order' => $maxOrder + 1,
- 'title' => 'URS推广管理',
- 'icon' => 'fa-users',
- 'uri' => '',
- 'extension' => '',
- 'show' => 1,
- 'created_at' => now(),
- 'updated_at' => now(),
- ]);
-
- $this->info("创建一级菜单:URS推广管理 (ID: {$parentId})");
-
- // 2. 创建二级菜单
- $menus = [
- [
- 'title' => 'URS用户绑定关系',
- 'icon' => 'fa-exchange',
- 'uri' => 'urs-promotion/user-mappings',
- 'permission' => '',
- ],
- [
- 'title' => 'URS推荐关系',
- 'icon' => 'fa-link',
- 'uri' => 'urs-promotion/user-referrals',
- 'permission' => '',
- ],
- [
- 'title' => 'URS达人等级',
- 'icon' => 'fa-star',
- 'uri' => 'urs-promotion/user-talents',
- 'permission' => '',
- ],
- [
- 'title' => 'URS收益记录',
- 'icon' => 'fa-money',
- 'uri' => 'urs-promotion/profits',
- 'permission' => '',
- ],
- [
- 'title' => 'URS等级配置',
- 'icon' => 'fa-cog',
- 'uri' => 'urs-promotion/talent-configs',
- 'permission' => '',
- ],
- ];
-
- foreach ($menus as $index => $menu) {
- $menuId = DB::table('admin_menu')->insertGetId([
- 'parent_id' => $parentId,
- 'order' => $maxOrder + 2 + $index,
- 'title' => $menu['title'],
- 'icon' => $menu['icon'],
- 'uri' => $menu['uri'],
- 'extension' => '',
- 'show' => 1,
- 'created_at' => now(),
- 'updated_at' => now(),
- ]);
-
- $this->info("创建二级菜单:{$menu['title']} (ID: {$menuId})");
- }
- }
- }
|