Browse Source

按鈕權限修改

jichaobo 2 years ago
parent
commit
45cdb9306b

+ 2 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysMenuMapper.java

@@ -48,6 +48,8 @@ public interface SysMenuMapper extends CrudMapper<SysMenu>
      */
     public List<String> selectMenuPermsByUserId(Long userId);
 
+    public List<String> selectMenuPermsByUserIdOne(Integer tenantId);
+
     /**
      * 根据用户ID查询菜单
      *

+ 2 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysMenuService.java

@@ -41,6 +41,8 @@ public interface ISysMenuService extends CrudService<SysMenu>
      */
     public Set<String> selectMenuPermsByUserId(Long userId);
 
+    public Set<String> selectMenuPermsByUserIdOne(Integer tenantId);
+
     /**
      * 根据用户ID查询菜单树信息
      * 

+ 22 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysMenuServiceImpl.java

@@ -96,6 +96,28 @@ public class SysMenuServiceImpl extends AbstractCrudService<SysMenuMapper, SysMe
         return permsSet;
     }
 
+    /**
+     * 根据租戶ID查询权限
+     *
+     * @param tenantId 租戶ID
+     * @return 权限列表
+     */
+    @Override
+    public Set<String> selectMenuPermsByUserIdOne(Integer tenantId)
+    {
+        List<String> perms = menuMapper.selectMenuPermsByUserIdOne(tenantId);
+        Set<String> permsSet = new HashSet<>();
+        for (String perm : perms)
+        {
+            if (StringUtils.isNotEmpty(perm))
+            {
+                permsSet.addAll(Arrays.asList(perm.trim().split(",")));
+            }
+        }
+        return permsSet;
+    }
+
+
     /**
      * 根据用户ID查询菜单
      *

+ 25 - 2
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysPermissionServiceImpl.java

@@ -3,10 +3,14 @@ package com.usky.system.service.impl;
 import java.util.HashSet;
 import java.util.Set;
 
+import com.usky.common.core.util.ServletUtils;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.system.domain.SysUser;
 import com.usky.system.domain.SysUserVO;
 import com.usky.system.service.ISysMenuService;
 import com.usky.system.service.ISysPermissionService;
 import com.usky.system.service.ISysRoleService;
+import com.usky.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -20,6 +24,9 @@ public class SysPermissionServiceImpl implements ISysPermissionService
     @Autowired
     private ISysMenuService menuService;
 
+    @Autowired
+    private ISysUserService userService;
+
     /**
      * 获取角色数据权限
      * 
@@ -30,6 +37,7 @@ public class SysPermissionServiceImpl implements ISysPermissionService
     public Set<String> getRolePermission(Long userId)
     {
         Set<String> roles = new HashSet<String>();
+
         // 管理员拥有所有权限
         if (SysUserVO.isAdmin(userId))
         {
@@ -37,7 +45,13 @@ public class SysPermissionServiceImpl implements ISysPermissionService
         }
         else
         {
-            roles.addAll(roleService.selectRolePermissionByUserId(userId));
+            SysUser sysUser = userService.selectUserByIdOne(userId);
+            if ("01".equals(sysUser.getUserType())){
+                roles.add("admin");
+            }else {
+                roles.addAll(roleService.selectRolePermissionByUserId(userId));
+            }
+
         }
         return roles;
     }
@@ -59,8 +73,17 @@ public class SysPermissionServiceImpl implements ISysPermissionService
         }
         else
         {
-            perms.addAll(menuService.selectMenuPermsByUserId(userId));
+            SysUser sysUser = userService.selectUserByIdOne(userId);
+            if ("01".equals(sysUser.getUserType())){
+                perms.addAll(menuService.selectMenuPermsByUserIdOne(SecurityUtils.getTenantId()));
+            }else {
+                perms.addAll(menuService.selectMenuPermsByUserId(userId));
+            }
         }
+
+
+
+
         return perms;
     }
 }

+ 9 - 0
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -187,6 +187,15 @@
           and ur.user_id = #{userId}
     </select>
 
+    <select id="selectMenuPermsByUserIdOne" resultType="String">
+        select distinct m.perms
+        from sys_menu m
+                join sys_tenant_menu t on m.menu_id = t.menu_id
+        where m.status = '0'
+          and t.tenant_id = #{tenantId}
+    </select>
+
+
     <select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult">
         <include refid="selectMenuVo"/>
         where menu_id = #{menuId}