/// <summary> /// 获取菜单、字段对应拥有者信息 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <SystemPrivilegeDetailOutput> GetSystemPrivilegeDetailOutputsByAccessAndValue( SystemPrivilegeDetailInput input) { var output = new SystemPrivilegeDetailOutput(); //获取角色、组、岗位数据 IList <SystemPrivilegeDetailListOutput> privilegeDetailDtos = (await _permissionUsernRepository.GetSystemPrivilegeDetailOutputsByAccessAndValue(input)).ToList().DistinctBy( p => new { p.Name, p.OrganizationId, p.PrivilegeMaster }).ToList(); var allOrgs = (await _organizationRepository.FindAllAsync()).ToList(); foreach (var dto in privilegeDetailDtos) { string description = string.Empty; var organization = allOrgs.FirstOrDefault(w => w.OrganizationId == dto.OrganizationId); if (organization != null && !organization.ParentIds.IsNullOrEmpty()) { foreach (var parent in organization.ParentIds.Split(',')) { //查找上级 var dicinfo = allOrgs.FirstOrDefault(w => w.OrganizationId.ToString() == parent); if (dicinfo != null) { description += dicinfo.Name + ">"; } } if (!description.IsNullOrEmpty()) { description = description.TrimEnd('>'); } } dto.Organization = description; } //角色 output.Role = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.角色).ToList(); //组 output.Group = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.组).ToList(); //岗位 output.Post = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.岗位).ToList(); //组织机构 output.Organization = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.组织机构).ToList(); //用户 output.User = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.人员).ToList(); return(output); }
/// <summary> /// 获取菜单、字段对应拥有者信息 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <SystemPrivilegeDetailOutput> GetSystemPrivilegeDetailOutputsByAccessAndValue( SystemPrivilegeDetailInput input) { var output = new SystemPrivilegeDetailOutput(); //获取角色、组、岗位数据 IList <SystemPrivilegeDetailListOutput> privilegeDetailDtos = (await _permissionUsernRepository.GetSystemPrivilegeDetailOutputsByAccessAndValue(input)).DistinctBy( p => new { p.Name, p.Organization, p.PrivilegeMaster }).ToList(); //角色 output.Role = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.角色).ToList(); //组 output.Group = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.组).ToList(); //岗位 output.Post = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.岗位).ToList(); //组织机构 output.Organization = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.组织机构).ToList(); //用户 output.User = privilegeDetailDtos.Where(w => w.PrivilegeMaster == EnumPrivilegeMaster.人员).ToList(); return(output); }