修改项目用户
continuous-integration/drone/push Build is passing Details

Test_HIR_Net8
hang 2025-08-22 13:39:53 +08:00
parent 806f829e08
commit 552509ad9e
2 changed files with 43 additions and 10 deletions

View File

@ -472,8 +472,13 @@ namespace IRaCIS.Application.Contracts
public class TrialUserAddCommand
{
[NotDefault]
public Guid IdentityUserId { get; set; }
[NotDefault]
public Guid UserId { get; set; }
[NotDefault]
public Guid TrialId { get; set; }

View File

@ -165,19 +165,47 @@ namespace IRaCIS.Core.Application.Service
public async Task<IResponseOutput> AddTrialUsers(TrialUserAddCommand[] userTrialCommands)
{
var addArray = _mapper.Map<TrialUserRole[]>(userTrialCommands);
var trialUsers = await _trialUseRoleRepository.AddRangeAsync(addArray);
foreach (var item in trialUsers)
foreach (var item in userTrialCommands.GroupBy(t => t.IdentityUserId))
{
item.JoinTime = DateTime.Now;
var currentUserRoleList = item.ToList();
var first = currentUserRoleList.FirstOrDefault();
var findTrialuser = await _trialIdentityUserRepository.Where(t => t.TrialId == first.TrialId && t.IdentityUserId == item.Key, true, true).Include(t => t.TrialUserRoleList).FirstOrDefaultAsync();
if (findTrialuser == null)
{
var currentUser = new TrialIdentityUser()
{
TrialId = first.TrialId,
IdentityUserId = item.Key,
JoinTime = DateTime.Now,
TrialUserRoleList = currentUserRoleList.Select(t => new TrialUserRole() { UserId = t.UserId, TrialId = t.TrialId }).ToList()
};
await _trialIdentityUserRepository.AddAsync(currentUser);
}
else
{
if (findTrialuser.IsDeleted == true)
{
findTrialuser.IsDeleted = false;
findTrialuser.DeletedTime = null;
findTrialuser.JoinTime = DateTime.Now;
findTrialuser.RemoveTime = null;
}
findTrialuser.TrialUserRoleList.AddRange(currentUserRoleList.Select(t => new TrialUserRole() { UserId = t.UserId, TrialId = t.TrialId, TrialUserId = findTrialuser.Id }).ToList());
}
var success = await _trialIdentityUserRepository.SaveChangesAsync();
}
var success = await _trialUseRoleRepository.SaveChangesAsync();
return ResponseOutput.Result(success);
return ResponseOutput.Ok();
}