From 0cb54b4c404f29fabb3c2a27dfb35d8fab05acb2 Mon Sep 17 00:00:00 2001 From: "{872297557@qq.com}" <872297557@qq.com> Date: Tue, 13 Dec 2022 14:45:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=AD=E9=97=B4=E8=B0=83?= =?UTF-8?q?=E7=A0=94=E9=82=AE=E4=BB=B6=E9=A9=B3=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 2 +- .../Service/Common/MailService.cs | 12 +++++++ .../SiteSurvey/TrialSiteSurveyService.cs | 36 +++++++++---------- 3 files changed, 31 insertions(+), 19 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index d1a4a7d4c..e9a142085 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -6605,7 +6605,7 @@ - + 驳回 New diff --git a/IRaCIS.Core.Application/Service/Common/MailService.cs b/IRaCIS.Core.Application/Service/Common/MailService.cs index bf3dc45c3..585de9810 100644 --- a/IRaCIS.Core.Application/Service/Common/MailService.cs +++ b/IRaCIS.Core.Application/Service/Common/MailService.cs @@ -16,6 +16,8 @@ namespace IRaCIS.Application.Services Task AnolymousSendEmail(string researchProgramNo, string emailAddress, int verificationCode); + Task SiteSurveyRejectEmail(MimeMessage messageToSend); + Task SendMailEditEmail(Guid userId, string userName, string emailAddress, int verificationCode); Task AnolymousSendEmailForResetAccount(string emailAddress, int verificationCode); @@ -269,8 +271,18 @@ namespace IRaCIS.Application.Services } + public async Task SiteSurveyRejectEmail(MimeMessage messageToSend) + { + + //发件地址 + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + + await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); + + } + //添加用户发送邮件 public async Task AddUserSendEmailAsync(Guid userId, string baseUrl, string routeUrl) { diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs index 74fed2de4..7d6853590 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs @@ -34,7 +34,7 @@ namespace IRaCIS.Core.Application.Contracts private readonly IMailVerificationService _mailVerificationService; public TrialSiteSurveyService(IRepository trialSiteSurveyRepository, IRepository trialUserRepository, IRepository trialSiteUserSurveyRepository, - IRepository userRepository, IRepository trialSiteRepository, + IRepository userRepository, IRepository trialSiteRepository, ITokenService tokenService, IMailVerificationService mailVerificationService) { @@ -170,7 +170,7 @@ namespace IRaCIS.Core.Application.Contracts if (latestLock!.Email != userInfo.ReplaceUserEmailOrPhone) { - return ResponseOutput.NotOk($"该邮箱{userInfo.ReplaceUserEmailOrPhone }对应的调查表不是最新锁定的记录,不允许更新!"); + return ResponseOutput.NotOk($"该邮箱{userInfo.ReplaceUserEmailOrPhone}对应的调查表不是最新锁定的记录,不允许更新!"); } var lockedLastSurvey = await _trialSiteSurveyRepository.Where(t => (t.Email == userInfo.ReplaceUserEmailOrPhone || t.Phone == userInfo.ReplaceUserEmailOrPhone) && t.SiteId == userInfo.SiteId && t.TrialId == userInfo.TrialId && t.State == TrialSiteSurveyEnum.PMCreatedAndLock == true) @@ -323,7 +323,7 @@ namespace IRaCIS.Core.Application.Contracts /// /// /// - [TypeFilter(typeof(TrialResourceFilter),Arguments = new object[] { "AfterStopCannNotOpt" })] + [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] public async Task AddOrUpdateTrialSiteSurvey(TrialSiteSurveyAddOrEdit addOrEditTrialSiteSurvey) { @@ -466,9 +466,9 @@ namespace IRaCIS.Core.Application.Contracts /// 驳回 New /// /// - [TypeFilter(typeof(TrialResourceFilter),Arguments = new object[] { "AfterStopCannNotOpt" })] + [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] - public async Task SubmissionRejection(TrialSiteSubmitBackCommand trialSiteSubmitBackCommand) + public async Task SubmissionRejection(TrialSiteSubmitBackCommand trialSiteSubmitBackCommand, [FromServices] IMailVerificationService _IMailVerificationService) { var trialSiteSurveyId = trialSiteSubmitBackCommand.TrialSiteSurveyId; @@ -479,8 +479,6 @@ namespace IRaCIS.Core.Application.Contracts User? user = null; var messageToSend = new MimeMessage(); - //发件地址 - messageToSend.From.Add(new MailboxAddress("GRR", "iracis_grr@163.com")); @@ -565,11 +563,13 @@ namespace IRaCIS.Core.Application.Contracts ); } - messageToSend.Body = builder.ToMessageBody(); - await SendEmailHelper.SendEmailAsync(messageToSend, null); + await _IMailVerificationService.SiteSurveyRejectEmail(messageToSend); + + + await _trialSiteSurveyRepository.SaveChangesAsync(); @@ -617,7 +617,7 @@ namespace IRaCIS.Core.Application.Contracts [HttpPut("{trialId:guid}/{trialSiteSurveyId:guid}")] - [TypeFilter(typeof(TrialResourceFilter),Arguments = new object[] { "AfterStopCannNotOpt" })] + [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] public async Task AbandonSiteSurvey(Guid trialSiteSurveyId) { @@ -645,7 +645,7 @@ namespace IRaCIS.Core.Application.Contracts /// // [TypeFilter(typeof(TrialResourceFilter),Arguments = new object[] { "AfterStopCannNotOpt" })] [HttpPost] - [TypeFilter(typeof(TrialResourceFilter),Arguments = new object[] { "AfterStopCannNotOpt" })] + [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] [UnitOfWork] public async Task TrialSurveySubmit(TrialSiteSurvyeSubmitDTO siteSurvyeSubmit) { @@ -724,7 +724,7 @@ namespace IRaCIS.Core.Application.Contracts saveItem.Code = _userRepository.Select(t => t.Code).DefaultIfEmpty().Max() + 1; - saveItem.UserCode = AppSettings.GetCodeStr(saveItem.Code, nameof(User)); + saveItem.UserCode = AppSettings.GetCodeStr(saveItem.Code, nameof(User)); saveItem.UserName = saveItem.UserCode; @@ -756,7 +756,7 @@ namespace IRaCIS.Core.Application.Contracts await _trialSiteUserSurveyRepository.SaveChangesAsync(); } - [TypeFilter(typeof(TrialResourceFilter),Arguments = new object[] { "AfterStopCannNotOpt" })] + [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] public async Task SendSiteSurveyUserJoinEmail(TrialSiteUserSurveyJoinCommand joinCommand) { @@ -766,7 +766,7 @@ namespace IRaCIS.Core.Application.Contracts foreach (var userInfo in joinCommand.UserList) { - if(userInfo.SystemUserId == null) + if (userInfo.SystemUserId == null) { throw new BusinessValidationFailedException("生成账户Id 未取到值,请排查"); } @@ -776,13 +776,13 @@ namespace IRaCIS.Core.Application.Contracts var siteId = trialSiteSurvey.SiteId; await _mailVerificationService.SiteSurveyUserJoinEmail(trialId, userId, joinCommand.BaseUrl, joinCommand.RouteUrl); - + //判断TrialUser中是否存在 不存在就插入 if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId, true)) { - await _repository.AddAsync(new TrialUser() { TrialId = trialId, UserId = userId ,JoinTime=DateTime.Now}); + await _repository.AddAsync(new TrialUser() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now }); await _repository.AddAsync(new TrialSiteUser() { TrialId = trialId, SiteId = siteId, UserId = userId }); @@ -790,7 +790,7 @@ namespace IRaCIS.Core.Application.Contracts await _trialSiteUserSurveyRepository.UpdatePartialFromQueryAsync(t => t.Id == userInfo.Id, u => new TrialSiteUserSurvey() { IsJoin = true }); - } + } } await _trialSiteSurveyRepository.UpdatePartialFromQueryAsync(t => t.Id == trialSiteSurvey.Id && t.State == TrialSiteSurveyEnum.SPMApproved, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.PMCreatedAndLock, ReviewerUserId = _userInfo.Id, ReviewerTime = DateTime.Now }); @@ -892,7 +892,7 @@ namespace IRaCIS.Core.Application.Contracts smtp.MessageSent += (sender, args) => { - _ = _trialSiteUserSurveyRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new TrialSiteUserSurvey() { IsGenerateSuccess = true, InviteState = TrialSiteUserStateEnum.HasSend, ConfirmTime = null, RejectReason = String.Empty, SystemUserId = sysUserInfo.Id, ExpireTime = DateTime.Now.AddDays(7) }).Result; + _ = _trialSiteUserSurveyRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new TrialSiteUserSurvey() { IsGenerateSuccess = true, InviteState = TrialSiteUserStateEnum.HasSend, ConfirmTime = null, RejectReason = String.Empty, SystemUserId = sysUserInfo.Id, ExpireTime = DateTime.Now.AddDays(7) }).Result; };