外部用户修改
This commit is contained in:
@@ -26,6 +26,8 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||
|
||||
public Guid SystemUserId { get; set; }
|
||||
|
||||
|
||||
|
||||
[JsonIgnore]
|
||||
public TrialExternalUserStateEnum InviteState { get; set; }
|
||||
|
||||
@@ -84,10 +86,9 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||
|
||||
|
||||
|
||||
public bool IsSendEmail { get; set; }
|
||||
//public bool IsSendEmail { get; set; }
|
||||
|
||||
|
||||
public string RouteUrl { get; set; } = string.Empty;
|
||||
//public string RouteUrl { get; set; } = string.Empty;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -128,25 +128,26 @@ namespace IRaCIS.Core.Application.Service
|
||||
await _trialExternalUseRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
if (addOrEditTrialExternalUser.IsSendEmail)
|
||||
{
|
||||
await SendInviteEmail(new TrialExternalUserSendEmail()
|
||||
{
|
||||
//BaseUrl = addOrEditTrialExternalUser.BaseUrl,
|
||||
RouteUrl = addOrEditTrialExternalUser.RouteUrl,
|
||||
TrialId = addOrEditTrialExternalUser.TrialId,
|
||||
SendUsers = new List<UserEmail>()
|
||||
{
|
||||
new UserEmail()
|
||||
{
|
||||
Id = addEntity.Id,
|
||||
Email=addEntity.Email,
|
||||
IsSystemUser=addEntity.IsSystemUser,
|
||||
SystemUserId=addEntity.SystemUserId
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
//添加的时候就发邮件 现在省略
|
||||
//if (addOrEditTrialExternalUser.IsSendEmail)
|
||||
//{
|
||||
// await SendInviteEmail(new TrialExternalUserSendEmail()
|
||||
// {
|
||||
// //BaseUrl = addOrEditTrialExternalUser.BaseUrl,
|
||||
// RouteUrl = addOrEditTrialExternalUser.RouteUrl,
|
||||
// TrialId = addOrEditTrialExternalUser.TrialId,
|
||||
// SendUsers = new List<UserEmail>()
|
||||
// {
|
||||
// new UserEmail()
|
||||
// {
|
||||
// Id = addEntity.Id,
|
||||
// Email=addEntity.Email,
|
||||
// IsSystemUser=addEntity.IsSystemUser,
|
||||
// SystemUserId=addEntity.SystemUserId
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
//}
|
||||
|
||||
|
||||
return ResponseOutput.Ok(addEntity.Id.ToString());
|
||||
@@ -204,6 +205,108 @@ namespace IRaCIS.Core.Application.Service
|
||||
}
|
||||
|
||||
|
||||
//New 省掉邀请流程
|
||||
[HttpPost]
|
||||
public async Task<IResponseOutput> SendExternalUserJoinEmail(TrialExternalUserSendEmail sendEmail)
|
||||
{
|
||||
var trialInfo = await _repository.FirstOrDefaultAsync<Trial>(t => t.Id == sendEmail.TrialId);
|
||||
|
||||
foreach (var userInfo in sendEmail.SendUsers)
|
||||
{
|
||||
var messageToSend = new MimeMessage();
|
||||
//发件地址
|
||||
messageToSend.From.Add(new MailboxAddress("GRR", "iracis_grr@163.com"));
|
||||
//收件地址
|
||||
messageToSend.To.Add(new MailboxAddress(String.Empty, userInfo.Email));
|
||||
//主题
|
||||
messageToSend.Subject = $"[来自展影IRC] [{ trialInfo.ResearchProgramNo}]邀请信";
|
||||
|
||||
|
||||
var builder = new BodyBuilder();
|
||||
|
||||
var sysUserInfo = (await _userRepository.Where(t => t.Id == userInfo.SystemUserId).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
|
||||
builder.HtmlBody = @$"<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
|
||||
<div style='padding-left: 40px;background: #f6f6f6'>
|
||||
<div style='padding-top: 20px;padding-bottom:40px'>
|
||||
<div style='line-height: 40px;font-size: 18px'>
|
||||
尊敬的 {sysUserInfo.LastName + "/" + sysUserInfo.FirstName} ,您好:
|
||||
</div>
|
||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
||||
展影医疗作为 实验方案号 {"'" + trialInfo.ResearchProgramNo + "'"} 项目的IRC供应商,诚邀您参加该项目IRC相关工作,欢迎您提供指导和建议,非常感谢!
|
||||
该项目采用电子化工作流,系统及您的账号信息如下:
|
||||
</div>
|
||||
<div style='border: 1px solid #eee;box-sizing:border-box;width: 80%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;'>
|
||||
<div>
|
||||
项目编号: {trialInfo.TrialCode}
|
||||
</div>
|
||||
<div>
|
||||
试验方案号: {trialInfo.ResearchProgramNo}
|
||||
</div>
|
||||
<div>
|
||||
试验名称: {trialInfo.ExperimentName}
|
||||
</div>
|
||||
<div>
|
||||
用户名: {sysUserInfo.UserName}
|
||||
</div>
|
||||
<div>
|
||||
角色: {sysUserInfo.UserTypeRole.UserTypeShortName}
|
||||
</div>
|
||||
<div>
|
||||
{(sysUserInfo.IsFirstAdd ? "系统登录地址:" + sendEmail.BaseUrl : "首次登陆前,请通过该链接修改您的账户信息:" + sendEmail.RouteUrl)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>";
|
||||
|
||||
|
||||
messageToSend.Body = builder.ToMessageBody();
|
||||
|
||||
using (var smtp = new MailKit.Net.Smtp.SmtpClient())
|
||||
{
|
||||
|
||||
smtp.ServerCertificateValidationCallback = (s, c, h, e) => true;
|
||||
|
||||
await smtp.ConnectAsync("smtp.163.com", 25, SecureSocketOptions.StartTls);
|
||||
|
||||
await smtp.AuthenticateAsync("iracis_grr@163.com", "XLWVQKZAEKLDWOAH");
|
||||
|
||||
await smtp.SendAsync(messageToSend);
|
||||
|
||||
await smtp.DisconnectAsync(true);
|
||||
}
|
||||
|
||||
|
||||
var trialId = sendEmail.TrialId;
|
||||
var userId = sysUserInfo.Id;
|
||||
|
||||
//判断TrialUser中是否存在 不存在就插入
|
||||
if (!await _repository.AnyAsync<TrialUser>(t => t.TrialId == trialId && t.UserId == userId))
|
||||
{
|
||||
|
||||
await _repository.AddAsync(new TrialUser() { TrialId = trialId, UserId = userId });
|
||||
|
||||
await _userRepository.BatchUpdateNoTrackingAsync(t => t.Id == userId, u => new User() { Status = UserStateEnum.Enable });
|
||||
|
||||
await _trialExternalUseRepository.BatchUpdateNoTrackingAsync(t => t.Id == userInfo.Id, u => new TrialExternalUser() { IsJoin = true });
|
||||
|
||||
|
||||
await _userRepository.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#region 老版本流程 现在废弃
|
||||
|
||||
/// <summary>
|
||||
/// 勾选用户 批量发送邮件
|
||||
/// </summary>
|
||||
@@ -251,12 +354,12 @@ namespace IRaCIS.Core.Application.Service
|
||||
</body>";
|
||||
|
||||
|
||||
//< form action = '#' method = 'post' >
|
||||
|
||||
// < button type = 'submit' style = 'margin-left:60px;font-size:14px;text-decoration: none;display: inline-block;height: 40px;width: 140px;background: #00D1B2;color:#fff;border-radius: 5px;line-height: 40px;text-align: center;border:none;margin-bottom: 100px;cursor: pointer' > 查看并确认 </ button >
|
||||
|
||||
// </ form >
|
||||
messageToSend.Body = builder.ToMessageBody();
|
||||
//< form action = '#' method = 'post' >
|
||||
|
||||
// < button type = 'submit' style = 'margin-left:60px;font-size:14px;text-decoration: none;display: inline-block;height: 40px;width: 140px;background: #00D1B2;color:#fff;border-radius: 5px;line-height: 40px;text-align: center;border:none;margin-bottom: 100px;cursor: pointer' > 查看并确认 </ button >
|
||||
|
||||
// </ form >
|
||||
messageToSend.Body = builder.ToMessageBody();
|
||||
|
||||
using (var smtp = new MailKit.Net.Smtp.SmtpClient())
|
||||
{
|
||||
@@ -289,7 +392,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 不带Token 访问 用户选择 参与 不参与 Id: TrialExternalUserId
|
||||
/// 不带Token 访问 用户选择 参与 不参与 Id: TrialExternalUserId 加入发送邮件
|
||||
/// </summary>
|
||||
/// <param name="editTrialUserPreparation"></param>
|
||||
/// <returns></returns>
|
||||
@@ -322,7 +425,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
var success = await _trialExternalUseRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
|
||||
if (editTrialUserPreparation.IsJoin == true)
|
||||
{
|
||||
var trialInfo = await _repository.FirstOrDefaultAsync<Trial>(t => t.Id == needUpdate.TrialId);
|
||||
@@ -483,7 +586,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId))
|
||||
{
|
||||
await _trialUserRepository.AddAsync(new TrialUser() { TrialId = trialId, UserId = userId,JoinTime = DateTime.Now });
|
||||
await _trialUserRepository.AddAsync(new TrialUser() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now });
|
||||
|
||||
await _trialSiteUserRepository.AddAsync(new TrialSiteUser() { TrialId = trialId, SiteId = siteId, UserId = userId });
|
||||
|
||||
@@ -613,7 +716,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
@@ -681,6 +784,11 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user