中心调研邮件修改
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
5bd055c77d
commit
8e2b99333c
|
|
@ -9438,7 +9438,7 @@
|
||||||
融合的CTSeriesId
|
融合的CTSeriesId
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ChangePlottingScaleChangeAnswerInDto.MarkId">
|
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ChangePlottingScaleChangeAnswerInDto.NoneDicomFileId">
|
||||||
<summary>
|
<summary>
|
||||||
标记id
|
标记id
|
||||||
</summary>
|
</summary>
|
||||||
|
|
@ -17129,6 +17129,19 @@
|
||||||
<param name="userInfo"></param>
|
<param name="userInfo"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Contracts.TrialSiteSurveyService.SendCheckSiteSurveyUserEmail(IRaCIS.Core.Application.Contracts.SendCheckSiteSurveyUserCommand)">
|
||||||
|
<summary>
|
||||||
|
核对中心人员发送邮件
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Contracts.TrialSiteSurveyService.SendUpdateSiteSurveyUserEmail(IRaCIS.Core.Application.Contracts.SendUpdateSiteSurveyUserCommand)">
|
||||||
|
<summary>
|
||||||
|
更新中心人员发送邮件
|
||||||
|
</summary>
|
||||||
|
<param name="inCommand"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Contracts.TrialSiteSurveyService.GetTrialSiteLatestSurvey(System.Guid)">
|
<member name="M:IRaCIS.Core.Application.Contracts.TrialSiteSurveyService.GetTrialSiteLatestSurvey(System.Guid)">
|
||||||
<summary>
|
<summary>
|
||||||
获取该中心最新调表信息 如果没有任何调研表,会返回null
|
获取该中心最新调表信息 如果没有任何调研表,会返回null
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,10 @@ namespace IRaCIS.Core.Application.Service
|
||||||
Task UserFeedBackMail(Guid feedBackId);
|
Task UserFeedBackMail(Guid feedBackId);
|
||||||
|
|
||||||
Task AfterUserModifyPasswordSendEmailAsync(Guid userId);
|
Task AfterUserModifyPasswordSendEmailAsync(Guid userId);
|
||||||
|
|
||||||
|
Task SiteSuervyCheckUser(Guid trialId, string email, string name);
|
||||||
|
|
||||||
|
Task SiteSuervyUpdateUser(Guid trialSiteId, string email, string name, string url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class MailVerificationService(IRepository<VerificationCode> _verificationCodeRepository,
|
public class MailVerificationService(IRepository<VerificationCode> _verificationCodeRepository,
|
||||||
|
|
@ -337,7 +341,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login"));
|
var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login"));
|
||||||
|
|
||||||
var redirectUrl = $"{domain}/api/User/UserRedirect?url={System.Web.HttpUtility.UrlEncode(routeUrl)}";
|
var redirectUrl = $"{domain}/api/User/UserRedirect?url={System.Web.HttpUtility.UrlEncode(routeUrl)}";
|
||||||
|
|
||||||
|
|
||||||
var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
|
var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
|
||||||
|
|
||||||
|
|
@ -917,5 +921,76 @@ namespace IRaCIS.Core.Application.Service
|
||||||
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
|
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//中心调研核对人员提醒
|
||||||
|
public async Task SiteSuervyCheckUser(Guid trialId, string email, string name)
|
||||||
|
{
|
||||||
|
var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.TrialCode, t.ResearchProgramNo }).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
var messageToSend = new MimeMessage();
|
||||||
|
//发件地址
|
||||||
|
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||||
|
//收件地址
|
||||||
|
messageToSend.To.Add(new MailboxAddress(name, email));
|
||||||
|
//主题
|
||||||
|
//---[来自展影IRC] 关于重置邮箱的提醒
|
||||||
|
|
||||||
|
var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
|
||||||
|
|
||||||
|
Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input =>
|
||||||
|
{
|
||||||
|
|
||||||
|
var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo);
|
||||||
|
|
||||||
|
var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr),
|
||||||
|
name,
|
||||||
|
trialInfo.TrialCode,
|
||||||
|
trialInfo.ResearchProgramNo
|
||||||
|
);
|
||||||
|
|
||||||
|
return (topicStr, htmlBodyStr);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SiteSurvey_CheckUser, messageToSend, emailConfigFunc);
|
||||||
|
|
||||||
|
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task SiteSuervyUpdateUser(Guid trialSiteId, string email, string name, string url)
|
||||||
|
{
|
||||||
|
var trialInfo = await _trialSiteRepository.Where(t => t.Id == trialSiteId).Select(t => new { t.Trial.TrialCode, t.Trial.ResearchProgramNo, t.TrialSiteCode, t.TrialSiteName, t.TrialSiteAliasName }).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
var messageToSend = new MimeMessage();
|
||||||
|
//发件地址
|
||||||
|
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
|
||||||
|
//收件地址
|
||||||
|
messageToSend.To.Add(new MailboxAddress(name, email));
|
||||||
|
//主题
|
||||||
|
//---[来自展影IRC] 关于重置邮箱的提醒
|
||||||
|
|
||||||
|
var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
|
||||||
|
|
||||||
|
Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input =>
|
||||||
|
{
|
||||||
|
|
||||||
|
var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo);
|
||||||
|
|
||||||
|
var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr),
|
||||||
|
name,
|
||||||
|
trialInfo.TrialCode,
|
||||||
|
trialInfo.TrialSiteCode,
|
||||||
|
trialInfo.TrialSiteName,
|
||||||
|
url
|
||||||
|
);
|
||||||
|
|
||||||
|
return (topicStr, htmlBodyStr);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SiteSurvey_CheckUser, messageToSend, emailConfigFunc);
|
||||||
|
|
||||||
|
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -282,6 +282,31 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class SendCheckSiteSurveyUserCommand
|
||||||
|
{
|
||||||
|
public string Email { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string FullName { get; set; }
|
||||||
|
|
||||||
|
[NotDefault]
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class SendUpdateSiteSurveyUserCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
public string Url { get; set; }
|
||||||
|
|
||||||
|
public string Email { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string FullName { get; set; }
|
||||||
|
|
||||||
|
[NotDefault]
|
||||||
|
public Guid TrialSiteId { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public class LoginDto
|
public class LoginDto
|
||||||
{
|
{
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -297,8 +297,28 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 核对中心人员发送邮件
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<IResponseOutput> SendCheckSiteSurveyUserEmail(SendCheckSiteSurveyUserCommand inCommand)
|
||||||
|
{
|
||||||
|
await SafeMailHelper.Run(async () => await _mailVerificationService.SiteSuervyCheckUser(inCommand.TrialId, inCommand.Email, inCommand.FullName));
|
||||||
|
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 更新中心人员发送邮件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inCommand"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<IResponseOutput> SendUpdateSiteSurveyUserEmail(SendUpdateSiteSurveyUserCommand inCommand)
|
||||||
|
{
|
||||||
|
await SafeMailHelper.Run(async () => await _mailVerificationService.SiteSuervyUpdateUser(inCommand.TrialSiteId, inCommand.Email, inCommand.FullName, inCommand.Url));
|
||||||
|
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
#region 中心调研修改
|
#region 中心调研修改
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -498,6 +498,8 @@ namespace IRaCIS.Application.Contracts
|
||||||
|
|
||||||
public Guid? UserTypeId { get; set; }
|
public Guid? UserTypeId { get; set; }
|
||||||
|
|
||||||
|
public List<UserTypeEnum> UserTypeList { get; set; }
|
||||||
|
|
||||||
public string UserName { get; set; } = string.Empty;
|
public string UserName { get; set; } = string.Empty;
|
||||||
|
|
||||||
public string OrganizationName { get; set; } = String.Empty;
|
public string OrganizationName { get; set; } = String.Empty;
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
var query = _trialIdentityUserRepository.Where(t => t.TrialId == inQuery.TrialId).IgnoreQueryFilters()
|
var query = _trialIdentityUserRepository.Where(t => t.TrialId == inQuery.TrialId).IgnoreQueryFilters()
|
||||||
.WhereIf(inQuery.UserTypeId != null, t => t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == inQuery.UserTypeId))
|
.WhereIf(inQuery.UserTypeId != null, t => t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == inQuery.UserTypeId))
|
||||||
|
.WhereIf(inQuery.UserTypeList.Count > 0, t => t.TrialUserRoleList.Any(t => inQuery.UserTypeList.Contains(t.UserRole.UserTypeEnum)))
|
||||||
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.UserName), t => t.IdentityUser.UserName.Contains(inQuery.UserName))
|
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.UserName), t => t.IdentityUser.UserName.Contains(inQuery.UserName))
|
||||||
|
|
||||||
.WhereIf(inQuery.IsDeleted != null, t => t.IsDeleted == inQuery.IsDeleted)
|
.WhereIf(inQuery.IsDeleted != null, t => t.IsDeleted == inQuery.IsDeleted)
|
||||||
|
|
|
||||||
|
|
@ -324,6 +324,10 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
|
|
||||||
|
|
||||||
IdentityUser_ModifyPassword=73,
|
IdentityUser_ModifyPassword=73,
|
||||||
|
|
||||||
|
SiteSurvey_CheckUser = 74,
|
||||||
|
|
||||||
|
SiteSurvey_UpdateUser = 75,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue