跳转至

组织管理接口

功能描述

组织结构接口用于增删改查组织结构信息,整个组织结构的索引建立在内存索引基础上,响应速度快。

通过以下方式调用组织管理的接口:

H3.Organization.User u
    = this.Engine.Organization.GetUnit("userId") as H3.Organization.User;

接口列表

获取公司信息(属性)

功能描述

获取当前公司的基础信息。

接口定义

Company Company { get; }

参数

参数名称 是否必填 类型 描述
- - -

返回值

类型 描述
Company 公司信息对象

示例

H3.Organization.Company company = this.Engine.Organization.Company;

按 ID 批量获取组织

功能描述

通过组织 ID 数组,批量获取对应的组织对象。

接口定义

Unit[] GetUnits(string[] ids);

参数

参数名称 是否必填 类型 描述
ids string[] 组织的 ID 数组

返回值

类型 描述
H3.Organization.Unit[] 批量获取的组织对象数组

示例

// ID 可以是用户、部门、角色
H3.Organization.Unit[] units = this.Engine.Organization.GetUnits(new string[] {"Id1","Id2"});

按 ID 批量获取组织名称

功能描述

通过组织 ID 数组批量获取组织名称,无需锁定组织结构服务,返回 ID 与名称的映射关系,且去重。

接口定义

Dictionary<string, string> GetUnitNameTable(string[] ids, NameType type);

参数

参数名称 是否必填 类型 描述
ids string[] 组织的 ID 数组(若为 null,返回 null
type NameType 名称的类型(如全称、简称等)

返回值

类型 描述
Dictionary<string, string> 键为组织 ID、值为对应名称的映射字典(无重复记录)

示例

Dictionary<string, string> unitNameTable = this.Engine.Organization.GetUnitNameTable(
    new string[] {"Id1","Id2"},
    H3.Organization.NameType.Name);

按 ID 获取组织名称

功能描述

根据组织 ID 和名称类型,获取组织的实际名称(如人员姓名、部门名称等)。

接口定义

string GetName(string id, NameType type);

参数

极名称 是否必填 类型 描述
id string 组织的 ID
type NameType 组织名称的类型

返回值

类型 描述
string 组织的实际名称(若组织不存在,返回 null

示例

string name = this.Engine.Organization.GetName("id", H3.Organization.NameType.Path);

获取组织层级

功能描述

根据组织 ID,获取该组织在组织结构中的层级(如公司为 0 级,部门为 1 级等)。

接口定义

int GetUnitLevel(string id);

参数

参数名称 是否必填 类型 描述
id string 组织的 ID

返回值

类型 描述
int 组织的层级

示例

int unitLevel = this.Engine.Organization.GetUnitLevel("id");

按组织 ID 和经理类型获取经理

功能描述

获取用户、组、OU、公司的经理(不支持获取群的经理),需指定经理类型。

接口定义

string GetManager(string id, ManagerType type);

参数

参数名称 是否必填 类型 描述
id string 组织的 ID(用户、组、OU、公司)
type H3.Organization.ManagerType 经理类型枚举(如直接经理、间接经理等)

返回值

类型 描述
string 对应组织的经理 ID

示例

string manager = this.Engine.Organization.GetManager("id", H3.Organization.ManagerType.DirectManager);

// 如果直接经理不存在,则获得上级 OU 的经理
string manager = this.Engine.Organization.GetManager("id", H3.Organization.ManagerType.Manager);

按组织 ID 数组获取经理

功能描述

批量获取用户、组、OU、公司的经理。

接口定义

string[] GetManagers(string[] units);

参数

参数名称 是否必填 类型 描述
units string[] 组织 ID 数组(用户、组、OU、公司、群)

返回值

类型 描述
string[] 对应组织的经理 ID 数组(无重复)

示例

string[] managers = this.Engine.Organization.GetManagers(new string[] {"id","id2"});

按组织 ID 和层级获取跨级经理

功能描述

根据组织 ID 数组和指定层级,获取对应组织的跨级经理(层级 0 为公司,1 为公司直接下属 OU,依次类推)。

接口定义

string[] GetManagersByLevel(string[] units, int level);

参数

参数名称 是否必填 类型 描述
units string[] 组织 ID 数组(群会展开子对象)
level int 层级(0 表示公司,1 表示公司直接下属 OU 等)

返回值

类型 描述
string[] 跨级经理 ID 数组(无重复)

示例

string[] managers = this.Engine.Organization.GetManagersByLevel(new string[] {"id","id2"}, 1);

按组织和角色获取对应经理

功能描述

获取指定组织中,具有特定角色的最近标签成员(即对应经理)。

接口定义

string[] GetManagersByRole(string[] units, string roleId);

参数

参数名称 是否必填 类型 描述
units string[] 组织 ID 数组
roleId string 角色 ID

返回值

类型 描述
string[] 符合条件的经理 ID 数组(若对象不存在,返回 null

示例

string[] managers = this.Eng.Organization.GetManagersByRole(new string[] {"id","id2"}, "角色Id");

获取父节点 ID

功能描述

根据组织 ID,获取其父组织的 ID。

接口定义

string GetParent(string id);

参数

参数名称 是否必填 类型 描述
id string 组织的 ID

返回值

类型 描述
string 父组织的 ID

示例

string parentId = this.Engine.Organization.GetParent("id");

获取父对象

功能描述

根据组织 ID,获取其父组织对象。

接口定义

Unit GetParentUnit(string id);

参数

参数名称 是否必填 类型 描述
id string 组织的 ID

返回值

类型 描述
H3.Organization.Unit 父组织对象

示例

H3.Organization.Unit parentUnit = this.Engine.Organization.GetParentUnit("id");

按层级获取父对象

功能描述

根据子对象 ID 和指定层级,获取对应层级的父对象。0 表示公司,1 表示公司直接下属 OU,依次类推。

接口定义

Unit GetParentUnitByLevel(string id, int level);

参数

参数名称 是否必填 类型 描述
id string 子对象 ID
level int 层级

返回值

类型 描述
Unit 对应层级的父对象

示例

H3.Organization.Unit parentUnit = this.Engine.Organization.GetParentUnitByLevel("id", 1);

批量按层级获取父对象

功能描述

根据多个子对象 ID 和指定层级,批量获取对应层级的父对象,返回子 ID 与父对象的映射。

接口定义

Dictionary<string, Unit> GetParentUnitsByLevel(string[] ids, int level);

参数

参数名称 是否必填 类型 描述
ids string[] 子对象 ID 数组
level int 层级

返回值

类型 描述
Dictionary<string, H3.Organization.Unit> 键为子对象 ID、值为对应层级父对象的映射字典

示例

Dictionary<string, H3.Organization.Unit> unitTable = this.Engine.Organization.GetParentUnitsByLevel(new string[] {"id","id2"}, 1);

获取父/祖先组织 ID

功能描述

根据组织 ID,获取其指定类型的父/祖先组织 ID(支持递归查询)。

接口定义

string[] GetParents(string id, UnitType parentUnitType, bool recursive, State state);

参数

参数名称 是否必填 类型 描述
id string 子 Unit 的 ID
parentUnitType UnitType 要获取的父/祖先的类型
recursive bool 是否递归查询
state State 状态条件(Unspecified 表示所有状态)

返回值

类型 描述
string[] 父/祖先组织 ID 数组

示例

string[] parentIds = this.Engine.Organization.GetParents("id", H3.Organization.UnitType.OrganizationUnit, false, H3.Organization.State.Active);

获取父组织成员(递归)

功能描述

获取指定父组织下的所有成员(用户),若父组织为用户则返回自身,若为组或组织单元则递归返回所有用户成员。

接口定义

string[] GetMembers(string[] parents, State state);

参数

参数名称 是否必填 类型 描述
parents string[] 父组织的 ID 数组
state State 成员状态

返回值

类型 描述
string[] 隶属于父组织的成员 ID 数组

示例

string[] members = this.Engine.Organization.GetMembers(
    new string[] {"id","id2"}, 
    H3.Organization.State.Unspecified);

获取父组织成员(可控制递归)

功能描述

获取指定父组织下的成员(用户),可控制是否递归查询。

接口定义

string[] GetMembers(string[] parents, State state, bool recursive);

参数

参数名称 是否必填 类型 描述
parents string[] 父组织的 ID 数组
state H3.Organization.State 成员状态枚举
recursive bool 是否递归查询

返回值

类型 描述
string[] 隶属于父组织的成员 ID 数组

示例

string[] members = this.Engine.Organization.GetMembers(new string[] {"id","id2"}, 
                                                        H3.Organization.State.Unspecified, 
                                                        false);

获取父组织中的用户成员

功能描述

获取指定父组织下的所有用户成员(自动根据父组织类型处理递归逻辑)。

接口定义

User[] GetMemberUsers(string[] units);

参数

参数名称 是否必填 类型 描述
units string[] 父组织的 ID 数组

返回值

类型 描述
H3.Organization.User[] 父组织中的所有用户子成员对象数组

示例

H3.Organization.User[] users = this.Engine.Organization.GetMemberUsers(new string[] {"id","id2"});

获取子组织 ID

功能描述

根据组织 ID,获取指定类型的子组织 ID(支持递归查询)。

接口定义

string[] GetChildren(string id, UnitType childUnitType, bool recursive, State state);

参数

参数名称 是否必填 类型 描述
id string 祖先的 ID
childUnitType UnitType 过滤条件,仅返回该类型的子组织
recursive bool 是否递归查询
state State 状态条件(Unspecified 表示所有状态)

返回值

类型 描述
string[] 符合条件的子组织 ID 数组

示例

H3.Organization.User[] users = this.Engine.Organization.GetMemberUsers(new string[] {"id","id2"});

获取子组织对象

功能描述

根据多个祖先组织 ID,批量获取指定类型的子组织对象(支持递归查询)。

接口定义

Unit[] GetChildUnits(string[] ids, UnitType childUnitType, bool recursive, State state);

参数

参数名称 是否必填 类型 描述
ids string[] 祖先的 ID 数组
childUnitType H3.Organization.UnitType 过滤条件,仅返回该类型的子组织
recursive bool 是否递归查询
state H3.Organization.State 状态条件(Unspecified 表示所有状态)

返回值

类型 描述
H3.Organization.Unit[] 符合条件的子组织对象数组

示例

H3.Organization.Unit[] units = this.Engine.Organization.GetChildUnits(new string[] {"id","id2"}, 
                                                                      H3.Organization.UnitType.User, 
                                                                      true,
                                                                      H3.Organization.State.Active);

按层级获取子组织 ID

功能描述

根据父对象 ID 和指定层级,获取对应层级的子组织 ID。

接口定义

string[] GetChildrenByLevel(string id, UnitType childUnitType, int level, State state);

参数

参数名称 是否必填 类型 描述
id string 父对象 ID
childUnitType H3.Organization.UnitType 子对象类型
level int 层级