column('role_id'); if (empty($userRoles)) { return []; } return self::where('role_id', 'in', $userRoles)->column('access_id'); } /** * 获取用户的所有角色 * @param int $userId 用户ID * @return array */ public static function getUserRoles($userId) { $roleIds = UserRole::where('shop_user_id', '=', $userId)->column('role_id'); if (empty($roleIds)) { return []; } return Role::where('role_id', 'in', $roleIds)->select(); } /** * 批量保存角色权限 * @param int $roleId 角色ID * @param array $accessIds 权限ID数组 * @return bool */ public static function saveRoleAccess($roleId, $accessIds) { // 先删除旧的权限关系 self::where('role_id', '=', $roleId)->delete(); // 批量插入新的权限关系 $data = []; $time = time(); foreach ($accessIds as $accessId) { $data[] = [ 'role_id' => $roleId, 'access_id' => $accessId, 'app_id' => self::$app_id, 'create_time' => $time, 'client_id' => 0 ]; } if (!empty($data)) { (new self())->saveAll($data); } return true; } }