using SqlSugar;
using Wood.Data.Repository;
using Wood.Entity;
using Wood.Entity.SystemManage;
namespace Wood.Service.SystemManage.Manager
{
///
/// orgManager
///
public class OrgManager : ApiManager, ITransient
{
///
/// orgManager
///
///
public OrgManager(SqlSugarRepository repository) : base(repository)
{
}
///
/// 获取所有的子id 包括自己
///
/// 父级id
///
public async Task> GetChildrenIds(long orgId)
{
return (await AsQueryable().ToChildListAsync(it => it.ParentId, orgId)).Select(it => it.Id).ToList();
}
///
/// 根据名称获取机构部门
///
/// 路径 以/分割
///
public async Task> GetOrgsByPath(string path)
{
string[] paths = path.Split('/');
List? es =await AsRepository().GetListAsync(it => paths.Contains( it.OrgName));
if (paths.Length == 1)
return es;
else
{
IEnumerable parent = es.Where(it => it.OrgName == paths[0]);
for (int i = 1; i < paths.Length; i++)
parent= es.Where(it=>it.OrgName == paths[i]&&parent.Any(p=>p.Id==it.ParentId));
return parent.ToList();
}
}
}
}