public static String calculateLevel(String parentLevel, int parentId) { if (StringUtils.isBlank(parentLevel)) { return ROOT; } else { return StringUtils.join(parentLevel, SEPARATOR, parentId); } } 这个方法中的参数parentLevel 是怎么来的 然后是这个方法 private String getLevel(Integer deptId){ SysDept dept = sysDeptMapper.selectByPrimaryKey(deptId); if(dept == null){//parentId为0 return null; } return dept.getLevel(); } 此方法最后返回的是这个部门的level 再是最后组装的时候 dept.setLevel(LevelUtil.calculateLevel(this.getLevel(param.getParentId()),param.getParentId())); 以上这些操作的都是SysDept本身的level啊 并没有看到获取自身level的上一级level啊