@@ -22,7 +22,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
[ApiExplorerSettings(GroupName = "Trial")]
|
||||
public class TrialExternalUserService(IRepository<TrialExternalUser> _trialExternalUseRepository,
|
||||
IRepository<UserRole> _userRoleRepository,
|
||||
IRepository<TrialUser> _trialUserRepository,
|
||||
IRepository<IdentityUser> _identityUserRepository,
|
||||
IRepository<TrialUserRole> _trialUserRepository,
|
||||
IRepository<Trial> _trialRepository,
|
||||
IRepository<UserType> _userTypeRepository,
|
||||
IMailVerificationService _mailVerificationService,
|
||||
@@ -64,7 +65,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
using (await @lock.AcquireAsync())
|
||||
{
|
||||
var existSysUser = await _userRoleRepository.FirstOrDefaultAsync(t => t.EMail == addOrEditTrialExternalUser.Email && t.UserTypeId == addOrEditTrialExternalUser.UserTypeId);
|
||||
var existSysUser = await _identityUserRepository.Where(t => t.EMail == addOrEditTrialExternalUser.Email, true).Include(t => t.UserRoleList).FirstOrDefaultAsync();
|
||||
|
||||
if (existSysUser != null)
|
||||
{
|
||||
@@ -93,13 +94,12 @@ namespace IRaCIS.Core.Application.Service
|
||||
await _trialExternalUseRepository.AddAsync(addEntity);
|
||||
|
||||
|
||||
var existUser = await _userRoleRepository.FirstOrDefaultAsync(t => t.EMail == addOrEditTrialExternalUser.Email && t.UserTypeId == addOrEditTrialExternalUser.UserTypeId);
|
||||
var trialType = await _trialRepository.Where(t => t.Id == addOrEditTrialExternalUser.TrialId).Select(t => t.TrialType).FirstOrDefaultAsync();
|
||||
|
||||
if (existUser != null)
|
||||
if (existSysUser != null)
|
||||
{
|
||||
addEntity.IsSystemUser = true;
|
||||
addEntity.SystemUserId = existUser.Id;
|
||||
addEntity.SystemUserId = existSysUser.Id;
|
||||
|
||||
}
|
||||
else
|
||||
@@ -107,7 +107,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
//生成账户 并插入
|
||||
|
||||
var generateUser = _mapper.Map<UserRole>(addOrEditTrialExternalUser);
|
||||
var generateUser = _mapper.Map<IdentityUser>(addOrEditTrialExternalUser);
|
||||
|
||||
if (trialType == TrialType.NoneOfficial)
|
||||
{
|
||||
@@ -124,20 +124,24 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
generateUser.UserName = generateUser.UserCode;
|
||||
|
||||
generateUser.UserTypeEnum = _userTypeRepository.Where(t => t.Id == generateUser.UserTypeId).Select(t => t.UserTypeEnum).First();
|
||||
|
||||
generateUser.Password = MD5Helper.Md5(IRCEmailPasswordHelper.GenerateRandomPassword(10));
|
||||
|
||||
generateUser.Status = UserStateEnum.Disable;
|
||||
|
||||
var newAddUser = await _userRoleRepository.AddAsync(generateUser);
|
||||
var addRole = _mapper.Map<UserRole>(generateUser);
|
||||
addRole.UserTypeEnum = _userTypeRepository.Where(t => t.Id == addOrEditTrialExternalUser.UserTypeId).Select(t => t.UserTypeEnum).First();
|
||||
addRole.UserTypeId = addOrEditTrialExternalUser.UserTypeId;
|
||||
|
||||
generateUser.UserRoleList = new List<UserRole>() { addRole };
|
||||
|
||||
var newAddUser = await _identityUserRepository.AddAsync(generateUser);
|
||||
|
||||
addEntity.IsSystemUser = false;
|
||||
addEntity.SystemUserId = newAddUser.Id;
|
||||
|
||||
|
||||
existUser = newAddUser;
|
||||
existSysUser = newAddUser;
|
||||
|
||||
}
|
||||
|
||||
@@ -146,7 +150,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
if (trialType == TrialType.OfficialTrial || trialType == TrialType.Training)
|
||||
{
|
||||
|
||||
if (existUser.IsTestUser)
|
||||
if (existSysUser.IsTestUser)
|
||||
{
|
||||
//---正式类型 、培训类型的项目 不允许加入测试用户
|
||||
throw new BusinessValidationFailedException(_localizer["TrialExternalUser_TestUserNotAllowed"]);
|
||||
@@ -157,7 +161,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
if (trialType == TrialType.NoneOfficial)
|
||||
{
|
||||
|
||||
if (existUser.IsTestUser == false)
|
||||
if (existSysUser.IsTestUser == false)
|
||||
{
|
||||
//---测试项目 不允许加入正式用户
|
||||
throw new BusinessValidationFailedException(_localizer["TrialExternalUser_FormalUserNotAllowed"]);
|
||||
@@ -185,7 +189,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
Id = addEntity.Id,
|
||||
Email=addEntity.Email,
|
||||
IsSystemUser=addEntity.IsSystemUser,
|
||||
SystemUserId=addEntity.SystemUserId
|
||||
SystemUserId=addEntity.SystemUserId,
|
||||
UserTypeId=addOrEditTrialExternalUser.UserTypeId
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -243,7 +248,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
foreach (var userInfo in sendEmail.SendUsers)
|
||||
{
|
||||
var userId = userInfo.SystemUserId;
|
||||
|
||||
var userTypeId = userInfo.UserTypeId;
|
||||
|
||||
|
||||
|
||||
@@ -251,7 +256,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId, true))
|
||||
{
|
||||
|
||||
await _trialUserRepository.AddAsync(new TrialUser() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now });
|
||||
await _trialUserRepository.AddAsync(new TrialUserRole() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now });
|
||||
|
||||
await _userRoleRepository.BatchUpdateNoTrackingAsync(t => t.Id == userId, u => new UserRole() { Status = UserStateEnum.Enable });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user