This commit is contained in:
2023-01-17 17:40:36 +08:00
parent 72c4fedfd5
commit 3f9ffb029b
5 changed files with 74 additions and 13 deletions
@@ -103,6 +103,7 @@ namespace IRaCIS.Core.Application.Service
var existUser = await _userRepository.FirstOrDefaultAsync(t => t.EMail == addOrEditTrialExternalUser.Email && t.UserTypeId == addOrEditTrialExternalUser.UserTypeId);
var trialType = await _repository.Where<Trial>(t => t.Id == addOrEditTrialExternalUser.TrialId).Select(t => t.TrialType).FirstOrDefaultAsync();
if (existUser != null)
{
@@ -112,7 +113,6 @@ namespace IRaCIS.Core.Application.Service
}
else
{
var trialType = await _repository.Where<Trial>(t => t.Id == addOrEditTrialExternalUser.TrialId).Select(t => t.TrialType).FirstOrDefaultAsync();
//生成账户 并插入
@@ -120,9 +120,12 @@ namespace IRaCIS.Core.Application.Service
if (trialType == TrialType.NoneOfficial)
{
generateUser.IsTestUser = true;
generateUser.IsTestUser = true;
}
// 外部人员生成账号 都是外部的
generateUser.IsZhiZhun = false;
generateUser.Code = _userRepository.Select(t => t.Code).DefaultIfEmpty().Max() + 1;
@@ -142,8 +145,35 @@ namespace IRaCIS.Core.Application.Service
addEntity.IsSystemUser = false;
addEntity.SystemUserId = newAddUser.Id;
existUser = newAddUser;
}
#region
if (trialType == TrialType.OfficialTrial || trialType == TrialType.Training)
{
if (existUser.IsTestUser)
{
throw new BusinessValidationFailedException("正式类型 、培训类型的项目 不允许加入测试用户 ");
}
}
if (trialType == TrialType.NoneOfficial)
{
if (existUser.IsTestUser == false && existUser.IsZhiZhun == false)
{
throw new BusinessValidationFailedException("测试项目 不允许加入外部正式用户 ");
}
}
#endregion
await _trialExternalUseRepository.SaveChangesAsync();
@@ -219,7 +249,6 @@ namespace IRaCIS.Core.Application.Service
var userId = userInfo.SystemUserId;
await _mailVerificationService.ExternalUserJoinEmail(trialId, userId, sendEmail.BaseUrl, sendEmail.RouteUrl);
//判断TrialUser中是否存在 不存在就插入 注意退出了,也不能再加进来
@@ -235,6 +264,9 @@ namespace IRaCIS.Core.Application.Service
await _userRepository.SaveChangesAsync();
}
await _mailVerificationService.ExternalUserJoinEmail(trialId, userId, sendEmail.BaseUrl, sendEmail.RouteUrl);
}
return ResponseOutput.Ok();