diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index d9f65053f..c1877cf3a 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -12834,7 +12834,7 @@ 项目外部人员 录入流程相关 - + 项目外部人员 录入流程相关 diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs index fb45cfacf..bc831eada 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs @@ -30,7 +30,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer; public class UserSiteSurveySubmitedEventConsumer( IRepository _trialRepository, IRepository _trialSiteRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _trialSiteSurveyRepository, IRepository _emailNoticeConfigrepository, IOptionsMonitor systemEmailConfig @@ -47,7 +47,7 @@ public class UserSiteSurveySubmitedEventConsumer( var trialId = siteSurveyInfo.TrialId; - var trialUserList = await _trialUserRepository.Where(t => t.TrialId == siteSurveyInfo.TrialId) + var trialUserList = await _trialUserRoleRepository.Where(t => t.TrialId == siteSurveyInfo.TrialId) .Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM || t.UserRole.UserTypeEnum == UserTypeEnum.ProjectManager || t.UserRole.UserTypeEnum == UserTypeEnum.APM) .Select(t => new { t.UserRole.FullName, t.UserRole.EMail, t.UserRole.UserTypeEnum }).ToListAsync(); @@ -125,7 +125,7 @@ public class UserSiteSurveySubmitedEventConsumer( /// public class SiteSurveySPMSubmitedEventConsumer( IRepository _trialRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _trialSiteRepository, IRepository _trialSiteSurveyRepository, IRepository _emailNoticeConfigrepository, @@ -145,7 +145,7 @@ public class SiteSurveySPMSubmitedEventConsumer( var messageToSend = new MimeMessage(); - var trialUserList = _trialUserRepository.Where(t => t.TrialId == trialId) + var trialUserList = _trialUserRoleRepository.Where(t => t.TrialId == trialId) .Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM || t.UserRole.UserTypeEnum == UserTypeEnum.ProjectManager || t.UserRole.UserTypeEnum == UserTypeEnum.APM) .Select(t => new { t.UserRole.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum }).ToList(); @@ -200,7 +200,7 @@ public class SiteSurveySPMSubmitedEventConsumer( /// 调研表驳回发送邮件 之前已有,需要迁移过来 /// public class SiteSurverRejectedEventConsumer( - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _trialRepository, IRepository _trialSiteRepository, IRepository _trialSiteSurveyRepository, @@ -233,7 +233,7 @@ public class SiteSurverRejectedEventConsumer( //name = user.FullName; - var sPMOrCPMList = _trialUserRepository.Where(t => t.TrialId == trialId) + var sPMOrCPMList = _trialUserRoleRepository.Where(t => t.TrialId == trialId) .Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM) .Select(t => new { t.UserRole.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum }).ToList(); diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs index a4146fd0b..fbcbecf48 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs @@ -26,7 +26,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring IRepository _trialReadingCriterionRepository, IRepository _visitTaskRepository, IRepository _dictionaryRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _emailNoticeConfigrepository, IOptionsMonitor systemEmailConfig) : IConsumer { @@ -52,7 +52,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring Expression> comonTaskFilter = t => t.TrialId == trialId && t.TaskState == TaskState.Effect && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskAllocationState == TaskAllocationState.Allocated; - var trialUserList = _trialUserRepository.Where(t => t.TrialId == trialId).Select(t => new + var trialUserList = _trialUserRoleRepository.Where(t => t.TrialId == trialId).Select(t => new { t.UserId, t.UserRole.FullName, diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/OldRecurringEmailHelper.cs b/IRaCIS.Core.Application/MassTransit/Recurring/OldRecurringEmailHelper.cs index 37790520a..14e57f9e1 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/OldRecurringEmailHelper.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/OldRecurringEmailHelper.cs @@ -22,7 +22,7 @@ public static class OldRecurringEmailHelper public static async Task SendTrialEmailAsync( IRepository _trialEmailNoticeConfigRepository, IRepository _trialRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _visitTaskRepository, IRepository _trialSiteUserRoleRepository, @@ -59,7 +59,7 @@ public static class OldRecurringEmailHelper var allUserTypeEnumList = toUserTypeEnumList.Union(copyUserTypeEnumList).Distinct().ToList(); - var allUserList = await _trialUserRepository.Where(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.UserRole.UserTypeEnum)).Select(t => new { t.UserId, t.UserRole.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum }).ToListAsync(); + var allUserList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.UserRole.UserTypeEnum)).Select(t => new { t.UserId, t.UserRole.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum }).ToListAsync(); var toUserList = allUserList.Where(t => toUserTypeEnumList.Contains(t.UserTypeEnum)) diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs index 06bea6a25..84ee27d3a 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs @@ -23,7 +23,7 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer; public class QCImageQuestionRecurringEventConsumer(IRepository _trialRepository, IRepository _trialEmailNoticeConfigRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _visitTaskRepository, IRepository _trialSiteUserRoleRepository, IOptionsMonitor _SystemEmailSendConfig) : IConsumer @@ -37,7 +37,7 @@ public class QCImageQuestionRecurringEventConsumer(IRepository _trialRepo var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstNotNullAsync(); //找到 该项目的CRC 用户Id - var userList = await _trialUserRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Select(t => new { t.UserId, t.UserRole.FullName }).ToListAsync(); + var userList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Select(t => new { t.UserId, t.UserRole.FullName }).ToListAsync(); //判断是否任务可以领取 ,可以的话 发送邮件 @@ -73,7 +73,7 @@ public class QCImageQuestionRecurringEventConsumer(IRepository _trialRepo await OldRecurringEmailHelper.SendTrialEmailAsync( _trialEmailNoticeConfigRepository, _trialRepository, - _trialUserRepository, + _trialUserRoleRepository, _visitTaskRepository, _trialSiteUserRoleRepository, trialId, EmailBusinessScenario.QCToCRCImageQuestion, topicAndHtmlFunc); @@ -88,7 +88,7 @@ public class QCImageQuestionRecurringEventConsumer(IRepository _trialRepo /// public class CRCImageQuestionRecurringEventConsumer(IRepository _trialRepository, IRepository _trialEmailNoticeConfigRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _visitTaskRepository, IRepository _trialSiteUserRoleRepository, IOptionsMonitor _SystemEmailSendConfig) : IConsumer @@ -101,7 +101,7 @@ public class CRCImageQuestionRecurringEventConsumer(IRepository _trialRep var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr, t.DeclarationTypeEnumList }).FirstNotNullAsync(); //找到 该项目的IQC 用户Id - var userList = await _trialUserRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.UserRole.FullName }).ToListAsync(); + var userList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.UserRole.FullName }).ToListAsync(); //判断是否任务可以领取 ,可以的话 发送邮件 @@ -141,7 +141,7 @@ public class CRCImageQuestionRecurringEventConsumer(IRepository _trialRep await OldRecurringEmailHelper.SendTrialEmailAsync(_trialEmailNoticeConfigRepository, _trialRepository, - _trialUserRepository, + _trialUserRoleRepository, _visitTaskRepository, _trialSiteUserRoleRepository, trialId, EmailBusinessScenario.CRCToQCQuestion, topicAndHtmlFunc); @@ -155,7 +155,7 @@ public class CRCImageQuestionRecurringEventConsumer(IRepository _trialRep /// public class ImageQCRecurringEventConsumer(IRepository _trialRepository, IRepository _trialEmailNoticeConfigRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _visitTaskRepository, IRepository _trialSiteUserRoleRepository, IOptionsMonitor _SystemEmailSendConfig) : IConsumer @@ -169,7 +169,7 @@ public class ImageQCRecurringEventConsumer(IRepository _trialRepository, var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstNotNullAsync(); //找到 该项目的IQC 用户Id - var userList = await _trialUserRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.UserRole.FullName }).ToListAsync(); + var userList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.UserRole.FullName }).ToListAsync(); //判断是否任务可以领取 ,可以的话 发送邮件 var userIdList = userList.Select(t => t.UserId).ToList(); @@ -209,7 +209,7 @@ public class ImageQCRecurringEventConsumer(IRepository _trialRepository, await OldRecurringEmailHelper.SendTrialEmailAsync( _trialEmailNoticeConfigRepository, _trialRepository, - _trialUserRepository, + _trialUserRoleRepository, _visitTaskRepository, _trialSiteUserRoleRepository, trialId, EmailBusinessScenario.QCTask, topicAndHtmlFunc); diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewRuleService.cs index 80627fcfa..bee0e2e7e 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewRuleService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewRuleService.cs @@ -16,7 +16,7 @@ namespace IRaCIS.Core.Application.Service /// [ApiExplorerSettings(GroupName = "Trial")] public class TaskMedicalReviewRuleService(IRepository _taskMedicalReviewRuleRepository, - IRepository _trialUserRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ITaskMedicalReviewRuleService + IRepository _trialUserRoleRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ITaskMedicalReviewRuleService { @@ -29,7 +29,7 @@ namespace IRaCIS.Core.Application.Service var taskTaskMedicalReviewRuleQueryable = _taskMedicalReviewRuleRepository.Where(t => t.TrialId == inQuery.TrialId) .ProjectTo(_mapper.ConfigurationProvider); - var isHaveMIM = await _trialUserRepository.AnyAsync(t => t.UserRole.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId == inQuery.TrialId); + var isHaveMIM = await _trialUserRoleRepository.AnyAsync(t => t.UserRole.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId == inQuery.TrialId); return (await taskTaskMedicalReviewRuleQueryable.ToListAsync(), new { IsHaveMIM = isHaveMIM }); } diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs index 3aa99409f..2a8acf366 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs @@ -18,7 +18,7 @@ namespace IRaCIS.Core.Application.Service /// [ApiExplorerSettings(GroupName = "Trial")] public class TaskMedicalReviewService(IRepository _taskMedicalReviewRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _readingQuestionCriterionTrialRepository, IRepository _visitTaskRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ITaskMedicalReviewService { @@ -328,7 +328,7 @@ namespace IRaCIS.Core.Application.Service [HttpGet("{trialId:guid}")] public async Task> GetMIMUserList(Guid trialId) { - var query = _trialUserRepository.Where(t => (t.UserRole.UserTypeEnum == Domain.Share.UserTypeEnum.MIM || t.UserRole.UserTypeEnum == Domain.Share.UserTypeEnum.MC) && t.TrialId == trialId).Select(t => t.UserRole).ProjectTo(_mapper.ConfigurationProvider); + var query = _trialUserRoleRepository.Where(t => (t.UserRole.UserTypeEnum == Domain.Share.UserTypeEnum.MIM || t.UserRole.UserTypeEnum == Domain.Share.UserTypeEnum.MC) && t.TrialId == trialId).Select(t => t.UserRole).ProjectTo(_mapper.ConfigurationProvider); return await query.ToListAsync(); } diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index 7df6d8e99..e15f3b42f 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -25,7 +25,7 @@ namespace IRaCIS.Core.Application.Service.Common { [ApiExplorerSettings(GroupName = "Common")] - public class ExcelExportService(IRepository _trialUserRepository, + public class ExcelExportService(IRepository _trialUserRoleRepository, IRepository _visitTaskRepository, IRepository _readingQuestionCriterionTrialRepository, IRepository _systemDocNeedConfirmedUserTypeRepository, @@ -348,7 +348,7 @@ namespace IRaCIS.Core.Application.Service.Common var trialInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => new { t.TrialFinishedTime, t.TrialStatusStr }).FirstNotNullAsync()); var trialDocQuery = from trialDocumentNeedConfirmedUserType in _trialDocNeedConfirmedUserTypeRepository.Where(t => t.TrialDocument.TrialId == inQuery.TrialId) - join trialUser in _trialUserRepository.Where(t => t.TrialId == inQuery.TrialId) + join trialUser in _trialUserRoleRepository.Where(t => t.TrialId == inQuery.TrialId) .WhereIf(inQuery.UserId != null, t => t.UserId == inQuery.UserId) .WhereIf(inQuery.UserTypeId != null, t => t.UserRole.UserTypeId == inQuery.UserTypeId) on trialDocumentNeedConfirmedUserType.NeedConfirmUserTypeId equals trialUser.UserRole.UserTypeId @@ -387,7 +387,7 @@ namespace IRaCIS.Core.Application.Service.Common var systemDocQuery = from needConfirmEdUserType in _systemDocNeedConfirmedUserTypeRepository.WhereIf(trialInfo.TrialFinishedTime != null, u => u.SystemDocument.CreateTime < trialInfo.TrialFinishedTime) - join trialUser in _trialUserRepository.Where(t => t.TrialId == inQuery.TrialId) + join trialUser in _trialUserRoleRepository.Where(t => t.TrialId == inQuery.TrialId) .WhereIf(inQuery.UserId != null, t => t.UserId == inQuery.UserId) on needConfirmEdUserType.NeedConfirmUserTypeId equals trialUser.UserRole.UserTypeId join confirm in _systemDocConfirmedUserRepository.Where() on new { ConfirmUserId = trialUser.UserId, SystemDocumentId = needConfirmEdUserType.SystemDocumentId } equals new { confirm.ConfirmUserId, confirm.SystemDocumentId } into cc diff --git a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs index 9c1ace4df..96dec62aa 100644 --- a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs +++ b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs @@ -15,7 +15,7 @@ namespace IRaCIS.Core.Application.Service public class EmailSendService(IRepository _trialEmailNoticeConfigRepository, IRepository _trialRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _visitTaskRepository, IRepository _trialSiteUserRoleRepository, IOptionsMonitor _SystemEmailSendConfig, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IEmailSendService @@ -144,7 +144,7 @@ namespace IRaCIS.Core.Application.Service var allUserTypeEnumList = toUserTypeEnumList.Union(copyUserTypeEnumList).Distinct().ToList(); - var allUserList = await _trialUserRepository.Where(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.UserRole.UserTypeEnum)).Select(t => new { t.UserId, t.UserRole.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum }).ToListAsync(); + var allUserList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.UserRole.UserTypeEnum)).Select(t => new { t.UserId, t.UserRole.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum }).ToListAsync(); var toUserList = allUserList.Where(t => toUserTypeEnumList.Contains(t.UserTypeEnum)) diff --git a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs index bf0315a1d..a6947d540 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs @@ -23,7 +23,7 @@ namespace IRaCIS.Core.Application.Services IRepository _systemDocNeedConfirmedUserTypeRepository, IRepository _trialDocNeedConfirmedUserTypeRepository, IRepository _systemDocumentRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _trialDocConfirmedUserRepository, IRepository _readingQuestionCriterionTrialRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ITrialDocumentService { @@ -57,7 +57,7 @@ namespace IRaCIS.Core.Application.Services .WhereIf(inQuery.TrialId != null, t => t.TrialId == inQuery.TrialId) .Where(t => t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId)) - join trialUser in _trialUserRepository.Where(t => t.UserId == _userInfo.UserRoleId) on trialDoc.TrialId equals trialUser.TrialId + join trialUser in _trialUserRoleRepository.Where(t => t.UserId == _userInfo.UserRoleId) on trialDoc.TrialId equals trialUser.TrialId join confirm in _trialDocConfirmedUserRepository.Where() on new { trialUser.UserId, TrialDocumentId = trialDoc.Id } equals new { UserId = confirm.ConfirmUserId, confirm.TrialDocumentId } into cc @@ -223,7 +223,7 @@ namespace IRaCIS.Core.Application.Services .WhereIf(trialInfo.TrialFinishedTime != null, u => u.SystemDocument.CreateTime < trialInfo.TrialFinishedTime) .WhereIf(!_userInfo.IsAdmin, t => t.SystemDocument.IsDeleted == false || (t.SystemDocument.IsDeleted == true && t.SystemDocument.SystemDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.UserRoleId))) - join trialUser in _trialUserRepository.Where(t => t.TrialId == inQuery.TrialId && t.UserId == _userInfo.UserRoleId) + join trialUser in _trialUserRoleRepository.Where(t => t.TrialId == inQuery.TrialId && t.UserId == _userInfo.UserRoleId) on needConfirmedUserType.NeedConfirmUserTypeId equals trialUser.UserRole.UserTypeId join confirm in _systemDocConfirmedUserRepository.Where() on new { ConfirmUserId = trialUser.UserId, SystemDocumentId = needConfirmedUserType.SystemDocumentId } equals new { confirm.ConfirmUserId, confirm.SystemDocumentId } into cc from confirm in cc.DefaultIfEmpty() @@ -257,7 +257,7 @@ namespace IRaCIS.Core.Application.Services .WhereIf(!_userInfo.IsAdmin, t => t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId)) .WhereIf(!_userInfo.IsAdmin, t => t.IsDeleted == false || (t.IsDeleted == true && t.TrialDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.UserRoleId))) - join trialUser in _trialUserRepository.Where(t => t.TrialId == inQuery.TrialId && t.UserId == _userInfo.UserRoleId) on trialDoc.TrialId equals trialUser.TrialId + join trialUser in _trialUserRoleRepository.Where(t => t.TrialId == inQuery.TrialId && t.UserId == _userInfo.UserRoleId) on trialDoc.TrialId equals trialUser.TrialId join confirm in _trialDocConfirmedUserRepository.Where(t => t.TrialDocument.TrialId == inQuery.TrialId) on new { trialUser.UserId, TrialDocumentId = trialDoc.Id } equals new { UserId = confirm.ConfirmUserId, confirm.TrialDocumentId } into cc from confirm in cc.DefaultIfEmpty() @@ -356,7 +356,7 @@ namespace IRaCIS.Core.Application.Services #region linq join 方式 //var trialDocQuery = from trialDocumentNeedConfirmedUserType in _trialDocumentNeedConfirmedUserTypeRepository.Where(t => t.TrialDocument.TrialId == querySystemDocument.TrialId) - // join trialUser in _trialUserRepository.Where(t => t.TrialId == querySystemDocument.TrialId) + // join trialUser in _trialUserRoleRepository.Where(t => t.TrialId == querySystemDocument.TrialId) // .WhereIf(querySystemDocument.UserId != null, t => t.UserId == querySystemDocument.UserId) // on trialDocumentNeedConfirmedUserType.NeedConfirmUserTypeId equals trialUser.User.UserTypeId @@ -390,7 +390,7 @@ namespace IRaCIS.Core.Application.Services var trialInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId, ignoreQueryFilters: true).Select(t => new { t.TrialFinishedTime, t.TrialStatusStr }).FirstNotNullAsync()); var trialDocQuery = from trialDocumentNeedConfirmedUserType in _trialDocNeedConfirmedUserTypeRepository.Where(t => t.TrialDocument.TrialId == inQuery.TrialId) - join trialUser in _trialUserRepository.Where(t => t.TrialId == inQuery.TrialId) + join trialUser in _trialUserRoleRepository.Where(t => t.TrialId == inQuery.TrialId) .WhereIf(inQuery.UserId != null, t => t.UserId == inQuery.UserId) .WhereIf(inQuery.UserTypeId != null, t => t.UserRole.UserTypeId == inQuery.UserTypeId) on trialDocumentNeedConfirmedUserType.NeedConfirmUserTypeId equals trialUser.UserRole.UserTypeId @@ -429,7 +429,7 @@ namespace IRaCIS.Core.Application.Services var systemDocQuery = from needConfirmEdUserType in _systemDocNeedConfirmedUserTypeRepository.WhereIf(trialInfo.TrialFinishedTime != null, u => u.SystemDocument.CreateTime < trialInfo.TrialFinishedTime) - join trialUser in _trialUserRepository.Where(t => t.TrialId == inQuery.TrialId) + join trialUser in _trialUserRoleRepository.Where(t => t.TrialId == inQuery.TrialId) .WhereIf(inQuery.UserId != null, t => t.UserId == inQuery.UserId) on needConfirmEdUserType.NeedConfirmUserTypeId equals trialUser.UserRole.UserTypeId join confirm in _systemDocConfirmedUserRepository.Where() on new { ConfirmUserId = trialUser.UserId, SystemDocumentId = needConfirmEdUserType.SystemDocumentId } equals new { confirm.ConfirmUserId, confirm.SystemDocumentId } into cc @@ -492,7 +492,7 @@ namespace IRaCIS.Core.Application.Services [HttpGet("{trialId:guid}")] public async Task> GetTrialUserSelect(Guid trialId) { - return await _trialUserRepository.Where(t => t.TrialId == trialId) + return await _trialUserRoleRepository.Where(t => t.TrialId == trialId) .Select(t => new TrialUserDto() { UserId = t.UserId, RealName = t.UserRole.FullName, UserName = t.UserRole.UserName }) .ToListAsync(); } @@ -774,7 +774,7 @@ namespace IRaCIS.Core.Application.Services [Obsolete] public List GetTrialUserDocumentList(Guid trialId) { - var query = _trialUserRepository.Where(t => t.TrialId == trialId) + var query = _trialUserRoleRepository.Where(t => t.TrialId == trialId) .Select(t => new TrialUserUnionDocumentView() { UserId = t.UserId, @@ -819,7 +819,7 @@ namespace IRaCIS.Core.Application.Services SignViewMinimumMinutes = t.SignViewMinimumMinutes, DocumentConfirmedUserCount = t.SystemDocConfirmedUserList.Count(), - //DocumentUserCount= _trialUserRepository.Where(tu=>tu.TrialId== querySystemDocument.TrialId).Count(u=>t.NeedConfirmedUserTypeList.Any(cc=>cc.NeedConfirmUserTypeId== u.User.UserTypeId )) + //DocumentUserCount= _trialUserRoleRepository.Where(tu=>tu.TrialId== querySystemDocument.TrialId).Count(u=>t.NeedConfirmedUserTypeList.Any(cc=>cc.NeedConfirmUserTypeId== u.User.UserTypeId )) DocumentUserCount = t.NeedConfirmedUserTypeList.SelectMany(u => u.UserTypeRole.UserList.SelectMany(b => b.UserRoleTrials.Where(r => r.TrialId == inQuery.TrialId))).Count() }); diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 0a61da89b..8d976e894 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -33,7 +33,7 @@ namespace IRaCIS.Core.Application.Service IRepository _taskMedicalReviewRepository, IRepository _readingGlobalTaskInfoRepository, IRepository _visitTaskRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _trialEmailNoticeUserRepository, IRepository _subjectRepository, IRepository _readModuleRepository, @@ -300,7 +300,7 @@ namespace IRaCIS.Core.Application.Service var answer = "否"; var isNeedSend = true; - var minUserIdList = _trialUserRepository.Where(t => t.UserRole.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId == taskInfo.TrialId).Select(t => t.UserId).ToList(); + var minUserIdList = _trialUserRoleRepository.Where(t => t.UserRole.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId == taskInfo.TrialId).Select(t => t.UserId).ToList(); @@ -1199,7 +1199,7 @@ namespace IRaCIS.Core.Application.Service public async Task> GetTrialUserTypeSelectList(Guid trialId) { - var query = _trialUserRepository.Where(t => t.TrialId == trialId, false, true).IgnoreQueryFilters().Select(t => t.UserRole.UserTypeRole).Distinct() + var query = _trialUserRoleRepository.Where(t => t.TrialId == trialId, false, true).IgnoreQueryFilters().Select(t => t.UserRole.UserTypeRole).Distinct() .ProjectTo(_mapper.ConfigurationProvider); @@ -1222,7 +1222,7 @@ namespace IRaCIS.Core.Application.Service var userTypeList = trialEmailNoticeConfig.TrialEmailNoticeUserList.Select(t => t.UserType).ToList(); - var query = _trialUserRepository.Where(t => t.TrialId == trialId && userTypeList.Contains(t.UserRole.UserTypeEnum), false, true).IgnoreQueryFilters() + var query = _trialUserRoleRepository.Where(t => t.TrialId == trialId && userTypeList.Contains(t.UserRole.UserTypeEnum), false, true).IgnoreQueryFilters() .Select(t => new TrialSelectUser() { UserId = t.UserId, @@ -1525,7 +1525,7 @@ namespace IRaCIS.Core.Application.Service #region 人员还未加入,可以先配置邮件 历史废弃 - //var toUserList = await _trialUserRepository.Where(t => t.TrialId == config.TrialId) + //var toUserList = await _trialUserRoleRepository.Where(t => t.TrialId == config.TrialId) // .WhereIf(config.ToUserTypeList != null, t => config.ToUserTypeList.Contains(t.User.UserTypeEnum)) // .Select(t => new { t.User.EMail, t.User.FullName }).ToListAsync(); diff --git a/IRaCIS.Core.Application/Service/QC/QCListService.cs b/IRaCIS.Core.Application/Service/QC/QCListService.cs index 666368daf..2d9379933 100644 --- a/IRaCIS.Core.Application/Service/QC/QCListService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCListService.cs @@ -17,7 +17,7 @@ namespace IRaCIS.Core.Application.Image.QA IRepository _trialQCQuestionAnswerRepository, IRepository _trialQCQuestionRepository, IRepository _dicomStudyRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _dicomSeriesRepository, IRepository _noneDicomStudyRepository, IRepository _qcChallengeRepository, @@ -584,7 +584,7 @@ namespace IRaCIS.Core.Application.Image.QA public async Task> GetQCChallengeCreatorList(Guid trialId) { - return await _trialUserRepository.Where(t => t.TrialId == trialId && t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new QCChanllengeCreatorDto() + return await _trialUserRoleRepository.Where(t => t.TrialId == trialId && t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new QCChanllengeCreatorDto() { CreatorRealName = t.UserRole.FullName, Creator = t.UserRole.UserName, @@ -601,7 +601,7 @@ namespace IRaCIS.Core.Application.Image.QA [HttpGet("{trialId:guid}")] public async Task> GetQCParticipantList(Guid trialId) { - return await _trialUserRepository.Where(t => t.TrialId == trialId && (t.UserRole.UserTypeEnum == UserTypeEnum.IQC || t.UserRole.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator)).Select(t => new ParticipantDTO() + return await _trialUserRoleRepository.Where(t => t.TrialId == trialId && (t.UserRole.UserTypeEnum == UserTypeEnum.IQC || t.UserRole.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator)).Select(t => new ParticipantDTO() { HandleUserRealName = t.UserRole.FullName, HandleUser = t.UserRole.UserName, diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 51e9aca31..37ddc5d59 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -29,7 +29,7 @@ namespace IRaCIS.Core.Application.Image.QA IRepository _visitTaskRepository, IRepository _scpPatientRepository, IRepository _scpStudyRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _readModuleRepository, IRepository _dicomInstanceRepository, IRepository _trialQCQuestionAnswerRepository, @@ -1513,7 +1513,7 @@ namespace IRaCIS.Core.Application.Image.QA public async Task QCPassedOrFailed(Guid trialId, Guid subjectVisitId, [FromRoute] AuditStateEnum auditState) { - if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == _userInfo.UserRoleId)) + if (!await _trialUserRoleRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == _userInfo.UserRoleId)) { //---您已经被移出项目,没有操作权限。 return ResponseOutput.NotOk(_localizer["QCOperation_RemoveItem"]); diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs index 1ea0d70e9..bbe2aec10 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs @@ -36,7 +36,7 @@ namespace IRaCIS.Core.Application.Contracts IRepository _trialSiteRepository, IRepository _doctorRepository, IRepository _verificationCodeRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _trialSiteUserRoleRepository, IDistributedLockProvider _distributedLockProvider, ITokenService _tokenService, @@ -950,17 +950,17 @@ namespace IRaCIS.Core.Application.Contracts //判断TrialUser中是否存在 不存在就插入 - var findTrialUser = await _trialUserRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.UserId == userId, true); + var findTrialUser = await _trialUserRoleRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.UserId == userId, true); if (findTrialUser == null) { - await _trialUserRepository.AddAsync(new TrialUserRole() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now }); + await _trialUserRoleRepository.AddAsync(new TrialUserRole() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now }); await _mailVerificationService.SiteSurveyUserJoinEmail(trialId, userId, joinCommand.BaseUrl, joinCommand.RouteUrl); } else if (findTrialUser.IsDeleted == true) { - await _trialUserRepository.UpdatePartialFromQueryAsync(t => t.TrialId == trialId && t.UserId == userId, c => new TrialUserRole() + await _trialUserRoleRepository.UpdatePartialFromQueryAsync(t => t.TrialId == trialId && t.UserId == userId, c => new TrialUserRole() { IsDeleted = false, DeletedTime = null, @@ -1070,17 +1070,17 @@ namespace IRaCIS.Core.Application.Contracts var trialSiteId = item.TrialSiteId; //判断是否加入到项目 - var findTrialUser = await _trialUserRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.UserId == userId, true); + var findTrialUser = await _trialUserRoleRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.UserId == userId, true); if (findTrialUser == null) { - await _trialUserRepository.AddAsync(new TrialUserRole() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now }); + await _trialUserRoleRepository.AddAsync(new TrialUserRole() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now }); await _mailVerificationService.SiteSurveyUserJoinEmail(trialId, userId, baseUrl, routeUrl); } else if (findTrialUser.IsDeleted == true) { - await _trialUserRepository.UpdatePartialFromQueryAsync(t => t.TrialId == trialId && t.UserId == userId, c => new TrialUserRole() + await _trialUserRoleRepository.UpdatePartialFromQueryAsync(t => t.TrialId == trialId && t.UserId == userId, c => new TrialUserRole() { IsDeleted = false, DeletedTime = null, diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs index e21039426..1a4dcd4c4 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs @@ -1476,10 +1476,10 @@ namespace IRaCIS.Core.Application [HttpPost] public async Task>> GetTrialUserToBeDoneList(TrialUserToBeDoneQuery inQuery, - [FromServices] IRepository _trialUserRepository) + [FromServices] IRepository _trialUserRoleRepository) { - var query = _trialUserRepository.Where(t => t.TrialId == inQuery.TrialId) + var query = _trialUserRoleRepository.Where(t => t.TrialId == inQuery.TrialId) .Select(t => new TrialUserToBeDoneDto() { UserName = t.UserRole.UserName, diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs index 7228f2a2b..8a01e2a3c 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs @@ -23,7 +23,8 @@ namespace IRaCIS.Core.Application.Service public class TrialExternalUserService(IRepository _trialExternalUseRepository, IRepository _userRoleRepository, IRepository _identityUserRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, + IRepository _trialIdentityUserRepository, IRepository _trialRepository, IRepository _userTypeRepository, IMailVerificationService _mailVerificationService, @@ -218,19 +219,18 @@ namespace IRaCIS.Core.Application.Service { var trialExternalUser = await _trialExternalUseRepository.FirstOrDefaultAsync(t => t.Id == trialExternalUserId); - if (await _trialUserRepository.AnyAsync(t => t.TrialId == trialExternalUser.TrialId && t.UserId == trialExternalUser.SystemUserId)) + if (await _trialIdentityUserRepository.AnyAsync(t => t.TrialId == trialExternalUser.TrialId && t.IdentityUserId == trialExternalUser.SystemUserId)) { //---当前用户已参与到项目,不允许删除 return ResponseOutput.NotOk(_localizer["TrialExternalUser_CannotDelete"]); } - var success = await _trialExternalUseRepository.BatchDeleteNoTrackingAsync(t => t.Id == trialExternalUserId); - if (isSystemUser == false) - { - await _userRoleRepository.BatchDeleteNoTrackingAsync(t => t.Id == systemUserId); - } + //if (isSystemUser == false) + //{ + // await _userRoleRepository.BatchDeleteNoTrackingAsync(t => t.Id == systemUserId); + //} return ResponseOutput.Result(success); } @@ -253,10 +253,10 @@ namespace IRaCIS.Core.Application.Service //判断TrialUser中是否存在 不存在就插入 注意退出了,也不能再加进来 - if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId, true)) + if (!await _trialIdentityUserRepository.AnyAsync(t => t.TrialId == trialId && t.IdentityUserId == userId, true)) { - await _trialUserRepository.AddAsync(new TrialUserRole() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now }); + await _trialUserRoleRepository.AddAsync(new TrialUserRole() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now }); await _userRoleRepository.BatchUpdateNoTrackingAsync(t => t.Id == userId, u => new UserRole() { Status = UserStateEnum.Enable }); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs index 3e0bd8fd5..cd3fa4f42 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs @@ -16,7 +16,7 @@ namespace IRaCIS.Core.Application.Service [ApiExplorerSettings(GroupName = "Trial")] public class TrialService(IRepository _trialRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _croRepository, IRepository _enrollDetailRepository, IRepository _dictionaryRepository, @@ -208,7 +208,7 @@ namespace IRaCIS.Core.Application.Service //如果是PM, 则需要将该人员添加到 运维人员表 //添加运维人员PM - await _trialUserRepository.AddAsync(new TrialUserRole() { TrialId = trial.Id, UserId = _userInfo.UserRoleId, JoinTime = DateTime.Now }); + await _trialUserRoleRepository.AddAsync(new TrialUserRole() { TrialId = trial.Id, UserId = _userInfo.UserRoleId, JoinTime = DateTime.Now }); // 添加扩展信息表记录 await _trialPaymentPriceRepository.AddAsync(new TrialPaymentPrice() { TrialId = trial.Id }); diff --git a/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs b/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs index e8364411f..6997fa139 100644 --- a/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs +++ b/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs @@ -17,7 +17,7 @@ namespace IRaCIS.Core.Application.Service IRepository _enrollDetailRepository, IRepository _workloadRepository, IRepository _userRoleRepository, - IRepository _trialUserRepository, + IRepository _trialUserRoleRepository, IRepository _ReadingQuestionCriterionTrialRepository, IRepository _trialExperienceRepository, @@ -174,7 +174,7 @@ namespace IRaCIS.Core.Application.Service var trial = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); - var hasSPMOrCPM = await _trialUserRepository.Where(t => t.TrialId == trialId).AnyAsync(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM); + var hasSPMOrCPM = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).AnyAsync(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM); var isSPMjoin= trial.IsSPMJoinReviewerSelect && hasSPMOrCPM; @@ -354,7 +354,7 @@ namespace IRaCIS.Core.Application.Service //[Authorize(Policy = IRaCISPolicy.PM_APM_SPM_CPM_SMM_CMM)] [UnitOfWork] public async Task ConfirmReviewer(ConfirmReviewerCommand confirmReviewerCommand, - [FromServices] IRepository _trialUserRepository, + [FromServices] IRepository _trialUserRoleRepository, [FromServices] IRepository _taskAllocationRuleRepository) { //var trial = _trialRepository.FirstOrDefault(t => t.Id == trialId); @@ -410,9 +410,9 @@ namespace IRaCIS.Core.Application.Service { var userId = await _mailVerificationService.DoctorJoinTrialEmail(trialId, intoGroupItem.DoctorId, confirmReviewerCommand.BaseUrl, confirmReviewerCommand.RouteUrl); - if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId, true)) + if (!await _trialUserRoleRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId, true)) { - await _trialUserRepository.AddAsync(new TrialUserRole() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now }); + await _trialUserRoleRepository.AddAsync(new TrialUserRole() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now }); } await _enrollRepository.BatchUpdateNoTrackingAsync(t => t.Id == intoGroupItem.Id, u => new Enroll() { DoctorUserId = userId });