修改课题组管理员 和普通GA 看到列表的区别
parent
2b696855cc
commit
f49d8d81b1
|
|
@ -370,6 +370,10 @@ namespace IRaCIS.Application.Contracts
|
||||||
public class HospitalGroupInfo
|
public class HospitalGroupInfo
|
||||||
{
|
{
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
//从人的属性角度出发才有这个属性
|
||||||
|
public bool? IsManager { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
public string Code { get; set; }
|
public string Code { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -480,8 +480,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.OA, t => !t.UserRoleList.Any(t => t.UserTypeEnum == UserTypeEnum.Admin || t.UserTypeEnum == UserTypeEnum.SuperAdmin))
|
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.OA, t => !t.UserRoleList.Any(t => t.UserTypeEnum == UserTypeEnum.Admin || t.UserTypeEnum == UserTypeEnum.SuperAdmin))
|
||||||
|
|
||||||
//GA 只能看有该课题组的用户,并且不是admin oa
|
//GA 只能看有该课题组的用户,并且不是admin oa
|
||||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.GA, t => !t.UserRoleList.Any(t => t.UserTypeEnum == UserTypeEnum.Admin || t.UserTypeEnum == UserTypeEnum.SuperAdmin || t.UserTypeEnum == UserTypeEnum.OA)
|
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.GA && _userInfo.HospitalGroupAdminIdList.Any(), t => !t.UserRoleList.Any(t => t.UserTypeEnum == UserTypeEnum.Admin || t.UserTypeEnum == UserTypeEnum.SuperAdmin || t.UserTypeEnum == UserTypeEnum.OA)
|
||||||
&& t.IdentityUserHospitalGroupList.Any(t => _userInfo.HospitalGroupIdList.Contains(t.HospitalGroupId)))
|
&& t.IdentityUserHospitalGroupList.Any(t => _userInfo.HospitalGroupAdminIdList.Contains(t.HospitalGroupId)))
|
||||||
.ProjectTo<UserListDTO>(_mapper.ConfigurationProvider);
|
.ProjectTo<UserListDTO>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
return await userQueryable.ToPagedListAsync(inQuery);
|
return await userQueryable.ToPagedListAsync(inQuery);
|
||||||
|
|
@ -1315,6 +1315,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
HospitalGroupList = t.IdentityUser.IdentityUserHospitalGroupList.Where(t => t.IsDisabled == false).Select(t => new HospitalGroupInfo()
|
HospitalGroupList = t.IdentityUser.IdentityUserHospitalGroupList.Where(t => t.IsDisabled == false).Select(t => new HospitalGroupInfo()
|
||||||
{
|
{
|
||||||
Id = t.HospitalGroupId,
|
Id = t.HospitalGroupId,
|
||||||
|
IsManager = t.IsManager,
|
||||||
Name = t.HospitalGroup.Name,
|
Name = t.HospitalGroup.Name,
|
||||||
Code = t.HospitalGroup.Code
|
Code = t.HospitalGroup.Code
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ public class HospitalGroupService(IRepository<HospitalGroup> _hospitalGroupRepos
|
||||||
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.Affiliation), t => t.Affiliation.Contains(inQuery.Affiliation))
|
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.Affiliation), t => t.Affiliation.Contains(inQuery.Affiliation))
|
||||||
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ContactPhone), t => t.ContactPhone.Contains(inQuery.ContactPhone))
|
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ContactPhone), t => t.ContactPhone.Contains(inQuery.ContactPhone))
|
||||||
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ContactName), t => t.ContactName.Contains(inQuery.ContactName))
|
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ContactName), t => t.ContactName.Contains(inQuery.ContactName))
|
||||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.GA, t => _userInfo.HospitalGroupIdList.Contains(t.Id) && t.IdentityUserList.Where(t => t.IsManager).Any(t => t.HospitalGroupId == t.Id))
|
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.GA, t => _userInfo.HospitalGroupAdminIdList.Contains(t.Id))
|
||||||
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.CallingAE), t => t.CallingAE.Contains(inQuery.CallingAE))
|
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.CallingAE), t => t.CallingAE.Contains(inQuery.CallingAE))
|
||||||
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
|
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
|
||||||
.ProjectTo<HospitalGroupView>(_mapper.ConfigurationProvider);
|
.ProjectTo<HospitalGroupView>(_mapper.ConfigurationProvider);
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ using System.Dynamic;
|
||||||
using System.Threading.Channels;
|
using System.Threading.Channels;
|
||||||
using IRaCIS.Core.Application.Helper.OtherTool;
|
using IRaCIS.Core.Application.Helper.OtherTool;
|
||||||
using IRaCIS.Core.Infrastructure.Extention;
|
using IRaCIS.Core.Infrastructure.Extention;
|
||||||
|
using NPOI.SS.Formula.Functions;
|
||||||
|
|
||||||
|
|
||||||
namespace IRaCIS.Application.Services
|
namespace IRaCIS.Application.Services
|
||||||
|
|
@ -216,8 +217,9 @@ namespace IRaCIS.Application.Services
|
||||||
//过滤医院,切换会有问题
|
//过滤医院,切换会有问题
|
||||||
.Where(t => t.HospitalId == hospitalInfo.Id)
|
.Where(t => t.HospitalId == hospitalInfo.Id)
|
||||||
//GA 要过滤课题组
|
//GA 要过滤课题组
|
||||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.GA, t => _userInfo.HospitalGroupIdList.Contains(t.HospitalGroupId))
|
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.GA && _userInfo.HospitalGroupAdminIdList.Any(), t => _userInfo.HospitalGroupAdminIdList.Contains(t.HospitalGroupId))
|
||||||
.WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.Admin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.OA && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.GA
|
.WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.Admin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.OA
|
||||||
|
&& !(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.GA && _userInfo.HospitalGroupAdminIdList.Any())
|
||||||
, t => t.TrialUserRoleList.Any(t => t.UserId == _userInfo.UserRoleId) && t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId) && _userInfo.HospitalGroupIdList.Contains(t.HospitalGroupId))
|
, t => t.TrialUserRoleList.Any(t => t.UserId == _userInfo.UserRoleId) && t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId) && _userInfo.HospitalGroupIdList.Contains(t.HospitalGroupId))
|
||||||
.ProjectTo<NewTrialView>(_mapper.ConfigurationProvider);
|
.ProjectTo<NewTrialView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
|
|
@ -823,7 +825,7 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
item.CurrentUserHospitalGroupList = _userInfo.HospitalGroupList.Select(t => new HospitalGroupInfo() { Id = t.Id, Code = t.Code, Name = t.Name }).ToList();
|
item.CurrentUserHospitalGroupList = _userInfo.HospitalGroupList.Select(t => new HospitalGroupInfo() { Id = t.Id, Code = t.Code, Name = t.Name, IsManager = t.IsManager }).ToList();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -3511,7 +3513,7 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
item.CurrentUserHospitalGroupList = _userInfo.HospitalGroupList.Select(t => new HospitalGroupInfo() { Code = t.Code, Id = t.Id, Name = t.Name }).ToList();
|
item.CurrentUserHospitalGroupList = _userInfo.HospitalGroupList.Select(t => new HospitalGroupInfo() { Code = t.Code, Id = t.Id, Name = t.Name, IsManager = t.IsManager }).ToList();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IUserInfo
|
public interface IUserInfo
|
||||||
{
|
{
|
||||||
|
List<Guid> HospitalGroupAdminIdList { get; }
|
||||||
List<Guid> HospitalGroupIdList { get; }
|
List<Guid> HospitalGroupIdList { get; }
|
||||||
List<HospitalGroupInfo> HospitalGroupList { get; }
|
List<HospitalGroupInfo> HospitalGroupList { get; }
|
||||||
Guid UserRoleId { get; }
|
Guid UserRoleId { get; }
|
||||||
|
|
|
||||||
|
|
@ -47,14 +47,14 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<HospitalGroupInfo> HospitalGroupList
|
public List<HospitalGroupInfo> HospitalGroupList
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var hospitalGroupList = _accessor?.HttpContext?.User?.FindFirst(JwtIRaCISClaimType.HospitalGroupList);
|
var hospitalGroupList = _accessor?.HttpContext?.User?.FindFirst(JwtIRaCISClaimType.HospitalGroupList);
|
||||||
if (hospitalGroupList != null && !string.IsNullOrEmpty(hospitalGroupList.Value))
|
if (hospitalGroupList != null && !string.IsNullOrEmpty(hospitalGroupList.Value))
|
||||||
{
|
{
|
||||||
return (List<HospitalGroupInfo>) hospitalGroupList.Value.JsonStrToObject(typeof(List<HospitalGroupInfo>));
|
return (List<HospitalGroupInfo>)hospitalGroupList.Value.JsonStrToObject(typeof(List<HospitalGroupInfo>));
|
||||||
}
|
}
|
||||||
return new List<HospitalGroupInfo>();
|
return new List<HospitalGroupInfo>();
|
||||||
}
|
}
|
||||||
|
|
@ -62,6 +62,10 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
|
|
||||||
public List<Guid> HospitalGroupIdList => HospitalGroupList.Select(x => x.Id).ToList();
|
public List<Guid> HospitalGroupIdList => HospitalGroupList.Select(x => x.Id).ToList();
|
||||||
|
|
||||||
|
public List<Guid> HospitalGroupAdminIdList => HospitalGroupList.Where(t => t.IsManager).Select(x => x.Id).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Guid UserTypeId
|
public Guid UserTypeId
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
@ -319,6 +323,9 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
public class HospitalGroupInfo
|
public class HospitalGroupInfo
|
||||||
{
|
{
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
public bool IsManager { get; set; }
|
||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
public string Code { get; set; }
|
public string Code { get; set; }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue