Prechádzať zdrojové kódy

fix:解决租户创建用户不显示岗位菜单问题

xuezizhuo 1 rok pred
rodič
commit
4a271f2815

+ 15 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse;
 
 import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.annotation.Anonymous;
+import com.ruoyi.system.domain.SysPost;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -110,8 +111,20 @@ public class SysUserController extends BaseController
         userService.checkUserDataScope(userId);
         AjaxResult ajax = AjaxResult.success();
         List<SysRole> roles = roleService.selectRoleAll();
-        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin() && r.getTenantId() == getTenantId()).collect(Collectors.toList()));
-        ajax.put("posts", postService.selectPostAll().stream().filter(p -> p.getTenantId() == getTenantId()).collect(Collectors.toList()));
+        roles.forEach(r -> {
+            if(r.getTenantId() == null){
+                r.setTenantId(0L);
+            }
+        });
+        List<SysPost> sysPosts = postService.selectPostAll();
+        sysPosts.forEach(s -> {
+            if (s.getTenantId() == null){
+                s.setTenantId(0L);
+            }
+        });
+
+        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin() && r.getTenantId().equals(getTenantId())).collect(Collectors.toList()));
+        ajax.put("posts", sysPosts.stream().filter(p -> p.getTenantId().equals(getTenantId())).collect(Collectors.toList()));
         if (StringUtils.isNotNull(userId))
         {
             SysUser sysUser = userService.selectUserById(userId);