Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -583,6 +583,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
saveItem.IsTestUser = true;
|
||||
}
|
||||
|
||||
saveItem.UserCeateSource = UserCeateSource.ReviewerSelect;
|
||||
saveItem.TrialId = trialId;
|
||||
|
||||
saveItem.Code = _identityUserRepository.Select(t => t.Code).DefaultIfEmpty().Max() + 1;
|
||||
|
||||
|
||||
@@ -336,6 +336,18 @@ namespace IRaCIS.Application.Contracts
|
||||
public DateTime? LastChangePassWordTime { get; set; }
|
||||
|
||||
public List<IdentityUserTypeDTO> UserRoleList { get; set; }
|
||||
|
||||
#region 用户来源
|
||||
|
||||
public UserCeateSource UserCeateSource { get; set; }
|
||||
|
||||
public Guid? TrialId { get; set; }
|
||||
|
||||
public string TrialCode { get; set; }
|
||||
|
||||
public string ResearchProgramNo { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -93,6 +93,12 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
}
|
||||
|
||||
|
||||
public class UserTypeSelectDto
|
||||
{
|
||||
public Guid UserTypeId { get; set; }
|
||||
public string UserTypeShortName { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public class UserTypeSimpleDTO
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
@@ -579,7 +579,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
saveItem.OrganizationName = organizationName;
|
||||
}
|
||||
|
||||
|
||||
saveItem.UserCeateSource = UserCeateSource.AdminCreate;
|
||||
saveItem.Password = MD5Helper.Md5(IRCEmailPasswordHelper.GenerateRandomPassword(10));
|
||||
|
||||
var addRoleList = new List<UserRole>();
|
||||
|
||||
@@ -160,8 +160,7 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
{
|
||||
//排除其他组的用户
|
||||
var query = _userTypeRepository
|
||||
.WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin, t => t.IsEnable == true)
|
||||
.Where(x => x.UserTypeEnum != UserTypeEnum.SuperAdmin)
|
||||
.Where(x => x.UserTypeEnum != UserTypeEnum.SuperAdmin && x.IsEnable==true)
|
||||
.Where(t => !t.UserTypeGroupList.Any(t => t.Group.Code == "3"))
|
||||
.OrderBy(t => t.UserTypeShortName).ProjectTo<TrialUserType>(_mapper.ConfigurationProvider);
|
||||
|
||||
|
||||
@@ -152,7 +152,9 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
CreateMap<IdentityUser, UserBasicInfo>()
|
||||
.ForMember(d => d.IdentityUserId, c => c.MapFrom(t => t.Id));
|
||||
CreateMap<IdentityUser, UserListDTO>();
|
||||
CreateMap<IdentityUser, UserListDTO>()
|
||||
.ForMember(d => d.TrialCode, u => u.MapFrom(s => s.Trial.TrialCode))
|
||||
.ForMember(d => d.ResearchProgramNo, u => u.MapFrom(s => s.Trial.ResearchProgramNo));
|
||||
|
||||
CreateMap<UserAddUserType, UserRole>().ReverseMap();
|
||||
|
||||
@@ -172,7 +174,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
CreateMap<UpdateTrialUserCommand, TrialIdentityUser>();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -925,7 +925,8 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
|
||||
//generateUser.UserName = generateUser.UserCode;
|
||||
|
||||
|
||||
generateUser.UserCeateSource = UserCeateSource.SiteSruvey;
|
||||
generateUser.TrialId = trialId;
|
||||
generateUser.Password = MD5Helper.Md5(IRCEmailPasswordHelper.GenerateRandomPassword(10));
|
||||
|
||||
generateUser.Status = UserStateEnum.Enable;
|
||||
@@ -1168,6 +1169,8 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
|
||||
//generateUser.UserName = generateUser.UserCode;
|
||||
|
||||
generateUser.UserCeateSource = UserCeateSource.SiteSruvey;
|
||||
generateUser.TrialId = trialId;
|
||||
generateUser.Password = MD5Helper.Md5(IRCEmailPasswordHelper.GenerateRandomPassword(10));
|
||||
|
||||
generateUser.Status = UserStateEnum.Enable;
|
||||
|
||||
@@ -103,6 +103,44 @@ namespace IRaCIS.Application.Contracts
|
||||
public string FullName { get; set; }
|
||||
}
|
||||
|
||||
public class IdentityUserJoinedTrialQuery : PageInput
|
||||
{
|
||||
[NotDefault]
|
||||
public Guid IdentityUserId { get; set; }
|
||||
public string? TrialCode { get; set; }
|
||||
|
||||
public string? ResearchProgramNo { get; set; }
|
||||
|
||||
public string? ExperimentName { get; set; }
|
||||
|
||||
public Guid? UserTypeId { get; set; }
|
||||
|
||||
public bool? IsDeleted { get; set; }
|
||||
}
|
||||
|
||||
public class IdentityUserJoinedTrialView
|
||||
{
|
||||
public Guid TrialId { get; set; }
|
||||
public string TrialCode { get; set; }
|
||||
|
||||
public string ResearchProgramNo { get; set; }
|
||||
|
||||
public string ExperimentName { get; set; }
|
||||
|
||||
public string TrialStatusStr { get; set; }
|
||||
|
||||
public DateTime TrialCreateTime { get; set; }
|
||||
|
||||
public List<UserTypeSelectDto> TrialUserRoleList { get; set; }
|
||||
|
||||
public bool IsDeleted { get; set; }
|
||||
|
||||
public DateTime? RemoveTime { get; set; }
|
||||
|
||||
public DateTime? JoinTime { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class TrialMaintenanceDTO : UserTrialCommand
|
||||
{
|
||||
|
||||
@@ -110,7 +148,7 @@ namespace IRaCIS.Application.Contracts
|
||||
public bool IsDeleted { get; set; }
|
||||
|
||||
[DictionaryTranslateAttribute("IsSiteDisable")]
|
||||
|
||||
|
||||
public bool RoleIsDeleted { get; set; }
|
||||
|
||||
public DateTime? DeletedTime { get; set; }
|
||||
@@ -484,7 +522,7 @@ namespace IRaCIS.Application.Contracts
|
||||
|
||||
public bool? IsUserRoleDisabled { get; set; }
|
||||
|
||||
public string? EMail { get; set; }
|
||||
public string? EMail { get; set; }
|
||||
}
|
||||
|
||||
public class TrialUserScreeningDTO : TrialUserAddCommand
|
||||
|
||||
@@ -280,7 +280,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
//generateUser.UserName = generateUser.UserCode;
|
||||
|
||||
|
||||
generateUser.UserCeateSource = UserCeateSource.External;
|
||||
generateUser.TrialId = trialId;
|
||||
generateUser.Password = MD5Helper.Md5(IRCEmailPasswordHelper.GenerateRandomPassword(10));
|
||||
|
||||
generateUser.Status = UserStateEnum.Enable;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using FellowOakDicom;
|
||||
using IRaCIS.Application.Contracts;
|
||||
using IRaCIS.Application.Interfaces;
|
||||
using IRaCIS.Core.Application.Contracts;
|
||||
using IRaCIS.Core.Application.Contracts.DTO;
|
||||
using IRaCIS.Core.Application.Filter;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
@@ -28,6 +29,34 @@ namespace IRaCIS.Core.Application.Service
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<PageOutput<IdentityUserJoinedTrialView>> GetUserJoinedTrialList(IdentityUserJoinedTrialQuery inQuery)
|
||||
{
|
||||
var list = await _trialIdentityUserRepository.Where(t => t.IdentityUserId == inQuery.IdentityUserId, false, true)
|
||||
.WhereIf(!string.IsNullOrEmpty(inQuery.TrialCode), o => o.Trial.TrialCode.Contains(inQuery.TrialCode))
|
||||
.WhereIf(!string.IsNullOrEmpty(inQuery.ResearchProgramNo), o => o.Trial.ResearchProgramNo.Contains(inQuery.ResearchProgramNo))
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ExperimentName), o => o.Trial.ExperimentName.Contains(inQuery.ExperimentName))
|
||||
.WhereIf(inQuery.UserTypeId != null, o => o.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == inQuery.UserTypeId))
|
||||
.WhereIf(inQuery.IsDeleted != null, t => t.IsDeleted == inQuery.IsDeleted)
|
||||
.Select(t => new IdentityUserJoinedTrialView()
|
||||
{
|
||||
TrialId = t.TrialId,
|
||||
TrialCode = t.Trial.TrialCode,
|
||||
TrialCreateTime = t.Trial.CreateTime,
|
||||
ExperimentName = t.Trial.ExperimentName,
|
||||
ResearchProgramNo = t.Trial.ResearchProgramNo,
|
||||
TrialStatusStr = t.Trial.TrialStatusStr,
|
||||
|
||||
IsDeleted = t.IsDeleted,
|
||||
JoinTime = t.JoinTime,
|
||||
RemoveTime = t.RemoveTime,
|
||||
TrialUserRoleList = t.TrialUserRoleList.Select(t => new UserTypeSelectDto() { UserTypeId = t.UserRole.UserTypeRole.Id, UserTypeShortName = t.UserRole.UserTypeRole.UserTypeShortName }).ToList(),
|
||||
|
||||
}).ToPagedListAsync(inQuery);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
#region 多账户调整已修改
|
||||
/// <summary>
|
||||
/// Setting页面 获取项目参与人员列表
|
||||
|
||||
@@ -27,6 +27,7 @@ using MiniExcelLibs;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using NPOI.XWPF.UserModel;
|
||||
using System.Globalization;
|
||||
using System.Linq.Dynamic.Core;
|
||||
using System.Reflection.Metadata.Ecma335;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
@@ -155,8 +156,44 @@ namespace IRaCIS.Core.Application.Service
|
||||
}
|
||||
|
||||
|
||||
[AllowAnonymous]
|
||||
public async Task<IResponseOutput> UserCreateSourceDeal([FromServices] IRepository<IdentityUser> _identityUserRepository,
|
||||
[FromServices] IRepository<TrialUserRole> _trialUserRoleRepository)
|
||||
{
|
||||
var list = _userRoleRepository.Where().IgnoreQueryFilters().ToList();
|
||||
|
||||
foreach (var item in list.GroupBy(t => t.IdentityUserId))
|
||||
{
|
||||
var userRoleList = item.OrderBy(t => t.CreateTime).ToList();
|
||||
|
||||
var firstCreateRole = userRoleList.FirstOrDefault();
|
||||
|
||||
var firstTrialId = _trialUserRoleRepository.Where(t => t.TrialUser.IdentityUserId == firstCreateRole.IdentityUserId).IgnoreQueryFilters().OrderBy(t => t.CreateTime).Select(t => t.TrialId).FirstOrDefault();
|
||||
|
||||
|
||||
if (firstCreateRole.UserTypeEnum == UserTypeEnum.IndependentReviewer)
|
||||
{
|
||||
await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == firstCreateRole.IdentityUserId, u => new Domain.Models.IdentityUser() { UserCeateSource = UserCeateSource.ReviewerSelect, TrialId = firstTrialId });
|
||||
}
|
||||
else if (firstCreateRole.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator || firstCreateRole.UserTypeEnum == UserTypeEnum.CRA)
|
||||
{
|
||||
await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == firstCreateRole.IdentityUserId, u => new Domain.Models.IdentityUser() { UserCeateSource = UserCeateSource.AdminCreate, TrialId = firstTrialId });
|
||||
}
|
||||
else if (firstCreateRole.UserTypeEnum == UserTypeEnum.SPM || firstCreateRole.UserTypeEnum == UserTypeEnum.CPM ||
|
||||
firstCreateRole.UserTypeEnum == UserTypeEnum.SMM || firstCreateRole.UserTypeEnum == UserTypeEnum.CMM ||
|
||||
firstCreateRole.UserTypeEnum == UserTypeEnum.EA || firstCreateRole.UserTypeEnum == UserTypeEnum.MC)
|
||||
{
|
||||
await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == firstCreateRole.IdentityUserId, u => new Domain.Models.IdentityUser() { UserCeateSource = UserCeateSource.AdminCreate, TrialId = firstTrialId });
|
||||
}
|
||||
else
|
||||
{
|
||||
await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == firstCreateRole.IdentityUserId, u => new Domain.Models.IdentityUser() { UserCeateSource = UserCeateSource.AdminCreate, TrialId = firstTrialId });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user