diff --git a/IRaCIS.Core.API/appsettings.Prod_Event_IRC.json b/IRaCIS.Core.API/appsettings.Prod_Event_IRC.json
index 47936737a..b4d3027b1 100644
--- a/IRaCIS.Core.API/appsettings.Prod_Event_IRC.json
+++ b/IRaCIS.Core.API/appsettings.Prod_Event_IRC.json
@@ -117,7 +117,7 @@
},
"RequestDuplicationOptions": {
"IsEnabled": true,
- "DuplicationWindowMs": 200,
+ "DuplicationWindowMs": 500,
"CacheTimeSeconds": 5,
"ExcludedPaths": [
]
diff --git a/IRaCIS.Core.API/appsettings.Prod_IRC.json b/IRaCIS.Core.API/appsettings.Prod_IRC.json
index db86245af..671c9e50b 100644
--- a/IRaCIS.Core.API/appsettings.Prod_IRC.json
+++ b/IRaCIS.Core.API/appsettings.Prod_IRC.json
@@ -117,7 +117,7 @@
},
"RequestDuplicationOptions": {
"IsEnabled": true,
- "DuplicationWindowMs": 200,
+ "DuplicationWindowMs": 500,
"CacheTimeSeconds": 5,
"ExcludedPaths": [
]
diff --git a/IRaCIS.Core.API/appsettings.Test_IRC.json b/IRaCIS.Core.API/appsettings.Test_IRC.json
index 3e3eea57b..01c61ee21 100644
--- a/IRaCIS.Core.API/appsettings.Test_IRC.json
+++ b/IRaCIS.Core.API/appsettings.Test_IRC.json
@@ -206,7 +206,7 @@
// 是否启用重复请求检测
"IsEnabled": true,
// 重复请求时间窗口(毫秒)
- "DuplicationWindowMs": 200,
+ "DuplicationWindowMs": 500,
// 缓存请求时间(秒)
"CacheTimeSeconds": 5,
"ExcludedPaths": [
diff --git a/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json b/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json
index ebd2c44fe..22ca28136 100644
--- a/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json
+++ b/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json
@@ -97,7 +97,7 @@
},
"RequestDuplicationOptions": {
"IsEnabled": true,
- "DuplicationWindowMs": 200,
+ "DuplicationWindowMs": 500,
"CacheTimeSeconds": 5,
"ExcludedPaths": [
]
diff --git a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json b/IRaCIS.Core.API/appsettings.US_Prod_IRC.json
index 14b84eaf0..25dd2dc87 100644
--- a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json
+++ b/IRaCIS.Core.API/appsettings.US_Prod_IRC.json
@@ -122,7 +122,7 @@
},
"RequestDuplicationOptions": {
"IsEnabled": true,
- "DuplicationWindowMs": 200,
+ "DuplicationWindowMs": 500,
"CacheTimeSeconds": 5,
"ExcludedPaths": [
]
diff --git a/IRaCIS.Core.API/appsettings.US_Test_IRC.json b/IRaCIS.Core.API/appsettings.US_Test_IRC.json
index b455bdf8c..dd3b6a562 100644
--- a/IRaCIS.Core.API/appsettings.US_Test_IRC.json
+++ b/IRaCIS.Core.API/appsettings.US_Test_IRC.json
@@ -102,7 +102,7 @@
},
"RequestDuplicationOptions": {
"IsEnabled": true,
- "DuplicationWindowMs": 200,
+ "DuplicationWindowMs": 500,
"CacheTimeSeconds": 5,
"ExcludedPaths": [
]
diff --git a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json b/IRaCIS.Core.API/appsettings.US_Uat_IRC.json
index d9408c07b..73d2c1a1b 100644
--- a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json
+++ b/IRaCIS.Core.API/appsettings.US_Uat_IRC.json
@@ -107,7 +107,7 @@
},
"RequestDuplicationOptions": {
"IsEnabled": true,
- "DuplicationWindowMs": 200,
+ "DuplicationWindowMs": 500,
"CacheTimeSeconds": 5,
"ExcludedPaths": [
]
diff --git a/IRaCIS.Core.API/appsettings.Uat_IRC.json b/IRaCIS.Core.API/appsettings.Uat_IRC.json
index 2186b76d6..015052fe4 100644
--- a/IRaCIS.Core.API/appsettings.Uat_IRC.json
+++ b/IRaCIS.Core.API/appsettings.Uat_IRC.json
@@ -134,7 +134,7 @@
},
"RequestDuplicationOptions": {
"IsEnabled": true,
- "DuplicationWindowMs": 200,
+ "DuplicationWindowMs": 500,
"CacheTimeSeconds": 5,
"ExcludedPaths": [
]
diff --git a/IRaCIS.Core.API/appsettings.json b/IRaCIS.Core.API/appsettings.json
index 4889af5de..c0f519a6e 100644
--- a/IRaCIS.Core.API/appsettings.json
+++ b/IRaCIS.Core.API/appsettings.json
@@ -77,7 +77,7 @@
},
"RequestDuplicationOptions": {
"IsEnabled": true,
- "DuplicationWindowMs": 200,
+ "DuplicationWindowMs": 500,
"CacheTimeSeconds": 5,
"ExcludedPaths": [
]
diff --git a/IRaCIS.Core.Application/BusinessFilter/LegacyController/RequestDuplicationFilter.cs b/IRaCIS.Core.Application/BusinessFilter/LegacyController/RequestDuplicationFilter.cs
index a64d098bd..d462948dd 100644
--- a/IRaCIS.Core.Application/BusinessFilter/LegacyController/RequestDuplicationFilter.cs
+++ b/IRaCIS.Core.Application/BusinessFilter/LegacyController/RequestDuplicationFilter.cs
@@ -8,6 +8,7 @@ namespace IRaCIS.Core.Application.BusinessFilter.LegacyController
{
using Database.Api;
using DocumentFormat.OpenXml.InkML;
+ using IRaCIS.Core.Application.Helper.OtherTool;
using IRaCIS.Core.Application.Service.Common;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Infrastructure.Extention;
@@ -17,6 +18,7 @@ namespace IRaCIS.Core.Application.BusinessFilter.LegacyController
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.Mvc.ModelBinding;
+ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
@@ -35,7 +37,7 @@ namespace IRaCIS.Core.Application.BusinessFilter.LegacyController
///
/// logger
/// loggerHelper
- public class RequestDuplicationFilter(ILogger logger, IHttpContextAccessor accessor, IUserInfo _userInfo, IStringLocalizer _localizer, IOptionsMonitor RequestDuplicationOptionsMonitor) : ExceptionFilterAttribute, IAsyncActionFilter
+ public class RequestDuplicationFilter(ILogger logger, IHttpContextAccessor accessor, IUserInfo _userInfo, IStringLocalizer _localizer, IOptionsMonitor RequestDuplicationOptionsMonitor, IConfiguration _config) : ExceptionFilterAttribute, IAsyncActionFilter
{
///
/// 传入的参数
@@ -118,11 +120,51 @@ namespace IRaCIS.Core.Application.BusinessFilter.LegacyController
RequestDuplicationOptionsMonitor.CurrentValue.DuplicationWindowMs);
if (!isAdded)
{
+ SendRequestDuplicationWeComNotice(requestPath);
+ logger.LogError($"重复请求出现错误:{this.Intoparam}");
throw new BusinessValidationFailedException(_localizer["RequestDuplicationFilter_RequestDuplication"], ApiResponseCodeEnum.BusinessValidationFailed);
}
}
}
+ private void SendRequestDuplicationWeComNotice(string requestPath)
+ {
+ try
+ {
+ bool isOpenWeComNotice = _config.GetValue("WeComNoticeConfig:IsOpenWeComNotice");
+
+ if (isOpenWeComNotice)
+ {
+ string webhook = _config["WeComNoticeConfig:WebhookUrl"] ?? string.Empty;
+
+ var uri = new Uri(_config["SystemEmailSendConfig:SiteUrl"]);
+ var baseUrl = uri.GetLeftPart(UriPartial.Authority);
+
+ var userList = _config.GetSection("WeComNoticeConfig:APINoticeUserList").Get();
+
+ var request = accessor?.HttpContext?.Request;
+
+ _ = WeComNotifier.SendAlertAsync(
+ webhook: webhook,
+ alert: new WeComAlert
+ {
+ Env = baseUrl,
+ UserName = _userInfo.UserName.IsNotNullOrEmpty() ? $"{_userInfo.UserName}({_userInfo.UserTypeShortName})" : "匿名",
+ Api = $"{request?.Method} {requestPath}",
+ Message = "重复请求拦截",
+ JsonData = this.Intoparam,
+ Stack = string.Empty,
+ AtUsers = userList ?? []
+ }
+ );
+ }
+ }
+ catch (Exception ex)
+ {
+ logger.LogError($"重复请求过滤器里发送企业微信出现错误:{ex.Message}");
+ }
+ }
+
public string GenerateParameterHash(string parameters)
{
if (string.IsNullOrEmpty(parameters))
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 2d1cb6b88..fb63be48d 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -16282,7 +16282,7 @@
logger
loggerHelper
-
+
请求拦截 请求前后的操作
diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs
index b07ec8da6..d9361c315 100644
--- a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs
+++ b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs
@@ -51,11 +51,13 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
var systemDocQuery =
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
from confirm in cc.DefaultIfEmpty()
- select new UnionDocumentWithConfirmInfoView()
+ select new TriaAndSystemlSignDocView()
{
+ DocLanguageType=sysDoc.DocLanguageType,
+ UserWorkLanguage=identityUser.UserWorkLanguage,
IsSystemDoc = true,
Id = sysDoc.Id,
CreateTime = sysDoc.CreateTime,
@@ -79,7 +81,9 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
};
var datalist = await systemDocQuery.IgnoreQueryFilters().Where(t => t.IsDeleted == false && t.ConfirmTime == null)
.ToListAsync();
- datalist = datalist.Where(x => x.SuggestFinishTime != null && x.SuggestFinishTime.Value.Date == DateTime.Now.Date)
+ datalist = datalist
+ .Where(x=>x.DocLanguageType == DocLanguageType.CN_US || (int)x.DocLanguageType == (int)x.UserWorkLanguage)
+ .Where(x => x.SuggestFinishTime != null && x.SuggestFinishTime.Value.Date == DateTime.Now.Date)
.Where(x => x.IsNeedSendEmial).ToList();
var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList();
var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync();
@@ -168,7 +172,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
Console.WriteLine($"只发送给新增的角色,角色数量: {context.Message.NewUserTypeIds.Count}");
}
// 构建查询
- IQueryable systemDocQuery;
+ IQueryable systemDocQuery;
if (context.Message.NewUserTypeIds != null && context.Message.NewUserTypeIds.Any())
{
@@ -176,12 +180,14 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
systemDocQuery =
from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id))
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)
.Any(t => context.Message.NewUserTypeIds.Contains(t.UserTypeId) &&
sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId)))
- select new UnionDocumentWithConfirmInfoView()
+ select new TriaAndSystemlSignDocView()
{
+ DocLanguageType = sysDoc.DocLanguageType,
+ UserWorkLanguage = identityUser.UserWorkLanguage,
IsSystemDoc = true,
Id = sysDoc.Id,
CreateTime = sysDoc.CreateTime,
@@ -204,11 +210,13 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
systemDocQuery =
from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id))
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)
.Any(t => sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId)))
- select new UnionDocumentWithConfirmInfoView()
+ select new TriaAndSystemlSignDocView()
{
+ DocLanguageType = sysDoc.DocLanguageType,
+ UserWorkLanguage = identityUser.UserWorkLanguage,
IsSystemDoc = true,
Id = sysDoc.Id,
CreateTime = sysDoc.CreateTime,
@@ -226,7 +234,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
};
}
var datalist = await systemDocQuery.IgnoreQueryFilters().Where(x => x.IsNeedSendEmial).ToListAsync();
-
+ datalist = datalist.Where(x => x.DocLanguageType == DocLanguageType.CN_US || (int)x.DocLanguageType == (int)x.UserWorkLanguage).ToList();
var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList();
var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync();
diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs
index 1a555bc73..0a2bc5fa1 100644
--- a/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs
+++ b/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs
@@ -52,7 +52,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
var trialDocQuery =
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 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)
@@ -64,15 +64,18 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
from confirm in cc.DefaultIfEmpty()
where trialIdentityUser.TrialUserRoleList.Any(ur => !ur.IsDeleted && trialDoc.NeedConfirmedUserTypeList.Any(c => c.NeedConfirmUserTypeId == ur.UserRole.UserTypeId))
- select new TrialSignDocView()
+ select new TriaAndSystemlSignDocView()
{
+
TrialCode = trialDoc.Trial.TrialCode,
ResearchProgramNo = trialDoc.Trial.ResearchProgramNo,
ExperimentName = trialDoc.Trial.ExperimentName,
CurrentStaffTrainDays = trialDoc.CurrentStaffTrainDays,
NewStaffTrainDays = trialDoc.NewStaffTrainDays,
Id = trialDoc.Id,
- TrialId= trialDoc.TrialId,
+ TrialType= trial.TrialType,
+ IsTestUser= identityUser.IsTestUser,
+ TrialId = trialDoc.TrialId,
IsSystemDoc = false,
CreateTime = trialDoc.CreateTime,
FullFilePath = trialDoc.Path,
@@ -94,7 +97,11 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
};
var datalist = await trialDocQuery.IgnoreQueryFilters().Where(t => t.IsDeleted == false && t.ConfirmTime == null&&t.ConfirmTime==null)
.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();
var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList();
var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync();
@@ -203,20 +210,21 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
Console.WriteLine($"只发送给新增项目的角色,角色数量: {context.Message.NewUserTypeIds.Count}");
}
// 构建查询
- IQueryable systemDocQuery;
+ IQueryable trialDocQuery;
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))
+ 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 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)
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))
- select new UnionDocumentWithConfirmInfoView()
+ select new TriaAndSystemlSignDocView()
{
IsSystemDoc = true,
Id = trialDoc.Id,
@@ -224,6 +232,8 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
CreateTime = trialDoc.CreateTime,
IsDeleted = trialDoc.IsDeleted,
SignViewMinimumMinutes = trialDoc.SignViewMinimumMinutes,
+ TrialType = trial.TrialType,
+ IsTestUser = identityUser.IsTestUser,
Name = trialDoc.Name,
Path = trialDoc.Path,
FileTypeId = trialDoc.FileTypeId,
@@ -238,8 +248,9 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
else
{
// 查询所有相关角色的用户
- systemDocQuery =
+ trialDocQuery =
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 trialUserRole in _trialUserRoleRepository.Where(x=>x.IsDeleted==false) on trialIdentityUser.Id equals trialUserRole.TrialUserId
@@ -249,7 +260,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
where trialIdentityUser.TrialUserRoleList.Any(ur => !ur.IsDeleted &&trialDoc.NeedConfirmedUserTypeList.Any(c => c.NeedConfirmUserTypeId == ur.UserRole.UserTypeId))
- select new UnionDocumentWithConfirmInfoView()
+ select new TriaAndSystemlSignDocView()
{
IsSystemDoc = false,
Id = trialDoc.Id,
@@ -258,6 +269,8 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
CreateTime = trialDoc.CreateTime,
IsDeleted = trialDoc.IsDeleted,
SignViewMinimumMinutes = trialDoc.SignViewMinimumMinutes,
+ TrialType = trial.TrialType,
+ IsTestUser = identityUser.IsTestUser,
Name = trialDoc.Name,
Path = trialDoc.Path,
FileTypeId = trialDoc.FileTypeId,
@@ -270,7 +283,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 userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync();
diff --git a/IRaCIS.Core.Application/Service/Document/DTO/SystemDocumentViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/SystemDocumentViewModel.cs
index 02e7e2dde..e192c1bfd 100644
--- a/IRaCIS.Core.Application/Service/Document/DTO/SystemDocumentViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Document/DTO/SystemDocumentViewModel.cs
@@ -80,14 +80,18 @@ namespace IRaCIS.Core.Application.Contracts
}
- public class TrialSignDocView : UnionDocumentWithConfirmInfoView
+ public class TriaAndSystemlSignDocView : UnionDocumentWithConfirmInfoView
{
public string TrialCode { get; set; }
public string ResearchProgramNo { get; set; }
public string ExperimentName { get; set; }
+ public TrialType TrialType { get; set; }
+ public bool IsTestUser { get; set; }
+
+ public UserWorkLanguage UserWorkLanguage { get; set; }
}
@@ -365,6 +369,8 @@ namespace IRaCIS.Core.Application.Contracts
public DocLanguageType DocLanguageType { get; set; }
+
+
}
diff --git a/IRaCIS.Core.Application/Service/Document/SystemDocumentService.cs b/IRaCIS.Core.Application/Service/Document/SystemDocumentService.cs
index 4e70aa087..cb1da9823 100644
--- a/IRaCIS.Core.Application/Service/Document/SystemDocumentService.cs
+++ b/IRaCIS.Core.Application/Service/Document/SystemDocumentService.cs
@@ -216,6 +216,8 @@ namespace IRaCIS.Core.Application.Services
return ResponseOutput.Result(true);
}
+
+
///
/// 下线系统文档
///
diff --git a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
index 680450732..ed708e630 100644
--- a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
+++ b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
@@ -153,7 +153,7 @@ namespace IRaCIS.Core.Application.Services
}
[HttpPost]
- public async Task> GetTrialSignDocumentList(TrialDocQuery inQuery)
+ public async Task> GetTrialSignDocumentList(TrialDocQuery inQuery)
{
var trialDocQueryable = from trialDoc in _trialDocumentRepository.Where(t => t.IsPublish)
.WhereIf(inQuery.TrialId != null, t => t.TrialId == inQuery.TrialId)
@@ -164,7 +164,7 @@ namespace IRaCIS.Core.Application.Services
new { trialUser.IdentityUserId, TrialDocumentId = trialDoc.Id } equals new { IdentityUserId = confirm.ConfirmUserId, confirm.TrialDocumentId } into cc
from confirm in cc.DefaultIfEmpty()
- select new TrialSignDocView()
+ select new TriaAndSystemlSignDocView()
{
TrialCode = trialDoc.Trial.TrialCode,
ResearchProgramNo = trialDoc.Trial.ResearchProgramNo,