导入人员发送邮件
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-12-27 13:50:26 +08:00
parent ba2965e295
commit 918362e854
5 changed files with 137 additions and 116 deletions
@@ -171,8 +171,7 @@ namespace IRaCIS.Core.Application.ViewModel
public bool IsSystemUser { get; set; }
[NotDefault]
public Guid SystemUserId { get; set; }
//public Guid SystemUserId { get; set; }
[NotDefault]
public Guid UserTypeId { get; set; }
@@ -16,6 +16,7 @@ using Microsoft.AspNetCore.Mvc;
using DocumentFormat.OpenXml.Spreadsheet;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Application.Contracts;
using MassTransit;
namespace IRaCIS.Core.Application.Service
{
@@ -76,7 +77,7 @@ namespace IRaCIS.Core.Application.Service
if (existSysUser.LastName != addOrEditTrialExternalUser.LastName || existSysUser.FirstName != addOrEditTrialExternalUser.FirstName)
{
//$"该用户在系统中的用户名为:{existSysUser.LastName + " / " + existSysUser.FirstName} 电话:{existSysUser.Phone},与填写信息存在不一致项, 请将界面信息修改为与系统一致,再进行保存",
return ResponseOutput.NotOk(_localizer["TrialExternalUser_Inconsistency", existSysUser.LastName + " / " + existSysUser.FirstName, existSysUser.Phone], new { existSysUser.LastName, existSysUser.FirstName, existSysUser.Phone, existSysUser.IsZhiZhun, existSysUser.IsTestUser }, ApiResponseCodeEnum.NeedTips);
return ResponseOutput.NotOk(_localizer["TrialExternalUser_Inconsistency", existSysUser.LastName + " / " + existSysUser.FirstName, existSysUser.Phone], new { existSysUser.LastName, existSysUser.FirstName, existSysUser.Phone, existSysUser.OrganizationName, existSysUser.IsZhiZhun, existSysUser.IsTestUser }, ApiResponseCodeEnum.NeedTips);
}
}
@@ -147,7 +148,7 @@ namespace IRaCIS.Core.Application.Service
Id = addEntity.Id,
Email=addEntity.Email,
IsSystemUser=addEntity.IsSystemUser,
SystemUserId=addEntity.SystemUserId,
//SystemUserId=addEntity.SystemUserId,
UserTypeId=addOrEditTrialExternalUser.UserTypeId
}
}
@@ -256,7 +257,7 @@ namespace IRaCIS.Core.Application.Service
{
//生成账户 并插入
var externalUser = _trialExternalUseRepository.FirstOrDefaultAsync(t => t.Id == itemFirst.Id);
var externalUser = await _trialExternalUseRepository.FirstOrDefaultAsync(t => t.Id == itemFirst.Id);
var generateUser = _mapper.Map<IdentityUser>(externalUser);
if (trialType == TrialType.NoneOfficial)
@@ -269,10 +270,9 @@ namespace IRaCIS.Core.Application.Service
generateUser.Code = _identityUserRepository.Select(t => t.Code).DefaultIfEmpty().Max() + 1;
generateUser.UserCode = AppSettings.GetCodeStr(generateUser.Code, nameof(IdentityUser));
generateUser.UserName = generateUser.UserCode;
//generateUser.UserName = generateUser.UserCode;
generateUser.Password = MD5Helper.Md5(IRCEmailPasswordHelper.GenerateRandomPassword(10));
@@ -285,8 +285,8 @@ namespace IRaCIS.Core.Application.Service
{
var addRole = _mapper.Map<UserRole>(generateUser);
addRole.Id = NewId.NextSequentialGuid();
addRole.UserTypeEnum = _userTypeRepository.Where(t => t.Id == userTypeId).Select(t => t.UserTypeEnum).First();
addRole.UserTypeId = userTypeId;
generateUser.UserRoleList.Add(addRole);
@@ -294,7 +294,15 @@ namespace IRaCIS.Core.Application.Service
var newAddUser = await _identityUserRepository.AddAsync(generateUser);
await _trialExternalUseRepository.BatchUpdateNoTrackingAsync(t => externalIdList.Contains(t.Id), u => new TrialExternalUser() { IsSystemUser = false, SystemUserId = newAddUser.Id });
await _trialExternalUseRepository.BatchUpdateNoTrackingAsync(t => externalIdList.Contains(t.Id), u => new TrialExternalUser()
{
IsSystemUser = false,
SystemUserId = newAddUser.Id,
FirstName = existSysUser.FirstName,
LastName = existSysUser.LastName,
OrganizationName = existSysUser.OrganizationName,
Phone = existSysUser.Phone,
});
existSysUser = newAddUser;
@@ -315,7 +323,7 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.NotOk("database dirty data ");
}
var findTrialUser = await _trialIdentityUserRepository.Where(t => t.TrialId == trialId && t.IdentityUserId == identityUserId, true).Include(t => t.TrialUserRoleList).FirstOrDefaultAsync();
var findTrialUser = await _trialIdentityUserRepository.Where(t => t.TrialId == trialId && t.IdentityUserId == identityUserId, true).Include(t => t.TrialUserRoleList).ThenInclude(t => t.UserRole).FirstOrDefaultAsync();
if (findTrialUser == null)
{
@@ -329,7 +337,7 @@ namespace IRaCIS.Core.Application.Service
TrialUserRoleList = userTypeIdList.Select(u => new TrialUserRole()
{
TrialId = trialId,
UserId = existSysUser.UserRoleList.FirstOrDefault(t=>t.UserTypeId==u).Id,
UserId = existSysUser.UserRoleList.FirstOrDefault(t => t.UserTypeId == u).Id,
}).ToList()
});
@@ -342,12 +350,12 @@ namespace IRaCIS.Core.Application.Service
foreach (var userTypeId in userTypeIdList)
{
var findTrialUserRole = findTrialUser.TrialUserRoleList.Where(t => t.UserId == userTypeId).FirstOrDefault();
var findTrialUserRole = findTrialUser.TrialUserRoleList.Where(t => t.UserRole.UserTypeId == userTypeId).FirstOrDefault();
if (findTrialUserRole == null)
{
//添加该角色
findTrialUser.TrialUserRoleList.Add(new TrialUserRole() { TrialUserId = findTrialUser.Id, TrialId = trialId, UserId = existSysUser.UserRoleList.FirstOrDefault(t => t.UserTypeId == userTypeId).Id });
findTrialUser.TrialUserRoleList.Add(new TrialUserRole() { TrialUserId = findTrialUser.Id, TrialId = trialId, UserId = existSysUser.UserRoleList.FirstOrDefault(t => t.UserTypeId == userTypeId).Id });
}
else
{
@@ -362,9 +370,10 @@ namespace IRaCIS.Core.Application.Service
}
}
await _trialIdentityUserRepository.SaveChangesAsync();
var usertyps = string.Join(',', userTypeList.Where(t=> userTypeIdList.Contains(t.UserTypeId)).Select(t => t.UserTypeShortName));
var usertyps = string.Join(',', userTypeList.Where(t => userTypeIdList.Contains(t.UserTypeId)).Select(t => t.UserTypeShortName));
await _mailVerificationService.ExternalUserJoinEmail(trialId, identityUserId, usertyps, sendEmail.BaseUrl, sendEmail.RouteUrl);