增加用户映射
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
hang 2024-12-25 17:55:49 +08:00
parent 473e218b2b
commit 53bcdaa6ce
4 changed files with 46 additions and 32 deletions

View File

@ -163,6 +163,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<UserRole, IdentityUserTypeDTO>()
.ForMember(d => d.UserTypeShortName, c => c.MapFrom(t => t.UserTypeRole.UserTypeShortName));
CreateMap<UserBasicInfoCommand, IdentityUser>();
}
}

View File

@ -206,7 +206,7 @@ namespace IRaCIS.Core.Application.Service
var doctorIntoGroupQueryable =
from intoGroup in _enrollRepository.Where(x => x.TrialId == trialId && x.EnrollStatus >= EnrollStatus.ConfirmIntoGroup)
join allocateRule in _taskAllocationRuleRepository.AsQueryable() on intoGroup.Id equals allocateRule.EnrollId
join allocateRule in _taskAllocationRuleRepository.Where(x => x.TrialId == trialId) on intoGroup.Id equals allocateRule.EnrollId
join doctor in _doctorRepository.AsQueryable() on intoGroup.DoctorId equals doctor.Id
join attachmentItem in _attachmentRepository.AsQueryable() on intoGroup.AttachmentId equals attachmentItem.Id into cc
from attachment in cc.DefaultIfEmpty()

View File

@ -161,24 +161,29 @@ namespace IRaCIS.Core.Application.Service
{
_userInfo.IsNotNeedInspection = true;
var userList = _userRoleRepository.Where().ToList();
foreach (var item in userList.GroupBy(t => t.EMail.Trim()))
if ((await _identityUserRepository.FirstOrDefaultAsync()) == null)
{
var emailUserIdList = item.Select(t => t.Id).ToList();
var userList = _userRoleRepository.Where().ToList();
var identityUserId = NewId.NextSequentialGuid();
foreach (var item in userList.GroupBy(t => t.EMail.Trim()))
{
var emailUserIdList = item.Select(t => t.Id).ToList();
var identityUser = _mapper.Map<IdentityUser>(item.FirstOrDefault());
var identityUserId = NewId.NextSequentialGuid();
identityUser.Id = identityUserId;
var identityUser = _mapper.Map<IdentityUser>(item.FirstOrDefault());
await _identityUserRepository.AddAsync(identityUser);
identityUser.Id = identityUserId;
await _userRoleRepository.BatchUpdateNoTrackingAsync(t => emailUserIdList.Contains(t.Id), u => new UserRole() { IdentityUserId = identityUserId });
await _identityUserRepository.AddAsync(identityUser);
await _userRoleRepository.BatchUpdateNoTrackingAsync(t => emailUserIdList.Contains(t.Id), u => new UserRole() { IdentityUserId = identityUserId });
}
await _identityUserRepository.SaveChangesAsync();
}
await _identityUserRepository.SaveChangesAsync();
return ResponseOutput.Ok();
}
@ -192,37 +197,43 @@ namespace IRaCIS.Core.Application.Service
{
_userInfo.IsNotNeedInspection = true;
var list = _trialUserRoleReposiotry.Where().Select(t => new { t.TrialId, t.UserRole.IdentityUserId, t.UserId, t.JoinTime, t.RemoveTime }).ToList();
foreach (var item in list.GroupBy(t => new { t.IdentityUserId, t.TrialId }))
if ((await _trialIdentityUserRepository.FirstOrDefaultAsync()) == null)
{
var list = _trialUserRoleReposiotry.Where().Select(t => new { t.TrialId, t.UserRole.IdentityUserId, t.UserId, t.JoinTime, t.RemoveTime }).ToList();
var id = NewId.NextSequentialGuid();
var userRoleList = item.ToList();
var userIdList = item.Select(t => t.UserId).ToList();
var first = userRoleList.First();
var haveJoin = userRoleList.Any(t => t.JoinTime != null);
if (haveJoin)
foreach (var item in list.GroupBy(t => new { t.IdentityUserId, t.TrialId }))
{
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, JoinTime = userRoleList.Min(t => t.JoinTime) });
var id = NewId.NextSequentialGuid();
var userRoleList = item.ToList();
var userIdList = item.Select(t => t.UserId).ToList();
var first = userRoleList.First();
var haveJoin = userRoleList.Any(t => t.JoinTime != null);
if (haveJoin)
{
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, JoinTime = userRoleList.Min(t => t.JoinTime) });
}
else
{
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, RemoveTime = userRoleList.Max(t => t.RemoveTime) });
}
await _trialUserRoleReposiotry.BatchUpdateNoTrackingAsync(t => t.TrialId == item.Key.TrialId && userIdList.Contains(t.UserId), u => new TrialUserRole() { TrialUserId = id });
}
else
{
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, RemoveTime = userRoleList.Max(t => t.RemoveTime) });
}
await _trialUserRoleReposiotry.BatchUpdateNoTrackingAsync(t => t.TrialId == item.Key.TrialId && userIdList.Contains(t.UserId), u => new TrialUserRole() { TrialUserId = id });
await _trialIdentityUserRepository.SaveChangesAsync();
}
await _trialIdentityUserRepository.SaveChangesAsync();
return ResponseOutput.Ok();
}

View File

@ -52,6 +52,8 @@ public partial class Enroll : BaseFullAuditEntity
public int? Global { get; set; }
public int? Downtime { get; set; }
[Comment("生成账号 加入到项目中后 赋值")]
public Guid? DoctorUserId { get; set; }
}