类 OrganizationServiceImpl
java.lang.Object
io.github.lishangbu.orange.rbac.service.impl.OrganizationServiceImpl
- 所有已实现的接口:
- OrganizationService
组织信息服务实现类
实现组织的分页、条件查询、增删改查等核心业务逻辑
- 从以下版本开始:
- 2025/10/16
- 作者:
- lishangbu
- 
构造器概要构造器
- 
方法概要修饰符和类型方法说明根据ID查询组织详情@NonNull List<OrganizationTreeNode> getOrganizationWithDescendants(@NonNull Long id) 查询指定组织及其所有下级组织(含自身),并构建树结构com.baomidou.mybatisplus.core.metadata.IPage<OrganizationTreeNode> getPageByOrganization(com.baomidou.mybatisplus.core.metadata.IPage<Organization> page, Organization condition) 将组织分页查询并转换为树节点形式的分页结果@NonNull List<OrganizationTreeNode> listAllChildrenByParentId(@NonNull Long parentId) 递归查询所有子节点(不包含当前节点)void根据ID删除组织,包括其所有下级组织void根据祖先ID列表删除组织saveOrganization(Organization organization) 新增组织信息,自动维护层级深度和顶级组织IDvoidupdateOrganization(Organization organization) 根据ID更新组织信息
- 
构造器详细资料- 
OrganizationServiceImplpublic OrganizationServiceImpl()
 
- 
- 
方法详细资料- 
saveOrganization@Transactional(rollbackFor=Exception.class) public Organization saveOrganization(Organization organization) 新增组织信息,自动维护层级深度和顶级组织ID根据 parentId 判断组织层级和 rootId: - 顶级组织(parentId=0):depth=1,插入后 rootId=自身 id
- 非顶级组织:depth=父组织.depth+1,rootId=父组织.rootId
 - 指定者:
- saveOrganization在接口中- OrganizationService
- 参数:
- organization- 组织实体
- 返回:
- 新增后的组织实体
 
- 
updateOrganization@Transactional(rollbackFor=Exception.class) public void updateOrganization(Organization organization) 根据ID更新组织信息- 指定者:
- updateOrganization在接口中- OrganizationService
- 参数:
- organization- 组织实体
 
- 
removeOrganizationByAncestorId根据ID删除组织,包括其所有下级组织- 指定者:
- removeOrganizationByAncestorId在接口中- OrganizationService
- 参数:
- id- 组织ID
 
- 
removeOrganizationByAncestorIds@Transactional(rollbackFor=Exception.class) public void removeOrganizationByAncestorIds(List<Long> ids) 根据祖先ID列表删除组织- 指定者:
- removeOrganizationByAncestorIds在接口中- OrganizationService
- 参数:
- ids- 祖先组织ID列表
 
- 
getOrganizationById根据ID查询组织详情- 指定者:
- getOrganizationById在接口中- OrganizationService
- 参数:
- id- 组织ID
- 返回:
- 组织实体
 
- 
getOrganizationWithDescendants查询指定组织及其所有下级组织(含自身),并构建树结构业务逻辑: - 根据组织ID查询组织实体,若不存在则返回空列表
- 递归查询该组织及所有子孙节点,按 sortOrder、id 升序排列
- 将所有结果转换为树节点,使用 TreeUtils构建组织树,根父ID为当前组织的 parentId
 - 指定者:
- getOrganizationWithDescendants在接口中- OrganizationService
- 参数:
- id- 组织ID,不能为空
- 返回:
- 组织树结构(含自身及所有下级),永不为 null
 
- 
listAllChildrenByParentId递归查询所有子节点(不包含当前节点)根据指定父组织ID,返回其所有下级组织(多级),不包含父节点本身 结果按 sortOrder、id 升序排列 - 指定者:
- listAllChildrenByParentId在接口中- OrganizationService
- 参数:
- parentId- 父组织ID,不能为空
- 返回:
- 所有子孙节点的组织列表
 
- 
getPageByOrganizationpublic com.baomidou.mybatisplus.core.metadata.IPage<OrganizationTreeNode> getPageByOrganization(com.baomidou.mybatisplus.core.metadata.IPage<Organization> page, Organization condition) 将组织分页查询并转换为树节点形式的分页结果根据传入的分页参数和动态查询条件进行组织数据的分页查询,支持按 id、name、code、enabled、parentId 等字段进行过滤 查询结果会被映射为 OrganizationTreeNode,便于前端直接构建组织树或展示层级信息- 若 condition为 null,则视为无过滤条件,查询所有组织
- 分页参数 page用于指定页码和每页数量,不能为空
- 返回结果按 sort_order、id升序排列,分页信息保留在返回的IPage
 - 指定者:
- getPageByOrganization在接口中- OrganizationService
- 参数:
- page- 分页参数,包含当前页码和每页大小,不能为空
- condition- 动态查询条件,允许为 null,常用字段:id、name、code、enabled、parentId
- 返回:
- 包含 OrganizationTreeNode的分页数据,永远不返回 null
 
- 若 
 
-