where('username', $this->username) ->value('id'); $role_id = DB::table('admin_roles')->where('name', $this->roleName) ->value('id'); if (!$user_id) { DB::table('admin_users')->insert( [ 'username' => $this->username, 'name' => $this->username, 'email' => fake()->unique()->safeEmail(), 'password' => Hash::make($this->password), // password 'remember_token' => Str::random(10), 'packing_id' => 1, 'created_at' => date("Y-m-d H:i:s", time()) ] ); $user_id = DB::table('admin_users')->where( 'username', $this->username ) ->value('id'); } if (!$role_id) { DB::table('admin_roles')->insert( [ 'name' => $this->roleName, 'remark' => "Super Administrator", 'status' => 1, // password 'level' => 1, 'created_at' => date("Y-m-d H:i:s", time()), 'updated_at' => date("Y-m-d H:i:s", time()) ] ); $role_id = DB::table('admin_roles')->where('name', $this->roleName) ->value('id'); } $this->superAdminSettingRole($user_id, $role_id); $this->settingRoleMenu($role_id); } private function superAdminSettingRole($user_id, $role_id) { // 超级管理员自动获取所有权限 $where = [ 'role_id' => $role_id, 'user_id' => $user_id ]; if (!DB::table('admin_role_users')->where($where)->exists()) { DB::table('admin_role_users')->insert([ 'role_id' => $role_id, 'user_id' => $user_id, 'created_at' => date("Y-m-d H:i:s", time()), 'updated_at' => date("Y-m-d H:i:s", time()) ]); } } private function settingRoleMenu($role_id) { $menu_ids = DB::table('admin_menu')->where('status', 1)->pluck('id'); $values = []; foreach ($menu_ids as $menu_id) { $values[] = [ 'role_id' => $role_id, 'menu_id' => $menu_id, 'created_at' => date("Y-m-d H:i:s", time()), 'updated_at' => date("Y-m-d H:i:s", time()) ]; } $exists = DB::table('admin_role_menu')->where('role_id', $role_id) ->whereIn('menu_id', $menu_ids)->exists(); if ($values && !$exists) { DB::table('admin_role_menu')->insert($values); } } }