From aefcdf12d45dd69f5518426c1bd95bb74629b2e4 Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Mon, 5 Aug 2024 15:50:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=87=E6=A1=A3=20[?= =?UTF-8?q?=E5=B0=86=E6=9D=83=E9=99=90=E6=95=B0=E6=8D=AE=E6=94=BE=E5=9C=A8?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E9=87=8C]=20=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sa-token-doc/fun/jur-cache.md | 65 ++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/sa-token-doc/fun/jur-cache.md b/sa-token-doc/fun/jur-cache.md index b1c1d765..6f12ad23 100644 --- a/sa-token-doc/fun/jur-cache.md +++ b/sa-token-doc/fun/jur-cache.md @@ -11,34 +11,43 @@ @Component public class StpInterfaceImpl implements StpInterface { - // 返回一个账号所拥有的权限码集合 - @Override - public List getPermissionList(Object loginId, String loginType) { - - // 1. 声明权限码集合 - List permissionList = new ArrayList<>(); - - // 2. 遍历角色列表,查询拥有的权限码 - for (String roleId : getRoleList(loginId, loginType)) { - SaSession roleSession = SaSessionCustomUtil.getSessionById("role-" + roleId); - List list = roleSession.get("Permission_List", () -> { - return ...; // 从数据库查询这个角色所拥有的权限列表 - }); - permissionList.addAll(list); - } - - // 3. 返回权限码集合 - return permissionList; - } - - // 返回一个账号所拥有的角色标识集合 - @Override - public List getRoleList(Object loginId, String loginType) { - SaSession session = StpUtil.getSessionByLoginId(loginId); - return session.get("Role_List", () -> { - return ...; // 从数据库查询这个账号id拥有的角色列表 - }); - } + // 返回一个账号所拥有的权限码集合 + @Override + @SuppressWarnings("unchecked") + public List getPermissionList(Object loginId, String loginType) { + + // 1. 声明权限码集合 + List list = new ArrayList<>(); + + // 2. 遍历角色列表,查询拥有的权限码 + for (String roleId : getRoleList(loginId, loginType)) { + List permissionList = (List)SaManager.getSaTokenDao().getObject("satoken:role-find-permission:" + roleId); + if(permissionList == null) { + // 从数据库查询这个角色 id 所拥有的权限列表 + permissionList = ... + // 查好后,set 到缓存中 + SaManager.getSaTokenDao().setObject("satoken:role-find-permission:" + roleId, permissionList, 60 * 60 * 24 * 30); + } + list.addAll(permissionList); + } + + // 3. 返回权限码集合 + return list; + } + + // 返回一个账号所拥有的角色标识集合 + @Override + @SuppressWarnings("unchecked") + public List getRoleList(Object loginId, String loginType) { + List roleList = (List)SaManager.getSaTokenDao().getObject("satoken:loginId-find-role:" + loginId); + if(roleList == null) { + // 从数据库查询这个账号id拥有的角色列表, + roleList = ... + // 查好后,set 到缓存中 + SaManager.getSaTokenDao().setObject("satoken:loginId-find-role:" + loginId, roleList, 60 * 60 * 24 * 30); + } + return roleList; + } } ```