gaoxiong 11 місяців тому
батько
коміт
2440ff4544

+ 9 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson2.JSONObject;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.edu.dto.SysLearningMaterialsPageDto;
@@ -39,6 +40,7 @@ import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
 import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.domain.SysRole;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -111,9 +113,13 @@ public class PanelServiceImpl implements PanelService {
                 ErrorMsgConstants.QUERY_USER_ROLE_ERROR);*/
         List<Long> roleIds = null;
         if (ObjectUtil.equal(SecurityUtils.getUserId(), userId)) {
-            Set<String> roles = SecurityUtils.getLoginUser().getRoles();
-            //获取roles id 集合
-            roleIds = roles.stream().map(Long::valueOf).collect(Collectors.toList());
+            String cacheKey= CacheConstants.USER_CACHE_ROLE_OBJECT_KEY+userId.toString();
+            if(RedisUtils.hasKey(cacheKey))
+            {
+                List<SysRole> roles =  RedisUtils.getCacheObject(cacheKey);
+                //roles 获取id集合
+                roleIds = roles.stream().map(SysRole::getId).collect(Collectors.toList());
+            }
         } else {
             roleIds = RemoteCallHandlerExecutor.executeRemoteCall(
                     () -> roleService.getUserRoleId(userId, SecurityConstants.FROM_SOURCE),