private List <SysModuleTreeDto> GetModuleByParentSync(SysModuleTreeDto parentModule, ListResult <ISysModuleModel> resAll) { var lr = new List <SysModuleTreeDto>(); var resChildren = resAll.Results.FindAll(p => p.ParentNo == parentModule.ModuleNo); foreach (var childrenModule in resChildren) { var module = new SysModuleTreeDto(); module.ModuleNo = childrenModule.ModuleNo; module.ModuleName = childrenModule.ModuleName; module.ParentNo = childrenModule.ParentNo; module.Icon = childrenModule.Icon; module.AppNo = childrenModule.AppNo; module.Sort = childrenModule.Sort; module.IsDelete = childrenModule.IsDelete; var childrenModules = GetModuleByParentSync(module, resAll); if (childrenModules.Count > 0) { module.Children = childrenModules; } lr.Add(module); } return(lr); }
public async Task <ListResult <SysModuleTreeDto> > GetModuleTreeAsync(QueryData <SysModuleTreeParams> query) { var lr = new ListResult <SysModuleTreeDto>(); var dt = DateTime.Now; var queryAll = new QueryData <SysModuleQuery>() { Criteria = new SysModuleQuery() { IsDelete = false, AppNo = query.Criteria.AppNo } }; var resAll = await GetModuleAllAsync(queryAll); if (resAll.HasErr) { lr.SetInfo("获取父模块列表失败,请重试!", -201); } else { var resParent = resAll.Results.FindAll(p => p.ParentNo == string.Empty); if (!string.IsNullOrEmpty(query.Criteria.ModuleName)) { resParent = resParent.FindAll(p => p.ModuleName.Contains(query.Criteria.ModuleName)); } foreach (var parentModule in resParent) { var module = new SysModuleTreeDto(); module.ModuleNo = parentModule.ModuleNo; module.ModuleName = parentModule.ModuleName; module.ParentNo = parentModule.ParentNo; module.Icon = parentModule.Icon; module.AppNo = parentModule.AppNo; module.Sort = parentModule.Sort; module.IsDelete = parentModule.IsDelete; var childrenModules = GetModuleByParentSync(module, resAll); if (childrenModules.Count > 0) { module.Children = childrenModules; } lr.Results.Add(module); } lr.SetInfo("获取模块树成功!", 200); } lr.ExpandSeconds = (DateTime.Now - dt).TotalSeconds; return(lr); }