/// <summary> /// 获取菜单、字段对应拥有者信息 /// </summary> /// <param name="input"></param> /// <returns></returns> public Task <IEnumerable <SystemPrivilegeDetailListOutput> > GetSystemPrivilegeDetailOutputsByAccessAndValue( SystemPrivilegeDetailInput input) { var sql = string.Format(@"SELECT PrivilegeMaster, CASE PrivilegeMaster WHEN {0} THEN --角色 (SELECT Name FROM dbo.System_Role WHERE RoleId=per.PrivilegeMasterValue) WHEN {1} THEN --组织机构 (SELECT Name FROM dbo.System_Organization WHERE OrganizationId=per.PrivilegeMasterValue) WHEN {2} THEN --组 (SELECT Name FROM dbo.System_Group WHERE GroupId=per.PrivilegeMasterValue) WHEN {3} THEN --岗位 (SELECT Name FROM dbo.System_Post WHERE PostId=per.PrivilegeMasterValue) WHEN {4} THEN --人员 (SELECT Name FROM dbo.System_UserInfo WHERE UserId=per.PrivilegeMasterValue) END Name,--名称 CASE PrivilegeMaster WHEN {0} THEN --角色 ( SELECT Name FROM dbo.System_Organization WHERE OrganizationId = (SELECT OrganizationId FROM dbo.System_Role WHERE RoleId=per.PrivilegeMasterValue) ) WHEN {1} THEN --组织机构 (SELECT Name FROM dbo.System_Organization WHERE OrganizationId=per.PrivilegeMasterValue) WHEN {2} THEN --组 ( SELECT Name FROM dbo.System_Organization WHERE OrganizationId = (SELECT OrganizationId FROM dbo.System_Group WHERE GroupId=per.PrivilegeMasterValue) ) WHEN {3} THEN --岗位 ( SELECT Name FROM dbo.System_Organization WHERE OrganizationId = (SELECT OrganizationId FROM dbo.System_Post WHERE PostId=per.PrivilegeMasterValue) ) WHEN {4} THEN --人员 ( SELECT Name FROM dbo.System_Organization WHERE OrganizationId = (SELECT PrivilegeMasterValue FROM System_PermissionUser u WHERE u.PrivilegeMaster={1} AND u.PrivilegeMasterUserId=per.PrivilegeMasterValue) ) END Organization --组织机构 FROM dbo.System_Permission per WHERE PrivilegeAccessValue=@privilegeAccessValue AND PrivilegeAccess=@privilegeAccess AND PrivilegeMaster IN ({0},{1},{2},{3},{4})" , (byte)EnumPrivilegeMaster.角色, (byte)EnumPrivilegeMaster.组织机构, (byte)EnumPrivilegeMaster.组, (byte)EnumPrivilegeMaster.岗位, (byte)EnumPrivilegeMaster.人员); return(SqlMapperUtil.SqlWithParams <SystemPrivilegeDetailListOutput>(sql, new { privilegeAccessValue = input.Id, privilegeAccess = (byte)input.Access })); }
/// <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); }
public async Task <JsonResult> GetSystemPrivilegeDetailOutputsByAccessAndValue(SystemPrivilegeDetailInput input) { return(Json(await _permissionUserLogic.GetSystemPrivilegeDetailOutputsByAccessAndValue(input))); }