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(); } } } }