修改发送邮件

Uat_Study
hang 2022-05-19 13:22:07 +08:00
parent d9b6004106
commit 8e8cd02084
4 changed files with 41 additions and 7 deletions

View File

@ -138,6 +138,23 @@ namespace IRaCIS.Application.Services
return ResponseOutput.Ok(); return ResponseOutput.Ok();
} }
[HttpGet]
public async Task<IResponseOutput> InitSetUserNameAndPwd (Guid userId, string newUserName,string newPWd)
{
await _userRepository.UpdatePartialFromQueryAsync(userId, u => new User()
{
UserName = newUserName,
Password=newPWd,
IsFirstAdd=false,
},true);
return ResponseOutput.Ok();
}
/// <summary> /// <summary>
/// 重置密码为 默认密码 /// 重置密码为 默认密码

View File

@ -1599,6 +1599,7 @@ namespace IRaCIS.Core.Application.Image.QA
return ResponseOutput.NotOk("重传 只允许QA 设置!"); return ResponseOutput.NotOk("重传 只允许QA 设置!");
} }
//获取项目配置 //获取项目配置
var trialConfig = await _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification }) var trialConfig = await _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification })
.FirstOrDefaultAsync().IfNullThrowException(); .FirstOrDefaultAsync().IfNullThrowException();
@ -1610,6 +1611,11 @@ namespace IRaCIS.Core.Application.Image.QA
var qcChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException(); var qcChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException();
var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == qcChallenge.SubjectVisitId)).IfNullThrowException();
await VerifyIsCanQCAsync(sv);
if (qcChallenge.ReuploadEnum != QCChanllengeReuploadEnum.CRCRequestReupload) if (qcChallenge.ReuploadEnum != QCChanllengeReuploadEnum.CRCRequestReupload)
{ {
throw new BusinessValidationFailedException("当前重传状态不为CRC申请重传不允许设置同意重传"); throw new BusinessValidationFailedException("当前重传状态不为CRC申请重传不允许设置同意重传");
@ -1641,9 +1647,7 @@ namespace IRaCIS.Core.Application.Image.QA
if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit && await _repository.AnyAsync<QCChallenge>(t => t.Id == qcChallengeId && t.SubjectVisit.AuditState == AuditStateEnum.InSecondaryQC)) if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit && await _repository.AnyAsync<QCChallenge>(t => t.Id == qcChallengeId && t.SubjectVisit.AuditState == AuditStateEnum.InSecondaryQC))
{ {
var sv = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == qcChallenge.SubjectVisitId);
if (sv == null) return Null404NotFound(sv);
// //一致性核查质疑状态 // //一致性核查质疑状态
// sv.CheckChallengeState = CheckChanllengeTypeEnum.None; // sv.CheckChallengeState = CheckChanllengeTypeEnum.None;
@ -1654,7 +1658,8 @@ namespace IRaCIS.Core.Application.Image.QA
sv.CurrentActionUserExpireTime = DateTime.Now.AddHours(1); sv.CurrentActionUserExpireTime = DateTime.Now.AddHours(1);
sv.CurrentActionUserId = _userInfo.Id; sv.CurrentActionUserId = _userInfo.Id;
BackgroundJob.Schedule<IObtainTaskAutoCancelJob>(t => t.CancelQCObtaion(qcChallenge.SubjectVisitId, DateTime.Now), TimeSpan.FromHours(1));
//BackgroundJob.Schedule<IObtainTaskAutoCancelJob>(t => t.CancelQCObtaion(qcChallenge.SubjectVisitId, DateTime.Now), TimeSpan.FromHours(1));
sv.IsTake = true; sv.IsTake = true;
sv.PreliminaryAuditUserId = null; sv.PreliminaryAuditUserId = null;

View File

@ -837,7 +837,7 @@ namespace IRaCIS.Core.Application.Contracts
: {sysUserInfo.UserTypeRole.UserTypeShortName} : {sysUserInfo.UserTypeRole.UserTypeShortName}
</div> </div>
<div> <div>
{(sysUserInfo.IsFirstAdd ? "系统登录地址:" + joinCommand.BaseUrl : "首次登陆前,请通过该链接修改您的账户信息:" + joinCommand.RouteUrl)} {(sysUserInfo.IsFirstAdd==false ? "系统登录地址:" + joinCommand.BaseUrl : "首次登陆前,请通过该链接修改您的账户信息:" + joinCommand.RouteUrl)}
</div> </div>
</div> </div>
</div> </div>

View File

@ -14,6 +14,8 @@ using MailKit.Security;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Panda.DynamicWebApi.Attributes; using Panda.DynamicWebApi.Attributes;
using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.Auth;
using IRaCIS.Application.Contracts;
namespace IRaCIS.Core.Application.Service namespace IRaCIS.Core.Application.Service
{ {
@ -28,15 +30,17 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository<TrialUser> _trialUserRepository; private readonly IRepository<TrialUser> _trialUserRepository;
private readonly IRepository<TrialSiteUserSurvey> _trialSiteSurveyUserRepository; private readonly IRepository<TrialSiteUserSurvey> _trialSiteSurveyUserRepository;
private readonly IRepository<TrialSiteUser> _trialSiteUserRepository; private readonly IRepository<TrialSiteUser> _trialSiteUserRepository;
private readonly ITokenService _tokenService;
public TrialExternalUserService(IRepository<TrialExternalUser> trialExternalUseRepository, IRepository<User> userRepository, IRepository<TrialUser> trialUserRepository, public TrialExternalUserService(IRepository<TrialExternalUser> trialExternalUseRepository, IRepository<User> userRepository, IRepository<TrialUser> trialUserRepository,
IRepository<TrialSiteUserSurvey> trialSiteSurveyUserRepository, IRepository<TrialSiteUser> trialSiteUserRepository) IRepository<TrialSiteUserSurvey> trialSiteSurveyUserRepository, IRepository<TrialSiteUser> trialSiteUserRepository, ITokenService tokenService)
{ {
_trialExternalUseRepository = trialExternalUseRepository; _trialExternalUseRepository = trialExternalUseRepository;
_userRepository = userRepository; _userRepository = userRepository;
_trialUserRepository = trialUserRepository; _trialUserRepository = trialUserRepository;
_trialSiteSurveyUserRepository = trialSiteSurveyUserRepository; _trialSiteSurveyUserRepository = trialSiteSurveyUserRepository;
_trialSiteUserRepository = trialSiteUserRepository; _trialSiteUserRepository = trialSiteUserRepository;
_tokenService = tokenService;
} }
@ -228,6 +232,14 @@ namespace IRaCIS.Core.Application.Service
var sysUserInfo = (await _userRepository.Where(t => t.Id == userInfo.SystemUserId).Include(t=>t.UserTypeRole).FirstOrDefaultAsync()).IfNullThrowException(); var sysUserInfo = (await _userRepository.Where(t => t.Id == userInfo.SystemUserId).Include(t=>t.UserTypeRole).FirstOrDefaultAsync()).IfNullThrowException();
var token = _tokenService.GetToken(IRaCISClaims.Create(_mapper.Map<UserBasicInfo>(sysUserInfo)));
var initUrl = $@" <a href='{sendEmail.RouteUrl + "?UserId=" + sysUserInfo.Id + "&Email="+ sysUserInfo.EMail+"&UserName="+ sysUserInfo.UserName + "&UserType=" + sysUserInfo.UserTypeRole.UserTypeShortName + "&access_token=" + token}'
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;margin-bottom: 100px;'>
</a> ";
builder.HtmlBody = @$"<body style='font-family: 微软雅黑;padding: 0;margin: 0;'> builder.HtmlBody = @$"<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
<div style='padding-left: 40px;background: #f6f6f6'> <div style='padding-left: 40px;background: #f6f6f6'>
<div style='padding-top: 20px;padding-bottom:40px'> <div style='padding-top: 20px;padding-bottom:40px'>
@ -255,7 +267,7 @@ namespace IRaCIS.Core.Application.Service
: {sysUserInfo.UserTypeRole.UserTypeShortName} : {sysUserInfo.UserTypeRole.UserTypeShortName}
</div> </div>
<div> <div>
{(sysUserInfo.IsFirstAdd ? "系统登录地址:" + sendEmail.BaseUrl : "首次登陆前,请通过该链接修改您的账户信息:" + sendEmail.RouteUrl)} {(sysUserInfo.IsFirstAdd==false ? "系统登录地址:" + sendEmail.BaseUrl : "首次登陆前,请通过该链接修改您的账户信息:" + initUrl)}
</div> </div>
</div> </div>
</div> </div>