diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/PrivateController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/PrivateController.java index e14851e0..0a89d1ca 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/PrivateController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/PrivateController.java @@ -44,6 +44,7 @@ import cn.axzo.tyr.server.repository.entity.SaasRoleGroup; import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation; import cn.axzo.tyr.server.service.ProductFeatureRelationService; import cn.axzo.tyr.server.service.ProductPermissionCacheService; +import cn.axzo.tyr.server.service.RolePermissionCacheService; import cn.axzo.tyr.server.service.RoleService; import cn.axzo.tyr.server.service.SaasCommonDictService; import cn.axzo.tyr.server.service.SaasFeatureResourceService; @@ -142,6 +143,8 @@ public class PrivateController { private CacheRoleFeatureResourceJob cacheRoleFeatureResourceJob; @Autowired private SaasFeatureResourceService saasFeatureResourceService; + @Autowired + private RolePermissionCacheService rolePermissionCacheService; /** * 统一层级的roleGroup按照id升序,sort从1递增 @@ -699,6 +702,16 @@ public class PrivateController { return saasFeatureResourceService.listCache(request); } + @PostMapping("/api/private/workspaceProductCached/list") + public Object workspaceProductCached(@RequestBody WorkspaceProductService.ListWorkspaceProductPermissionCacheParam request) { + return workspaceProductService.listWorkspaceProductPermissionCached(request); + } + + @PostMapping("/api/private/rolePermissionCache/list") + public Object rolePermissionCache(@RequestBody RolePermissionCacheService.ListRolePermissionParam request) { + return rolePermissionCacheService.list(request); + } + @Data @Builder @NoArgsConstructor diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/TyrSaasAuthServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/TyrSaasAuthServiceImpl.java index 0a406194..005759b9 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/TyrSaasAuthServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/TyrSaasAuthServiceImpl.java @@ -2,6 +2,7 @@ package cn.axzo.tyr.server.service.impl; import cn.axzo.apollo.workspace.common.enums.TableIsDeleteEnum; import cn.axzo.basics.common.BeanMapper; +import cn.axzo.basics.common.util.StopWatchUtil; import cn.axzo.framework.domain.ServiceException; import cn.axzo.pokonyan.util.TraceSupplier; import cn.axzo.thrones.client.saas.ServicePkgClient; @@ -1502,10 +1503,21 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService { */ private IdentityAuthRes findIdentityAuthV2(IdentityAuthReq identityAuthReq) { + StopWatchUtil watch = StopWatchUtil.createStarted("redis:"); + watch.start("query workspaceProductPermission"); Map> workspaceProductPermissions = listWorkspaceProductPermission(identityAuthReq); + watch.stop(); + log.info("redis:workspaceProductPermission:", JSON.toJSONString(workspaceProductPermissions)); + watch.start("query userRole"); List saasRoleUsers = listRoleUserRelationsV2(identityAuthReq); + log.info("redis:saasRoleUsers:", JSON.toJSONString(saasRoleUsers)); + watch.stop(); + + watch.start("query rolePermission"); Map> rolePermissions = listRolePermission(identityAuthReq, saasRoleUsers); + log.info("redis:rolePermissions:", JSON.toJSONString(rolePermissions)); + watch.stop(); Map> workspaceRoles = saasRoleUsers.stream() .collect(Collectors.groupingBy(e -> e.getSaasRoleUser().buildOuWorkspaceKey(),