邮件修改
continuous-integration/drone/push Build is running Details

Uat_IRC_Net10
he 2026-06-30 15:33:55 +08:00
parent 8cd8b7cf43
commit dd05e26feb
3 changed files with 28 additions and 12 deletions

View File

@ -51,7 +51,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
var systemDocQuery = var systemDocQuery =
from sysDoc in _systemDocumentRepository.AsQueryable(false) from sysDoc in _systemDocumentRepository.AsQueryable(false)
from identityUser in _identityUserRepository.AsQueryable(false).Where(t => t.Status == UserStateEnum.Enable&&!t.IsTestUser).Where(t => t.UserRoleList.Where(t => t.IsUserRoleDisabled == false).Any(t => sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId))) from identityUser in _identityUserRepository.AsQueryable(false).Where(t => t.Status == UserStateEnum.Enable).Where(t => t.UserRoleList.Where(t => t.IsUserRoleDisabled == false).Any(t => sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId)))
join confirmc in _systemDocConfirmedUserRepository.Where() on new { ConfirmUserId = identityUser.Id, SystemDocumentId = sysDoc.Id } equals new { confirmc.ConfirmUserId, confirmc.SystemDocumentId } into cc join confirmc in _systemDocConfirmedUserRepository.Where() on new { ConfirmUserId = identityUser.Id, SystemDocumentId = sysDoc.Id } equals new { confirmc.ConfirmUserId, confirmc.SystemDocumentId } into cc
from confirm in cc.DefaultIfEmpty() from confirm in cc.DefaultIfEmpty()
select new UnionDocumentWithConfirmInfoView() select new UnionDocumentWithConfirmInfoView()
@ -176,7 +176,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
systemDocQuery = systemDocQuery =
from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id)) from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id))
from identityUser in _identityUserRepository.AsQueryable(false) from identityUser in _identityUserRepository.AsQueryable(false)
.Where(t => t.Status == UserStateEnum.Enable && !t.IsTestUser && .Where(t => t.Status == UserStateEnum.Enable &&
t.UserRoleList.Where(t => t.IsUserRoleDisabled == false) t.UserRoleList.Where(t => t.IsUserRoleDisabled == false)
.Any(t => context.Message.NewUserTypeIds.Contains(t.UserTypeId) && .Any(t => context.Message.NewUserTypeIds.Contains(t.UserTypeId) &&
sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId))) sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId)))
@ -204,7 +204,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
systemDocQuery = systemDocQuery =
from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id)) from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id))
from identityUser in _identityUserRepository.AsQueryable(false) from identityUser in _identityUserRepository.AsQueryable(false)
.Where(t => t.Status == UserStateEnum.Enable && !t.IsTestUser && .Where(t => t.Status == UserStateEnum.Enable &&
t.UserRoleList.Where(t => t.IsUserRoleDisabled == false) t.UserRoleList.Where(t => t.IsUserRoleDisabled == false)
.Any(t => sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId))) .Any(t => sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId)))
select new UnionDocumentWithConfirmInfoView() select new UnionDocumentWithConfirmInfoView()

View File

@ -52,7 +52,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
var trialDocQuery = var trialDocQuery =
from trialDoc in _trialDocumentRepository.AsQueryable(true) from trialDoc in _trialDocumentRepository.AsQueryable(true)
join trial in _trialRepository.Where(x => x.IsDeleted == false) on trialDoc.TrialId equals trial.Id
join trialIdentityUser in _trialIdentityUserRepository.Where(x => x.IsDeleted == false) on trialDoc.TrialId equals trialIdentityUser.TrialId join trialIdentityUser in _trialIdentityUserRepository.Where(x => x.IsDeleted == false) on trialDoc.TrialId equals trialIdentityUser.TrialId
join trialUserRole in _trialUserRoleRepository.Where(x => x.IsDeleted == false) on trialIdentityUser.Id equals trialUserRole.TrialUserId join trialUserRole in _trialUserRoleRepository.Where(x => x.IsDeleted == false) on trialIdentityUser.Id equals trialUserRole.TrialUserId
join identityUser in _identityUserRepository.AsQueryable(false).Where(u => u.Status == UserStateEnum.Enable && !u.IsTestUser) join identityUser in _identityUserRepository.AsQueryable(false).Where(u => u.Status == UserStateEnum.Enable && !u.IsTestUser)
@ -72,7 +72,9 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
CurrentStaffTrainDays = trialDoc.CurrentStaffTrainDays, CurrentStaffTrainDays = trialDoc.CurrentStaffTrainDays,
NewStaffTrainDays = trialDoc.NewStaffTrainDays, NewStaffTrainDays = trialDoc.NewStaffTrainDays,
Id = trialDoc.Id, Id = trialDoc.Id,
TrialId= trialDoc.TrialId, TrialType= trial.TrialType,
IsTestUser= identityUser.IsTestUser,
TrialId = trialDoc.TrialId,
IsSystemDoc = false, IsSystemDoc = false,
CreateTime = trialDoc.CreateTime, CreateTime = trialDoc.CreateTime,
FullFilePath = trialDoc.Path, FullFilePath = trialDoc.Path,
@ -94,7 +96,11 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
}; };
var datalist = await trialDocQuery.IgnoreQueryFilters().Where(t => t.IsDeleted == false && t.ConfirmTime == null&&t.ConfirmTime==null) var datalist = await trialDocQuery.IgnoreQueryFilters().Where(t => t.IsDeleted == false && t.ConfirmTime == null&&t.ConfirmTime==null)
.ToListAsync(); .ToListAsync();
datalist = datalist.Where(x => x.SuggestFinishTime != null && x.SuggestFinishTime.Value.Date == DateTime.Now.Date)
datalist = datalist
.Where(x=>((x.TrialType== TrialType.OfficialTrial|| x.TrialType== TrialType.Training) && !x.IsTestUser) || (x.TrialType==TrialType.NoneOfficial &&x.IsTestUser))
.Where(x => x.SuggestFinishTime != null && x.SuggestFinishTime.Value.Date == DateTime.Now.Date)
.ToList(); .ToList();
var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList(); var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList();
var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync(); var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync();
@ -203,20 +209,21 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
Console.WriteLine($"只发送给新增项目的角色,角色数量: {context.Message.NewUserTypeIds.Count}"); Console.WriteLine($"只发送给新增项目的角色,角色数量: {context.Message.NewUserTypeIds.Count}");
} }
// 构建查询 // 构建查询
IQueryable<UnionDocumentWithConfirmInfoView> systemDocQuery; IQueryable<TrialSignDocView> trialDocQuery;
if (context.Message.NewUserTypeIds != null && context.Message.NewUserTypeIds.Any()) if (context.Message.NewUserTypeIds != null && context.Message.NewUserTypeIds.Any())
{ {
// 只查询新增角色的用户 // 只查询新增角色的用户
systemDocQuery = trialDocQuery =
from trialDoc in _trialDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id)) from trialDoc in _trialDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id))
join trial in _trialRepository.Where(x => x.IsDeleted == false) on trialDoc.TrialId equals trial.Id
join trialIdentityUser in _trialIdentityUserRepository.Where(x=>x.IsDeleted==false) on trialDoc.TrialId equals trialIdentityUser.TrialId join trialIdentityUser in _trialIdentityUserRepository.Where(x=>x.IsDeleted==false) on trialDoc.TrialId equals trialIdentityUser.TrialId
join trialUserRole in _trialUserRoleRepository.Where(x => x.IsDeleted == false) on trialIdentityUser.Id equals trialUserRole.TrialUserId join trialUserRole in _trialUserRoleRepository.Where(x => x.IsDeleted == false) on trialIdentityUser.Id equals trialUserRole.TrialUserId
join identityUser in _identityUserRepository.AsQueryable(false).Where(u => u.Status == UserStateEnum.Enable && !u.IsTestUser) join identityUser in _identityUserRepository.AsQueryable(false).Where(u => u.Status == UserStateEnum.Enable && !u.IsTestUser)
on trialIdentityUser.IdentityUserId equals identityUser.Id on trialIdentityUser.IdentityUserId equals identityUser.Id
where trialIdentityUser.TrialUserRoleList.Any(ur => !ur.IsDeleted && context.Message.NewUserTypeIds.Contains(ur.UserRole.UserTypeId) && trialDoc.NeedConfirmedUserTypeList.Any(c => c.NeedConfirmUserTypeId == ur.UserRole.UserTypeId)) where trialIdentityUser.TrialUserRoleList.Any(ur => !ur.IsDeleted && context.Message.NewUserTypeIds.Contains(ur.UserRole.UserTypeId) && trialDoc.NeedConfirmedUserTypeList.Any(c => c.NeedConfirmUserTypeId == ur.UserRole.UserTypeId))
select new UnionDocumentWithConfirmInfoView() select new TrialSignDocView()
{ {
IsSystemDoc = true, IsSystemDoc = true,
Id = trialDoc.Id, Id = trialDoc.Id,
@ -224,6 +231,8 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
CreateTime = trialDoc.CreateTime, CreateTime = trialDoc.CreateTime,
IsDeleted = trialDoc.IsDeleted, IsDeleted = trialDoc.IsDeleted,
SignViewMinimumMinutes = trialDoc.SignViewMinimumMinutes, SignViewMinimumMinutes = trialDoc.SignViewMinimumMinutes,
TrialType = trial.TrialType,
IsTestUser = identityUser.IsTestUser,
Name = trialDoc.Name, Name = trialDoc.Name,
Path = trialDoc.Path, Path = trialDoc.Path,
FileTypeId = trialDoc.FileTypeId, FileTypeId = trialDoc.FileTypeId,
@ -238,8 +247,9 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
else else
{ {
// 查询所有相关角色的用户 // 查询所有相关角色的用户
systemDocQuery = trialDocQuery =
from trialDoc in _trialDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id)) from trialDoc in _trialDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id))
join trialIdentityUser in _trialIdentityUserRepository.Where(x => x.IsDeleted == false) on trialDoc.TrialId equals trialIdentityUser.TrialId join trialIdentityUser in _trialIdentityUserRepository.Where(x => x.IsDeleted == false) on trialDoc.TrialId equals trialIdentityUser.TrialId
join trialUserRole in _trialUserRoleRepository.Where(x=>x.IsDeleted==false) on trialIdentityUser.Id equals trialUserRole.TrialUserId join trialUserRole in _trialUserRoleRepository.Where(x=>x.IsDeleted==false) on trialIdentityUser.Id equals trialUserRole.TrialUserId
@ -249,7 +259,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
where trialIdentityUser.TrialUserRoleList.Any(ur => !ur.IsDeleted &&trialDoc.NeedConfirmedUserTypeList.Any(c => c.NeedConfirmUserTypeId == ur.UserRole.UserTypeId)) where trialIdentityUser.TrialUserRoleList.Any(ur => !ur.IsDeleted &&trialDoc.NeedConfirmedUserTypeList.Any(c => c.NeedConfirmUserTypeId == ur.UserRole.UserTypeId))
select new UnionDocumentWithConfirmInfoView() select new TrialSignDocView()
{ {
IsSystemDoc = false, IsSystemDoc = false,
Id = trialDoc.Id, Id = trialDoc.Id,
@ -258,6 +268,8 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
CreateTime = trialDoc.CreateTime, CreateTime = trialDoc.CreateTime,
IsDeleted = trialDoc.IsDeleted, IsDeleted = trialDoc.IsDeleted,
SignViewMinimumMinutes = trialDoc.SignViewMinimumMinutes, SignViewMinimumMinutes = trialDoc.SignViewMinimumMinutes,
TrialType = trial.TrialType,
IsTestUser = identityUser.IsTestUser,
Name = trialDoc.Name, Name = trialDoc.Name,
Path = trialDoc.Path, Path = trialDoc.Path,
FileTypeId = trialDoc.FileTypeId, FileTypeId = trialDoc.FileTypeId,
@ -270,7 +282,9 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
}; };
} }
var datalist = await systemDocQuery.IgnoreQueryFilters().ToListAsync(); var datalist = await trialDocQuery
.IgnoreQueryFilters().Where(x => ((x.TrialType == TrialType.OfficialTrial || x.TrialType == TrialType.Training) && !x.IsTestUser) || (x.TrialType == TrialType.NoneOfficial && x.IsTestUser))
.ToListAsync();
var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList(); var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList();
var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync(); var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync();

View File

@ -87,7 +87,9 @@ namespace IRaCIS.Core.Application.Contracts
public string ExperimentName { get; set; } public string ExperimentName { get; set; }
public TrialType TrialType { get; set; }
public bool IsTestUser { get; set; }
} }