项目用户表增加初步修改
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-12-25 10:20:17 +08:00
parent 32c6d745b6
commit 26cba15742
39 changed files with 19508 additions and 783 deletions
@@ -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 });