linwe
2024-09-03 764d883b5ea3bdc06abbec548b6df0511e567978
src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java
@@ -26,6 +26,7 @@
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.constant.RoleConstant;
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.system.entity.Role;
@@ -72,12 +73,20 @@
   @Override
   public List<RoleVO> tree(String tenantId) {
      String userRole = AuthUtil.getUserRole();
      String roleId = AuthUtil.getUser().getRoleId();
      String excludeRole = null;
      if (!CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMIN) && !CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMINISTRATOR)) {
         excludeRole = RoleConstant.ADMIN;
      }
      return ForestNodeMerger.merge(baseMapper.tree(tenantId, excludeRole));
      List<RoleVO> merge = ForestNodeMerger.merge(baseMapper.tree(tenantId, excludeRole));
      List<RoleVO> copy = BeanUtil.copy(merge, RoleVO.class);
      if (!AuthUtil.isAdministrator() && !AuthUtil.isAdmin()) {
         List<RoleVO> collect = copy.stream().filter(item -> roleId.contains(item.getId().toString())).collect(Collectors.toList());
         return collect;
      }
      return merge;
   }
   @Override
   @Transactional(rollbackFor = Exception.class)
@@ -109,7 +118,7 @@
      // 新增配置
      roleMenuService.saveBatch(roleMenus);
      // 递归设置下属角色菜单集合
      recursionRoleMenu(roleIds, menuIds);
//      recursionRoleMenu(roleIds, menuIds);
      return true;
   }
@@ -247,4 +256,27 @@
      roleParam.setRoleId(AuthUtil.getUser().getRoleId());
      return baseMapper.getRoleList(roleParam);
   }
   /**
    * 查询对应的角色id
    * @param roleId
    * @param type 登录类型 2:pc 3:app
    * @return
    */
   @Override
   public List<String> getRoleIdStrByRoleIdAndType(String roleId,Integer type) {
      List<Integer> list = new ArrayList<>();
      if (type!=1){
         list.add(1);
         // pc
         if (type==2){
            list.add(2);
         }
         // app
         if (type==3){
            list.add(3);
         }
      }
      return baseMapper.getRoleIdStrByRoleIdAndType(roleId,list);
   }
}