增加用户映射
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>() CreateMap<UserRole, IdentityUserTypeDTO>()
.ForMember(d => d.UserTypeShortName, c => c.MapFrom(t => t.UserTypeRole.UserTypeShortName)); .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 = var doctorIntoGroupQueryable =
from intoGroup in _enrollRepository.Where(x => x.TrialId == trialId && x.EnrollStatus >= EnrollStatus.ConfirmIntoGroup) 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 doctor in _doctorRepository.AsQueryable() on intoGroup.DoctorId equals doctor.Id
join attachmentItem in _attachmentRepository.AsQueryable() on intoGroup.AttachmentId equals attachmentItem.Id into cc join attachmentItem in _attachmentRepository.AsQueryable() on intoGroup.AttachmentId equals attachmentItem.Id into cc
from attachment in cc.DefaultIfEmpty() from attachment in cc.DefaultIfEmpty()

View File

@ -161,24 +161,29 @@ namespace IRaCIS.Core.Application.Service
{ {
_userInfo.IsNotNeedInspection = true; _userInfo.IsNotNeedInspection = true;
var userList = _userRoleRepository.Where().ToList(); if ((await _identityUserRepository.FirstOrDefaultAsync()) == null)
foreach (var item in userList.GroupBy(t => t.EMail.Trim()))
{ {
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(); return ResponseOutput.Ok();
} }
@ -192,37 +197,43 @@ namespace IRaCIS.Core.Application.Service
{ {
_userInfo.IsNotNeedInspection = true; _userInfo.IsNotNeedInspection = true;
var list = _trialUserRoleReposiotry.Where().Select(t => new { t.TrialId, t.UserRole.IdentityUserId, t.UserId, t.JoinTime, t.RemoveTime }).ToList();
if ((await _trialIdentityUserRepository.FirstOrDefaultAsync()) == null)
foreach (var item in list.GroupBy(t => new { t.IdentityUserId, t.TrialId }))
{ {
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(); foreach (var item in list.GroupBy(t => new { t.IdentityUserId, t.TrialId }))
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) });
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(); return ResponseOutput.Ok();
} }

View File

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