From edc0734f9fa4d1f785e0af97287f5df91d4a73c6 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 7 Dec 2023 10:01:01 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/Progranm.cs | 74 ++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/IRaCIS.Core.API/Progranm.cs b/IRaCIS.Core.API/Progranm.cs index c58aaf662..38d818514 100644 --- a/IRaCIS.Core.API/Progranm.cs +++ b/IRaCIS.Core.API/Progranm.cs @@ -1,4 +1,4 @@ -using System; +锘縰sing System; using Autofac.Extensions.DependencyInjection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; @@ -28,8 +28,8 @@ using OfficeOpenXml.Utils; -#region 获取环境变量 -//以配置文件为准,否则 从url中取环境值(服务以命令行传递参数启动,配置文件配置了就不需要传递环境参数) +#region 鑾峰彇鐜鍙橀噺 +//浠ラ厤缃枃浠朵负鍑嗭紝鍚﹀垯 浠巙rl涓彇鐜鍊(鏈嶅姟浠ュ懡浠よ浼犻掑弬鏁板惎鍔紝閰嶇疆鏂囦欢閰嶇疆浜嗗氨涓嶉渶瑕佷紶閫掔幆澧冨弬鏁) var config = new ConfigurationBuilder() .AddEnvironmentVariables() .Build(); @@ -51,7 +51,7 @@ var builder = WebApplication.CreateBuilder(new WebApplicationOptions EnvironmentName = enviromentName }); -#region 兼容windows 服务命令行的方式 +#region 鍏煎windows 鏈嶅姟鍛戒护琛岀殑鏂瑰紡 //foreach (var arg in args) //{ @@ -69,7 +69,7 @@ if (urlsIndex > -1) #endregion -#region 主机配置 +#region 涓绘満閰嶇疆 NewId.SetProcessIdProvider(new CurrentProcessIdProvider()); @@ -93,15 +93,15 @@ builder.Host #endregion -#region 配置服务 +#region 閰嶇疆鏈嶅姟 var _configuration = builder.Configuration; -//健康检查 +//鍋ュ悍妫鏌 builder.Services.AddHealthChecks(); -//本地化 +//鏈湴鍖 builder.Services.AddJsonLocalization(options => options.ResourcesPath = "Resources"); -// 异常、参数统一验证过滤器、Json序列化配置、字符串参数绑型统一Trim() +// 寮傚父銆佸弬鏁扮粺涓楠岃瘉杩囨护鍣ㄣ丣son搴忓垪鍖栭厤缃佸瓧绗︿覆鍙傛暟缁戝瀷缁熶竴Trim() builder.Services.AddControllers(options => { //options.Filters.Add(); @@ -115,7 +115,7 @@ builder.Services.AddControllers(options => } }) - .AddNewtonsoftJsonSetup(); // NewtonsoftJson 序列化 处理 + .AddNewtonsoftJsonSetup(); // NewtonsoftJson 搴忓垪鍖 澶勭悊 builder.Services.AddOptions().Configure(_configuration.GetSection("SystemEmailSendConfig")); builder.Services.AddOptions().Configure(_configuration.GetSection("BasicSystemConfig")); @@ -123,43 +123,43 @@ builder.Services.AddOptions().Configure(_configuration.GetSect builder.Services.AddOptions().Configure(_configuration.GetSection("ObjectStoreService")); -//动态WebApi + UnifiedApiResultFilter 省掉控制器代码 +//鍔ㄦ乄ebApi + UnifiedApiResultFilter 鐪佹帀鎺у埗鍣ㄤ唬鐮 builder.Services.AddDynamicWebApiSetup(); //AutoMapper builder.Services.AddAutoMapperSetup(); //EF ORM QueryWithNoLock builder.Services.AddEFSetup(_configuration); -//Http 响应压缩 +//Http 鍝嶅簲鍘嬬缉 builder.Services.AddResponseCompressionSetup(); -//Swagger Api 文档 +//Swagger Api 鏂囨。 builder.Services.AddSwaggerSetup(); -//JWT Token 验证 +//JWT Token 楠岃瘉 builder.Services.AddJWTAuthSetup(_configuration); -// MediatR 进程内消息 事件解耦 从程序集中 注册命令和handler对应关系 +// MediatR 杩涚▼鍐呮秷鎭 浜嬩欢瑙h 浠庣▼搴忛泦涓 娉ㄥ唽鍛戒护鍜宧andler瀵瑰簲鍏崇郴 builder.Services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblyContaining()); -// EasyCaching 缓存 +// EasyCaching 缂撳瓨 builder.Services.AddEasyCachingSetup(_configuration); -// hangfire 定时任务框架 有界面,更友好~ +// hangfire 瀹氭椂浠诲姟妗嗘灦 鏈夌晫闈紝鏇村弸濂絶 builder.Services.AddhangfireSetup(_configuration); -//Serilog 日志可视化 LogDashboard日志 +//Serilog 鏃ュ織鍙鍖 LogDashboard鏃ュ織 builder.Services.AddLogDashboardSetup(); builder.Services.AddJsonConfigSetup(_configuration); -//转发头设置 获取真实IP +//杞彂澶磋缃 鑾峰彇鐪熷疄IP builder.Services.Configure(options => { options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; }); -//Dicom影像渲染图片 跨平台 +//Dicom褰卞儚娓叉煋鍥剧墖 璺ㄥ钩鍙 builder.Services.AddDicomSetup(); -// 实时应用 +// 瀹炴椂搴旂敤 builder.Services.AddSignalR(); builder.Services.AddSingleton(); @@ -168,18 +168,18 @@ builder.Services.AddSingleton(); -#region 历史废弃配置 +#region 鍘嗗彶搴熷純閰嶇疆 //builder.Services.AddMemoryCache(); -////上传限制 配置 +////涓婁紶闄愬埗 閰嶇疆 //builder.Services.Configure(options => //{ // options.MultipartBodyLengthLimit = int.MaxValue; // options.ValueCountLimit = int.MaxValue; // options.ValueLengthLimit = int.MaxValue; //}); -//IP 限流 可设置白名单 或者黑名单 +//IP 闄愭祦 鍙缃櫧鍚嶅崟 鎴栬呴粦鍚嶅崟 //services.AddIpPolicyRateLimitSetup(_configuration); -// 用户类型 策略授权 +// 鐢ㄦ埛绫诲瀷 绛栫暐鎺堟潈 //services.AddAuthorizationPolicySetup(_configuration); #endregion @@ -188,22 +188,22 @@ builder.Services.AddSingleton(); var app = builder.Build(); var env = app.Environment; -#region 配置中间件 +#region 閰嶇疆涓棿浠 // Configure the HTTP request pipeline. -//本地化 +//鏈湴鍖 app.UseLocalization(); app.UseForwardedHeaders(); -//响应压缩 +//鍝嶅簲鍘嬬缉 app.UseResponseCompression(); //app.UseCors(t => t.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()); -//不需要 token 访问的静态文件 wwwroot css, JavaScript, and images don't require authentication. +//涓嶉渶瑕 token 璁块棶鐨勯潤鎬佹枃浠 wwwroot css, JavaScript, and images don't require authentication. app.UseStaticFiles(); app.UseMiddleware(); @@ -215,7 +215,7 @@ app.UseLogDashboard("/LogDashboard"); app.UseHangfireConfig(env); -////限流 中间件 +////闄愭祦 涓棿浠 //app.UseIpRateLimiting(); @@ -228,13 +228,13 @@ else //app.UseHsts(); } -// 特殊异常处理 比如 404 +// 鐗规畩寮傚父澶勭悊 姣斿 404 app.UseStatusCodePagesWithReExecute("/Error/{0}"); SwaggerSetup.Configure(app, env); -////serilog 记录请求的用户信息 +////serilog 璁板綍璇锋眰鐨勭敤鎴蜂俊鎭 app.UseSerilogConfig(env); app.UseRouting(); @@ -270,21 +270,21 @@ await hangfireJobService.InitHangfireJobTaskAsync(); try { - #region 运行环境 部署平台 + #region 杩愯鐜 閮ㄧ讲骞冲彴 - Log.Logger.Warning($"当前环境:{enviromentName}"); + Log.Logger.Warning($"褰撳墠鐜锛歿enviromentName}"); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { - Log.Logger.Warning($"当前部署平台环境:windows"); + Log.Logger.Warning($"褰撳墠閮ㄧ讲骞冲彴鐜锛歸indows"); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { - Log.Logger.Warning($"当前部署平台环境:linux"); + Log.Logger.Warning($"褰撳墠閮ㄧ讲骞冲彴鐜锛歭inux"); } else { - Log.Logger.Warning($"当前部署平台环境:OSX or FreeBSD"); + Log.Logger.Warning($"褰撳墠閮ㄧ讲骞冲彴鐜锛歄SX or FreeBSD"); } #endregion From bd8a8f744c95577108c043e7c5b3f53b955a2be8 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 7 Dec 2023 10:20:11 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/GrpcToken.proto | 32 +++++++++---------- IRaCIS.Core.API/Protos/GrpcToken.proto | 32 +++++++++---------- IRaCIS.Core.Domain/Dcotor/Attachment.cs | 16 +++++----- IRaCIS.Core.Domain/Dcotor/UserDoctor.cs | 2 +- IRaCIS.Core.Domain/Management/Role.cs | 2 +- IRaCIS.Core.Domain/TrialSiteUser/TrialUser.cs | 2 +- IRaCIS.Core.Test/DbHelper.ttinclude | 4 +-- 7 files changed, 45 insertions(+), 45 deletions(-) diff --git a/IRaCIS.Core.API/GrpcToken.proto b/IRaCIS.Core.API/GrpcToken.proto index ace5d4240..f14d65a66 100644 --- a/IRaCIS.Core.API/GrpcToken.proto +++ b/IRaCIS.Core.API/GrpcToken.proto @@ -1,16 +1,16 @@ -// 使用的是proto3版本 +// 浣跨敤鐨勬槸proto3鐗堟湰 syntax = "proto3"; -// 定义命名空间,后续生成代码时就会生成对应的命名空间 +// 瀹氫箟鍛藉悕绌洪棿锛屽悗缁敓鎴愪唬鐮佹椂灏变細鐢熸垚瀵瑰簲鐨勫懡鍚嶇┖闂 option csharp_namespace = "gRPC.ZHiZHUN.AuthServer.protos"; /* -每一句需要用分号结尾 -message 用来定义请求和返回数据格式 -tag message后面的值数字代表是字段的标识(tag),不是赋值, +姣忎竴鍙ラ渶瑕佺敤鍒嗗彿缁撳熬 +message 鐢ㄦ潵瀹氫箟璇锋眰鍜岃繑鍥炴暟鎹牸寮 +tag message鍚庨潰鐨勫兼暟瀛椾唬琛ㄦ槸瀛楁鐨勬爣璇(tag),涓嶆槸璧嬪硷紝 */ -// 新增用户时需要传递数据消息, 可理解为一个类 +// 鏂板鐢ㄦ埛鏃堕渶瑕佷紶閫掓暟鎹秷鎭紝 鍙悊瑙d负涓涓被 message GetTokenReuqest{ string id=1; string userName=2; @@ -22,48 +22,48 @@ message GetTokenReuqest{ } -// 新增时返回的消息格式 +// 鏂板鏃惰繑鍥炵殑娑堟伅鏍煎紡 message GetTokenResponse { int32 code=1; string token =2; } -// service 用标识定义服务的,里面写对应的方法 +// service 鐢ㄦ爣璇嗗畾涔夋湇鍔$殑锛岄噷闈㈠啓瀵瑰簲鐨勬柟娉 service TokenGrpcService{ - // 获取token + // 鑾峰彇token rpc GetUserToken(GetTokenReuqest) returns (GetTokenResponse); } /* -// 新增用户时需要传递数据消息, 可理解为一个类 +// 鏂板鐢ㄦ埛鏃堕渶瑕佷紶閫掓暟鎹秷鎭紝 鍙悊瑙d负涓涓被 message AddUserReuqest{ string name=1; int32 age=2; bool isBoy=3; } -// 新增时返回的消息格式 +// 鏂板鏃惰繑鍥炵殑娑堟伅鏍煎紡 message ResultResponse { int32 code=1; string msg =2; } -//传递的查询条件信息格式,可理解为平时传入的查询条件对象 +//浼犻掔殑鏌ヨ鏉′欢淇℃伅鏍煎紡锛屽彲鐞嗚В涓哄钩鏃朵紶鍏ョ殑鏌ヨ鏉′欢瀵硅薄 message QueryUserReuqest{ string name=1; } -//查询返回的用户信息格式,可理解为返回的类 +//鏌ヨ杩斿洖鐨勭敤鎴蜂俊鎭牸寮忥紝鍙悊瑙d负杩斿洖鐨勭被 message UserInfoResponse { string name=1; int32 age=2; string gender=3; } -// service 用标识定义服务的,里面写对应的方法 +// service 鐢ㄦ爣璇嗗畾涔夋湇鍔$殑锛岄噷闈㈠啓瀵瑰簲鐨勬柟娉 service UserService{ - // 新增用户 + // 鏂板鐢ㄦ埛 rpc AddUser(AddUserReuqest) returns (ResultResponse); - // 查询用户 + // 鏌ヨ鐢ㄦ埛 rpc GetAllUser(QueryUserReuqest) returns (UserInfoResponse); } */ diff --git a/IRaCIS.Core.API/Protos/GrpcToken.proto b/IRaCIS.Core.API/Protos/GrpcToken.proto index ace5d4240..f14d65a66 100644 --- a/IRaCIS.Core.API/Protos/GrpcToken.proto +++ b/IRaCIS.Core.API/Protos/GrpcToken.proto @@ -1,16 +1,16 @@ -// 使用的是proto3版本 +// 浣跨敤鐨勬槸proto3鐗堟湰 syntax = "proto3"; -// 定义命名空间,后续生成代码时就会生成对应的命名空间 +// 瀹氫箟鍛藉悕绌洪棿锛屽悗缁敓鎴愪唬鐮佹椂灏变細鐢熸垚瀵瑰簲鐨勫懡鍚嶇┖闂 option csharp_namespace = "gRPC.ZHiZHUN.AuthServer.protos"; /* -每一句需要用分号结尾 -message 用来定义请求和返回数据格式 -tag message后面的值数字代表是字段的标识(tag),不是赋值, +姣忎竴鍙ラ渶瑕佺敤鍒嗗彿缁撳熬 +message 鐢ㄦ潵瀹氫箟璇锋眰鍜岃繑鍥炴暟鎹牸寮 +tag message鍚庨潰鐨勫兼暟瀛椾唬琛ㄦ槸瀛楁鐨勬爣璇(tag),涓嶆槸璧嬪硷紝 */ -// 新增用户时需要传递数据消息, 可理解为一个类 +// 鏂板鐢ㄦ埛鏃堕渶瑕佷紶閫掓暟鎹秷鎭紝 鍙悊瑙d负涓涓被 message GetTokenReuqest{ string id=1; string userName=2; @@ -22,48 +22,48 @@ message GetTokenReuqest{ } -// 新增时返回的消息格式 +// 鏂板鏃惰繑鍥炵殑娑堟伅鏍煎紡 message GetTokenResponse { int32 code=1; string token =2; } -// service 用标识定义服务的,里面写对应的方法 +// service 鐢ㄦ爣璇嗗畾涔夋湇鍔$殑锛岄噷闈㈠啓瀵瑰簲鐨勬柟娉 service TokenGrpcService{ - // 获取token + // 鑾峰彇token rpc GetUserToken(GetTokenReuqest) returns (GetTokenResponse); } /* -// 新增用户时需要传递数据消息, 可理解为一个类 +// 鏂板鐢ㄦ埛鏃堕渶瑕佷紶閫掓暟鎹秷鎭紝 鍙悊瑙d负涓涓被 message AddUserReuqest{ string name=1; int32 age=2; bool isBoy=3; } -// 新增时返回的消息格式 +// 鏂板鏃惰繑鍥炵殑娑堟伅鏍煎紡 message ResultResponse { int32 code=1; string msg =2; } -//传递的查询条件信息格式,可理解为平时传入的查询条件对象 +//浼犻掔殑鏌ヨ鏉′欢淇℃伅鏍煎紡锛屽彲鐞嗚В涓哄钩鏃朵紶鍏ョ殑鏌ヨ鏉′欢瀵硅薄 message QueryUserReuqest{ string name=1; } -//查询返回的用户信息格式,可理解为返回的类 +//鏌ヨ杩斿洖鐨勭敤鎴蜂俊鎭牸寮忥紝鍙悊瑙d负杩斿洖鐨勭被 message UserInfoResponse { string name=1; int32 age=2; string gender=3; } -// service 用标识定义服务的,里面写对应的方法 +// service 鐢ㄦ爣璇嗗畾涔夋湇鍔$殑锛岄噷闈㈠啓瀵瑰簲鐨勬柟娉 service UserService{ - // 新增用户 + // 鏂板鐢ㄦ埛 rpc AddUser(AddUserReuqest) returns (ResultResponse); - // 查询用户 + // 鏌ヨ鐢ㄦ埛 rpc GetAllUser(QueryUserReuqest) returns (UserInfoResponse); } */ diff --git a/IRaCIS.Core.Domain/Dcotor/Attachment.cs b/IRaCIS.Core.Domain/Dcotor/Attachment.cs index 1a97bfb64..825402850 100644 --- a/IRaCIS.Core.Domain/Dcotor/Attachment.cs +++ b/IRaCIS.Core.Domain/Dcotor/Attachment.cs @@ -5,13 +5,13 @@ namespace IRaCIS.Core.Domain.Models { //public enum AttachmentType //{ - // Avatar=1,//头像 - // Resume=2,//简历 - // GCP=3,//GCP证书 - // MedicalLicence=4,//医师资格证 - // PracticeCertificate=5,//执业资格证 - // LargeEquipmentWorkingCertificate=6,//大型器械上岗证 - // HighestDegreeCertificate=7//最高学历证书 + // Avatar=1,//澶村儚 + // Resume=2,//绠鍘 + // GCP=3,//GCP璇佷功 + // MedicalLicence=4,//鍖诲笀璧勬牸璇 + // PracticeCertificate=5,//鎵т笟璧勬牸璇 + // LargeEquipmentWorkingCertificate=6,//澶у瀷鍣ㄦ涓婂矖璇 + // HighestDegreeCertificate=7//鏈楂樺鍘嗚瘉涔 //} [Table("Attachment")] public partial class Attachment : Entity, IAuditAdd @@ -29,7 +29,7 @@ namespace IRaCIS.Core.Domain.Models public string FileName { get; set; } = string.Empty; public DateTime CreateTime { get; set; } public Guid CreateUserId { get; set; } = Guid.Empty; - //language=1 中文, 2为英文 + //language=1 涓枃锛 2涓鸿嫳鏂 public int Language { get; set; } = 0; //public Guid CreateUserId { get; set; } = Guid.Empty; diff --git a/IRaCIS.Core.Domain/Dcotor/UserDoctor.cs b/IRaCIS.Core.Domain/Dcotor/UserDoctor.cs index 0f93551bd..219ceaa3d 100644 --- a/IRaCIS.Core.Domain/Dcotor/UserDoctor.cs +++ b/IRaCIS.Core.Domain/Dcotor/UserDoctor.cs @@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations.Schema; namespace IRaCIS.Core.Domain.Models { /// - /// 用户与医生管理关联关系表 - 实体 + /// 鐢ㄦ埛涓庡尰鐢熺鐞嗗叧鑱斿叧绯昏〃 - 瀹炰綋 /// [Table("UserDoctor")] public partial class UserDoctor : Entity diff --git a/IRaCIS.Core.Domain/Management/Role.cs b/IRaCIS.Core.Domain/Management/Role.cs index e110af3df..20d75daa4 100644 --- a/IRaCIS.Core.Domain/Management/Role.cs +++ b/IRaCIS.Core.Domain/Management/Role.cs @@ -13,7 +13,7 @@ namespace IRaCIS.Core.Domain.Models public string RoleDescription { get; set; } = string.Empty; public int Status { get; set; } - public int PrivilegeLevel { get; set; } //权限级别 + public int PrivilegeLevel { get; set; } //鏉冮檺绾у埆 public DateTime CreateTime { get; set; } = DateTime.Now; public Guid CreateUserId { get; set; } = Guid.Empty; diff --git a/IRaCIS.Core.Domain/TrialSiteUser/TrialUser.cs b/IRaCIS.Core.Domain/TrialSiteUser/TrialUser.cs index d1c5de42d..5bd0f4904 100644 --- a/IRaCIS.Core.Domain/TrialSiteUser/TrialUser.cs +++ b/IRaCIS.Core.Domain/TrialSiteUser/TrialUser.cs @@ -6,7 +6,7 @@ using IRaCIS.Core.Domain.Share; namespace IRaCIS.Core.Domain.Models { /// - /// 运维人员与项目关联关系表 - 实体 + /// 杩愮淮浜哄憳涓庨」鐩叧鑱斿叧绯昏〃 - 瀹炰綋 /// [Table("TrialUser")] public partial class TrialUser : Entity, IAuditUpdate, IAuditAdd ,ISoftDelete diff --git a/IRaCIS.Core.Test/DbHelper.ttinclude b/IRaCIS.Core.Test/DbHelper.ttinclude index c4973b985..5ce722349 100644 --- a/IRaCIS.Core.Test/DbHelper.ttinclude +++ b/IRaCIS.Core.Test/DbHelper.ttinclude @@ -3,9 +3,9 @@ { public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=Test.IRC;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"; public static readonly string DbDatabase = "Test.IRC"; - //表名称用字符串,拼接 + //琛ㄥ悕绉扮敤瀛楃涓,鎷兼帴 public static readonly string TableName = "ReadingTaskQuestionMark"; - //具体文件里面 例如service 可以配置是否分页 + //鍏蜂綋鏂囦欢閲岄潰 渚嬪service 鍙互閰嶇疆鏄惁鍒嗛〉 } #> <#+ From 57d8673bb2d9a39d98a685c85e50e4a0ed9d506b Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 7 Dec 2023 10:55:10 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Context/IRaCISDBContext.cs | 121 +----------------- .../Interceptor/AuditInterceptor.cs | 15 +-- 2 files changed, 3 insertions(+), 133 deletions(-) diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 535cae623..3bca4505f 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -36,8 +36,6 @@ namespace IRaCIS.Core.Infra.EFCore public IRaCISDBContext(DbContextOptions options, IUserInfo userInfo, ILogger logger - - //IAuditingData auditingData ) : base(options) { _logger= logger; @@ -49,36 +47,12 @@ namespace IRaCIS.Core.Infra.EFCore //姣旀暟鎹簱涓婁笅鏂囨瀯閫犲嚱鏁板厛鎵ц 涓嶈兘鏋勯犲嚱鏁版敞鍏ョ殑鏂瑰紡浣跨敤閰嶇疆鏂囦欢 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - optionsBuilder.UseLoggerFactory(MyLoggerFactory) - - .ReplaceService(); + optionsBuilder.UseLoggerFactory(MyLoggerFactory); optionsBuilder.UseExceptionProcessor(); - //var config = new ConfigurationBuilder() - // .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).Build(); - //connectionString = config.GetSection("ConnectionStrings:RemoteNew").Value; - //optionsBuilder.AddInterceptors(new AuditingInterceptor(connectionString)); } - #region IModelCacheKeyFactory - - - public class DynamicModelCacheKeyFactoryDesignTimeSupport : IModelCacheKeyFactory - { - public object Create(DbContext context, bool designTime) - => context is IRaCISDBContext dynamicContext - ? (context.GetType(), dynamicContext._userInfo.IsEn_Us, designTime) - : (object)context.GetType(); - - public object Create(DbContext context) - => Create(context, false); - } - - #endregion - - - protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -89,7 +63,6 @@ namespace IRaCIS.Core.Infra.EFCore builder.HasNoKey(); }); - //modelBuilder.HasDbFunction(typeof(DbContext).GetMethod(nameof(GetTableList))); modelBuilder.Entity().HasQueryFilter(p => p.IsAdditional==false); @@ -117,20 +90,10 @@ namespace IRaCIS.Core.Infra.EFCore modelBuilder.Entity().HasMany(t => t.TaskInfluenceList).WithOne(s => s.OriginalTask).HasForeignKey(t => t.OriginalTaskId); - modelBuilder.Entity().HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId); - - + modelBuilder.Entity().HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId); modelBuilder.Entity().HasMany(t => t.ChildList).WithOne(t => t.Parent); modelBuilder.Entity().HasMany(t => t.EarlierSubjectUserList).WithOne(t => t.OrignalSubjectUser); - //if (_userInfo.IsEn_Us) - //{ - // modelBuilder.Entity().Property(t => t.MappedValue).HasColumnName(nameof(Domain.Models.Dictionary.Value)); - //} - //else - //{ - // modelBuilder.Entity().Property(t => t.MappedValue).HasColumnName(nameof(Domain.Models.Dictionary.ValueCN)); - //} //閬嶅巻瀹炰綋妯″瀷鎵嬪姩閰嶇疆 @@ -515,19 +478,6 @@ namespace IRaCIS.Core.Infra.EFCore public virtual DbSet TrialEmailBlackUser { get; set; } - #region 搴熷純 - - public override int SaveChanges() - { - - SetCommonEntityAuditInfo(); - AddAudit().GetAwaiter(); - return base.SaveChanges(); - } - - - #endregion - public override async Task SaveChangesAsync(CancellationToken cancellationToken = new CancellationToken()) { // 閲囩敤瑙﹀彂鍣ㄧ殑鏂瑰紡 璁剧疆 CreateUserId CreateTime UpdateTime UpdateUserId 绋芥煡瀹炰綋閲岄潰娌℃湁杩欏洓涓瓧娈电殑鍊 鍥犱负鍏堝悗椤哄簭鐨勫師鍥 @@ -587,12 +537,7 @@ namespace IRaCIS.Core.Infra.EFCore throw new DBSaveFailedException("SQL 浜嬪姟澶辫触,璇锋鏌ョ幆澧冦"); } - //catch (Exception ex) - //{ - // _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message); - // throw new DBSaveFailedException(ex.Message); - //} } @@ -701,68 +646,6 @@ namespace IRaCIS.Core.Infra.EFCore } - - #region 鏇存柊瀹¤淇℃伅 搴熷純 - - /// - /// 浜嬩欢缁戝畾鐨勬柟寮 鏇存柊瀹¤淇℃伅 搴熷純 - /// - /// - /// - private void UpdateAuitUser(object sender, EntityEntryEventArgs e) - { - if (e.Entry.Entity is IAuditUpdate updateEntity) - { - switch (e.Entry.State) - { - //case EntityState.Deleted: - // entityWithTimestamps.UpdateTime = DateTime.UtcNow; - // Console.WriteLine($"Stamped for delete: {e.Entry.Entity}"); - // break; - case EntityState.Modified: - updateEntity.UpdateTime = DateTime.UtcNow; - updateEntity.UpdateUserId = _userInfo.Id; - break; - //娣诲姞鐨勬椂鍊欙紝鏇存柊瀹¤瀛楁涔熻祴鍊 - case EntityState.Added: - updateEntity.UpdateTime = DateTime.UtcNow; - updateEntity.UpdateUserId = _userInfo.Id; - break; - } - } - if (e.Entry.Entity is IAuditAdd addEntity) - { - switch (e.Entry.State) - { - case EntityState.Added: - addEntity.CreateTime = DateTime.UtcNow; - addEntity.CreateUserId = _userInfo.Id; - break; - } - } - - if (e.Entry.Entity is IAuditAddWithUserName addEntity2) - { - switch (e.Entry.State) - { - case EntityState.Added: - addEntity2.CreateTime = DateTime.UtcNow; - addEntity2.CreateUserId = _userInfo.Id; - addEntity2.CreateUser = _userInfo.RealName; - break; - case EntityState.Deleted: - addEntity2.CreateTime = DateTime.UtcNow; - addEntity2.CreateUserId = _userInfo.Id; - addEntity2.CreateUser = _userInfo.RealName; - break; - } - } - } - - #endregion - - - public virtual DbSet TaskAllocationRule { get; set; } public virtual DbSet VisitTask { get; set; } diff --git a/IRaCIS.Core.Infra.EFCore/Interceptor/AuditInterceptor.cs b/IRaCIS.Core.Infra.EFCore/Interceptor/AuditInterceptor.cs index 75a4ee348..879e42af5 100644 --- a/IRaCIS.Core.Infra.EFCore/Interceptor/AuditInterceptor.cs +++ b/IRaCIS.Core.Infra.EFCore/Interceptor/AuditInterceptor.cs @@ -43,20 +43,7 @@ public class AuditingInterceptor : ISaveChangesInterceptor #endregion #region SavedChanges - public int SavedChanges(SaveChangesCompletedEventData eventData, int result) - { - if (_audit.Entities.Count > 0) - { - var auditContext = eventData.Context as IRaCISDBContext; - _audit.Succeeded = true; - _audit.EndTime = DateTime.Now; - auditContext.SaveChangesAudits.Add(_audit); - auditContext.SaveChanges(); - } - - return result; - } - + public async ValueTask SavedChangesAsync( SaveChangesCompletedEventData eventData, int result, From 2e15cfaed504553829e94c93b5e7ccc829d5d054 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 7 Dec 2023 11:34:59 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9trial=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Domain/Trial/Trial.cs | 112 +++++++++++++++--------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index 68f77bc56..c6944f806 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -1,4 +1,4 @@ -using System; +锘縰sing System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; @@ -96,12 +96,12 @@ namespace IRaCIS.Core.Domain.Models [StringLength(512)] public string Indication { get; set; } = string.Empty; - //入组那一块的状态 + //鍏ョ粍閭d竴鍧楃殑鐘舵 //[ConcurrencyCheck] public int TrialEnrollStatus { get; set; } - //启动状态 + //鍚姩鐘舵 [StringLength(500)] public string TrialStatusStr { get; set; } = StaticData.TrialState.TrialInitializing; @@ -151,15 +151,15 @@ namespace IRaCIS.Core.Domain.Models - //废弃 - //public AttendedReviewerType AttendedReviewerType { get; set; } = AttendedReviewerType.CN;//0全部中国医生 1美国医生 2既有中国医生,也有美国医生 + //搴熷純 + //public AttendedReviewerType AttendedReviewerType { get; set; } = AttendedReviewerType.CN;//0鍏ㄩ儴涓浗鍖荤敓 1缇庡浗鍖荤敓 2鏃㈡湁涓浗鍖荤敓锛屼篃鏈夌編鍥藉尰鐢 - ////废弃 + ////搴熷純 //[JsonIgnore] //[ForeignKey("DeclarationTypeId")] //public Dictionary DeclarationType { get; set; } - //废弃 + //搴熷純 //public Guid DeclarationTypeId { get; set; } = Guid.Empty; @@ -182,66 +182,66 @@ namespace IRaCIS.Core.Domain.Models public bool VisitPlanConfirmed { get; set; } /// - /// 受试者编号具体规则 + /// 鍙楄瘯鑰呯紪鍙峰叿浣撹鍒 /// public string SubjectCodeRule { get; set; } = StaticData.International("Trial_number"); /// - /// 是否 提醒受试者编号规则 + /// 鏄惁 鎻愰啋鍙楄瘯鑰呯紪鍙疯鍒 /// public bool IsNoticeSubjectCodeRule { get; set; } = true; /// - /// 是否 有基准时间(首次给药时间) + /// 鏄惁 鏈夊熀鍑嗘椂闂达紙棣栨缁欒嵂鏃堕棿锛 /// public bool IsHaveFirstGiveMedicineDate { get; set; } = true; /// - /// 是否有 受试者年龄 + /// 鏄惁鏈 鍙楄瘯鑰呭勾榫 /// public bool IsHaveSubjectAge { get; set; } = false; /// - /// 是否有 入组性确认 + /// 鏄惁鏈 鍏ョ粍鎬х‘璁 /// public bool IsEnrollementQualificationConfirm { get; set; } = false; /// - /// 出组后计划外访视名称 + /// 鍑虹粍鍚庤鍒掑璁胯鍚嶇О /// public string OutEnrollmentVisitName { get; set; } = "EOT"; /// - /// 是否 验证拍片日期 + /// 鏄惁 楠岃瘉鎷嶇墖鏃ユ湡 /// public bool IsVerifyVisitImageDate { get; set; } = true; /// - /// 临床信息传输 1:系统录入 2:系统录入+PDF 0:无 + /// 涓村簥淇℃伅浼犺緭 1锛氱郴缁熷綍鍏 2锛氱郴缁熷綍鍏+PDF 0锛氭棤 /// public int ClinicalInformationTransmissionEnum { get; set; } = 1; /// - /// 是否审核 临床信息 + /// 鏄惁瀹℃牳 涓村簥淇℃伅 /// public bool IsCRAAuditClinicalInformation { get; set; } = false; /// - /// QC流程 0 不审,1 单审,2双审 + /// QC娴佺▼ 0 涓嶅锛1 鍗曞锛2鍙屽 /// public TrialQCProcess QCProcessEnum { get; set; } = TrialQCProcess.DoubleAudit; /// - /// 影像一致性核查 + /// 褰卞儚涓鑷存ф牳鏌 /// public bool IsImageConsistencyVerification { get; set; } = true; /// - /// 影像导出 + /// 褰卞儚瀵煎嚭 /// public bool IsImageExport { get; set; } = false; @@ -250,7 +250,7 @@ namespace IRaCIS.Core.Domain.Models - //阅片方式 + //闃呯墖鏂瑰紡 public int ReadingMode { get; set; } = 1; @@ -258,12 +258,12 @@ namespace IRaCIS.Core.Domain.Models public int ChangeDefalutDays { get; set; } = 5; /// - /// 跨项目复制 + /// 璺ㄩ」鐩鍒 /// public bool IsImageReplicationAcrossTrial { get; set; } = false; - public string BodyPartTypes { get; set; } = "鼻咽部|脑部|颈部|胸部|上/下腹部|盆腔|全身|其他"; + public string BodyPartTypes { get; set; } = "榧诲捊閮▅鑴戦儴|棰堥儴|鑳搁儴|涓/涓嬭吂閮▅鐩嗚厰|鍏ㄨ韩|鍏朵粬"; @@ -279,25 +279,25 @@ namespace IRaCIS.Core.Domain.Models - //PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态) + //PD 杩涘睍鏄惁鏄剧ず 閰嶇疆璁胯 鏄惁鏄剧ず PD杩涘睍 (浠庤屽彲浠ヨ缃姸鎬) public bool IsPDProgressView { get; set; } - //研究方案号 + //鐮旂┒鏂规鍙 public string ResearchProgramNo { get; set; } - //实验名称 + //瀹為獙鍚嶇О public string ExperimentName { get; set; } - //主研单位 + //涓荤爺鍗曚綅 public string MainResearchUnit { get; set; } - // 负责人PI + // 璐熻矗浜篜I public string HeadPI { get; set; } public bool IsUrgent { get; set; } /// - /// 项目类型 1 正式项目、0 非正式项目 2是培训项目 + /// 椤圭洰绫诲瀷 1 姝e紡椤圭洰銆0 闈炴寮忛」鐩 2鏄煿璁」鐩 /// time public TrialType TrialType { get; set; } @@ -314,7 +314,7 @@ namespace IRaCIS.Core.Domain.Models public bool IsSubjectSexView { get; set; } = false; - //配置Suject Edit页面 是否显示 加急 + //閰嶇疆Suject Edit椤甸潰 鏄惁鏄剧ず 鍔犳 public bool IsSubjectExpeditedView { get; set; } = false; @@ -322,14 +322,14 @@ namespace IRaCIS.Core.Domain.Models public bool IsDeleted { get; set; } - //QC 问题流程 + //QC 闂娴佺▼ public User QCQuestionConfirmedUser { get; set; } public Guid? QCQuestionConfirmedUserId { get; set; } public DateTime? QCQuestionConfirmedTime { get; set; } /// - /// 项目完成时间 + /// 椤圭洰瀹屾垚鏃堕棿 /// public DateTime? TrialFinishTime { get; set; } @@ -348,7 +348,7 @@ namespace IRaCIS.Core.Domain.Models public Guid? DeleteUserId { get; set; } /// - /// 同步临床数据时间 + /// 鍚屾涓村簥鏁版嵁鏃堕棿 /// public DateTime? SyncClinicalDataTime { get; set; } @@ -359,34 +359,34 @@ namespace IRaCIS.Core.Domain.Models public int IndicationEnum { get; set; } = -1; - #region 邮件配置 + #region 閭欢閰嶇疆 /// - /// 发件箱账号 + /// 鍙戜欢绠辫处鍙 /// public string EmailFromEmail { get; set; } = string.Empty; /// - /// 发件人 + /// 鍙戜欢浜 /// public string EmailFromName { get; set; } = string.Empty; /// - /// 密码/授权码 + /// 瀵嗙爜/鎺堟潈鐮 /// public string EmailAuthorizationCode { get; set; } = string.Empty; /// - /// SMTP服务器 + /// SMTP鏈嶅姟鍣 /// public string EmailSMTPServerAddress { get; set; } = string.Empty; /// - /// SMTP端口 + /// SMTP绔彛 /// public int EmailSMTPServerPort { get; set; } /// - /// 是否配置过邮箱 + /// 鏄惁閰嶇疆杩囬偖绠 /// public bool IsConfigureEmail { get; set; } = false; #endregion @@ -395,20 +395,20 @@ namespace IRaCIS.Core.Domain.Models ///// - ///// 图像是否有标注 + ///// 鍥惧儚鏄惁鏈夋爣娉 ///// //public bool IsImageIabeled { get; set; } - ////阅片类型 + ////闃呯墖绫诲瀷 //public ReadingMethod ReadingType { get; set; } = ReadingMethod.Double; //public bool IsGlobalReading { get; set; } = true; ///// - ///// 仲裁阅片 + ///// 浠茶闃呯墖 ///// //public bool? IsArbitrationReading { get; set; } = true; @@ -416,50 +416,50 @@ namespace IRaCIS.Core.Domain.Models ///// - ///// 1 Mint、2 PACS + ///// 1 Mint銆2 PACS ///// //public int ImagePlatform { get; set; } = 1; ///// - ///// 仲裁规则 + ///// 浠茶瑙勫垯 ///// //public ArbitrationRule ArbitrationRule { get; set; } = ArbitrationRule.None; - ////任务分配对象 + ////浠诲姟鍒嗛厤瀵硅薄 //public TaskAllocateObj TaskAllocateObjEnum { get; set; } - ////后续访视任务自动分配 + ////鍚庣画璁胯浠诲姟鑷姩鍒嗛厤 //public bool IsFollowVisitAutoAssign { get; set; } = true; - ////后续全局自动分配 + ////鍚庣画鍏ㄥ眬鑷姩鍒嗛厤 //public bool IsFollowGlobalVisitAutoAssign { get; set; } = true; //public bool IsFollowJudgeTaskAutoAssign { get; set; } = true; //public TaskAllocateDefaultState FollowJudgeTaskAutoAssignDefaultState { get; set; } = TaskAllocateDefaultState.Allocated; - ////后续访视自动分配默认状态 + ////鍚庣画璁胯鑷姩鍒嗛厤榛樿鐘舵 //public TaskAllocateDefaultState FollowVisitAutoAssignDefaultState { get; set; } = TaskAllocateDefaultState.Allocated; - ////后续全局自动分配默认状态 + ////鍚庣画鍏ㄥ眬鑷姩鍒嗛厤榛樿鐘舵 //public TaskAllocateDefaultState FollowGlobalVisitAutoAssignDefaultState { get; set; } = TaskAllocateDefaultState.Allocated; - ////读片任务显示规则 + ////璇荤墖浠诲姟鏄剧ず瑙勫垯 //public ReadingTaskViewMethod ReadingTaskViewEnum { get; set; } - ////读片任务显示是否顺序 + ////璇荤墖浠诲姟鏄剧ず鏄惁椤哄簭 //public bool IsReadingTaskViewInOrder { get; set; } = true; ///// - ///// 阅片是否显示受试者信息 + ///// 闃呯墖鏄惁鏄剧ず鍙楄瘯鑰呬俊鎭 ///// //public bool IsReadingShowSubjectInfo { get; set; } = false; ///// - ///// 阅片是否显示既往结果 + ///// 闃呯墖鏄惁鏄剧ず鏃㈠線缁撴灉 ///// //public bool IsReadingShowPreviousResults { get; set; } = false; @@ -467,7 +467,7 @@ namespace IRaCIS.Core.Domain.Models ///// - ///// 是确认医学审核问题 + ///// 鏄‘璁ゅ尰瀛﹀鏍搁棶棰 ///// //public bool IsConfirmMedicineQuestion { get; set; } = false; @@ -476,12 +476,12 @@ namespace IRaCIS.Core.Domain.Models ///// - ///// 阅片信息签名时间 + ///// 闃呯墖淇℃伅绛惧悕鏃堕棿 ///// //public DateTime? ReadingInfoSignTime { get; set; } ///// - ///// 阅片工具 + ///// 闃呯墖宸ュ叿 ///// //public ReadingTool? ReadingTool { get; set; } From ea9a5fa3a056f1aaf22a656da3ec02c66d279243 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 7 Dec 2023 11:36:18 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.IdentityServer4/appsettings.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/IRaCIS.Core.IdentityServer4/appsettings.json b/IRaCIS.Core.IdentityServer4/appsettings.json index 46b2381b7..8994bd51f 100644 --- a/IRaCIS.Core.IdentityServer4/appsettings.json +++ b/IRaCIS.Core.IdentityServer4/appsettings.json @@ -5,10 +5,10 @@ "RemoteNew": "Server=123.56.181.144,14333\\MSSQLExpress14;Database=IRaCIS_New;User ID=sa;Password=dev123456DEV;" }, "JwtSetting": { - "SecurityKey": "3e6dbfa227234a03977a2f421bdb7f4f", // 密钥 - "Issuer": "IRaCIS", // 颁发者 - "Audience": "ZhiZhun", // 接收者 - "TokenExpireDays": "7" // 过期时间(7day) + "SecurityKey": "3e6dbfa227234a03977a2f421bdb7f4f", // 瀵嗛挜 + "Issuer": "IRaCIS", // 棰佸彂鑰 + "Audience": "ZhiZhun", // 鎺ユ敹鑰 + "TokenExpireDays": "7" // 杩囨湡鏃堕棿锛7day锛 }, "IpRateLimiting": { "EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each @@ -69,7 +69,7 @@ }, - //网站根地址,为了访问文件 dicom 和上传的文档... 实测发现不用将域名拼接返回,浏览器会自动加上当前ip,避免了多环境读取环境配置文件 + //缃戠珯鏍瑰湴鍧锛屼负浜嗚闂枃浠 dicom 鍜屼笂浼犵殑鏂囨。... 瀹炴祴鍙戠幇涓嶇敤灏嗗煙鍚嶆嫾鎺ヨ繑鍥烇紝娴忚鍣ㄤ細鑷姩鍔犱笂褰撳墠ip锛岄伩鍏嶄簡澶氱幆澧冭鍙栫幆澧冮厤缃枃浠 //"RootUrl": "http://localhost:8060", "GrpcAddress": "http://123.56.181.144:7200", @@ -83,7 +83,7 @@ "UserCodePrefix": "U", "Share": false, // "FileSizeLimit": 1073741824, - "LoginExpiredTimeSpan": ":15", // Minute + "LoginExpiredTimeSpan": "锛15", // Minute "OpenLog": true, "AddClinicalInfo": true