修改课题组管理员 和普通GA 看到列表的区别
parent
2b696855cc
commit
f49d8d81b1
|
|
@ -370,6 +370,10 @@ namespace IRaCIS.Application.Contracts
|
|||
public class HospitalGroupInfo
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
//从人的属性角度出发才有这个属性
|
||||
public bool? IsManager { get; set; }
|
||||
|
||||
public string Name { 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))
|
||||
|
||||
//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)
|
||||
&& t.IdentityUserHospitalGroupList.Any(t => _userInfo.HospitalGroupIdList.Contains(t.HospitalGroupId)))
|
||||
.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.HospitalGroupAdminIdList.Contains(t.HospitalGroupId)))
|
||||
.ProjectTo<UserListDTO>(_mapper.ConfigurationProvider);
|
||||
|
||||
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()
|
||||
{
|
||||
Id = t.HospitalGroupId,
|
||||
IsManager = t.IsManager,
|
||||
Name = t.HospitalGroup.Name,
|
||||
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.ContactPhone), t => t.ContactPhone.Contains(inQuery.ContactPhone))
|
||||
.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(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
|
||||
.ProjectTo<HospitalGroupView>(_mapper.ConfigurationProvider);
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ using System.Dynamic;
|
|||
using System.Threading.Channels;
|
||||
using IRaCIS.Core.Application.Helper.OtherTool;
|
||||
using IRaCIS.Core.Infrastructure.Extention;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
|
|
@ -216,8 +217,9 @@ namespace IRaCIS.Application.Services
|
|||
//过滤医院,切换会有问题
|
||||
.Where(t => t.HospitalId == hospitalInfo.Id)
|
||||
//GA 要过滤课题组
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.GA, t => _userInfo.HospitalGroupIdList.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.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 && _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))
|
||||
.ProjectTo<NewTrialView>(_mapper.ConfigurationProvider);
|
||||
|
||||
|
|
@ -823,7 +825,7 @@ namespace IRaCIS.Application.Services
|
|||
}
|
||||
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
|
||||
{
|
||||
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>
|
||||
public interface IUserInfo
|
||||
{
|
||||
List<Guid> HospitalGroupAdminIdList { get; }
|
||||
List<Guid> HospitalGroupIdList { get; }
|
||||
List<HospitalGroupInfo> HospitalGroupList { get; }
|
||||
Guid UserRoleId { get; }
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ namespace IRaCIS.Core.Domain.Share
|
|||
var hospitalGroupList = _accessor?.HttpContext?.User?.FindFirst(JwtIRaCISClaimType.HospitalGroupList);
|
||||
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>();
|
||||
}
|
||||
|
|
@ -62,6 +62,10 @@ namespace IRaCIS.Core.Domain.Share
|
|||
|
||||
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
|
||||
{
|
||||
get
|
||||
|
|
@ -319,6 +323,9 @@ namespace IRaCIS.Core.Domain.Share
|
|||
public class HospitalGroupInfo
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public bool IsManager { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public string Code { get; set; }
|
||||
|
|
|
|||
Loading…
Reference in New Issue