liujie
1 天以前 c983a0a398504697a777ffae48e59961b5ee2bd7
hugray-server/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -19,13 +19,11 @@
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysRole;
import com.ruoyi.system.domain.SysMenu;
import com.ruoyi.system.domain.vo.MetaVo;
import com.ruoyi.system.domain.vo.RouterVo;
import com.ruoyi.system.domain.vo.TreeSelect;
import com.ruoyi.system.mapper.SysMenuMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysRoleMenuMapper;
import com.ruoyi.system.service.ISysMenuService;
@@ -45,9 +43,6 @@
    @Autowired
    private SysMenuMapper menuMapper;
    @Autowired
    private SysRoleMapper roleMapper;
    @Autowired
    private SysRoleMenuMapper roleMenuMapper;
@@ -159,8 +154,13 @@
    @Override
    public List<Long> selectMenuListByRoleId(Long roleId)
    {
        SysRole role = roleMapper.selectRoleById(roleId);
        return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
        // 恒传 false:原样返回 sys_role_menu 里的全部 id,不再按角色的 menu_check_strictly
        // 把「本身是其他已授权菜单父节点」的 id 剔掉(剔除后得到的是叶子集)。
        // 本方法的唯一消费方是角色表单页的三级权限网格,它按「叶子为种子、祖先由后代派生」渲染,
        // 需要角色的**原始**授权集合:只有叶子的话,编辑者看不见的分支连 id 都拿不到,
        // 一旦保存(updateRole 是全量删后插)就会把那部分目录/页面静默清掉。
        // 顺带,menu_check_strictly 这一列也就不再被读取了。
        return menuMapper.selectMenuListByRoleId(roleId, false);
    }
    /**