logic = (new PermLogic()); } // 用户资源缓存key protected static function cacheKey(int $userId, string $systemCode): string { return "user_resources_{$userId}_{$systemCode}"; } /** * 获取用户所有资源(合并角色+直接分配),结果缓存 */ public function getUserResources(int $userId, string $systemCode) { $cacheKey = self::cacheKey($userId, $systemCode); $cached = Cache::get($cacheKey); if ($cached !== null) { return $cached; } // 调用 Logic 层获取资源 $resources = $this->logic->getUserResources($userId, $systemCode); // 缓存结果 Cache::set($cacheKey, $resources, 3600); return $resources; } /** * 构建目录/菜单树,节点包含权限与打开方式 */ public function getMenuTree(int $userId, string $systemCode): array { // 调用 Logic 层处理菜单构建 $resources = $this->getUserResources($userId, $systemCode); return $this->logic->buildTree($resources); } /** * 获取用户所有权限code */ public function getPermissionCodes(int $userId, string $systemCode): array { return $this->logic->getPermissionCodes($userId, $systemCode); } /** * 清除资源相关缓存 */ public function clearCache(int $userId, string $systemCode): void { Cache::delete(self::cacheKey($userId, $systemCode)); } }