From 9133eae4e0dd307d7d87e1900d3acd4af10d5ebc Mon Sep 17 00:00:00 2001 From: HuiJiOnGit <40553940+HuiJiOnGit@users.noreply.github.com> Date: Thu, 21 Jan 2021 17:18:10 +0800 Subject: [PATCH 001/382] Update .gitignore Add.vscode ignores folders --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 9a7ee7a9..5ac1fe08 100644 --- a/.gitignore +++ b/.gitignore @@ -35,6 +35,9 @@ bld/ # Visual Studio 2017 auto generated files Generated\ Files/ +# Visual Studio Code +.vscode + # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* From 81e8a44441e5d40886bee037b557625920c2c656 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Thu, 29 Jul 2021 15:29:13 +0800 Subject: [PATCH 002/382] =?UTF-8?q?=E5=88=86=E6=94=AF=E6=B5=8B=E8=AF=95=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Model.xml | 263 +----------------- .../Controllers/DbFirst/DbFirstController.cs | 2 +- Blog.Core.Api/Startup.cs | 2 +- Blog.Core.Common/Blog.Core.Common.csproj | 5 + Blog.Core.Common/Helper/JsonHelper.cs | 38 ++- .../Seed/DBSeed.cs | 5 +- .../Seed/FrameSeed.cs | 3 +- .../Seed/MyContext.cs | 2 +- .../{StaticHelper => Static}/StaticPayInfo.cs | 2 +- .../Middlewares/SeedDataMildd.cs | 2 +- .../ServiceExtensions/DbSetup.cs | 2 +- .../Blog.Core.IServices.csproj | 1 + Blog.Core.Model/Blog.Core.Model.csproj | 6 +- Blog.Core.Repository/BASE/BaseRepository.cs | 1 - .../Blog.Core.Repository.csproj | 1 + Blog.Core.Services/PayServices.cs | 2 +- Blog.Core.Tasks/Blog.Core.Tasks.csproj | 1 + .../QuartzNet/Jobs/Job_OperateLog_Quartz.cs | 1 - .../DependencyInjection/DI_Test.cs | 2 +- 19 files changed, 61 insertions(+), 280 deletions(-) rename {Blog.Core.Model => Blog.Core.Common}/Seed/DBSeed.cs (99%) rename {Blog.Core.Model => Blog.Core.Common}/Seed/FrameSeed.cs (99%) rename {Blog.Core.Model => Blog.Core.Common}/Seed/MyContext.cs (99%) rename Blog.Core.Common/{StaticHelper => Static}/StaticPayInfo.cs (97%) diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index ce6dd052..4befdebc 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -96,6 +96,11 @@ 返回信息 + + + 开发者信息 + + 返回数据集合 @@ -1007,264 +1012,6 @@ 找不到指定资源 - - - 异步添加种子数据 - - - - - - - - 生成Controller层 - - sqlsugar实例 - 数据库链接ID - 数据库表名数组,默认空,生成所有表 - - - - - - 生成Model层 - - sqlsugar实例 - 数据库链接ID - 数据库表名数组,默认空,生成所有表 - - - - - - 生成IRepository层 - - sqlsugar实例 - 数据库链接ID - - 数据库表名数组,默认空,生成所有表 - - - - - 生成 IService 层 - - sqlsugar实例 - 数据库链接ID - - 数据库表名数组,默认空,生成所有表 - - - - - 生成 Repository 层 - - sqlsugar实例 - 数据库链接ID - - 数据库表名数组,默认空,生成所有表 - - - - - 生成 Service 层 - - sqlsugar实例 - 数据库链接ID - - 数据库表名数组,默认空,生成所有表 - - - - - 功能描述:根据数据库表生产Controller层 - 作  者:Blog.Core - - - 数据库链接ID - 实体类存放路径 - 命名空间 - 生产指定的表 - 实现接口 - - 是否序列化 - - - - 功能描述:根据数据库表生产Model层 - 作  者:Blog.Core - - - 数据库链接ID - 实体类存放路径 - 命名空间 - 生产指定的表 - 实现接口 - - 是否序列化 - - - - 功能描述:根据数据库表生产IRepository层 - 作  者:Blog.Core - - - 数据库链接ID - 实体类存放路径 - 命名空间 - 生产指定的表 - 实现接口 - - - - - 功能描述:根据数据库表生产IServices层 - 作  者:Blog.Core - - - 数据库链接ID - 实体类存放路径 - 命名空间 - 生产指定的表 - 实现接口 - - - - - 功能描述:根据数据库表生产 Repository 层 - 作  者:Blog.Core - - - 数据库链接ID - 实体类存放路径 - 命名空间 - 生产指定的表 - 实现接口 - - - - - 功能描述:根据数据库表生产 Services 层 - 作  者:Blog.Core - - - 数据库链接ID - 实体类存放路径 - 命名空间 - 生产指定的表 - 实现接口 - - - - - 根据模板内容批量生成文件 - - 类文件字符串list - 生成路径 - 文件名格式模板 - - - - 连接字符串 - Blog.Core - - - - - 连接字符串 - Blog.Core - - - - - 数据库类型 - Blog.Core - - - - - 数据连接对象 - Blog.Core - - - - - 功能描述:构造函数 - 作  者:Blog.Core - - - - - 功能描述:获取数据库处理对象 - 作  者:Blog.Core - - 返回值 - - - - 功能描述:获取数据库处理对象 - 作  者:Blog.Core - - db - 返回值 - - - - 功能描述:根据实体类生成数据库表 - 作  者:Blog.Core - - 是否备份表 - 指定的实体 - - - - 功能描述:根据实体类生成数据库表 - 作  者:Blog.Core - - 是否备份表 - 指定的实体 - - - - 功能描述:设置初始化参数 - 作  者:Blog.Core - - 连接字符串 - 数据库类型 - - - - 功能描述:创建一个链接配置 - 作  者:Blog.Core - - 是否自动关闭连接 - 是否夸类事务 - ConnectionConfig - - - - 功能描述:获取一个自定义的DB - 作  者:Blog.Core - - config - 返回值 - - - - 功能描述:获取一个自定义的数据库处理对象 - 作  者:Blog.Core - - sugarClient - 返回值 - - - - 功能描述:获取一个自定义的数据库处理对象 - 作  者:Blog.Core - - config - 返回值 - 表格数据,支持分页 diff --git a/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs b/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs index cad64362..464c3eaf 100644 --- a/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs +++ b/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs @@ -1,7 +1,7 @@ using Blog.Core.Common; using Blog.Core.Common.DB; +using Blog.Core.Common.Seed; using Blog.Core.Model; -using Blog.Core.Model.Seed; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Hosting; diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index f75a7df5..35ab31ea 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -1,12 +1,12 @@ using Autofac; using Blog.Core.Common; using Blog.Core.Common.LogHelper; +using Blog.Core.Common.Seed; using Blog.Core.Extensions; using Blog.Core.Filter; using Blog.Core.Hubs; using Blog.Core.IServices; using Blog.Core.Middlewares; -using Blog.Core.Model.Seed; using Blog.Core.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 92af0184..8073607d 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -17,6 +17,7 @@ + @@ -32,4 +33,8 @@ + + + + diff --git a/Blog.Core.Common/Helper/JsonHelper.cs b/Blog.Core.Common/Helper/JsonHelper.cs index 352cb8e1..a615abf0 100644 --- a/Blog.Core.Common/Helper/JsonHelper.cs +++ b/Blog.Core.Common/Helper/JsonHelper.cs @@ -1,11 +1,46 @@ using System; using System.Collections.Generic; -using System.Text.Json; + namespace Blog.Core.Common.Helper { public class JsonHelper { + /// + /// 对象序列化 + /// + /// 对象 + /// 是否使用textjson + /// 返回json字符串 + public static string ObjToJson(object obj, bool isUseTextJson = false) + { + if (isUseTextJson) + { + return System.Text.Json.JsonSerializer.Serialize(obj); + } + else + { + return Newtonsoft.Json.JsonConvert.SerializeObject(obj); + } + } + /// + /// json反序列化obj + /// + /// 反序列类型 + /// json + /// 是否使用textjson + /// 返回对象 + public static T JsonToObj(string strJson, bool isUseTextJson = false) + { + if (isUseTextJson) + { + return System.Text.Json.JsonSerializer.Deserialize(strJson); + } + else + { + return Newtonsoft.Json.JsonConvert.DeserializeObject(strJson); + } + } /// /// 转换对象为JSON格式数据 /// @@ -17,7 +52,6 @@ public static string GetJSON(object obj) string result = String.Empty; try { - JsonSerializer.Serialize(""); System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) diff --git a/Blog.Core.Model/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs similarity index 99% rename from Blog.Core.Model/Seed/DBSeed.cs rename to Blog.Core.Common/Seed/DBSeed.cs index bb649a84..05ced06c 100644 --- a/Blog.Core.Model/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -1,5 +1,4 @@ -using Blog.Core.Common; -using Blog.Core.Common.DB; +using Blog.Core.Common.DB; using Blog.Core.Common.Helper; using Blog.Core.Model.Models; using Newtonsoft.Json; @@ -11,7 +10,7 @@ using System.Text; using System.Threading.Tasks; -namespace Blog.Core.Model.Seed +namespace Blog.Core.Common.Seed { public class DBSeed { diff --git a/Blog.Core.Model/Seed/FrameSeed.cs b/Blog.Core.Common/Seed/FrameSeed.cs similarity index 99% rename from Blog.Core.Model/Seed/FrameSeed.cs rename to Blog.Core.Common/Seed/FrameSeed.cs index 2ac7d916..649f5cd6 100644 --- a/Blog.Core.Model/Seed/FrameSeed.cs +++ b/Blog.Core.Common/Seed/FrameSeed.cs @@ -1,11 +1,10 @@ using SqlSugar; -using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; -namespace Blog.Core.Model.Seed +namespace Blog.Core.Common.Seed { public class FrameSeed { diff --git a/Blog.Core.Model/Seed/MyContext.cs b/Blog.Core.Common/Seed/MyContext.cs similarity index 99% rename from Blog.Core.Model/Seed/MyContext.cs rename to Blog.Core.Common/Seed/MyContext.cs index e4d71328..8b1e1d14 100644 --- a/Blog.Core.Model/Seed/MyContext.cs +++ b/Blog.Core.Common/Seed/MyContext.cs @@ -2,7 +2,7 @@ using SqlSugar; using System; -namespace Blog.Core.Model.Seed +namespace Blog.Core.Common.Seed { public class MyContext { diff --git a/Blog.Core.Common/StaticHelper/StaticPayInfo.cs b/Blog.Core.Common/Static/StaticPayInfo.cs similarity index 97% rename from Blog.Core.Common/StaticHelper/StaticPayInfo.cs rename to Blog.Core.Common/Static/StaticPayInfo.cs index 36a62d4b..4b73493f 100644 --- a/Blog.Core.Common/StaticHelper/StaticPayInfo.cs +++ b/Blog.Core.Common/Static/StaticPayInfo.cs @@ -1,6 +1,6 @@  -namespace Blog.Core.Common.StaticHelper +namespace Blog.Core.Common.Static { public static class StaticPayInfo { diff --git a/Blog.Core.Extensions/Middlewares/SeedDataMildd.cs b/Blog.Core.Extensions/Middlewares/SeedDataMildd.cs index 5fb621e7..0c64bc8e 100644 --- a/Blog.Core.Extensions/Middlewares/SeedDataMildd.cs +++ b/Blog.Core.Extensions/Middlewares/SeedDataMildd.cs @@ -1,5 +1,5 @@ using Blog.Core.Common; -using Blog.Core.Model.Seed; +using Blog.Core.Common.Seed; using log4net; using Microsoft.AspNetCore.Builder; using System; diff --git a/Blog.Core.Extensions/ServiceExtensions/DbSetup.cs b/Blog.Core.Extensions/ServiceExtensions/DbSetup.cs index ac6668d1..b00470ab 100644 --- a/Blog.Core.Extensions/ServiceExtensions/DbSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/DbSetup.cs @@ -1,4 +1,4 @@ -using Blog.Core.Model.Seed; +using Blog.Core.Common.Seed; using Microsoft.Extensions.DependencyInjection; using System; diff --git a/Blog.Core.IServices/Blog.Core.IServices.csproj b/Blog.Core.IServices/Blog.Core.IServices.csproj index 937d8104..e1055a78 100644 --- a/Blog.Core.IServices/Blog.Core.IServices.csproj +++ b/Blog.Core.IServices/Blog.Core.IServices.csproj @@ -5,6 +5,7 @@ + diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index 2111ab86..c5e83d77 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -15,11 +15,7 @@ - - - - - + diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 55fd0e11..2c100dcf 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -3,7 +3,6 @@ using Blog.Core.IRepository.Base; using Blog.Core.IRepository.UnitOfWork; using Blog.Core.Model; -using Blog.Core.Model.Models; using SqlSugar; using System; using System.Collections.Generic; diff --git a/Blog.Core.Repository/Blog.Core.Repository.csproj b/Blog.Core.Repository/Blog.Core.Repository.csproj index db11e99d..2697a74d 100644 --- a/Blog.Core.Repository/Blog.Core.Repository.csproj +++ b/Blog.Core.Repository/Blog.Core.Repository.csproj @@ -25,6 +25,7 @@ + diff --git a/Blog.Core.Services/PayServices.cs b/Blog.Core.Services/PayServices.cs index 73331b2d..ed5b6a55 100644 --- a/Blog.Core.Services/PayServices.cs +++ b/Blog.Core.Services/PayServices.cs @@ -1,6 +1,6 @@ using Blog.Core.Common; using Blog.Core.Common.Helper; -using Blog.Core.Common.StaticHelper; +using Blog.Core.Common.Static; using Blog.Core.IRepository.Base; using Blog.Core.IServices; using Blog.Core.Model; diff --git a/Blog.Core.Tasks/Blog.Core.Tasks.csproj b/Blog.Core.Tasks/Blog.Core.Tasks.csproj index e41f726e..0dc571bf 100644 --- a/Blog.Core.Tasks/Blog.Core.Tasks.csproj +++ b/Blog.Core.Tasks/Blog.Core.Tasks.csproj @@ -9,6 +9,7 @@ + diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs index e2c479ed..8e9b3847 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs @@ -2,7 +2,6 @@ using Blog.Core.IServices; using Blog.Core.Model.Models; using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Logging; using Quartz; using System; using System.Collections.Generic; diff --git a/Blog.Core.Tests/DependencyInjection/DI_Test.cs b/Blog.Core.Tests/DependencyInjection/DI_Test.cs index 550f7a85..7ef085a4 100644 --- a/Blog.Core.Tests/DependencyInjection/DI_Test.cs +++ b/Blog.Core.Tests/DependencyInjection/DI_Test.cs @@ -7,9 +7,9 @@ using Blog.Core.Common.AppConfig; using Blog.Core.Common.DB; using Blog.Core.Common.LogHelper; +using Blog.Core.Common.Seed; using Blog.Core.IRepository.Base; using Blog.Core.IServices; -using Blog.Core.Model.Seed; using Blog.Core.Repository.Base; using Blog.Core.Services; using Microsoft.Extensions.DependencyInjection; From eefbe2c8c15910dfd0df94c5845c26201c1e7d27 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Thu, 19 Aug 2021 18:32:40 +0800 Subject: [PATCH 003/382] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E6=8A=A5=E9=94=99,=E7=94=B1=E4=BA=8Emodel=E5=B1=82?= =?UTF-8?q?=E7=9A=84=E7=A8=8B=E5=BA=8F=E9=9B=86=E6=B2=A1=E6=89=BE=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.xml | 6 ++++++ Blog.Core.Common/Seed/DBSeed.cs | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 3f79cf4e..35c54ff6 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -829,6 +829,12 @@ + + + 系统实例是否启动完成 + + + 获取Nacos 状态 diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 05ced06c..1d00bbc7 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -89,10 +89,14 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) // 创建数据库表,遍历指定命名空间下的class, // 注意不要把其他命名空间下的也添加进来。 Console.WriteLine("Create Tables..."); - var modelTypes = from t in Assembly.GetExecutingAssembly().GetTypes() - where t.IsClass && t.Namespace == "Blog.Core.Model.Models" - select t; - modelTypes.ToList().ForEach(t => + + var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory; + var referencedAssemblies = System.IO.Directory.GetFiles(path, "Blog.Core.Model.dll").Select(Assembly.LoadFrom).ToArray(); + var modelTypes = referencedAssemblies + .SelectMany(a => a.DefinedTypes) + .Select(type => type.AsType()) + .Where(x => x.IsClass && x.Namespace != null && x.Namespace.Equals("Blog.Core.Model.Models")).ToList(); + modelTypes.ForEach(t => { // 这里只支持添加表,不支持删除 // 如果想要删除,数据库直接右键删除,或者联系SqlSugar作者; From d08ccc6474d0f96c7ded850ac9f397ed2e22660e Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Fri, 20 Aug 2021 14:21:21 +0800 Subject: [PATCH 004/382] webhook-test --- webhook-test.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 webhook-test.txt diff --git a/webhook-test.txt b/webhook-test.txt new file mode 100644 index 00000000..39d1980e --- /dev/null +++ b/webhook-test.txt @@ -0,0 +1 @@ +webhook-test \ No newline at end of file From e130256d3b9f46864dd2eab2bfa89d249a0f3203 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Fri, 20 Aug 2021 14:22:48 +0800 Subject: [PATCH 005/382] =?UTF-8?q?webhook=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webhook-test.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 webhook-test.txt diff --git a/webhook-test.txt b/webhook-test.txt deleted file mode 100644 index 39d1980e..00000000 --- a/webhook-test.txt +++ /dev/null @@ -1 +0,0 @@ -webhook-test \ No newline at end of file From 9aececb180717d9d296c7c1851374f9394b7eef0 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Sat, 21 Aug 2021 13:08:06 +0800 Subject: [PATCH 006/382] test webhook --- test-webhook.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 test-webhook.txt diff --git a/test-webhook.txt b/test-webhook.txt new file mode 100644 index 00000000..9af488ac --- /dev/null +++ b/test-webhook.txt @@ -0,0 +1 @@ +test-webhook \ No newline at end of file From 3dc1dc964a95a9ee108db5fd708d7883546edfd3 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Sat, 21 Aug 2021 13:09:17 +0800 Subject: [PATCH 007/382] test webhook --- test-webhook.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 test-webhook.txt diff --git a/test-webhook.txt b/test-webhook.txt deleted file mode 100644 index 9af488ac..00000000 --- a/test-webhook.txt +++ /dev/null @@ -1 +0,0 @@ -test-webhook \ No newline at end of file From 801dba60094e703abec82e1002f8474ff18b6e45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Aug 2021 15:36:23 +0000 Subject: [PATCH 008/382] Bump Microsoft.AspNetCore.Authentication.JwtBearer Bumps [Microsoft.AspNetCore.Authentication.JwtBearer](https://github.com/aspnet/AspNetCore) from 3.1.9 to 3.1.18. - [Release notes](https://github.com/aspnet/AspNetCore/releases) - [Commits](https://github.com/aspnet/AspNetCore/compare/v3.1.9...v3.1.18) --- updated-dependencies: - dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Blog.Core.Extensions/Blog.Core.Extensions.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 90d5ed97..a4dc8775 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -11,7 +11,7 @@ - + From 13d285026b9aa38efc9d7456ac934ea269d2f644 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Aug 2021 02:42:46 +0000 Subject: [PATCH 009/382] Bump Microsoft.AspNetCore.Authentication.JwtBearer in /Blog.Core.Gateway Bumps [Microsoft.AspNetCore.Authentication.JwtBearer](https://github.com/dotnet/aspnetcore) from 5.0.0 to 5.0.9. - [Release notes](https://github.com/dotnet/aspnetcore/releases) - [Commits](https://github.com/dotnet/aspnetcore/compare/v5.0.0...v5.0.9) --- updated-dependencies: - dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Blog.Core.Extensions/Blog.Core.Extensions.csproj | 2 +- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index a4dc8775..76ce50ee 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -11,7 +11,7 @@ - + diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index 84713355..0dba222a 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -14,7 +14,7 @@ - + From c27abebe7337ab094b9c8cfb44dce2d569a7542a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 31 Aug 2021 11:49:37 +0800 Subject: [PATCH 010/382] Update CreateYourProject.bat --- CreateYourProject.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CreateYourProject.bat b/CreateYourProject.bat index 43a2a429..8f5b5ca7 100644 --- a/CreateYourProject.bat +++ b/CreateYourProject.bat @@ -3,9 +3,9 @@ echo "if u install template error,pls use:>>dotnet new -i .template.config\Blog. color 3 -dotnet new -i Blog.Core.Webapi.Template::2.5.3 +dotnet new -i Blog.Core.Webapi.Template::2.5.4 -set /p OP=Please set your project name(for example:Baidu.Api): +set /p OP=Please set your project name(for example:BlogMicService): md .1YourProject From 50947feb53ca6080347667a809f271a98b4b158e Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Thu, 2 Sep 2021 15:23:51 +0800 Subject: [PATCH 011/382] merge --- .docs/contents/PressureTest/README.md | 2 +- .docs/contents/Update/README.md | 16 + .docs/contents/guide/README.md | 14 + .docs/contents/guide/cheat-sheet.md | 4 +- .docs/contents/guide/function-sheet.md | 12 +- .docs/contents/guide/getting-started.md | 4 +- Blog.Core.Api/Controllers/BlogController.cs | 20 +- Blog.Core.Api/Controllers/LoginController.cs | 4 +- .../Controllers/MonitorController.cs | 38 +- Blog.Core.Api/Controllers/NacosController.cs | 2 +- Blog.Core.Api/Controllers/ValuesController.cs | 23 ++ Blog.Core.Api/Dockerfile | 2 +- Blog.Core.Api/Program.cs | 5 +- Blog.Core.Api/Properties/launchSettings.json | 4 +- Blog.Core.Api/Startup.cs | 1 + Blog.Core.Api/appsettings.apollo.json | 18 + Blog.Core.Api/appsettings.json | 23 +- Blog.Core.Api/wwwroot/CorsPost.html | 6 +- Blog.Core.Api/wwwroot/index.html | 4 +- Blog.Core.Build.bat | 2 +- Blog.Core.Common/Helper/JsonConfigUtils.cs | 1 - Blog.Core.Common/LogHelper/LogLock.cs | 41 ++- .../LogHelper/Seri/SerilogServer.cs | 9 +- Blog.Core.EventBus/Blog.Core.EventBus.csproj | 2 + .../EventBusKafka/EventBusKafka.cs | 118 +++++++ .../EventBusKafka/IKafkaConnectionPool.cs | 25 ++ .../EventBusKafka/KafkaConnectionPool.cs | 79 +++++ .../EventBusKafka/KafkaConsumerHostService.cs | 162 +++++++++ .../EventBusKafka/KafkaOptions.cs | 28 ++ .../EventBusKafka/ProtobufTransfer.cs | 32 ++ Blog.Core.Extensions/Apollo/ApolloOptions.cs | 27 ++ .../Apollo/ConfigurationBuilderExtensions.cs | 84 +++++ .../Blog.Core.Extensions.csproj | 4 +- .../Middlewares/IPLogMildd.cs | 35 +- .../NacosListenConfigurationTask.cs | 3 +- .../NacosConfig/NacosListenNamingTask.cs | 4 +- .../Redis/RedisBasketRepository.cs | 12 +- .../Redis/RedisCacheManager.cs | 12 +- .../ServiceExtensions/EventBusSetup.cs | 40 ++- .../ServiceExtensions/KafkaSetup.cs | 26 ++ .../ServiceExtensions/NacosSetup.cs | 6 +- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 2 +- .../Controllers/UserController.cs | 1 - Blog.Core.Gateway/Startup.cs | 2 - Blog.Core.Gateway/ocelot.Development.json | 2 +- Blog.Core.Gateway/ocelot.json | 2 +- Blog.Core.Publish.Docker.Jenkins.sh | 2 +- Blog.Core.Publish.Docker.sh | 2 +- .../AppSettingsFileNameConfig.cs | 30 ++ .../Blog.Core.Serilog.Es.csproj | 17 + .../Formatters/JsonConfigUtils.cs | 66 ++++ .../Formatters/LogConfigRootDTO.cs | 26 ++ .../Formatters/LogstashJsonFormatter.cs | 152 ++++++++ .../HttpInfo/HttpContextProvider.cs | 20 ++ Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs | 82 +++++ .../NetworkLoggerConfigurationExtensions.cs | 102 ++++++ Blog.Core.Serilog.Es/Sinks/TCP/TCPSink.cs | 44 +++ .../Sinks/TCP/TCPSocketWriter.cs | 325 ++++++++++++++++++ Blog.Core.Serilog.Es/Sinks/UDP/UDPSink.cs | 42 +++ Blog.Core.Tests/appsettings.json | 2 +- Blog.Core.sln | 8 + CreateYourProject.bat | 4 +- DockerBuild.bat | 18 + Dockerfile | 4 +- README.md | 17 +- 65 files changed, 1815 insertions(+), 111 deletions(-) create mode 100644 Blog.Core.Api/appsettings.apollo.json create mode 100644 Blog.Core.EventBus/EventBusKafka/EventBusKafka.cs create mode 100644 Blog.Core.EventBus/EventBusKafka/IKafkaConnectionPool.cs create mode 100644 Blog.Core.EventBus/EventBusKafka/KafkaConnectionPool.cs create mode 100644 Blog.Core.EventBus/EventBusKafka/KafkaConsumerHostService.cs create mode 100644 Blog.Core.EventBus/EventBusKafka/KafkaOptions.cs create mode 100644 Blog.Core.EventBus/EventBusKafka/ProtobufTransfer.cs create mode 100644 Blog.Core.Extensions/Apollo/ApolloOptions.cs create mode 100644 Blog.Core.Extensions/Apollo/ConfigurationBuilderExtensions.cs create mode 100644 Blog.Core.Extensions/ServiceExtensions/KafkaSetup.cs create mode 100644 Blog.Core.Serilog.Es/AppSettingsFileNameConfig.cs create mode 100644 Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj create mode 100644 Blog.Core.Serilog.Es/Formatters/JsonConfigUtils.cs create mode 100644 Blog.Core.Serilog.Es/Formatters/LogConfigRootDTO.cs create mode 100644 Blog.Core.Serilog.Es/Formatters/LogstashJsonFormatter.cs create mode 100644 Blog.Core.Serilog.Es/HttpInfo/HttpContextProvider.cs create mode 100644 Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs create mode 100644 Blog.Core.Serilog.Es/NetworkLoggerConfigurationExtensions.cs create mode 100644 Blog.Core.Serilog.Es/Sinks/TCP/TCPSink.cs create mode 100644 Blog.Core.Serilog.Es/Sinks/TCP/TCPSocketWriter.cs create mode 100644 Blog.Core.Serilog.Es/Sinks/UDP/UDPSink.cs create mode 100644 DockerBuild.bat diff --git a/.docs/contents/PressureTest/README.md b/.docs/contents/PressureTest/README.md index 9798e89a..af2a2e93 100644 --- a/.docs/contents/PressureTest/README.md +++ b/.docs/contents/PressureTest/README.md @@ -20,7 +20,7 @@ 本地发布后的 `windows` 环境,直接用 `kestrel` 启动。 线程数:100 循环数:1000 -HTTP默认值:协议:`http`;服务器或IP:`localhost`;端口号:`8081`; +HTTP默认值:协议:`http`;服务器或IP:`localhost`;端口号:`9291`; HTTP请求:方法:GET;路径:`/api/blog/ApacheTestUpdate` HTTP信息请求管理器:无 响应断言:无 diff --git a/.docs/contents/Update/README.md b/.docs/contents/Update/README.md index a80f7cb1..870f98ec 100644 --- a/.docs/contents/Update/README.md +++ b/.docs/contents/Update/README.md @@ -2,6 +2,22 @@ ## 更新日志 +### 2021-08-21 + +重要功能增加:项目增加 `Apollo` 配置中心; + +### 2021-08-03 + +重要功能增加:项目增加 `ES` 搜索,增加 `Serilog` 使用 `tcp` 的方式自定义格式化,写入 `elk` 的实现; + +### 2021-06-28 + +功能增加:项目增加 `nacos` 配置,支持将项目注册到 `nacos` 服务中心,搭建微服务之子服务; + +### 2021-06-04 + +小功能更新:执行的时候,将 `Sql` 日志输出到控制台,方便查看,支持配置文件关闭; + ### 2021-05-01 组件更新:多项日志中间件,由自写组件,转为使用`serilog`组件记录日志; diff --git a/.docs/contents/guide/README.md b/.docs/contents/guide/README.md index 209444c4..30950e0c 100644 --- a/.docs/contents/guide/README.md +++ b/.docs/contents/guide/README.md @@ -5,6 +5,20 @@ Blog.Core 是一个开箱即用的企业级权限管理应用框架。 采用最新的前后端完全分离技术【 ASP.NET Core Api 5.0 + Vue 2.x 】。 并结合 `IdentityServer4` ,可快速解决多客户端和多资源服务的统一认证与鉴权的问题。 +## 其他资料 + +博客园,早期架构搭建:[博客园](https://www.cnblogs.com/laozhang-is-phi/p/9495618.html) +公众号,后期调整:[文章](https://mvp.neters.club/MVP_aspnetcore_2020/2020) +视频:[B站](https://www.bilibili.com/video/BV1vC4y1p7Za) + + +## 配套站点 + +本资源服务器,配合多个项目,构建前后端权限一体化平台,前端用 `VUE` 框架。 +前端-客户端:[预览](https://vueadmin.neters.club/)、[源码](https://github.com/anjoy8/Blog.Admin) +前端-管理后台:[预览](http://vueblog.neters.club/)、[源码](https://github.com/anjoy8/Blog.Vue) +认证平台:[预览](https://ids.neters.club/)、[源码](https://github.com/anjoy8/Blog.IdentityServer) + ### 为什么选择 ASPNET.Core 1、【开源】`ASPNET.NET Core` 是由 `Microsoft` 和 `.NET` 社区在 `GitHub` 上开源并维护的一个跨平台(支持 Windows、macOS 和 Linux)的新一代高性能框架, diff --git a/.docs/contents/guide/cheat-sheet.md b/.docs/contents/guide/cheat-sheet.md index c99b5398..36f95e36 100644 --- a/.docs/contents/guide/cheat-sheet.md +++ b/.docs/contents/guide/cheat-sheet.md @@ -158,7 +158,7 @@ services.AddIpPolicyRateLimitSetup(Configuration); ``` -然后在 `IdentityServer4` 项目中,做指定的修改,配置 `8081` 的回调地址: +然后在 `IdentityServer4` 项目中,做指定的修改,配置 `9291` 的回调地址: ``` new Client { @@ -171,7 +171,7 @@ services.AddIpPolicyRateLimitSetup(Configuration); { "http://vueadmin.neters.club/callback", // 这里要配置回调地址 - "http://localhost:8081/oauth2-redirect.html" + "http://localhost:9291/oauth2-redirect.html" }, PostLogoutRedirectUris = { "http://vueadmin.neters.club" }, AllowedCorsOrigins = { "http://vueadmin.neters.club" }, diff --git a/.docs/contents/guide/function-sheet.md b/.docs/contents/guide/function-sheet.md index 2a902c55..d81ad13f 100644 --- a/.docs/contents/guide/function-sheet.md +++ b/.docs/contents/guide/function-sheet.md @@ -212,7 +212,7 @@ http { #access_log logs/host.access.log main; location / { root html; - proxy_pass http://localhost:8081; + proxy_pass http://localhost:9291; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; @@ -253,7 +253,7 @@ http { location /api/ { rewrite ^.+apb/?(.*)$ /$1 break; include uwsgi_params; - proxy_pass http://localhost:8081; + proxy_pass http://localhost:9291; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; #proxy_set_header Connection "upgrade"; @@ -265,7 +265,7 @@ http { location /api2/ { rewrite ^.+apb/?(.*)$ /$1 break; include uwsgi_params; - proxy_pass http://localhost:8081; + proxy_pass http://localhost:9291; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; @@ -276,7 +276,7 @@ http { location /images/ { include uwsgi_params; - proxy_pass http://localhost:8081; + proxy_pass http://localhost:9291; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; #proxy_set_header Connection "upgrade"; @@ -361,7 +361,7 @@ http { location /api { rewrite ^.+apb/?(.*)$ /$1 break; include uwsgi_params; - proxy_pass http://localhost:8081; + proxy_pass http://localhost:9291; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } @@ -369,7 +369,7 @@ http { location /images { include uwsgi_params; - proxy_pass http://localhost:8081; + proxy_pass http://localhost:9291; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } diff --git a/.docs/contents/guide/getting-started.md b/.docs/contents/guide/getting-started.md index 8da8bb70..9c4f6b0d 100644 --- a/.docs/contents/guide/getting-started.md +++ b/.docs/contents/guide/getting-started.md @@ -14,7 +14,7 @@ Gitee(国内) 下载 [https://gitee.com/laozhangIsPhi/Blog.Core](https://git ## 编译与运行 1、拿到项目后,双击 `Blog.Core.sln` 解决方案; 2、首先 `F6` 编译,看是否有错误; -3、然后 `F5` 运行,调起 `8081` 端口,浏览器查看效果; +3、然后 `F5` 运行,调起 `9291` 端口,浏览器查看效果; 4、因为系统默认的是 `sqlite` 数据库,如果你想换其他数据库,请看下边; 5、注意:本系统是直接自动生成数据库和数据的,不用手动创建数据库; @@ -78,7 +78,7 @@ Gitee(国内) 下载 [https://gitee.com/laozhangIsPhi/Blog.Core](https://git ``` ## 如何配置项目端口号 -1、在 `Blog.Core` 层下的 `program.cs` 文件中,将 `8081`端口,修改为自己想要的端口号; +1、在 `Blog.Core` 层下的 `program.cs` 文件中,将 `9291`端口,修改为自己想要的端口号; 2、或者在 `launchSettings.json` 中设置(`注意,如果仅仅修改这里,publish后,端口访问无效`); ## 如何项目重命名 diff --git a/Blog.Core.Api/Controllers/BlogController.cs b/Blog.Core.Api/Controllers/BlogController.cs index 577e80bb..24860971 100644 --- a/Blog.Core.Api/Controllers/BlogController.cs +++ b/Blog.Core.Api/Controllers/BlogController.cs @@ -176,12 +176,20 @@ public MessageModel V2_Blogtest() [Authorize] public async Task> Post([FromBody] BlogArticle blogArticle) { - blogArticle.bCreateTime = DateTime.Now; - blogArticle.bUpdateTime = DateTime.Now; - blogArticle.IsDeleted = false; - blogArticle.bcategory = "技术博文"; - var id = (await _blogArticleServices.Add(blogArticle)); - return id > 0 ? Success(id.ObjToString()) : Failed("添加失败"); + if (blogArticle.btitle.Length > 5 && blogArticle.bcontent.Length > 50) + { + + blogArticle.bCreateTime = DateTime.Now; + blogArticle.bUpdateTime = DateTime.Now; + blogArticle.IsDeleted = false; + blogArticle.bcategory = "技术博文"; + var id = (await _blogArticleServices.Add(blogArticle)); + return id > 0 ? Success(id.ObjToString()) : Failed("添加失败"); + } + else + { + return Failed("文章标题不能少于5个字符,内容不能少于50个字符!"); + } } diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index 686c6431..e007cc6d 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -14,6 +14,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; + namespace Blog.Core.Controllers { @@ -61,10 +62,11 @@ public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServic [Route("Token")] public async Task> GetJwtStr(string name, string pass) { + string jwtStr = string.Empty; bool suc = false; //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 - + var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass)); if (user != null) { diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index b06af190..28ff3265 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -105,13 +105,43 @@ public MessageModel GetAccessApiByHour() }; } + private List GetAccessLogsToday(IWebHostEnvironment environment) + { + List userAccessModels = new(); + var accessLogs = LogLock.ReadLog( + Path.Combine(environment.ContentRootPath, "Log"), "RecordAccessLogs_", Encoding.UTF8, ReadType.PrefixLatest + ).ObjToString(); + try + { + return JsonConvert.DeserializeObject>("[" + accessLogs + "]"); + } + catch (Exception) + { + var accLogArr = accessLogs.Split("\n"); + foreach (var item in accLogArr) + { + if (item.ObjToString() != "") + { + try + { + var accItem = JsonConvert.DeserializeObject(item.TrimEnd(',')); + userAccessModels.Add(accItem); + } + catch (Exception) + { + } + } + } + + } + + return userAccessModels; + } + [HttpGet] public MessageModel GetActiveUsers([FromServices] IWebHostEnvironment environment) { - var accessLogsToday = JsonConvert.DeserializeObject>("[" + LogLock.ReadLog( - Path.Combine(environment.ContentRootPath, "Log"), "RecordAccessLogs_", Encoding.UTF8, ReadType.PrefixLatest - ) + "]") - .Where(d => d.BeginTime.ObjToDate() >= DateTime.Today); + var accessLogsToday = GetAccessLogsToday(environment).Where(d => d.BeginTime.ObjToDate() >= DateTime.Today); var Logs = accessLogsToday.OrderByDescending(d => d.BeginTime).Take(50).ToList(); diff --git a/Blog.Core.Api/Controllers/NacosController.cs b/Blog.Core.Api/Controllers/NacosController.cs index 8c824296..6aac936a 100644 --- a/Blog.Core.Api/Controllers/NacosController.cs +++ b/Blog.Core.Api/Controllers/NacosController.cs @@ -45,7 +45,7 @@ public NacosController(INacosNamingService nacosNamingService) /// [HttpGet] - public async Task> checkSystemStartFinish() + public MessageModel CheckSystemStartFinish() { //********************* 用当前接口做基本健康检查 确定 基础服务 数据库 缓存都已正常启动***** // 然后再进行服务上线 diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 7399d8f7..002f1e62 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -1,4 +1,5 @@ using AutoMapper; +using Blog.Core.Common; using Blog.Core.Common.HttpContextUser; using Blog.Core.Common.HttpRestSharp; using Blog.Core.Common.WebApiClients.HttpApis; @@ -12,6 +13,7 @@ using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -349,5 +351,26 @@ public void Put(int id, [FromBody] string value) public void Delete(int id) { } + + #region Apollo 配置 + /// + /// 测试接入Apollo获取配置信息 + /// + [HttpGet("/apollo")] + [AllowAnonymous] + public async Task>> GetAllConfigByAppllo([FromServices]IConfiguration configuration) + { + return await Task.FromResult(configuration.AsEnumerable()); + } + /// + /// 通过此处的key格式为 xx:xx:x + /// + [HttpGet("/apollo/{key}")] + [AllowAnonymous] + public async Task GetConfigByAppllo(string key) + { + return await Task.FromResult(Appsettings.app(key)); + } + #endregion } } diff --git a/Blog.Core.Api/Dockerfile b/Blog.Core.Api/Dockerfile index 2e25ef5a..43618077 100644 --- a/Blog.Core.Api/Dockerfile +++ b/Blog.Core.Api/Dockerfile @@ -37,5 +37,5 @@ RUN echo 'Asia/Shanghai' >/etc/timezone #&& supervisord -c /etc/supervisord.conf WORKDIR /app COPY . . -EXPOSE 8081 +EXPOSE 9291 ENTRYPOINT ["dotnet", "Blog.Core.Api.dll","-b","0.0.0.0"] \ No newline at end of file diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 30615a39..9e416297 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -1,4 +1,5 @@ using Autofac.Extensions.DependencyInjection; +using Blog.Core.Extensions.Apollo; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; @@ -25,8 +26,10 @@ public static void Main(string[] args) config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false) //.AddJsonFile($"appsettings{ GetAppSettingsConfigName() }json", optional: true, reloadOnChange: false) ; + //接入Apollo配置中心 + config.AddConfigurationApollo("appsettings.apollo.json"); }) - .UseUrls("http://*:8081") + .UseUrls("http://*:9291") .ConfigureLogging((hostingContext, builder) => { // 1.过滤掉系统默认的一些日志 diff --git a/Blog.Core.Api/Properties/launchSettings.json b/Blog.Core.Api/Properties/launchSettings.json index 75116a3b..9b02dcc0 100644 --- a/Blog.Core.Api/Properties/launchSettings.json +++ b/Blog.Core.Api/Properties/launchSettings.json @@ -13,9 +13,9 @@ "commandName": "Project", "launchBrowser": true, "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "dev" + "ASPNETCORE_ENVIRONMENT": "" }, - "applicationUrl": "http://localhost:8081" + "applicationUrl": "http://localhost:9291" }, "IIS Express": { "commandName": "IISExpress", diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index 14a30aeb..599d3760 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -68,6 +68,7 @@ public void ConfigureServices(IServiceCollection services) services.AddRedisInitMqSetup(); services.AddRabbitMQSetup(); + services.AddKafkaSetup(Configuration); services.AddEventBusSetup(); services.AddNacosSetup(Configuration); diff --git a/Blog.Core.Api/appsettings.apollo.json b/Blog.Core.Api/appsettings.apollo.json new file mode 100644 index 00000000..826c75ca --- /dev/null +++ b/Blog.Core.Api/appsettings.apollo.json @@ -0,0 +1,18 @@ +{ + //apollo 配置 + "Apollo": { + "Enable": false, + "Config": { + "AppId": "blog.core", + "Env": "DEV", + "MetaServer": "http://localhost:8080/", + "ConfigServer": [ "http://localhost:8080/" ] + }, + "Namespaces": [ //Namespaces的数据格式Properties,Xml,Json,Yml,Yaml,Txt + { + "Name": "test", + "Format": "json" + } + ] + } +} \ No newline at end of file diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index b39bce54..c31755df 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -1,5 +1,5 @@ { - "urls": "http://*:8081", //web服务端口,如果用IIS部署,把这个去掉 + "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 "Logging": { "LogLevel": { "Default": "Information", //加入Default否则log4net本地写入不了日志 @@ -31,6 +31,13 @@ "UserName": "", "Password": "!", "RetryCount": 3 + }, + "Kafka": { + "Enabled": false, + "Servers": "localhost:9092", + "Topic": "blog", + "GroupId": "blog-consumer", + "NumPartitions": 3 //主题分区数量 }, "EventBus": { "Enabled": false, @@ -245,7 +252,7 @@ "ConsulSetting": { "ServiceName": "BlogCoreService", "ServiceIP": "localhost", - "ServicePort": "8081", + "ServicePort": "9291", "ServiceHealthCheck": "/healthcheck", "ConsulAddress": "http://localhost:8500" }, @@ -264,7 +271,17 @@ "Namespace": "public", // 命名空间 "ListenInterval": 10000, // 监听的频率 "ServiceName": "blog.Core.Api", // 服务名 - "Port": "8081", // 服务端口号 + "Port": "9291", // 服务端口号 "RegisterEnabled": true // 是否直接注册nacos + }, + "LogFiedOutPutConfigs": { + "tcpAddressHost": "", // 输出elk的tcp连接地址 + "tcpAddressPort": 0, // 输出elk的tcp端口号 + "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 + { + "FiedName": "applicationName", + "FiedValue": "Blog.Core.Api" + } + ] } } diff --git a/Blog.Core.Api/wwwroot/CorsPost.html b/Blog.Core.Api/wwwroot/CorsPost.html index cf160d5c..8ebbf01a 100644 --- a/Blog.Core.Api/wwwroot/CorsPost.html +++ b/Blog.Core.Api/wwwroot/CorsPost.html @@ -15,13 +15,13 @@ $(document).ready(function () { $("#jsonp").click(function () { - $.getJSON("http://localhost:8081/api/Login/jsonp?callBack=?", function (data) { + $.getJSON("http://localhost:9291/api/Login/jsonp?callBack=?", function (data) { $("#data-jsonp").html("数据: " + data.value); }); }); $("#cors").click(function () { - $.get("http://localhost:8081/api/Login/Token", function (data, status) { + $.get("http://localhost:9291/api/Login/Token", function (data, status) { console.log(data); $("#status-cors").html("状态: " + status); $("#data-cors").html("数据: " + data? data.token:"失败"); @@ -43,7 +43,7 @@ }; $.ajax({ type: 'post', - url: 'http://localhost:8081/api/Values', + url: 'http://localhost:9291/api/Values', contentType: 'application/json', data: JSON.stringify(postdata), success: function (data, status) { diff --git a/Blog.Core.Api/wwwroot/index.html b/Blog.Core.Api/wwwroot/index.html index cf47942a..2e1be63e 100644 --- a/Blog.Core.Api/wwwroot/index.html +++ b/Blog.Core.Api/wwwroot/index.html @@ -18,7 +18,7 @@ "bRemark": "string" }; $.ajax({ - url: "http://localhost:8081/api/Values", + url: "http://localhost:9291/api/Values", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify(postdata), @@ -34,7 +34,7 @@
-
+
diff --git a/Blog.Core.Build.bat b/Blog.Core.Build.bat index c6163e9a..632e841c 100644 --- a/Blog.Core.Build.bat +++ b/Blog.Core.Build.bat @@ -2,7 +2,7 @@ git pull @echo off -for /f "tokens=5" %%i in ('netstat -aon ^| findstr ":8081"') do ( +for /f "tokens=5" %%i in ('netstat -aon ^| findstr ":9291"') do ( set n=%%i ) taskkill /f /pid %n% diff --git a/Blog.Core.Common/Helper/JsonConfigUtils.cs b/Blog.Core.Common/Helper/JsonConfigUtils.cs index f04fff19..b49024b3 100644 --- a/Blog.Core.Common/Helper/JsonConfigUtils.cs +++ b/Blog.Core.Common/Helper/JsonConfigUtils.cs @@ -101,7 +101,6 @@ public ConfigurationManager(IConfigurationRoot _config) } catch (Exception ex) { - Serilog.Log.Information($"配置文件管理器异常:,{ ex.ToString() }"); value = defaultValue; } diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index adeb0e11..dc2d158a 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -150,6 +150,37 @@ public static string ReadLog(string folderPath, string fileName, Encoding encode return s; } + private static List GetRequestInfo(ReadType readType) + { + List requestInfos = new(); + var accessLogs = ReadLog(Path.Combine(_contentRoot, "Log"), "RequestIpInfoLog_", Encoding.UTF8, readType).ObjToString(); + try + { + return JsonConvert.DeserializeObject>("[" + accessLogs + "]"); + } + catch (Exception) + { + var accLogArr = accessLogs.Split("\r\n"); + foreach (var item in accLogArr) + { + if (item.ObjToString() != "") + { + try + { + var accItem = JsonConvert.DeserializeObject(item.TrimEnd(',')); + requestInfos.Add(accItem); + } + catch (Exception) + { + } + } + } + + } + + return requestInfos; + } + public static List GetLogData() { @@ -232,7 +263,7 @@ public static List GetLogData() try { - var Logs = JsonConvert.DeserializeObject>("[" + ReadLog(Path.Combine(_contentRoot, "Log"), "RequestIpInfoLog_", Encoding.UTF8, ReadType.PrefixLatest) + "]"); + var Logs = GetRequestInfo(ReadType.PrefixLatest); Logs = Logs.Where(d => d.Datetime.ObjToDate() >= DateTime.Today).ToList(); @@ -276,7 +307,7 @@ public static RequestApiWeekView RequestApiinfoByWeek() try { - Logs = JsonConvert.DeserializeObject>("[" + ReadLog(Path.Combine(_contentRoot, "Log"), "RequestIpInfoLog_", Encoding.UTF8, ReadType.Prefix) + "]"); + Logs = GetRequestInfo(ReadType.Prefix); apiWeeks = (from n in Logs group n by new { n.Week, n.Url } into g @@ -347,8 +378,8 @@ public static AccessApiDateView AccessApiByDate() List apiDates = new List(); try { - Logs = JsonConvert.DeserializeObject>("[" + ReadLog(Path.Combine(_contentRoot, "Log"), "RequestIpInfoLog_", Encoding.UTF8, ReadType.Prefix) + "]"); - + Logs = GetRequestInfo(ReadType.Prefix); + apiDates = (from n in Logs group n by new { n.Date } into g select new ApiDate @@ -377,7 +408,7 @@ public static AccessApiDateView AccessApiByHour() List apiDates = new List(); try { - Logs = JsonConvert.DeserializeObject>("[" + ReadLog(Path.Combine(_contentRoot, "Log"), "RequestIpInfoLog_", Encoding.UTF8, ReadType.Prefix) + "]"); + Logs = GetRequestInfo(ReadType.Prefix); apiDates = (from n in Logs where n.Datetime.ObjToDate() >= DateTime.Today diff --git a/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs b/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs index fcdbfd84..2c70532d 100644 --- a/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs +++ b/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs @@ -1,7 +1,8 @@ using Blog.Core.Common.Helper; +using Blog.Core.Serilog.Es; +using Blog.Core.Serilog.Es.Formatters; using Serilog; using Serilog.Events; -using Serilog.Sinks.Elasticsearch; using System; using System.IO; @@ -18,6 +19,8 @@ public class SerilogServer public static void WriteLog(string filename, string[] dataParas, bool IsHeader = true, string defaultFolder = "", bool isJudgeJsonFormat = false) { Log.Logger = new LoggerConfiguration() + // TCPSink 集成Serilog 使用tcp的方式向elk 输出log日志 LogstashJsonFormatter 这个是按照自定义格式化输出内容 + .WriteTo.TCPSink(new LogstashJsonFormatter()) .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Error) //.WriteTo.File(Path.Combine($"log/Serilog/{filename}/", ".log"), rollingInterval: RollingInterval.Day, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level}] {Message}{NewLine}{Exception}") @@ -54,7 +57,11 @@ public static void WriteLog(string filename, string[] dataParas, bool IsHeader = String.Join("\r\n", dataParas) + "\r\n" ); } + // 展示elk支持输出4种日志级别 Log.Information(logContent); + Log.Warning(logContent); + Log.Error(logContent); + Log.Debug(logContent); } else { diff --git a/Blog.Core.EventBus/Blog.Core.EventBus.csproj b/Blog.Core.EventBus/Blog.Core.EventBus.csproj index d15a0109..b71254af 100644 --- a/Blog.Core.EventBus/Blog.Core.EventBus.csproj +++ b/Blog.Core.EventBus/Blog.Core.EventBus.csproj @@ -8,11 +8,13 @@ + + diff --git a/Blog.Core.EventBus/EventBusKafka/EventBusKafka.cs b/Blog.Core.EventBus/EventBusKafka/EventBusKafka.cs new file mode 100644 index 00000000..6b2dd0fb --- /dev/null +++ b/Blog.Core.EventBus/EventBusKafka/EventBusKafka.cs @@ -0,0 +1,118 @@ +using Blog.Core.Common.Extensions; +using Confluent.Kafka; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Newtonsoft.Json; +using System; + +namespace Blog.Core.EventBus +{ + /// + /// 基于Kafka的事件总线 + /// + public class EventBusKafka : IEventBus + { + private readonly ILogger _logger; + private readonly IEventBusSubscriptionsManager _subsManager; + private readonly IKafkaConnectionPool _connectionPool; + private readonly KafkaOptions _options; + public EventBusKafka(ILogger logger, + IEventBusSubscriptionsManager subsManager, + IKafkaConnectionPool connectionPool, + IOptions options) + { + _logger = logger; + _subsManager = subsManager; + _connectionPool = connectionPool; + _options = options.Value; + } + /// + /// 发布 + /// + public void Publish(IntegrationEvent @event) + { + var producer = _connectionPool.Producer(); + try + { + var eventName = @event.GetType().Name; + var body = Protobuf.Serialize(JsonConvert.SerializeObject(@event)); + DeliveryResult result = producer.ProduceAsync(_options.Topic, new Message + { + Key = eventName, + Value = body + }).ConfigureAwait(false).GetAwaiter().GetResult(); + } + catch (Exception ex) + { + _logger.LogWarning($"Could not publish event: {@event.Id.ToString("N")} ({ex.Message}); Message:{ JsonConvert.SerializeObject(@event)}"); + } + finally + { + //放入连接池中 + _connectionPool.Return(producer); + } + } + + /// + /// 订阅 + /// 动态 + /// + /// 事件处理器 + /// 事件名 + public void SubscribeDynamic(string eventName) + where TH : IDynamicIntegrationEventHandler + { + _logger.LogInformation("Subscribing to dynamic event {EventName} with {EventHandler}", eventName, typeof(TH).GetGenericTypeName()); + + _subsManager.AddDynamicSubscription(eventName); + } + + /// + /// 订阅 + /// + /// 约束:事件模型 + /// 约束:事件处理器<事件模型> + public void Subscribe() + where T : IntegrationEvent + where TH : IIntegrationEventHandler + { + var eventName = _subsManager.GetEventKey(); + + _logger.LogInformation("Subscribing to event {EventName} with {EventHandler}", eventName, typeof(TH).GetGenericTypeName()); + + _subsManager.AddSubscription(); + } + + /// + /// 取消订阅 + /// + /// + /// + public void Unsubscribe() + where T : IntegrationEvent + where TH : IIntegrationEventHandler + { + var eventName = _subsManager.GetEventKey(); + + _logger.LogInformation("Unsubscribing from event {EventName}", eventName); + + _subsManager.RemoveSubscription(); + } + + public void UnsubscribeDynamic(string eventName) + where TH : IDynamicIntegrationEventHandler + { + _subsManager.RemoveDynamicSubscription(eventName); + } + + public void Dispose() + { + if (_connectionPool != null) + { + _connectionPool.Dispose(); + } + _subsManager.Clear(); + } + + } +} diff --git a/Blog.Core.EventBus/EventBusKafka/IKafkaConnectionPool.cs b/Blog.Core.EventBus/EventBusKafka/IKafkaConnectionPool.cs new file mode 100644 index 00000000..0968e0e3 --- /dev/null +++ b/Blog.Core.EventBus/EventBusKafka/IKafkaConnectionPool.cs @@ -0,0 +1,25 @@ +using Confluent.Kafka; +using System; + + +namespace Blog.Core.EventBus +{ + /// + /// Kafka连接池 + /// + public interface IKafkaConnectionPool:IDisposable + { + /// + /// 取对象 + /// + /// + IProducer Producer(); + + /// + /// 将对象放入连接池 + /// + /// + /// + bool Return(IProducer producer); + } +} diff --git a/Blog.Core.EventBus/EventBusKafka/KafkaConnectionPool.cs b/Blog.Core.EventBus/EventBusKafka/KafkaConnectionPool.cs new file mode 100644 index 00000000..addd1f6b --- /dev/null +++ b/Blog.Core.EventBus/EventBusKafka/KafkaConnectionPool.cs @@ -0,0 +1,79 @@ +using Confluent.Kafka; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using System.Collections.Concurrent; +using System.Threading; + + +namespace Blog.Core.EventBus +{ + /// + /// Kafka producer 连接池管理 + /// 可以使用微软官方的对象池进行构造ObjectPool + /// + public class KafkaConnectionPool : IKafkaConnectionPool + { + private readonly KafkaOptions _options; + private ConcurrentQueue> _producerPool = new(); + private int _currentCount; + private int _maxSize; + public KafkaConnectionPool(IOptions options) + { + _options = options.Value; + _maxSize = _options.ConnectionPoolSize; + } + + /// + /// 取对象 + /// + /// + public IProducer Producer() + { + if (_producerPool.TryDequeue(out var producer)) + { + Interlocked.Decrement(ref _currentCount); + return producer; + } + + var config = new ProducerConfig() + { + BootstrapServers = _options.Servers, + QueueBufferingMaxMessages = 10, + MessageTimeoutMs = 5000, + RequestTimeoutMs = 3000 + }; + + producer = new ProducerBuilder(config) + .Build(); + return producer; + } + /// + /// 将对象放入连接池 + /// + /// + /// + public bool Return(IProducer producer) + { + if (Interlocked.Increment(ref _currentCount) <= _maxSize) + { + _producerPool.Enqueue(producer); + return true; + } + + producer.Dispose(); + Interlocked.Decrement(ref _currentCount); + + return false; + } + public void Dispose() + { + _maxSize = 0; + _currentCount = 0; + while (_producerPool.TryDequeue(out var context)) + { + context?.Dispose(); + } + } + + } +} diff --git a/Blog.Core.EventBus/EventBusKafka/KafkaConsumerHostService.cs b/Blog.Core.EventBus/EventBusKafka/KafkaConsumerHostService.cs new file mode 100644 index 00000000..27fcd000 --- /dev/null +++ b/Blog.Core.EventBus/EventBusKafka/KafkaConsumerHostService.cs @@ -0,0 +1,162 @@ +using Autofac; +using Confluent.Kafka; +using Confluent.Kafka.Admin; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace Blog.Core.EventBus +{ + /// + /// Kafka consumer 监听服务 + /// + public class KafkaConsumerHostService : BackgroundService + { + private readonly string AUTOFAC_SCOPE_NAME = "blogcore_event_bus"; + private readonly ILogger _logger; + private readonly IConsumer _consumer; + private readonly KafkaOptions _options; + private readonly IEventBusSubscriptionsManager _subsManager; + private readonly ILifetimeScope _autofac; + private CancellationTokenSource cts = new(); + public KafkaConsumerHostService(ILogger logger, + IOptions options, + IEventBusSubscriptionsManager eventBusSubscriptionsManager, + ILifetimeScope autofac) + { + _autofac = autofac; + _subsManager = eventBusSubscriptionsManager; + _logger = logger; + _options = options.Value; + _consumer = new ConsumerBuilder(new ConsumerConfig + { + BootstrapServers = _options.Servers, + GroupId = _options.GroupId, + AutoOffsetReset = AutoOffsetReset.Earliest, + AllowAutoCreateTopics = true, + EnableAutoCommit = false, + LogConnectionClose = false + }).SetErrorHandler(ConsumerClient_OnConsumeError) + .Build(); + } + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + var result = await FetchTopicAsync(); + if (result) + { + _consumer.Subscribe(_options.Topic); + while (!cts.Token.IsCancellationRequested) + { + var consumerResult = _consumer.Consume(cts.Token); + try + { + if (consumerResult.IsPartitionEOF || consumerResult.Message.Value == null) continue; + + var @event = Protobuf.Deserialize(consumerResult.Message.Value); + await ProcessEvent(consumerResult.Message.Key, @event); + } + catch (ConsumeException e) + { + _logger.LogError($"Error occured: {e.Error.Reason}"); + } + finally + { + _consumer.Commit(consumerResult); + } + } + } + } + public override Task StopAsync(CancellationToken cancellationToken) + { + cts.Cancel(); + _logger.LogInformation("kafka consumer stop and disposable"); + _consumer.Dispose(); + return base.StopAsync(cancellationToken); + } + /// + /// 检测当前Topic是否存在 + /// + /// + private async Task FetchTopicAsync() + { + if (string.IsNullOrEmpty(_options.Topic)) + throw new ArgumentNullException(nameof(_options.Topic)); + + try + { + var config = new AdminClientConfig { BootstrapServers = _options.Servers }; + using var adminClient = new AdminClientBuilder(config).Build(); + await adminClient.CreateTopicsAsync(Enumerable.Range(0,1).Select(u=> new TopicSpecification + { + Name = _options.Topic, + NumPartitions = _options.NumPartitions + })); + } + catch (CreateTopicsException ex) when (ex.Message.Contains("already exists")) + { + } + catch (Exception ex) + { + _logger.LogError("An error was encountered when automatically creating topic! -->" + ex.Message); + return false; + } + return true; + } + /// + /// 接收到消息进行处理 + /// + /// 事件名称 + /// 消息内容 + /// + private async Task ProcessEvent(string eventName, string message) + { + _logger.LogTrace("Processing Kafka event: {EventName}", eventName); + + if (_subsManager.HasSubscriptionsForEvent(eventName)) + { + using (var scope = _autofac.BeginLifetimeScope(AUTOFAC_SCOPE_NAME)) + { + var subscriptions = _subsManager.GetHandlersForEvent(eventName); + foreach (var subscription in subscriptions) + { + if (subscription.IsDynamic) + { + var handler = scope.ResolveOptional(subscription.HandlerType) as IDynamicIntegrationEventHandler; + if (handler == null) continue; + dynamic eventData = JObject.Parse(message); + + await Task.Yield(); + await handler.Handle(eventData); + } + else + { + var handler = scope.ResolveOptional(subscription.HandlerType); + if (handler == null) continue; + var eventType = _subsManager.GetEventTypeByName(eventName); + var integrationEvent = JsonConvert.DeserializeObject(message, eventType); + var concreteType = typeof(IIntegrationEventHandler<>).MakeGenericType(eventType); + + await Task.Yield(); + await (Task)concreteType.GetMethod("Handle").Invoke(handler, new object[] { integrationEvent }); + } + } + } + } + else + { + _logger.LogWarning("No subscription for Kafka event: {EventName}", eventName); + } + } + + private void ConsumerClient_OnConsumeError(IConsumer consumer, Error e) + { + _logger.LogError("An error occurred during connect kafka:" + e.Reason); + } + } +} diff --git a/Blog.Core.EventBus/EventBusKafka/KafkaOptions.cs b/Blog.Core.EventBus/EventBusKafka/KafkaOptions.cs new file mode 100644 index 00000000..637da2aa --- /dev/null +++ b/Blog.Core.EventBus/EventBusKafka/KafkaOptions.cs @@ -0,0 +1,28 @@ + + +namespace Blog.Core.EventBus +{ + /// + /// Kafka 配置项 + /// + public class KafkaOptions + { + public int ConnectionPoolSize { get; set; } = 10; + /// + /// 地址 + /// + public string Servers { get; set; } + /// + /// 主题 + /// + public string Topic { get; set; } + /// + /// 消费者组Id + /// + public string GroupId { get; set; } + /// + /// 主题分区 + /// + public int NumPartitions { get; set; } + } +} diff --git a/Blog.Core.EventBus/EventBusKafka/ProtobufTransfer.cs b/Blog.Core.EventBus/EventBusKafka/ProtobufTransfer.cs new file mode 100644 index 00000000..c365db12 --- /dev/null +++ b/Blog.Core.EventBus/EventBusKafka/ProtobufTransfer.cs @@ -0,0 +1,32 @@ +using System; +using System.IO; +namespace Blog.Core.EventBus +{ + public class Protobuf + { + /// + /// Protobuf 反序列化 + /// + public static T Deserialize(ReadOnlySpan data) + { + Stream stream = new MemoryStream(data.ToArray()); + var info = ProtoBuf.Serializer.Deserialize(stream); + return info; + } + /// + /// 通过Protobuf 转字节 + /// + public static byte[] Serialize(T data) + { + byte[] datas; + using (var stream = new MemoryStream()) + { + ProtoBuf.Serializer.Serialize(stream, data); + datas = stream.ToArray(); + } + return datas; + + + } + } +} diff --git a/Blog.Core.Extensions/Apollo/ApolloOptions.cs b/Blog.Core.Extensions/Apollo/ApolloOptions.cs new file mode 100644 index 00000000..6610ba47 --- /dev/null +++ b/Blog.Core.Extensions/Apollo/ApolloOptions.cs @@ -0,0 +1,27 @@ + +using System.Collections.Generic; + + +namespace Blog.Core.Extensions.Apollo +{ + /// + /// Apollo配置项 + /// + public class ApolloOptions + { + public bool Enable { get; set; } + public List Namespaces { get; set; } + + public class ChildNamespace + { + /// + /// 命名空间名字 + /// + public string Name { get; set; } + /// + /// 数据格式 Json/Yml/Yaml等 + /// + public string Format { get; set; } + } + } +} diff --git a/Blog.Core.Extensions/Apollo/ConfigurationBuilderExtensions.cs b/Blog.Core.Extensions/Apollo/ConfigurationBuilderExtensions.cs new file mode 100644 index 00000000..909e9a19 --- /dev/null +++ b/Blog.Core.Extensions/Apollo/ConfigurationBuilderExtensions.cs @@ -0,0 +1,84 @@ +using Com.Ctrip.Framework.Apollo; +using Microsoft.Extensions.Configuration; +using System; +using System.Collections.Generic; +using System.Linq; +using Com.Ctrip.Framework.Apollo.Enums; +using Com.Ctrip.Framework.Apollo.Logging; +using Microsoft.Extensions.Primitives; +using System.Reflection; + +namespace Blog.Core.Extensions.Apollo +{ + public static class ConfigurationBuilderExtensions + { + /// + /// 接入Apollo + /// + /// + /// apollo配置文件路径 如果写入appsettings.json中 则jsonPath传null即可 + public static void AddConfigurationApollo(this IConfigurationBuilder builder,string jsonPath) + { + if (!string.IsNullOrEmpty(jsonPath)) + { + builder.AddJsonFile(jsonPath, true, false); + } + //阿波罗的日志级别调整 + LogManager.UseConsoleLogging(LogLevel.Warn); + var options = new ApolloOptions(); + var root = builder.Build(); + root.Bind("Apollo", options); + if (options.Enable) + { + var apolloBuilder = builder.AddApollo(root.GetSection("Apollo:Config")); + + foreach (var item in options.Namespaces) + { + apolloBuilder.AddNamespace(item.Name, MatchConfigFileFormat(item.Format)); + } + //监听apollo配置 + Monitor(builder.Build()); + } + + } + #region private + /// + /// 监听配置 + /// + private static void Monitor(IConfigurationRoot root) + { + //TODO 需要根据改变执行特定的操作 如 mq redis 等其他跟配置相关的中间件 + //TODO 初步思路:将需要执行特定的操作key和value放入内存字典中,在赋值操作时通过标准事件来执行特定的操作。 + + //要重新Build 此时才将Apollo provider加入到ConfigurationBuilder中 + ChangeToken.OnChange(() => root.GetReloadToken(), () => + { + foreach (var apolloProvider in root.Providers.Where(p => p is ApolloConfigurationProvider)) + { + var property = apolloProvider.GetType().BaseType.GetProperty("Data", BindingFlags.Instance | BindingFlags.NonPublic); + var data = property.GetValue(apolloProvider) as IDictionary; + foreach (var item in data) + { + Console.WriteLine($"key {item.Key} value {item.Value}"); + } + } + }); + } + + //匹配格式 + private static ConfigFileFormat MatchConfigFileFormat(string value) => value switch + { + "json" => ConfigFileFormat.Json, + "properties" => ConfigFileFormat.Properties, + "xml" => ConfigFileFormat.Xml, + "yml" => ConfigFileFormat.Yml, + "yaml" => ConfigFileFormat.Yaml, + "txt" => ConfigFileFormat.Txt, + _ => throw new FormatException($"与apollo命名空间的所允许的类型不匹配:{string.Join(",", GetConfigFileFormat())}"), + }; + //获取数据格式对应的枚举 + private static IEnumerable GetConfigFileFormat() => Enum.GetValues().Select(u => u.ToString().ToLower()); + #endregion + + } +} diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index e10b8f57..76ce50ee 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -8,8 +8,10 @@ + + - + diff --git a/Blog.Core.Extensions/Middlewares/IPLogMildd.cs b/Blog.Core.Extensions/Middlewares/IPLogMildd.cs index 08791669..eda2e369 100644 --- a/Blog.Core.Extensions/Middlewares/IPLogMildd.cs +++ b/Blog.Core.Extensions/Middlewares/IPLogMildd.cs @@ -1,5 +1,4 @@ using Blog.Core.Common; -using Blog.Core.Common.Helper; using Blog.Core.Common.LogHelper; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; @@ -57,24 +56,24 @@ public async Task InvokeAsync(HttpContext context) if (!string.IsNullOrEmpty(requestInfo)) { // 自定义log输出 - //Parallel.For(0, 1, e => - //{ - // LogLock.OutSql2Log("RequestIpInfoLog", new string[] { requestInfo + "," }, false); - //}); - - try - { - var testLogMatchRequestInfo = JsonConvert.DeserializeObject(requestInfo); - if (testLogMatchRequestInfo != null) - { - var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RequestIpInfoLog"); - SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false, "", true); - } - } - catch (Exception e) + Parallel.For(0, 1, e => { - log.Error(requestInfo + "\r\n" + e.GetBaseException().ToString()); - } + LogLock.OutSql2Log("RequestIpInfoLog", new string[] { requestInfo + "," }, false); + }); + + //try + //{ + // var testLogMatchRequestInfo = JsonConvert.DeserializeObject(requestInfo); + // if (testLogMatchRequestInfo != null) + // { + // var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RequestIpInfoLog"); + // SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false, "", true); + // } + //} + //catch (Exception e) + //{ + // log.Error(requestInfo + "\r\n" + e.GetBaseException().ToString()); + //} request.Body.Position = 0; diff --git a/Blog.Core.Extensions/NacosConfig/NacosListenConfigurationTask.cs b/Blog.Core.Extensions/NacosConfig/NacosListenConfigurationTask.cs index 919cc634..d1554d15 100644 --- a/Blog.Core.Extensions/NacosConfig/NacosListenConfigurationTask.cs +++ b/Blog.Core.Extensions/NacosConfig/NacosListenConfigurationTask.cs @@ -41,9 +41,8 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken) // Add listener await _configClient.AddListener("blog.Core.Api.json", "DEFAULT_GROUP", nacosConfigListener); } - catch (Exception ex) + catch (Exception) { - Serilog.Log.Information($"Nacos配置文件获取异常!!! " + ex.ToString()); } } diff --git a/Blog.Core.Extensions/NacosConfig/NacosListenNamingTask.cs b/Blog.Core.Extensions/NacosConfig/NacosListenNamingTask.cs index d2228673..60657bb5 100644 --- a/Blog.Core.Extensions/NacosConfig/NacosListenNamingTask.cs +++ b/Blog.Core.Extensions/NacosConfig/NacosListenNamingTask.cs @@ -50,6 +50,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken) Metadata = JsonConfigSettings.NacosMetadata }; await _nacosNamingService.RegisterInstance(JsonConfigSettings.NacosServiceName, Nacos.V2.Common.Constants.DEFAULT_GROUP, instance); + ConsoleHelper.WriteSuccessLine($"Nacos connect: Success!"); } // 程序停止 @@ -87,9 +88,6 @@ public Task OnEvent(Nacos.V2.IEvent @event) // 配置有变动后 刷新redis配置 刷新 mq配置 //_redisCachqManager.DisposeRedisConnection(); - - - Serilog.Log.Information($"收到服务变更事件!!! {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")} [{e}]"); } return Task.CompletedTask; diff --git a/Blog.Core.Extensions/Redis/RedisBasketRepository.cs b/Blog.Core.Extensions/Redis/RedisBasketRepository.cs index 02809bcb..31c7a030 100644 --- a/Blog.Core.Extensions/Redis/RedisBasketRepository.cs +++ b/Blog.Core.Extensions/Redis/RedisBasketRepository.cs @@ -59,8 +59,16 @@ public async Task Set(string key, object value, TimeSpan cacheTime) { if (value != null) { - //序列化,将object值生成RedisValue - await _database.StringSetAsync(key, SerializeHelper.Serialize(value), cacheTime); + if (value is string cacheValue) + { + // 字符串无需序列化 + await _database.StringSetAsync(key, cacheValue, cacheTime); + } + else + { + //序列化,将object值生成RedisValue + await _database.StringSetAsync(key, SerializeHelper.Serialize(value), cacheTime); + } } } diff --git a/Blog.Core.Extensions/Redis/RedisCacheManager.cs b/Blog.Core.Extensions/Redis/RedisCacheManager.cs index 040d79c4..ab4704df 100644 --- a/Blog.Core.Extensions/Redis/RedisCacheManager.cs +++ b/Blog.Core.Extensions/Redis/RedisCacheManager.cs @@ -137,8 +137,16 @@ public void Set(string key, object value, TimeSpan cacheTime) { if (value != null) { - //序列化,将object值生成RedisValue - redisConnection.GetDatabase().StringSet(key, SerializeHelper.Serialize(value), cacheTime); + if (value is string cacheValue) + { + // 字符串无需序列化 + redisConnection.GetDatabase().StringSet(key, cacheValue, cacheTime); + } + else + { + //序列化,将object值生成RedisValue + redisConnection.GetDatabase().StringSet(key, SerializeHelper.Serialize(value), cacheTime); + } } } diff --git a/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs b/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs index 2d74c3ee..197803c1 100644 --- a/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs @@ -18,41 +18,47 @@ public static void AddEventBusSetup(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); - if (Appsettings.app(new string[] { "RabbitMQ", "Enabled" }).ObjToBool() && Appsettings.app(new string[] { "EventBus", "Enabled" }).ObjToBool()) + if (Appsettings.app(new string[] { "EventBus", "Enabled" }).ObjToBool()) { var subscriptionClientName = Appsettings.app(new string[] { "EventBus", "SubscriptionClientName" }); - services.AddSingleton(); services.AddTransient(); - - services.AddSingleton(sp => + if (Appsettings.app(new string[] { "RabbitMQ", "Enabled" }).ObjToBool()) { - var rabbitMQPersistentConnection = sp.GetRequiredService(); - var iLifetimeScope = sp.GetRequiredService(); - var logger = sp.GetRequiredService>(); - var eventBusSubcriptionsManager = sp.GetRequiredService(); - - var retryCount = 5; - if (!string.IsNullOrEmpty(Appsettings.app(new string[] { "RabbitMQ", "RetryCount" }))) + services.AddSingleton(sp => { - retryCount = int.Parse(Appsettings.app(new string[] { "RabbitMQ", "RetryCount" })); - } + var rabbitMQPersistentConnection = sp.GetRequiredService(); + var iLifetimeScope = sp.GetRequiredService(); + var logger = sp.GetRequiredService>(); + var eventBusSubcriptionsManager = sp.GetRequiredService(); - return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); - }); + var retryCount = 5; + if (!string.IsNullOrEmpty(Appsettings.app(new string[] { "RabbitMQ", "RetryCount" }))) + { + retryCount = int.Parse(Appsettings.app(new string[] { "RabbitMQ", "RetryCount" })); + } + + return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); + }); + } + if(Appsettings.app(new string[] { "Kafka", "Enabled" }).ObjToBool()) + { + services.AddHostedService(); + services.AddSingleton(); + } } } public static void ConfigureEventBus(this IApplicationBuilder app) { - if (Appsettings.app(new string[] { "RabbitMQ", "Enabled" }).ObjToBool() && Appsettings.app(new string[] { "EventBus", "Enabled" }).ObjToBool()) + if (Appsettings.app(new string[] { "EventBus", "Enabled" }).ObjToBool()) { var eventBus = app.ApplicationServices.GetRequiredService(); - eventBus.Subscribe(); + eventBus.Subscribe(); } } } diff --git a/Blog.Core.Extensions/ServiceExtensions/KafkaSetup.cs b/Blog.Core.Extensions/ServiceExtensions/KafkaSetup.cs new file mode 100644 index 00000000..79e60b94 --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/KafkaSetup.cs @@ -0,0 +1,26 @@ +using Blog.Core.Common; +using Blog.Core.EventBus; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using System; + +namespace Blog.Core.Extensions +{ + /// + /// 注入Kafka相关配置 + /// + public static class KafkaSetup + { + public static void AddKafkaSetup(this IServiceCollection services,IConfiguration configuration) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + if (Appsettings.app(new string[] { "Kafka", "Enabled" }).ObjToBool()) + { + services.Configure(configuration.GetSection("kafka")); + services.AddSingleton(); + } + } + } +} diff --git a/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs b/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs index e3b95c20..d314f6ea 100644 --- a/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs @@ -9,7 +9,7 @@ namespace Blog.Core.Extensions { /// - /// Memory缓存 启动服务 + /// Nacos /// public static class NacosSetup { @@ -19,9 +19,7 @@ public static void AddNacosSetup(this IServiceCollection services, IConfiguratio // 在实际生产工作中 本地开发是不需要注册nacos的 所以根据环境变量去判断 // 比如 开发环境 dev 测试环境 test 生产 prod 只有这几种环境变量的时候才需要去注册nacos - if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != null - && Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != "" - && Appsettings.app(new string[] { "Startup", "Nacos", "Enabled" }).ObjToBool()) + if (Appsettings.app(new string[] { "Startup", "Nacos", "Enabled" }).ObjToBool()) { // 从当前配置取文件去注册naocs services.AddNacosV2Config(x => diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index 84713355..0dba222a 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -14,7 +14,7 @@
- + diff --git a/Blog.Core.Gateway/Controllers/UserController.cs b/Blog.Core.Gateway/Controllers/UserController.cs index df715f30..8a2d7fa3 100644 --- a/Blog.Core.Gateway/Controllers/UserController.cs +++ b/Blog.Core.Gateway/Controllers/UserController.cs @@ -4,7 +4,6 @@ using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Linq; -using System.Security.Claims; namespace Blog.Core.Gateway.Controllers { diff --git a/Blog.Core.Gateway/Startup.cs b/Blog.Core.Gateway/Startup.cs index 64e7b48e..eddcdeb5 100644 --- a/Blog.Core.Gateway/Startup.cs +++ b/Blog.Core.Gateway/Startup.cs @@ -6,8 +6,6 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using Ocelot.DependencyInjection; -using Ocelot.Provider.Consul; namespace Blog.Core.AdminMvc { diff --git a/Blog.Core.Gateway/ocelot.Development.json b/Blog.Core.Gateway/ocelot.Development.json index 3889dfb6..88475e25 100644 --- a/Blog.Core.Gateway/ocelot.Development.json +++ b/Blog.Core.Gateway/ocelot.Development.json @@ -16,7 +16,7 @@ "DownstreamHostAndPorts": [ { "Host": "localhost", - "Port": 8081 + "Port": 9291 } ] }, diff --git a/Blog.Core.Gateway/ocelot.json b/Blog.Core.Gateway/ocelot.json index 362529e1..c9612a60 100644 --- a/Blog.Core.Gateway/ocelot.json +++ b/Blog.Core.Gateway/ocelot.json @@ -16,7 +16,7 @@ "DownstreamHostAndPorts": [ { "Host": "localhost", - "Port": 8081 + "Port": 9291 } ] }, diff --git a/Blog.Core.Publish.Docker.Jenkins.sh b/Blog.Core.Publish.Docker.Jenkins.sh index cc953102..42f074a7 100644 --- a/Blog.Core.Publish.Docker.Jenkins.sh +++ b/Blog.Core.Publish.Docker.Jenkins.sh @@ -17,4 +17,4 @@ chmod 777 StopContainerImg.sh ./StopContainerImg.sh apkcontainer laozhangisphi/apkimg docker build -t laozhangisphi/apkimg . -docker run --name=apkcontainer -d -v /data/blogcore/appsettings.json:/app/appsettings.json -v /data/blogcore/Log/:/app/Log -v /etc/localtime:/etc/localtime -it -p 8081:8081 laozhangisphi/apkimg \ No newline at end of file +docker run --name=apkcontainer -d -v /data/blogcore/appsettings.json:/app/appsettings.json -v /data/blogcore/Log/:/app/Log -v /etc/localtime:/etc/localtime -it -p 9291:9291 laozhangisphi/apkimg \ No newline at end of file diff --git a/Blog.Core.Publish.Docker.sh b/Blog.Core.Publish.Docker.sh index d4ae6246..eadc23c4 100644 --- a/Blog.Core.Publish.Docker.sh +++ b/Blog.Core.Publish.Docker.sh @@ -13,6 +13,6 @@ cd /home/Blog.Core/.PublishFiles # 编译镜像 docker build -t laozhangisphi/apkimg . # 生成容器 -docker run --name=apkcontainer -d -v /etc/localtime:/etc/localtime -it -p 8081:8081 laozhangisphi/apkimg +docker run --name=apkcontainer -d -v /etc/localtime:/etc/localtime -it -p 9291:9291 laozhangisphi/apkimg # 启动容器 docker start apkcontainer diff --git a/Blog.Core.Serilog.Es/AppSettingsFileNameConfig.cs b/Blog.Core.Serilog.Es/AppSettingsFileNameConfig.cs new file mode 100644 index 00000000..c4f2cda0 --- /dev/null +++ b/Blog.Core.Serilog.Es/AppSettingsFileNameConfig.cs @@ -0,0 +1,30 @@ +using System; + +namespace Blog.Core.Serilog.Es +{ + public class AppSettingsFileNameConfig + { + /// + /// 配置文件名称常量 + /// + public static string AppSettingsFileName = $"appsettings{ GetAppSettingsConfigName() }json"; + + + /// + /// 根据环境变量定向配置文件名称 + /// + /// + private static string GetAppSettingsConfigName() + { + if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != null + && Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != "") + { + return $".{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}."; + } + else + { + return "."; + } + } + } +} diff --git a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj new file mode 100644 index 00000000..b5c2e0ed --- /dev/null +++ b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj @@ -0,0 +1,17 @@ + + + + net5.0 + + + + + + + + + + + + + diff --git a/Blog.Core.Serilog.Es/Formatters/JsonConfigUtils.cs b/Blog.Core.Serilog.Es/Formatters/JsonConfigUtils.cs new file mode 100644 index 00000000..e9425040 --- /dev/null +++ b/Blog.Core.Serilog.Es/Formatters/JsonConfigUtils.cs @@ -0,0 +1,66 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Configuration.Json; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; + +namespace Blog.Core.Serilog.Es.Formatters +{ + /// + /// Json 配置文件通用类 + /// + public static class JsonConfigUtils + { + #region 变量 + + /// + /// 锁 + /// + private static object __Lock__ = new object(); + + // 读取到的系统配置信息 + public static IConfiguration Configuration { get; set; } + + #endregion + + /// + /// 读取配置文件的信息 + /// + /// + /// 要读取json的名称 + /// 要读取的json节点名称 + /// + public static T GetAppSettings(string AppSettingsFileName, string key) where T : class, new() + { + lock (__Lock__) + { + if (Configuration == null) + { + Configuration = new ConfigurationBuilder() + .Add(new JsonConfigurationSource + { + Path = AppSettingsFileName, + Optional = false, + ReloadOnChange = true + }) + .Build(); + } + var appconfig = new ServiceCollection() + .AddOptions() + .Configure(Configuration.GetSection(key)) + .BuildServiceProvider() + .GetService>() + .Value; + + return appconfig; + } + } + + + public static string GetJson(string jsonPath, string key) + { + IConfiguration config = new ConfigurationBuilder().AddJsonFile(jsonPath).Build(); //json文件地址 + string s = config.GetSection(key).Value; //json某个对象 + return s; + } + } +} diff --git a/Blog.Core.Serilog.Es/Formatters/LogConfigRootDTO.cs b/Blog.Core.Serilog.Es/Formatters/LogConfigRootDTO.cs new file mode 100644 index 00000000..36a9916c --- /dev/null +++ b/Blog.Core.Serilog.Es/Formatters/LogConfigRootDTO.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; + +namespace Blog.Core.Serilog.Es.Formatters +{ + + public class LogConfigRootDTO + { + /// + /// tcp日志的host地址 + /// + public string tcpAddressHost { set; get; } + + /// + /// tcp日志的port地址 + /// + public int tcpAddressPort { set; get; } + + public List ConfigsInfo { get; set; } + } + + public class Configsinfo + { + public string FiedName { get; set; } + public string FiedValue { get; set; } + } +} diff --git a/Blog.Core.Serilog.Es/Formatters/LogstashJsonFormatter.cs b/Blog.Core.Serilog.Es/Formatters/LogstashJsonFormatter.cs new file mode 100644 index 00000000..f123c177 --- /dev/null +++ b/Blog.Core.Serilog.Es/Formatters/LogstashJsonFormatter.cs @@ -0,0 +1,152 @@ +// Adapted from RawJsonFormatter in Serilog.Sinks.Seq Copyright 2016 Serilog Contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using Serilog.Events; +using Serilog.Formatting; +using Serilog.Formatting.Json; +using Blog.Core.Serilog.Es.HttpInfo; + +namespace Blog.Core.Serilog.Es.Formatters +{ + public class LogstashJsonFormatter : ITextFormatter + { + private static readonly JsonValueFormatter ValueFormatter = new JsonValueFormatter(); + + public void Format(LogEvent logEvent, TextWriter output) + { + FormatContent(logEvent, output); + + output.WriteLine(); + } + + + /// + /// 格式化 最终输出到elk的核心部分 + /// + /// + /// + private static void FormatContent(LogEvent logEvent, TextWriter output) + { + if (logEvent == null) throw new ArgumentNullException(nameof(logEvent)); + if (output == null) throw new ArgumentNullException(nameof(output)); + + output.Write('{'); + + // 读取相关配置 + var logConfigRootDTOInfo = JsonConfigUtils.GetAppSettings(AppSettingsFileNameConfig.AppSettingsFileName, "LogFiedOutPutConfigs"); + if (logConfigRootDTOInfo == null) + { + return; + } + + // 写入所有的项目配置项的字段 在appsetting中配置的 输出elk节点的数据字段 + foreach (var item in logConfigRootDTOInfo.ConfigsInfo) + { + switch (item.FiedName) + { + //case "orgid": + // WritePropertyAndValue(output, "method", HttpContextProvider.GetCurrent().Request.Method); + // output.Write(","); + // break; + default: + WritePropertyAndValue(output, item.FiedName, item.FiedValue); + output.Write(","); + break; + } + } + // 写入http对应的信息数据 + if (HttpContextProvider.GetCurrent()!=null && HttpContextProvider.GetCurrent().Request!=null) + { + if (!string.IsNullOrEmpty(HttpContextProvider.GetCurrent().Request.Method)) + { + WritePropertyAndValue(output, "method", HttpContextProvider.GetCurrent().Request.Method); + output.Write(","); + } + // 输出请求页面url + if (!string.IsNullOrEmpty(HttpContextProvider.GetCurrent().Request.Path)) + { + WritePropertyAndValue(output, "requestUrl", HttpContextProvider.GetCurrent().Request.Path.ToString()); + output.Write(","); + } + // 输出携带token + if (HttpContextProvider.GetCurrent().Request.Headers["Authorization"].FirstOrDefault() != null) + { + WritePropertyAndValue(output, "Authorization", HttpContextProvider.GetCurrent().Request.Headers["Authorization"].FirstOrDefault()); + output.Write(","); + } + // 输出请求参数 + if (!string.IsNullOrEmpty(HttpContextProvider.GetCurrent().Request.Method)) + { + string contentFromBody = ParamsHelper.GetParams(HttpContextProvider.GetCurrent()); + WritePropertyAndValue(output, "requestParam", contentFromBody); + output.Write(","); + } + // 输出请求方法类型 + if (!string.IsNullOrEmpty(HttpContextProvider.GetCurrent().Request.Method)) + { + WritePropertyAndValue(output, "method", HttpContextProvider.GetCurrent().Request.Method); + output.Write(","); + } + } + // 输出请求时间戳 + WritePropertyAndValue(output, "timestamp", logEvent.Timestamp.ToString("o")); + output.Write(","); + + // 输出日志级别 + WritePropertyAndValue(output, "level", logEvent.Level.ToString()); + output.Write(","); + + // 输出log内容 + WritePropertyAndValue(output, "executeResult", logEvent.MessageTemplate.Render(logEvent.Properties)); + + if (logEvent.Exception != null) + { + output.Write(","); + WritePropertyAndValue(output, "exception", logEvent.Exception.ToString()); + } + + WriteProperties(logEvent.Properties, output); + + output.Write('}'); + } + + private static void WritePropertyAndValue(TextWriter output, string propertyKey, string propertyValue) + { + JsonValueFormatter.WriteQuotedJsonString(propertyKey, output); + output.Write(":"); + JsonValueFormatter.WriteQuotedJsonString(propertyValue, output); + } + + private static void WriteProperties(IReadOnlyDictionary properties, TextWriter output) + { + if (properties.Any()) output.Write(","); + + var precedingDelimiter = ""; + foreach (var property in properties) + { + output.Write(precedingDelimiter); + precedingDelimiter = ","; + + var camelCasePropertyKey = property.Key[0].ToString().ToLower() + property.Key.Substring(1); + JsonValueFormatter.WriteQuotedJsonString(camelCasePropertyKey, output); + output.Write(':'); + ValueFormatter.Format(property.Value, output); + } + } + } +} \ No newline at end of file diff --git a/Blog.Core.Serilog.Es/HttpInfo/HttpContextProvider.cs b/Blog.Core.Serilog.Es/HttpInfo/HttpContextProvider.cs new file mode 100644 index 00000000..612f20b5 --- /dev/null +++ b/Blog.Core.Serilog.Es/HttpInfo/HttpContextProvider.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNetCore.Http; + +namespace Blog.Core.Serilog.Es.HttpInfo +{ + public static class HttpContextProvider + { + private static IHttpContextAccessor _accessor; + + public static HttpContext GetCurrent() + { + var context = _accessor?.HttpContext; + return context; + } + public static void ConfigureAccessor(IHttpContextAccessor accessor) + { + _accessor = accessor; + } + } + +} diff --git a/Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs b/Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs new file mode 100644 index 00000000..3b39c0bf --- /dev/null +++ b/Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs @@ -0,0 +1,82 @@ +using Microsoft.AspNetCore.Http; +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.IO; +using System.Text; +using System.Web; + +namespace Blog.Core.Serilog.Es.HttpInfo +{ + /// + /// 获取参数帮助类 + /// + public class ParamsHelper + { + /// + /// 获取参数值 + /// + /// + /// + public static string GetParams(HttpContext context) + { + try + { + NameValueCollection form = HttpUtility.ParseQueryString(context.Request.QueryString.ToString()); + HttpRequest request = context.Request; + + string data = string.Empty; + switch (request.Method) + { + case "POST": + + request.Body.Position = 0; + using (var ms = new MemoryStream()) + { + request.Body.CopyTo(ms); + var b = ms.ToArray(); + data = Encoding.UTF8.GetString(b); //把body赋值给bodyStr + + } + break; + case "GET": + //第一步:取出所有get参数 + IDictionary parameters = new Dictionary(); + for (int f = 0; f < form.Count; f++) + { + string key = form.Keys[f]; + parameters.Add(key, form[key]); + } + + // 第二步:把字典按Key的字母顺序排序 + IDictionary sortedParams = new SortedDictionary(parameters); + IEnumerator> dem = sortedParams.GetEnumerator(); + + // 第三步:把所有参数名和参数值串在一起 + StringBuilder query = new StringBuilder(); + while (dem.MoveNext()) + { + string key = dem.Current.Key; + string value = dem.Current.Value; + if (!string.IsNullOrEmpty(key)) + { + query.Append(key).Append("=").Append(value).Append("&"); + } + } + data = query.ToString().TrimEnd('&'); + break; + default: + data = string.Empty; + + break; + } + return data; + } + catch(Exception ex) + { + return string.Empty; + } + } + + } +} diff --git a/Blog.Core.Serilog.Es/NetworkLoggerConfigurationExtensions.cs b/Blog.Core.Serilog.Es/NetworkLoggerConfigurationExtensions.cs new file mode 100644 index 00000000..d77f80f2 --- /dev/null +++ b/Blog.Core.Serilog.Es/NetworkLoggerConfigurationExtensions.cs @@ -0,0 +1,102 @@ +using System; +using System.Linq; +using System.Net; +using Serilog; +using Serilog.Configuration; +using Serilog.Debugging; +using Serilog.Events; +using Serilog.Formatting; +using Blog.Core.Serilog.Es.Formatters; +using Blog.Core.Serilog.Es.Sinks.TCP; + +namespace Blog.Core.Serilog.Es +{ + /// + /// Extends Serilog configuration to write events to the network. + /// + public static class NetworkLoggerConfigurationExtensions + { + private static string TcpAddressHost = ""; + private static int TcpAddressProt = 0; + /// + /// 获得tcpAddress + /// + private static void GetTcpAddress() + { + // 读取相关配置 + var logConfigRootDTOInfo = JsonConfigUtils.GetAppSettings(AppSettingsFileNameConfig.AppSettingsFileName, "LogFiedOutPutConfigs"); + if (logConfigRootDTOInfo == null) + { + return; + } + TcpAddressHost = logConfigRootDTOInfo.tcpAddressHost; + TcpAddressProt = logConfigRootDTOInfo.tcpAddressPort; + } + + public static LoggerConfiguration TCPSink( + this LoggerSinkConfiguration loggerConfiguration, + ITextFormatter textFormatter = null, + LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum) + { + GetTcpAddress(); + if (!string.IsNullOrEmpty(TcpAddressHost)) + { + var sink = new TCPSink(BuildUri($"tcp://{TcpAddressHost}:{TcpAddressProt}"), textFormatter ?? new LogstashJsonFormatter()); + return loggerConfiguration.Sink(sink, restrictedToMinimumLevel); + } + else { + return new LoggerConfiguration(); + } + } + + private static IPAddress ResolveAddress(string uri) + { + // Check if it is IP address + IPAddress address; + + if (IPAddress.TryParse(uri, out address)) + return address; + + address = ResolveIP(uri); + if (address != null) + return address; + + SelfLog.WriteLine("Unable to determine the destination IP-Address"); + return IPAddress.Loopback; + } + + private static IPAddress ResolveIP(string uri) + { + try + { + var ipHostEntry = Dns.GetHostEntryAsync(uri).Result; + if (!ipHostEntry.AddressList.Any()) + return null; + return ipHostEntry.AddressList.First(); + } + catch (Exception) + { + SelfLog.WriteLine("Could not resolve " + uri); + return null; + } + } + + private static Uri BuildUri(string s) + { + Uri uri; + try + { + uri = new Uri(s); + } + catch (UriFormatException ex) + { + throw new ArgumentNullException("Uri should be in the format tcp://server:port", ex); + } + if (uri.Port == 0) + throw new UriFormatException("Uri port cannot be 0"); + if (!(uri.Scheme.ToLower() == "tcp" || uri.Scheme.ToLower() == "tls")) + throw new UriFormatException("Uri scheme must be tcp or tls"); + return uri; + } + } +} \ No newline at end of file diff --git a/Blog.Core.Serilog.Es/Sinks/TCP/TCPSink.cs b/Blog.Core.Serilog.Es/Sinks/TCP/TCPSink.cs new file mode 100644 index 00000000..fc5a43c9 --- /dev/null +++ b/Blog.Core.Serilog.Es/Sinks/TCP/TCPSink.cs @@ -0,0 +1,44 @@ +using System; +using System.IO; +using System.Net; +using System.Text; +using Serilog.Core; +using Serilog.Events; +using Serilog.Formatting; + +namespace Blog.Core.Serilog.Es.Sinks.TCP +{ + public class TCPSink : ILogEventSink, IDisposable + { + private readonly ITextFormatter _formatter; + private readonly TcpSocketWriter _socketWriter; + + public TCPSink(IPAddress ipAddress, int port, ITextFormatter formatter) + { + _socketWriter = new TcpSocketWriter(new Uri($"tcp://{ipAddress}:{port}")); + _formatter = formatter; + } + + public TCPSink(Uri uri, ITextFormatter formatter) + { + _socketWriter = new TcpSocketWriter(uri); + _formatter = formatter; + } + + public void Emit(LogEvent logEvent) + { + var sb = new StringBuilder(); + + using (var sw = new StringWriter(sb)) + _formatter.Format(logEvent, sw); + + sb.Replace("RenderedMessage", "message"); + _socketWriter.Enqueue(sb.ToString()); + } + + public void Dispose() + { + _socketWriter.Dispose(); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Serilog.Es/Sinks/TCP/TCPSocketWriter.cs b/Blog.Core.Serilog.Es/Sinks/TCP/TCPSocketWriter.cs new file mode 100644 index 00000000..f1f592c9 --- /dev/null +++ b/Blog.Core.Serilog.Es/Sinks/TCP/TCPSocketWriter.cs @@ -0,0 +1,325 @@ +/* + * Copyright 2014 Splunk, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"): you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +using Serilog; +using System; +using System.Collections.Concurrent; +using System.IO; +using System.Net; +using System.Net.Security; +using System.Net.Sockets; +using System.Security.Authentication; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; + +namespace Blog.Core.Serilog.Es.Sinks.TCP +{ + /// + /// TcpSocketWriter encapsulates queueing strings to be written to a TCP _socket + /// and handling reconnections (according to a TcpConnectionPolicy object passed + /// to it) when a TCP session drops. + /// + /// + /// TcpSocketWriter maintains a fixed sized queue of strings to be sent via + /// the TCP _port and, while the _socket is open, sends them as quickly as possible. + /// + /// If the TCP session drops, TcpSocketWriter will stop pulling strings off the + /// queue until it can reestablish a connection. Any SocketErrors emitted during this + /// process will be passed as arguments to invocations of LoggingFailureHandler. + /// If the TcpConnectionPolicy.Connect method throws an exception (in particular, + /// TcpReconnectFailure to indicate that the policy has reached a point where it + /// will no longer try to establish a connection) then the LoggingFailureHandler + /// event is invoked, and no further attempt to log anything will be made. + /// + public class TcpSocketWriter : IDisposable + { + private readonly FixedSizeQueue _eventQueue; + private readonly ExponentialBackoffTcpReconnectionPolicy _reconnectPolicy = new ExponentialBackoffTcpReconnectionPolicy(); + private readonly CancellationTokenSource _tokenSource; // Must be private or Dispose will not function properly. + private readonly TaskCompletionSource _disposed = new TaskCompletionSource(); + + private Stream _stream; + + /// + /// Event that is invoked when reconnecting after a TCP session is dropped fails. + /// + public event Action LoggingFailureHandler = ex => + { + UnexpectedErrorLogger( + ex, + (x, socketError) => + { + if (socketError == null) + { + //Log.Error(x, "failure inside TCP socket: {message}", x.Message); + } + else + { + //Log.Error( + // x, + // "failure inside TCP socket: {message} - socket error found {socketErrorCode}", + // x.Message, + // socketError); + } + + }); + }; + + public static void UnexpectedErrorLogger(Exception ex, Action log) + { + SocketError? socketErrorCode = null; + var current = ex; + do + { + if (current is SocketException) + { + socketErrorCode = ((SocketException) current).SocketErrorCode; + } + + current = current.InnerException; + } while (socketErrorCode == null && current != null); + + log(ex, socketErrorCode); + } + + /// + /// Construct a TCP _socket writer that writes to the given endPoint and _port. + /// + /// Uri to open a TCP socket to. + /// The maximum number of log entries to queue before starting to drop entries. + public TcpSocketWriter(Uri uri, int maxQueueSize = 5000) + { + _eventQueue = new FixedSizeQueue(maxQueueSize); + _tokenSource = new CancellationTokenSource(); + + Func> tryOpenSocket = async h => + { + try + { + TcpClient client = new TcpClient(); + await client.ConnectAsync(uri.Host, uri.Port); + Stream stream = client.GetStream(); + if (uri.Scheme.ToLower() != "tls") + return stream; + + var sslStream = new SslStream(client.GetStream(), false, null, null); + await sslStream.AuthenticateAsClientAsync(uri.Host); + return sslStream; + } + catch (Exception e) + { + LoggingFailureHandler(e); + throw; + } + }; + + var threadReady = new TaskCompletionSource(); + + Task queueListener = Task.Factory.StartNew(async () => + { + try + { + bool sslEnabled = uri.Scheme.ToLower() == "tls"; + _stream = await _reconnectPolicy.ConnectAsync(tryOpenSocket, uri, _tokenSource.Token); + threadReady.SetResult(true); // Signal the calling thread that we are ready. + + string entry = null; + while (_stream != null) // null indicates that the thread has been cancelled and cleaned up. + { + if (_tokenSource.Token.IsCancellationRequested) + { + _eventQueue.CompleteAdding(); + // Post-condition: no further items will be added to the queue, so there will be a finite number of items to handle. + while (_eventQueue.Count > 0) + { + entry = _eventQueue.Dequeue(); + try + { + byte[] messsage = Encoding.UTF8.GetBytes(entry); + await _stream.WriteAsync(messsage, 0, messsage.Length); + await _stream.FlushAsync(); + } + catch (SocketException ex) + { + LoggingFailureHandler(ex); + } + } + break; + } + if (entry == null) + { + entry = _eventQueue.Dequeue(_tokenSource.Token); + } + else + { + try + { + byte[] messsage = Encoding.UTF8.GetBytes(entry); + await _stream.WriteAsync(messsage, 0, messsage.Length); + await _stream.FlushAsync(); + // No exception, it was sent + entry = null; + } + catch (IOException ex) + { + LoggingFailureHandler(ex); + _stream = await _reconnectPolicy.ConnectAsync(tryOpenSocket, uri, _tokenSource.Token); + } + catch (SocketException ex) + { + LoggingFailureHandler(ex); + _stream = await _reconnectPolicy.ConnectAsync(tryOpenSocket, uri, _tokenSource.Token); + } + } + } + } + catch (Exception e) + { + LoggingFailureHandler(e); + } + finally + { + if (_stream != null) + { + _stream.Dispose(); + } + + _disposed.SetResult(true); + } + }, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default); + threadReady.Task.Wait(TimeSpan.FromSeconds(5)); + } + + public void Dispose() + { + // The following operations are idempotent. Issue a cancellation to tell the + // writer thread to stop the queue from accepting entries and write what it has + // before cleaning up, then wait until that cleanup is finished. + _tokenSource.Cancel(); + Task.Run(async () => await _disposed.Task).Wait(); + } + + /// + /// Push a string onto the queue to be written. + /// + /// The string to be written to the TCP _socket. + public void Enqueue(string entry) + { + _eventQueue.Enqueue(entry); + } + } + + /// + /// TcpConnectionPolicy implementation that tries to reconnect after + /// increasingly long intervals. + /// + /// + /// The intervals double every time, starting from 0s, 1s, 2s, 4s, ... + /// until 10 minutes between connections, when it plateaus and does + /// not increase the interval length any further. + /// + public class ExponentialBackoffTcpReconnectionPolicy + { + private readonly int ceiling = 10 * 60; // 10 minutes in seconds + + public async Task ConnectAsync(Func> connect, Uri host, CancellationToken cancellationToken) + { + int delay = 1; // in seconds + while (!cancellationToken.IsCancellationRequested) + { + try + { + //Log.Debug("Attempting to connect to TCP endpoint {host} after delay of {delay} seconds", host, delay); + return await connect(host); + } + catch (SocketException) { } + + // If this is cancelled via the cancellationToken instead of + // completing its delay, the next while-loop test will fail, + // the loop will terminate, and the method will return null + // with no additional connection attempts. + await Task.Delay(delay * 1000, cancellationToken); + // The nth delay is min(10 minutes, 2^n - 1 seconds). + delay = Math.Min((delay + 1) * 2 - 1, ceiling); + } + + // cancellationToken has been cancelled. + return null; + } + } + + /// + /// A queue with a maximum size. When the queue is at its maximum size + /// and a new item is queued, the oldest item in the queue is dropped. + /// + /// + internal class FixedSizeQueue + { + private int Size { get; } + private readonly IProgress _progress = new Progress(); + private bool IsCompleted { get; set; } + + private readonly BlockingCollection _collection = new BlockingCollection(); + + public FixedSizeQueue(int size) + { + Size = size; + IsCompleted = false; + } + + public void Enqueue(T obj) + { + lock (this) + { + if (IsCompleted) + { + throw new InvalidOperationException("Tried to add an item to a completed queue."); + } + + _collection.Add(obj); + + while (_collection.Count > Size) + { + _collection.Take(); + } + _progress.Report(true); + } + } + + public void CompleteAdding() + { + lock (this) + { + IsCompleted = true; + } + } + + public T Dequeue(CancellationToken cancellationToken) + { + return _collection.Take(cancellationToken); + } + + public T Dequeue() + { + return _collection.Take(); + } + + + public decimal Count => _collection.Count; + } +} \ No newline at end of file diff --git a/Blog.Core.Serilog.Es/Sinks/UDP/UDPSink.cs b/Blog.Core.Serilog.Es/Sinks/UDP/UDPSink.cs new file mode 100644 index 00000000..f07c24e1 --- /dev/null +++ b/Blog.Core.Serilog.Es/Sinks/UDP/UDPSink.cs @@ -0,0 +1,42 @@ +using System; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Text; +using Serilog.Core; +using Serilog.Events; +using Serilog.Formatting; + + +namespace Serilog.Sinks.Network.Sinks.UDP +{ + public class UDPSink : ILogEventSink, IDisposable + { + private Socket _socket = new Socket(SocketType.Dgram, ProtocolType.Udp); + private readonly ITextFormatter _formatter; + + public UDPSink(IPAddress ipAddress, int port, ITextFormatter formatter) + { + _socket.Connect(ipAddress, port); + _formatter = formatter; + } + + public void Emit(LogEvent logEvent) + { + var sb = new StringBuilder(); + + using (var sw = new StringWriter(sb)) + _formatter.Format(logEvent, sw); + + sb.Replace("RenderedMessage", "message"); + + _socket.Send(Encoding.UTF8.GetBytes(sb.ToString())); + } + + public void Dispose() + { + _socket?.Dispose(); + _socket = null; + } + } +} diff --git a/Blog.Core.Tests/appsettings.json b/Blog.Core.Tests/appsettings.json index a1edb353..95a95f16 100644 --- a/Blog.Core.Tests/appsettings.json +++ b/Blog.Core.Tests/appsettings.json @@ -197,7 +197,7 @@ "ConsulSetting": { "ServiceName": "BlogCoreService", "ServiceIP": "localhost", - "ServicePort": "8081", + "ServicePort": "9291", "ServiceHealthCheck": "/healthcheck", "ConsulAddress": "http://localhost:8500" } diff --git a/Blog.Core.sln b/Blog.Core.sln index 2446fd7a..e587ddae 100644 --- a/Blog.Core.sln +++ b/Blog.Core.sln @@ -31,6 +31,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionIt Blog.Core.Publish.Linux.sh = Blog.Core.Publish.Linux.sh codecov.yml = codecov.yml CreateYourProject.bat = CreateYourProject.bat + DockerBuild.bat = DockerBuild.bat + Dockerfile = Dockerfile nuget.config = nuget.config README.md = README.md EndProjectSection @@ -53,6 +55,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.ConsoleApp", "Blo EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.Gateway", "Blog.Core.Gateway\Blog.Core.Gateway.csproj", "{A11C0DF2-1E13-4EED-BA49-44A57136B189}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.Serilog.Es", "Blog.Core.Serilog.Es\Blog.Core.Serilog.Es.csproj", "{52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -111,6 +115,10 @@ Global {A11C0DF2-1E13-4EED-BA49-44A57136B189}.Debug|Any CPU.Build.0 = Debug|Any CPU {A11C0DF2-1E13-4EED-BA49-44A57136B189}.Release|Any CPU.ActiveCfg = Release|Any CPU {A11C0DF2-1E13-4EED-BA49-44A57136B189}.Release|Any CPU.Build.0 = Release|Any CPU + {52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CreateYourProject.bat b/CreateYourProject.bat index 43a2a429..8f5b5ca7 100644 --- a/CreateYourProject.bat +++ b/CreateYourProject.bat @@ -3,9 +3,9 @@ echo "if u install template error,pls use:>>dotnet new -i .template.config\Blog. color 3 -dotnet new -i Blog.Core.Webapi.Template::2.5.3 +dotnet new -i Blog.Core.Webapi.Template::2.5.4 -set /p OP=Please set your project name(for example:Baidu.Api): +set /p OP=Please set your project name(for example:BlogMicService): md .1YourProject diff --git a/DockerBuild.bat b/DockerBuild.bat new file mode 100644 index 00000000..7617488c --- /dev/null +++ b/DockerBuild.bat @@ -0,0 +1,18 @@ +echo off +echo "Press B to build images, P to push to registry, any other key to cancel" +set /p op= : +if "%op%"=="B" goto build +if "%op%"=="P" goto push +exit + +:build +docker rmi laozhangisphi/apkimg +docker build -f "Dockerfile" --force-rm -t laozhangisphi/apkimg . +goto end + +:push +docker push laozhangisphi/apkimg +goto end + +:end +pause \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index e6719f2e..7445e602 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. #这种模式是直接在构建镜像的内部编译发布dotnet项目。 -#注意下容器内输出端口是8081 +#注意下容器内输出端口是9291 #如果你想先手动dotnet build成可执行的二进制文件,然后再构建镜像,请看.Api层下的dockerfile。 @@ -31,5 +31,5 @@ RUN dotnet publish "Blog.Core.Api.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . -EXPOSE 8081 +EXPOSE 9291 ENTRYPOINT ["dotnet", "Blog.Core.Api.dll"] \ No newline at end of file diff --git a/README.md b/README.md index af5ee5e4..a83e2042 100644 --- a/README.md +++ b/README.md @@ -73,14 +73,18 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core5.0 Api + Vue 2.x - [x] 新增 Redis 消息队列 ✨; - [x] 新增 RabbitMQ 消息队列 ✨; - [x] 新增 EventBus 事件总线 ✨; -- [x] 调试中 - 统一聚合支付; +- [x] 新增 - 统一聚合支付; +- [x] 新增 - Nacos注册中心配置; +- [x] 新增 - ES 搜索配置; +- [x] 新增 - Apollo 配置; +- [x] 新增 Kafka 消息队列,并配合实现EventBus ✨; - [ ] 计划 - 数据部门权限; -- [ ] 计划 - ES 搜索; 微服务模块: - [x] 可配合 Docker 实现容器化; - [x] 可配合 Jenkins 实现CI / CD; - [x] 可配合 Consul 实现服务发现; +- [x] 可配合 Nacos 实现服务发现; - [x] 可配合 Ocelot 实现网关处理; - [x] 可配合 Nginx 实现负载均衡; - [x] 可配合 Ids4 实现认证中心; @@ -94,13 +98,14 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core5.0 Api + Vue 2.x ## 贡献者们 -Thanks goes to these wonderful people ([✨](https://github.com/anjoy8/Blog.Core/graphs/contributors)): +Thanks goes to these wonderful people ([✨](https://github.com/anjoy8/Blog.Core/graphs/contributors)):(排名暂时按提交顺序) -| [
anjoy8](https://github.com/anjoy8)
💻📖 💡 | [
hudingwen](https://github.com/hudingwen)
💻 👀 | [
binyly ](https://github.com/binyly)
💻 👀 📖 🤔 | [
wuare ](https://github.com/wuare)
💻 🐛 🤔 | [
skang0401 ](https://github.com/skang0401)
📖| [
Jamnine](https://github.com/Jamnine)
💻 🌍| +| [
anjoy8](https://github.com/anjoy8)
💻📖 💡 | [
hudingwen](https://github.com/hudingwen)
💻 👀 | [
binyly ](https://github.com/binyly)
💻 👀 📖 👍 | [
wuare ](https://github.com/wuare)
💻😀 | [
skang0401 ](https://github.com/skang0401)
📖| [
Jamnine](https://github.com/Jamnine)
💻 🌍| | :---: | :---: | :---: | :---: | :---: | :---: | -|[
aion1998 ](https://github.com/aion1998)
🐛|[
RLei123 ](https://github.com/RLei123)
💻|[
cluyun ](https://github.com/cluyun)
🌍|[
blue20171027 ](https://github.com/blue20171027)
💻|[
anewboyz ](https://github.com/anewboyz)
💻|[
jxd728 ](https://github.com/jxd728)
🌍| -|[
wmchuang ](https://github.com/wmchuang)
🌍|[
liuzhenyulive ](https://github.com/liuzhenyulive)
💻|[
JsonBy ](https://github.com/JsonBy)
💻 💡 🤔|[
hsxian ](https://github.com/hsxian)
🌍|[
cuno92 ](https://github.com/cuno92)
📖|[
317447880 ](https://github.com/317447880)
💻| +|[
aion1998 ](https://github.com/aion1998)
👍|[
RLei123 ](https://github.com/RLei123)
😄|[
cluyun ](https://github.com/cluyun)
🍬|[
blue20171027 ](https://github.com/blue20171027)
✈|[
anewboyz ](https://github.com/anewboyz)
💻|[
jxd728 ](https://github.com/jxd728)
🌍| +|[
wmchuang ](https://github.com/wmchuang)
🍟|[
liuzhenyulive ](https://github.com/liuzhenyulive)
💻|[
JsonBy ](https://github.com/JsonBy)
💻 💡 🤔|[
hsxian ](https://github.com/hsxian)
🎉|[
cuno92 ](https://github.com/cuno92)
📖|[
317447880 ](https://github.com/317447880)
💻| +|[
Shuisen ](https://github.com/Shuisen)
💻|[
www5255977 ](https://github.com/www5255977)
🌍|[
867824092 ](https://github.com/867824092)
🍳| This project follows the [all-contributors](https://github.com/anjoy8/Blog.Core/graphs/contributors) specification. From 26ba3b2afb89f1d10055616287e1fa726cd6821f Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Thu, 2 Sep 2021 15:40:17 +0800 Subject: [PATCH 012/382] fix dependency --- Blog.Core.Common/Blog.Core.Common.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 5bc856c1..27b90d2f 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -33,6 +33,7 @@
+ From c332fed2c7fa748b9a8b6d219addac0f421fb91f Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 9 Sep 2021 14:07:17 +0800 Subject: [PATCH 013/382] Update README.md --- .docs/contents/Contribution/README.md | 42 +++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/.docs/contents/Contribution/README.md b/.docs/contents/Contribution/README.md index 027e74b3..0d30f24b 100644 --- a/.docs/contents/Contribution/README.md +++ b/.docs/contents/Contribution/README.md @@ -3,7 +3,7 @@ 欢迎一起完善文档, 参与打赏的小可爱名单如下(单位:元),你们的贡献是我继续的动力: -(2021年1月14日 10点25分) +(2021年9月9日 13点53分) |序号|微信昵称|助力值|备注| @@ -99,6 +99,44 @@ |89|Mr * * 宋|50|| |90|布 * * 布|10|| |91|s * * s|6.6|| -|92|V * * V|50|| +|92|V * * V|50|| +|93|o**o|50|| +|94|书**6|6.6|| +|95|精**E|50|| +|96|有**幸|10|| +|97|r**y|10|| +|98|v**c|5|| +|99|j**n|20|| +|100|贾**琪|100|| +|101|a**s|20|| +|102|狂**牛|10|| +|103|风**宜|10|| +|104|鸠**夜|5|| +|105|大**灰|15|| +|106|不**懂|100|| +|107|圣**旨|50|| +|108|A**n|50|| +|109|薛**猫|100|| +|110|岁**叁|10|| +|111|K**g|100|| +|112|琛**田|30|| +|113|L**s|20|| +|114|小**哥|10|| +|115|G**e|10|| +|116|s**o|30|| +|117|大**白|50|| +|118|星**星|20|| +|119|沙**锋|200|| +|120|词**意|11|| +|121|A**N|20|| +|122|像**恋|10|| +|123|M**o|10|| +|124|风**虹|50|| +|125|健**诚|10|| +|126|**|5|| +|127|何**玖|6.66|| +|128|A**g|10|| +|129|高**广|20|| + From e80dbd575f2042e00336ff47977b72f4fbbf283e Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Fri, 10 Sep 2021 11:25:47 +0800 Subject: [PATCH 014/382] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 80289a98..6aed122f 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -15,3 +15,9 @@ jobs: dotnet-version: 5.0.100 - name: Build with dotnet run: dotnet build --configuration Release + - name: Build image + run: docker build -f "Dockerfile" --force-rm -t laozhangisphi/apkimg . + - name: Log into registry + run: echo "${{ secrets.ACCESS_TOKEN }}" | docker login -u laozhangisphi --password-stdin + - name: Push image + run: docker push laozhangisphi/apkimg From c7f022800895cc3cca2021d1d1a88ff0c6eaefb0 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Fri, 10 Sep 2021 11:45:01 +0800 Subject: [PATCH 015/382] Update README.md --- README.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a83e2042..205208b9 100644 --- a/README.md +++ b/README.md @@ -34,11 +34,17 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core5.0 Api + Vue 2.x   -#### 联系我 -如果你对BCVP框架感兴趣,并有一定的框架设计经验,,欢迎加入架构师交流群,只要交流心得都可以进入,如果单纯提问问题的就算了哈。 - - - +#### Dokcer 快速启动 +如果想在服务器或者本地快速查看接口效果,直接Docker启动容器即可: +``` + # 可以挂载配置文件和日志文件 + # 这里只是接口效果,想看前端效果,可以异步Blog.Admin查看后台管理系统 + docker run --name=apkcontainer -d \ + -v /data/appsettings.json:/app/appsettings.json \ + -v /data/Log/:/app/Log \ + -it -p 9291:9291 laozhangisphi/apkimg +``` + ### 功能与进度 From a2738e9be9a6a3bd14d7732477d9224d1b8c6d6b Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 15 Sep 2021 11:49:10 +0800 Subject: [PATCH 016/382] =?UTF-8?q?fix=EF=BC=9Amvp=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=80=92=E5=8F=99=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/BlogController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/Controllers/BlogController.cs b/Blog.Core.Api/Controllers/BlogController.cs index 24860971..ecc3a4f8 100644 --- a/Blog.Core.Api/Controllers/BlogController.cs +++ b/Blog.Core.Api/Controllers/BlogController.cs @@ -132,7 +132,7 @@ public async Task>> GetBlogsByTypesForMVP(string { if (types.IsNotEmptyOrNull()) { - var blogs = await _blogArticleServices.Query(d => d.bcategory != null && types.Contains(d.bcategory) && d.IsDeleted == false); + var blogs = await _blogArticleServices.Query(d => d.bcategory != null && types.Contains(d.bcategory) && d.IsDeleted == false, d => d.bID, false); return Success(blogs); } return Success(new List() { }); From c7f0ca3a6ea64f59fd96b6f6f54dac48d4292e7d Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 15 Sep 2021 19:27:11 +0800 Subject: [PATCH 017/382] Fixed #209 bug --- Blog.Core.Api/Controllers/LoginController.cs | 2 +- .../Authorizations/Helpers/JwtHelper.cs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index e007cc6d..afb61c6d 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -204,7 +204,7 @@ public async Task> RefreshToken(string token = if (string.IsNullOrEmpty(token)) return Failed("token无效,请重新登录!"); var tokenModel = JwtHelper.SerializeJwt(token); - if (tokenModel != null && tokenModel.Uid > 0) + if (tokenModel != null && JwtHelper.customSafeVerify(token) && tokenModel.Uid > 0) { var user = await _sysUserInfoServices.QueryById(tokenModel.Uid); if (user != null) diff --git a/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs b/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs index 8efc16a9..46edccbe 100644 --- a/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs +++ b/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs @@ -96,6 +96,18 @@ public static TokenModelJwt SerializeJwt(string jwtStr) } return tokenModelJwt; } + + public static bool customSafeVerify(string token) + { + var jwtHandler = new JwtSecurityTokenHandler(); + var symmetricKeyAsBase64 = AppSecretConfig.Audience_Secret_String; + var keyByteArray = Encoding.ASCII.GetBytes(symmetricKeyAsBase64); + var signingKey = new SymmetricSecurityKey(keyByteArray); + var signingCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256); + + var jwt = jwtHandler.ReadJwtToken(token); + return jwt.RawSignature == Microsoft.IdentityModel.JsonWebTokens.JwtTokenUtilities.CreateEncodedSignature(jwt.RawHeader + "." + jwt.RawPayload, signingCredentials); + } } /// From b2dbd11f7163758eb907bc2fd4ab34098fd3d6ae Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 16 Sep 2021 11:26:00 +0800 Subject: [PATCH 018/382] =?UTF-8?q?feat=EF=BC=9Aadd=20access=20trend=20log?= =?UTF-8?q?=20qurtz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Model.xml | 50 ++++++++ Blog.Core.Common/LogHelper/LogLock.cs | 6 +- .../IAccessTrendLogServices.cs | 14 +++ Blog.Core.Model/Models/AccessTrendLog.cs | 57 +++++++++ Blog.Core.Services/AccessTrendLogServices.cs | 18 +++ .../Jobs/Job_AccessTrendLog_Quartz.cs | 118 ++++++++++++++++++ 6 files changed, 261 insertions(+), 2 deletions(-) create mode 100644 Blog.Core.IServices/IAccessTrendLogServices.cs create mode 100644 Blog.Core.Model/Models/AccessTrendLog.cs create mode 100644 Blog.Core.Services/AccessTrendLogServices.cs create mode 100644 Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 575f738b..9dda8493 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -165,6 +165,56 @@ 返回数据集合 + + + 用户访问趋势日志 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 创建时间 + + 广告图片 diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index dc2d158a..8aeaac70 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -82,7 +82,7 @@ public static void OutSql2Log(string prefix, string[] dataParas, bool IsHeader = /// 编码 /// 读取类型(0:精准,1:前缀模糊) /// - public static string ReadLog(string folderPath, string fileName, Encoding encode, ReadType readType = ReadType.Accurate) + public static string ReadLog(string folderPath, string fileName, Encoding encode, ReadType readType = ReadType.Accurate, int takeOnlyTop = -1) { string s = ""; try @@ -112,6 +112,8 @@ public static string ReadLog(string folderPath, string fileName, Encoding encode var allFiles = new DirectoryInfo(folderPath); var selectFiles = allFiles.GetFiles().Where(fi => fi.Name.ToLower().Contains(fileName.ToLower())).ToList(); + selectFiles = takeOnlyTop > 0 ? selectFiles.Take(takeOnlyTop).ToList() : selectFiles; + foreach (var item in selectFiles) { if (File.Exists(item.FullName)) @@ -379,7 +381,7 @@ public static AccessApiDateView AccessApiByDate() try { Logs = GetRequestInfo(ReadType.Prefix); - + apiDates = (from n in Logs group n by new { n.Date } into g select new ApiDate diff --git a/Blog.Core.IServices/IAccessTrendLogServices.cs b/Blog.Core.IServices/IAccessTrendLogServices.cs new file mode 100644 index 00000000..e902f399 --- /dev/null +++ b/Blog.Core.IServices/IAccessTrendLogServices.cs @@ -0,0 +1,14 @@ +using Blog.Core.IServices.BASE; +using Blog.Core.Model.Models; + +namespace Blog.Core.IServices +{ + /// + /// IAccessTrendLogServices + /// + public interface IAccessTrendLogServices : IBaseServices + { + + } +} + \ No newline at end of file diff --git a/Blog.Core.Model/Models/AccessTrendLog.cs b/Blog.Core.Model/Models/AccessTrendLog.cs new file mode 100644 index 00000000..a3924c24 --- /dev/null +++ b/Blog.Core.Model/Models/AccessTrendLog.cs @@ -0,0 +1,57 @@ +using SqlSugar; +using System; + +namespace Blog.Core.Model.Models +{ + /// + /// 用户访问趋势日志 + /// + public class AccessTrendLog : RootEntityTkey + { + /// + /// + /// + [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] + public string User { get; set; } + /// + /// + /// + [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] + public string IP { get; set; } + /// + /// + /// + [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] + public string API { get; set; } + /// + /// + /// + [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] + public string BeginTime { get; set; } + /// + /// + /// + [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] + public string OPTime { get; set; } + /// + /// + /// + [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] + public string RequestMethod { get; set; } + /// + /// + /// + [SugarColumn(Length = 256, IsNullable = true, ColumnDataType = "nvarchar")] + public string RequestData { get; set; } + /// + /// + /// + [SugarColumn(Length = 256, IsNullable = true, ColumnDataType = "nvarchar")] + public string Agent { get; set; } + + /// + /// 创建时间 + /// + public DateTime Createdate { get; set; } = DateTime.Now; + } +} diff --git a/Blog.Core.Services/AccessTrendLogServices.cs b/Blog.Core.Services/AccessTrendLogServices.cs new file mode 100644 index 00000000..38c643f4 --- /dev/null +++ b/Blog.Core.Services/AccessTrendLogServices.cs @@ -0,0 +1,18 @@ +using Blog.Core.IRepository.Base; +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Blog.Core.Services.BASE; + +namespace Blog.Core.Services +{ + public partial class AccessTrendLogServices : BaseServices, IAccessTrendLogServices + { + IBaseRepository _dal; + public AccessTrendLogServices(IBaseRepository dal) + { + this._dal = dal; + base.BaseDal = dal; + } + + } +} diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs new file mode 100644 index 00000000..a2924804 --- /dev/null +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -0,0 +1,118 @@ +using Blog.Core.Common.LogHelper; +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Hosting; +using Newtonsoft.Json; +using Quartz; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +/// +/// 这里要注意下,命名空间和程序集是一样的,不然反射不到 +/// +namespace Blog.Core.Tasks +{ + public class Job_AccessTrendLog_Quartz : JobBase, IJob + { + private readonly IAccessTrendLogServices _accessTrendLogServices; + private readonly IWebHostEnvironment _environment; + + public Job_AccessTrendLog_Quartz(IAccessTrendLogServices accessTrendLogServices, ITasksQzServices tasksQzServices, IWebHostEnvironment environment) + { + _accessTrendLogServices = accessTrendLogServices; + _environment = environment; + _tasksQzServices = tasksQzServices; + } + public async Task Execute(IJobExecutionContext context) + { + var executeLog = await ExecuteJob(context, async () => await Run(context)); + } + public async Task Run(IJobExecutionContext context) + { + + // 可以直接获取 JobDetail 的值 + var jobKey = context.JobDetail.Key; + var jobId = jobKey.Name; + // 也可以通过数据库配置,获取传递过来的参数 + JobDataMap data = context.JobDetail.JobDataMap; + + var lastestLogDatetime = (await _accessTrendLogServices.Query(null, d => d.Createdate, false)).FirstOrDefault()?.Createdate; + if (lastestLogDatetime == null) + { + lastestLogDatetime = Convert.ToDateTime("2021-08-01"); + } + + var accLogs = GetAccessLogs().Where(d => d.BeginTime.ObjToDate() >= lastestLogDatetime).ToList(); + + var accTrendLogs = new List() { }; + accLogs.ForEach(m => + { + accTrendLogs.Add(new AccessTrendLog() + { + User = m.User, + API = m.API, + BeginTime = m.BeginTime, + Createdate = DateTime.Now, + IP = m.IP, + RequestMethod = m.RequestMethod?.Length > 50 ? m.RequestMethod.Substring(0, 50) : m.RequestMethod + }); + }); + + + if (accTrendLogs.Count > 0) + { + var logsIds = await _accessTrendLogServices.Add(accTrendLogs); + } + } + + private List GetAccessLogs() + { + List userAccessModels = new(); + var accessLogs = LogLock.ReadLog( + Path.Combine(_environment.ContentRootPath, "Log"), "RecordAccessLogs_", Encoding.UTF8, ReadType.Prefix + ).ObjToString().TrimEnd(','); + + try + { + return JsonConvert.DeserializeObject>("[" + accessLogs + "]"); + } + catch (Exception) + { + var accLogArr = accessLogs.Split("\n"); + foreach (var item in accLogArr) + { + if (item.ObjToString() != "") + { + try + { + var accItem = JsonConvert.DeserializeObject(item.TrimEnd(',')); + userAccessModels.Add(accItem); + } + catch (Exception) + { + } + } + } + + } + + return userAccessModels; + } + + } + public class UserAccessFromFIles + { + public string User { get; set; } + public string IP { get; set; } + public string API { get; set; } + public string BeginTime { get; set; } + public string OPTime { get; set; } + public string RequestMethod { get; set; } = ""; + public string Agent { get; set; } + } + +} From ad3e1704aab74cb66fb71104de3bcc97dc84fb0e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 16 Sep 2021 11:41:59 +0800 Subject: [PATCH 019/382] Update Job_AccessTrendLog_Quartz.cs --- Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index a2924804..0e9e06f6 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -73,7 +73,7 @@ private List GetAccessLogs() { List userAccessModels = new(); var accessLogs = LogLock.ReadLog( - Path.Combine(_environment.ContentRootPath, "Log"), "RecordAccessLogs_", Encoding.UTF8, ReadType.Prefix + Path.Combine(_environment.ContentRootPath, "Log"), "RecordAccessLogs_", Encoding.UTF8, ReadType.Prefix,2 ).ObjToString().TrimEnd(','); try From a51c19f72e670340e7726cf50e8307ada050de90 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 16 Sep 2021 13:23:43 +0800 Subject: [PATCH 020/382] =?UTF-8?q?fix=EF=BC=9Alog=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.xml | 2 +- Blog.Core.Common/LogHelper/LogLock.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 87df176e..69f0c97d 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -695,7 +695,7 @@ Values控制器 - + ValuesController diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index 8aeaac70..89b7980b 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -112,7 +112,7 @@ public static string ReadLog(string folderPath, string fileName, Encoding encode var allFiles = new DirectoryInfo(folderPath); var selectFiles = allFiles.GetFiles().Where(fi => fi.Name.ToLower().Contains(fileName.ToLower())).ToList(); - selectFiles = takeOnlyTop > 0 ? selectFiles.Take(takeOnlyTop).ToList() : selectFiles; + selectFiles = takeOnlyTop > 0 ? selectFiles.OrderByDescending(d => d.Name).Take(takeOnlyTop).ToList() : selectFiles; foreach (var item in selectFiles) { From 5c71b10d8e1f4d01c2785024591c19d9986e0d68 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 16 Sep 2021 13:29:31 +0800 Subject: [PATCH 021/382] Update Job_AccessTrendLog_Quartz.cs --- Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index 0e9e06f6..3facdbb2 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -46,7 +46,7 @@ public async Task Run(IJobExecutionContext context) lastestLogDatetime = Convert.ToDateTime("2021-08-01"); } - var accLogs = GetAccessLogs().Where(d => d.BeginTime.ObjToDate() >= lastestLogDatetime).ToList(); + var accLogs = GetAccessLogs().Where(d => d.User != "" && d.BeginTime.ObjToDate() >= lastestLogDatetime).ToList(); var accTrendLogs = new List() { }; accLogs.ForEach(m => @@ -73,7 +73,7 @@ private List GetAccessLogs() { List userAccessModels = new(); var accessLogs = LogLock.ReadLog( - Path.Combine(_environment.ContentRootPath, "Log"), "RecordAccessLogs_", Encoding.UTF8, ReadType.Prefix,2 + Path.Combine(_environment.ContentRootPath, "Log"), "RecordAccessLogs_", Encoding.UTF8, ReadType.Prefix, 2 ).ObjToString().TrimEnd(','); try From 71693070a445964cf0424b1af501e49daed960e4 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 16 Sep 2021 14:06:59 +0800 Subject: [PATCH 022/382] =?UTF-8?q?feat=EF=BC=9Aadd=20logo=20count?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Common/LogHelper/LogLock.cs | 11 +++++++++-- .../QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index 89b7980b..b936a262 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -22,7 +22,7 @@ public LogLock(string contentPath) _contentRoot = contentPath; } - public static void OutSql2Log(string prefix, string[] dataParas, bool IsHeader = true) + public static void OutSql2Log(string prefix, string[] dataParas, bool IsHeader = true, bool isWrt = false) { try { @@ -55,8 +55,15 @@ public static void OutSql2Log(string prefix, string[] dataParas, bool IsHeader = //{ // logContent = logContent.Substring(0, 500) + "\r\n"; //} + if (isWrt) + { + File.WriteAllText(logFilePath, logContent); - File.AppendAllText(logFilePath, logContent); + } + else + { + File.AppendAllText(logFilePath, logContent); + } WritedCount++; } catch (Exception e) diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index 3facdbb2..f2c28c53 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -67,6 +67,21 @@ public async Task Run(IJobExecutionContext context) { var logsIds = await _accessTrendLogServices.Add(accTrendLogs); } + + var accessLogsToday = await _accessTrendLogServices.Query(); + var activeUsers = (from n in accessLogsToday + group n by new { n.User } into g + select new ActiveUserVM + { + user = g.Key.User, + count = g.Count(), + }).ToList(); + activeUsers = activeUsers.OrderByDescending(d => d.count).Take(10).ToList(); + + Parallel.For(0, 1, e => + { + LogLock.OutSql2Log("ACCESSTRENDLOG", new string[] { JsonConvert.SerializeObject(activeUsers) }, false, true); + }); } private List GetAccessLogs() From 6696cb1cc94be013f6e50018f0f2dbfb72218c33 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 16 Sep 2021 14:46:06 +0800 Subject: [PATCH 023/382] =?UTF-8?q?feat=EF=BC=9Aadd=20access=20log=20trend?= =?UTF-8?q?=20in=20index=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.xml | 2 +- .../Controllers/MonitorController.cs | 36 ++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 69f0c97d..87df176e 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -695,7 +695,7 @@ Values控制器
- + ValuesController diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index 28ff3265..350013bd 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -137,6 +137,38 @@ private List GetAccessLogsToday(IWebHostEnvironment environment return userAccessModels; } + private List GetAccessLogsTrend(IWebHostEnvironment environment) + { + List userAccessModels = new(); + var accessLogs = LogLock.ReadLog( + Path.Combine(environment.ContentRootPath, "Log"), "ACCESSTRENDLOG_", Encoding.UTF8, ReadType.PrefixLatest + ).ObjToString(); + try + { + return JsonConvert.DeserializeObject>(accessLogs); + } + catch (Exception) + { + var accLogArr = accessLogs.Split("\n"); + foreach (var item in accLogArr) + { + if (item.ObjToString() != "") + { + try + { + var accItem = JsonConvert.DeserializeObject(item.TrimStart('[').TrimEnd(']')); + userAccessModels.Add(accItem); + } + catch (Exception) + { + } + } + } + + } + + return userAccessModels; + } [HttpGet] public MessageModel GetActiveUsers([FromServices] IWebHostEnvironment environment) @@ -169,7 +201,8 @@ public MessageModel GetActiveUsers([FromServices] IWebHostEnvir activeUsers = activeUsers, activeUserCount = activeUsersCount, errorCount = errorCountToday, - logs = Logs + logs = Logs, + activeCount = GetAccessLogsTrend(environment) } }; } @@ -223,6 +256,7 @@ public class WelcomeInitData public int activeUserCount { get; set; } public List logs { get; set; } public int errorCount { get; set; } + public List activeCount { get; set; } } } From 698b3da74343286761e45c07746313650fefe377 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Fri, 17 Sep 2021 00:18:08 +0800 Subject: [PATCH 024/382] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 205208b9..772ac302 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,15 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core5.0 Api + Vue 2.x 项目单体部署,并发在400~500,一切正常(不保证自己的各种错误写法)。 如果搭配负载,效果更好。 + +#### ❤ 真实用户反馈 ❤ +``` +1、A~CoderDong: +应用场景:使用Blog.Core为基础骨架开发,搭建Client监控类守护进程项目,To C 客户群, +并发情况:目前压测并发5000正常8秒处理完,并发10000可15秒处理完毕,异常不会丢失。 +生产配置:一台服务器(Linux环境 + 强2核的16G内存 + mysql数据库 + 3台Nginx负载) + +``` From c8125fad1acab71fafe3bc586a9204a3dac8915a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 17 Sep 2021 15:25:19 +0800 Subject: [PATCH 025/382] fix: accessTrend Table --- Blog.Core.Api/Blog.Core.Model.xml | 40 ++----------- Blog.Core.Model/Models/AccessTrendLog.cs | 42 ++------------ .../Jobs/Job_AccessTrendLog_Quartz.cs | 56 ++++++++++--------- 3 files changed, 41 insertions(+), 97 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 9dda8493..695e6cd8 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -172,47 +172,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + 用户 - + - + 次数 - + - - - - - - 创建时间 + 更新时间 diff --git a/Blog.Core.Model/Models/AccessTrendLog.cs b/Blog.Core.Model/Models/AccessTrendLog.cs index a3924c24..0bad6836 100644 --- a/Blog.Core.Model/Models/AccessTrendLog.cs +++ b/Blog.Core.Model/Models/AccessTrendLog.cs @@ -9,49 +9,19 @@ namespace Blog.Core.Model.Models public class AccessTrendLog : RootEntityTkey { /// - /// + /// 用户 /// [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] public string User { get; set; } + /// - /// - /// - [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] - public string IP { get; set; } - /// - /// - /// - [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] - public string API { get; set; } - /// - /// - /// - [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] - public string BeginTime { get; set; } - /// - /// - /// - [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] - public string OPTime { get; set; } - /// - /// - /// - [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] - public string RequestMethod { get; set; } - /// - /// - /// - [SugarColumn(Length = 256, IsNullable = true, ColumnDataType = "nvarchar")] - public string RequestData { get; set; } - /// - /// + /// 次数 /// - [SugarColumn(Length = 256, IsNullable = true, ColumnDataType = "nvarchar")] - public string Agent { get; set; } + public int Count { get; set; } /// - /// 创建时间 + /// 更新时间 /// - public DateTime Createdate { get; set; } = DateTime.Now; + public DateTime UpdateTime { get; set; } = DateTime.Now; } } diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index f2c28c53..cd093d1d 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -40,47 +40,51 @@ public async Task Run(IJobExecutionContext context) // 也可以通过数据库配置,获取传递过来的参数 JobDataMap data = context.JobDetail.JobDataMap; - var lastestLogDatetime = (await _accessTrendLogServices.Query(null, d => d.Createdate, false)).FirstOrDefault()?.Createdate; + var lastestLogDatetime = (await _accessTrendLogServices.Query(null, d => d.UpdateTime, false)).FirstOrDefault()?.UpdateTime; if (lastestLogDatetime == null) { - lastestLogDatetime = Convert.ToDateTime("2021-08-01"); + lastestLogDatetime = Convert.ToDateTime("2021-09-01"); } var accLogs = GetAccessLogs().Where(d => d.User != "" && d.BeginTime.ObjToDate() >= lastestLogDatetime).ToList(); + var logUpdate = DateTime.Now; - var accTrendLogs = new List() { }; - accLogs.ForEach(m => - { - accTrendLogs.Add(new AccessTrendLog() - { - User = m.User, - API = m.API, - BeginTime = m.BeginTime, - Createdate = DateTime.Now, - IP = m.IP, - RequestMethod = m.RequestMethod?.Length > 50 ? m.RequestMethod.Substring(0, 50) : m.RequestMethod - }); - }); - - - if (accTrendLogs.Count > 0) - { - var logsIds = await _accessTrendLogServices.Add(accTrendLogs); - } - - var accessLogsToday = await _accessTrendLogServices.Query(); - var activeUsers = (from n in accessLogsToday + var activeUsers = (from n in accLogs group n by new { n.User } into g select new ActiveUserVM { user = g.Key.User, count = g.Count(), }).ToList(); - activeUsers = activeUsers.OrderByDescending(d => d.count).Take(10).ToList(); + + foreach (var item in activeUsers) + { + var user = (await _accessTrendLogServices.Query(d => d.User != "" && d.User == item.user)).FirstOrDefault(); + if (user != null) + { + user.Count += item.count; + user.UpdateTime = logUpdate; + } + await _accessTrendLogServices.Update(user); + } + + // 重新拉取 + var actUsers = await _accessTrendLogServices.Query(d => d.User != "", d => d.Count, false); + actUsers = actUsers.Take(10).ToList(); + + List activeUserVMs = new(); + foreach (var item in actUsers) + { + activeUserVMs.Add(new ActiveUserVM() + { + user = item.User, + count = item.Count + }); + } Parallel.For(0, 1, e => { - LogLock.OutSql2Log("ACCESSTRENDLOG", new string[] { JsonConvert.SerializeObject(activeUsers) }, false, true); + LogLock.OutSql2Log("ACCESSTRENDLOG", new string[] { JsonConvert.SerializeObject(activeUserVMs) }, false, true); }); } From b2fd03d9ba0c0afa749ad299ee6469e89bae9bf0 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 17 Sep 2021 15:38:15 +0800 Subject: [PATCH 026/382] Update Job_AccessTrendLog_Quartz.cs --- .../QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index cd093d1d..09a3c6ac 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -64,8 +64,17 @@ public async Task Run(IJobExecutionContext context) { user.Count += item.count; user.UpdateTime = logUpdate; + await _accessTrendLogServices.Update(user); + } + else + { + await _accessTrendLogServices.Add(new AccessTrendLog() + { + Count = item.count, + UpdateTime = logUpdate, + User = item.user + }); } - await _accessTrendLogServices.Update(user); } // 重新拉取 From 0edd932836e68a5bdb502c85fcb0a65558724418 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Fri, 17 Sep 2021 17:35:12 +0800 Subject: [PATCH 027/382] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 772ac302..c75235b0 100644 --- a/README.md +++ b/README.md @@ -34,8 +34,8 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core5.0 Api + Vue 2.x ``` 1、A~CoderDong: 应用场景:使用Blog.Core为基础骨架开发,搭建Client监控类守护进程项目,To C 客户群, -并发情况:目前压测并发5000正常8秒处理完,并发10000可15秒处理完毕,异常不会丢失。 -生产配置:一台服务器(Linux环境 + 强2核的16G内存 + mysql数据库 + 3台Nginx负载) +并发情况:目前压测并发5k正常8秒处理完,并发10k可15秒处理完毕,异常不会丢失。 +生产配置:一台服务器(Linux环境 + 至强8核的16G内存 + mysql数据库 + 3台Nginx负载) ``` From 194ec3d48123e1067d8476cf5c91e755c242d0bf Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 18 Sep 2021 09:28:46 +0800 Subject: [PATCH 028/382] Update Job_AccessTrendLog_Quartz.cs --- Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index 09a3c6ac..225266b6 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -79,7 +79,7 @@ await _accessTrendLogServices.Add(new AccessTrendLog() // 重新拉取 var actUsers = await _accessTrendLogServices.Query(d => d.User != "", d => d.Count, false); - actUsers = actUsers.Take(10).ToList(); + actUsers = actUsers.Take(15).ToList(); List activeUserVMs = new(); foreach (var item in actUsers) From 289a17b748e809f3aeea16e7dec0a6714b4a8440 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 26 Sep 2021 13:30:41 +0800 Subject: [PATCH 029/382] Fixed #210 bug --- Blog.Core.Model/Models/sysUserInfo.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index 65b37161..acaae690 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -7,6 +7,7 @@ namespace Blog.Core.Model.Models /// /// 用户信息表 /// + [SugarTable("SysUserInfo")] public class sysUserInfo : sysUserInfoRoot { public sysUserInfo() { } From 98068d795c174dd93d3769d65cfc289507ca2a68 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Fri, 8 Oct 2021 15:32:11 +0800 Subject: [PATCH 030/382] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=A8=E6=80=81lin?= =?UTF-8?q?q=E6=9F=A5=E8=AF=A2=20=E6=B7=BB=E5=8A=A0=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Model.xml | 1973 +++++++++++++---- Blog.Core.Api/Blog.Core.xml | 301 +++ .../Controllers/PermissionController.cs | 16 +- .../Controllers/WeChatCompanyController.cs | 94 + .../Controllers/WeChatConfigController.cs | 94 + Blog.Core.Api/Controllers/WeChatController.cs | 187 ++ .../Controllers/WeChatPushLogController.cs | 94 + .../Controllers/WeChatSubController.cs | 94 + Blog.Core.Api/Properties/launchSettings.json | 2 +- Blog.Core.Api/Startup.cs | 4 +- Blog.Core.Api/appsettings.Development.json | 3 + Blog.Core.Api/appsettings.json | 2 +- .../wwwroot/BlogCore.Data.json/Modules.tsv | 397 ++++ .../wwwroot/BlogCore.Data.json/Permission.tsv | 597 ++++- Blog.Core.Common/Helper/DynamicLinqFactory.cs | 551 +++++ Blog.Core.Common/Helper/HttpHelper.cs | 9 +- Blog.Core.Common/Helper/JsonConfigUtils.cs | 2 +- Blog.Core.Common/Helper/LinqHelper.cs | 31 + Blog.Core.Common/Helper/MD5Hepler.cs | 33 +- Blog.Core.Common/Helper/WeChatHelper.cs | 312 +++ .../ServiceExtensions/AppConfigSetup.cs | 2 +- Blog.Core.IServices/BASE/IBaseServices.cs | 1 + Blog.Core.IServices/IWeChatCompanyServices.cs | 16 + Blog.Core.IServices/IWeChatConfigServices.cs | 102 + Blog.Core.IServices/IWeChatPushLogServices.cs | 16 + Blog.Core.IServices/IWeChatSubServices.cs | 16 + Blog.Core.Model/Models/Advertisement.cs | 8 +- Blog.Core.Model/Models/BlogArticle.cs | 10 +- Blog.Core.Model/Models/Guestbook.cs | 10 +- Blog.Core.Model/Models/ModulePermission.cs | 4 +- Blog.Core.Model/Models/Modules.cs | 20 +- Blog.Core.Model/Models/OperateLog.cs | 12 +- Blog.Core.Model/Models/PasswordLib.cs | 12 +- Blog.Core.Model/Models/Permission.cs | 14 +- Blog.Core.Model/Models/Role.cs | 6 +- .../Models/RoleModulePermission.cs | 4 +- Blog.Core.Model/Models/TasksQz.cs | 12 +- Blog.Core.Model/Models/Topic.cs | 10 +- Blog.Core.Model/Models/TopicDetail.cs | 12 +- Blog.Core.Model/Models/UserRole.cs | 4 +- Blog.Core.Model/Models/WeChatCompany.cs | 75 + Blog.Core.Model/Models/WeChatConfig.cs | 110 + Blog.Core.Model/Models/WeChatPushLog.cs | 116 + Blog.Core.Model/Models/WeChatQR.cs | 96 + Blog.Core.Model/Models/WeChatSub.cs | 104 + Blog.Core.Model/Models/WeChatUploadFile.cs | 92 + Blog.Core.Model/Models/sysUserInfo.cs | 12 +- Blog.Core.Model/PaginationModel.cs | 31 + Blog.Core.Model/ViewModels/WeChatApiDto.cs | 116 + .../ViewModels/WeChatCardMsgDataDto.cs | 23 + .../ViewModels/WeChatCardMsgDataOpenIDDto.cs | 23 + .../ViewModels/WeChatCardMsgDetailDto.cs | 80 + .../ViewModels/WeChatMenuButtonDto.cs | 18 + Blog.Core.Model/ViewModels/WeChatMenuDto.cs | 18 + .../ViewModels/WeChatOpenIDsDto.cs | 14 + .../ViewModels/WeChatPushCardMsgDetailDto.cs | 22 + .../ViewModels/WeChatPushCardMsgDto.cs | 31 + .../WeChatPushCardMsgValueColorDto.cs | 23 + .../ViewModels/WeChatPushLinkMsgContentDto.cs | 26 + .../ViewModels/WeChatPushPictureContentDto.cs | 14 + .../ViewModels/WeChatPushTestDto.cs | 61 + .../ViewModels/WeChatPushTextContentDto.cs | 14 + .../ViewModels/WeChatPushVideoContentDto.cs | 22 + .../ViewModels/WeChatPushVoiceContentDto.cs | 14 + .../ViewModels/WeChatQRActionDto.cs | 14 + .../ViewModels/WeChatQRActionInfoDto.cs | 14 + Blog.Core.Model/ViewModels/WeChatQRDto.cs | 16 + .../ViewModels/WeChatResponseUserInfo.cs | 28 + .../ViewModels/WeChatTemplateList.cs | 15 + Blog.Core.Model/ViewModels/WeChatUserInfo.cs | 31 + .../ViewModels/WeChatUserInfoOpenID.cs | 23 + Blog.Core.Model/ViewModels/WeChatValidDto.cs | 37 + Blog.Core.Model/ViewModels/WeChatXMLDto.cs | 118 + Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs | 2 +- Blog.Core.Services/BASE/BaseServices.cs | 8 +- Blog.Core.Services/WeChatCompanyServices.cs | 34 + Blog.Core.Services/WeChatConfigServices.cs | 906 ++++++++ Blog.Core.Services/WeChatPushLogServices.cs | 34 + Blog.Core.Services/WeChatSubServices.cs | 34 + 79 files changed, 7075 insertions(+), 481 deletions(-) create mode 100644 Blog.Core.Api/Controllers/WeChatCompanyController.cs create mode 100644 Blog.Core.Api/Controllers/WeChatConfigController.cs create mode 100644 Blog.Core.Api/Controllers/WeChatController.cs create mode 100644 Blog.Core.Api/Controllers/WeChatPushLogController.cs create mode 100644 Blog.Core.Api/Controllers/WeChatSubController.cs create mode 100644 Blog.Core.Api/appsettings.Development.json create mode 100644 Blog.Core.Common/Helper/DynamicLinqFactory.cs create mode 100644 Blog.Core.Common/Helper/LinqHelper.cs create mode 100644 Blog.Core.Common/Helper/WeChatHelper.cs create mode 100644 Blog.Core.IServices/IWeChatCompanyServices.cs create mode 100644 Blog.Core.IServices/IWeChatConfigServices.cs create mode 100644 Blog.Core.IServices/IWeChatPushLogServices.cs create mode 100644 Blog.Core.IServices/IWeChatSubServices.cs create mode 100644 Blog.Core.Model/Models/WeChatCompany.cs create mode 100644 Blog.Core.Model/Models/WeChatConfig.cs create mode 100644 Blog.Core.Model/Models/WeChatPushLog.cs create mode 100644 Blog.Core.Model/Models/WeChatQR.cs create mode 100644 Blog.Core.Model/Models/WeChatSub.cs create mode 100644 Blog.Core.Model/Models/WeChatUploadFile.cs create mode 100644 Blog.Core.Model/PaginationModel.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatApiDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatCardMsgDataDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatCardMsgDataOpenIDDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatCardMsgDetailDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatMenuButtonDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatMenuDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatOpenIDsDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatPushCardMsgDetailDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatPushCardMsgDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatPushCardMsgValueColorDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatPushLinkMsgContentDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatPushPictureContentDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatPushTestDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatPushTextContentDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatPushVideoContentDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatPushVoiceContentDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatQRActionDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatQRActionInfoDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatQRDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatResponseUserInfo.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatTemplateList.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatUserInfo.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatUserInfoOpenID.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatValidDto.cs create mode 100644 Blog.Core.Model/ViewModels/WeChatXMLDto.cs create mode 100644 Blog.Core.Services/WeChatCompanyServices.cs create mode 100644 Blog.Core.Services/WeChatConfigServices.cs create mode 100644 Blog.Core.Services/WeChatPushLogServices.cs create mode 100644 Blog.Core.Services/WeChatSubServices.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 4befdebc..3984a3cb 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -861,873 +861,2066 @@ 修改时间 - + - ID + - + - 菜单与按钮关系表 - 父类 + 公司ID + + + + + 公司名称 - + - 菜单ID + 公司IP - + - 按钮ID + 公司备注 - + - 接口API地址信息表 - 父类 + api地址 - + - 父ID + 是否激活 - + - 路由菜单表 + 创建者id - + - 上一级菜单(0表示上一级无菜单) + 创建人 - + - 接口api + 创建时间 - + - 按钮跟权限关联表 - 父类 + 修改者id - + - 角色ID + 修改人 - + - 菜单ID + 修改时间 - + - api ID + - + - ID - 泛型主键Tkey + 微信公众号唯一标识 - + - 用户信息表 + 微信公众号名称 - + - uID - 泛型主键Tkey + 微信账号 - + - Tibug 博文 + 微信名称 - + - 用户跟角色关联表 - 父类 + 应用ID - + - 用户ID + 应用秘钥 - + - 角色ID + 公众号推送token - + - 通用分页信息类 + 验证秘钥(验证消息是否真实) - + - 当前页标 + 微信公众号token过期时间 - + - 总页数 + 备注 - + - 数据总数 + 是否激活 - + - 每页大小 + 创建者id - + - 返回数据 + 创建人 - + - 无权限 + 创建时间 - + - 找不到指定资源 + 修改者id - + - 找不到指定资源 + 修改人 - + - 表格数据,支持分页 + 修改时间 - + - 返回编码 + - + - 返回信息 + 推送ID - + - 记录总数 + 来自谁 - + - 返回数据集 + 推送IP - + - 广告类 + 推送客户 - + - 分类ID + 推送用户 - + - 创建时间 + 推送模板ID - + - 广告图片 + 推送内容 - + - 广告标题 + 推送时间 - + - 广告链接 + 推送状态(Y/N) - + 备注 - + - 博客信息展示类 + 推送OpenID - + - + 推送微信公众号 - - 创建人 - + + + 创建者id - - 博客标题 - + + + 创建人 - - 摘要 + + + 创建时间 + + + + + 修改者id + + + + + 修改人 + + + + + 修改时间 + + + + - + - 上一篇 + 主键id,ticket - + - 上一篇id + 需要绑定的公司 - + - 下一篇 + 需要绑定的员工id - + - 下一篇id + 需要绑定的员工昵称 - - 类别 - + + + 创建时间 - - 内容 - + + + 关联的公众号 - + - 访问量 + 是否已使用 - + - 评论数量 + 使用时间 - - 修改时间 - + + + 关联的微信用户id - + + + 创建者id + + + + + 创建人 + + + 创建时间 - - 备注 - + + + 修改者id - + - 留言信息展示类 + 修改人 - - 留言表 - + + + 修改时间 - - 博客ID + + - - 创建时间 - + + + 来自哪个公众号 - - 手机 - + + + 绑定公司id - - qq - + + + 绑定员工id - - 留言内容 - + + + 绑定微信id - - ip地址 - + + + 绑定微信联合id - - 是否显示在前台,0否1是 - + + + 绑定时间 - + - 商户号 - + 更新时间 + - + - 柜台号 - + 备注 + - + - 分行号 - + 是否已解绑 + - + - 集团商户信息 - + 上次绑定微信id + - + - 交易码 - + 创建者id + - + - 商户类型 - + 创建人 + - + - 终端编号 1 - + 创建时间 + + + + + 修改者id + + + + + 修改人 + + + + + 修改时间 + + + + + + + + + + 文件ID + + + + + 文件名称 + + + + + 文件大小 + + + + + 文件类型 + + + + + 文件拓展名 + + + + + 文件位置 + + + + + 文件上传时间 + + + + + 文件备注 + + + + + 创建者id + + + + + 创建人 + + + + + 创建时间 + + + + + 修改者id + + + + + 修改人 + + + + + 修改时间 + + + + + ID + + + + + 菜单与按钮关系表 + 父类 + + + + + 菜单ID + + + + + 按钮ID + + + + + 接口API地址信息表 + 父类 + + + + + 父ID + + + + + 路由菜单表 + + + + + 上一级菜单(0表示上一级无菜单) + + + + + 接口api + + + + + 按钮跟权限关联表 + 父类 + + + + + 角色ID + + + + + 菜单ID + + + + + api ID + + + + + ID + 泛型主键Tkey + + + + + 用户信息表 + + + + + uID + 泛型主键Tkey + + + + + Tibug 博文 + + + + + 用户跟角色关联表 + 父类 + + + + + 用户ID + + + + + 角色ID + + + + + 通用分页信息类 + + + + + 当前页标 + + + + + 总页数 + + + + + 数据总数 + + + + + 每页大小 + + + + + 返回数据 + + + + + 所需分页参数 + 作者:胡丁文 + 时间:2020-4-3 20:31:26 + + + + + 当前页 + + + + + 每页大小 + + + + + 排序字段(例如:id desc,time asc) + + + + + 查询条件( 例如:id = 1 and name = 小明) + + + + + 无权限 + + + + + 找不到指定资源 + + + + + 找不到指定资源 + + + + + 表格数据,支持分页 + + + + + 返回编码 + + + + + 返回信息 + + + + + 记录总数 + + + + + 返回数据集 + + + + + 广告类 + + + + + 分类ID + + + + + 创建时间 + + + + + 广告图片 + + + + + 广告标题 + + + + + 广告链接 + + + + + 备注 + + + + + 博客信息展示类 + + + + + + + + + 创建人 + + + + + 博客标题 + + + + + 摘要 + + + + + + 上一篇 + + + + + 上一篇id + + + + + 下一篇 + + + + + 下一篇id + + + + 类别 + + + + + 内容 + + + + + + 访问量 + + + + + 评论数量 + + + + 修改时间 + + + + + + 创建时间 + + + + 备注 + + + + + + 留言信息展示类 + + + + 留言表 + + + + + 博客ID + + + + + 创建时间 + + + + + 手机 + + + + + qq + + + + + 留言内容 + + + + + ip地址 + + + + + 是否显示在前台,0否1是 + + + + + + 商户号 + + + + + 柜台号 + + + + + 分行号 + + + + + 集团商户信息 + + + + + 交易码 + + + + + 商户类型 + + + + + 终端编号 1 + + + + + 终端编号 2 + + + + + 订单号 + + + + + 码信息(一维码、二维码) + + + + + 订单金额,单位:元 + + + + + 商品名称 + + + + + 备注 1 + + + + + 备注 2 + + + + + 分账信息一 + + + + + 分账信息二 + + + + + 子商户公众账号 ID + + + + + 返回信息位图 + + + + + 实名支付 + + + + + 商品详情 + + + + + 订单优惠标记 + + + + + 公钥 + + + + + 请求地址 + + + + + 是否删除空值 + + + + + 退款参数 + + + + + 订单ID + + + + + 商品名称 + + + + + 支付金额(小数点最多两位) + + + + + 二维码/条码信息 + + + + + 备注信息1 + + + + + 备注信息2 + + + + + 订单参数 + + + + + 订单号 + + + + + 退款金额 + + + + + 退款流水号(可选) + + + + + 退款返回消息 + + + + + 序列号 + + + + + 商户号 + + + + + 交易码 + + + + + 返回码 + + + + + 返回码说明 + + + + + 语言 + + + + + 订单信息 + + + + + 订单信息 + + + + + 订单号 + + + + + 支付金额 + + + + + 退款金额 + + + + + 备注1 + + + + + 备注2 + + + + + 退款返回结果消息 + + + + + 订单号 + + + + + 支付金额 + + + + + 退款金额 + + + + + 序列号 + + + + + 商户号 + + + + + 交易码 + + + + + 返回码 + + + + + 返回码说明 + + + + + 语言 + + + + + 支付结果dto + + + + + 支付结果 + Y:成功 + N:失败 + U:不确定 + Q:待轮询 + + + + + 订单ID + + + + + 支付金额 + + + + + 二维码类型 + 1:龙支付 + 2:微信 + 3:支付宝 + 4:银联 + + + + + 等待时间-轮询等待时间 + + + + + 全局事件跟踪号-建行交易流水号 + + + + + 错误码 + + + + + 错误信息 + + + + + 验证签名-防止伪造攻击 + + + + + 返回支付结果 + + + + + 发起的订单ID + + + + + 返回支付的金额 + + + + + 返回支付的类型 1:龙支付 2:微信 3:支付宝 4:银联 + + + + + 返回建行的流水号 + + + + + 错误代码 + + + + + 错误信息 + + + + + 实现IJob的类 + + + + + 命名空间 + + + + + 类名 + + + + + 备注 + + + + + 服务器VM + + + + + 环境变量 + + + + + 系统架构 + + + + + ContentRootPath + + + + + WebRootPath + + + + + .NET Core版本 + + + + + 内存占用 + + + + + 启动时间 + + + + + 菜单展示model + + + + + 调度任务触发器信息实体 + + + + + 任务ID + + + + + 任务名称 + + + + + 任务分组 + + + + + 触发器ID + + + + + 触发器名称 + + + + + 触发器分组 + + + + + 触发器状态 + + + + + 用来测试 RestSharp Get 请求 + + + + + + + + + + + + + + + 用来测试 RestSharp Post 请求 + + + + + 留言排名展示类 + + + + 博客ID + + + + + + 评论数量 + + + + 博客标题 + + + + + + 微信接口消息DTO + 作者:胡丁文 + 时间:2020-03-25 + + + + + 微信公众号ID(数据库查询) + + + + + 错误代码 + + + + + 错误信息 + + + + + token + + + + + 过期时间(秒) + + + + + 用户关注数 + + + + + 获取用户数量 + + + + + 获取用户OpenIDs + + + + + 下一个关注用户 + + + + + 微信消息模板列表 + + + + + 微信菜单 + + + + + 二维码票据 + + + + + 二维码过期时间 + + + + + 二维码地址 + + + + + 关注状态 + + + + + 用户微信ID + + + + + 昵称 + + + + + 性别 + + + + + 语言 + + + + + 城市 + + + + + 省份 + + + + + 城市 + + + + + 头像地址 + - + - 终端编号 2 - + 微信推送消息Dto + 作者:胡丁文 + 时间:2020-4-8 09:16:16 + - + - 订单号 - + 推送关键信息 + - + - 码信息(一维码、二维码) - + 推送卡片消息Dto + - + - 订单金额,单位:元 - + 微信推送消息Dto + 作者:胡丁文 + 时间:2020-11-23 16:29:05 + - + - 商品名称 - + 推送关键信息 + - + - 备注 1 - + 推送卡片消息Dto + - + - 备注 2 - + 消息模板dto(如何填写数据,请参考微信模板即可) + 作者:胡丁文 + 时间:2020-4-1 09:32:16 + - + - 分账信息一 - + 消息模板 + - + - 分账信息二 - + 标题 + - + - 子商户公众账号 ID - + 标题颜色(颜色代码都必须为#开头的16进制代码) + - + - 返回信息位图 - + 内容1 + - + - 实名支付 - + 内容1颜色 + - + - 商品详情 - + 内容2 + - + - 订单优惠标记 - + 内容2颜色 + - + - 公钥 + 内容3 - + - 请求地址 + 内容3颜色 - + - 是否删除空值 + 内容4 - + - 退款参数 + 内容4颜色 - + - 订单ID + 内容5 - + - 商品名称 + 内容5颜色 - + - 支付金额(小数点最多两位) + 备注信息 - + - 二维码/条码信息 + 备注信息颜色 - + - 备注信息1 + 跳转连接 - + - 备注信息2 + 获取微信菜单DTO,用于存放具体菜单内容 - + - 订单参数 + 获取微信菜单DTO - + - 订单号 + 按钮列表(最多三个) - + - 退款金额 + 微信OpenID列表Dto - + - 退款流水号(可选) + 推送详细数据 + 作者:胡丁文 + 时间:2020-4-8 09:16:16 - + - 退款返回消息 + 推送给微信所需Dto + 作者:胡丁文 + 时间:2020-4-8 09:16:16 - + - 序列号 + 推送微信用户ID - + - 商户号 + 推送的模板ID - + - 交易码 + 推送URL地址 - + - 返回码 + 推送的数据 - + - 返回码说明 + 微信keyword所需Dto + 作者:胡丁文 + 时间:2020-4-8 09:18:08 - + - 语言 + 内容 - + - 订单信息 + 文字颜色 - + - 订单信息 + 图文链接标题 - + - 订单号 + 图文描述 - + - 支付金额 + 访问URL - + - 退款金额 + 图片URL - + - 备注1 + 图片mediaID - + - 备注2 + 推送模拟消息Dto + 作者:胡丁文 + 时间:2020-4-24 14:52:44 - + - 退款返回结果消息 + 当前选中的微信公众号 - + - 订单号 + 当前选中的操作集合 - + - 支付金额 + 当前选中的绑定还是订阅 - + - 退款金额 + 当前选中的微信客户 - + - 序列号 + 当前选中的消息类型 - + - 商户号 + 当前选中要发送的用户 - + - 交易码 + 文本消息 - + - 返回码 + 图片消息 - + - 返回码说明 + 语音消息 - + - 语言 + 视频消息 - + - 支付结果dto + 链接消息 - + - 支付结果 - Y:成功 - N:失败 - U:不确定 - Q:待轮询 + 文字消息 - + - 订单ID + 视频标题 - + - 支付金额 + 视频封面mediaID - + - 二维码类型 - 1:龙支付 - 2:微信 - 3:支付宝 - 4:银联 + 视频mediaID - + - 等待时间-轮询等待时间 + 语音mediaID - + - 全局事件跟踪号-建行交易流水号 + 微信二维码预装发送信息dto - + - 错误码 + 微信二维码预装具体消息 - + - 错误信息 + 微信二维码预装信息DTO - + - 验证签名-防止伪造攻击 + 返回给调用者的Dto + 作者:胡丁文 + 时间:2020-4-8 09:52:06 - + - 返回支付结果 + 微信公众号ID - + - 发起的订单ID + 公司代码 - + - 返回支付的金额 + 数据 - + - 返回支付的类型 1:龙支付 2:微信 3:支付宝 4:银联 + 微信消息模板Dto - + - 返回建行的流水号 + 微信推送所需信息(公司版本) + 作者:胡丁文 + 时间:2020-4-8 09:04:36 - + - 错误代码 + 微信公众号ID - + - 错误信息 + 公司代码 - + - 实现IJob的类 + 用户id - + - 命名空间 + 用户昵称 - + - 类名 + 微信推送所需信息(OpenID版本) + 作者:胡丁文 + 时间:2020-11-23 16:27:29 - + - 备注 + 微信公众号ID - + - 服务器VM + 微信OpenID - + - 环境变量 + 微信验证Dto + 作者:胡丁文 + 时间:2020-4-1 21:34:07 + + + + + 微信公众号唯一标识 - + - 系统架构 + 验证成功后返回给微信的字符串 - + - ContentRootPath + 签名 - + - WebRootPath + 时间戳 - + - .NET Core版本 + 随机数 - + - 内存占用 + 微信XmlDto + 作者:胡丁文 + 时间:2020-4-3 20:31:26 + + + + + 微信公众号唯一表示 - + - 启动时间 + 微信开发者 + + + + + 来自谁 + + + + + 创建时间 - + - 菜单展示model + 消息类型 + + + + + 文字内容 + + + + + 消息ID - + - 调度任务触发器信息实体 + 消息事件 + + + + + 事件key值 + + + + + 图片地址 - + - 任务ID + 多媒体ID - + - 任务名称 + 格式 - + - 任务分组 + 语音失败 - + - 触发器ID + 缩略媒体ID - + - 触发器名称 + 地理位置维度 - + - 触发器分组 + 地理位置经度 - + - 触发器状态 + 地图缩放大小 - + - 用来测试 RestSharp Get 请求 + 地理位置信息 - + - + 消息标题 - + - + 消息描述 - + - 用来测试 RestSharp Post 请求 + 消息链接 - + - 留言排名展示类 + 二维码的ticket,可用来换取二维码图片 - - 博客ID - + + + 地理位置纬度 - + - 评论数量 + 地理位置经度 - - 博客标题 - + + + 地理位置精度 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 87df176e..cef46a95 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -823,6 +823,307 @@ 通过此处的key格式为 xx:xx:x + + + WeChatCompanyController + + + + + 构造函数 + + + + + + 获取 + + 分页条件 + + + + + 获取(id) + + 主键ID + + + + + 添加 + + + + + + 更新 + + + + + + 删除 + + + + + + 批量删除 + + + + + + WeChatConfigController + + + + + 构造函数 + + + + + + 获取 + + 分页条件 + + + + + 获取(id) + + 主键ID + + + + + 添加 + + + + + + 更新 + + + + + + 删除 + + + + + + 批量删除 + + + + + + 微信公众号管理 + 作者:胡丁文 + 时间:2020-3-29 21:24:12 + + + + + 构造函数 + + + + + + + 更新Token + + + + + + + 刷新Token + + + + + + + 获取模板 + + + + + + + 获取菜单 + + + + + + + 更新菜单 + + + + + + + 获取订阅用户(所有) + + + + + + + 入口 + + + + + + + 获取订阅用户 + + + + + + + 获取一个绑定员工公众号二维码 + + 消息 + + + + + 推送卡片消息接口 + + 卡片消息对象 + + + + + 推送文本消息 + + 消息对象 + + + + + 通过绑定用户获取微信用户信息(一般用于初次绑定检测) + + 信息 + + + + + 用户解绑 + + 消息 + + + + + WeChatPushLogController + + + + + 构造函数 + + + + + + 获取 + + 分页条件 + + + + + 获取(id) + + 主键ID + + + + + 添加 + + + + + + 更新 + + + + + + 删除 + + + + + + 批量删除 + + + + + + WeChatSubController + + + + + 构造函数 + + + + + + 获取 + + 分页条件 + + + + + 获取(id) + + 主键ID + + + + + 添加 + + + + + + 更新 + + + + + + 删除 + + + + + + 批量删除 + + + 服务管理 diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 10f3c20e..1dbdb0a2 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -254,9 +254,10 @@ public async Task> Assign([FromBody] AssignView assignView) foreach (var item in assignView.pids) { var rmpitem = roleModulePermissions.Where(d => d.PermissionId == item); + var moduleid = (await _permissionServices.Query(p => p.Id == item)).FirstOrDefault()?.Mid; if (!rmpitem.Any()) { - var moduleid = (await _permissionServices.Query(p => p.Id == item)).FirstOrDefault()?.Mid; + RoleModulePermission roleModulePermission = new RoleModulePermission() { IsDeleted = false, @@ -272,6 +273,17 @@ public async Task> Assign([FromBody] AssignView assignView) data.success &= (await _roleModulePermissionServices.Add(roleModulePermission)) > 0; } + else + { + foreach (var role in rmpitem) + { + if (!role.ModuleId.Equals(moduleid)) + { + role.ModuleId = moduleid.Value; + await _roleModulePermissionServices.Update(role, new List { "ModuleId" }); + } + } + } } if (data.success) @@ -373,6 +385,7 @@ public async Task> GetNavigationBar(int uid) if (pids.Any()) { var rolePermissionMoudles = (await _permissionServices.Query(d => pids.Contains(d.Id))).OrderBy(c => c.OrderSort); + var temp = rolePermissionMoudles.ToList().Find(t => t.Id == 87); var permissionTrees = (from child in rolePermissionMoudles where child.IsDeleted == false orderby child.Id @@ -410,7 +423,6 @@ orderby child.Id }; permissionTrees = permissionTrees.OrderBy(d => d.order).ToList(); - RecursionHelper.LoopNaviBarAppendChildren(permissionTrees, rootRoot); data.success = true; diff --git a/Blog.Core.Api/Controllers/WeChatCompanyController.cs b/Blog.Core.Api/Controllers/WeChatCompanyController.cs new file mode 100644 index 00000000..50cec463 --- /dev/null +++ b/Blog.Core.Api/Controllers/WeChatCompanyController.cs @@ -0,0 +1,94 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Blog.Core.Common.Helper; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Controllers +{ + /// + /// WeChatCompanyController + /// + [Route("api/[controller]/[action]")] + [ApiController] + [Authorize(Permissions.Name)] + public partial class WeChatCompanyController : Controller + { + readonly IWeChatCompanyServices _WeChatCompanyServices; + /// + /// 构造函数 + /// + /// + public WeChatCompanyController(IWeChatCompanyServices iWeChatCompanyServices) + { + _WeChatCompanyServices = iWeChatCompanyServices; + } + /// + /// 获取 + /// + /// 分页条件 + /// + [HttpGet] + public async Task>> Get([FromQuery] PaginationModel pagination) + { + var data = await _WeChatCompanyServices.QueryPage(pagination); + return new MessageModel> { success = true, response = data}; + } + /// + /// 获取(id) + /// + /// 主键ID + /// + [HttpGet("{id}")] + public async Task> Get(string id) + { + var data = await _WeChatCompanyServices.QueryById(id); + return new MessageModel { success = true, response = data }; + } + /// + /// 添加 + /// + /// + [HttpPost] + public async Task> Post([FromBody] WeChatCompany obj) + { + await _WeChatCompanyServices.Add(obj); + return new MessageModel { success = true}; + } + /// + /// 更新 + /// + /// + [HttpPut] + public async Task> Put([FromBody] WeChatCompany obj) + { + await _WeChatCompanyServices.Update(obj); + return new MessageModel { success = true}; + } + /// + /// 删除 + /// + /// + [HttpDelete] + public async Task> Delete(string id) + { + await _WeChatCompanyServices.DeleteById(id); + return new MessageModel { success = true}; + } + /// + /// 批量删除 + /// + /// + [HttpDelete] + public async Task> BatchDelete(string ids) + { + var i = ids.Split(","); + await _WeChatCompanyServices.DeleteByIds(i); + return new MessageModel { success = true }; + } + + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/WeChatConfigController.cs b/Blog.Core.Api/Controllers/WeChatConfigController.cs new file mode 100644 index 00000000..e3c7707a --- /dev/null +++ b/Blog.Core.Api/Controllers/WeChatConfigController.cs @@ -0,0 +1,94 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Blog.Core.Common.Helper; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Controllers +{ + /// + /// WeChatConfigController + /// + [Route("api/[controller]/[action]")] + [ApiController] + [Authorize(Permissions.Name)] + public partial class WeChatConfigController : Controller + { + readonly IWeChatConfigServices _WeChatConfigServices; + /// + /// 构造函数 + /// + /// + public WeChatConfigController(IWeChatConfigServices iWeChatConfigServices) + { + _WeChatConfigServices = iWeChatConfigServices; + } + /// + /// 获取 + /// + /// 分页条件 + /// + [HttpGet] + public async Task>> Get([FromQuery] PaginationModel pagination) + { + var data = await _WeChatConfigServices.QueryPage(pagination); + return new MessageModel> { success = true, response = data}; + } + /// + /// 获取(id) + /// + /// 主键ID + /// + [HttpGet("{id}")] + public async Task> Get(string id) + { + var data = await _WeChatConfigServices.QueryById(id); + return new MessageModel { success = true, response = data }; + } + /// + /// 添加 + /// + /// + [HttpPost] + public async Task> Post([FromBody] WeChatConfig obj) + { + await _WeChatConfigServices.Add(obj); + return new MessageModel { success = true}; + } + /// + /// 更新 + /// + /// + [HttpPut] + public async Task> Put([FromBody] WeChatConfig obj) + { + await _WeChatConfigServices.Update(obj); + return new MessageModel { success = true}; + } + /// + /// 删除 + /// + /// + [HttpDelete] + public async Task> Delete(string id) + { + await _WeChatConfigServices.DeleteById(id); + return new MessageModel { success = true}; + } + /// + /// 批量删除 + /// + /// + [HttpDelete] + public async Task> BatchDelete(string ids) + { + var i = ids.Split(","); + await _WeChatConfigServices.DeleteByIds(i); + return new MessageModel { success = true }; + } + + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/WeChatController.cs b/Blog.Core.Api/Controllers/WeChatController.cs new file mode 100644 index 00000000..e8b57d23 --- /dev/null +++ b/Blog.Core.Api/Controllers/WeChatController.cs @@ -0,0 +1,187 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using System.Xml; +using Blog.Core.Common.Helper; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; + +namespace Blog.Core.Controllers +{ + /// + /// 微信公众号管理 + /// 作者:胡丁文 + /// 时间:2020-3-29 21:24:12 + /// + [Route("api/[controller]/[action]")] + [ApiController] + [Authorize(Permissions.Name)] + public partial class WeChatController : Controller + { + readonly IWeChatConfigServices _weChatConfigServices; + readonly ILogger _logger; + /// + /// 构造函数 + /// + /// + /// + public WeChatController(IWeChatConfigServices weChatConfigServices, ILogger logger) + { + _weChatConfigServices = weChatConfigServices; + _logger = logger; + } + /// + /// 更新Token + /// + /// + /// + [HttpGet] + public async Task> GetToken(string id) + { + return await _weChatConfigServices.GetToken(id); + + } + /// + /// 刷新Token + /// + /// + /// + [HttpGet] + public async Task> RefreshToken(string id) + { + return await _weChatConfigServices.RefreshToken(id); + + } + /// + /// 获取模板 + /// + /// + /// + [HttpGet] + public async Task> GetTemplate(string id) + { + return await _weChatConfigServices.GetTemplate(id); + } + /// + /// 获取菜单 + /// + /// + /// + [HttpGet] + public async Task> GetMenu(string id) + { + return await _weChatConfigServices.GetMenu(id); + } + + /// + /// 更新菜单 + /// + /// + /// + [HttpPut] + public async Task> UpdateMenu(WeChatApiDto menu) + { + return await _weChatConfigServices.UpdateMenu(menu); + } + /// + /// 获取订阅用户(所有) + /// + /// + /// + [HttpGet] + public async Task> GetSubUsers(string id) + { + return await _weChatConfigServices.GetSubUsers(id); + } + /// + /// 入口 + /// + /// + /// + [AllowAnonymous] + [HttpPost] + [HttpGet] + public async Task Valid([FromQuery] WeChatValidDto validDto) + { + using (var reader = new StreamReader(Request.Body)) + { + var body = await reader.ReadToEndAsync(); + return await _weChatConfigServices.Valid(validDto, body); + } + } + /// + /// 获取订阅用户 + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task> GetSubUser(string id,string openid) + { + return await _weChatConfigServices.GetSubUser(id,openid); + } + /// + /// 获取一个绑定员工公众号二维码 + /// + /// 消息 + /// + [HttpGet] + [AllowAnonymous] + public async Task> GetQRBind([FromQuery]WeChatUserInfo info) + { + return await _weChatConfigServices.GetQRBind(info); + } + /// + /// 推送卡片消息接口 + /// + /// 卡片消息对象 + /// + [HttpPost] + [AllowAnonymous] + public async Task> PushCardMsg(WeChatCardMsgDataDto msg) + { + string pushUserIP = $"{Request.HttpContext.Connection.RemoteIpAddress}:{Request.HttpContext.Connection.RemotePort}"; + return await _weChatConfigServices.PushCardMsg(msg, pushUserIP); + } + /// + /// 推送文本消息 + /// + /// 消息对象 + /// + [HttpPost] + [AllowAnonymous] + public async Task> PushTxtMsg([FromBody] WeChatPushTestDto msg) + { + return await _weChatConfigServices.PushTxtMsg(msg); + } + /// + /// 通过绑定用户获取微信用户信息(一般用于初次绑定检测) + /// + /// 信息 + /// + [HttpGet] + [AllowAnonymous] + public async Task> GetBindUserInfo([FromQuery]WeChatUserInfo info) + { + return await _weChatConfigServices.GetBindUserInfo(info); + } + /// + /// 用户解绑 + /// + /// 消息 + /// + [HttpGet] + [AllowAnonymous] + public async Task> UnBind([FromQuery]WeChatUserInfo info) + { + return await _weChatConfigServices.UnBind(info); + } + } +} diff --git a/Blog.Core.Api/Controllers/WeChatPushLogController.cs b/Blog.Core.Api/Controllers/WeChatPushLogController.cs new file mode 100644 index 00000000..8b0dce8e --- /dev/null +++ b/Blog.Core.Api/Controllers/WeChatPushLogController.cs @@ -0,0 +1,94 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Blog.Core.Common.Helper; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Controllers +{ + /// + /// WeChatPushLogController + /// + [Route("api/[controller]/[action]")] + [ApiController] + [Authorize(Permissions.Name)] + public partial class WeChatPushLogController : Controller + { + readonly IWeChatPushLogServices _WeChatPushLogServices; + /// + /// 构造函数 + /// + /// + public WeChatPushLogController(IWeChatPushLogServices iWeChatPushLogServices) + { + _WeChatPushLogServices = iWeChatPushLogServices; + } + /// + /// 获取 + /// + /// 分页条件 + /// + [HttpGet] + public async Task>> Get([FromQuery] PaginationModel pagination) + { + var data = await _WeChatPushLogServices.QueryPage(pagination); + return new MessageModel> { success = true, response = data}; + } + /// + /// 获取(id) + /// + /// 主键ID + /// + [HttpGet("{id}")] + public async Task> Get(string id) + { + var data = await _WeChatPushLogServices.QueryById(id); + return new MessageModel { success = true, response = data }; + } + /// + /// 添加 + /// + /// + [HttpPost] + public async Task> Post([FromBody] WeChatPushLog obj) + { + await _WeChatPushLogServices.Add(obj); + return new MessageModel { success = true}; + } + /// + /// 更新 + /// + /// + [HttpPut] + public async Task> Put([FromBody] WeChatPushLog obj) + { + await _WeChatPushLogServices.Update(obj); + return new MessageModel { success = true}; + } + /// + /// 删除 + /// + /// + [HttpDelete] + public async Task> Delete(string id) + { + await _WeChatPushLogServices.DeleteById(id); + return new MessageModel { success = true}; + } + /// + /// 批量删除 + /// + /// + [HttpDelete] + public async Task> BatchDelete(string ids) + { + var i = ids.Split(","); + await _WeChatPushLogServices.DeleteByIds(i); + return new MessageModel { success = true }; + } + + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/WeChatSubController.cs b/Blog.Core.Api/Controllers/WeChatSubController.cs new file mode 100644 index 00000000..d341c85f --- /dev/null +++ b/Blog.Core.Api/Controllers/WeChatSubController.cs @@ -0,0 +1,94 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Blog.Core.Common.Helper; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Controllers +{ + /// + /// WeChatSubController + /// + [Route("api/[controller]/[action]")] + [ApiController] + [Authorize(Permissions.Name)] + public partial class WeChatSubController : Controller + { + readonly IWeChatSubServices _WeChatSubServices; + /// + /// 构造函数 + /// + /// + public WeChatSubController(IWeChatSubServices iWeChatSubServices) + { + _WeChatSubServices = iWeChatSubServices; + } + /// + /// 获取 + /// + /// 分页条件 + /// + [HttpGet] + public async Task>> Get([FromQuery] PaginationModel pagination) + { + var data = await _WeChatSubServices.QueryPage(pagination); + return new MessageModel> { success = true, response = data}; + } + /// + /// 获取(id) + /// + /// 主键ID + /// + [HttpGet("{id}")] + public async Task> Get(string id) + { + var data = await _WeChatSubServices.QueryById(id); + return new MessageModel { success = true, response = data }; + } + /// + /// 添加 + /// + /// + [HttpPost] + public async Task> Post([FromBody] WeChatSub obj) + { + await _WeChatSubServices.Add(obj); + return new MessageModel { success = true}; + } + /// + /// 更新 + /// + /// + [HttpPut] + public async Task> Put([FromBody] WeChatSub obj) + { + await _WeChatSubServices.Update(obj); + return new MessageModel { success = true}; + } + /// + /// 删除 + /// + /// + [HttpDelete] + public async Task> Delete(string id) + { + await _WeChatSubServices.DeleteById(id); + return new MessageModel { success = true}; + } + /// + /// 批量删除 + /// + /// + [HttpDelete] + public async Task> BatchDelete(string ids) + { + var i = ids.Split(","); + await _WeChatSubServices.DeleteByIds(i); + return new MessageModel { success = true }; + } + + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Properties/launchSettings.json b/Blog.Core.Api/Properties/launchSettings.json index 9b02dcc0..09b07121 100644 --- a/Blog.Core.Api/Properties/launchSettings.json +++ b/Blog.Core.Api/Properties/launchSettings.json @@ -13,7 +13,7 @@ "commandName": "Project", "launchBrowser": true, "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "" + "ASPNETCORE_ENVIRONMENT": "Development" }, "applicationUrl": "http://localhost:9291" }, diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index 599d3760..12c30b19 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -107,7 +107,7 @@ public void ConfigureServices(IServiceCollection services) //{ // options.JsonSerializerOptions.PropertyNamingPolicy = null; //}) - //全局配置Json序列化处理 + //MVC全局配置Json序列化处理 .AddNewtonsoftJson(options => { //忽略循环引用 @@ -115,7 +115,7 @@ public void ConfigureServices(IServiceCollection services) //不使用驼峰样式的key options.SerializerSettings.ContractResolver = new DefaultContractResolver(); //设置时间格式 - //options.SerializerSettings.DateFormatString = "yyyy-MM-dd"; + options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; //忽略Model中为null的属性 //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; //设置本地时间而非UTC时间 diff --git a/Blog.Core.Api/appsettings.Development.json b/Blog.Core.Api/appsettings.Development.json new file mode 100644 index 00000000..077404aa --- /dev/null +++ b/Blog.Core.Api/appsettings.Development.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index c31755df..0d697707 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -1,5 +1,5 @@ { - "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 + "urls": "http://*:8081", //web服务端口,如果用IIS部署,把这个去掉 "Logging": { "LogLevel": { "Default": "Information", //加入Default否则log4net本地写入不了日志 diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv index a0f2eaef..9acf2b3c 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv @@ -1010,5 +1010,402 @@ "ModifyBy": null, "ModifyTime": "\/Date(1546272000000+0800)\/", "Id": 46 + }, + + { + "Id": "47", + "IsDeleted": 0, + "Name": "微信获取", + "LinkUrl": "\/api\/WeChatConfig\/get", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-22 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "48", + "IsDeleted": 0, + "Name": "微信客户批量删除", + "LinkUrl": "\/api\/WeChatCompany\/BatchDelete", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "49", + "IsDeleted": 0, + "Name": "微信客户删除", + "LinkUrl": "\/api\/WeChatCompany\/delete", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "50", + "IsDeleted": 0, + "Name": "微信客户获取", + "LinkUrl": "\/api\/WeChatCompany\/get", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "51", + "IsDeleted": 0, + "Name": "微信客户添加", + "LinkUrl": "\/api\/WeChatCompany\/post", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "52", + "IsDeleted": 0, + "Name": "微信客户更新", + "LinkUrl": "\/api\/WeChatCompany\/put", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "53", + "IsDeleted": 0, + "Name": "微信公众号批量删除", + "LinkUrl": "\/api\/WeChatConfig\/BatchDelete", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-25 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "54", + "IsDeleted": 0, + "Name": "微信公众号获取", + "LinkUrl": "\/api\/WeChatConfig\/get", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-22 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "55", + "IsDeleted": 0, + "Name": "获取公众号菜单设置", + "LinkUrl": "\/api\/WeChat\/GetMenu", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "ParentId": 0 + }, + { + "Id": "56", + "IsDeleted": 0, + "Name": "获取订阅用户", + "LinkUrl": "\/api\/WeChat\/GetSubUsers", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-23 16:20:30", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "ParentId": 0 + }, + { + "Id": "57", + "IsDeleted": 0, + "Name": "获取消息模板列表", + "LinkUrl": "\/api\/WeChat\/GetTemplate", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-08 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "ParentId": 0 + }, + { + "Id": "58", + "IsDeleted": 0, + "Name": "微信公众号更新", + "LinkUrl": "\/api\/WeChatConfig\/post", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-24 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "59", + "IsDeleted": 0, + "Name": "微信公众号添加", + "LinkUrl": "\/api\/WeChatConfig\/put", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-24 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 + }, + { + "Id": "60", + "IsDeleted": 0, + "Name": "刷新Token", + "LinkUrl": "\/api\/WeChat\/RefreshToken", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-30 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "ParentId": 0 + }, + { + "Id": "61", + "IsDeleted": 0, + "Name": "更新微信菜单设置", + "LinkUrl": "\/api\/WeChat\/UpdateMenu", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "ParentId": 0 + }, + { + "Id": "62", + "IsDeleted": 0, + "Name": "获取推送记录", + "LinkUrl": "\/api\/WeChatPushLog\/get", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-08 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "ParentId": 0 + }, + { + "Id": "63", + "IsDeleted": 0, + "Name": "获取绑定用户", + "LinkUrl": "\/api\/WeChatSub\/get", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-23 16:20:47", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-23 00:00:00", + "ParentId": 0 + }, + { + "Id": "64", + "IsDeleted": 0, + "Name": "微信公众号删除", + "LinkUrl": "\/api\/WeChatConfig\/delete", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-24 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "ParentId": 0 } ] diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv index 9054658f..81984e1b 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv @@ -1666,8 +1666,7 @@ "IsDeleted": 0, "Id": 82, "IsHide": 0 - } - , + }, { "Code": " ", "Name": "删除", @@ -1751,5 +1750,599 @@ "IsDeleted": 0, "Id": 86, "IsHide": 1 + }, + { + "Id": 87, + "Code": "-", + "Name": "微信公众号管理", + "IsButton": 0, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 3, + "Icon": "fa-weixin", + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-21 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-13 00:00:00", + "IsDeleted": 0, + "Pid": 0, + "Mid": 0 + }, + { + "Id": 88, + "Code": "\/WeChat\/Manager", + "Name": "微信列表", + "IsButton": 0, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 1, + "Icon": "fa-list", + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-21 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-30 00:00:00", + "IsDeleted": 0, + "Pid": 87, + "Mid": 0 + }, + { + "Id": 89, + "Code": "\/WeChat\/Company", + "Name": "微信客户", + "IsButton": 0, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": "2", + "Icon": "fa-address-book", + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-26 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-30 00:00:00", + "IsDeleted": 0, + "Pid": 87, + "Mid": 0 + }, + { + "Id": 90, + "Code": "\/WeChat\/Menu", + "Name": "微信菜单", + "IsButton": 0, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 3, + "Icon": "fa-sliders", + "Description": "微信菜单设置", + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-30 00:00:00", + "IsDeleted": 0, + "Pid": 87, + "Mid": 0 + }, + { + "Id": 91, + "Code": "\/WeChat\/Template", + "Name": "模板消息", + "IsButton": 0, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 4, + "Icon": "fa-comments-o", + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-08 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-30 00:00:00", + "IsDeleted": 0, + "Pid": 87, + "Mid": 0 + }, + { + "Id": 92, + "Code": "\/WeChat\/PushLog", + "Name": "推送记录", + "IsButton": 0, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 8, + "Icon": "fa-history", + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-08 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-30 00:00:00", + "IsDeleted": 0, + "Pid": 87, + "Mid": 0 + }, + { + "Id": 93, + "Code": "\/WeChat\/SubUser", + "Name": "订阅用户", + "IsButton": 0, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 6, + "Icon": "fa fa-user", + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-23 14:09:08", + "ModifyId": 8, + "ModifyBy": "test", + "ModifyTime": "2021-09-30 00:00:00", + "IsDeleted": 0, + "Pid": 87, + "Mid": 0 + }, + { + "Id": 94, + "Code": "\/WeChat\/BindUser", + "Name": "绑定用户", + "IsButton": 0, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 7, + "Icon": "fa fa-user-circle-o", + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-23 16:12:52", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-30 00:00:00", + "IsDeleted": 0, + "Pid": 87, + "Mid": 0 + }, + { + "Id": 95, + "Code": "\/WeChat\/SendMessage", + "Name": "文本消息", + "IsButton": 0, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 5, + "Icon": "fa fa-paper-plane", + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-24 09:05:50", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-30 00:00:00", + "IsDeleted": 0, + "Pid": 87, + "Mid": 0 + }, + { + "Id": 96, + "Code": " ", + "Name": "查询", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": "getWeChatAccount", + "OrderSort": "0", + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-22 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-17 00:00:00", + "IsDeleted": 0, + "Pid": 88, + "Mid": 54 + }, + { + "Id": 98, + "Code": " ", + "Name": "删除", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": "handleDel", + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-22 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-17 00:00:00", + "IsDeleted": 0, + "Pid": 88, + "Mid": 64 + }, + { + "Id": 99, + "Code": " ", + "Name": "新增", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": "handleAdd", + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-24 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-17 00:00:00", + "IsDeleted": 0, + "Pid": 88, + "Mid": 59 + }, + { + "Id": 100, + "Code": " ", + "Name": "编辑", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": "handleEdit", + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-24 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-17 00:00:00", + "IsDeleted": 0, + "Pid": 88, + "Mid": 58 + }, + { + "Id": 101, + "Code": " ", + "Name": "批量删除", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": "batchRemove", + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-25 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-17 00:00:00", + "IsDeleted": 0, + "Pid": 88, + "Mid": 53 + }, + { + "Id": 102, + "Code": " ", + "Name": "刷新Token", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": "handleRefreshWeChatToken", + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-03-30 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-17 00:00:00", + "IsDeleted": 0, + "Pid": 88, + "Mid": 60 + }, + { + "Id": 103, + "Code": " ", + "Name": "查询", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": null, + "Func": "getWeChatCompany", + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "IsDeleted": 0, + "Pid": 89, + "Mid": 50 + }, + { + "Id": 104, + "Code": " ", + "Name": "删除", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": null, + "Func": "handleDel", + "OrderSort": "0", + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "IsDeleted": 0, + "Pid": 89, + "Mid": 49 + }, + { + "Id": 105, + "Code": " ", + "Name": "批量删除", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": null, + "Func": "batchRemove", + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "IsDeleted": 0, + "Pid": 89, + "Mid": 48 + }, + { + "Id": 106, + "Code": " ", + "Name": "添加", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": null, + "Func": "handleAdd", + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "IsDeleted": 0, + "Pid": 89, + "Mid": 51 + }, + { + "Id": 107, + "Code": " ", + "Name": "编辑", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": null, + "Func": "handleEdit", + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-06 00:00:00", + "IsDeleted": 0, + "Pid": 89, + "Mid": 52 + }, + { + "Id": 108, + "Code": " ", + "Name": "获取菜单", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "IsDeleted": 0, + "Pid": 90, + "Mid": 55 + }, + { + "Id": 109, + "Code": " ", + "Name": "更新菜单", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-06 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "IsDeleted": 0, + "Pid": 90, + "Mid": 61 + }, + { + "Id": 110, + "Code": " ", + "Name": "获取消息模板", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-08 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "IsDeleted": 0, + "Pid": 91, + "Mid": 57 + }, + { + "Id": 111, + "Code": " ", + "Name": "获取推送记录", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-08 00:00:00", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "IsDeleted": 0, + "Pid": 92, + "Mid": 62 + }, + { + "Id": 112, + "Code": " ", + "Name": "获取订阅用户", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": null, + "Func": null, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-23 16:21:53", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2020-04-23 00:00:00", + "IsDeleted": 0, + "Pid": 93, + "Mid": 56 + }, + { + "Id": 113, + "Code": " ", + "Name": "获取绑定用户", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-23 16:22:11", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "IsDeleted": 0, + "Pid": 94, + "Mid": 63 + }, + { + "Id": 114, + "Code": " ", + "Name": "推送文字消息", + "IsButton": 1, + "IsHide": 0, + "IskeepAlive": 0, + "Func": null, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 8, + "CreateBy": "test", + "CreateTime": "2020-04-23 16:22:11", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "2021-09-29 00:00:00", + "IsDeleted": 0, + "Pid": 95, + "Mid": 0 } ] diff --git a/Blog.Core.Common/Helper/DynamicLinqFactory.cs b/Blog.Core.Common/Helper/DynamicLinqFactory.cs new file mode 100644 index 00000000..7673cc13 --- /dev/null +++ b/Blog.Core.Common/Helper/DynamicLinqFactory.cs @@ -0,0 +1,551 @@ +using RestSharp.Extensions; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Text; + +namespace Blog.Core.Common.Helper +{ + #region 动态linq帮助类,连接符号,运算符号 + + /// + /// 动态linq工厂 + /// + public static class DynamicLinqFactory + { + + /// + /// 生成lambd表达式(如:CompanyID != 1 & CompanyID == 1) + /// + /// + /// + /// + public static Expression> CreateLambda(string propertyStr) + { + // 设置自定义lanbd + // 定义 lanbd 种子(p=> xxxxxx)中的 p + if (string.IsNullOrWhiteSpace(propertyStr)) + return LinqHelper.True();//为空就返回空的表达式 + + var parameter = Expression.Parameter(typeof(TSource), "p"); + var strArr = SpiltStrings(propertyStr); + + + // 第一个判断条件,固定一个判断条件作为最左边 + Expression mainExpressin = ExpressionStudio(null, strArr.FirstOrDefault(x => x.LinkSymbol == LinkSymbol.Empty), parameter); + + // 将需要放置在最左边的判断条件从列表中去除,因为已经合成到表达式最左边了 + strArr.Remove(strArr.FirstOrDefault(x => x.LinkSymbol == LinkSymbol.Empty)); + + foreach (var x in strArr) + { + mainExpressin = ExpressionStudio(mainExpressin, x, parameter); + } + + return mainExpressin.ToLambda>(parameter); + } + + /// + /// 组合条件判断表达式 + /// + /// 左边的表达式 + /// + /// + /// + public static Expression ExpressionStudio(Expression left, DynamicLinqHelper DynamicLinq, ParameterExpression key) + { + Expression mainExpression = key; + + var properties = DynamicLinq.Left.Split('.'); + + // 从1开始,是不想用自定义种子,外层种子已经定义好了 + // 暂时也不会有多个自定义种子,先这样 + for (var i = 0; i < properties.Length; i++) + { + mainExpression = mainExpression.Property(properties[i]); + } + + left = left == null + // 如果左边表达式为空,则当前的表达式就为最左边 + ? ChangeOperationSymbol(DynamicLinq.OperationSymbol, mainExpression, DynamicLinq.Right) + // 如果不为空,则将当前的表达式连接到左边 + : ChangeLinkSymbol(DynamicLinq.LinkSymbol, left, ChangeOperationSymbol(DynamicLinq.OperationSymbol, mainExpression, DynamicLinq.Right)); + return left; + } + + /// + /// 将字符串装换成动态帮助类(内含递归) + /// + public static List SpiltStrings(string propertyStr) + { + // 定义返回用List + var outList = new List(); + + // 当最后已经没有连接运算符的时候,进入该条件 + if (!propertyStr.Contains("&") & !propertyStr.Contains("|")) + { + // 当前的条件是不具备连接符号的 + var lastStr = propertyStr.Trim().Split(' '); + outList.Add(new DynamicLinqHelper + { + LinkSymbol = LinkSymbol.Empty, + Left = lastStr[0], + Right = lastStr[2], + OperationSymbol = ChangeOperationSymbol(lastStr[1]) + }); + return outList; + } + // 判断当前 & | 哪个符号在最后一个判断逻辑内 + var key = propertyStr.LastIndexOf('&') > propertyStr.LastIndexOf('|') ? '&' : '|'; + + var nowStrArr = propertyStr.Substring(propertyStr.LastIndexOf(key)).Trim().Split(' '); + + outList.Add(new DynamicLinqHelper + { + LinkSymbol = ChangeLinkSymbol(nowStrArr[0]), + Left = nowStrArr[1], + OperationSymbol = ChangeOperationSymbol(nowStrArr[2]), + Right = nowStrArr[3] + }); + // 将剩余部分继续切割 + propertyStr = propertyStr.Substring(0, propertyStr.LastIndexOf(key)).Trim(); + // 递归 由后彺前 + outList.AddRange(SpiltStrings(propertyStr)); + + return outList; + } + + /// + /// 将字符串符号转成运算枚举符号 + /// + public static LinkSymbol ChangeLinkSymbol(string str) + { + // 这里判断链接符号 + // 当链接符号为Empty,则说明当前对象为表达式的最左边 + // 如果一个表达式出现两次链接符号为空,则说明输入的字符串格式有问题 + switch (str) + { + case "|": + return LinkSymbol.OrElse; + case "&": + return LinkSymbol.AndAlso; + default: + return LinkSymbol.Empty; + } + } + + /// + /// 将运算枚举符号转成具体使用方法 + /// + public static Expression ChangeLinkSymbol(LinkSymbol Symbol, Expression left, Expression right) + { + switch (Symbol) + { + case LinkSymbol.OrElse: + return left.OrElse(right); + case LinkSymbol.AndAlso: + return left.AndAlso(right); + default: + return left; + } + } + + /// + /// 将字符串符号转成运算枚举符号 + /// + public static OperationSymbol ChangeOperationSymbol(string str) + { + switch (str) + { + case "<": + return OperationSymbol.LessThan; + case "<=": + return OperationSymbol.LessThanOrEqual; + case ">": + return OperationSymbol.GreaterThan; + case ">=": + return OperationSymbol.GreaterThanOrEqual; + case "==": + case "=": + return OperationSymbol.Equal; + case "!=": + return OperationSymbol.NotEqual; + case "contains": + case "like": + return OperationSymbol.Contains; + } + throw new Exception("OperationSymbol IS NULL"); + } + + /// + /// 将运算枚举符号转成具体使用方法 + /// + public static Expression ChangeOperationSymbol(OperationSymbol symbol, Expression key, object right) + { + // 将右边数据类型强行转换成左边一样的类型 + // 两者如果Type不匹配则无法接下去的运算操作,抛出异常 + object newTypeRight; + if (right == null || string.IsNullOrEmpty(right.ToString()) || right.ToString() == "null") + newTypeRight = null; + else + newTypeRight = Convert.ChangeType(right, key.Type); + + // 根据当前枚举类别判断使用那种比较方法 + switch (symbol) + { + case OperationSymbol.Equal: + return key.Equal(Expression.Constant(newTypeRight)); + case OperationSymbol.GreaterThan: + { + if (key.Type == typeof(string)) + return key.Contains(Expression.Constant(newTypeRight)); //对string 特殊处理 由于string + else + return key.GreaterThan(Expression.Constant((newTypeRight))); + } + case OperationSymbol.GreaterThanOrEqual: + { + if (key.Type == typeof(string)) + return key.Contains(Expression.Constant(newTypeRight, typeof(string))); + else + return key.GreaterThanOrEqual(Expression.Constant(newTypeRight)); + } + + case OperationSymbol.LessThan: + { + if (key.Type == typeof(string)) + return key.Contains(Expression.Constant(newTypeRight, typeof(string))); + else + return key.LessThan(Expression.Constant((newTypeRight))); + } + case OperationSymbol.LessThanOrEqual: + { + if (key.Type == typeof(string)) + return key.Contains(Expression.Constant(newTypeRight, typeof(string))); + else + return key.LessThanOrEqual(Expression.Constant((newTypeRight))); + } + case OperationSymbol.NotEqual: + return key.NotEqual(Expression.Constant(newTypeRight)); + case OperationSymbol.Contains: + return key.Contains(Expression.Constant(newTypeRight)); + } + throw new Exception("OperationSymbol IS NULL"); + } + } + + /// + /// 动态linq帮助类 + /// + public class DynamicLinqHelper + { + [Display(Name = "左")] + public string Left { get; set; } + [Display(Name = "右")] + public string Right { get; set; } + + [Display(Name = "运算符")] + public OperationSymbol OperationSymbol { get; set; } + + [Display(Name = "连接符")] + public LinkSymbol LinkSymbol { get; set; } + } + + /// + /// 连接符枚举(将来可能会包含 括号 ) + /// + public enum LinkSymbol + { + [Display(Name = "&&")] + AndAlso, + [Display(Name = "||")] + OrElse, + [Display(Name = "空")] + Empty + } + + /// + /// 常用比较运算符 > , >= , == , < , <= , != ,Contains + /// + public enum OperationSymbol + { + [Display(Name = "Contains")] + Contains, + [Display(Name = ">")] + GreaterThan, + [Display(Name = ">=")] + GreaterThanOrEqual, + [Display(Name = "<")] + LessThan, + [Display(Name = "<=")] + LessThanOrEqual, + [Display(Name = "==")] + Equal, + [Display(Name = "!=")] + NotEqual + } + + #endregion + + /// + /// Linq扩展 + /// + public static class ExpressionExtensions + { + #region 常用扩展方法 + + /// + /// 调用内部方法 + /// + public static Expression Call(this Expression instance, string methodName, params Expression[] arguments) + { + if(instance.Type == typeof(string)) + return Expression.Call(instance, instance.Type.GetMethod(methodName,new Type[] { typeof(string)}), arguments); //修复string contains 出现的问题 Ambiguous match found. + else + return Expression.Call(instance, instance.Type.GetMethod(methodName), arguments); + } + + /// + /// 获取内部成员 + /// + public static Expression Property(this Expression expression, string propertyName) + { + // Todo:左边条件如果是dynamic, + // 则Expression.Property无法获取子内容 + // 报错在这里,由于expression内的对象为Object,所以无法解析到 + // var x = (expression as IQueryable).ElementType; + return Expression.Property(expression, propertyName); + } + + /// + /// 转Lambda + /// + public static Expression ToLambda(this Expression body, + params ParameterExpression[] parameters) + { + return Expression.Lambda(body, parameters); + } + + #endregion + + #region 常用运算符 [ > , >= , == , < , <= , != , || , && ] + + /// + /// && + /// + public static Expression AndAlso(this Expression left, Expression right) + { + return Expression.AndAlso(left, right); + } + + /// + /// || + /// + public static Expression OrElse(this Expression left, Expression right) + { + return Expression.OrElse(left, right); + } + + /// + /// Contains + /// + public static Expression Contains(this Expression left, Expression right) + { + return left.Call("Contains", right); + } + + /// + /// > + /// + public static Expression GreaterThan(this Expression left, Expression right) + { + return Expression.GreaterThan(left, right); + } + + /// + /// >= + /// + public static Expression GreaterThanOrEqual(this Expression left, Expression right) + { + return Expression.GreaterThanOrEqual(left, right); + } + + /// + /// < + /// + public static Expression LessThan(this Expression left, Expression right) + { + return Expression.LessThan(left, right); + } + + /// + /// <= + /// + public static Expression LessThanOrEqual(this Expression left, Expression right) + { + return Expression.LessThanOrEqual(left, right); + } + + /// + /// == + /// + public static Expression Equal(this Expression left, Expression right) + { + return Expression.Equal(left, right); + } + + /// + /// != + /// + public static Expression NotEqual(this Expression left, Expression right) + { + return Expression.NotEqual(left, right); + } + + #endregion + } + + /// + /// Queryable扩展 + /// + public static class QueryableExtensions + { + #region 自定义扩展Queryable + + /// + /// Where扩展 + /// + public static IEnumerable IWhere(this IEnumerable source, string linqStr) + { + return source.Where(DynamicLinqFactory.CreateLambda(linqStr).Compile()); + } + + /// + /// FirstOrDefault扩展 + /// + public static TSource IFirstOrDefault(this IEnumerable source, string linqStr) + { + return source.FirstOrDefault(DynamicLinqFactory.CreateLambda(linqStr).Compile()); + } + + /// + /// Count扩展 + /// + public static Int32 ICount(this IEnumerable source, string linqStr) + { + return source.Count(DynamicLinqFactory.CreateLambda(linqStr).Compile()); + } + + /// + /// 自定义排序 + /// + public static IOrderedQueryable ISort(this IQueryable source, string orderByProperty, bool asc) + { + string command = asc ? "OrderBy" : "OrderByDescending"; + var type = typeof(TSource); + var property = type.GetProperty(orderByProperty); + var parameter = Expression.Parameter(type, "p"); + var propertyAccess = Expression.MakeMemberAccess(parameter, property); + var orderByExpression = Expression.Lambda(propertyAccess, parameter); + var resultExpression = Expression.Call(typeof(Queryable), command, new Type[] { type, property.PropertyType }, source.Expression, Expression.Quote(orderByExpression)); + return (IOrderedQueryable)source.Provider.CreateQuery(resultExpression); + } + + /// + /// 自定义分页 + /// + /// + /// + /// + /// + /// + public static IQueryable IPaging(this IQueryable source, int nowPage, int pageSize) + { + return source.ISkip((nowPage - 1) * pageSize).ITake(pageSize); + } + + /// + /// 自定义Skip + /// + public static IQueryable ISkip(this IQueryable source, int count) + { + return source.Provider.CreateQuery(Expression.Call( + // 类别 + typeof(Queryable), + // 调用的方法 + "Skip", + // 元素类别 + new Type[] { source.ElementType }, + // 调用的表达树 + source.Expression, + // 参数 + Expression.Constant(count))); + } + + /// + /// 自定义Take + /// + public static IQueryable ITake(this IQueryable source, int count) + { + return source.Provider.CreateQuery(Expression.Call( + // 类别 + typeof(Queryable), + // 调用的方法 + "Take", + // 元素类别 + new Type[] { source.ElementType }, + // 调用的表达树 + source.Expression, + // 参数 + Expression.Constant(count))); + } + + /// + /// 自定义去重复 + /// + public static IEnumerable IDistinctBy(this IEnumerable source, Func keySelector) + { + var seenKeys = new HashSet(); + return source.Where(element => seenKeys.Add(keySelector(element))); + } + + /// + /// 动态赋值 + /// + public static void CopyTo(this object source, T target) where T : class, new() + { + if (source == null) + return; + + if (target == null) + { + target = new T(); + } + + foreach (var property in target.GetType().GetProperties()) + { + // 这里可以判断一下当前属性值是否为空的 source.GetType().GetProperty(property.Name).GetValue(source, null) + target.GetType().InvokeMember(property.Name, BindingFlags.SetProperty, null, target, new object[] { source.GetType().GetProperty(property.Name).GetValue(source, null) }); + } + } + + /// + /// 移除特殊字段数据 + /// + public static void RemoveSpecialPropertyValue(this object source) + { + var properties = source.GetType().GetProperties(); + foreach (var x in properties) + { + if (x.GetAccessors().Any(y => y.IsVirtual)) + { + source.GetType().GetProperty(x.Name).SetValue(source, null, null); + } + } + } + + #endregion + } +} diff --git a/Blog.Core.Common/Helper/HttpHelper.cs b/Blog.Core.Common/Helper/HttpHelper.cs index 54d56613..ba5ef48a 100644 --- a/Blog.Core.Common/Helper/HttpHelper.cs +++ b/Blog.Core.Common/Helper/HttpHelper.cs @@ -1,5 +1,6 @@ using System.IO; using System.Net; +using System.Net.Http; using System.Text; using System.Threading.Tasks; @@ -50,7 +51,7 @@ public static string Post(string serviceAddress, string strContent = null) } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string encoding = response.ContentEncoding; - if (encoding.Length < 1) + if (string.IsNullOrWhiteSpace(encoding)) { encoding = "UTF-8"; //默认编码 } @@ -75,14 +76,16 @@ public static async Task PostAsync(string serviceAddress, string strCont } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string encoding = response.ContentEncoding; - if (encoding.Length < 1) + if (string.IsNullOrWhiteSpace(encoding)) { encoding = "UTF-8"; //默认编码 } StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)); string retString = await reader.ReadToEndAsync(); return retString; - } + } + + } diff --git a/Blog.Core.Common/Helper/JsonConfigUtils.cs b/Blog.Core.Common/Helper/JsonConfigUtils.cs index b49024b3..38ceb46e 100644 --- a/Blog.Core.Common/Helper/JsonConfigUtils.cs +++ b/Blog.Core.Common/Helper/JsonConfigUtils.cs @@ -99,7 +99,7 @@ public ConfigurationManager(IConfigurationRoot _config) if (value == null) value = defaultValue; } - catch (Exception ex) + catch (Exception) { value = defaultValue; } diff --git a/Blog.Core.Common/Helper/LinqHelper.cs b/Blog.Core.Common/Helper/LinqHelper.cs new file mode 100644 index 00000000..de472150 --- /dev/null +++ b/Blog.Core.Common/Helper/LinqHelper.cs @@ -0,0 +1,31 @@ +using System; +using System.Linq.Expressions; + +namespace Blog.Core.Common.Helper +{ + /// + /// Linq操作帮助类 + /// + public static class LinqHelper + { + /// + /// 创建初始条件为True的表达式 + /// + /// + /// + public static Expression> True() + { + return x => true; + } + + /// + /// 创建初始条件为False的表达式 + /// + /// + /// + public static Expression> False() + { + return x => false; + } + } +} diff --git a/Blog.Core.Common/Helper/MD5Hepler.cs b/Blog.Core.Common/Helper/MD5Hepler.cs index 984771bd..2f87cba2 100644 --- a/Blog.Core.Common/Helper/MD5Hepler.cs +++ b/Blog.Core.Common/Helper/MD5Hepler.cs @@ -62,6 +62,37 @@ public static string MD5Encrypt64(string password) byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password)); return Convert.ToBase64String(s); } - + /// + /// Sha1加密 + /// + /// 要加密的字符串 + /// 加密后的十六进制的哈希散列(字符串) + public static string Sha1(string str, string format = "x2") + { + var buffer = Encoding.UTF8.GetBytes(str); + var data = SHA1.Create().ComputeHash(buffer); + var sb = new StringBuilder(); + foreach (var t in data) + { + sb.Append(t.ToString(format)); + } + return sb.ToString(); + } + /// + /// Sha256加密 + /// + /// 要加密的字符串 + /// 加密后的十六进制的哈希散列(字符串) + public static string Sha256(string str, string format = "x2") + { + var buffer = Encoding.UTF8.GetBytes(str); + var data = SHA256.Create().ComputeHash(buffer); + var sb = new StringBuilder(); + foreach (var t in data) + { + sb.Append(t.ToString(format)); + } + return sb.ToString(); + } } } diff --git a/Blog.Core.Common/Helper/WeChatHelper.cs b/Blog.Core.Common/Helper/WeChatHelper.cs new file mode 100644 index 00000000..22cdaaf1 --- /dev/null +++ b/Blog.Core.Common/Helper/WeChatHelper.cs @@ -0,0 +1,312 @@ +using Blog.Core.Model.ViewModels; +using System; +using System.Collections.Generic; +using System.IO; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Helper +{ + /// + /// 微信公众号帮助类 + /// + public static class WeChatHelper + { + /// + /// 新增素材/上传多媒体文件(临时) + /// http://mp.weixin.qq.com/wiki/5/963fc70b80dc75483a271298a76a8d59.html + /// 1.上传的媒体文件限制: + ///图片(image) : 1MB,支持JPG格式 + ///语音(voice):1MB,播放长度不超过60s,支持MP4格式 + ///视频(video):10MB,支持MP4格式 + ///缩略图(thumb):64KB,支持JPG格式 + ///2.媒体文件在后台保存时间为3天,即3天后media_id失效 + /// + /// + /// 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb) + /// 文件名 + /// 文件输入流 + /// media_id + public async static Task UploadMediaTemp(string token, string type, string fileName, Stream inputStream) + { + var url = $"http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={token}&type={type}"; + using var client = new HttpClient(); + using HttpContent content = new StreamContent(inputStream); + var httpResponse = await client.PostAsync(url, content); + var txt = await httpResponse.Content.ReadAsStringAsync(); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 新增素材/上传多媒体文件(永久) + /// http://mp.weixin.qq.com/wiki/5/963fc70b80dc75483a271298a76a8d59.html + /// 1.上传的媒体文件限制: + ///图片(image) : 1MB,支持JPG格式 + ///语音(voice):1MB,播放长度不超过60s,支持MP4格式 + ///视频(video):10MB,支持MP4格式 + ///缩略图(thumb):64KB,支持JPG格式 + /// + /// + /// 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb) + /// 文件名 + /// 文件输入流 + /// media_id + public async static Task UploadMedia(string token, string type, string fileName, Stream inputStream) + { + var url = $"https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={token}&type={type}"; + using var client = new HttpClient(); + using HttpContent content = new StreamContent(inputStream); + var httpResponse = await client.PostAsync(url, content); + var txt = await httpResponse.Content.ReadAsStringAsync(); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 通过绑定票据获取公众号关注二维码 + /// + /// + /// + public async static Task GetQRCodePicture(string ticket) + { + string url = $"https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={ticket}"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 获取临时关注二维码 + /// + /// The token. + /// The post data. + public async static Task GetQRCode(string token, string jsonData) + { + string url = $"https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={token}"; + var txt = await HttpHelper.PostAsync(url, jsonData); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 获取关注的公众号用户openid(获取所有OpenID) + /// + /// The token. + /// 是否递归获取所有用户的 + /// List<System.String>. + public async static Task GetUsers(string token,bool isGetAll=false) + { + string url = $"https://api.weixin.qq.com/cgi-bin/user/get?access_token={token}"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + if (data.data == null) data.data = new WeChatOpenIDsDto(); + if(!string.IsNullOrEmpty(data.next_openid)) + await GetUsers(token, data.next_openid, data.data.openid); + return data; + } + /// + /// 获取关注的公众号用户openid(递归) + /// + /// The token. + /// The next user. + /// The users. + public async static Task GetUsers(string token, string nextUser, List users) + { + string url = $"https://api.weixin.qq.com/cgi-bin/user/get?access_token={token}&next_openid={nextUser}"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + if (data.data != null && data.data.openid != null) + users.AddRange(data.data.openid); + if (!string.IsNullOrEmpty(data.next_openid)) + await GetUsers(token, data.next_openid, data.data.openid); + } + /// + /// 获取菜单内容(获取菜单有menu外层,提交菜单不需要menu外层) + /// + /// The token. + /// System.String. + public async static Task GetMenu(string token) + { + string url = $"https://api.weixin.qq.com/cgi-bin/menu/get?access_token={token}"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 转换微信菜单按钮为事件的按钮 + /// + public static void ConverMenuButtonForEvent(WeChatApiDto weChatApiDto) + { + foreach (var item in weChatApiDto?.menu?.button) + { + if (item.key.ObjToString().Equals("event") || item.type.ObjToString().Equals("event")) + { + var temp = item.type; + item.type = item.key; + item.key = temp; + } + if (item.sub_button != null) + { + ConverMenuButtonForEvent(item.sub_button); + } + } + } + /// + /// 转换微信菜单按钮为事件的按钮 + /// + public static void ConverMenuButtonForEvent(WeChatMenuButtonDto[] weChatMenuButtonDto) + { + foreach (var item in weChatMenuButtonDto) + { + if (item.key.ObjToString().Equals("event") || item.type.ObjToString().Equals("event")) + { + var temp = item.type; + item.type = item.key; + item.key = temp; + } + if (item.sub_button != null) + { + ConverMenuButtonForEvent(item.sub_button); + } + } + } + /// + /// 设置菜单内容(设置菜单不需要menu外层) + /// + /// The token. + /// The json menu. + /// System.String. + public async static Task SetMenu(string token, string jsonMenu) + { + string url = $"https://api.weixin.qq.com/cgi-bin/menu/create?access_token={token}"; + var txt = await HttpHelper.PostAsync(url, jsonMenu); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 删除菜单内容 + /// + /// The token. + /// true if XXXX, false otherwise. + public async static Task DeleteMenu(string token) + { + string url = $"https://api.weixin.qq.com/cgi-bin/menu/delete?access_token={token}"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 发送普通消息(群发所有人,单人发送也可以) + /// + /// The token. + /// The json data. + /// System.String. + public async static Task SendMsgToAll(string token, string jsonData) + { + string url = $"https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token={token}"; + var txt = await HttpHelper.PostAsync(url, jsonData); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 发送普通消息(单个人-24小时内用户跟微信公众号有互动才会推送成功) + /// + /// The token. + /// The json data. + /// System.String. + public async static Task SendMsg(string token, string jsonData) + { + string url = $"https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={token}"; + var txt = await HttpHelper.PostAsync(url, jsonData); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 发送卡片消息模板 + /// + /// The token. + /// The json data. + /// true if XXXX, false otherwise. + public async static Task SendCardMsg(string token, string jsonData) + { + string url = $"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={token}"; + var txt = await HttpHelper.PostAsync(url, jsonData); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 拉取普通access_token + /// + /// appid + /// appsecret + /// 返回token + public async static Task GetToken(string appid, string appsecret) + { + string url = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={appsecret}"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 获取微信服务器IP列表 + /// + /// The token. + /// System.String. + public async static Task GetWechatIP(string token) + { + string url = $"https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token={token}"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// openid获取微信用户信息 + /// + /// The token. + /// The openid. + /// Dictionary<System.String, System.Object>. + public async static Task GetUserInfo(string token,string openid) + { + string url = $"https://api.weixin.qq.com/cgi-bin/user/info?access_token={token}&openid={openid}&lang=zh_CN"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// openid获取微信用户信息 + /// + /// The openid. + /// The access token. + public async static Task GetUserInfoTwo(string token,string openid) + { + string url = $"https://api.weixin.qq.com/sns/userinfo?access_token={token}&openid={openid}&lang=zh_CN"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// code换取用户openID + /// + /// The appid. + /// The appsecret. + /// The code. + /// Dictionary<System.String, System.Object>. + public async static Task GetOpenidByCode(string appid, string appsecret, string code) + { + string url = $"https://api.weixin.qq.com/sns/oauth2/access_token?appid={appid}&secret={appsecret}&code={code}&grant_type=authorization_code"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + /// + /// 获取模板消息 + /// + /// The token. + /// Dictionary<System.String, System.Object>. + public async static Task GetTemplate(string token) + { + string url = $"https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token={token}"; + var txt = await HttpHelper.GetAsync(url); + var data = JsonHelper.ParseFormByJson(txt); + return data; + } + } +} diff --git a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs index 83788535..c3d15f54 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs @@ -13,7 +13,7 @@ namespace Blog.Core.Extensions /// public static class AppConfigSetup { - public static void AddAppConfigSetup(this IServiceCollection services, IWebHostEnvironment env) + public static void AddAppConfigSetup(this IServiceCollection services, IHostEnvironment env) { if (services == null) throw new ArgumentNullException(nameof(services)); diff --git a/Blog.Core.IServices/BASE/IBaseServices.cs b/Blog.Core.IServices/BASE/IBaseServices.cs index 1797786a..dbc242c1 100644 --- a/Blog.Core.IServices/BASE/IBaseServices.cs +++ b/Blog.Core.IServices/BASE/IBaseServices.cs @@ -57,6 +57,7 @@ Task> QueryMuch( Expression> joinExpression, Expression> selectExpression, Expression> whereLambda = null) where T : class, new(); + Task> QueryPage(PaginationModel pagination); } } diff --git a/Blog.Core.IServices/IWeChatCompanyServices.cs b/Blog.Core.IServices/IWeChatCompanyServices.cs new file mode 100644 index 00000000..b47ac453 --- /dev/null +++ b/Blog.Core.IServices/IWeChatCompanyServices.cs @@ -0,0 +1,16 @@ +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using System.Threading.Tasks; + +namespace Blog.Core.IServices +{ + /// + /// IWeChatCompanyServices + /// + public interface IWeChatCompanyServices : IBaseServices + { + + } +} \ No newline at end of file diff --git a/Blog.Core.IServices/IWeChatConfigServices.cs b/Blog.Core.IServices/IWeChatConfigServices.cs new file mode 100644 index 00000000..68f9f61c --- /dev/null +++ b/Blog.Core.IServices/IWeChatConfigServices.cs @@ -0,0 +1,102 @@ +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using System.Threading.Tasks; + +namespace Blog.Core.IServices +{ + /// + /// IWeChatConfigServices + /// + public interface IWeChatConfigServices :IBaseServices + { + /// + /// 获取可用的微信token + /// + /// + /// + Task> GetToken(string id); + /// + /// 刷新微信token + /// + /// + /// + Task> RefreshToken(string id); + /// + /// 获取模板信息 + /// + /// + /// + Task> GetTemplate(string id); + /// + /// 获取菜单 + /// + /// + /// + Task> GetMenu(string id); + /// + /// 获取订阅用户 + /// + /// + /// + /// + Task> GetSubUser(string id,string openid); + /// + /// 获取订阅用户列表 + /// + /// + Task> GetSubUsers(string id); + /// + /// 处理微信事件 + /// + /// + /// + Task HandleWeChat(WeChatXMLDto weChat); + /// + /// 微信验证入库 + /// + /// + /// + /// + + Task Valid(WeChatValidDto validDto,string body); + /// + /// 获取绑定二维码 + /// + /// + /// + Task> GetQRBind(WeChatUserInfo info); + /// + /// 推送卡片消息(绑定用户) + /// + /// + /// + /// + Task> PushCardMsg(WeChatCardMsgDataDto msg,string ip); + /// + /// 推送文本消息(绑定或订阅) + /// + /// + /// + Task> PushTxtMsg(WeChatPushTestDto msg); + /// + /// 更新菜单 + /// + /// + /// + Task> UpdateMenu(WeChatApiDto menu); + /// + /// 通过绑定用户获取微信用户信息 + /// + /// + /// + Task> GetBindUserInfo(WeChatUserInfo info); + /// + /// 解除绑定用户 + /// + /// + /// + Task> UnBind(WeChatUserInfo info); + } +} \ No newline at end of file diff --git a/Blog.Core.IServices/IWeChatPushLogServices.cs b/Blog.Core.IServices/IWeChatPushLogServices.cs new file mode 100644 index 00000000..00632097 --- /dev/null +++ b/Blog.Core.IServices/IWeChatPushLogServices.cs @@ -0,0 +1,16 @@ +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using System.Threading.Tasks; + +namespace Blog.Core.IServices +{ + /// + /// IWeChatPushLogServices + /// + public interface IWeChatPushLogServices : IBaseServices + { + + } +} \ No newline at end of file diff --git a/Blog.Core.IServices/IWeChatSubServices.cs b/Blog.Core.IServices/IWeChatSubServices.cs new file mode 100644 index 00000000..3ad954d2 --- /dev/null +++ b/Blog.Core.IServices/IWeChatSubServices.cs @@ -0,0 +1,16 @@ +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using System.Threading.Tasks; + +namespace Blog.Core.IServices +{ + /// + /// IWeChatSubServices + /// + public interface IWeChatSubServices : IBaseServices + { + + } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/Advertisement.cs b/Blog.Core.Model/Models/Advertisement.cs index 568a0c13..c2babd74 100644 --- a/Blog.Core.Model/Models/Advertisement.cs +++ b/Blog.Core.Model/Models/Advertisement.cs @@ -9,25 +9,25 @@ public class Advertisement : RootEntityTkey /// /// 广告图片 /// - [SugarColumn(Length = 512, IsNullable = true, ColumnDataType = "nvarchar")] + [SugarColumn(Length = 512, IsNullable = true)] public string ImgUrl { get; set; } /// /// 广告标题 /// - [SugarColumn(Length = 64, IsNullable = true, ColumnDataType = "nvarchar")] + [SugarColumn(Length = 64, IsNullable = true)] public string Title { get; set; } /// /// 广告链接 /// - [SugarColumn(Length = 256, IsNullable = true, ColumnDataType = "nvarchar")] + [SugarColumn(Length = 256, IsNullable = true)] public string Url { get; set; } /// /// 备注 /// - [SugarColumn(Length = 2000, IsNullable = true, ColumnDataType = "nvarchar")] + [SugarColumn(Length = 2000, IsNullable = true)] public string Remark { get; set; } /// diff --git a/Blog.Core.Model/Models/BlogArticle.cs b/Blog.Core.Model/Models/BlogArticle.cs index 19235dae..52176190 100644 --- a/Blog.Core.Model/Models/BlogArticle.cs +++ b/Blog.Core.Model/Models/BlogArticle.cs @@ -17,25 +17,25 @@ public class BlogArticle /// /// 创建人 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 600, IsNullable = true)] + [SugarColumn(Length = 600, IsNullable = true)] public string bsubmitter { get; set; } /// /// 标题blog /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 256, IsNullable = true)] + [SugarColumn(Length = 256, IsNullable = true)] public string btitle { get; set; } /// /// 类别 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string bcategory { get; set; } /// /// 内容 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string bcontent { get; set; } /// @@ -60,7 +60,7 @@ public class BlogArticle /// /// 备注 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string bRemark { get; set; } /// diff --git a/Blog.Core.Model/Models/Guestbook.cs b/Blog.Core.Model/Models/Guestbook.cs index ee315721..d1f671c0 100644 --- a/Blog.Core.Model/Models/Guestbook.cs +++ b/Blog.Core.Model/Models/Guestbook.cs @@ -15,29 +15,29 @@ public class Guestbook:RootEntityTkey /// public DateTime createdate { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string username { get; set; } /// 手机 /// /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string phone { get; set; } /// qq /// /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string QQ { get; set; } /// 留言内容 /// /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string body { get; set; } /// ip地址 /// /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string ip { get; set; } /// 是否显示在前台,0否1是 diff --git a/Blog.Core.Model/Models/ModulePermission.cs b/Blog.Core.Model/Models/ModulePermission.cs index 6d1a9ea8..74252009 100644 --- a/Blog.Core.Model/Models/ModulePermission.cs +++ b/Blog.Core.Model/Models/ModulePermission.cs @@ -23,7 +23,7 @@ public class ModulePermission : ModulePermissionRoot /// /// 创建者 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string CreateBy { get; set; } /// /// 创建时间 @@ -38,7 +38,7 @@ public class ModulePermission : ModulePermissionRoot /// /// 修改者 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string ModifyBy { get; set; } /// ///修改时间 diff --git a/Blog.Core.Model/Models/Modules.cs b/Blog.Core.Model/Models/Modules.cs index 2ecb21f5..b62c0a47 100644 --- a/Blog.Core.Model/Models/Modules.cs +++ b/Blog.Core.Model/Models/Modules.cs @@ -25,37 +25,37 @@ public Modules() /// /// 名称 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string Name { get; set; } /// /// 菜单链接地址 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = true)] + [SugarColumn(Length = 100, IsNullable = true)] public string LinkUrl { get; set; } /// /// 区域名称 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string Area { get; set; } /// /// 控制器名称 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string Controller { get; set; } /// /// Action名称 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string Action { get; set; } /// /// 图标 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = true)] + [SugarColumn(Length = 100, IsNullable = true)] public string Icon { get; set; } /// /// 菜单编号 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 10, IsNullable = true)] + [SugarColumn(Length = 10, IsNullable = true)] public string Code { get; set; } /// /// 排序 @@ -64,7 +64,7 @@ public Modules() /// /// /描述 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = true)] + [SugarColumn(Length = 100, IsNullable = true)] public string Description { get; set; } /// /// 是否是右侧菜单 @@ -82,7 +82,7 @@ public Modules() /// /// 创建者 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string CreateBy { get; set; } /// /// 创建时间 @@ -97,7 +97,7 @@ public Modules() /// /// 修改者 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = true)] + [SugarColumn(Length = 100, IsNullable = true)] public string ModifyBy { get; set; } /// /// 修改时间 diff --git a/Blog.Core.Model/Models/OperateLog.cs b/Blog.Core.Model/Models/OperateLog.cs index 7f60dc3d..5d9cfe16 100644 --- a/Blog.Core.Model/Models/OperateLog.cs +++ b/Blog.Core.Model/Models/OperateLog.cs @@ -17,27 +17,27 @@ public class OperateLog : RootEntityTkey /// /// 区域名 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string Area { get; set; } /// /// 区域控制器名 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string Controller { get; set; } /// /// Action名称 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string Action { get; set; } /// /// IP地址 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string IPAddress { get; set; } /// /// 描述 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string Description { get; set; } /// /// 登录时间 @@ -47,7 +47,7 @@ public class OperateLog : RootEntityTkey /// /// 登录名称 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string LoginName { get; set; } /// /// 用户ID diff --git a/Blog.Core.Model/Models/PasswordLib.cs b/Blog.Core.Model/Models/PasswordLib.cs index 5164085e..a5e458d5 100644 --- a/Blog.Core.Model/Models/PasswordLib.cs +++ b/Blog.Core.Model/Models/PasswordLib.cs @@ -18,13 +18,13 @@ public class PasswordLib [SugarColumn(IsNullable = true)] public bool? IsDeleted { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string plURL { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = true)] + [SugarColumn(Length = 100, IsNullable = true)] public string plPWD { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string plAccountName { get; set; } [SugarColumn(IsNullable = true)] @@ -33,10 +33,10 @@ public class PasswordLib [SugarColumn(IsNullable = true)] public int? plErrorCount { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string plHintPwd { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string plHintquestion { get; set; } [SugarColumn(IsNullable = true)] @@ -48,7 +48,7 @@ public class PasswordLib [SugarColumn(IsNullable = true)] public DateTime? plLastErrTime { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string test { get; set; } diff --git a/Blog.Core.Model/Models/Permission.cs b/Blog.Core.Model/Models/Permission.cs index f20e5033..a8240d1c 100644 --- a/Blog.Core.Model/Models/Permission.cs +++ b/Blog.Core.Model/Models/Permission.cs @@ -18,12 +18,12 @@ public Permission() /// /// 菜单执行Action名 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string Code { get; set; } /// /// 菜单显示名(如用户页、编辑(按钮)、删除(按钮)) /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string Name { get; set; } /// /// 是否是按钮 @@ -44,7 +44,7 @@ public Permission() /// /// 按钮事件 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = true)] + [SugarColumn(Length = 100, IsNullable = true)] public string Func { get; set; } /// @@ -54,12 +54,12 @@ public Permission() /// /// 菜单图标 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = true)] + [SugarColumn(Length = 100, IsNullable = true)] public string Icon { get; set; } /// /// 菜单描述 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = true)] + [SugarColumn(Length = 100, IsNullable = true)] public string Description { get; set; } /// /// 激活状态 @@ -73,7 +73,7 @@ public Permission() /// /// 创建者 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string CreateBy { get; set; } /// /// 创建时间 @@ -88,7 +88,7 @@ public Permission() /// /// 修改者 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string ModifyBy { get; set; } /// /// 修改时间 diff --git a/Blog.Core.Model/Models/Role.cs b/Blog.Core.Model/Models/Role.cs index 0f08cc1e..0d537837 100644 --- a/Blog.Core.Model/Models/Role.cs +++ b/Blog.Core.Model/Models/Role.cs @@ -34,12 +34,12 @@ public Role(string name) /// /// 角色名 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string Name { get; set; } /// ///描述 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 100, IsNullable = true)] + [SugarColumn(Length = 100, IsNullable = true)] public string Description { get; set; } /// ///排序 @@ -57,7 +57,7 @@ public Role(string name) /// /// 创建者 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string CreateBy { get; set; } /// /// 创建时间 diff --git a/Blog.Core.Model/Models/RoleModulePermission.cs b/Blog.Core.Model/Models/RoleModulePermission.cs index 66705596..13d82a80 100644 --- a/Blog.Core.Model/Models/RoleModulePermission.cs +++ b/Blog.Core.Model/Models/RoleModulePermission.cs @@ -30,7 +30,7 @@ public RoleModulePermission() /// /// 创建者 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string CreateBy { get; set; } /// /// 创建时间 @@ -45,7 +45,7 @@ public RoleModulePermission() /// /// 修改者 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string ModifyBy { get; set; } /// /// 修改时间 diff --git a/Blog.Core.Model/Models/TasksQz.cs b/Blog.Core.Model/Models/TasksQz.cs index 8cc53d26..5c812f79 100644 --- a/Blog.Core.Model/Models/TasksQz.cs +++ b/Blog.Core.Model/Models/TasksQz.cs @@ -13,32 +13,32 @@ public class TasksQz : RootEntityTkey /// /// 任务名称 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string Name { get; set; } /// /// 任务分组 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string JobGroup { get; set; } /// /// 任务运行时间表达式 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string Cron { get; set; } /// /// 任务所在DLL对应的程序集名称 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string AssemblyName { get; set; } /// /// 任务所在类 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string ClassName { get; set; } /// /// 任务描述 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 1000, IsNullable = true)] + [SugarColumn(Length = 1000, IsNullable = true)] public string Remark { get; set; } /// /// 执行次数 diff --git a/Blog.Core.Model/Models/Topic.cs b/Blog.Core.Model/Models/Topic.cs index 258d5457..16bf7dad 100644 --- a/Blog.Core.Model/Models/Topic.cs +++ b/Blog.Core.Model/Models/Topic.cs @@ -14,19 +14,19 @@ public Topic() this.TopicDetail = new List(); this.tUpdatetime = DateTime.Now; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string tLogo { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string tName { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 400, IsNullable = true)] + [SugarColumn(Length = 400, IsNullable = true)] public string tDetail { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string tAuthor { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string tSectendDetail { get; set; } public bool tIsDelete { get; set; } diff --git a/Blog.Core.Model/Models/TopicDetail.cs b/Blog.Core.Model/Models/TopicDetail.cs index 1f352780..f2f19a3f 100644 --- a/Blog.Core.Model/Models/TopicDetail.cs +++ b/Blog.Core.Model/Models/TopicDetail.cs @@ -13,19 +13,19 @@ public TopicDetail() this.tdUpdatetime = DateTime.Now; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string tdLogo { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string tdName { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string tdContent { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string tdDetail { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string tdSectendDetail { get; set; } public bool tdIsDelete { get; set; } = false; @@ -36,7 +36,7 @@ public TopicDetail() public DateTime tdUpdatetime { get; set; } public int tdTop { get; set; } - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string tdAuthor { get; set; } diff --git a/Blog.Core.Model/Models/UserRole.cs b/Blog.Core.Model/Models/UserRole.cs index a3bb1687..996eea2c 100644 --- a/Blog.Core.Model/Models/UserRole.cs +++ b/Blog.Core.Model/Models/UserRole.cs @@ -35,7 +35,7 @@ public UserRole(int uid, int rid) /// /// 创建者 /// - [SugarColumn(ColumnDataType ="nvarchar",Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string CreateBy { get; set; } /// /// 创建时间 @@ -50,7 +50,7 @@ public UserRole(int uid, int rid) /// /// 修改者 /// - [SugarColumn(ColumnDataType ="nvarchar",Length = 50, IsNullable = true)] + [SugarColumn(Length = 50, IsNullable = true)] public string ModifyBy { get; set; } /// /// 修改时间 diff --git a/Blog.Core.Model/Models/WeChatCompany.cs b/Blog.Core.Model/Models/WeChatCompany.cs new file mode 100644 index 00000000..d07d4208 --- /dev/null +++ b/Blog.Core.Model/Models/WeChatCompany.cs @@ -0,0 +1,75 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + /// + /// + [SugarTable("WeChatCompany")] + public partial class WeChatCompany + { + + /// + /// 公司ID + /// + [SugarColumn(IsPrimaryKey = true, Length = 100, IsNullable = false)] + public string CompanyID { get; set; } + /// + /// 公司名称 + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string CompanyName { get; set; } + /// + /// 公司IP + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string CompanyIP { get; set; } + /// + /// 公司备注 + /// + [SugarColumn(Length = 200, IsNullable = false)] + public string CompanyRemark { get; set; } + /// + /// api地址 + /// + [SugarColumn(Length = 200, IsNullable = false)] + public string CompanyAPI { get; set; } + /// + /// 是否激活 + /// + public bool Enabled { get; set; } + /// + /// 创建者id + /// + [SugarColumn(IsNullable = true)] + public int? CreateId { get; set; } + /// + /// 创建人 + /// + [SugarColumn(IsNullable = true)] + public string CreateBy { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + /// + /// 修改者id + /// + [SugarColumn(IsNullable = true)] + public int? ModifyId { get; set; } + /// + /// 修改人 + /// + [SugarColumn(IsNullable = true)] + public string ModifyBy { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? ModifyTime { get; set; } + } +} diff --git a/Blog.Core.Model/Models/WeChatConfig.cs b/Blog.Core.Model/Models/WeChatConfig.cs new file mode 100644 index 00000000..f0aa97c4 --- /dev/null +++ b/Blog.Core.Model/Models/WeChatConfig.cs @@ -0,0 +1,110 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + /// + /// + [SugarTable("WeChatConfig")] + public class WeChatConfig + { + + /// + /// 微信公众号唯一标识 + /// + [SugarColumn(IsPrimaryKey = true, Length = 100, IsNullable = false)] + public string publicAccount { get; set; } + + /// + /// 微信公众号名称 + /// + [SugarColumn(Length = 200, IsNullable = false)] + public string publicNick { get; set; } + + /// + /// 微信账号 + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string weChatAccount { get; set; } + + /// + /// 微信名称 + /// + [SugarColumn(Length = 200)] + public string weChatNick { get; set; } + + /// + /// 应用ID + /// + [SugarColumn(Length = 100)] + public string appid { get; set; } + + /// + /// 应用秘钥 + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string appsecret { get; set; } + + /// + /// 公众号推送token + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string token { get; set; } + + /// + /// 验证秘钥(验证消息是否真实) + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string interactiveToken { get; set; } + + /// + /// 微信公众号token过期时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? tokenExpiration { get; set; } + + /// + /// 备注 + /// + [SugarColumn(Length = 200,IsNullable = true)] + public string remark { get; set; } + /// + /// 是否激活 + /// + public bool Enabled { get; set; } + + /// + /// 创建者id + /// + [SugarColumn(IsNullable = true)] + public int? CreateId { get; set; } + /// + /// 创建人 + /// + [SugarColumn(IsNullable = true)] + public string CreateBy { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + /// + /// 修改者id + /// + [SugarColumn(IsNullable = true)] + public int? ModifyId { get; set; } + /// + /// 修改人 + /// + [SugarColumn(IsNullable = true)] + public string ModifyBy { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? ModifyTime { get; set; } + } +} diff --git a/Blog.Core.Model/Models/WeChatPushLog.cs b/Blog.Core.Model/Models/WeChatPushLog.cs new file mode 100644 index 00000000..b2b6752e --- /dev/null +++ b/Blog.Core.Model/Models/WeChatPushLog.cs @@ -0,0 +1,116 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + /// + /// + [SugarTable("WeChatPushLog")] + public partial class WeChatPushLog + { + + /// + /// 推送ID + /// + [SugarColumn(IsPrimaryKey = true,IsNullable = false)] + public string id { get; set; } + /// + /// 来自谁 + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string PushLogFrom { get; set; } + + /// + /// 推送IP + /// + [SugarColumn(Length = 50, IsNullable = true)] + public string PushLogIP { get; set; } + + /// + /// 推送客户 + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string PushLogCompanyID { get; set; } + + /// + /// 推送用户 + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string PushLogToUserID { get; set; } + + /// + /// 推送模板ID + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string PushLogTemplateID { get; set; } + + /// + /// 推送内容 + /// + [SugarColumn(IsNullable = true)] + public string PushLogContent { get; set; } + + /// + /// 推送时间 + /// + [SugarColumn(IsNullable = false)] + public DateTime? PushLogTime { get; set; } + + /// + /// 推送状态(Y/N) + /// + [SugarColumn(Length =1,IsNullable = false)] + public string PushLogStatus { get; set; } + + /// + /// 备注 + /// + [SugarColumn(Length = 200, IsNullable = false)] + public string PushLogRemark { get; set; } + + /// + /// 推送OpenID + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string PushLogOpenid { get; set; } + + /// + /// 推送微信公众号 + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string PushLogPublicAccount { get; set; } + /// + /// 创建者id + /// + [SugarColumn(IsNullable = true)] + public int? CreateId { get; set; } + /// + /// 创建人 + /// + [SugarColumn(IsNullable = true)] + public string CreateBy { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + /// + /// 修改者id + /// + [SugarColumn(IsNullable = true)] + public int? ModifyId { get; set; } + /// + /// 修改人 + /// + [SugarColumn(IsNullable = true)] + public string ModifyBy { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? ModifyTime { get; set; } + } +} diff --git a/Blog.Core.Model/Models/WeChatQR.cs b/Blog.Core.Model/Models/WeChatQR.cs new file mode 100644 index 00000000..6df0bcb7 --- /dev/null +++ b/Blog.Core.Model/Models/WeChatQR.cs @@ -0,0 +1,96 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + /// + /// + [SugarTable("WeChatQR")] + public partial class WeChatQR + { + + /// + /// 主键id,ticket + /// + [SugarColumn(Length = 200,IsPrimaryKey =true, IsNullable = false)] + public string QRticket { get; set; } + + /// + /// 需要绑定的公司 + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string QRbindCompanyID { get; set; } + + /// + /// 需要绑定的员工id + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string QRbindJobID { get; set; } + /// + /// 需要绑定的员工昵称 + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string QRbindJobNick { get; set; } + + /// + /// 创建时间 + /// + public DateTime QRcrateTime { get; set; } + + /// + /// 关联的公众号 + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string QRpublicAccount { get; set; } + + /// + /// 是否已使用 + /// + public bool QRisUsed { get; set; } + + /// + /// 使用时间 + /// + [SugarColumn(Length = 100, IsNullable = true)] + public DateTime? QRuseTime { get; set; } + + /// + /// 关联的微信用户id + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string QRuseOpenid { get; set; } + /// + /// 创建者id + /// + [SugarColumn(IsNullable = true)] + public int? CreateId { get; set; } + /// + /// 创建人 + /// + [SugarColumn(IsNullable = true)] + public string CreateBy { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + /// + /// 修改者id + /// + [SugarColumn(IsNullable = true)] + public int? ModifyId { get; set; } + /// + /// 修改人 + /// + [SugarColumn(IsNullable = true)] + public string ModifyBy { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? ModifyTime { get; set; } + } +} diff --git a/Blog.Core.Model/Models/WeChatSub.cs b/Blog.Core.Model/Models/WeChatSub.cs new file mode 100644 index 00000000..48787a5f --- /dev/null +++ b/Blog.Core.Model/Models/WeChatSub.cs @@ -0,0 +1,104 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + /// + /// + [SugarTable("WeChatSub")] + public partial class WeChatSub + { + [SugarColumn(IsNullable = false,IsPrimaryKey = true)] + public string id { get; set; } + /// + /// 来自哪个公众号 + /// + [SugarColumn(Length = 100 , IsNullable = false, IndexGroupNameList = new string[] { "index" })] + public string SubFromPublicAccount { get; set; } + + /// + /// 绑定公司id + /// + [SugarColumn(Length = 100 , IsNullable = false, IndexGroupNameList = new string[] { "index" })] + public string CompanyID { get; set; } + + /// + /// 绑定员工id + /// + [SugarColumn(Length = 100 , IsNullable = false, IndexGroupNameList = new string[] { "index" })] + public string SubJobID { get; set; } + + /// + /// 绑定微信id + /// + [SugarColumn(Length = 100, IsNullable = false)] + public string SubUserOpenID { get; set; } + + /// + /// 绑定微信联合id + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string SubUserUnionID { get; set; } + + /// + /// 绑定时间 + /// + public DateTime SubUserRegTime { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? SubUserRefTime { get; set; } + + /// + /// 备注 + /// + [SugarColumn(Length = 200, IsNullable = true)] + public string SubUserRemark { get; set; } + + /// + /// 是否已解绑 + /// + public bool IsUnBind { get; set; } + + /// + /// 上次绑定微信id + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string LastSubUserOpenID { get; set; } + /// + /// 创建者id + /// + [SugarColumn(IsNullable = true)] + public int? CreateId { get; set; } + /// + /// 创建人 + /// + [SugarColumn(IsNullable = true)] + public string CreateBy { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + /// + /// 修改者id + /// + [SugarColumn(IsNullable = true)] + public int? ModifyId { get; set; } + /// + /// 修改人 + /// + [SugarColumn(IsNullable = true)] + public string ModifyBy { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? ModifyTime { get; set; } + } +} diff --git a/Blog.Core.Model/Models/WeChatUploadFile.cs b/Blog.Core.Model/Models/WeChatUploadFile.cs new file mode 100644 index 00000000..f7b979de --- /dev/null +++ b/Blog.Core.Model/Models/WeChatUploadFile.cs @@ -0,0 +1,92 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + /// + /// + [SugarTable("WeChatUploadFile")] + public partial class WeChatUploadFile + { + + /// + /// 文件ID + /// + [SugarColumn(Length = 100,IsPrimaryKey = true,IsNullable =false)] + public string UploadFileID { get; set; } + + /// + /// 文件名称 + /// + [SugarColumn(Length = 200, IsNullable = false)] + public string UploadFileName { get; set; } + + /// + /// 文件大小 + /// + [SugarColumn(IsNullable = false)] + public int? UploadFileSize { get; set; } + + /// + /// 文件类型 + /// + [SugarColumn(Length = 50, IsNullable = true)] + public string UploadFileContentType { get; set; } + + /// + /// 文件拓展名 + /// + [SugarColumn(Length = 50, IsNullable = true)] + public string UploadFileExtension { get; set; } + + /// + /// 文件位置 + /// + [SugarColumn(Length = 200, IsNullable = true)] + public string UploadFilePosition { get; set; } + + /// + /// 文件上传时间 + /// + public DateTime? UploadFileTime { get; set; } + + /// + /// 文件备注 + /// + [SugarColumn(Length = 200, IsNullable = true)] + public string UploadFileRemark { get; set; } + /// + /// 创建者id + /// + [SugarColumn(IsNullable = true)] + public int? CreateId { get; set; } + /// + /// 创建人 + /// + [SugarColumn(IsNullable = true)] + public string CreateBy { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + /// + /// 修改者id + /// + [SugarColumn(IsNullable = true)] + public int? ModifyId { get; set; } + /// + /// 修改人 + /// + [SugarColumn(IsNullable = true)] + public string ModifyBy { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? ModifyTime { get; set; } + } +} diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index 65b37161..6b8e74e8 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -28,17 +28,17 @@ public sysUserInfo(string loginName, string loginPWD) /// /// 登录账号 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string uLoginName { get; set; } /// /// 登录密码 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string uLoginPWD { get; set; } /// /// 真实姓名 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string uRealName { get; set; } /// /// 状态 @@ -47,7 +47,7 @@ public sysUserInfo(string loginName, string loginPWD) /// /// 备注 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 2000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string uRemark { get; set; } /// /// 创建时间 @@ -73,7 +73,7 @@ public sysUserInfo(string loginName, string loginPWD) /// /// 登录账号 /// - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string name { get; set; } // 性别 @@ -86,7 +86,7 @@ public sysUserInfo(string loginName, string loginPWD) [SugarColumn(IsNullable = true)] public DateTime birth { get; set; } = DateTime.Now; // 地址 - [SugarColumn(ColumnDataType = "nvarchar", Length = 200, IsNullable = true)] + [SugarColumn(Length = 200, IsNullable = true)] public string addr { get; set; } [SugarColumn(IsNullable = true)] diff --git a/Blog.Core.Model/PaginationModel.cs b/Blog.Core.Model/PaginationModel.cs new file mode 100644 index 00000000..3afee0b2 --- /dev/null +++ b/Blog.Core.Model/PaginationModel.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model +{ + /// + /// 所需分页参数 + /// 作者:胡丁文 + /// 时间:2020-4-3 20:31:26 + /// + public class PaginationModel + { + /// + /// 当前页 + /// + public int intPageIndex { get; set; } = 1; + /// + /// 每页大小 + /// + public int intPageSize { get; set; } = 10; + /// + /// 排序字段(例如:id desc,time asc) + /// + public string strOrderByFileds { get; set; } + /// + /// 查询条件( 例如:id = 1 and name = 小明) + /// + public string conditions { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatApiDto.cs b/Blog.Core.Model/ViewModels/WeChatApiDto.cs new file mode 100644 index 00000000..e02a55b1 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatApiDto.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信接口消息DTO + /// 作者:胡丁文 + /// 时间:2020-03-25 + /// + public class WeChatApiDto + { + /// + /// 微信公众号ID(数据库查询) + /// + public string id { get; set; } + /// + /// 错误代码 + /// + public int errcode { get; set; } + /// + /// 错误信息 + /// + public string errmsg { get; set; } + + + /// + /// token + /// + public string access_token { get; set; } + /// + /// 过期时间(秒) + /// + public int expires_in { get; set; } + + + /// + /// 用户关注数 + /// + public int total { get; set; } + /// + /// 获取用户数量 + /// + public int count { get; set; } + /// + /// 获取用户OpenIDs + /// + public WeChatOpenIDsDto data { get; set; } + public List users { get; set; } + /// + /// 下一个关注用户 + /// + public string next_openid { get; set; } + + /// + /// 微信消息模板列表 + /// + + public WeChatTemplateList[] template_list { get; set; } + /// + /// 微信菜单 + /// + public WeChatMenuDto menu { get; set; } + + /// + /// 二维码票据 + /// + public string ticket { get; set; } + /// + /// 二维码过期时间 + /// + public int expire_seconds { get; set; } + /// + /// 二维码地址 + /// + public string url { get; set; } + /// + /// 关注状态 + /// + public string subscribe { get; set; } + /// + /// 用户微信ID + /// + public string openid { get; set; } + /// + /// 昵称 + /// + public string nickname { get; set; } + /// + /// 性别 + /// + public int sex { get; set; } + /// + /// 语言 + /// + public string language { get; set; } + /// + /// 城市 + /// + public string city { get; set; } + /// + /// 省份 + /// + public string province { get; set; } + /// + /// 城市 + /// + public string country { get; set; } + /// + /// 头像地址 + /// + public string headimgurl { get; set; } + + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatCardMsgDataDto.cs b/Blog.Core.Model/ViewModels/WeChatCardMsgDataDto.cs new file mode 100644 index 00000000..2448bdd4 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatCardMsgDataDto.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信推送消息Dto + /// 作者:胡丁文 + /// 时间:2020-4-8 09:16:16 + /// + public class WeChatCardMsgDataDto + { + /// + /// 推送关键信息 + /// + public WeChatUserInfo info { get; set; } + /// + /// 推送卡片消息Dto + /// + public WeChatCardMsgDetailDto cardMsg { set; get; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatCardMsgDataOpenIDDto.cs b/Blog.Core.Model/ViewModels/WeChatCardMsgDataOpenIDDto.cs new file mode 100644 index 00000000..e90e5f47 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatCardMsgDataOpenIDDto.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信推送消息Dto + /// 作者:胡丁文 + /// 时间:2020-11-23 16:29:05 + /// + public class WeChatCardMsgDataOpenIDDto + { + /// + /// 推送关键信息 + /// + public WeChatUserInfoOpenID info { get; set; } + /// + /// 推送卡片消息Dto + /// + public WeChatCardMsgDetailDto cardMsg { set; get; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatCardMsgDetailDto.cs b/Blog.Core.Model/ViewModels/WeChatCardMsgDetailDto.cs new file mode 100644 index 00000000..17db8c91 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatCardMsgDetailDto.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 消息模板dto(如何填写数据,请参考微信模板即可) + /// 作者:胡丁文 + /// 时间:2020-4-1 09:32:16 + /// + public class WeChatCardMsgDetailDto + { + /// + /// 消息模板 + /// + public string template_id { get; set; } + /// + /// 标题 + /// + public string first { get; set; } + /// + /// 标题颜色(颜色代码都必须为#开头的16进制代码) + /// + public string colorFirst { get; set; } = "#173177"; + /// + /// 内容1 + /// + public string keyword1 { get; set; } + /// + /// 内容1颜色 + /// + + public string color1 { get; set; } = "#173177"; + /// + /// 内容2 + /// + public string keyword2 { get; set; } + /// + /// 内容2颜色 + /// + public string color2 { get; set; } = "#173177"; + /// + /// 内容3 + /// + public string keyword3 { get; set; } + /// + /// 内容3颜色 + /// + public string color3 { get; set; } = "#173177"; + /// + /// 内容4 + /// + public string keyword4 { get; set; } + /// + /// 内容4颜色 + /// + public string color4 { get; set; } = "#173177"; + /// + /// 内容5 + /// + public string keyword5 { get; set; } + /// + /// 内容5颜色 + /// + public string color5 { get; set; } = "#173177"; + /// + /// 备注信息 + /// + public string remark { get; set; } + /// + /// 备注信息颜色 + /// + public string colorRemark { get; set; } = "#173177"; + /// + /// 跳转连接 + /// + public string url { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatMenuButtonDto.cs b/Blog.Core.Model/ViewModels/WeChatMenuButtonDto.cs new file mode 100644 index 00000000..df8952cd --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatMenuButtonDto.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 获取微信菜单DTO,用于存放具体菜单内容 + /// + public class WeChatMenuButtonDto + { + public string type { get; set; } + public string name { get; set; } + public string key { get; set; } + public string url { get; set; } + public WeChatMenuButtonDto[] sub_button { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatMenuDto.cs b/Blog.Core.Model/ViewModels/WeChatMenuDto.cs new file mode 100644 index 00000000..3015a2a7 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatMenuDto.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 获取微信菜单DTO + /// + public class WeChatMenuDto + { + /// + /// 按钮列表(最多三个) + /// + public WeChatMenuButtonDto[] button { get; set; } + + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatOpenIDsDto.cs b/Blog.Core.Model/ViewModels/WeChatOpenIDsDto.cs new file mode 100644 index 00000000..93c13490 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatOpenIDsDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信OpenID列表Dto + /// + public class WeChatOpenIDsDto + { + public List openid { get; set; } = new List(); + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatPushCardMsgDetailDto.cs b/Blog.Core.Model/ViewModels/WeChatPushCardMsgDetailDto.cs new file mode 100644 index 00000000..b203dacb --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatPushCardMsgDetailDto.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 推送详细数据 + /// 作者:胡丁文 + /// 时间:2020-4-8 09:16:16 + /// + public class WeChatPushCardMsgDetailDto + { + public WeChatPushCardMsgValueColorDto first { get; set; } + public WeChatPushCardMsgValueColorDto keyword1 { get; set; } + public WeChatPushCardMsgValueColorDto keyword2 { get; set; } + public WeChatPushCardMsgValueColorDto keyword3 { get; set; } + public WeChatPushCardMsgValueColorDto keyword4 { get; set; } + public WeChatPushCardMsgValueColorDto keyword5 { get; set; } + public WeChatPushCardMsgValueColorDto remark { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatPushCardMsgDto.cs b/Blog.Core.Model/ViewModels/WeChatPushCardMsgDto.cs new file mode 100644 index 00000000..588ee09c --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatPushCardMsgDto.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 推送给微信所需Dto + /// 作者:胡丁文 + /// 时间:2020-4-8 09:16:16 + /// + public class WeChatPushCardMsgDto + { + /// + /// 推送微信用户ID + /// + public string touser { get; set; } + /// + /// 推送的模板ID + /// + public string template_id { get; set; } + /// + /// 推送URL地址 + /// + public string url { get; set; } + /// + /// 推送的数据 + /// + public WeChatPushCardMsgDetailDto data { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatPushCardMsgValueColorDto.cs b/Blog.Core.Model/ViewModels/WeChatPushCardMsgValueColorDto.cs new file mode 100644 index 00000000..e9548fd8 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatPushCardMsgValueColorDto.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信keyword所需Dto + /// 作者:胡丁文 + /// 时间:2020-4-8 09:18:08 + /// + public class WeChatPushCardMsgValueColorDto + { + /// + /// 内容 + /// + public string value { get; set; } + /// + /// 文字颜色 + /// + public string color { get; set; } = "#173177"; + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatPushLinkMsgContentDto.cs b/Blog.Core.Model/ViewModels/WeChatPushLinkMsgContentDto.cs new file mode 100644 index 00000000..064eaab4 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatPushLinkMsgContentDto.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + public class WeChatPushLinkMsgContentDto + { + /// + /// 图文链接标题 + /// + public string title { get; set; } + /// + /// 图文描述 + /// + public string description { get; set; } + /// + /// 访问URL + /// + public string viewUrl { get; set; } + /// + /// 图片URL + /// + public string pictureUrl { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatPushPictureContentDto.cs b/Blog.Core.Model/ViewModels/WeChatPushPictureContentDto.cs new file mode 100644 index 00000000..3b29681a --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatPushPictureContentDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + public class WeChatPushPictureContentDto + { + /// + /// 图片mediaID + /// + public string pictureMediaID { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatPushTestDto.cs b/Blog.Core.Model/ViewModels/WeChatPushTestDto.cs new file mode 100644 index 00000000..a906fb80 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatPushTestDto.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 推送模拟消息Dto + /// 作者:胡丁文 + /// 时间:2020-4-24 14:52:44 + /// + public class WeChatPushTestDto + { + /// + /// 当前选中的微信公众号 + /// + public string selectWeChat { get; set; } + /// + /// 当前选中的操作集合 + /// + public string selectOperate { get; set; } + /// + /// 当前选中的绑定还是订阅 + /// + public string selectBindOrSub { get; set; } + /// + /// 当前选中的微信客户 + /// + public string selectCompany { get; set; } + /// + /// 当前选中的消息类型 + /// + public string selectMsgType { get; set; } + /// + /// 当前选中要发送的用户 + /// + public string selectUser { get; set; } + /// + /// 文本消息 + /// + public WeChatPushTextContentDto textContent { get; set; } + /// + /// 图片消息 + /// + public WeChatPushPictureContentDto pictureContent { get; set; } + /// + /// 语音消息 + /// + public WeChatPushVoiceContentDto voiceContent { get; set; } + /// + /// 视频消息 + /// + public WeChatPushVideoContentDto videoContent { get; set; } + /// + /// 链接消息 + /// + public WeChatPushLinkMsgContentDto linkMsgContent { get; set; } + + + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatPushTextContentDto.cs b/Blog.Core.Model/ViewModels/WeChatPushTextContentDto.cs new file mode 100644 index 00000000..55d6cc50 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatPushTextContentDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + public class WeChatPushTextContentDto + { + /// + /// 文字消息 + /// + public string text { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatPushVideoContentDto.cs b/Blog.Core.Model/ViewModels/WeChatPushVideoContentDto.cs new file mode 100644 index 00000000..a00ad6c1 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatPushVideoContentDto.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + public class WeChatPushVideoContentDto + { + /// + /// 视频标题 + /// + public string title { get; set; } + /// + /// 视频封面mediaID + /// + public string pictureMediaID { get; set; } + /// + /// 视频mediaID + /// + public string videoMediaID { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatPushVoiceContentDto.cs b/Blog.Core.Model/ViewModels/WeChatPushVoiceContentDto.cs new file mode 100644 index 00000000..1a9da49f --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatPushVoiceContentDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + public class WeChatPushVoiceContentDto + { + /// + /// 语音mediaID + /// + public string voiceMediaID { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatQRActionDto.cs b/Blog.Core.Model/ViewModels/WeChatQRActionDto.cs new file mode 100644 index 00000000..13001b6a --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatQRActionDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信二维码预装发送信息dto + /// + public class WeChatQRActionDto + { + public WeChatQRActionInfoDto scene { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatQRActionInfoDto.cs b/Blog.Core.Model/ViewModels/WeChatQRActionInfoDto.cs new file mode 100644 index 00000000..ba38072a --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatQRActionInfoDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信二维码预装具体消息 + /// + public class WeChatQRActionInfoDto + { + public string scene_str { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatQRDto.cs b/Blog.Core.Model/ViewModels/WeChatQRDto.cs new file mode 100644 index 00000000..eca876f3 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatQRDto.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信二维码预装信息DTO + /// + public class WeChatQRDto + { + public int expire_seconds { get; set; } + public string action_name { get; set; } + public WeChatQRActionDto action_info { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatResponseUserInfo.cs b/Blog.Core.Model/ViewModels/WeChatResponseUserInfo.cs new file mode 100644 index 00000000..9d28fe51 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatResponseUserInfo.cs @@ -0,0 +1,28 @@ + +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 返回给调用者的Dto + /// 作者:胡丁文 + /// 时间:2020-4-8 09:52:06 + /// + public class WeChatResponseUserInfo + { + /// + /// 微信公众号ID + /// + public string id { get; set; } + /// + /// 公司代码 + /// + public string companyCode { get; set; } + /// + /// 数据 + /// + public WeChatApiDto usersData { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatTemplateList.cs b/Blog.Core.Model/ViewModels/WeChatTemplateList.cs new file mode 100644 index 00000000..820266f0 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatTemplateList.cs @@ -0,0 +1,15 @@ +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信消息模板Dto + /// + public class WeChatTemplateList + { + public string template_id { get; set; } + public string title { get; set; } + public string primary_industry { get; set; } + public string deputy_industry { get; set; } + public string content { get; set; } + public string example { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatUserInfo.cs b/Blog.Core.Model/ViewModels/WeChatUserInfo.cs new file mode 100644 index 00000000..faf65b1d --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatUserInfo.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信推送所需信息(公司版本) + /// 作者:胡丁文 + /// 时间:2020-4-8 09:04:36 + /// + public class WeChatUserInfo + { + /// + /// 微信公众号ID + /// + public string id { get; set; } + /// + /// 公司代码 + /// + public string companyCode { get; set; } + /// + /// 用户id + /// + public string userID { get; set; } + /// + /// 用户昵称 + /// + public string userNick { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatUserInfoOpenID.cs b/Blog.Core.Model/ViewModels/WeChatUserInfoOpenID.cs new file mode 100644 index 00000000..ef01aad2 --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatUserInfoOpenID.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信推送所需信息(OpenID版本) + /// 作者:胡丁文 + /// 时间:2020-11-23 16:27:29 + /// + public class WeChatUserInfoOpenID + { + /// + /// 微信公众号ID + /// + public string id { get; set; } + /// + /// 微信OpenID + /// + public List userID { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatValidDto.cs b/Blog.Core.Model/ViewModels/WeChatValidDto.cs new file mode 100644 index 00000000..c0d038df --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatValidDto.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml.Serialization; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信验证Dto + /// 作者:胡丁文 + /// 时间:2020-4-1 21:34:07 + /// + public class WeChatValidDto + { + /// + /// 微信公众号唯一标识 + /// + public string publicAccount { get; set; } + /// + /// 验证成功后返回给微信的字符串 + /// + public string echoStr { get; set; } + /// + /// 签名 + /// + public string signature { get; set; } + /// + /// 时间戳 + /// + public string timestamp { get; set; } + /// + /// 随机数 + /// + public string nonce { get; set; } + + } +} diff --git a/Blog.Core.Model/ViewModels/WeChatXMLDto.cs b/Blog.Core.Model/ViewModels/WeChatXMLDto.cs new file mode 100644 index 00000000..e293849d --- /dev/null +++ b/Blog.Core.Model/ViewModels/WeChatXMLDto.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using System.Xml.Serialization; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 微信XmlDto + /// 作者:胡丁文 + /// 时间:2020-4-3 20:31:26 + /// + [XmlRoot(ElementName ="xml")] + public class WeChatXMLDto + { + /// + /// 微信公众号唯一表示 + /// + public string publicAccount { get; set; } + /// + /// 微信开发者 + /// + public string ToUserName { get; set; } + /// + /// 来自谁 + /// + public string FromUserName { get; set; } + /// + /// 创建时间 + /// + public string CreateTime { get; set; } + /// + /// 消息类型 + /// + public string MsgType { get; set; } + /// + /// 文字内容 + /// + public string Content { get; set; } + /// + /// 消息ID + /// + public string MsgId { get; set; } + /// + /// 消息事件 + /// + public string Event { get; set; } + /// + /// 事件key值 + /// + public string EventKey { get; set; } + /// + /// 图片地址 + /// + public string PicUrl { get; set; } + /// + /// 多媒体ID + /// + public string MediaId { get; set; } + /// + /// 格式 + /// + public string Format { get; set; } + /// + /// 语音失败 + /// + public string Recognition { get; set; } + /// + /// 缩略媒体ID + /// + public string ThumbMediaId { get; set; } + /// + /// 地理位置维度 + /// + public string Location_X { get; set; } + /// + /// 地理位置经度 + /// + public string Location_Y { get; set; } + /// + /// 地图缩放大小 + /// + public string Scale { get; set; } + /// + /// 地理位置信息 + /// + public string Label { get; set; } + /// + /// 消息标题 + /// + public string Title { get; set; } + /// + /// 消息描述 + /// + public string Description { get; set; } + /// + /// 消息链接 + /// + public string Url { get; set; } + /// + /// 二维码的ticket,可用来换取二维码图片 + /// + public string Ticket { get; set; } + /// + /// 地理位置纬度 + /// + public string Latitude { get; set; } + /// + /// 地理位置经度 + /// + public string Longitude { get; set; } + /// + /// 地理位置精度 + /// + public string Precision { get; set; } + } +} diff --git a/Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs b/Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs index 3b39c0bf..fbbd9e39 100644 --- a/Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs +++ b/Blog.Core.Serilog.Es/HttpInfo/ParamsHelper.cs @@ -72,7 +72,7 @@ public static string GetParams(HttpContext context) } return data; } - catch(Exception ex) + catch(Exception) { return string.Empty; } diff --git a/Blog.Core.Services/BASE/BaseServices.cs b/Blog.Core.Services/BASE/BaseServices.cs index ba553082..d110b587 100644 --- a/Blog.Core.Services/BASE/BaseServices.cs +++ b/Blog.Core.Services/BASE/BaseServices.cs @@ -1,4 +1,5 @@ -using Blog.Core.IRepository.Base; +using Blog.Core.Common.Helper; +using Blog.Core.IRepository.Base; using Blog.Core.IServices.BASE; using Blog.Core.Model; using SqlSugar; @@ -317,6 +318,11 @@ public async Task> QueryPage(Expression> { return await BaseDal.QueryMuch(joinExpression, selectExpression, whereLambda); } + public async Task> QueryPage(PaginationModel pagination) + { + var express = DynamicLinqFactory.CreateLambda(pagination.conditions); + return await QueryPage(express, pagination.intPageIndex, pagination.intPageSize, pagination.strOrderByFileds); + } } } diff --git a/Blog.Core.Services/WeChatCompanyServices.cs b/Blog.Core.Services/WeChatCompanyServices.cs new file mode 100644 index 00000000..c44ff0c6 --- /dev/null +++ b/Blog.Core.Services/WeChatCompanyServices.cs @@ -0,0 +1,34 @@ +using Blog.Core.Common; +using Blog.Core.Common.Helper; +using Blog.Core.IRepository.Base; +using Blog.Core.IRepository.UnitOfWork; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using Blog.Core.Services.BASE; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Services +{ + /// + /// WeChatCompanyServices + /// + public class WeChatCompanyServices : BaseServices, IWeChatCompanyServices + { + readonly IBaseRepository _dal; + readonly IUnitOfWork _unitOfWork; + readonly ILogger _logger; + public WeChatCompanyServices(IBaseRepository dal,IUnitOfWork unitOfWork, ILogger logger) + { + this._dal = dal; + base.BaseDal = dal; + this._unitOfWork = unitOfWork; + this._logger = logger; + } + + } +} \ No newline at end of file diff --git a/Blog.Core.Services/WeChatConfigServices.cs b/Blog.Core.Services/WeChatConfigServices.cs new file mode 100644 index 00000000..a268a311 --- /dev/null +++ b/Blog.Core.Services/WeChatConfigServices.cs @@ -0,0 +1,906 @@ +using Blog.Core.Common; +using Blog.Core.Common.Helper; +using Blog.Core.IRepository.Base; +using Blog.Core.IRepository.UnitOfWork; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using Blog.Core.Services.BASE; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Services +{ + /// + /// WeChatConfigServices + /// + public class WeChatConfigServices : BaseServices, IWeChatConfigServices + { + readonly IBaseRepository _dal; + readonly IUnitOfWork _unitOfWork; + readonly ILogger _logger; + public WeChatConfigServices(IBaseRepository dal,IUnitOfWork unitOfWork, ILogger logger) + { + this._dal = dal; + base.BaseDal = dal; + this._unitOfWork = unitOfWork; + this._logger = logger; + } + public async Task> GetToken(string publicAccount) + { + var config = await this.QueryById(publicAccount); + if (config == null) MessageModel.Success($"公众号{publicAccount}未维护至系统");//还没过期,直接返回 + if (config.tokenExpiration > DateTime.Now) + { + //再次判断token在微信服务器是否正确 + var wechatIP = await WeChatHelper.GetWechatIP(config.token); + if (wechatIP.errcode == 0) + MessageModel.Success("", new WeChatApiDto { access_token = config.token });//还没过期,直接返回 + } + //过期了,重新获取 + var data = await WeChatHelper.GetToken(config.appid, config.appsecret); + if (data.errcode.Equals(0)) + { + config.token = data.access_token; + config.tokenExpiration = DateTime.Now.AddSeconds(data.expires_in); + await this.Update(config); + return MessageModel.Success("",data); + } + else + { + return MessageModel.Fail($"\r\n获取Token失败\r\n错误代码:{data.errcode}\r\n错误信息:{data.errmsg}"); + } + } + public async Task> RefreshToken(string publicAccount) + { + var config = await this.QueryById(publicAccount); + if (config == null) MessageModel.Success($"公众号{publicAccount}未维护至系统");//还没过期,直接返回 + //过期了,重新获取 + var data = await WeChatHelper.GetToken(config.appid, config.appsecret); + if (data.errcode.Equals(0)) + { + config.token = data.access_token; + config.tokenExpiration = DateTime.Now.AddSeconds(data.expires_in); + await this.Update(config); + return MessageModel.Success("", data); + } + else + { + return MessageModel.Fail($"\r\n获取Token失败\r\n错误代码:{data.errcode}\r\n错误信息:{data.errmsg}"); + } + } + public async Task> GetTemplate(string id) + { + var res = await GetToken(id); + if (!res.success) return res; + var data = await WeChatHelper.GetTemplate(res.response.access_token); + if (data.errcode.Equals(0)) + { + return MessageModel.Success("", data); + } + else + { + return MessageModel.Success($"\r\n获取模板失败\r\n错误代码:{data.errcode}\r\n错误信息:{data.errmsg}", data); + } + } + /// + /// 获取菜单 + /// + /// + /// + public async Task> GetMenu(string id) + { + var res = await GetToken(id); + if (!res.success) return res; + var data = await WeChatHelper.GetMenu(res.response.access_token); + if (data.errcode.Equals(0)) + { + return MessageModel.Success("", data); + } + else + { + return MessageModel.Success($"\r\n获取菜单失败\r\n错误代码:{data.errcode}\r\n错误信息:{data.errmsg}", data); + } + } + public async Task> GetSubUsers(string id) + { + var res = await GetToken(id); + if (!res.success) return res; + var data = await WeChatHelper.GetUsers(res.response.access_token); + if (data.errcode.Equals(0)) + { + data.users = new List(); + foreach (var openid in data.data.openid) + { + data.users.Add(await WeChatHelper.GetUserInfo(res.response.access_token, openid)); + } + return MessageModel.Success("", data); + } + else + { + return MessageModel.Success($"\r\n获取订阅用户失败\r\n错误代码:{data.errcode}\r\n错误信息:{data.errmsg}", data); + } + } + public async Task> GetSubUser(string id,string openid) + { + var res = await GetToken(id); + if (!res.success) return res; + var data = await WeChatHelper.GetUserInfo(res.response.access_token,openid); + if (data.errcode.Equals(0)) + { + return MessageModel.Success("", data); + } + else + { + return MessageModel.Success($"\r\n获取订阅用户失败\r\n错误代码:{data.errcode}\r\n错误信息:{data.errmsg}", data); + } + } + public async Task Valid(WeChatValidDto validDto,string body) + { + WeChatXMLDto weChatData = null; + string objReturn = null; + try + { + _logger.LogInformation("会话开始"); + if (string.IsNullOrEmpty(validDto.publicAccount)) throw new Exception("没有微信公众号唯一标识id数据"); + var config = await QueryById(validDto.publicAccount); + if (config == null) throw new Exception($"公众号不存在=>{validDto.publicAccount}"); + _logger.LogInformation(JsonHelper.GetJSON(validDto)); + var token = config.interactiveToken;//验证用的token 和access_token不一样 + string[] arrTmp = { token, validDto.timestamp, validDto.nonce }; + Array.Sort(arrTmp); + string combineString = string.Join("", arrTmp); + string encryption = MD5Helper.Sha1(combineString).ToLower(); + + _logger.LogInformation( + $"来自公众号:{validDto.publicAccount}\r\n" + + $"微信signature:{validDto.signature}\r\n" + + $"微信timestamp:{validDto.timestamp}\r\n" + + $"微信nonce:{validDto.nonce}\r\n" + + $"合并字符串:{combineString}\r\n" + + $"微信服务器signature:{validDto.signature}\r\n" + + $"本地服务器signature:{encryption}" + ); + if (encryption == validDto.signature) + { + //判断是首次验证还是交互? + if (string.IsNullOrEmpty(validDto.echoStr)) + { + //非首次验证 + weChatData = XmlHelper.ParseFormByXml(body, "xml"); + weChatData.publicAccount = validDto.publicAccount; + objReturn = await HandleWeChat(weChatData); + } + else + { + //首次接口地址验证 + objReturn = validDto.echoStr; + } + } + else + { + objReturn = "签名验证失败"; + } + + } + catch (Exception ex) + { + _logger.LogInformation($"会话出错(信息)=>\r\n{ex.Message}"); + _logger.LogInformation($"会话出错(堆栈)=>\r\n{ex.StackTrace}"); + //返回错误给用户 + objReturn = string.Format(@$" + + {DateTime.Now.Ticks.ToString()} + + "); + } + finally + { + _logger.LogInformation($"微信get数据=>\r\n{JsonHelper.GetJSON(validDto)}"); + _logger.LogInformation($"微信post数据=>\r\n{body}"); + _logger.LogInformation($"返回微信数据=>\r\n{objReturn}"); + _logger.LogInformation($"会话结束"); + } + return objReturn; + } + public async Task> GetQRBind(WeChatUserInfo info) + { + var res = await GetToken(info?.id); + if (!res.success) return MessageModel.Fail(res.msg); + var push = new WeChatQRDto + { + expire_seconds = 604800, + action_name = "QR_STR_SCENE", + action_info = new WeChatQRActionDto + { + scene = new WeChatQRActionInfoDto + { + scene_str = $"bind_{info?.id}" + } + } + }; + WeChatResponseUserInfo reData = new WeChatResponseUserInfo(); + reData.companyCode = info.companyCode; + reData.id = info.id; + var pushJosn = JsonHelper.GetJSON(push); + var data = await WeChatHelper.GetQRCode(res.response.access_token, pushJosn); + WeChatQR weChatQR = new WeChatQR + { + QRbindCompanyID = info.companyCode, + QRbindJobID = info.userID, + QRbindJobNick = info.userNick, + QRcrateTime = DateTime.Now, + QRpublicAccount = info.id, + QRticket = data.ticket + }; + data.id = info.userID; + await this._dal.Db.Insertable(weChatQR).ExecuteCommandAsync(); + reData.usersData= data; + return MessageModel.Success("获取二维码成功", reData); + } + public async Task> PushCardMsg(WeChatCardMsgDataDto msg,string ip) + { + var bindUser = await _dal.Db.Queryable().Where(t => t.SubFromPublicAccount == msg.info.id && t.CompanyID == msg.info.companyCode && t.IsUnBind == false && msg.info.userID.Contains(t.SubJobID)).SingleAsync(); + if (bindUser == null) + return MessageModel.Fail("用户不存在或者已经解绑!"); + var res = await GetToken(msg?.info?.id); + if(!res.success) + return MessageModel.Fail(res.msg); + WeChatResponseUserInfo reData = new WeChatResponseUserInfo(); + reData.companyCode = msg.info.companyCode; + reData.id = msg.info.id; + try + { + var pushData = new WeChatPushCardMsgDto + { + template_id = msg.cardMsg.template_id, + url = msg.cardMsg.url, + touser = bindUser.SubUserOpenID, + data = new WeChatPushCardMsgDetailDto + { + first = new WeChatPushCardMsgValueColorDto + { + value = msg.cardMsg.first, + color = msg.cardMsg.color1 + }, + keyword1 = new WeChatPushCardMsgValueColorDto + { + value = msg.cardMsg.keyword1, + color = msg.cardMsg.color1 + }, + keyword2 = new WeChatPushCardMsgValueColorDto + { + value = msg.cardMsg.keyword2, + color = msg.cardMsg.color2 + }, + keyword3 = new WeChatPushCardMsgValueColorDto + { + value = msg.cardMsg.keyword3, + color = msg.cardMsg.color3 + }, + keyword4 = new WeChatPushCardMsgValueColorDto + { + value = msg.cardMsg.keyword4, + color = msg.cardMsg.color4 + }, + keyword5 = new WeChatPushCardMsgValueColorDto + { + value = msg.cardMsg.keyword5, + color = msg.cardMsg.color5 + }, + remark = new WeChatPushCardMsgValueColorDto + { + value = msg.cardMsg.remark, + color = msg.cardMsg.colorRemark + } + } + }; + var pushJson = JsonHelper.GetJSON(pushData); + var data = await WeChatHelper.SendCardMsg(res.response.access_token, pushJson); + reData.usersData = data; + try + { + var pushLog = new WeChatPushLog + { + PushLogCompanyID = msg.info.companyCode, + PushLogPublicAccount = msg.info.id, + PushLogContent = pushJson, + PushLogOpenid = bindUser.SubUserOpenID, + PushLogToUserID = bindUser.SubJobID, + PushLogStatus = data.errcode == 0 ? "Y" : "N", + PushLogRemark = data.errmsg, + PushLogTime = DateTime.Now, + PushLogTemplateID = msg.cardMsg.template_id, + PushLogIP = ip + }; + await _dal.Db.Insertable(pushLog).ExecuteCommandAsync(); + } + catch (Exception ex) + { + _logger.LogInformation($"记录失败\r\n{ex.Message}\r\n{ex.StackTrace}"); + } + if (reData.usersData.errcode.Equals(0)) + { + return MessageModel.Success("卡片消息推送成功", reData); + } + else + { + return MessageModel.Success("卡片消息推送失败", reData); + } + + } + catch (Exception ex) + { + return MessageModel.Success($"卡片消息推送错误=>{ex.Message}", reData); + } + + } + + public async Task> PushTxtMsg(WeChatPushTestDto msg) { + var res = await GetToken(msg.selectWeChat); + if (!res.success) return res; + var token = res.response.access_token; + if (msg.selectBindOrSub.Equals("sub")) + { + return await PushText(token, msg); + } + else + { + MessageModel messageModel = new MessageModel(); + messageModel.success = true; + //绑定用户 + if (msg.selectOperate.Equals("one")) + { + //发送单个 + var usrs = _dal.Db.Queryable().Where(t => t.SubFromPublicAccount.Equals(msg.selectWeChat) && t.CompanyID.Equals(msg.selectCompany) && t.SubJobID.Equals(msg.selectUser)).ToList(); + foreach (var item in usrs) + { + msg.selectUser = item.SubUserOpenID; + var info = await PushText(token, msg); + if (!info.success) + { + messageModel.success = false; + } + messageModel.msg += info.msg; + } + } + else + { + //发送所有 + var usrs = _dal.Db.Queryable().Where(t => t.SubFromPublicAccount.Equals(msg.selectWeChat) && t.CompanyID.Equals(msg.selectCompany)).ToList(); + foreach (var item in usrs) + { + msg.selectUser = item.SubUserOpenID; + var info = await PushText(token, msg); + if (!info.success) + { + messageModel.success = false; + } + messageModel.msg += info.msg; + } + } + return messageModel; + } + + } + public async Task> PushText(string token,WeChatPushTestDto msg) { + + object data = null; ; + WeChatApiDto pushres = null; ; + //订阅用户 + switch (msg.selectMsgType) + { + case "text": + //发送文本 + data = new + { + filter = new + { + is_to_all = msg.selectOperate.Equals("one") ? false : true, + tag_id = 0, + }, + touser = msg.selectUser, + msgtype = msg.selectMsgType, + text = new + { + content = msg.textContent.text + } + }; + + if (msg.selectOperate.Equals("one")) + { + pushres = await WeChatHelper.SendMsg(token, JsonHelper.ObjToJson(data)); + } + else + { + pushres = await WeChatHelper.SendMsgToAll(token, JsonHelper.ObjToJson(data)); + } + break; + case "image": + //发送图片 + data = new + { + filter = new + { + is_to_all = msg.selectOperate.Equals("one") ? false : true, + tag_id = 0, + }, + touser = msg.selectUser, + msgtype = msg.selectMsgType, + images = new + { + media_ids = new List { + msg.pictureContent.pictureMediaID + }, + recommend = "xxx", + need_open_comment = 1, + only_fans_can_comment = 0 + } + }; + if (msg.selectOperate.Equals("one")) + { + pushres = await WeChatHelper.SendMsg(token, JsonHelper.ObjToJson(data)); + } + else + { + pushres = await WeChatHelper.SendMsgToAll(token, JsonHelper.ObjToJson(data)); + } + break; + case "voice": + //发送音频 + data = new + { + filter = new + { + is_to_all = msg.selectOperate.Equals("one") ? false : true, + tag_id = 0, + }, + touser = msg.selectUser, + msgtype = msg.selectMsgType, + voice = new + { + media_id = msg.voiceContent.voiceMediaID + } + }; + if (msg.selectOperate.Equals("one")) + { + pushres = await WeChatHelper.SendMsg(token, JsonHelper.ObjToJson(data)); + } + else + { + pushres = await WeChatHelper.SendMsgToAll(token, JsonHelper.ObjToJson(data)); + } + break; + case "mpvideo": + //发送视频 + data = new + { + filter = new + { + is_to_all = msg.selectOperate.Equals("one") ? false : true, + tag_id = 0, + }, + touser = msg.selectUser, + msgtype = msg.selectMsgType, + mpvideo = new + { + media_id = msg.videoContent.videoMediaID, + } + }; + if (msg.selectOperate.Equals("one")) + { + pushres = await WeChatHelper.SendMsg(token, JsonHelper.ObjToJson(data)); + } + else + { + pushres = await WeChatHelper.SendMsgToAll(token, JsonHelper.ObjToJson(data)); + } + break; + default: + pushres = new WeChatApiDto() { errcode = -1, errmsg = $"未找到推送类型{msg.selectMsgType}" }; + break; + } + if (pushres.errcode.Equals(0)) + { + return MessageModel.Success("推送成功", pushres); + + } + else + { + return MessageModel.Fail($"\r\n推送失败\r\n错误代码:{pushres.errcode}\r\n错误信息:{pushres.errmsg}", pushres); + } + } + public async Task> UpdateMenu(WeChatApiDto menu) + { + WeChatHelper.ConverMenuButtonForEvent(menu); + var res = await GetToken(menu.id); + if (!res.success) return res; + var data = await WeChatHelper.SetMenu(res.response.access_token, JsonHelper.ObjToJson(menu.menu)); + if (data.errcode.Equals(0)) + { + + return MessageModel.Success("更新成功", data); + } + else + { + return MessageModel.Success("更新失败", data); + } + } + public async Task> GetBindUserInfo(WeChatUserInfo info) + { + var bindUser = await _dal.Db.Queryable().Where(t => t.SubFromPublicAccount == info.id && t.CompanyID == info.companyCode && info.userID.Equals(t.SubJobID) && t.IsUnBind == false ).FirstAsync(); + if (bindUser == null) return MessageModel.Fail("用户不存在或者已经解绑!"); + var res = await GetToken(info.id); + if(!res.success) return MessageModel.Fail(res.msg); + var token = res.response.access_token; + WeChatResponseUserInfo reData = new WeChatResponseUserInfo(); + reData.companyCode = info.companyCode; + reData.id = info.id; + var data = await WeChatHelper.GetUserInfo(token, bindUser.SubUserOpenID); + reData.usersData = data; + if (data.errcode.Equals(0)) + { + return MessageModel.Success("用户信息获取成功", reData); + } + else + { + return MessageModel.Fail("用户信息获取失败", reData); + } + } + public async Task> UnBind(WeChatUserInfo info) + { + var bindUser = await _dal.Db.Queryable().Where(t => t.SubFromPublicAccount == info.id && t.CompanyID == info.companyCode && info.userID.Equals(t.SubJobID) && t.IsUnBind == false ).FirstAsync(); + if (bindUser == null) return MessageModel.Fail("用户不存在或者已经解绑!"); + WeChatResponseUserInfo reData = new WeChatResponseUserInfo(); + reData.companyCode = info.companyCode; + reData.id = info.id; + bindUser.IsUnBind = true; + bindUser.SubUserRefTime = DateTime.Now; + await _dal.Db.Updateable(bindUser).UpdateColumns(t=> new{ t.IsUnBind,t.SubUserRefTime}).ExecuteCommandAsync(); + return MessageModel.Success("用户解绑成功", reData); + } + + public async Task HandleWeChat(WeChatXMLDto weChat) + { + + switch (weChat.MsgType) + { + case "text": + return await HandText(weChat); + case "image": + return await HandImage(weChat); + case "voice": + return await HandVoice(weChat); + case "shortvideo": + return await HandShortvideo(weChat); + case "location": + return await HandLocation(weChat); + case "link": + return await HandLink(weChat); + case "event": + return await HandEvent(weChat); + default: + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.MsgType}]]>"; + }); + } + + } + /// + /// 处理文本 + /// + /// + /// + private async Task HandText(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.Content}]]>"; + }); + } + /// + /// 处理图片 + /// + /// + /// + private async Task HandImage(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.PicUrl}]]>"; + }); + } + /// + /// 处理声音 + /// + /// + /// + private async Task HandVoice(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.MediaId}]]>"; + }); + } + /// + /// 处理小视频 + /// + /// + /// + private async Task HandShortvideo(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.MediaId}]]>"; + }); + } + /// + /// 处理地理位置 + /// + /// + /// + private async Task HandLocation(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.Label}]]>"; + }); + } + /// + /// 处理链接消息 + /// + /// + /// + private async Task HandLink(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.Url}]]>"; + }); + } + /// + /// 处理事件 + /// + /// + /// + private async Task HandEvent(WeChatXMLDto weChat) + { + + switch (weChat.Event) + { + case "subscribe": + return await EventSubscribe(weChat); + case "unsubscribe": + return await EventUnsubscribe(weChat); + case "SCAN": + return await EventSCAN(weChat); + case "LOCATION": + return await EventLOCATION(weChat); + case "CLICK": + return await EventCLICK(weChat); + case "VIEW": + return await EventVIEW(weChat); + default: + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.Event}]]>"; + }); + } + } + /// + /// 关注事件 + /// + /// + /// + private async Task EventSubscribe(WeChatXMLDto weChat) + { + if (weChat.EventKey != null && (weChat.EventKey.Equals("bind") || weChat.EventKey.Equals("qrscene_bind"))) + { + return await QRBind(weChat); + } + else + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + key:{weChat.EventKey}=>ticket:{weChat.Ticket}]]>"; + }); + } + } + /// + /// 取消关注事件 + /// + /// + /// + private async Task EventUnsubscribe(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.Event}]]>"; + }); + } + /// + /// 已关注扫码事件 + /// + /// + /// + private async Task EventSCAN(WeChatXMLDto weChat) + { + if (weChat.EventKey != null && (weChat.EventKey.StartsWith("bind_") || weChat.EventKey.StartsWith("qrscene_bind_"))) + { + + return await QRBind(weChat); + } + else + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + key:{weChat.EventKey}=>ticket:{weChat.Ticket}]]>"; + }); + + } + + } + /// + /// 扫码绑定 + /// + /// + /// + + private async Task QRBind(WeChatXMLDto weChat) + { + var ticket = await _dal.Db.Queryable().InSingleAsync(weChat.Ticket); + if (ticket == null) throw new Exception("ticket未找到"); + if (ticket.QRisUsed) throw new Exception("ticket已被使用"); + if (!ticket.QRpublicAccount.Equals(weChat.publicAccount)) throw new Exception($"公众号错误 need:{ticket.QRpublicAccount} but:{weChat.publicAccount}"); + + var bindUser = await _dal.Db.Queryable().Where(t => t.SubFromPublicAccount == ticket.QRpublicAccount && t.CompanyID == ticket.QRbindCompanyID && t.SubJobID == ticket.QRbindJobID).SingleAsync(); + bool isNewBind; + if (bindUser == null ) + { + isNewBind = true; + bindUser = new WeChatSub + { + SubFromPublicAccount = ticket.QRpublicAccount, + CompanyID = ticket.QRbindCompanyID, + SubJobID = ticket.QRbindJobID, + SubUserOpenID = weChat.FromUserName, + SubUserRegTime = DateTime.Now, + }; + } + else + { + isNewBind = false; + //订阅过的就更新 + if (bindUser.SubUserOpenID != weChat.FromUserName) + { + //记录上一次的订阅此工号的微信号 + bindUser.LastSubUserOpenID = bindUser.SubUserOpenID; + } + bindUser.SubUserOpenID = weChat.FromUserName; + bindUser.SubUserRefTime = DateTime.Now; + bindUser.IsUnBind = false; + } + ticket.QRisUsed = true; + ticket.QRuseTime = DateTime.Now; + ticket.QRuseOpenid = weChat.FromUserName; + + try + { + _unitOfWork.BeginTran(); + await _dal.Db.Updateable(ticket).ExecuteCommandAsync(); + if (isNewBind) + await _dal.Db.Insertable(bindUser).ExecuteCommandAsync(); + else + await _dal.Db.Updateable(bindUser).ExecuteCommandAsync(); + _unitOfWork.CommitTran(); + } + catch + { + _unitOfWork.RollbackTran(); + throw; + } + return @$" + + {DateTime.Now.Ticks.ToString()} + + "; + } + /// + /// 上报位置地理事件 + /// + /// + /// + private async Task EventLOCATION(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + 维度:{weChat.Latitude}经度:{weChat.Longitude}位置精度:{weChat.Precision}]]>"; + }); + } + /// + /// 点击菜单按钮事件 + /// + /// + /// + private async Task EventCLICK(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.EventKey}]]>"; + }); + } + /// + /// 点击菜单网址事件 + /// + /// + /// + private async Task EventVIEW(WeChatXMLDto weChat) + { + return await Task.Run(() => + { + return @$" + + {DateTime.Now.Ticks.ToString()} + + {weChat.EventKey}]]>"; + }); + } + + } +} \ No newline at end of file diff --git a/Blog.Core.Services/WeChatPushLogServices.cs b/Blog.Core.Services/WeChatPushLogServices.cs new file mode 100644 index 00000000..8ca342f8 --- /dev/null +++ b/Blog.Core.Services/WeChatPushLogServices.cs @@ -0,0 +1,34 @@ +using Blog.Core.Common; +using Blog.Core.Common.Helper; +using Blog.Core.IRepository.Base; +using Blog.Core.IRepository.UnitOfWork; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using Blog.Core.Services.BASE; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Services +{ + /// + /// WeChatPushLogServices + /// + public class WeChatPushLogServices : BaseServices, IWeChatPushLogServices + { + readonly IBaseRepository _dal; + readonly IUnitOfWork _unitOfWork; + readonly ILogger _logger; + public WeChatPushLogServices(IBaseRepository dal,IUnitOfWork unitOfWork, ILogger logger) + { + this._dal = dal; + base.BaseDal = dal; + this._unitOfWork = unitOfWork; + this._logger = logger; + } + + } +} \ No newline at end of file diff --git a/Blog.Core.Services/WeChatSubServices.cs b/Blog.Core.Services/WeChatSubServices.cs new file mode 100644 index 00000000..dfd98402 --- /dev/null +++ b/Blog.Core.Services/WeChatSubServices.cs @@ -0,0 +1,34 @@ +using Blog.Core.Common; +using Blog.Core.Common.Helper; +using Blog.Core.IRepository.Base; +using Blog.Core.IRepository.UnitOfWork; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using Blog.Core.Services.BASE; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Services +{ + /// + /// WeChatSubServices + /// + public class WeChatSubServices : BaseServices, IWeChatSubServices + { + readonly IBaseRepository _dal; + readonly IUnitOfWork _unitOfWork; + readonly ILogger _logger; + public WeChatSubServices(IBaseRepository dal,IUnitOfWork unitOfWork, ILogger logger) + { + this._dal = dal; + base.BaseDal = dal; + this._unitOfWork = unitOfWork; + this._logger = logger; + } + + } +} \ No newline at end of file From 8016c456abb76da54147fafeffb8269892cd7284 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 9 Oct 2021 14:35:54 +0800 Subject: [PATCH 031/382] =?UTF-8?q?fix=EF=BC=9Aremove=20some=20no=20need?= =?UTF-8?q?=20using?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/WeChatCompanyController.cs | 4 +--- Blog.Core.Api/Controllers/WeChatConfigController.cs | 4 +--- Blog.Core.Api/Controllers/WeChatController.cs | 8 +------- Blog.Core.Api/Controllers/WeChatPushLogController.cs | 4 +--- Blog.Core.Api/Controllers/WeChatSubController.cs | 4 +--- Blog.Core.Api/appsettings.json | 2 +- 6 files changed, 6 insertions(+), 20 deletions(-) diff --git a/Blog.Core.Api/Controllers/WeChatCompanyController.cs b/Blog.Core.Api/Controllers/WeChatCompanyController.cs index 50cec463..4fa6eea5 100644 --- a/Blog.Core.Api/Controllers/WeChatCompanyController.cs +++ b/Blog.Core.Api/Controllers/WeChatCompanyController.cs @@ -1,9 +1,7 @@ -using System.Collections.Generic; using System.Threading.Tasks; -using Blog.Core.Common.Helper; using Blog.Core.IServices; using Blog.Core.Model; -using Blog.Core.Model.Models; +using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; diff --git a/Blog.Core.Api/Controllers/WeChatConfigController.cs b/Blog.Core.Api/Controllers/WeChatConfigController.cs index e3c7707a..c597cb3f 100644 --- a/Blog.Core.Api/Controllers/WeChatConfigController.cs +++ b/Blog.Core.Api/Controllers/WeChatConfigController.cs @@ -1,9 +1,7 @@ -using System.Collections.Generic; using System.Threading.Tasks; -using Blog.Core.Common.Helper; using Blog.Core.IServices; using Blog.Core.Model; -using Blog.Core.Model.Models; +using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; diff --git a/Blog.Core.Api/Controllers/WeChatController.cs b/Blog.Core.Api/Controllers/WeChatController.cs index e8b57d23..66ea8c2f 100644 --- a/Blog.Core.Api/Controllers/WeChatController.cs +++ b/Blog.Core.Api/Controllers/WeChatController.cs @@ -1,13 +1,7 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; +using System.IO; using System.Threading.Tasks; -using System.Xml; -using Blog.Core.Common.Helper; using Blog.Core.IServices; using Blog.Core.Model; -using Blog.Core.Model.Models; using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; diff --git a/Blog.Core.Api/Controllers/WeChatPushLogController.cs b/Blog.Core.Api/Controllers/WeChatPushLogController.cs index 8b0dce8e..1fe1603d 100644 --- a/Blog.Core.Api/Controllers/WeChatPushLogController.cs +++ b/Blog.Core.Api/Controllers/WeChatPushLogController.cs @@ -1,9 +1,7 @@ -using System.Collections.Generic; using System.Threading.Tasks; -using Blog.Core.Common.Helper; using Blog.Core.IServices; using Blog.Core.Model; -using Blog.Core.Model.Models; +using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; diff --git a/Blog.Core.Api/Controllers/WeChatSubController.cs b/Blog.Core.Api/Controllers/WeChatSubController.cs index d341c85f..bd8d1759 100644 --- a/Blog.Core.Api/Controllers/WeChatSubController.cs +++ b/Blog.Core.Api/Controllers/WeChatSubController.cs @@ -1,9 +1,7 @@ -using System.Collections.Generic; using System.Threading.Tasks; -using Blog.Core.Common.Helper; using Blog.Core.IServices; using Blog.Core.Model; -using Blog.Core.Model.Models; +using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 0d697707..c31755df 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -1,5 +1,5 @@ { - "urls": "http://*:8081", //web服务端口,如果用IIS部署,把这个去掉 + "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 "Logging": { "LogLevel": { "Default": "Information", //加入Default否则log4net本地写入不了日志 From e9fc737362f55c6c2749ec0cb8abbc3cb53c5f21 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 9 Oct 2021 16:40:36 +0800 Subject: [PATCH 032/382] Update WeChatQR.cs --- Blog.Core.Model/Models/WeChatQR.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Model/Models/WeChatQR.cs b/Blog.Core.Model/Models/WeChatQR.cs index 6df0bcb7..06ea8684 100644 --- a/Blog.Core.Model/Models/WeChatQR.cs +++ b/Blog.Core.Model/Models/WeChatQR.cs @@ -15,7 +15,7 @@ public partial class WeChatQR /// /// 主键id,ticket /// - [SugarColumn(Length = 200,IsPrimaryKey =true, IsNullable = false)] + [SugarColumn(Length = 200, IsPrimaryKey = true, IsNullable = false)] public string QRticket { get; set; } /// @@ -54,7 +54,7 @@ public partial class WeChatQR /// /// 使用时间 /// - [SugarColumn(Length = 100, IsNullable = true)] + [SugarColumn(IsNullable = true)] public DateTime? QRuseTime { get; set; } /// From 890b24e0bb1c03018ee6489cdc925a000f6d6beb Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 10 Oct 2021 21:13:07 +0800 Subject: [PATCH 033/382] feat: batch import module and permission --- Blog.Core.Api/Blog.Core.xml | 14 +++++++ Blog.Core.Api/Controllers/ModuleController.cs | 38 ++++++++++++++++++- .../Controllers/PermissionController.cs | 36 ++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index cef46a95..93505324 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -266,6 +266,13 @@ + + + 导入多条接口信息 + + + + 服务器配置信息 @@ -415,6 +422,13 @@ + + + 导入多条菜单信息 + + + + 角色管理 diff --git a/Blog.Core.Api/Controllers/ModuleController.cs b/Blog.Core.Api/Controllers/ModuleController.cs index a7ad5e58..4c2ff0c9 100644 --- a/Blog.Core.Api/Controllers/ModuleController.cs +++ b/Blog.Core.Api/Controllers/ModuleController.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; using Blog.Core.Common.HttpContextUser; @@ -21,7 +22,7 @@ public class ModuleController : ControllerBase readonly IModuleServices _moduleServices; readonly IUser _user; - + public ModuleController(IModuleServices moduleServices, IUser user) { _moduleServices = moduleServices; @@ -136,5 +137,40 @@ public async Task> Delete(int id) return data; } + + /// + /// 导入多条接口信息 + /// + /// + /// + // POST: api/User + [HttpPost] + public async Task> BatchPost([FromBody] List modules) + { + var data = new MessageModel(); + string ids = string.Empty; + int sucCount = 0; + + for (int i = 0; i < modules.Count; i++) + { + var module = modules[i]; + if (module != null) + { + module.CreateId = _user.ID; + module.CreateBy = _user.Name; + ids += (await _moduleServices.Add(module)); + sucCount++; + } + } + + data.success = ids.IsNotEmptyOrNull(); + if (data.success) + { + data.response = ids; + data.msg = $"{sucCount}条数据添加成功"; + } + + return data; + } } } diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 1dbdb0a2..8bbcb03b 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -528,6 +528,42 @@ public async Task> Delete(int id) return data; } + + /// + /// 导入多条菜单信息 + /// + /// + /// + // POST: api/User + [HttpPost] + public async Task> BatchPost([FromBody] List permissions) + { + var data = new MessageModel(); + string ids = string.Empty; + int sucCount = 0; + + for (int i = 0; i < permissions.Count; i++) + { + var permission = permissions[i]; + if (permission != null) + { + permission.CreateId = _user.ID; + permission.CreateBy = _user.Name; + ids += (await _permissionServices.Add(permission)); + sucCount++; + } + } + + data.success = ids.IsNotEmptyOrNull(); + if (data.success) + { + data.response = ids; + data.msg = $"{sucCount}条数据添加成功"; + } + + return data; + } + } public class AssignView From 68dc17d7d53f7de984a1aca37b7a28be44a83fe0 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 16 Oct 2021 09:56:16 +0800 Subject: [PATCH 034/382] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c75235b0..38c009aa 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core5.0 Api + Vue 2.x - [x] 新增 - ES 搜索配置; - [x] 新增 - Apollo 配置; - [x] 新增 Kafka 消息队列,并配合实现EventBus ✨; +- [x] 新增 微信公众号管理,并集成到Blog.Admin后台 ✨; - [ ] 计划 - 数据部门权限; 微服务模块: From 40f3f388af15ee661e4d4105da22b01c9b6f78c0 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 5 Nov 2021 14:10:08 +0800 Subject: [PATCH 035/382] add skywalking config --- Blog.Core.Api/Blog.Core.Api.csproj | 1 + Blog.Core.Api/Properties/launchSettings.json | 3 +- Blog.Core.Api/skyapm.json | 29 ++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 Blog.Core.Api/skyapm.json diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index da5c4e05..f9cd397d 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -44,6 +44,7 @@ + diff --git a/Blog.Core.Api/Properties/launchSettings.json b/Blog.Core.Api/Properties/launchSettings.json index 09b07121..425ec45f 100644 --- a/Blog.Core.Api/Properties/launchSettings.json +++ b/Blog.Core.Api/Properties/launchSettings.json @@ -13,7 +13,8 @@ "commandName": "Project", "launchBrowser": true, "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" + "ASPNETCORE_ENVIRONMENT": "Development", + "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore" }, "applicationUrl": "http://localhost:9291" }, diff --git a/Blog.Core.Api/skyapm.json b/Blog.Core.Api/skyapm.json new file mode 100644 index 00000000..357eb12d --- /dev/null +++ b/Blog.Core.Api/skyapm.json @@ -0,0 +1,29 @@ +{ + "SkyWalking": { + "ServiceName": "blog-core-api", + "Namespace": "", + "HeaderVersions": [ + "sw8" + ], + "Sampling": { + "SamplePer3Secs": -1, + "Percentage": -1.0 + }, + "Logging": { + "Level": "Information", + "FilePath": "logs/skyapm-{Date}.log" + }, + "Transport": { + "Interval": 3000, + "ProtocolVersion": "v8", + "QueueSize": 30000, + "BatchSize": 3000, + "gRPC": { + "Servers": "elasticsearch:11800", + "Timeout": 10000, + "ConnectTimeout": 10000, + "ReportTimeout": 600000 + } + } + } +} From 06b7f8abe82746051137533d476fa5013ae09b00 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 9 Nov 2021 17:39:05 +0800 Subject: [PATCH 036/382] Update NacosSetup.cs --- Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs b/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs index d314f6ea..cf1ee933 100644 --- a/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs @@ -1,10 +1,11 @@ -using Blog.Core.Common; +using Blog.Core.Common; using Blog.Core.Common.Helper; using Blog.Core.Extensions.NacosConfig; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Nacos.V2.DependencyInjection; using System; +using ConfigurationManager = Blog.Core.Common.Helper.ConfigurationManager; namespace Blog.Core.Extensions { From bd53e42a228fc97321dbe78193d8cd15b208778a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 9 Nov 2021 18:02:41 +0800 Subject: [PATCH 037/382] update to .net6.0 --- Blog.Core.Api/Blog.Core.Api.csproj | 2 +- Blog.Core.Common/Blog.Core.Common.csproj | 2 +- Blog.Core.ConsoleApp/Blog.Core.ConsoleApp.csproj | 2 +- Blog.Core.EventBus/Blog.Core.EventBus.csproj | 2 +- Blog.Core.Extensions/Blog.Core.Extensions.csproj | 2 +- Blog.Core.FrameWork/Blog.Core.FrameWork.csproj | 2 +- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 2 +- Blog.Core.IServices/Blog.Core.IServices.csproj | 2 +- Blog.Core.Model/Blog.Core.Model.csproj | 2 +- Blog.Core.Publish.Docker.Jenkins.sh | 2 +- Blog.Core.Publish.Linux.sh | 4 ++-- Blog.Core.Publish.bat | 4 ++-- Blog.Core.Repository/Blog.Core.Repository.csproj | 2 +- Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj | 2 +- Blog.Core.Services/Blog.Core.Services.csproj | 2 +- Blog.Core.Tasks/Blog.Core.Tasks.csproj | 2 +- Blog.Core.Tests/Blog.Core.Tests.csproj | 2 +- 17 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index f9cd397d..3bcb7f68 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -4,7 +4,7 @@ Exe - net5.0 + net6.0 OutOfProcess Linux diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 27b90d2f..9cca04a4 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 diff --git a/Blog.Core.ConsoleApp/Blog.Core.ConsoleApp.csproj b/Blog.Core.ConsoleApp/Blog.Core.ConsoleApp.csproj index 20827042..41f1d5ad 100644 --- a/Blog.Core.ConsoleApp/Blog.Core.ConsoleApp.csproj +++ b/Blog.Core.ConsoleApp/Blog.Core.ConsoleApp.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 diff --git a/Blog.Core.EventBus/Blog.Core.EventBus.csproj b/Blog.Core.EventBus/Blog.Core.EventBus.csproj index b71254af..c61cc131 100644 --- a/Blog.Core.EventBus/Blog.Core.EventBus.csproj +++ b/Blog.Core.EventBus/Blog.Core.EventBus.csproj @@ -1,7 +1,7 @@ - netcoreapp5.0 + net6.0 diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 76ce50ee..4d04f49b 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 diff --git a/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj b/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj index b11deec8..b167521c 100644 --- a/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj +++ b/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj @@ -1,7 +1,7 @@ - net5.0 + net6.0 diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index 0dba222a..a726d7cd 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 diff --git a/Blog.Core.IServices/Blog.Core.IServices.csproj b/Blog.Core.IServices/Blog.Core.IServices.csproj index e1055a78..820e1511 100644 --- a/Blog.Core.IServices/Blog.Core.IServices.csproj +++ b/Blog.Core.IServices/Blog.Core.IServices.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index c5e83d77..ed0fb852 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 diff --git a/Blog.Core.Publish.Docker.Jenkins.sh b/Blog.Core.Publish.Docker.Jenkins.sh index 42f074a7..3c561c67 100644 --- a/Blog.Core.Publish.Docker.Jenkins.sh +++ b/Blog.Core.Publish.Docker.Jenkins.sh @@ -4,7 +4,7 @@ cd Blog.Core.Api dotnet publish echo "Successfully!!!! ^ please see the file ." -cd bin/Debug/net5.0/publish/ +cd bin/Debug/net6.0/publish/ #rm -f appsettings.json #\cp -rf /var/jenkins_home/workspace/SecurityConfig/Blog.Core/appsettings.json appsettings.json diff --git a/Blog.Core.Publish.Linux.sh b/Blog.Core.Publish.Linux.sh index eb01105c..f3c3f98d 100644 --- a/Blog.Core.Publish.Linux.sh +++ b/Blog.Core.Publish.Linux.sh @@ -1,6 +1,6 @@ git pull; rm -rf .PublishFiles; dotnet build; -dotnet publish -o /home/Blog.Core/Blog.Core.Api/bin/Debug/net5.0; -cp -r /home/Blog.Core/Blog.Core.Api/bin/Debug/net5.0 .PublishFiles; +dotnet publish -o /home/Blog.Core/Blog.Core.Api/bin/Debug/net6.0; +cp -r /home/Blog.Core/Blog.Core.Api/bin/Debug/net6.0 .PublishFiles; echo "Successfully!!!! ^ please see the file .PublishFiles"; \ No newline at end of file diff --git a/Blog.Core.Publish.bat b/Blog.Core.Publish.bat index 84cfccf6..f022508d 100644 --- a/Blog.Core.Publish.bat +++ b/Blog.Core.Publish.bat @@ -8,11 +8,11 @@ dotnet build cd Blog.Core.Api -dotnet publish -o ..\Blog.Core.Api\bin\Debug\net5.0\ +dotnet publish -o ..\Blog.Core.Api\bin\Debug\net6.0\ md ..\.PublishFiles -xcopy ..\Blog.Core.Api\bin\Debug\net5.0\*.* ..\.PublishFiles\ /s /e +xcopy ..\Blog.Core.Api\bin\Debug\net6.0\*.* ..\.PublishFiles\ /s /e echo "Successfully!!!! ^ please see the file .PublishFiles" diff --git a/Blog.Core.Repository/Blog.Core.Repository.csproj b/Blog.Core.Repository/Blog.Core.Repository.csproj index 2697a74d..3bb7270c 100644 --- a/Blog.Core.Repository/Blog.Core.Repository.csproj +++ b/Blog.Core.Repository/Blog.Core.Repository.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 diff --git a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj index b5c2e0ed..99fef26f 100644 --- a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj +++ b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj @@ -1,7 +1,7 @@ - net5.0 + net6.0 diff --git a/Blog.Core.Services/Blog.Core.Services.csproj b/Blog.Core.Services/Blog.Core.Services.csproj index ca56a61a..ae5e969a 100644 --- a/Blog.Core.Services/Blog.Core.Services.csproj +++ b/Blog.Core.Services/Blog.Core.Services.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 diff --git a/Blog.Core.Tasks/Blog.Core.Tasks.csproj b/Blog.Core.Tasks/Blog.Core.Tasks.csproj index 0dc571bf..fd613b07 100644 --- a/Blog.Core.Tasks/Blog.Core.Tasks.csproj +++ b/Blog.Core.Tasks/Blog.Core.Tasks.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 diff --git a/Blog.Core.Tests/Blog.Core.Tests.csproj b/Blog.Core.Tests/Blog.Core.Tests.csproj index ced47c1f..e1d81fa8 100644 --- a/Blog.Core.Tests/Blog.Core.Tests.csproj +++ b/Blog.Core.Tests/Blog.Core.Tests.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 false From cc38ef57ee5b786f40aaca73f02bf543877465b6 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 9 Nov 2021 18:04:56 +0800 Subject: [PATCH 038/382] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 6aed122f..4c0ba99f 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -12,7 +12,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 5.0.100 + dotnet-version: 6.0 - name: Build with dotnet run: dotnet build --configuration Release - name: Build image From ecf6f038375579459534b2beaa800ad6dc00b8e2 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 9 Nov 2021 18:24:18 +0800 Subject: [PATCH 039/382] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 4c0ba99f..192e3ab2 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -12,7 +12,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0 + dotnet-version: 6.0.1 - name: Build with dotnet run: dotnet build --configuration Release - name: Build image From 74fdbba300cab2eee0b35143e8089447c5b74757 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 9 Nov 2021 18:24:55 +0800 Subject: [PATCH 040/382] Update Dockerfile --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7445e602..bdc7f68f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,11 +5,11 @@ #如果你想先手动dotnet build成可执行的二进制文件,然后再构建镜像,请看.Api层下的dockerfile。 -FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base +FROM mcr.microsoft.com/dotnet/aspnet:6.0-buster-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build +FROM mcr.microsoft.com/dotnet/sdk:6.0-buster-slim AS build WORKDIR /src COPY ["Blog.Core.Api/Blog.Core.Api.csproj", "Blog.Core.Api/"] COPY ["Blog.Core.Extensions/Blog.Core.Extensions.csproj", "Blog.Core.Extensions/"] @@ -32,4 +32,4 @@ FROM base AS final WORKDIR /app COPY --from=publish /app/publish . EXPOSE 9291 -ENTRYPOINT ["dotnet", "Blog.Core.Api.dll"] \ No newline at end of file +ENTRYPOINT ["dotnet", "Blog.Core.Api.dll"] From b5d4e9d6bca53b89bf3ab2bde0e6739a2d923e4d Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 9 Nov 2021 18:26:15 +0800 Subject: [PATCH 041/382] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 192e3ab2..bdbdfe3d 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -12,7 +12,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0.1 + dotnet-version: 6.0.0 - name: Build with dotnet run: dotnet build --configuration Release - name: Build image From 40da244ef9ba7525bd826966dc26cb6790b52667 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 9 Nov 2021 18:27:09 +0800 Subject: [PATCH 042/382] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index bdbdfe3d..faa57fc4 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -12,7 +12,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0.0 + dotnet-version: 6.0.x - name: Build with dotnet run: dotnet build --configuration Release - name: Build image From 61d352f117e070896f4e08a11e08e04a9125b4b6 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 9 Nov 2021 18:31:07 +0800 Subject: [PATCH 043/382] Update Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index bdc7f68f..95bdaf92 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,11 +5,11 @@ #如果你想先手动dotnet build成可执行的二进制文件,然后再构建镜像,请看.Api层下的dockerfile。 -FROM mcr.microsoft.com/dotnet/aspnet:6.0-buster-slim AS base +FROM mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/sdk:6.0-buster-slim AS build +FROM mcr.microsoft.com/dotnet/sdk:6.0-bullseye-slim AS build WORKDIR /src COPY ["Blog.Core.Api/Blog.Core.Api.csproj", "Blog.Core.Api/"] COPY ["Blog.Core.Extensions/Blog.Core.Extensions.csproj", "Blog.Core.Extensions/"] From 8eb59ee3daafa5cfe3bac0d26b1c9d8d5b929df4 Mon Sep 17 00:00:00 2001 From: tianyu Date: Thu, 18 Nov 2021 10:00:48 +0800 Subject: [PATCH 044/382] =?UTF-8?q?=E7=94=B0=E9=9B=A8=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E5=AF=B9=E8=B1=A1=20SqlSugarScope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs | 2 +- Blog.Core.Repository/BASE/BaseRepository.cs | 2 +- Blog.Core.Repository/UnitOfWork/IUnitOfWork.cs | 2 +- Blog.Core.Repository/UnitOfWork/UnitOfWork.cs | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 799a80d2..d4ec5ad5 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -93,7 +93,7 @@ public static void AddSqlsugarSetup(this IServiceCollection services) } ); }); - return new SqlSugarClient(listConfig); + return new SqlSugarScope(listConfig); }); } diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 2c100dcf..381801d7 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -16,7 +16,7 @@ namespace Blog.Core.Repository.Base public class BaseRepository : IBaseRepository where TEntity : class, new() { private readonly IUnitOfWork _unitOfWork; - private SqlSugarClient _dbBase; + private SqlSugarScope _dbBase; private ISqlSugarClient _db { diff --git a/Blog.Core.Repository/UnitOfWork/IUnitOfWork.cs b/Blog.Core.Repository/UnitOfWork/IUnitOfWork.cs index b764cf5e..9edf67ad 100644 --- a/Blog.Core.Repository/UnitOfWork/IUnitOfWork.cs +++ b/Blog.Core.Repository/UnitOfWork/IUnitOfWork.cs @@ -4,7 +4,7 @@ namespace Blog.Core.IRepository.UnitOfWork { public interface IUnitOfWork { - SqlSugarClient GetDbClient(); + SqlSugarScope GetDbClient(); void BeginTran(); diff --git a/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs b/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs index 4eb2a695..8d8c2e26 100644 --- a/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs +++ b/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs @@ -20,10 +20,10 @@ public UnitOfWork(ISqlSugarClient sqlSugarClient, ILogger logger) /// 获取DB,保证唯一性 /// /// - public SqlSugarClient GetDbClient() + public SqlSugarScope GetDbClient() { // 必须要as,后边会用到切换数据库操作 - return _sqlSugarClient as SqlSugarClient; + return _sqlSugarClient as SqlSugarScope; } public void BeginTran() From 24d07f50b7cdf4a30e11dc8ca058128c8f4b9ff3 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 18 Nov 2021 10:32:41 +0800 Subject: [PATCH 045/382] Fixed bug #212 --- .../Controllers/DbFirst/DbFirstController.cs | 4 ++-- Blog.Core.Common/Seed/FrameSeed.cs | 24 +++++++++---------- Blog.Core.Common/Seed/MyContext.cs | 22 ++++++++--------- .../DependencyInjection/DI_Test.cs | 4 ++-- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs b/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs index 464c3eaf..31e7bf51 100644 --- a/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs +++ b/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs @@ -15,7 +15,7 @@ namespace Blog.Core.Controllers //[Authorize(Permissions.Name)] public class DbFirstController : ControllerBase { - private readonly SqlSugarClient _sqlSugarClient; + private readonly SqlSugarScope _sqlSugarClient; private readonly IWebHostEnvironment Env; /// @@ -23,7 +23,7 @@ public class DbFirstController : ControllerBase /// public DbFirstController(ISqlSugarClient sqlSugarClient, IWebHostEnvironment env) { - _sqlSugarClient = sqlSugarClient as SqlSugarClient; + _sqlSugarClient = sqlSugarClient as SqlSugarScope; Env = env; } diff --git a/Blog.Core.Common/Seed/FrameSeed.cs b/Blog.Core.Common/Seed/FrameSeed.cs index 649f5cd6..ddd273c1 100644 --- a/Blog.Core.Common/Seed/FrameSeed.cs +++ b/Blog.Core.Common/Seed/FrameSeed.cs @@ -17,7 +17,7 @@ public class FrameSeed /// 数据库表名数组,默认空,生成所有表 /// /// - public static bool CreateControllers(SqlSugarClient sqlSugarClient, string ConnId = null, bool isMuti = false, string[] tableNames = null) + public static bool CreateControllers(SqlSugarScope sqlSugarClient, string ConnId = null, bool isMuti = false, string[] tableNames = null) { Create_Controller_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.Api.Controllers", "Blog.Core.Api.Controllers", tableNames, "", isMuti); return true; @@ -31,7 +31,7 @@ public static bool CreateControllers(SqlSugarClient sqlSugarClient, string ConnI /// 数据库表名数组,默认空,生成所有表 /// /// - public static bool CreateModels(SqlSugarClient sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) + public static bool CreateModels(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) { Create_Model_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.Model", "Blog.Core.Model.Models", tableNames, "", isMuti); return true; @@ -45,7 +45,7 @@ public static bool CreateModels(SqlSugarClient sqlSugarClient, string ConnId, bo /// /// 数据库表名数组,默认空,生成所有表 /// - public static bool CreateIRepositorys(SqlSugarClient sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) + public static bool CreateIRepositorys(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) { Create_IRepository_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.IRepository", "Blog.Core.IRepository", tableNames, "", isMuti); return true; @@ -61,7 +61,7 @@ public static bool CreateIRepositorys(SqlSugarClient sqlSugarClient, string Conn /// /// 数据库表名数组,默认空,生成所有表 /// - public static bool CreateIServices(SqlSugarClient sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) + public static bool CreateIServices(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) { Create_IServices_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.IServices", "Blog.Core.IServices", tableNames, "", isMuti); return true; @@ -77,7 +77,7 @@ public static bool CreateIServices(SqlSugarClient sqlSugarClient, string ConnId, /// /// 数据库表名数组,默认空,生成所有表 /// - public static bool CreateRepository(SqlSugarClient sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) + public static bool CreateRepository(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) { Create_Repository_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.Repository", "Blog.Core.Repository", tableNames, "", isMuti); return true; @@ -93,7 +93,7 @@ public static bool CreateRepository(SqlSugarClient sqlSugarClient, string ConnId /// /// 数据库表名数组,默认空,生成所有表 /// - public static bool CreateServices(SqlSugarClient sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) + public static bool CreateServices(SqlSugarScope sqlSugarClient, string ConnId, bool isMuti = false, string[] tableNames = null) { Create_Services_ClassFileByDBTalbe(sqlSugarClient, ConnId, $@"C:\my-file\Blog.Core.Services", "Blog.Core.Services", tableNames, "", isMuti); return true; @@ -115,7 +115,7 @@ public static bool CreateServices(SqlSugarClient sqlSugarClient, string ConnId, /// /// 是否序列化 private static void Create_Controller_ClassFileByDBTalbe( - SqlSugarClient sqlSugarClient, + SqlSugarScope sqlSugarClient, string ConnId, string strPath, string strNameSpace, @@ -263,7 +263,7 @@ public async Task> Delete(string id) /// /// 是否序列化 private static void Create_Model_ClassFileByDBTalbe( - SqlSugarClient sqlSugarClient, + SqlSugarScope sqlSugarClient, string ConnId, string strPath, string strNameSpace, @@ -328,7 +328,7 @@ public class {ClassName}" + (string.IsNullOrEmpty(strInterface) ? "" : (" : " + /// 实现接口 /// private static void Create_IRepository_ClassFileByDBTalbe( - SqlSugarClient sqlSugarClient, + SqlSugarScope sqlSugarClient, string ConnId, string strPath, string strNameSpace, @@ -385,7 +385,7 @@ public interface I{ClassName}Repository : IBaseRepository<{ClassName}>" + (strin /// 实现接口 /// private static void Create_IServices_ClassFileByDBTalbe( - SqlSugarClient sqlSugarClient, + SqlSugarScope sqlSugarClient, string ConnId, string strPath, string strNameSpace, @@ -442,7 +442,7 @@ public interface I{ClassName}Services :IBaseServices<{ClassName}>" + (string.IsN /// 实现接口 /// private static void Create_Repository_ClassFileByDBTalbe( - SqlSugarClient sqlSugarClient, + SqlSugarScope sqlSugarClient, string ConnId, string strPath, string strNameSpace, @@ -504,7 +504,7 @@ public class {ClassName}Repository : BaseRepository<{ClassName}>, I{ClassName}Re /// 实现接口 /// private static void Create_Services_ClassFileByDBTalbe( - SqlSugarClient sqlSugarClient, + SqlSugarScope sqlSugarClient, string ConnId, string strPath, string strNameSpace, diff --git a/Blog.Core.Common/Seed/MyContext.cs b/Blog.Core.Common/Seed/MyContext.cs index 8b1e1d14..81d5bc8a 100644 --- a/Blog.Core.Common/Seed/MyContext.cs +++ b/Blog.Core.Common/Seed/MyContext.cs @@ -11,7 +11,7 @@ public class MyContext private static string _connectionString = connectObject.Connection; private static DbType _dbType = (DbType)connectObject.DbType; public static string ConnId = connectObject.ConnId; - private SqlSugarClient _db; + private SqlSugarScope _db; /// /// 连接字符串 @@ -56,7 +56,7 @@ public static DbType DbType /// 数据连接对象 /// Blog.Core /// - public SqlSugarClient Db + public SqlSugarScope Db { get { return _db; } private set { _db = value; } @@ -71,7 +71,7 @@ public MyContext(ISqlSugarClient sqlSugarClient) if (string.IsNullOrEmpty(_connectionString)) throw new ArgumentNullException("数据库连接字符串为空"); - _db = sqlSugarClient as SqlSugarClient; + _db = sqlSugarClient as SqlSugarScope; } @@ -92,10 +92,10 @@ public MyContext(ISqlSugarClient sqlSugarClient) /// /// db /// 返回值 - public SimpleClient GetEntityDB(SqlSugarClient db) where T : class, new() - { - return new SimpleClient(db); - } + //public SimpleClient GetEntityDB(SqlSugarClient db) where T : class, new() + //{ + // return new SimpleClient(db); + //} @@ -197,9 +197,9 @@ public static ConnectionConfig GetConnectionConfig(bool blnIsAutoCloseConnection /// /// config /// 返回值 - public static SqlSugarClient GetCustomDB(ConnectionConfig config) + public static SqlSugarScope GetCustomDB(ConnectionConfig config) { - return new SqlSugarClient(config); + return new SqlSugarScope(config); } /// /// 功能描述:获取一个自定义的数据库处理对象 @@ -207,7 +207,7 @@ public static SqlSugarClient GetCustomDB(ConnectionConfig config) /// /// sugarClient /// 返回值 - public static SimpleClient GetCustomEntityDB(SqlSugarClient sugarClient) where T : class, new() + public static SimpleClient GetCustomEntityDB(SqlSugarScope sugarClient) where T : class, new() { return new SimpleClient(sugarClient); } @@ -219,7 +219,7 @@ public static SqlSugarClient GetCustomDB(ConnectionConfig config) /// 返回值 public static SimpleClient GetCustomEntityDB(ConnectionConfig config) where T : class, new() { - SqlSugarClient sugarClient = GetCustomDB(config); + SqlSugarScope sugarClient = GetCustomDB(config); return GetCustomEntityDB(sugarClient); } #endregion diff --git a/Blog.Core.Tests/DependencyInjection/DI_Test.cs b/Blog.Core.Tests/DependencyInjection/DI_Test.cs index 3d90a000..ac33a12f 100644 --- a/Blog.Core.Tests/DependencyInjection/DI_Test.cs +++ b/Blog.Core.Tests/DependencyInjection/DI_Test.cs @@ -38,7 +38,7 @@ public void DI_Connet_Test() services.AddScoped(o => { - return new SqlSugar.SqlSugarClient(new SqlSugar.ConnectionConfig() + return new SqlSugar.SqlSugarScope(new SqlSugar.ConnectionConfig() { ConnectionString = GetMainConnectionDb().Connection,//必填, 数据库连接字符串 DbType = (SqlSugar.DbType)GetMainConnectionDb().DbType,//必填, 数据库类型 @@ -150,7 +150,7 @@ public IContainer DICollections() services.AddScoped(o => { - return new SqlSugar.SqlSugarClient(new SqlSugar.ConnectionConfig() + return new SqlSugar.SqlSugarScope(new SqlSugar.ConnectionConfig() { ConnectionString = GetMainConnectionDb().Connection,//必填, 数据库连接字符串 DbType = (SqlSugar.DbType)GetMainConnectionDb().DbType,//必填, 数据库类型 From df80cf78bc316140503cb57a2b6affed66a3e966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=81=E9=AA=91?= <1075858260@qq.com> Date: Thu, 18 Nov 2021 16:08:03 +0800 Subject: [PATCH 046/382] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=89=A9=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Attribute/EnumAttachedAttribute.cs | 28 +++++ Blog.Core.Common/Extensions/EnumExtensions.cs | 117 ++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 Blog.Core.Common/Attribute/EnumAttachedAttribute.cs create mode 100644 Blog.Core.Common/Extensions/EnumExtensions.cs diff --git a/Blog.Core.Common/Attribute/EnumAttachedAttribute.cs b/Blog.Core.Common/Attribute/EnumAttachedAttribute.cs new file mode 100644 index 00000000..8d1ea85e --- /dev/null +++ b/Blog.Core.Common/Attribute/EnumAttachedAttribute.cs @@ -0,0 +1,28 @@ +using System; + +namespace Blog.Core.Common +{ + + [AttributeUsage(AttributeTargets.Field, Inherited = true)] + public class EnumAttachedAttribute : Attribute + { + /// + /// 标签类型 样式 + /// + public string TagType { get; set; } + /// + /// 中文描述 + /// + public string Description { get; set; } + + /// + /// 图标 + /// + public string Icon { get; set; } + + /// + /// 图标颜色 + /// + public string IconColor { get; set; } + } +} diff --git a/Blog.Core.Common/Extensions/EnumExtensions.cs b/Blog.Core.Common/Extensions/EnumExtensions.cs new file mode 100644 index 00000000..6c714880 --- /dev/null +++ b/Blog.Core.Common/Extensions/EnumExtensions.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Reflection; + +namespace Blog.Core.Common.Extensions +{ + /// + /// 枚举的扩展方法 + /// + public static class EnumExtensions + { + /// + /// 获取到对应枚举的描述-没有描述信息,返回枚举值 + /// + /// + /// + public static string EnumDescription(this Enum @enum) + { + Type type = @enum.GetType(); + string name = Enum.GetName(type, @enum); + if (name == null) + { + return null; + } + FieldInfo field = type.GetField(name); + if (!(Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) is DescriptionAttribute attribute)) + { + return name; + } + return attribute?.Description; + } + public static int ToEnumInt(this Enum e) + { + try + { + return e.GetHashCode(); + } + catch (Exception) + { + return 0; + } + } + + public static List EnumToList() + { + return setEnumToList(typeof(T)); + } + + public static List EnumToList(Type enumType) + { + return setEnumToList(enumType); + } + + private static List setEnumToList(Type enumType) + { + List list = new List(); + foreach (var e in Enum.GetValues(enumType)) + { + EnumDto m = new(); + object[] attacheds = e.GetType().GetField(e.ToString()).GetCustomAttributes(typeof(EnumAttachedAttribute), true); + if (attacheds != null && attacheds.Length > 0) + { + EnumAttachedAttribute aa = attacheds[0] as EnumAttachedAttribute; + //m.Attached = aa; + m.TagType = aa.TagType; + m.Description = aa.Description; + m.Icon = aa.Icon; + m.IconColor = aa.IconColor; + } + + m.Value = Convert.ToInt32(e); + m.Name = e.ToString(); + list.Add(m); + } + return list; + } + } + + /// + /// 枚举对象 + /// + public class EnumDto + { + /// + /// 附加属性 + /// + public EnumAttachedAttribute Attached { get; set; } + + /// + /// 标签类型 + /// + public string TagType { get; set; } + /// + /// 枚举描述 + /// + public string Description { get; set; } + /// + /// 枚举名称 + /// + public string Name { get; set; } + /// + /// 枚举值 + /// + public int Value { get; set; } + + /// + /// 图标 + /// + public string Icon { get; set; } + + /// + /// 图标颜色 + /// + public string IconColor { get; set; } + } +} From 41f7e3dbbee9c9c4c2604dd7ff500f1b592c6e33 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Thu, 18 Nov 2021 17:21:28 +0800 Subject: [PATCH 047/382] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 38c009aa..0d118c1b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [English](README-en.md) | 简体中文 -[![sdk](https://img.shields.io/badge/sdk-5.0.1-d.svg)](#) [![Build status](https://github.com/anjoy8/blog.core/workflows/.NET%20Core/badge.svg)](https://github.com/anjoy8/Blog.Core/actions) [![Build Status](https://dev.azure.com/laozhangisphi/anjoy8/_apis/build/status/anjoy8.Blog.Core?branchName=master)](https://dev.azure.com/laozhangisphi/anjoy8/_build?definitionId=1) [![codecov](https://codecov.io/gh/anjoy8/Blog.Core/branch/master/graph/badge.svg)](https://codecov.io/gh/anjoy8/Blog.Core) [![License MIT](https://img.shields.io/badge/license-Apache-blue.svg?style=flat-square)](https://github.com/anjoy8/Blog.Core/blob/master/LICENSE) [![star this repo](http://githubbadges.com/star.svg?user=anjoy8&repo=blog.core&style=flat)](https://github.com/boennemann/badges) [![fork this repo](http://githubbadges.com/fork.svg?user=anjoy8&repo=blog.core&style=flat)](https://github.com/boennemann/badges/fork) [![博客园](https://img.shields.io/badge/博客园-老张的哲学-brightgreen.svg)](https://www.cnblogs.com/laozhang-is-phi/) +[![sdk](https://img.shields.io/badge/sdk-6.0.1-d.svg)](#) [![Build status](https://github.com/anjoy8/blog.core/workflows/.NET%20Core/badge.svg)](https://github.com/anjoy8/Blog.Core/actions) [![Build Status](https://dev.azure.com/laozhangisphi/anjoy8/_apis/build/status/anjoy8.Blog.Core?branchName=master)](https://dev.azure.com/laozhangisphi/anjoy8/_build?definitionId=1) [![codecov](https://codecov.io/gh/anjoy8/Blog.Core/branch/master/graph/badge.svg)](https://codecov.io/gh/anjoy8/Blog.Core) [![License MIT](https://img.shields.io/badge/license-Apache-blue.svg?style=flat-square)](https://github.com/anjoy8/Blog.Core/blob/master/LICENSE) [![star this repo](http://githubbadges.com/star.svg?user=anjoy8&repo=blog.core&style=flat)](https://github.com/boennemann/badges) [![fork this repo](http://githubbadges.com/fork.svg?user=anjoy8&repo=blog.core&style=flat)](https://github.com/boennemann/badges/fork) [![博客园](https://img.shields.io/badge/博客园-老张的哲学-brightgreen.svg)](https://www.cnblogs.com/laozhang-is-phi/)   From 1194476cf1e583b2d4457c2c1645619b782c075b Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 23 Nov 2021 14:21:00 +0800 Subject: [PATCH 048/382] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d118c1b..5cdab6f5 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core5.0 Api + Vue 2.x -**已被多家公司所使用(70+🐱‍🚀):[点击查看列表](https://github.com/anjoy8/Blog.Core/issues/75)** +**已被多家公司所使用(80+🐱‍🚀):[点击查看列表](https://github.com/anjoy8/Blog.Core/issues/75)** 项目单体部署,并发在400~500,一切正常(不保证自己的各种错误写法)。 如果搭配负载,效果更好。 From e342272ae486313dc431d249a1c856504ada6d6a Mon Sep 17 00:00:00 2001 From: flying666 <32569928@qq.com> Date: Sat, 27 Nov 2021 13:01:20 +0800 Subject: [PATCH 049/382] =?UTF-8?q?=E8=A7=A3=E5=86=B3WriteLog=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E9=87=8D=E5=A4=8D=E8=AE=B0=E5=BD=954=E6=AC=A1?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Common/LogHelper/Seri/SerilogServer.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs b/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs index 2c70532d..98affb9e 100644 --- a/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs +++ b/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs @@ -59,9 +59,9 @@ public static void WriteLog(string filename, string[] dataParas, bool IsHeader = } // 展示elk支持输出4种日志级别 Log.Information(logContent); - Log.Warning(logContent); - Log.Error(logContent); - Log.Debug(logContent); + //Log.Warning(logContent); + //Log.Error(logContent); + //Log.Debug(logContent); } else { From 228179eb975a6afd4a5e8dd01db9073442c0b77f Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 27 Nov 2021 15:02:49 +0800 Subject: [PATCH 050/382] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 203013b7..10bb8b96 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,34 +1,17 @@ -# ASP.NET Core (.NET Framework) -# Build and test ASP.NET Core projects targeting the full .NET Framework. -# Add steps that publish symbols, save build artifacts, and more: +# ASP.NET Core +# Build and test ASP.NET Core projects targeting .NET Core. +# Add steps that run tests, create a NuGet package, deploy, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core trigger: -- main +- master pool: - vmImage: 'windows-latest' + vmImage: ubuntu-latest variables: - solution: '**/*.sln' - buildPlatform: 'Any CPU' buildConfiguration: 'Release' steps: -- task: NuGetToolInstaller@1 - -- task: NuGetCommand@2 - inputs: - restoreSolution: '$(solution)' - -- task: VSBuild@1 - inputs: - solution: '$(solution)' - msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"' - platform: '$(buildPlatform)' - configuration: '$(buildConfiguration)' - -- task: VSTest@2 - inputs: - platform: '$(buildPlatform)' - configuration: '$(buildConfiguration)' +- script: dotnet build --configuration $(buildConfiguration) + displayName: 'dotnet build $(buildConfiguration)' From 69941f731014eafebd19b18acfee989740a3eb64 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 27 Nov 2021 15:11:38 +0800 Subject: [PATCH 051/382] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 10bb8b96..0ae3c273 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,5 +13,9 @@ variables: buildConfiguration: 'Release' steps: -- script: dotnet build --configuration $(buildConfiguration) - displayName: 'dotnet build $(buildConfiguration)' +- task: UseDotNet@2 + displayName: 'Use .NET Core sdk' + inputs: + packageType: sdk + version: 6.0.1 + installationPath: $(Agent.ToolsDirectory)/dotnet \ No newline at end of file From 5a71f59e9b426ce205895f4709aaf784ac1bd2b9 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 27 Nov 2021 15:12:55 +0800 Subject: [PATCH 052/382] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0ae3c273..1481d504 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,5 +17,5 @@ steps: displayName: 'Use .NET Core sdk' inputs: packageType: sdk - version: 6.0.1 + version: 6.0 installationPath: $(Agent.ToolsDirectory)/dotnet \ No newline at end of file From bdad7342c8328739f2ac0e69981df5ff5d835956 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 27 Nov 2021 15:15:31 +0800 Subject: [PATCH 053/382] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1481d504..56b27ca5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,5 +17,5 @@ steps: displayName: 'Use .NET Core sdk' inputs: packageType: sdk - version: 6.0 + version: 6.0.0-rtm.21522.10 installationPath: $(Agent.ToolsDirectory)/dotnet \ No newline at end of file From ce880a3e292260064e6af86f38237493effa9df8 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 27 Nov 2021 15:18:35 +0800 Subject: [PATCH 054/382] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 56b27ca5..1481d504 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,5 +17,5 @@ steps: displayName: 'Use .NET Core sdk' inputs: packageType: sdk - version: 6.0.0-rtm.21522.10 + version: 6.0 installationPath: $(Agent.ToolsDirectory)/dotnet \ No newline at end of file From 94eaa6600552b11b5ad9092731b074343da033f8 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 27 Nov 2021 15:21:06 +0800 Subject: [PATCH 055/382] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1481d504..5776c0a2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,5 +17,5 @@ steps: displayName: 'Use .NET Core sdk' inputs: packageType: sdk - version: 6.0 + version: 6.0.x installationPath: $(Agent.ToolsDirectory)/dotnet \ No newline at end of file From 5432aeff66bb48d45eea8b35b35729d3a3bc6922 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Mon, 29 Nov 2021 09:31:59 +0800 Subject: [PATCH 056/382] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5cdab6f5..84c2ff38 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ -Blog.Core 开箱即用的企业级前后端分离【 .NET Core5.0 Api + Vue 2.x + RBAC】权限框架。 +Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x + RBAC】权限框架。 +其他版本看具体分支吧🎉 官网:http://apk.neters.club/.doc/ From e4d948d54e10b6e1986831adcf79d8e86d7d8b35 Mon Sep 17 00:00:00 2001 From: "Nine.Designmini" Date: Wed, 1 Dec 2021 17:42:10 +0800 Subject: [PATCH 057/382] =?UTF-8?q?=E5=A2=9E=E5=8A=A0log4net=E5=86=99?= =?UTF-8?q?=E5=85=A5MongoDB=E5=92=8CMSSQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Api.csproj | 2 + Blog.Core.Api/Log4net.config | 572 ++++++++++++++++++++--- Blog.Core.Api/appsettings.json | 5 +- Blog.Core.Api/connectionstrings.json | 9 + Blog.Core.Common/Blog.Core.Common.csproj | 1 + Blog.Core.Common/LogHelper/LogLock.cs | 49 +- 6 files changed, 573 insertions(+), 65 deletions(-) create mode 100644 Blog.Core.Api/connectionstrings.json diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 3bcb7f68..4a0f3ef0 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -43,6 +43,8 @@ + + diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config index ba9b0f0a..f3541a0a 100644 --- a/Blog.Core.Api/Log4net.config +++ b/Blog.Core.Api/Log4net.config @@ -1,65 +1,511 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index c31755df..c5f477c4 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -32,7 +32,7 @@ "Password": "!", "RetryCount": 3 }, - "Kafka": { + "Kafka": { "Enabled": false, "Servers": "localhost:9092", "Topic": "blog", @@ -65,6 +65,9 @@ "Enabled": true } }, + "LogToDb": { + "Enabled": true + }, "Date": "2018-08-28", "SeedDBEnabled": true, //只生成表结构 "SeedDBDataEnabled": true, //生成表,并初始化数据 diff --git a/Blog.Core.Api/connectionstrings.json b/Blog.Core.Api/connectionstrings.json new file mode 100644 index 00000000..354d9874 --- /dev/null +++ b/Blog.Core.Api/connectionstrings.json @@ -0,0 +1,9 @@ +{ + "connectionstrings": { + "sqlserver": "Server=fangding.picp;Database=blogcorets;User Id=sa;Password=23456;", + "oracle": "oracle-connectionstring", + "postgresql": "Server=log4net.database.test;Port=5432;Database=log4net;User ID=log4net;Pooling=true;Password=Abcd!234;", + "mysql": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=sa;Pwd=Abcd!234", + "mysqlOLD": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=sa;Pwd=Abcd!234;allow user variables=true;SslMode=Required;maxpoolsize=100;Convert Zero Datetime=true;CharSet=utf8;CheckParameters=false;" + } +} diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 9cca04a4..80f8739f 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -11,6 +11,7 @@ + diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index b936a262..0a55df53 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -1,4 +1,5 @@ using Blog.Core.Common.Helper; +using log4net; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -11,7 +12,7 @@ namespace Blog.Core.Common.LogHelper { public class LogLock { - + private static readonly ILog log = LogManager.GetLogger(typeof(LogLock)); static ReaderWriterLockSlim LogWriteLock = new ReaderWriterLockSlim(); static int WritedCount = 0; static int FailedCount = 0; @@ -23,6 +24,19 @@ public LogLock(string contentPath) } public static void OutSql2Log(string prefix, string[] dataParas, bool IsHeader = true, bool isWrt = false) + { + + if (Appsettings.app(new string[] { "AppSettings", "LogToDb", "Enabled" }).ObjToBool()) + { + OutSql2LogToDB(prefix, dataParas, IsHeader); + } + else + { + OutSql2LogToFile(prefix, dataParas, IsHeader, isWrt); + } + } + + public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHeader = true, bool isWrt = false) { try { @@ -80,7 +94,40 @@ public static void OutSql2Log(string prefix, string[] dataParas, bool IsHeader = LogWriteLock.ExitWriteLock(); } } + public static void OutSql2LogToDB(string prefix, string[] dataParas, bool IsHeader = true) + { + + string logContent = String.Join("\r\n", dataParas); + if (IsHeader) + { + logContent = ( + "--------------------------------\r\n" + + DateTime.Now + "|\r\n" + + String.Join("\r\n", dataParas) + "\r\n" + ); + } + switch (prefix) + { + case "AOPLog": + log.Info(logContent); + break; + case "AOPLogEx": + log.Error(logContent); + break; + case "RequestIpInfoLog": + log.Debug(logContent); + break; + case "RecordAccessLogs": + log.Debug(logContent); + break; + case "SqlLog": + log.Info(logContent); + break; + default: + break; + } + } /// /// 读取文件内容 /// From dd15b1779e347d0bde858aed30c7c108a66ff5ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=81=E9=AA=91?= <1075858260@qq.com> Date: Fri, 3 Dec 2021 10:31:02 +0800 Subject: [PATCH 058/382] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E5=9F=BA=E6=8E=A7=E5=88=B6=E5=99=A8=E5=90=8D=E5=AD=97?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=86=E6=9D=83=E9=99=90=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=8E=A7=E5=88=B6=E5=99=A8=E7=9A=84=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eApiCpntroller.cs => BaseApiController.cs} | 2 +- Blog.Core.Api/Controllers/BlogController.cs | 2 +- Blog.Core.Api/Controllers/LoginController.cs | 2 +- .../Controllers/MonitorController.cs | 2 +- Blog.Core.Api/Controllers/NacosController.cs | 2 +- .../Controllers/PermissionController.cs | 91 +++++++++++-------- 6 files changed, 57 insertions(+), 44 deletions(-) rename Blog.Core.Api/Controllers/{BaseApiCpntroller.cs => BaseApiController.cs} (98%) diff --git a/Blog.Core.Api/Controllers/BaseApiCpntroller.cs b/Blog.Core.Api/Controllers/BaseApiController.cs similarity index 98% rename from Blog.Core.Api/Controllers/BaseApiCpntroller.cs rename to Blog.Core.Api/Controllers/BaseApiController.cs index 92f9db16..b1f020cf 100644 --- a/Blog.Core.Api/Controllers/BaseApiCpntroller.cs +++ b/Blog.Core.Api/Controllers/BaseApiController.cs @@ -4,7 +4,7 @@ namespace Blog.Core.Controllers { - public class BaseApiCpntroller : Controller + public class BaseApiController : Controller { [NonAction] public MessageModel Success(T data, string msg = "成功") diff --git a/Blog.Core.Api/Controllers/BlogController.cs b/Blog.Core.Api/Controllers/BlogController.cs index ecc3a4f8..095be583 100644 --- a/Blog.Core.Api/Controllers/BlogController.cs +++ b/Blog.Core.Api/Controllers/BlogController.cs @@ -22,7 +22,7 @@ namespace Blog.Core.Controllers /// [Produces("application/json")] [Route("api/Blog")] - public class BlogController : BaseApiCpntroller + public class BlogController : BaseApiController { public IBlogArticleServices _blogArticleServices { get; set; } private readonly ILogger _logger; diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index afb61c6d..78ec3dd8 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -24,7 +24,7 @@ namespace Blog.Core.Controllers [Produces("application/json")] [Route("api/Login")] [AllowAnonymous] - public class LoginController : BaseApiCpntroller + public class LoginController : BaseApiController { readonly ISysUserInfoServices _sysUserInfoServices; readonly IUserRoleServices _userRoleServices; diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index 350013bd..c5f52fcc 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -26,7 +26,7 @@ namespace Blog.Core.Controllers [Route("api/[Controller]/[action]")] [ApiController] [AllowAnonymous] - public class MonitorController : BaseApiCpntroller + public class MonitorController : BaseApiController { private readonly IHubContext _hubContext; private readonly IWebHostEnvironment _env; diff --git a/Blog.Core.Api/Controllers/NacosController.cs b/Blog.Core.Api/Controllers/NacosController.cs index 6aac936a..a8701b39 100644 --- a/Blog.Core.Api/Controllers/NacosController.cs +++ b/Blog.Core.Api/Controllers/NacosController.cs @@ -14,7 +14,7 @@ namespace Blog.Core.Api.Controllers [Produces("application/json")] [Route("api/[Controller]/[action]")] [Authorize(Permissions.Name)] - public class NacosController : BaseApiCpntroller + public class NacosController : BaseApiController { #region 变量 diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 8bbcb03b..8d2d5435 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -21,7 +21,7 @@ namespace Blog.Core.Controllers [Route("api/[controller]/[action]")] [ApiController] [Authorize(Permissions.Name)] - public class PermissionController : ControllerBase + public class PermissionController : BaseApiController { readonly IPermissionServices _permissionServices; readonly IModuleServices _moduleServices; @@ -133,12 +133,14 @@ public async Task>> Get(int page = 1, string #endregion - return new MessageModel>() - { - msg = "获取成功", - success = permissions.dataCount >= 0, - response = permissions - }; + //return new MessageModel>() + //{ + // msg = "获取成功", + // success = permissions.dataCount >= 0, + // response = permissions + //}; + + return permissions.dataCount >= 0 ? Success(permissions, "获取成功") : Failed(); } @@ -191,12 +193,13 @@ public async Task>> GetTreeTable(int f = 0, string } - return new MessageModel>() - { - msg = "获取成功", - success = true, - response = permissions - }; + //return new MessageModel>() + //{ + // msg = "获取成功", + // success = true, + // response = permissions + //}; + return Success(permissions, "获取成功"); } // GET: api/User/5 @@ -215,18 +218,21 @@ public string Get(string id) [HttpPost] public async Task> Post([FromBody] Permission permission) { - var data = new MessageModel(); + //var data = new MessageModel(); permission.CreateId = _user.ID; permission.CreateBy = _user.Name; var id = (await _permissionServices.Add(permission)); - data.success = id > 0; - if (data.success) - { - data.response = id.ObjToString(); - data.msg = "添加成功"; - } + //data.success = id > 0; + //if (data.success) + //{ + // data.response = id.ObjToString(); + // data.msg = "添加成功"; + //} + + + return id > 0 ? Success(id.ObjToString(), "添加成功") : Failed("添加失败"); return data; } @@ -309,7 +315,7 @@ public async Task> Assign([FromBody] AssignView assignView) [HttpGet] public async Task> GetPermissionTree(int pid = 0, bool needbtn = false) { - var data = new MessageModel(); + //var data = new MessageModel(); var permissions = await _permissionServices.Query(d => d.IsDeleted == false); var permissionTrees = (from child in permissions @@ -335,14 +341,15 @@ orderby child.Id RecursionHelper.LoopToAppendChildren(permissionTrees, rootRoot, pid, needbtn); - data.success = true; - if (data.success) - { - data.response = rootRoot; - data.msg = "获取成功"; - } + //data.success = true; + //if (data.success) + //{ + // data.response = rootRoot; + // data.msg = "获取成功"; + //} - return data; + return Success(rootRoot, "获取成功"); + //return data; } /// @@ -446,7 +453,7 @@ orderby child.Id [AllowAnonymous] public async Task> GetPermissionIdByRoleId(int rid = 0) { - var data = new MessageModel(); + //var data = new MessageModel(); var rmps = await _roleModulePermissionServices.Query(d => d.IsDeleted == false && d.RoleId == rid); var permissionTrees = (from child in rmps @@ -466,18 +473,24 @@ orderby child.Id } } - data.success = true; - if (data.success) + //data.success = true; + //if (data.success) + //{ + // data.response = new AssignShow() + // { + // permissionids = permissionTrees, + // assignbtns = assignbtns, + // }; + // data.msg = "获取成功"; + //} + + return Success(new AssignShow() { - data.response = new AssignShow() - { - permissionids = permissionTrees, - assignbtns = assignbtns, - }; - data.msg = "获取成功"; - } + permissionids = permissionTrees, + assignbtns = assignbtns, + }, "获取成功"); - return data; + //return data; } /// From b3dfdb614916495a63e2383948873aca563b63ef Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 3 Dec 2021 18:42:38 +0800 Subject: [PATCH 059/382] =?UTF-8?q?fix=EF=BC=9Aresponse=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/PermissionController.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 8d2d5435..316f20ba 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -140,7 +140,7 @@ public async Task>> Get(int page = 1, string // response = permissions //}; - return permissions.dataCount >= 0 ? Success(permissions, "获取成功") : Failed(); + return permissions.dataCount >= 0 ? Success(permissions, "获取成功") : Failed>("获取失败"); } @@ -233,8 +233,6 @@ public async Task> Post([FromBody] Permission permission) return id > 0 ? Success(id.ObjToString(), "添加成功") : Failed("添加失败"); - - return data; } /// From 9243db9fdc9596b59e62fb89361f87b4f06a3b7f Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 4 Dec 2021 15:31:30 +0800 Subject: [PATCH 060/382] =?UTF-8?q?feat=EF=BC=9Aswagger=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.xml | 7 ++ Blog.Core.Api/Controllers/LoginController.cs | 25 ++++++ Blog.Core.Api/Startup.cs | 5 ++ Blog.Core.Api/wwwroot/swg-login.html | 47 +++++++++++ .../Middlewares/SwaggerAuthMildd.cs | 78 +++++++++++++++++++ 5 files changed, 162 insertions(+) create mode 100644 Blog.Core.Api/wwwroot/swg-login.html create mode 100644 Blog.Core.Extensions/Middlewares/SwaggerAuthMildd.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 93505324..d520c88f 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -232,6 +232,13 @@ + + + swagger登录 + + + + 接口管理 diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index 78ec3dd8..bd81d6de 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -266,5 +266,30 @@ public string Md5Password(string password = "") { return MD5Helper.MD5Encrypt32(password); } + + /// + /// swagger登录 + /// + /// + /// + [HttpPost] + [Route("swgLogin")] + public dynamic SwgLogin([FromBody] SwaggerLoginRequest loginRequest) + { + // 这里可以查询数据库等各种校验 + if (loginRequest?.name == "admin" && loginRequest?.pwd == "admin") + { + HttpContext.Session.SetString("swagger-code", "success"); + return new { result = true }; + } + + return new { result = false }; + } + } + + public class SwaggerLoginRequest + { + public string name { get; set; } + public string pwd { get; set; } } } \ No newline at end of file diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index 12c30b19..afcc2735 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -92,6 +92,9 @@ public void ConfigureServices(IServiceCollection services) services.Configure(x => x.AllowSynchronousIO = true) .Configure(x => x.AllowSynchronousIO = true); + + services.AddDistributedMemoryCache(); + services.AddSession(); services.AddControllers(o => { @@ -165,6 +168,8 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex //app.UseHsts(); } + app.UseSession(); + app.UseSwaggerAuthorized(); // 封装Swagger展示 app.UseSwaggerMildd(() => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("Blog.Core.Api.index.html")); diff --git a/Blog.Core.Api/wwwroot/swg-login.html b/Blog.Core.Api/wwwroot/swg-login.html new file mode 100644 index 00000000..ab31d3f4 --- /dev/null +++ b/Blog.Core.Api/wwwroot/swg-login.html @@ -0,0 +1,47 @@ + + + + + 默认首页 + + + + +
+
+

用户名:admin,密码:admin

+ +
+ +
+ +
+ + + \ No newline at end of file diff --git a/Blog.Core.Extensions/Middlewares/SwaggerAuthMildd.cs b/Blog.Core.Extensions/Middlewares/SwaggerAuthMildd.cs new file mode 100644 index 00000000..2aace753 --- /dev/null +++ b/Blog.Core.Extensions/Middlewares/SwaggerAuthMildd.cs @@ -0,0 +1,78 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; +using System; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Middlewares +{ + public class SwaggerAuthMildd + { + + private readonly RequestDelegate next; + + public SwaggerAuthMildd(RequestDelegate next) + { + this.next = next; + } + + public async Task InvokeAsync(HttpContext context) + { + // 也可以根据是否是本地做判断 IsLocalRequest + if (context.Request.Path.Value.ToLower().Contains("index.html")) + { + // 判断权限是否正确 + if (IsAuthorized(context)) + { + await next.Invoke(context); + return; + } + + // 无权限,跳转swagger登录页 + context.Response.Redirect("/swg-login.html"); + } + else + { + await next.Invoke(context); + } + } + + public bool IsAuthorized(HttpContext context) + { + // 使用session模式 + // 可以使用其他的 + return context.Session.GetString("swagger-code") == "success"; + } + + /// + /// 判断是不是本地访问 + /// 本地不用swagger拦截 + /// + /// + /// + public bool IsLocalRequest(HttpContext context) + { + if (context.Connection.RemoteIpAddress == null && context.Connection.LocalIpAddress == null) + { + return true; + } + if (context.Connection.RemoteIpAddress.Equals(context.Connection.LocalIpAddress)) + { + return true; + } + if (IPAddress.IsLoopback(context.Connection.RemoteIpAddress)) + { + return true; + } + return false; + } + } + public static class SwaggerAuthorizeExtensions + { + public static IApplicationBuilder UseSwaggerAuthorized(this IApplicationBuilder builder) + { + return builder.UseMiddleware(); + } + } +} From 9b9aee3f9ae0c5a598d10b5e94f88bfb377fee56 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 9 Dec 2021 18:23:18 +0800 Subject: [PATCH 061/382] Update appsettings.Development.json --- Blog.Core.Api/appsettings.Development.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Api/appsettings.Development.json b/Blog.Core.Api/appsettings.Development.json index 077404aa..9016c7ce 100644 --- a/Blog.Core.Api/appsettings.Development.json +++ b/Blog.Core.Api/appsettings.Development.json @@ -1,3 +1,11 @@ { - + "nacos": { + "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 + "DefaultTimeOut": 15000, // 默认超时时间 + "Namespace": "public", // 命名空间 + "ListenInterval": 10000, // 监听的频率 + "ServiceName": "blog.Core.Api", // 服务名 + "Port": "9291", // 服务端口号 + "RegisterEnabled": true // 是否直接注册nacos + } } \ No newline at end of file From 22df809829a70ec78da4cf30debd6bde100a5945 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=81=E9=AA=91?= <1075858260@qq.com> Date: Thu, 9 Dec 2021 19:08:20 +0800 Subject: [PATCH 062/382] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=9A=84=E8=BF=94=E5=9B=9E=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E7=AE=80=E5=8C=96=E8=BF=94=E5=9B=9E=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.xml | 1 + .../Controllers/BaseApiController.cs | 10 ++ Blog.Core.Api/Controllers/ModuleController.cs | 97 +++++++++---------- .../Controllers/MonitorController.cs | 91 ++++++++++------- Blog.Core.Api/Controllers/RoleController.cs | 87 +++++++++-------- Blog.Core.Api/Controllers/WeChatController.cs | 1 + 6 files changed, 156 insertions(+), 131 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index d520c88f..32ac8c50 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1010,6 +1010,7 @@ 获取订阅用户
+
diff --git a/Blog.Core.Api/Controllers/BaseApiController.cs b/Blog.Core.Api/Controllers/BaseApiController.cs index b1f020cf..00c59158 100644 --- a/Blog.Core.Api/Controllers/BaseApiController.cs +++ b/Blog.Core.Api/Controllers/BaseApiController.cs @@ -16,6 +16,16 @@ public MessageModel Success(T data, string msg = "成功") response = data, }; } + // [NonAction] + //public MessageModel Success(T data, string msg = "成功",bool success = true) + //{ + // return new MessageModel() + // { + // success = success, + // msg = msg, + // response = data, + // }; + //} [NonAction] public MessageModel Success(string msg = "成功") { diff --git a/Blog.Core.Api/Controllers/ModuleController.cs b/Blog.Core.Api/Controllers/ModuleController.cs index 4c2ff0c9..c160e0da 100644 --- a/Blog.Core.Api/Controllers/ModuleController.cs +++ b/Blog.Core.Api/Controllers/ModuleController.cs @@ -17,7 +17,7 @@ namespace Blog.Core.Controllers [Route("api/[controller]/[action]")] [ApiController] [Authorize(Permissions.Name)] - public class ModuleController : ControllerBase + public class ModuleController : BaseApiController { readonly IModuleServices _moduleServices; readonly IUser _user; @@ -49,12 +49,9 @@ public async Task>> Get(int page = 1, string key var data = await _moduleServices.QueryPage(whereExpression, page, intPageSize, " Id desc "); - return new MessageModel>() - { - msg = "获取成功", - success = data.dataCount >= 0, - response = data - }; + + return Success(data, "获取成功"); + } @@ -74,20 +71,11 @@ public string Get(string id) [HttpPost] public async Task> Post([FromBody] Modules module) { - var data = new MessageModel(); - module.CreateId = _user.ID; module.CreateBy = _user.Name; - var id = (await _moduleServices.Add(module)); - data.success = id > 0; - if (data.success) - { - data.response = id.ObjToString(); - data.msg = "添加成功"; - } + return id > 0 ? Success(id.ObjToString(), "添加成功") : Failed(); - return data; } /// @@ -99,18 +87,22 @@ public async Task> Post([FromBody] Modules module) [HttpPut] public async Task> Put([FromBody] Modules module) { - var data = new MessageModel(); - if (module != null && module.Id > 0) - { - data.success = await _moduleServices.Update(module); - if (data.success) - { - data.msg = "更新成功"; - data.response = module?.Id.ObjToString(); - } - } - - return data; + //var data = new MessageModel(); + //if (module != null && module.Id > 0) + //{ + //data.success = await _moduleServices.Update(module); + //if (data.success) + //{ + // data.msg = "更新成功"; + // data.response = module?.Id.ObjToString(); + //} + + // } + + //return data; + if (module == null || module.Id <= 0) + return Failed("缺少参数"); + return await _moduleServices.Update(module) ? Success(module?.Id.ObjToString(), "更新成功") : Failed(); } /// @@ -122,20 +114,28 @@ public async Task> Put([FromBody] Modules module) [HttpDelete] public async Task> Delete(int id) { - var data = new MessageModel(); - if (id > 0) - { - var userDetail = await _moduleServices.QueryById(id); - userDetail.IsDeleted = true; - data.success = await _moduleServices.Update(userDetail); - if (data.success) - { - data.msg = "删除成功"; - data.response = userDetail?.Id.ObjToString(); - } - } - - return data; + if (id <= 0) + return Failed("缺少参数"); + var userDetail = await _moduleServices.QueryById(id); + if (userDetail == null) + return Failed("信息不存在"); + + userDetail.IsDeleted = true; + return await _moduleServices.Update(userDetail) ? Success(userDetail?.Id.ObjToString(), "删除成功") : Failed("删除失败"); + + //var data = new MessageModel(); + //if (id > 0) + //{ + // var userDetail = await _moduleServices.QueryById(id); + // userDetail.IsDeleted = true; + // data.success = await _moduleServices.Update(userDetail); + // if (data.success) + // { + // data.msg = "删除成功"; + // data.response = userDetail?.Id.ObjToString(); + // } + //} + //return data; } /// @@ -147,7 +147,6 @@ public async Task> Delete(int id) [HttpPost] public async Task> BatchPost([FromBody] List modules) { - var data = new MessageModel(); string ids = string.Empty; int sucCount = 0; @@ -162,15 +161,7 @@ public async Task> BatchPost([FromBody] List modul sucCount++; } } - - data.success = ids.IsNotEmptyOrNull(); - if (data.success) - { - data.response = ids; - data.msg = $"{sucCount}条数据添加成功"; - } - - return data; + return ids.IsNotEmptyOrNull() ? Success(ids, $"{sucCount}条数据添加成功") : Failed(); } } } diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index c5f52fcc..db170fb0 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -57,7 +57,7 @@ public MessageModel Server() FrameworkDescription = RuntimeInformation.FrameworkDescription, MemoryFootprint = (Process.GetCurrentProcess().WorkingSet64 / 1048576).ToString("N2") + " MB", WorkingTime = DateHelper.TimeSubTract(DateTime.Now, Process.GetCurrentProcess().StartTime) - }); + }, "获取服务器配置信息成功"); } @@ -72,7 +72,7 @@ public MessageModel> Get() _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); - return Success>(null); + return Success>(null, "执行成功"); } @@ -80,29 +80,33 @@ public MessageModel> Get() [HttpGet] public MessageModel GetRequestApiinfoByWeek() { - return Success(LogLock.RequestApiinfoByWeek()); + return Success(LogLock.RequestApiinfoByWeek(), "成功"); } [HttpGet] public MessageModel GetAccessApiByDate() { - return new MessageModel() - { - msg = "获取成功", - success = true, - response = LogLock.AccessApiByDate() - }; + //return new MessageModel() + //{ + // msg = "获取成功", + // success = true, + // response = LogLock.AccessApiByDate() + //}; + + return Success(LogLock.AccessApiByDate(), "获取成功"); } [HttpGet] public MessageModel GetAccessApiByHour() { - return new MessageModel() - { - msg = "获取成功", - success = true, - response = LogLock.AccessApiByHour() - }; + //return new MessageModel() + //{ + // msg = "获取成功", + // success = true, + // response = LogLock.AccessApiByHour() + //}; + + return Success(LogLock.AccessApiByHour(), "获取成功"); } private List GetAccessLogsToday(IWebHostEnvironment environment) @@ -192,19 +196,28 @@ public MessageModel GetActiveUsers([FromServices] IWebHostEnvir int activeUsersCount = activeUsers.Count; activeUsers = activeUsers.OrderByDescending(d => d.count).Take(10).ToList(); - return new MessageModel() + //return new MessageModel() + //{ + // msg = "获取成功", + // success = true, + // response = new WelcomeInitData() + // { + // activeUsers = activeUsers, + // activeUserCount = activeUsersCount, + // errorCount = errorCountToday, + // logs = Logs, + // activeCount = GetAccessLogsTrend(environment) + // } + //}; + + return Success(new WelcomeInitData() { - msg = "获取成功", - success = true, - response = new WelcomeInitData() - { - activeUsers = activeUsers, - activeUserCount = activeUsersCount, - errorCount = errorCountToday, - logs = Logs, - activeCount = GetAccessLogsTrend(environment) - } - }; + activeUsers = activeUsers, + activeUserCount = activeUsersCount, + errorCount = errorCountToday, + logs = Logs, + activeCount = GetAccessLogsTrend(environment) + }, "获取成功"); } [HttpGet] @@ -236,16 +249,22 @@ public async Task> GetIds4Users() count = 0 }); } - return new MessageModel() + //return new MessageModel() + //{ + // msg = "获取成功", + // success = true, + // response = new AccessApiDateView + // { + // columns = new string[] { "date", "count" }, + // rows = apiDates.OrderBy(d => d.date).ToList(), + // } + //}; + + return Success(new AccessApiDateView { - msg = "获取成功", - success = true, - response = new AccessApiDateView - { - columns = new string[] { "date", "count" }, - rows = apiDates.OrderBy(d => d.date).ToList(), - } - }; + columns = new string[] { "date", "count" }, + rows = apiDates.OrderBy(d => d.date).ToList(), + }, "获取成功"); } } diff --git a/Blog.Core.Api/Controllers/RoleController.cs b/Blog.Core.Api/Controllers/RoleController.cs index ce6a9e6b..36df73a4 100644 --- a/Blog.Core.Api/Controllers/RoleController.cs +++ b/Blog.Core.Api/Controllers/RoleController.cs @@ -14,7 +14,7 @@ namespace Blog.Core.Controllers [Route("api/[controller]/[action]")] [ApiController] [Authorize(Permissions.Name)] - public class RoleController : ControllerBase + public class RoleController : BaseApiController { readonly IRoleServices _roleServices; readonly IUser _user; @@ -45,12 +45,14 @@ public async Task>> Get(int page = 1, string key = var data = await _roleServices.QueryPage(a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key)), page, intPageSize, " Id desc "); - return new MessageModel>() - { - msg = "获取成功", - success = data.dataCount >= 0, - response = data - }; + //return new MessageModel>() + //{ + // msg = "获取成功", + // success = data.dataCount >= 0, + // response = data + //}; + + return Success(data, "获取成功"); } @@ -70,20 +72,11 @@ public string Get(string id) [HttpPost] public async Task> Post([FromBody] Role role) { - var data = new MessageModel(); - role.CreateId = _user.ID; role.CreateBy = _user.Name; - var id = (await _roleServices.Add(role)); - data.success = id > 0; - if (data.success) - { - data.response = id.ObjToString(); - data.msg = "添加成功"; - } + return id > 0 ? Success(id.ObjToString(), "添加成功") : Failed("添加失败"); - return data; } /// @@ -95,18 +88,22 @@ public async Task> Post([FromBody] Role role) [HttpPut] public async Task> Put([FromBody] Role role) { - var data = new MessageModel(); - if (role != null && role.Id > 0) - { - data.success = await _roleServices.Update(role); - if (data.success) - { - data.msg = "更新成功"; - data.response = role?.Id.ObjToString(); - } - } - - return data; + if (role == null || role.Id <= 0) + return Failed("缺少参数"); + + return await _roleServices.Update(role) ? Success(role?.Id.ObjToString(),"更新成功") : Failed("更新失败"); + + //var data = new MessageModel(); + //if (role != null && role.Id > 0) + //{ + // data.success = await _roleServices.Update(role); + // if (data.success) + // { + // data.msg = "更新成功"; + // data.response = role?.Id.ObjToString(); + // } + //} + //return data; } /// @@ -118,20 +115,26 @@ public async Task> Put([FromBody] Role role) [HttpDelete] public async Task> Delete(int id) { + var data = new MessageModel(); - if (id > 0) - { - var userDetail = await _roleServices.QueryById(id); - userDetail.IsDeleted = true; - data.success = await _roleServices.Update(userDetail); - if (data.success) - { - data.msg = "删除成功"; - data.response = userDetail?.Id.ObjToString(); - } - } - - return data; + //if (id > 0) + //{ + // var userDetail = await _roleServices.QueryById(id); + // userDetail.IsDeleted = true; + // data.success = await _roleServices.Update(userDetail); + // if (data.success) + // { + // data.msg = "删除成功"; + // data.response = userDetail?.Id.ObjToString(); + // } + //} + //return data; + + if (id <= 0) return Failed(); + var userDetail = await _roleServices.QueryById(id); + if (userDetail == null) return Success(null,"角色不存在"); + userDetail.IsDeleted = true; + return await _roleServices.Update(userDetail) ? Success(userDetail?.Id.ObjToString(), "删除成功") : Failed(); } } } diff --git a/Blog.Core.Api/Controllers/WeChatController.cs b/Blog.Core.Api/Controllers/WeChatController.cs index 66ea8c2f..4c4877f6 100644 --- a/Blog.Core.Api/Controllers/WeChatController.cs +++ b/Blog.Core.Api/Controllers/WeChatController.cs @@ -114,6 +114,7 @@ public async Task Valid([FromQuery] WeChatValidDto validDto) /// 获取订阅用户 /// /// + /// /// [HttpGet] [AllowAnonymous] From f738b70607e10266c3f84c9eab8d3c1e9ffbf7b0 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 14 Dec 2021 11:25:21 +0800 Subject: [PATCH 063/382] Fixed #220 bug --- Blog.Core.Tests/Blog.Core.Tests.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Blog.Core.Tests/Blog.Core.Tests.csproj b/Blog.Core.Tests/Blog.Core.Tests.csproj index e1d81fa8..1cb34bd0 100644 --- a/Blog.Core.Tests/Blog.Core.Tests.csproj +++ b/Blog.Core.Tests/Blog.Core.Tests.csproj @@ -4,6 +4,7 @@ net6.0 false + false From bdad3c63782e7823e94352833a0f0c8a64b0c1fc Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 20 Jan 2022 10:13:16 +0800 Subject: [PATCH 064/382] =?UTF-8?q?fix=EF=BC=9Asome=20secret=20pwd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Log4net.config | 12 ++++++------ Blog.Core.Api/connectionstrings.json | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config index f3541a0a..496f8ece 100644 --- a/Blog.Core.Api/Log4net.config +++ b/Blog.Core.Api/Log4net.config @@ -56,7 +56,7 @@ - + @@ -105,7 +105,7 @@ - + @@ -154,7 +154,7 @@ - + @@ -211,7 +211,7 @@ - + @@ -276,7 +276,7 @@ - + @@ -341,7 +341,7 @@ - + diff --git a/Blog.Core.Api/connectionstrings.json b/Blog.Core.Api/connectionstrings.json index 354d9874..8118acfc 100644 --- a/Blog.Core.Api/connectionstrings.json +++ b/Blog.Core.Api/connectionstrings.json @@ -1,9 +1,9 @@ { "connectionstrings": { - "sqlserver": "Server=fangding.picp;Database=blogcorets;User Id=sa;Password=23456;", + "sqlserver": "Server=xxx.picp;Database=blogcorets;User Id=xxxx;Password=xxxxxx;", "oracle": "oracle-connectionstring", - "postgresql": "Server=log4net.database.test;Port=5432;Database=log4net;User ID=log4net;Pooling=true;Password=Abcd!234;", - "mysql": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=sa;Pwd=Abcd!234", - "mysqlOLD": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=sa;Pwd=Abcd!234;allow user variables=true;SslMode=Required;maxpoolsize=100;Convert Zero Datetime=true;CharSet=utf8;CheckParameters=false;" + "postgresql": "Server=log4net.database.test;Port=5432;Database=log4net;User ID=xxxxxx;Pooling=true;Password=xxxxxx;", + "mysql": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=xxxxx;Pwd=xxxxxxx", + "mysqlOLD": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=xxxxxxx;Pwd=xxxxxxxxx;allow user variables=true;SslMode=Required;maxpoolsize=100;Convert Zero Datetime=true;CharSet=utf8;CheckParameters=false;" } } From da691676dce888801bc9ed8136a9abdb58525778 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 20 Jan 2022 10:20:58 +0800 Subject: [PATCH 065/382] =?UTF-8?q?fix=EF=BC=9Aremove=20some=20secret=20pw?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Log4net.config | 6 +++--- Blog.Core.Api/connectionstrings.json | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config index 496f8ece..ab6106de 100644 --- a/Blog.Core.Api/Log4net.config +++ b/Blog.Core.Api/Log4net.config @@ -211,7 +211,7 @@ - + @@ -276,7 +276,7 @@ - + @@ -341,7 +341,7 @@ - + diff --git a/Blog.Core.Api/connectionstrings.json b/Blog.Core.Api/connectionstrings.json index 8118acfc..5f941362 100644 --- a/Blog.Core.Api/connectionstrings.json +++ b/Blog.Core.Api/connectionstrings.json @@ -1,9 +1,9 @@ { "connectionstrings": { - "sqlserver": "Server=xxx.picp;Database=blogcorets;User Id=xxxx;Password=xxxxxx;", + "sqlserver": "Server=xxx.picp;Database=blogcorets;User Id=;Password=;", "oracle": "oracle-connectionstring", - "postgresql": "Server=log4net.database.test;Port=5432;Database=log4net;User ID=xxxxxx;Pooling=true;Password=xxxxxx;", - "mysql": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=xxxxx;Pwd=xxxxxxx", - "mysqlOLD": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=xxxxxxx;Pwd=xxxxxxxxx;allow user variables=true;SslMode=Required;maxpoolsize=100;Convert Zero Datetime=true;CharSet=utf8;CheckParameters=false;" + "postgresql": "Server=log4net.database.test;Port=5432;Database=log4net;User ID=;Pooling=true;Password=;", + "mysql": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=;Pwd=", + "mysqlOLD": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=;Pwd=;allow user variables=true;SslMode=Required;maxpoolsize=100;Convert Zero Datetime=true;CharSet=utf8;CheckParameters=false;" } } From c6ea94f71b38826ffe19b7e9db6915a844270c67 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 29 Jan 2022 15:59:29 +0800 Subject: [PATCH 066/382] Fixed #230 bug. --- Blog.Core.Api/Controllers/BlogController.cs | 8 +- Blog.Core.Repository/UnitOfWork/UnitOfWork.cs | 6 +- Blog.Core.Tests/Blog.Core.Tests.csproj | 8 +- .../Controller_Test/BlogController_Should.cs | 119 +++++++++++++++++- .../DependencyInjection/DI_Test.cs | 83 +++--------- Blog.Core.Tests/WMBlog.db | Bin 0 -> 192512 bytes 6 files changed, 146 insertions(+), 78 deletions(-) create mode 100644 Blog.Core.Tests/WMBlog.db diff --git a/Blog.Core.Api/Controllers/BlogController.cs b/Blog.Core.Api/Controllers/BlogController.cs index 095be583..6525448e 100644 --- a/Blog.Core.Api/Controllers/BlogController.cs +++ b/Blog.Core.Api/Controllers/BlogController.cs @@ -233,7 +233,9 @@ public async Task> Put([FromBody] BlogArticle BlogArticle) model.btraffic = BlogArticle.btraffic; if (await _blogArticleServices.Update(model)) - Success(BlogArticle?.bID.ObjToString()); + { + return Success(BlogArticle?.bID.ObjToString()); + } } } return Failed("更新失败"); @@ -254,6 +256,10 @@ public async Task> Delete(int id) if (id > 0) { var blogArticle = await _blogArticleServices.QueryById(id); + if (blogArticle == null) + { + return Failed("查询无数据"); + } blogArticle.IsDeleted = true; return await _blogArticleServices.Update(blogArticle) ? Success(blogArticle?.bID.ObjToString(), "删除成功") : Failed("删除失败"); } diff --git a/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs b/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs index 8d8c2e26..74eb0dea 100644 --- a/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs +++ b/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs @@ -1,5 +1,4 @@ using Blog.Core.IRepository.UnitOfWork; -using Microsoft.Extensions.Logging; using SqlSugar; using System; @@ -8,12 +7,10 @@ namespace Blog.Core.Repository.UnitOfWork public class UnitOfWork : IUnitOfWork { private readonly ISqlSugarClient _sqlSugarClient; - private readonly ILogger _logger; - public UnitOfWork(ISqlSugarClient sqlSugarClient, ILogger logger) + public UnitOfWork(ISqlSugarClient sqlSugarClient) { _sqlSugarClient = sqlSugarClient; - _logger = logger; } /// @@ -40,7 +37,6 @@ public void CommitTran() catch (Exception ex) { GetDbClient().RollbackTran(); - _logger.LogError($"{ex.Message}\r\n{ex.InnerException}"); } } diff --git a/Blog.Core.Tests/Blog.Core.Tests.csproj b/Blog.Core.Tests/Blog.Core.Tests.csproj index 1cb34bd0..c5e1022a 100644 --- a/Blog.Core.Tests/Blog.Core.Tests.csproj +++ b/Blog.Core.Tests/Blog.Core.Tests.csproj @@ -30,8 +30,12 @@ - - + + + + + Always + diff --git a/Blog.Core.Tests/Controller_Test/BlogController_Should.cs b/Blog.Core.Tests/Controller_Test/BlogController_Should.cs index fce9f39e..3d1e3178 100644 --- a/Blog.Core.Tests/Controller_Test/BlogController_Should.cs +++ b/Blog.Core.Tests/Controller_Test/BlogController_Should.cs @@ -1,10 +1,13 @@ using Autofac; using Blog.Core.Controllers; using Blog.Core.IServices; +using Blog.Core.Model; using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; using Microsoft.Extensions.Logging; using Moq; using System; +using System.Collections.Generic; using Xunit; namespace Blog.Core.Tests @@ -24,10 +27,10 @@ public BlogController_Should() { mockBlogSev.Setup(r => r.Query()); - var container = dI_Test.DICollections(); blogArticleServices = container.Resolve(); blogController = new BlogController(mockLogger.Object); + blogController._blogArticleServices = blogArticleServices; } [Fact] @@ -37,12 +40,59 @@ public void TestEntity() Assert.True(blogArticle.bID >= 0); } + + [Fact] + public async void Get_Blog_Page_Test() + { + MessageModel> blogs = await blogController.Get(1, 1, "技术博文", ""); + Assert.NotNull(blogs); + Assert.NotNull(blogs.response); + Assert.True(blogs.response.dataCount >= 0); + } + + [Fact] + public async void Get_Blog_Test() + { + MessageModel blogVo = await blogController.Get(1); + + Assert.NotNull(blogVo); + } + + [Fact] + public async void Get_Blog_For_Nuxt_Test() + { + MessageModel blogVo = await blogController.DetailNuxtNoPer(1); + + Assert.NotNull(blogVo); + } + + [Fact] + public async void Get_Go_Url_Test() + { + object urlAction = await blogController.GoUrl(1); + + Assert.NotNull(urlAction); + } + [Fact] - public async void GetBlogsTest() + public async void Get_Blog_By_Type_For_MVP_Test() { - object blogs =await blogController.Get(1); + MessageModel> blogs = await blogController.GetBlogsByTypesForMVP("技术博文"); Assert.NotNull(blogs); + Assert.True(blogs.success); + Assert.NotNull(blogs.response); + Assert.True(blogs.response.Count >= 0); + } + + [Fact] + public async void Get_Blog_By_Id_For_MVP_Test() + { + MessageModel blog = await blogController.GetBlogByIdForMVP(1); + + Assert.NotNull(blog); + Assert.True(blog.success); + Assert.NotNull(blog.response); } [Fact] @@ -53,7 +103,7 @@ public async void PostTest() bCreateTime = DateTime.Now, bUpdateTime = DateTime.Now, btitle = "xuint :test controller addEntity", - + bcontent = "xuint :test controller addEntity. this is content.this is content." }; var res = await blogController.Post(blogArticle); @@ -64,5 +114,66 @@ public async void PostTest() Assert.NotNull(data); } + + [Fact] + public async void Post_Insert_For_MVP_Test() + { + BlogArticle blogArticle = new BlogArticle() + { + bCreateTime = DateTime.Now, + bUpdateTime = DateTime.Now, + btitle = "xuint :test controller addEntity", + bcontent = "xuint :test controller addEntity. this is content.this is content." + }; + + var res = await blogController.AddForMVP(blogArticle); + + Assert.True(res.success); + + var data = res.response; + + Assert.NotNull(data); + } + + [Fact] + public async void Put_Test() + { + BlogArticle blogArticle = new BlogArticle() + { + bID = 1, + bCreateTime = DateTime.Now, + bUpdateTime = DateTime.Now, + btitle = "xuint put :test controller addEntity", + bcontent = "xuint put :test controller addEntity. this is content.this is content." + }; + + var res = await blogController.Put(blogArticle); + + Assert.True(res.success); + + var data = res.response; + + Assert.NotNull(data); + } + + [Fact] + public async void Delete_Test() + { + var res = await blogController.Delete(99); + + Assert.False(res.success); + + var data = res.response; + + Assert.Null(data); + } + + [Fact] + public async void Apache_Update_Test() + { + var res = await blogController.ApacheTestUpdate(); + + Assert.True(res.success); + } } } diff --git a/Blog.Core.Tests/DependencyInjection/DI_Test.cs b/Blog.Core.Tests/DependencyInjection/DI_Test.cs index ac33a12f..23e46bf6 100644 --- a/Blog.Core.Tests/DependencyInjection/DI_Test.cs +++ b/Blog.Core.Tests/DependencyInjection/DI_Test.cs @@ -8,82 +8,25 @@ using Blog.Core.Common.DB; using Blog.Core.Common.LogHelper; using Blog.Core.Common.Seed; +using Blog.Core.Extensions; using Blog.Core.IRepository.Base; -using Blog.Core.IServices; using Blog.Core.Repository.Base; -using Blog.Core.Services; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.IdentityModel.Tokens; using System; using System.Collections.Generic; using System.IO; -using System.Linq; using System.Reflection; using System.Security.Claims; using System.Text; -using Xunit; namespace Blog.Core.Tests { public class DI_Test { - - [Fact] - public void DI_Connet_Test() - { - var basePath = AppContext.BaseDirectory; - - IServiceCollection services = new ServiceCollection().AddLogging(); - services.AddAutoMapper(typeof(Startup)); - - services.AddScoped(o => - { - return new SqlSugar.SqlSugarScope(new SqlSugar.ConnectionConfig() - { - ConnectionString = GetMainConnectionDb().Connection,//必填, 数据库连接字符串 - DbType = (SqlSugar.DbType)GetMainConnectionDb().DbType,//必填, 数据库类型 - IsAutoCloseConnection = true,//默认false, 时候知道关闭数据库连接, 设置为true无需使用using或者Close操作 - IsShardSameThread = true,//共享线程 - InitKeyType = SqlSugar.InitKeyType.SystemTable//默认SystemTable, 字段信息读取, 如:该属性是不是主键,标识列等等信息 - }); - }); - - //services.AddSingleton(new Appsettings(Env)); - - - //实例化 AutoFac 容器 - var builder = new ContainerBuilder(); - builder.RegisterType().As(); - - //指定已扫描程序集中的类型注册为提供所有其实现的接口。 - //var assemblysServices = Assembly.Load("Blog.Core.Services"); - //builder.RegisterAssemblyTypes(assemblysServices).AsImplementedInterfaces(); - //var assemblysRepository = Assembly.Load("Blog.Core.Repository"); - //builder.RegisterAssemblyTypes(assemblysRepository).AsImplementedInterfaces(); - - var servicesDllFile = Path.Combine(basePath, "Blog.Core.Services.dll"); - var assemblysServices = Assembly.LoadFrom(servicesDllFile); - builder.RegisterAssemblyTypes(assemblysServices) - .AsImplementedInterfaces() - .InstancePerLifetimeScope() - .EnableInterfaceInterceptors(); - - var repositoryDllFile = Path.Combine(basePath, "Blog.Core.Repository.dll"); - var assemblysRepository = Assembly.LoadFrom(repositoryDllFile); - builder.RegisterAssemblyTypes(assemblysRepository).AsImplementedInterfaces(); - - //将services填充到Autofac容器生成器中 - builder.Populate(services); - - //使用已进行的组件登记创建新容器 - var ApplicationContainer = builder.Build(); - - var blogservice = ApplicationContainer.Resolve(); - - Assert.True(ApplicationContainer.ComponentRegistry.Registrations.Count() > 0); - } - - /// /// 连接字符串 /// Blog.Core @@ -146,8 +89,6 @@ public IContainer DICollections() policy => policy.Requirements.Add(permissionRequirement)); }); - - services.AddScoped(o => { return new SqlSugar.SqlSugarScope(new SqlSugar.ConnectionConfig() @@ -155,7 +96,6 @@ public IContainer DICollections() ConnectionString = GetMainConnectionDb().Connection,//必填, 数据库连接字符串 DbType = (SqlSugar.DbType)GetMainConnectionDb().DbType,//必填, 数据库类型 IsAutoCloseConnection = true,//默认false, 时候知道关闭数据库连接, 设置为true无需使用using或者Close操作 - IsShardSameThread = true,//共享线程 InitKeyType = SqlSugar.InitKeyType.SystemTable//默认SystemTable, 字段信息读取, 如:该属性是不是主键,标识列等等信息 }); }); @@ -168,17 +108,28 @@ public IContainer DICollections() builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IBaseRepository<>)).InstancePerDependency();//注册仓储 - + // 属性注入 + var controllerBaseType = typeof(ControllerBase); + builder.RegisterAssemblyTypes(typeof(Program).Assembly) + .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType) + .PropertiesAutowired(); + var servicesDllFile = Path.Combine(basePath, "Blog.Core.Services.dll"); var assemblysServices = Assembly.LoadFrom(servicesDllFile); builder.RegisterAssemblyTypes(assemblysServices) .AsImplementedInterfaces() .InstancePerLifetimeScope() + .PropertiesAutowired() .EnableInterfaceInterceptors(); var repositoryDllFile = Path.Combine(basePath, "Blog.Core.Repository.dll"); var assemblysRepository = Assembly.LoadFrom(repositoryDllFile); - builder.RegisterAssemblyTypes(assemblysRepository).AsImplementedInterfaces(); + builder.RegisterAssemblyTypes(assemblysRepository) + .PropertiesAutowired().AsImplementedInterfaces(); + + services.Replace(ServiceDescriptor.Transient()); + + services.AddAutoMapperSetup(); //将services填充到Autofac容器生成器中 builder.Populate(services); diff --git a/Blog.Core.Tests/WMBlog.db b/Blog.Core.Tests/WMBlog.db new file mode 100644 index 0000000000000000000000000000000000000000..6b7702ff555d8d591666d1fd9b8c27f96e976123 GIT binary patch literal 192512 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 E4`0!U7ytkO literal 0 HcmV?d00001 From d8a3cb78ccb6099a802a9c073a929edb6c98b0ae Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 29 Jan 2022 19:25:31 +0800 Subject: [PATCH 067/382] fix: import blog.admin into core --- .gitignore | 1 + Blog.Core.Api/Blog.Core.Api.csproj | 4 ++++ Blog.Core.Api/Startup.cs | 6 ++++- Blog.Core.Api/index.html | 2 +- Blog.Core.Api/wwwroot/ui.zip | Bin 0 -> 5244445 bytes .../ServiceExtensions/UiFilesZipSetup.cs | 22 ++++++++++++++++++ 6 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 Blog.Core.Api/wwwroot/ui.zip create mode 100644 Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs diff --git a/.gitignore b/.gitignore index 9a7ee7a9..b98046c6 100644 --- a/.gitignore +++ b/.gitignore @@ -351,3 +351,4 @@ Blog.Core/WMBlog.db .docs/contents/.vuepress/dist/* Blog.Core/Blog.Core*.xml Blog.Core.Api/WMBlog.db +Blog.Core.Api/wwwroot/ui/ diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 4a0f3ef0..b5725edd 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -27,15 +27,19 @@ + + + + diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index afcc2735..49b34ea0 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -45,7 +45,7 @@ public void ConfigureServices(IServiceCollection services) // 以下code可能与文章中不一样,对代码做了封装,具体查看右侧 Extensions 文件夹. services.AddSingleton(new Appsettings(Configuration)); services.AddSingleton(new LogLock(Env.ContentRootPath)); - + services.AddUiFilesZipSetup(Env); Permissions.IsUseIds4 = Appsettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool(); @@ -180,6 +180,10 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex // 跳转https //app.UseHttpsRedirection(); // 使用静态文件 + DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions(); + defaultFilesOptions.DefaultFileNames.Clear(); + defaultFilesOptions.DefaultFileNames.Add("index.html"); + app.UseDefaultFiles(defaultFilesOptions); app.UseStaticFiles(); // 使用cookie app.UseCookiePolicy(); diff --git a/Blog.Core.Api/index.html b/Blog.Core.Api/index.html index 98482a0e..b0092a62 100644 --- a/Blog.Core.Api/index.html +++ b/Blog.Core.Api/index.html @@ -116,7 +116,7 @@ $(".link img").attr("src", "./logo/favicon-32x32.png"); - $('#swagger-ui').after("
"); + $('#swagger-ui').after("
"); } diff --git a/Blog.Core.Api/wwwroot/ui.zip b/Blog.Core.Api/wwwroot/ui.zip new file mode 100644 index 0000000000000000000000000000000000000000..025010ddf356f964de80fd344811ac9d2c590838 GIT binary patch literal 5244445 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≧>TW`OygU$5g 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

7}zAwGJGv`Dp@?Q%Yov=#?_mi5iEHs?FT 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%0Ai;zF6OIo*4!2P3v z8iO&qL-t3yr^+sMfc11VWaJC)X@dg$kTeA3vpft6BZB)%jN*oWJ6A9&a9>CHP&etn z5bC$@OIo=%`5%S~<{;QkJr1#62jJTq&-%uR`le&)jnYxk2l3?Fn@`_r0{}vwN}ua~ z*An}hzQ}hT8RU7M`Z)T!?C(-PML!-5y$eY%I^sV%5WbIRpIP@uf4pj5{fUKRNjksm zmB-n}eVD_C`{Us^><8#eFIYcD$0d>=!JccYa6fzW9nufvbFMx9Tp#mu;gr+;^F7jF zfRKLD$dH7ce$Pq#-~s4F|1?kJfT&#$gFi-=5vN z_Wyp4!96%axu$|XMgpWp0{j~A6P|A`{?OBp0Qh+JVK$bF%x56s*sU3Hq0)3`VLa?d zh`)Hzj2P@Fj*MaCFr|1mhsO8(jF^)R{N`nrm91Hat#Oq z?5&A5Q(#L3OSUcS8~4EL2^$0a$gcpuC+(~08}}ad9mWCw5ZEiU55?zJ@&1>u&qCN2 zuyJ7{IyXG?x{gT^SF#{i@4Z3a>lAnjnfFm)#!Ek5CMzKpwzIG9EU@6)LY_`2`w5>FtOrb=RR?_Wv4#kDM1CS)F+Y^g~A|&YFf5-$_ zUq{{p{s_+?FC%|-ugHVFjFiCpV-FCD`O%{v;$06Oe5Y+aA7xwVA0I&^r5S~gv6_?_$^hTiP|rGP zcG()rsGdnk7e+GR5OJ6~$0&m?7t}3|CFuV#<~F$e?LWH{K?88WK0J{x|5o?YJ4QR8d{919#(@&QM*<4r`h1r(OduF7fScpTf9=lS{zrg05VUfVumnKi z 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

=+d1y~9U{%NC!^RDiU1_N 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 z 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

5tM^wgcKwZ^CiD*&9*VAQi0?1 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%0DS=e2yNc+MVh<<`4M>p!!s51&v1qxz(KtS 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

-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%0A9B5a1i0Y6Y;x{0NxMY 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 qzM0yk1hW&k_`KF=C~+9$A0n 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�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

e9Ov;~dDrZ&eZY!>neWi2)Q9yxx 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%0DBRU)WG8 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%0DO+x|Z(M7A`eA&> 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∨ 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
  • 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 z z?-N7sG3}I(-IHi^A2#87aEGf26JU+PetNlU+T%}(z?Y34(y64}Td(b?f{6rkvM9EG z*>0WA%i~tm0`IkA_7eN6*vnHhW-JIRMUpCZHDnU7MjB07Q^%AlMogPAAPYDzC$I;b z&YUd*=cd!y9M+3DjvTRqgp9J%`H_3qy8lilZsfBn8?(i;iqh=Mt5ignn*MO8BeY z8t~W=VDFS-u^qm?pb)g~vjSpo%X-&*#QPI&+O;-YtaO>po;D96UmyYb8l*|O(%yxz zTjl}E?5utF`x!664_~pDKyFZz-LfSH45h3{Y&MJ#*AOA81%XojYzO$0TF9-v&h_0# zFpV}V;n=QUO%PcAYRNzt2B%V70h!)lf&HY(-Lzx{#@u>CZoMHl^M<_RR7Mrsx!s3{eFCeh$C9kPFZ-hW-ieTe-4hw7h_aA-+kI7Zq@wbw7JdxB?&w;OXL!W)ngVLTZDl@A z%HC+aIGamdHcsnH+zs6kFJjrlAM2l zxEgO^HOH%VHFi{jaM(#eHzt5k9>z8t1v-Or;LPNa+T*!#+e3h2;Iy8HaMt&TzMPIn zBao^YrtnlFSPYJiO7gOJ8ZzoL%nG;JFl{I*Dl4+Wma0Td{k9O*&CaqstKy&sXcP9x z9Z+>q2rWKWtEuiQ5ZdkKhC8q|0mZi7vSrZ@el`J7avfMMXN1Qh~r5E0U6=W zbhB_0gFWk=4i>5bWJJr}GRn{ax7XI*b1VQOvU_tu2DXMlGU@gcf!6 zOgn%iGaudN@m-Y;FXZMGO=pw>qgfH=epoGp`*JMH-zglgH{TTF>;>h5l-?C8oS&vZ_R@T(5AuX(I(5JwmP zrU3R2$YB{g|6(jMZ0^mH#OyG}1wSB?SSd-s{B6o)cx(|Da;MBLaHk;dKX}FmbkCBX zmBMaVRzOA74N($~y?f)ca(1yK9l?8x@npP2%b}buAOZ67bg)GGVK{eI2A=JgM=+=g zA5k%*oiL{QIG@h|o%?`F5%)I7peqK`kHyp77j$>tX;IqGd1Qg8c7;VLhe^mORy6uC zBlx*e@A_rO26<9>a7henu+if@7!@16dQG@;@xA^Mkw3HZI;Qf}F496)Bt@{c!YRCZ zR}Xxa{`>yM0Uj3kfT-dpTe#_;GuABxWf^lCA18W)#Sr$|b9@%yX!k{$d~3@iOL8@# z$68v-Whs%u{P9iZvO1U-LRK$2vRjzlc`De7L0pf54j%rTly294>HM%1E->R+%#!u-=yazB{;kjiu z>me=+_rT<`mdV;OuvT8cp9@a`V6`@Q?&&x2nb~AGAyhKcoO*+#>O~TSu6mDze%#8i zv%RsQKf!!2shz}BCt~p*lSE23mJn-ad(`EqtaL|R%@^_-Xih|<8LyY(pM-yIlqe@s zsHE46Y4>ysp@?PeGhP{!P?m{$rO)oMD4kO_-N zN039$?-q1IHvh%a92dB_u}V!xq-%JGCr>hs`&QX9B}Pe3XrPk6sA+EAFHO({S>sW1qM--zHDU3uMo8n zzh*ZtPvD$m-bU5hf*8fcJ=7qr%_7bU6NB7CnfHJ?TZ{$;t${$OUvk*|vi)L*Ogys~$L=l@Bh~@?W@jS`_fuIA3$tv0fW;+mCARXBvtVp>RZ;MZW zS?&N-q%;pG;scP$QHoz2bC)vxxMwo|*kMW;ow6+DPn={G2}$jZNE{K$8XgbUzkuO! zU9&^m9EHCt`x<#zsckj{?#=07G`n<@1A6Q_Qv88pmvo1eqse~?^)k`aY#nkzu_bZU z{Q%$qO+d20wm^SaF4o2;5FDPbw=aF@J$t#Hl3kA$i6mc$461t@vP z8h-SR8{Eo;qV%Q>^Pt1HRDWp$S?K7k_}YO^g)Fh&87C0@==)zhGCt!1#lf{ukdXhF zqrEsA6aN^s*}kg%B}n4b3J6eTpTpBM#;^1m_W)mT*vh=ssej}i1paGZ!0e~cd_9vc z=o1se<$T)hr>xC27a_?sb!9(YHR)*l{;K|&W>X_?^9i74>po#zD>e>d!XhfXlSEhd zk?+ijWN$7%^%P|plWYIlm`z{T>-wmE%{A4$nF@*btV4B+fVnmz=V(+Tk2-T#Ce;jH z6T)fK;OMl-M0iG&^5x{5ix_^$jUdLqs=*&qVr$95r+TZY0*w*Y7rksyO-%ZI9A5RM zA7+hLUwjoSN-9!I7d@MEeRgG-#q6niGzWevmPvjXcg1SitUL6ux#Tki_LItC_2z z*PPe#8bNM+5g}aZIIbGj5!~J4VfZQOW(&7FUNSZl0M$U>;-^bt#3xMRgCuDvJ!MVI zH;@MT7LFUqH&u1(|IBcJ5I+`F@Jpgr_&eDe=p&~cH-DwKV6ux$6V=UK69>3V+E^o9 zC4778)v$Vu27W@H0@fs2K6JOA?`;*)rey}syo8ZsNBX7+w4%tBmF1uR%rHu7!+HLj z@o)n6?VT+}PeN*nx%v&0u11vahaOT*b}X#4vNuz^tSYau444PaDklv;Scavk{*_G; zLNy`NztdG81hLTs7r%y~am{DBX*Wyf+$=0I#Q)lPCmM@iPlCU(rC6Ym_Vo;Za`RJO zY=ij;DIydM7hxNXIB`zTs~KKkAj${J4hYfTeY%Se1;R02F@wuemt_H7jK7wHcP|F# z20CZF#M3ah&##*F6)54SnN8I54{W4!tCmNk4jb5gdF4{AcQX$h#TH@uj!~))e?Ks%?|b=uM-w58F`u+|0EB?w*<3oE5{5;^%MB9@w6ZM-YI|@o4X}jowXcB_r8P zQ#Y`=V!AS5^3YU9P8hU$yukL9{0xJk>+RrZDbetZBS81@bRC*Wo!tg1y&l5V)pp_D7z`H}3y1T-WfmN0qA`?jf+)HSkM# z(yD%ZnEuhS9l%lXhwyZmMvN<6OM{qklq)k>t2C<_Xtu)u zr$sT1gKy>bchl9&nmj=Ks6ti=wiqy>J=gV@ka&PCUpE6IN6 zdR#$DfwNNY^KvZDC01jVY`W^i6y_DjYVIIsljJ>(IKzfnEfePD=;BDf{}>9%|D7;I zv0};-B;gSjG!Z2xF;vw&bf#D$MqDA{SHH&MOhGed=lw5WcH+n!I{VyN-!MAJeE&$X zFX@20CTEvHeS&#I9`(X!-HftYYWHFLm%=CW+bs4EiYu)Z@q`;_2m54-esLfJ$lHK6kd$X#X7KWa$3s$3vOm4NaQfQ*l2-kTZZg zm@sE-LLR{WH14vIN}uJ3@#&94R#4u-4PoEbK0LJWI;sQn(jT@vT0E~hXwv@5yA98U zGYGM7Ptj&QpS#vS7)kP{xegluMfWYRxP`LViZ*t>Cc9Vfy?wj5d(Y|5@dSdWYSwr; zA=XFsL|SpzF=7p}=%VjHxCkA(A_id6kT7@ab~1;Ukkz;BXI4AH0U=rl$<28T5nTSh z8&>rRcwr9Fr;0?W;)Ip1(LYg3sFaOvpT-+5Zoa*0%sSEN*mohanp_Q!Er1_+V`8n< z$rVbr8(f~69Cpwx0ddh3cG$jn()FhAk zES!mu8uJE5A*v?FCos43O(d7K{x5s)zTZY}EDXL%+nWu^n4%>5GPY=Wj%>?`Hn!!@ z(&Ta^Mbi|UQjbYC!=@}Nj`kV$4fYZCzkRNKghgEd6fWH&WqXd3h`$+&>@E}vg+igK z02El5WhIL;P8+n>@NJfrWD!)d?O^T5QGmLnu7EJG@XM0A!S~?UD+C|zt>f%?b~!!E zCZSkVh^(53sHzQd*R-pQJuZO0G$xzl>cowquz186x_@g7-5Nvx+Q!g{8k8eQ=j$jr z>>jwg32Y#1(1?kO^#reX&qYXtN4=cxyg3#M#HMa|t~86g^OLS&nj5T|brQXI;gUdC zf~LBMl=h6pgxCChp~d9ksI-_oxNm4Nc{P2R#e~r+-(qU?f@`$mkzy3Z888;#>*5>U zVOi_d&Su!}vwZAq^$jc`zm5MRmQcl#H*yjAc3=jTGie@aeh6IE=1+A~7cqanghppp zM}Acc$bvQtL(8sRw6zP^EESEF2Fdjek95k-jSsImy(Nv0uz1Ayc<>F3kLBkfXttP& z+%vYfNwsg2YA>Bs+Zt#%A%BmlqW90TadhXAd4Ld2Jg;W*hgmDaYZ%S%ScF&rK&XBG z&gaMRZ%@34tDKNuYv2y3P>9l*N`5 z0w)`K^;ot?N717z#T;253`jSHj=276Z3^U!mnOp?sN#ZGgUb#gRO>t2gU(Gi`51I* z(;Ul$>~$`+u|}iN3j9rry`98(%mtMu`z(SGa%yt`9j5rXAW&9%HWdW^?!4T7we{2M z{XLK~0A_p}szL?Y(_nM>x70ulp5+=Fgq0v;lc26NnD`#vPJFi$-@oC+hmv!8d$;C) z*4>)ZUn39ASI^R6jkIr;eBwK|11)*CS9jiC-Ki&wfA6b1fB)0g`{0W)uf zQxg&+_sH84+Iw&tG0KMX-=9+gB(LrJY9@h_O)FAv*;#&icH_dj!ID^yq(uvewl7-5 zlCDeWI6u3|afh6Tg71(IvQO0>xq8W=NjhOBx=t@PQ(|wo?V2DrrK1ZiTA{&h>U7;8 zu*PW67#+Cq@UcbUvQ%y;)*Xy1(>yI_$V1O{hc%vJR_VC&Yd?C7>sXMYGttKhMP?V} zinFLCK@v6g#8ZhQP?mVK1AjF&6P4TGQ!t_r-?$1)8H zb{V}?D)zNL2Hv#A+le;#Yyr(Hr`7}URW#nsbB(P4SE|fF4_6(vizan>LnSv2p zM86BEP~`i`Tkx*1!e{B(kg zq^c#(LmhH;9vbU85uuyjuNHy%6=Eeo8+nad;b2agjU*-)CWFq4KjP57ILqhRC@&Sx zg9gey+}CgdPR0zr{i2-fe0bS7(y@A|EnqC}ZHm+;7WIV}lR|MouD=lVz%YYd_vHeZ z$%3|6A>DN~Vl6ofAVyGu7=~>GwI`aAFYW_hh;@KVqZyhkt=l`&`v~IxEg$ zZ=O4J?HkRH|AApj3pd56I(zh^Uv)f(Oj$r)c_8#nSso4j(?)wi#jx}C_0HRE?mL$d zXW$^KIxpZ~vA@l$+WuNW_?uA?lOfF%?@6t^c~4>k>G8k7Kzga_L%RHNWM25wpm}jS z6)rIq&PVQ?7vy>g1{Lu@~bSoo+_I9(u?Pi19%?7ud4ZefT2EW4m ze!DH;c3Z&hwt(+yTfma$Ho118y0kE+$2(G*jl9-_kT%z+h#oc&JLTLCjyJ zrK<6UN5Z0;7%T(_g{`bdusHh~L{Y3+Y;K4YwHvMD+Z-ZAG+Mhld+mOQ2$n^bZ)26W zD$c4=06Vtc9c9?TXSo1@qoiv60e}0;xpHAT);cpLZ`e+E(VFRtFIu-u&dJq-!@G^6 z)zfxj7lPvf{YZ_ys_?$=n?(eg2TDx7%(#HRE5mf0k1i{`IEl`DuW(t+_lW=X;9FeI z^R@l2z5E}UA69{9x`F?`K@-`^#no%6O0jz7uU|L`jMXRtgd_0L;LF+hDNO`AdLg@L z0YW)&p$SEK|0<-euT5dcN@M*o{k`8+e~*HYrR1ymULkSjdu;f8i;SO#6Dr@~;(8M2 z6^{+ASsQR^SZw$3qZX@Yy6{ZTX#|BKVI#mEZ!Lzz_Lz9d-$H5=3wHOla zFZ=s>G0&If17|gm|1$18nskxv6=HX)jv(ncW>D5DyiYg{Qe!xIBE_ZDQ zK7MFBW$F}2#=cCFBY`?<-eHGM`g@owInnP_d8=sHTDp=j! zXIVPHM(9?pSC!}*BDz%|_ayZEY9KZFOeE{?RZ?lkeQnL^5HN8o;npR+6gCpnD1W80 zr0p|wU@GC9jsr#cp{h^T*L2T;MKIIXLq;KW_kGL>UcrTI5E6A4j+jMGUUBh7qH?+> zC*bDMYRTYZKgu?FpPhigI!J69ReDKzgUECN4vKV7dZx;A(*g7^HdQ%8oZ=$WpVCa9|Lk_3gGyws1Ejb zb7jD}uwnWTPfw!0LvT8Cgt8K6yOYr+U?5UxN3>TZy(&9D?QOpow3?G!$mgclxR$9n z+_q2U=CgECg11IRMFIM973%E@sxk%Bvpa)j}oKIHs&O9sO4#$uAX^JM*D4hc*95Y&;E8`TqEGUG>h#3534 zT1>@BCjkIetJmk{nJ;E_ih|#InqqFVw#j@wd{fg4IyqQUJ({w1{cx(SPiiLO0N*N= zgzlGHYb!>knuYeV5e16eivpvkK~M`;b}*?(+ozW05K;ukuYkOwuzP~OnIkOm%FgG- za9CLzz749Y=)8*4f&f>2SP*p>iS0{IlevN`U^>>_tdLsE6&#C-$OD^r4muS0^iqm7 zb(QL0BTlW(AXkkK6)TjV=VK+{=@@SAdZ~o4Gbt{_KrkcCVHMw1sHXuXIq7BcOyJVl zXNhvuo!rc4UfSaLu%sgHm`t3un(xYk9xH1hBl*RGvW(z1I_3a_T1^)d0CiJNOkPZT zZMjIlQBy#F2y`UWQe50-ZrBDI+>u_1@z?2^ar$WwU|K<2L{XfF1gG`<86O6NqIwVv zieQYfCg*|}{VE!@dc(}?RrUB2e@ux`%VLMt$+!{hphsB1h={F1yltZb52Z^F&5EM% z)-NhL(;MRd0yM|Z{!OX{1Kw2%1{GwEzO*c0D>w54Y4~le1$-v`KE{HO0rHm z9EPzjpdDo$f-^I>1>&Qo!Odq}guP)G*11qoX=UeaN4KfjI6Tw|C9b?mQ@!cBtg4v3 zE==AR6ly7RW$fRABSgV$JqZ_6>Aos}Z(p|;-&_Z$#YeQosIr4Zm#W{{JTvFx z%@pEZ?xQcZFQ%q(I&(dwTR>8IoifL8%i` zLzhInvdKvrB&!5~W>^@Rw_~w3q#r))MOG}nMPB@`y<%aTuAe+l%WS_WM)Q1{+%8qz zE>(QRrHb2)_WxlU?K8Y4Ac?Q;+;91Sb*noBA&Q_&s9m5K{%#cb+Qlj3G-=YtIkPOf z86$+OZ3TgdLOO_5)rk8M*t!}tj3_qeJk8Ngc;ExpW-Em>-$F#-fGHO#OH39Mle@%dmlwOQci&^N!@K|68h*fAP(QLq;>U3K zU1kew>_SkL8cG;X_SZ zfAGj)>*GfwP!v3RWU!rd#gF08{CM=J|3v&q?`OIRC*8*n4eH1E;UDR`U`W6Fs4sr> zyOIa%;>Uv@`dwX5zx%-acz_@N@$f{Te)Q=6K>T?0NMO7FgZR<4O}IZ;e*iyh$G+Nq zyYGlY>^zZy{=@dx%WaZ_#yS9XaSL~Y(`j13y`BHwCNRAV$1SC3hXA$CYf{CN=N?QGltm7wIhTz< z-@y}#ErSsC(^_dwV~#tDZPbQMU6)L|oUvr}v06L?(A6kWwwvjv->vWg3hAv-?Xq$B@+hG4 zIy$+WSKF0Cz5O9Io&H)qddPvVA3Y2M-k<8{$mlUfK_o?|Gh1vXjKjMElAbz@LDv8u zi>r>!bYQdd`4fUDhpR=jJq1pyk_FLdS;_YLVW=ho0%r_ub`UCO6{D;0450{{=%oRJ z2wB!ak|j1F+x3kV$J0=!)I-w=uUOVmSkX=ArXv=r?nmcz99&sQ_yd*j_4rO6R@;yZ zgIv;}NMi2@>0u|Vv0z8ZP+GjF4yfXzNMC&|X}iA9@pyG;@I)Dgo{QW3C8Uc_t}R#> z`#m?V4NuN4SQolZK}`$w@-*7PPLBqPl6O$y<~!+AaH8VS%pWH3@3-H?pqBbZ`p;wMdyzk*?Nx;u`28o2GEX^wI_j2Ant z@C>EA9|3;*b(s0?emLLh_ez$toyqik&LG06@iavaP#rZcu&x8JaWJkdh_t|;3vAYQGt0af%9r#vC>&|-xH-*PMV*LTZ zn4zvsIIV^%^&THIecIteuxjLwige(Fg2D^4MGd^ymqgTV|0I!9#hd;HF#B=Jc$<(> ztBS=yqgf$M3CK3(ChyQbVBX)t&)DPOZAQ({dZ1~)9`c{VR*I`uI|;R1e1CH#-OjFL zL6h<|*6Yyk?Y!Q8yC1K>_O$i~4)5Z&5+CrYx*y@sRtY)ge|rDg7b_(@Va-?WgDW4x z(=75L8H2vYD3T*e%}efdB(x%)I+l5J;P;Z6mrgFnr(gO)^OSQ7rn{d;MnZYm1OkB8Db9TDw=VOhS=tTb(_iHy3)#kBBX@!%-4XwfhYR~ZYC`VFvj5lto{ zxTzmtm@zgP(HwMm7fKx7wet{{qX?K078wA0(BnSDUI`*#x?>KQx#WlvzA6_~*A{U% zA6B@V+|r2BR}~J5i%BCmO%?c_cE5m86Ure__8o$&d5so|d^48l>Xhk6KNyMS@KPJ~ zS1&6&!@=6m*H>Piq|?xd=GsqSm3Xvt{bo42hNFM10+Cl9tKh0FUDzW|KskyQltdL$ zR3M%JjOm6JlO;@?CV+|AJf|sH?95TVqw{iu^H%gEc3@Mkrn_hb>uv?>brq~b1-uQ_ z;Rwa}jU7YF3gnFCgFz;(pBTKhdw?|<`ZCbCfr`nG*&@ye(Q_FWFi3-%8l)B8xHnG!)s^>XsHTkgAGdm8l!F${Y?=ef)O0fPZF8fwC z1M{q%6{7(z|2lw?_QH+ZW6T?ek-%7Il@(lSQ^C5yz?Z?`Ld`Xok?~@VJ2=XdSuq;z z7gOzgFzfKK5*IT|bPS~10D>P9?%1n3R1jVA&_-Jc{a4jGQlM_DvhPTw^0XOM`v1@>Z8r}y-H|XOq9->ch-IQ0X%|y0|8Oz(s zyy@J<>OsXr;aapEu?z4Ajc9%m!JhqF$?u5B=}%u7As?J)0x9)7C)KI#coIF;BXCjF zpP;}`vk`^+Jp(&gT}`r5wR*lX$V=GsvH~}It-$vCWKygQmFWiCfX+|Pd_qj3sTxvn z4T$QEw9WMZU0qu5{{dbqSM9+9Zhc%73q|JUL!Dy4PC8>HTK- z)isKvT*y9 z4R)z439J(vh?+TQ;Hqer-ef-m3;W8Ep2%_n%5EuSh~@52EYlHdzw282-8yT(3)cRS zkCjmsP+w$ifE74%5h$SrqnfC#UQyx^W>=d*dC7JN{Y7OwQ0B0Om&mo0)rV-LQ;p|NF;jA>Jrwz)!Up?6;^ zBPbhy>!#YE2u%Kqwqr{|MF847vgO=x8)@7Oqr#+}(;RY)i4%_oOs5lYvl%1;x7aX5 z{g!xV(=0}445X%p#ry-gC&3&^JLWTK$8adkA5icZPo~*|@Ij0R$N7;QgYa8aaOE}2 zxn`9RtR1zgHuL`^s4t!8QBBZ7}Nyw=nZJk+fwL)riv^UC2z3S<3)5|u_+lkI+ zsy~mP zpr&r(k_MkEzi|S6w18}nxs4eHdbL%`YM{P$@zrjpGK!!X{7=zqUPL0s#Ozw^k9XEW{=XV%BRr9QMc*vnK>$uG0cqjk_bWLRO@- z`i(P)5T*tZyq5#jR~Z_SH%zPLvyK{z1OzySL`Ba1A>>kaly9)V`*IiZXe5_;HX10w&nC%52CD>th}A5^)3W)Tgw@mkK8f)T zg^wkdzxjOuA0|fqk>g)3UNmA*}0=A9gX^ahNZ9FZMqTwTh=aRqPONTdDUr4 zqOAZS;GTR6-4h!;J-5-vCXW}45Ka<@2@qy;9*@T${#kdkh&%iMbTEY5$iWq98dv>tZt!YN3B*At<{a= zH@1yEi0LA`!nlnC6$#xu{05;LR6o2|6`XK%cuXcj^9F;wu_z3bCzw4<*8(`=N0jAE z*!-NB?L3sFQl8x3n$6Nn+&XCL8?=)?%=-i9z;a*B`Yi`>Si;0yrjW)&JpyghhckX6 zYfE#ggkW$mh1g18{ptA~7~r*4I<2SIy$C_a$C$uKoAr9Xld90Q2nWt-^uEdPVvl(9 z(eyr?<8B@wyYTX0I&MZhZnorzyK3Qh_&O0gv#aiSJ&7lrSpPx8zRymTU}N&^D4>Sh zeZIH-{!iQQk6-M*eYNxZWK;9nW=G>Q^Yr-SEQR%tYzBJfB) zbCCB!$q_x4a|gdFTfSN)OuVh%f=Qj)s;pRl;ls6qVhl!0+n1LRfsz|oSCB8{c04^c z=#S;Dn2ZM5+_ztywlS;y0+#o(Znsf`yi|i|B6r|u%~L@N>`kb%N*&51!~KA-^*eAk znD%e9kF9OBc)SZo&Mccm^KPnFaq|t{=xtnq9aJ&5#>}t?!-*|Y++D7O$ZPpb8#C&y z{|RQ7|L83zRWm)HT31p@wOhv`@$Q7s;p%NCm#`!;7`_3qY zHqI+bC06P-Peb9dtuE~a3dD0*i;%GlNWc@_63G)yy`XS)HTiQ! z8EcfemJcrlU34^fbP4Vx<{}!WA2NkxdYPn?fof|u;X*DmD0w!ui6*5Y` zTsB)CNoZ%GF%Pyaq=g$@CS{h5%Vb_aPMv%_rIpoekn|NfY6_XGV318!em=tphVDQI zb6Ic*3)=GwHe0tB>*EC^(d7$L&GtLDU8cu&HH2H8fydm~9v4jf?ax{I;Y~Vqxjas1 z9~?35)2Uq%yEZbeCKcY{9}Bwi(geepf5oMG=)x;1+h%egWg>oHg)5Q$Z$L zSX7HDjy!p`S>g|QF% z@6ei{gC^)#5mhxr!3W!kSQadRHW$`c|B_!HVw#tmQ zEBTO%T9@!y)WTfE+YFN_e4#hAq+26RC;OcvMHO5YHP#x@2A|79FS||URPtrh$O2P{ zPKOchoB5YBdi4+A_=OKQ6Y$kf_*KhZUyD#0E~dY$NsaV~+^gkvWh^aO%mk0PSMkPJ zf2+cH{sL}XD~^jxBG$ywn}z!ThBjOh7PEN0fgP(CcqoIg^>tNk->PX;5N4qU${@?a z^~YOjzmkg6K0tM`hyn+GbAG!9h0hxy5F0cv*wkvMLMI<0a3$Q!BDI{jsO4DwyB`*r zr>DC5mpgybIC=P3xE?Gy#%wHTTDS`76pXAwKDu3nyj_L-o>n0#j9$G2`B(!kvIMEL z(%zX;Gs>yvdqCjIyL6V9g*-Qtm)n0oPe+jRe!UHlUDF%Tv+{B$0BLDk5_W8PFT47s zm<=L(%OmR23YB6V$Q4#4rJ_cG1MC45q{BKu2>pz1SaP?yJ3`4j$W9xOD_>9f5yaM*!fSgRg#LTh^4WG-VCMH?(9; z9Sa+>&~mF!ygA#V)4Hssm5-;WW47?GW&m3(kLiA=c3_NUH`vLCqb?iDokJeuxM0+>sAiqA z-gf9>Y+ODn;0Q062G_7>sr`cRxrYCsm(t-pGe?H$b`Uzu(+gqQRWOa^i7H+G0)LX*Hm4zZU?&Dh<_twV!o^0GvmJX{e+$S0g zv&TKZspV=)S6Z$H;u~77rjCUz*9t>Y3zkKABcl-ZH48ITP0bMAPz|{_%TLY{HHI(F z6sn6Xxkx7vqexC6qjEZGJ2?91a|%r0Dnkj!jj(ev+;v@i%w}*mXojPR8}5{!LnXMU z8kq@&)Rd)0!ubdk1GG^TSjcEu;S(NY8sH^6aE66bkc3c4+ zr^1I7{tlNjb%NSylCHRB0+dA}6X28E3Gj9T{1==67Y*_3D^}ikp45dar%4U)b&qQD zCca}wOCYn{!;w-Zs*gNs8o7@h-4tqT#^WVm1RPLfGdg3K8u0D4vpB||sEIm;q&$*T zG^TD}k}7!6n1IS0!5v!uayBClz+&e^0jR1eR;S5}6-D~%o8>`fU$f@xXOnwVU9{uIjGA{>H?LcuUdkRmHe;+Muf;#R@} z>?QH6V6z`AsO`r%7Z$QVZW=YIVW~E!7BM=o*&~^Cqz3UfU#bjx&ee8R%Ff8HXidd> zC4yD2;lanv1?aCoYPJ~rC0v4xSE@Uj&|1^mBB4eG``InP^=prjPSdwY#0J>cPQ=BM zbs#&+%SKg0DaQ9=WGegWBqR}^dgSr52x+*XBt&G}JJ23UO>$6ob`HxrU0aW*Cc&T# zeEQK$M-3svfRU`Sf}s?PZ6anNc3)xqakCKf_1(ODi1eE6Np`P!S&W^uMpdT_nBeGv zFOfu~0fXE-cwqO5Yfi{ctZ-SEXX*9hIyA0om3&pd^hMMb;2J)_!rK$LMqRMCuuCdR zgdXX`wQt~&k}sePxp7jRTzrs!#M6=hCaxKp7pJEqxC1gP=PPujxi~cj^5_*XNj+r| zEhr?~h*FXAa`(-C@gbXd*|F$7vbh$*k%l>d`MMLxtGd3)OF@d|=^BVYZ)%Sf9&5q! z%pK!^AZ5;0enhN`!5?%Qp;u5z@8Qkma$YbOyE6$j5Dp8<49><9bUV=#p=pPh8O>Ma zgXxsuPHg79uLP*6!P<#Lt@raHujGr~0*wR5vaV_R{W1*$p;8os`%N&$RxRkaF(J^* zxx^df4GSQQ+nAh>``N4k{J4{sukuN*CLddodi(~`;0;GbF%!?BtmLKn{>&xFu*}Gd z=!_Vo6c+)!vKi}%o@Ij?Z1WxVf?T{fW$q5EcG;7QXZohljCKB zq@aUZuqbT8?&3`Ol~XMXmZpj%OVixAo)B9SQ>pZ`Bu#Abuu|;s9Pbk##(LZMD4xX5 z5dazu`0SY(_8gE<1-E7}aOA~x4hZtRcW8DtnkXPA1ISHQSoPgY@UJItAmYGD=?{!E z?Y3%D(PA9Jyp832TZ2ValcgUU?wBuC%O)tfEiJlcS`4m?JiM!Bp%-)o?&~5QWGI<| z9kRNbyrc_IRE=f+570yTBzdLg=3(&(AWRk6r|jfKF&?Lrfx@0mpb+)odoGDJz$ELO z&=yss=ksC=mX+eoBZPbOJ|pq;U|YRptCGdUxzDGSnprKReuB3zf9g{`6zicOO*wWSkxnQ1EG0P z7K>r#AS$YfNtJ6r8HG-iPEj*@k`6wC4?93KbpJ>R9MTk+q8&wQrbc*vnkzI3#6%|G z5|>F@Dk;ZhEVvMfnx*uL`Ti2nyfGBLgKy^Li(-1IaGuSR?%LX;F z+MA8l)e~@RPVpUHcQak3A1lZtY$LI1)gXRN1P)N5XV{*tDP+6QZ`#S9vRMhT+3l=> zI?R+t<#&g7QIvj{To&hwg_jAWFam=Sl_uNd9nNUE!f0Jg~zjPh~LZeiFstZLP`8$3MKFo3uoEt{OrKy3kyN@+kPDGd@B z1&S58d<6Y^K2@E8qaissc)9cH)$z;i*W3Hs?WFOCObwOBQ9GgMJE|Yw@2lrZ@(2CP z%)Z(FUq5ZVhU?NUirHw;X&fCPK3ZoUXX&Ke(6>?KqN0uX4&zhOEeDnHmVCnwIAmS*G;JMS&sovZKsc>{FxQ zlr7N*XG=*cNYr!+8XXX(lS>#>Vx=A6=2wt7tt@76lXbHFNr@y34Y+XD znxy%J>EJt_Qatvp(D1bT8O^IJUV&61gknWrW!Tb;C$Kw#Adx@9U|w5$ngvDRp{g$I5LVrM<$p@e>5aLz9N&zP$XCe zN)uK{@djH>l6e0#S;JK@s6^XlPs7G066dDP9AInSpXFl|AXm6tet@{sdt($Lzv;*KE005=n43s<$xWbs< z)0MBR+)xTY1rwjlV3Sf}L>KGnoKMQLd^m49gG<75-t;RM7ggZl!VDV`Lk1z2&2>MZ@3)y*=$>O^wm86Yl>HiD=bsk`xxtIL(Z{vWu3OxX+&BBxbx zS3mgrURx_z)sdswO%2_k2DVZbtwftja#rC=&{r?ifX>VUzEKv>-0}Y-_tyqJHoB`k zQ(oA@<-1&d-INDEUXx(MMH;CcG&ziw6^Gq>0G08+h8*0iG9Qq-0F3&L&mBEzygo2Q zI65$I9f_TW_;Hkgp|k?5278{|v&D6+&dmDIzKaz0I>E9MTG(K9VBeEdIW)HNEQ6ev zGy)P~XT-ZgSRcrWgS8{|A1h_JOO$>I*OnQFP370e0{59E#k z*uphAR{5CIFX8@c<5OGmB%L%UUNtes*a8E<_Y@*y&sbGTy_6ZQQ%eI|RSebAN@|YE z(oAq?V?Dc_rK2Hw>EZlFygD08#%v`}fI|}(7z0rD8#t4*c~YE{=GClM9u&7!@9SB| z>u%1*2j==9`=(EC*8MkKU8Wnp;WGE-8#SY|HA62SNLkI)Y|<}Ok5AKlR-&Z@@>*t~ z!sp05HNlj&uZ>DYDm)wfIBjbZTRk7XAA#>{c(Z9w5rwlaGp;-z%}ZB2xOP~LIZ2h3 z;0$cr*drw}T(OyY;g7&_+|Ntpri49RIq5doJSr#Y2jyC-`H5WLHj9;%HxjW!a^(iP zUTPL+j2^+<%X<-(vjmuEIs{Mu&85-~$@-JWk5uOGIt&T#2JtSd098JjXQv>QAZsQ@j$Aeoe!R}Im%z1HniTa*#P~n1AAEwD z%Itvq*mWM@e5HU4yY40HM~S|USOHhONO78_&1bStR-8W3T-o6ON-OU z1m+Zj0Zv~uY=^T#N!V0%y>iwSGf#@qNLen7&;&hsT1P-5fK+x9Hs=9}|GVnwJFuTd zle3F0B4YtpY>~yFofT0ZlpRt`I}G}cM7>mUg25tyD5t5?1^w)@U`2I0%Lk_N59@?d zvg*Tnh8GZuC*25CS3;RSrbp_}Qx?`_AUasl_~&%=!RJ{qft?1~l(o4*_5lQZWuSVK z>FmLyr)siLU58}igL`Ul2pfn>+7Ts$;)50}g8F2C!u#6$;q|IGd`UI2*Fs3$t**{hQE4r6h5}gIROMq8}R%DwvGpl<1)D?8qh)eyj zYaiO`@k6=~@$a0rv?Zbq!Sa= zq=gV(7&x7!)3c6+CAkG*@c9h&Td5n|O!MC4usWQ4>Z;MERQ$Y{u8guFByKBagM0!OU3sYn z;kY9U;waJ4B%wE*Dtoeo?o-v#U5^Sa?Sc8^PWx>oL~SK* zEvII&7tmk5z0&K=QUOVAT&;q-Mg?`X3hEja)FlizaAqR&;fZnFs}KJSXx42mHobFs1=NbsgN_tJ>p#R#$14!MrFS2vT79 z3Ju9K_Du&_I)HQ)NipLB*7T(S8-`@cs6`BCu{c)DJ1FMhRA3`-7P|5M?B6S&c*2pu z6ZB!VsJo80bhjy*MzL=={97Jcj~m?V>{s=Ixd^fEN_j!F3l2^65iW)1bRL>?V6@O> zZK3Xx{&t0n9hW>Mcp`L;FO5ItMp!>t2NVlyFmEyH(gj=ZN3i**`Vmx@k)jxG}in({1T?^8j*r8tNQJ_2)W1*T$6 z*aU9=*Le=B-DVY@tHkY+CuvEdDwb!!GNNS^yXMVP{~9LeA^9+mj56j%lfSB!;&Y|* zXP3Mi*0|Bx3{R6o5G_>-?Xt|v4ZY=PlI5e$5O=#@x!I-j9glO4Ex{;XV06beLVTUkt-IG5kE z8&gaTfEw7lu7re_O<~)U0?%f!i~l36nD*IWN+LpTXnak>%*uHT+BQ^gb&1342|G{r z&<4u2*QZ=?EXK_fD#2x$LHL!1TEe45TTL16A|YeBx_%3YeQuRaJlp32?JaKxdANTfqWg`gLRoX|H5t6(KUfTG^*CaXu3*9QmE8L!;LYSYHUQAHQuWC+6Tm z{It2aLr_PI;g8aSWaN?i#(U;Uvgh@PKWCCXkOWhZlvv@4UQWLv^ib@1TG8k!2L`28dH z^oFg=2-1xXA-aIIF1)A-IeZxqExMqheqf6YKm5e)acU5vliMykcYfa>CN|&cj zxwUAyb+_hN9qWD_nj;mPHnlFfo?*^b$X@7xzR!x;Kn-m?9ROrNo4<=2E=T!?jLvJp z`T*`9On5IQ@6*lo7QQX8o&_X2n2>)7EF@ZVDwCWHZ`kd7GAqi`-|%Yq1!`(jfK52_!W0lMPQ-~FeCS4Zlode@^rXI2cB~qA#EAn2hF#%eE`n&BJlwdU zUnEWgoRxD)=RLjM+@Kem4NMrtDc+xD>4#oO0Id-Q1Q4e}0+@qekpL75QNI$4pQcK- zW)KoZ+uzD-TSPaN3!?s=Wdo(#(#c7#-A4T6cpOQ{$URpwo+bVYcu?YwPW|f?yc12? z2D5jHc}zjQ24{I(+TbH)D{88X-fm0IyUWq?+!Z5>6G(tYbXVK~wBod}1=ov*yG8Kh zbb37++|YuDA^a^Q__2K-A@&9p!RDE0Mb5~%?f|6xgqwEshsHfD3RAkqHTRTsoC^Q5 z7*$6hUGd>XpDX`?tKH&t*0aG?oZ{Dl7(9|HhYGn5%M2B<81hwzN}$;)IVYbo(v?{6 zJN$t?JvF+MK8y4lA2MB0SLR5A^8%%c%LZl55?rS$nhGV#yaY}TsKY2as$qm zkYNj_{6^#g!c`ozSpi3UFsg!Et>Bn$33*DaJIMHGsZt-Xgv0xAv#A2VNH6iMQ3fez zaO0(a>Qj}@I;R`S)>Fl=XV15uuEO6J$;z_?pKLv+CtEK78r`F_6e1Rh&SVSE?a(4w zUxjPBAO{yF85vzBlph`0F~o2eXm!X^XO>5rg92RD3BcTr19MsIlQH2(9^=4h8*V>WSbtXpqQ_GcJZC}^5BM$H53unc3PbJzB z!xz-kV=)yh!y`?H==Ev|xwo7EU`FxlI=^zdsN#?-HH%9}eY5MtY|*~Dw{Tz47k9e~ z&u4m%)6S4|Z<$=c`sp}@1mid-sH#!1LCygT`{leZJe?G<*h=M+@*?B2F=!?dCC;o< znIPrLMi}*`TJ1BzmRj`+zIRMYEnz?DcP0y$o5BF!>7-j$Ct_ukRItN21-Zf=g*gu) z!uSSK30~^_WbO_FO3h-Icaf=OunjilE}=YT+a2ECV)87Ri!+X)4(~X6Bki9w;3WEb z>rn4O*?g89s9yI0!<1)O^k|XVO!~A*c46_DWNV);|A9nwT_U<|Kbb~l`N+e6XyOi+ z3gtS`J6_tbz4KF8i}3S?b&@xbKm~SiDEk83cZHJ@W!*Up_ZnR#TU1$cz(HF68z9W!J#8ka5?^!j^E3EMnod~Z%(BtERdp}GkM{ft4W?p z+Js}oP6|~Ver8TF`BPELlV#zIFxU*_KKD%yKnQx7>5x>Z8OmxzqpKnu(B++ZKro(J-5i<7>^=tCI`UvHZjoLzhV%!j)HP@EH+j!Udowp@;0&< zD{pILvf&GLhTym>oVrt@^A-MMlNfUXW5F*tY3~f`MvD{eE}+J}41;BIc$Ynp!@F9U zPiKXK&}zkK10h(H*t%o%*$Y@EFiQJ{UK>x7NeX+aXuedHsiI}xAMxw}p99s6e*tv~ zZ2apHI5PaT&F=uJsgV6evHGt#JpQV_{iPM6Sg|Np7DAy!@2nW9dA@{e3n+bxZBI97 z5BfuxwH7P_wjN+3YP?;Lb-JP3)}S?phHavG9e^TS9MwvIYNZO*N{9+Re@n#YZ_cZM zeK9x&AvGQRolRI370Y>OXp+lSPd=!t)kJ0Wk!LW31$(BP){Rg^+path5pd2vHUg|! z0GMv5^nnX2K#==Ya0wq;KIHjxkoXDN!S4kGu&aP#E(6FdG1kWzOh#rh-P@)Vb1a9w zgcojCfHg2Nr}+-$1dT+}lq{Sim?rPUr%BxXKz0Nxm$P&_%_fRW*WA>~r(@g2{yZu( zoi|kxdQ!mEnq>jEs6uE(BoH#K1v)$Rlrw?Y0P2K0_A1%|`5~BRexz+376I z#RF3p*$S*o@oQ|`WFk7A?FwPsxmz1KKcv}(<1Qf7k)}kdOY4?`JSQ0^d`xV1nU25j zcD(Gvx5YdzpOZ^x(0bL{v1Bb7X_nA5iYj}M4^Z8c@mNAI?iBNEGsUJguLp}NV1t^64|NY@l4IGM5Y}P42r|>Jc6pdr=HB zIz0+W3qHMkv4%??;p?aP`qisfJ??R;TGb>g)~6Pis2YCKh=C2%M8)GM6)q$Z^js3; zT&K~EdV~-hiv_0h70wjtN2H@Il!ZV)hJovRW!=TcZY8!V?5(CKRe{h&#}T7z&>=Fp z&&dc7N73{Pr+VupQ~Ox$0n_ifkUg*bqNTa4UwgNvywVUWCL-vr5Z&Qs`GO|qd@ZhO zaAkvI8nv4``*`dYmPN%zM#f!*FRG$Fce+H_2&Pw*=(!qoe}+ChZAc`wVHOi}2t(wj z{bGieTbi6=wul+{<*Z>lr>tUA<2&?Oi{jIM;|39{jsuP!0FC~4+UYEYVqrSa;)B6UT)ScfRa%)V_Zum-vz&5` zzrp9dbp#wmz-+`ubG(TlFa{JU^y40bcLEXQY&E)Vs_7tsI;jkPGfYu$R#qIr#7ITe zW=I+Z5bZdQ1jFbp#z5rjdt#tN4OCpKBL+Y4Rx_x28)gC1%M@%g31m!L456(P3=(H} z1efe|m$+odhR1_=IbTD?S8aXBE-74RFQNj1estb%fHgnv3B(^;uNTJdpPa z?$NP6yokzNh1H@<-ob-y928h6F?Ad@de`(w1zA7p7i!pUBy8 zlPKe!S*(e=NOjAu9BKrWiXN9{Ly>r_E082{HQG#IdF7`-2z_nDA@qc`DQ@l4fI(x= z(sK7=qA!}0O;%F}Uh$SStif_8C_m+rJLR^jE1SWI(kd)E?SVFL#qNA5(+`%A>4v?@ zlY|U}T(v3LysoK0N?ZG~ic|k5mDeW)Ug!+PYOuomf;WM}?gRAz?iw26mdaW3^Y-@7 z%y)B4Kt04Bn9yy@d6>E3GKwvLJ!huo>b%$ zrkdf#HL@^(ljxMs$;beAEuWlaGv%=1-1W21r=L5?&V&;7D>=$1iZpCJt)3z}+bp^b zGr3SRtWB$nDRiONp@_!M*A-)Y>u06sXX+uQE}}KuI9N_6nC*zVFeh*^aAeuV=UEY* zO}h@}NcsT|=gu-4Jnx_9qxp*M3a=CJrU-=w*5_yWV4%z`)!F9|Nl)pnr};cpQ~$>d zdZa^4hMCi80xKEn56fLEn6jlky-A5}3yhAPK_$R}EW-^h*-1**kY&lw$H$2A`1of{ zJ$67jhZMcszZtCNFhcCkVx+Llii;BRqTs=ot;t{pS7kqFC;7WGNEG?7qde?gg)mLl z*KxIcFCC_{T)nUqqFIis8Z2!cLr=>NDKpI76F5`4LCYjMvpagQH%EM_ppbvI2w$;` zUnRo{=6lhg_MSQi{tX!1R|(%AjV1JVyaerI@qsU3(0D+GTpZ7f0@nVol7m9Y`zAK& zDA~iS$1e3+f+>%qTyb$_o{uxPB}_ImSj|yF|wv?{xRo*rVQX(2z&nf7qE>nq5X@V5aKjzu5E*!$~iRvqXzv> z8~pGg5rH$y46nV;W|_WLj(S-tY?{VP?SfRaQ#McD?+cILqD~Vx{Mx5YVOUNW?0_S% zZ6;s;g7-bU!VqB&g?{y!OhCu*Xr;mfQ1VT~aEZdk9ss%G4Nd&?k}6jqG@GGm%c|i= ze8!%?a+)>>6#MVWQp_MHi=LhWGEkTThwz@-Ud{Sva~%rZ~-e8KytMzfp%+Exnr zGY^S@ZKh1fV)hZnn(1Qxa*x}%L4UPirXSOMgtt?=B6Xm!$Tcxt3-{2SJEmYygV;v~ zj2$g_YhEgyY2VAIx;i&bqQl*_$$es5ga3VKSK=hXFbJHfwOdAX=&4n!_PRO{M=bi#z3Ju>P`LD zl9eh8B<-sI@2mfnWs*KzR?36`-3g@2NP(USHEJpMK`AY`N)8fn1vJZr5$oBh(Y?8# z!j9A7#8H~|1x@i-FJ9-HncJ0_EfPoD-b2yGV6V0y?SWWDm<$c$`sIdhy2M3F+dg3f zqSbcyVj_m_G8mvIqgd`Qiv{E%is`{kFo9%6u|2#gHjvXO#z$X*5hdTjdZjxVbrtBT zb&@$(Cn*tyV0yy$jr*64LxF=FW3Ez^ZJ^Lp;}8uu3SUO4R`_^2brvBh7D=H9fl7`T z7$?8zbumF^51(5s7&9MZxygQsfv*a76>^12cp>haU_&S2Xiv@i}FK^1uJFNp`o zPzA0BH^7CXD8#22o1Ty6;)J=Lr9n!li+{OJaDUN)`-{`_^g;3cB^2LZ+(T1Wwol>X zx6hMiw}D2W8Ik$p&fPpR-PxOxENH}Ecb5J#NBDpnxCuk$Xi0zA7zlDg2P;A0T6Xfs z^d4sFFD81N3YS;R_=Xzx_8iw3JX#=ucR{qjihU3~68fthdYF75!6v8)%HymbK1H8M zBW_tFvHA~!hgPp?3s#Gzf~*kBAU1I;pHcb5h>4I;<)?nRjPhi2E2;I8Dvos;^-OWX zZz!ecV9#PTW8{mHI{~?i#Tu_chj$PoHZI^IGd>s!qQn)9-@x(z3gYh?QF0)}&8wocIpNOjk{YKF?+h-o}ht^J!FxY^h zv0{GvTh(kG#kFwAa0f=H9Sddx#G58W%%wcj`inTZ7%$0`a(o3p_+lzKIBHir5!bm1 zg0X=Ghl|Q*#RRC?sbFI^BqDd&>@Ygv2D*w>ZXc3%Cw-x%7e4t8 z7XpD|Nh!T8re;D7kxJrS;duov1T{QB&dqTpmP2hNF73dvxW(p~0|Yy|CaU(;wDQ(y zq}8tzo(;wzG9#_9~I2gMpZ*t7@9aX6#EN#^fqQcNlht zgN~>tT&bQn>8Gd^dav|KRSi?OKfw_-9C;*k@wzkIJZVJK?Uqq-;V(SW9aZ_5cMU+l z;r0>gwkfSh2KC4v9y=>&=8a5t3qZq!mKrz*@Wvd1V|E0)pS+6VJG~w*vMZ*Y93Nj~ zebvAZ$FuD3=lLvyCHc>Y@vhw~b9lE$mGDv-(X5xsng-k9-Q(k|e1nx7-fe4TGCI#T z(3yc3`3C-kvT8DO??J0_2fz^BbHoL%k*}TWkM@4{PYpw|IpTl+>`-X!}$)=6y zVY@)x9W(1qACSgIHFS7aGw|>(OyLehCs*B&VnqmA;!_3qqZM@C-)AJ-Y`^L$m9$X_ zr+x+1MF~=X9kEc3Fbqy_QMj01ySL;=N$!SAmSqgCyAJjX+88T_FN{|)m;r2udC^pc z2Bne5x#U>=MB}VSKOvxl(J=an#}jaMg??vF58+m%&(`ES2AfYIJn;B`)NCnvE_=zH zCRWfqhQV^2ci;$3v(@ShlsnYw+1i0Rpp2}l80-iRUru;&Mdcd4rn@2V-${S9f0WN|2XJb(!i z&Ili8L<36-5ZbdpZ5P>ofb!UdoxG&@se0EE(#9x^3FeD;uJ=Cr1*1K0P<>A9spfqp zVRW+j@a~S1u2Bvr|K{0viZPo(MiP8JqZ?STYFPBu8^{jtBHkFBIHE1UClcACxGxFM=+NeL5c3i#4XAwXv}v+`t?Pf5Wb6fB5{$DPbW(Q5d~VZ@Wm{jI|bt!Ten@5{E%JB-z`VJEKgrpHG{01 z7l4$uz0dQLcbb_%uzlSM*)I@Tl_XK}Ky>idVR1?5Y0?EmFOVFi8M4U$Ql3X9!sh(| z@;+)5*rrrW-xJ(RnpBz^mnfs&k47)?hS+!oao}!EB^F8)ox*)xc%C9&%~}k$t`-C2 z(^pZ!Lm%$iCWr!~;`9^^s2Jw;wE(gXH$jLZY{$isKM4TqaI;ZnizxMVI;j$!M*^^~ z-koCNu`1{vq&6!CRRpi!_u%U2h4&8lsHoy{S5ixRZS$hCX^#c)u&9)}`;xt7{*S6g zJ>V`jI;NsQQQHVCA8T_eiw2%=C@{USh!0@cyH$AlPyw|Q)PQ6IumY1OEHEQZv zvn_R?ZrYuu*p*FRlmppyASXA;J8`CVa z(Xfs940-U#rQp53mr9d?5%IGW9nyZ5LE@r(o~uy_Td(29lPT^4l@NHgV8G-tC$Sk2 z31#~if0LC>8@|cY*7~^ zIt0sU{&OPyl?^*|EQ93eK_kf@DzV`NLZ|Hp!CH|WE}R-!Fz>ss(RMa-e;@Xz!`AkWRy?)MLHWate$+i`{wwM+kaI>8^_0gAJHu# z+033*dGUJZ-Sge8_b-oM?7n@q^Lqt(aDZE?_qYGDfBbg$<#szUel?u$jJ{+~8s0bh zvj#tX4!(^kv;BJe&Gy@>VpSmEjMu$q*S-$K`tG%e=9i1P;- z>-6){6rI+FGX`RQ(^0AvyBT z%|(~!3Xy8va=@Jhl&?}r7Kv8I*rk&JO*;lui>ooleAb zAZTm8$?F6JpluA&};=(5n#s*OTjd08Pal~wF0@mBWAIA6bH=-Y#-S#rf#M5SV^%lt2+j= zN;3?LlXJPBCOWH=2sIb&KqU?P`8X@i=feK2Rif6G?pmwF=ttti$jh_H7HKyw=B)Os zNd9SW`@KY^W)@isZphQK0Ip6-}{{S-`iK>a)s!4 z^XB%daTnMrk>Phg9DeXFG(Zk&%?;y{`F4HiazPTjz@)^~c%h*LPXpt~b-Mt>w}l+X z3jrMC#~u>Xh#Y$OOqCm^+i>yA=9BN@d0YD9AFq3{QW$eUG6bUwiJY6Pg{g$Ca{X-@(Vt&Gi~?fE~HsWE)+rIbn1gZ$pa3kLV(Eq zt<<}aqG*{~He6lD7h}W;NVc^OYE4~t$0E9<@J%mgYfo7{zS4`5Hn@zyHa7Hf`_=c+P&&h6&F7GyWm1;R)n(+4ThtjOr?Enz!w)sB$iGMmwYjw$V0VA5Q! zB%qjj0f1sET?$yYln)Mw2G{jp{JrsR9iC4Mc$|=!X@LW!iGU#Im&@u@UsK|z+x5}{DB5D=R7`NA^zCv30E;# zp@@A?45L69G<|h(p=_?=0*ts9j7E?OZE~9vbvV6aUyAp<+wt%&ZmIMRGQ@mQne36v z>$gu4zuBC$vXUDC0*q)4SVz~nu&Mg>8c6QcnLfOC#u%}dOX;8xp{(K*~`GVVhLtWk0Dq14Pr8AvuG zawp~Dpn;_z|1<3Rhb?I1hE0HuNIHYOoQ~2r#H87k$W5@H(BQYH1U2 zTMUS2Y2x!)HhIYohUpMf;JRKh`VAUnN-f$d`1myV7FN(dPJviIMfys#$0;sNldGC{ zK9LroXD3Cb+FzeuV^BFW9s7;ZGK&kYE05KMw7zpkJhl&)iko`kl*5RySDPWaj9$2k zAva6n%@8xlybM^%O@79?v>43SjI1fE199-cddwnNXe&en1M0{H5TFK*A+T!>Jh$7% zneHYkO@NB(j4iogsxUb%0J%GKkzq)CO$EsZbdBzJ44Sxr7!l zyq54_)xf}rjbUPAVXT^Mu+p5dNp_nV_w*21o$$hRWXwR#1QU)wM0h|Y%@SOqcT;L8 z&GqXS1Q8$4b{*~!>k-(Vx8{&O(IrbHZu;;=df#nA4F!uz23YtJ(ZF2-_#nP`=F+O! zLhqKTpSDeTC;n>Z-58Py?DqN=0uE!^WjT3B)+fOAfkhYgOU1G+zCd|4;rE{4N0oAWbRI8+|nt5E^QUf{8J#_8-dpX@`NZ86a2#e80j<&;s; zAf^M>Ql3e|;K4mf_V1GQ&cmJmV9m=))z0;fA;`Xvw^l8>t7s1p_Umkv2SokB;mGlImhGYscw(K{7IT`)O|M_c$eY+rTrFxKrl8{TwwgSNR_ut#J6Y{4IWph@@pFR{XrI_zMXqT6| z?xa{WLc}O_^7qIZm?tV`dJk5(Gu_FuuwA^Q^h0yr8@q;#mkFjW2aZHmrB$At$v%dTa7(xZ33?UgY z(WO8@MJ4dFV~!1TEzky41!XKk2=$A|)sOvV$7r_1LLwwwwR1_d9iC5EdB)Cu%X8-h zSa+hGAgG9upkL#(`0c^!+k@4&2dlq>gVoQ;wYQVw@eb((vRAA;0H89Fc7(y zeh!^At}O6(e)x|49o-5(r#vf0;P5PzQ1CWy-fiBz`EB03TQC0K(2KXr6BUl#ZDzaK zzh-8;U)8VnMptp0h3z(2a2qVR4HkTzV8KFJ*ycqs>Zdc2gKeLlI2KV=f+&WqP7lQZ z%O!{6LN@wkV=0)Z}XJNQo1FDzyzNaVpi=J&C(KJt%3Gt402pL>8)Pxoz=Nf8j{OO(06PaQ}xK`fdq!^UVQadUKXe z1|vFvZZ;_IiY-Mhi#2rYPy$740y$8G{eeoEb0l$`=D?_Kvi=f1bX|Amy3s$M&tbx$ z!`BVx>~%hwo=2#h&!IK+(kFmGXh;>4AX@}orPA4cxwF6f{`kcow%-1JTh>U^5~fKI z_3H73qo@Mq-uCP57yCQAZyBp7uBqY-7KGi5@~a!QVDH8I-Pf;=ci-*ryxIA0rw#tN z0DQkeEWa_?G|YhfJ7`oMmZun!SgNNO9OQR!u<2YSajXYxN4R~4NRvrS z)a0JSELtYSN(!`H$KvHO!I>HLfVpV$!12(i$phyP9v&{DL!5D}N0H(LKav{655khz zSJo~EMMMB1d1v4qQGlwZqx_ixjatNF6_yk(eE3$LX%d_@FU@&XP;(7Bb-QLI-U>e| ze65WLi+N{gqc41<7cmBTSTOR3R6G0op8vGJzx&qBr$k_0B1Sd1A$Cm4s1XcKv1AZ- zUL-%4f&RP5m_l3hU^lzmWasb~TE=QaE2F$^RJ?iHu zPx^S=7j38ZRPWx`{dZF`C&eWDgo!=pUr4F>0VcRsHiZ`-((UZHD4I^xNeXzHPLs8j>WmHB*U^4s1zS0ZH0BNS)*g+Oao>{syLT zJ;8Pto#c}^p4c=WgA1m4G0{iy!bC4yf?9?s4zz4|v<~TwLkrupt7CbRyVh&ER;k_e zG$DPo#3&@=sq!(mA*7i!l6$P)T=~GskRy+gaqV>G(h2os9yj$i%xR`~y!t`WFda)x z8a+RyS!^JA5{;)DoC=meAB>X<8{2-ZN!;YPU!0=XnTG1q^HSAS2AV^dYoHCyu^JvP zY#scl+&s7z%~}XH@vYZDm-Nu#`wCgej5$`3gA6%jUayBkd*KNWXruWmHg^&-hf{%O zH>KfiOtS+DX8Sc(mOw@gaN{BkdV8QJvLj#T+xqUfp)0TY*z{yA2oJdDLW=kg7l=oD zEM~S#;IG^_e|Q&9K^(&8uGbQ8{#uYPSjDD7rgR=vdr#rN8?edmUyZz?PvjJg*<{VQ z9;Y8NCnWr1tfXs6ZBiN?3lyLKi6&Dv5l6gCLHnc1R;ia<-;$x5RUJE~O1^5$kf0jH zt$r~-OZpk+F9vN>p5d9WF>Q{}J4+Bj*$PTG)*EgKJcYHMG|#eh08ytn4adE#f;hMg1Y@_1nBSJsmmy);0`?_TV*g z5W`o&lFE@~-6VG&^EYL22&7k?;7>>RWqLn9ZQo$<9KC57>UQl2YBP!k&mC2)5~dULm>zp;U&wUfvd4W_*EpX3Ja?A zvU=vS@`R+cbqQhQMKe_!vqeVAby@O2B)INthKNkK;UW}U#qJPR^wMOg>2+maAdD%1 zptaSdP4jt3%bp0u6VVaKRa8ou=&C_mE-`9#NPnrpNVP=7N9qjEMyw)$0E}$Pan4@9 z=rl9Chsxe#yWe5ak|tQ9w2}>+XbemcMVCbP5Gv6>i>aBIK6c7(pk70ZT|3Jgx&bGn zES<;=$MAcZ?8%F#9*@{Ro}+6Z?DkD@a$VPGJ*KF0B*%vw_FU}RG+p$8WAeZX!q`e4H(txx&2^Y-=5+wE3G6oj4M`>sn(I7!NT z5?opYb=p&~maNcM!u4F#N7q`3okepmm%OY&Kl6q-b+x|aG~Uq%4Se6Q3fc~GoJwZ% zQ3G#qAT$yF3B=4f#;FGG3=%yw7H+HX^@s#f@utSMXyrrN?XqCi`bz|%;csK9_=@f_ zow&yI7d?n}*5aCAfl=&*IB3S8`|va;R?bc-^0^I?vA z7QC`QD*tA~brnS%p(F0C)sok;*na0ZnURj7Hh`l*jk#w^FV#wIWmewFacBY)BD#Ov8A#|%K-jn(g*8cP7}&sU-CRLI)R;1-kPEaCsDqtBLNH9 z#)YHl0H}sBh^N$}TrB6yDu%duS&du}v_uu22CP?bT+2+an^kM?`Lq zi2P3+5y4B#-)WU%C&^=a#y)|#5ZuBmi|L)vAM#3Y3&dNw+Q}&GXEyFpaVNMfr*Vql zU$V&24}oHl;~%m{=LiUq9oz_xt#B?9#V0)pW8+?T-Spm+FH8kj`fa0 zL?|c|bE}=KwUZxWQAKz!eQotKLe+GZkJH(ujSlNC3vF0-MB;$!q8%xHB;Uy>3xPR&2ZT^Iex!bJ84qb&R~+uc##*tbb_i>Mnv@`pVqdv?g}~ADgCqi$WP_bm zKf!)H3KEna=6DV}D679ZQHbDTJlkJATsdd^&s{l>q>yyV`QG!RwOjA`)_cD7o^QS9 z2t#hY=Ueaj)_cD7p8r$5=N(1a63(*)ulAiSjB%awlj}1k*kU*JoGpe$oC8tcB7Sq7 zPYlhAxWvQdj&Vnv;(9k&I`PQigN0lPb2+spl}KZay~7S`9l1nnuqBJi2(K4o=Y2@=3Xtps8a^f%gNzx|KkJkVVEh4}uu- z$01}bb^;NF`e~U};C^u5gR8>~?*%xXs;XET{lSB)LksVv)u0bSRp4HicMM=CzN&5O zK42Xcv~1FIgHgAuv$w0Wx2v=N8LPAVySuNSZ@oW$vHSMb&hHh}!NKQ*(gSTI2aR<& zZP?(0L1M|3$F-SVYgsD>(omQE$AQn&-KozQ7gyhV+Vhc=3tdJV@c!D-bG`>J2F zd4qA{0sY3&ka!Zu!f{rhxKoEEM~o27`fGF6F){W`ojb z8gt@pazi2FKz9R(>_-(KPVRUA)cXQuyzaA}w~hcTv$$SH^W)}u`xdJ5iJJUDaI(?rYus5;zK zJwkd^=i+7V!2ahs26UUBxy%2kG*5X}%;tZDpQL8xY6xe=fZE+FE@fAnM5V059B#Ig zJ6xKNN_Vs&r_soC9d(f~Bey+VC`U8YT_(2!QlyN*drH{aHsDQ~WgrWvi^!DZs1@rH zlU9aXwP86CWS)V~A~_1+16>?@zU=XTi_J~8snk&i1#SvhYqz7}Y7{%(_~kJEfKFE$!2w07144kUsc1FVb} ze(Di&6}H9>LD8By%E#P9Ol2W{+JQ)}N$;TB;K0Vy+lgwt91+9%gf&t5ccP?1fkb9@ zUippA?Rp8(f$YWR_t>iRA``s7?rdh!?&8xZbAHi@l&g$QrA)UslXg2+nD_w(<~?ni z;*KwZjLxdG4p}*^#@A~{xZqqhqte?&Q&Zs{DakTpc`wO4cbAkV5vz;bpeq+MVmwQ+ zEsa)Wk)4vyJ2~Y6z!~ote8v|0>m@w#mF^OYr!2T=nSRV1rC6D$`Mx{G`I%NxFk8JS zFbTDT&3?reAbb|fb$+!d+h{fDYp@Mkg6YpI(rL;0#4pl|@JG3oip=bl$;}=>NJVES z2<^$(j4nDDWv1Awge!2X0%Y*6qi^v(Fm#GN7Kp*?8)^pJNfQuSaS2YuKvJ&Vd-_I= z3wo(OKU_3JoSGBS$wq|u`x;h;9j-If<0gjRKrEJnld=ctZHM2c6OOf+O8Dj=&a&?1 z$4=sP)MVFp;365h$#_aOD-ee%x|QRHTScmicxk(d+gQsrspssVA~W7b9Xt3~=ATbi zn2t6!fcvr8@+~IU&T?7Jqp3vV^gZrAf@)=zY*rXYUJ*B^h2k* zsuLKBl0>~n4RcSbl2KVhj$hFk$N;KiYd%x$)v#TA+v0z-qA{tdVSmRiSRRY@wW9595s;AlJ_~dV0{T!r0Jv^Jw zr{%`#DoW!ou+ea=AwDWeC=>`@ZUGtJRDD>N)0~t;vz8R+H8EYkKI;5ZO@VT>ml|6=RT(9tg<( zs5trX_w!<2)wo9wqtLYrUTnbDX;LhISHzm zE|H&b-h!xz$OaCJ%D%ZTMXAjHQMn)~ula_+dIj9WM;=^lzp3|9h%ioH#n#6GWbLvc zLO4C~ZB|8bvAv4sCjn#~YJ!kOlzRD4)gwQw1(3DK5keF(Yavzm*JHqSRTv=IQ{(is zvWBh?SlgojAPV4|Qib`x4_Jp80i1C)s3Lj&z6V#Yc?XhUo<6Hceh`AzA!iUN1DDEi z|5SzkVE|bxEeIisa2U2~)c+8I)}hy{7^3^X#fAYa@U6~@TNV7Su7-zC;^6gy<7H4X zEw8QW(OMMxI%WkG*)VRjmh}+yy1q7sEf(sZ_i2AqbcC%v4nS+?5QLDzt?a%k(z_m9 z?GRA!3H(>scS2U2@k(deDTJkF&Cg&W!kw+?XcV(@Re#S`Z9?u1VXbvu>Tkw9X+sSj z8nmldDM|PSTZNr1_?MRJD+*Wx1xndp%7ro6l(!r!PwFRzgWNl%vd!QWr z?YvU|)Ix*x1JLldv#0*i&;dMdsE;yl58i|oP=N)QS6e>DyxIcSF|W38z`R=MfO!b5 zJeoG`%w{!kcgX}3|Nr*BwaJa^I`FSFX)On^8;yQ<14ED@DaymjNR&m2PH8w{FhI`?Bn&VD zFhkPAsZ!$SCU)7WWWBc6yK8SHwl`ZVZE98@UV-WWrJ} z$k;6|ldMq$Vs>j;S%~o_?UBIIZ{bV^ek(5^`Am9~TZ)X|m|dyYEC89&N1bK{Vlfyu z-Vjchdf7(OoG%cbbTg5j>2bY44n>Po+FT)LOF9}f$)F>wY0E!Mk0xW9#qHDA(XurHY|DXBW-SS)BpH9Q z(A-)JL2uOWS(3_8dj{g_YaNI%*`*FBaZ-Y0J6^bKqt_i>DW@?@Eg|!#(^1jD`F+L0 z|G*8AXA!a%3G^3Yoj}TvuJV2s*|L)7+*#hh;=a}i-HMsmY#J|*(JkWhV~QD1?{jv03XR|5q_RV?(NmB`=6MQv2FpCnTt%@eRaLUb zc{9>%Od&FHDl`*owbBqsp0QI=j5TEvXU&m13`n*5{Yhk&$#gU|%T6|s2x=c(> ztgW>T+RSEycC*>==<3ropli6cU1EC4hUCny=mj>r^8FBR#8MVxwWeTYr#(YEZMCLg zwWi>it|@qK);|+;%060!UoQkj!1KQ>5T`bL`aVWRCIOIXkQ5RVL&OO12HA<%TrAGg ztkU|UAKmmTv-GmoAlZGAN1^O3D0VY15WL(!l}VJC_BQYa$MZ z-Cpu#7zl-vwVaU&mKk>Ni?gZ9<`wzH5;To1Q7M^y8KmkH*8(pEGuH|-(iW-iVP=w^ zZ#7hcV!lQsgIDT4h>l~qp&X!;UgDVt1zT`(>@uTGEIj#CF($fMzHi2SBuTa?$5hHW z#T==kU@#pIB_px@VQNZxoo@k|-z-LBYqdndje^VPV86Jb>nXSrewafewa}x{{Ym$* zR#3=uprk^JvkZXkXC0==L}XIZh!>Yr&j7TAj*%tskdFLmQO`5`0u={?L|N;l;UL*E zH6VnGL)clT>k5Q2@wRz`O}Ggqrz^N?(x5L=a-iU@=@x&1dMJ*tF{sjoT})bM2O_pH zZ91j06?SrG<;%v}&CNBS)!Lhz>5)U2Z^Xa47c{I&KU!PG8=EJch~;U+TxnPjwK+CS zUttLSrp;K(O`8(2?CWFf*$6$`M&-^`d=AJR`}}R%xTi#G*Z`L_hfs-YSe;L$D}3vplwK z+qP|6_t>^=+qP}n#yz%e>%aBw-tJYUvdC((NP5zl>2}5xT{bV0kq_%MB{;d$vn4Kl zA?&zF7tr%0rEYi-ph(vAT%oWr-yDK%ji{xPX|!me5hqmE$4RInqshe~iU1E4u~A{h z8|hUlD`A>>s7-}DCN3biBLi~yXe9h7M^m*hl0Sx^QClZ>m8$woPRNa2Vi_$#(;`BF zilW8+DoeyO#5i&*%#Mlk{PeGYL`xx!qG;gx9C(A+y1)Nk$le+ZC8(V5V!GYO^nxqy z_4*7lz;~Cp>T$0yM{NNC`X+sS)wK@JmJOv^Vb2;(Ll&SHV`yh%btOLpK12-!jZ@6E zrmRnokl&|U%_Js9@jYoN&(^C1Zf#}{T0pUE&lH$d+O8g4t~ZU|yD=RX5SED$l9Vo= zSJ&9-T&9)oS@)pLX=UODOZgkF`qMrF>n{a=-e|iJ6zQ+B@}zEKMpN81MKm9c7B)0c zJ=(gVvIimdf#MOZ0Uz<=beQMSOJ+Qji@OV^J6WUI2t+xi0+R6Bb9x8j z)`HgF?Y%=sEtr8cyML>LX?oeAIDBBNI>f*e(^==5#V#T|<1ao$0)w{9%OfM^6F31N z@p+ly&^c_KK%b8Vd#ty`EHy-rWBf!l9NP1HmpP_M+ybY@ZX!F$(ek-JLNY-N@@i8`-zg$++sg zc*S|qlIt8aU9OYxg-De=NrB9G$QlO0EU|c4fgh-JS#(K)J$Xh7vGRcgX-Y#>@qvm; zmf-$E6Ri}cr6x;5*kikr>}ZpvW=cf0N!JgRbu(s>)w;1Wd&8pV&C;xe#OA+2OYb^b zMQX85Y7w-MEt{r_oB}wz-Q$vc)7s6XtZsTSDf3;OQPC!0e`$IFONQDQN(Btcd>%@~ zx{Q2I;ge7?nLn#v*%+-VqpBxLs;tV75c_(UA!}xK5*Y#Xu@#rSaHV+3VWfvo_NFp~ zGqNP5RlzNt+L1)hoR^c6&_uI%I$Og3shLJy#v~MvG zO&?}>X3&eUI@QTO%vj?oJY7BrAD6dvoD++D0P^?sRn0q@BCy&N!W2YmrFy6FeWvnj+!VbwKxUgB$GU3!v-s^ zgNTXAeobQzkFhA{%waXloYdogleZYlT-F|LxbPwxH9n+ntslua5h@AbTz-i04pk&Y zjX9<+iPMatxCOIHOmc2ULv0|1=lKj%PqA92vg}P%U8Y)-NR?*c3eAFLYWX0|LRq83 zfcAM@&ZY5QByuXPT1wOK1N z@1ZJvyl#pa>1_TryGBN{xd{bB=dV6lyXfdc%#-zA35?04`iO)nstQy5^C6-J{c}fo z*;gPLY3x>qwMbPrJtnMpfa*zIb6aRHoZe@4!`)+Mp=PNJq4j;2UaXpbJMB9`4x&(O z-6YAvsxSY{*k^}b+8m2fc#z)*4NwoCcVF z;~D-jc&!cR*`w_)*-Pk4?rjUC52$ns7h7ylr({-TCV2;GnKQ?ZX z9H73p8D1a%rq-BH2!TDb-Wk(Py{uI>%c(D61~glm`ZR1*E-puLc>Kq|#})w{zE5dK`c`hFOmb2qF0N6T;FU>I|X>ar{#EzRqGuoNsRj!||D zBz?(ZVv&umAu%$|7?SRX(G>N%G*Dy_X~zMOUr@Mz${$Dpn~b=yUFz$m231Z(YJlOY z0EVdk9NGXxf(|-Jns>{}Xb|>#=7f@<+$R1i&Js~>#S?=w)ad}pFfu%8$y<|vv(%Y_ z)j&j5{^L{x59=`DXRXOd*A#Hh6npw;XyRNb>7w^=pieN0@T6|2t130t?-1dCAI)A0 z9RAMvM$*w9I;sB=viD=Sh`ZIk73hHP7aVa}t41bk*;FxrWoxyIHCKpg$S);Nx3}RL zUT&GY-gwD8(5cKd4VaU|W_9GRB>_@exA1$p$zSYz*DDZeba{ZyFd*E*0jp^YxWK<@ zd_6m@AkgG*0Fn6yx_YLrE9shYBG3h3NYNt$)PL%$#DE_ODsj)3N#xyXa98RDCzDoh zJ2_TMbp9fZW}{hYmk0aQJXcX zGud#Ko&Wc?+TzN_^4sXi`N}9^Hm9T+5TW= ze5=wJqe5$r2=Ns)#B0NgH{AfQ7%FcOzH^--nlvsfXalib`WWk@dk|vYF%L^Hk*eH_ zH>S|xQ%@L>TmsO!JnhB?x}4mUiwlv!o37sBKrcp_NM35~+*tp;zNQ9etEXLJN>8-* z1Is?2;zYx#Ya^DR_Gz?kH}tD-<2R;GiCiEBw0u3XA)91To_$UaBTTe_SO&%+{ocG9 zj*Cs;%nt@Wct_te#$CRcjNl`2V-`K?QImvQ$Q&?FmSMB)>x`h{x=!#Fk)&INP$z(K zfE55#h+W*k3e~}`NJ3Kkqm~4DXbjOiD<6Ay>UuK4AjYP`T=K+%QuGmDjvm>|hG0N$ z&%frbon-*`QEB+b=BpwoQHo5t;RILQe!p=Nvs!Cq^{VLEduqMz%9AyG)% z^;X6rE+?i6iPs>*O0`t{=p}HYmbh;QN78V$ViNC*p;KDosS%L{_2th7XEc!@KIAL= z7iDuHn+Y-GRCW*dXqiE+20>-VuJZfLhd@hHFb%@A|cQ97W?YxnA zPipN!rzV^H+vDKm^tdy#YPakDJgU7a%ezP9 zxf#9gMv*g&>o8_ET z`Eo{kbyvb6awgqb{E4wq2@EDdyHG6z$g;>YiSa8RIxqTTTX849>d?VvRWYu(_~u+0 zxSypw3WZe$VZS1Pu*3ZS)eBneA3`V#7L7A^=Z%3 z!#aJcF0HQ5@p$H6$J$k<76s!X9agZ^JT|MAC2#n9j`P;hpf{#)2nKORqeP98sZ+DP zRKUQTFF>LO>em;xOg}>pHF{T>?ndw4Mp${Mp@6y(0i>V%9njlg_qA5~v-N%Ps}VM= zjg)Qv!tXk2(RCFRPsWIMk4l+rulFw8c3-TiU3HY&b!5c?^9x?>+_Uf57>}vr>{YB8 zt7HE-O{09#R--~GPDX0{%#1q@Vi?o|w3#$gQxi09p&jjp-ym2EQYsX*A!-_2!D6=_ zgT|t|6@bh!ucu5}Xv9LJS`WM7$WsA8A4wA|OA-)A-FPg=+RO`*a#aV-hV7GzZxwN~_S0Ok0D4i`8iKqcC*`V;DQ zW&P%cv-^O9??KCSKFA>}psLSaIi4j?m3E2PEogwTSl3kyR#20u z(Xa6p=u`it)^AHuPl#Vx6I!;?wGdZsS!!U^^&HPw@eu086 z4ko1CEGR(VOKyl6_)8kobbS!VPtU?BT*cz{sEiFpJF(c+SoHdVNkyF(jq+CCIykpfEd7OVBc&398eA*S=?Iar0h{ zlt+D|#R4!_*_WU(Z)6*0aW5)Nc)hE6-U((R2MjwI#9x~cJsJ)Z^FWEXJU*&rj&imn zT7?mzxICNZ44@-=Liod=hz02q@-IuK+OQtB3)K7!di$!MM2QlUf>^xPdS?* z>7j+1oNlmYts|NyG+awjG2nmgS!xDFh;+m4*6-`kcp}7DbPAJFJ)=gbJ=&Zt+;xhp z#s_?j1EtM@f@nX!Jc4dUrY|jqQI$Z?&_hl6tUwzg(34%$mJT(LVUDg!w*3g_n`Yl; z$F(22>ylnOYz2J1PkjyzL!RG{8I2L3R4UWO(f!IwReNldtM4RZI!Ie*m%Oy$$!vP>EsZDM`x3G_7Yy z^AzcZxn_DtkB<%2YXuRvQEF)@b0hjQ%(FNWB_Xc%@3&7py`+qg4$a=D-)=iS+U#xF z-mohc0Gi^vd;5{;aV#cgjj%<|+~vpmw6}DGxdb3g`4L z)u;t%SxzH)DKM+TY@N1jU&|osAQqOP5V$UEVXfR?gf4xEFd3&~UP9s?(UH0Ijf4et zuX`=PdDo?SEtY`QJ^+?x4i1qCsvw8$Lb$VWw4avY{QTTW$QSF#TPW z(X19=20ltiYJPGMB6M_B4Z{=Txe>C#0OGBX`p|L;b|@4!7-AQ+Tfca&aVYhec%No0 zDqvE=NX`Hm0*3&=6~#haJr^Yean^NDdiPX4_lT2^WJJOE>Jd6&#jytiNr(Vl9t~0u z+NmAy?-7CK`6O}?Mmc~nnA+hg%YgGvNVI_4IKVNtM&)T32jbz!8Nf3GXEY)0XeTbb zHtsMT5QlrrAwaF~JkZ7%-{N-Is74J2X7MpML?A$eRR`={HKJJozGBTnvGG}fO z@6bJZ)P7i!g&GclI%n=&T_CaHC}RAQ0eS)g;Zlnh9#c+SkGT&sd=f-3 zXv+#=cW15mIiWLEq;Qh1M+7bSW|Z){sNn;(v@_t0LauQ8Yc_-(uG|#?$d71ri#J9y zVLH;WfZae8{l1Poj-vZIdyAqv+#uc1p5JZWfj0b9sA&ZbpaQIyV~tR2~TQU(SaO@Q70Tv z-S{(CocgK>PP%5`&bI}=ug-+qBpp)3SwB#_kA~w`eFbYn5nyLwm?LN(@Tg~?P6&lf z(bDK|!st$f(?kCZ9skF@2wl*_eh4=r43}K);QLLWQh!2}ks3P3@UWsJUykNW;!pPg z?6*&i2z)v0H3{^pa6#ic@QXRz^7MHC>wYcGWe+f~=%qJb1pwnxflt0=%uxeOl(9pH zAXL{9fN4Y&LmMxv1kraIqC7MGsrkrmG%Ad_NZeg`sf9xdjxB)JaA1(gp46#Yr13ay zJ>hxKyR&x1Ik5oSqAk#e7KLW7^6SH=b@46&YZpaBQNS*!4aC#=0@FN%wR3sDA0wI%Q&i)z!j(O4+JieHNb$i$ZUY2-K(@X2?ayFa59)?N~m?_a`$`c{QMr*Xgfix10Il) zA%Q!BKhUBUQz2J(XJYM+gTTTxFNZ$yeYCr;4>~95oF6?Qm+-az!*-&4U5>udl8Nq- z&I4bWGD664#!BAVKIiDD5muOJ4bNp5w7%-FBVraH{MZed_)l)B+6-vQWZW|<79$#$ z9^zguR%z_&YhA8bPX>wvq$+>0Wju#Sh$%eVmy2H!;TeaE?=_5Pa zZK+w-Qz$X-D(1bSwbUOhlEJU0{<6Y`^Q}Z<%H|n89)UkxS-CN%-N88 z!q1d+kLHMdvSWZFG+9}Yfp z>Q@9HrNAdcX`aLy$O)L_y7@5>0SOUukVowTXsE!={uL6uYcdy`1a{PKr(m$@a0bLZ z*^34Dm0&P#z>FR?_V>pIo_k`*+;8XG2uBIf=VPLyabfg7_*_7M87D|u7r)_nX?!-+ zK4G#G+%16b9eK0-r(Z%*8f0pZ!@^LH(5Q{RYp4RVZRTnsmK}093ORUeCReCqBrKnrSfb2RWa*P(Y@%K9r_aX~(p|z@EjZCM z%2K?gym(#~QACa>LZHxu`$;DQ_l1HCPz3V;8*YrqlfEPJAcUbh)NCJY6Ovh_e>Vrw zV!j}j+EF1~IIeF23H5^yHI!hsvNJ~3UT_V>EA|^MFke^d?fR2w0Ddq^wOL2#=U0Z(qqU ziq6*=NE&%-HpNe3)PU)3!0EgT1HnNfcwfu85l8S}n#MMNV|oRszyk-m`N*qrmtD~q zY!E~+97admPg<2hKoUVOe+D*+K1Nbptwf%19J3o>&{2;r4iQ1`#J}a)tVSF>cI0yby z(v-`HO=1Vuw8Qss_nk5<-~+cjvRivy9;~@5s&^i(z?mXZog0*f4&~8fN@YL|0RyMF zwY90nhFM=6N4UHVAcWID5%5Kz-e)Q%!}5#(?5noof%#018T)w5Lp?2P_I8@Buy_Y8 z@mtm7ky>v)A|mFniu3)f{q$IOUW^2w`ZF;7lF&rMY0%kd`BtF|s+n@nSE->c_HRPu zouN+XfU*{wA{6uh8%E*CW#tZdV7hYjp?}JeSfE4Aj+b#_$abmO&Qp4aIXWQ8zF5C9 z8N%n&-LBJz*=I>x&)_oQgoAo3g&R;05&Bau+>f^{722?lYL)u1Ec-BmTFbTjbNOVG zMriXu=;az0NQ~x62INhI`hav)@?Wb2Q7^tT$1LZ#%PS6(n=rMl-OEH5XIa-%5r6u%7i4s_%e#G^yjbviP` zR#LuMYJ=I%*~vtA0o5myzu)SV$j11TYp>Mppq)^Cfz@eO7rzU2rrf3{d{21nFnDg~ z8+xTW=kp@g7Jb78cdd5_`^tNiI1xWpV4}jC8R)5v@bIWYJpQ!HcGclsU%@189^Tut zaj-zKpX=GQd|_@{dbCh~TB^S^T~Frnq>~mcJ`OwjJIx^zL$FQ__`?Sl4j%FxeJxEw zh)gsGWj&^358s&VouovcL$z-`)f8KcZ>xFxZ$hWB4o(2gT7d%A!z8Y%WqH)GJ?hz< zd}FRpf4M%1}$(~IUBRJ18(~Q zx!aq6n!KMK9AaHBeBCU#r&imPg$+AxI`9`%$a zW}b9IV6D6gt9q)NEN!Ras=SW&l3!<2b`8AV?B-0Lt^QYBFqD(!R&LxOSkw7P)kC%6 zu3FUF`$?tz+J^Zu>8iitZ;7)4#aMpMd_I*=v-pK=!mj4~)j_a3ixGWnVJferm&l44 zXVwnMv+QHz$8fdkC^Boj6@c}j9%sr-(fQ9_Q`VrJ6z891+feH3#O6yMbKZ!)tcsT%mUGR^+o(?rmi;XuI4Fi8+6~Y)! z>j<8cq3}2YK65Ha{0F9WBEf&~PRWeiejNACTt7}c`ENl+yf5yiQLlt@*_yfGm0W~}sKn5DUI70D3 zFmG=PU51FLgP(3dbY^sTNleO`!i25A>ASPw!pE=lFQfderdOUsk7n&5 zJCe)p$t=w{3f;(h%iZ6``lp2ptUS~aNlAi$N_-Z8V$U=fk`{*@s65P|y{meltY)A~ z+aocpFw~`NNz$A{wY!)(&yaonY>jpyF8If8?=zF4K6i?|)1-SN=UN*)C?WWGCEyVl z6$+-ovN!+HJZL4C{tFMg0CeVnq5zm^QFq0nd4)rggYikpseHE5M|G=|um5Y|Gs6!H4R2qjlIj=Y zGwZg7M)jGX=0IZ@GNSe*%-H#lfAYQ)j;{swV;OVFjF!6gN{)Vg8MB{`BXFBw|0G7C zS#2hKXHw6Ac@p)P3b^uDunX>RHEkSUzFU;ECCBI~=LHsylM2g6Qdk}p{a|SM+ zOhs#$e1*q7Pg@?ptUNDRyQEpc+d18PJYH1y4*o1$xy>0e*uu6lcc=(|4lr33Fa)lJ z9rwo=Sw(eq8@LHgONX=)wt}9tzpXWGWBKp@{M6|tP0^ahr{^Rud`)~qTNcew9!)iz zmgYnQUgE_+mp;~Ud97F5ZgNj)d%f^rDdVY5XC64#j5x{}nU9`zZbbI;0ToJzsV@=Q&7Z&Weo%V5t*1GYBJtZTJVkFtAu`35;x({Q~P z*)SWxPHTLp={yZSj-H*f%rgwglC=fnR&X;@MT*Ql=4r)*{eoNA-#UP0i6Du3q+YPY8jTN~`@!?hQCgLss z@*zH&HZ3h3cZGI`GaC;XkQ=bYW4KsPyTpzK^%_JKC^a=425rQ+$=8!Z?#Wfky`CvGG(8^c@t^|j;JIft`*2(J)O&0Rt=zl+XsU0BsV6Q+J3Ya3$=Av7zN>V^&DjDP0GI$v*&~sws1dD z3))fqfXr)jkdt+|%sudWs#Um?-$R|{5#sV|0k+Nq0E39GQR$DxxkiY80Ad&{nD4>c zp9&QgczB0~3p;}+n?4ImOIlY*=6jP`4CRx7?<^Oxf7|BeA2vZ=PWvYAUguN&Xb90R z+ym0pf%Kj=uxK{3_OimZ+yQLqVHdPMWG1@_Tq3#w%=04t0Vu~J+eREC(h`O_2iMi( z&ft%S8Cg^;`4m7mAJ~3m7gOE?b#*`E)1RxSfp+x&-0tJV;se3-?Tqi@Lxogidg>Vw z_S0phn1w9zZv&9w7dQ-o9)UHqQ%pk8*dWqP&36PB0}d+U^JDVk;S#f+GLhz>mob=G zUqdjJ_Q9>*!deQi_U*6aJma_wih8itYv_kqMbBZF9%s=}8`gHNWv-4|9Bqd%*QhJL z3q5IvdvIuG-MN9;SK>!?ovNTD4;L)Byx=2dQ$TC&kR*lmMy|Q~reqOP#xkQhLMc8)bS|tTOFE@Y)!w^rD z_QBs;)+_|E&kr?j<-ZYzULsmSiWfD-jSN?;O-m%S2iS(%aBgN)29{E6lp}bN6Nd64 zB{P(5sbP>StxinqhtJcBmX)c|Vhu})j?Zp!%74)0D|{&ucb>xp)KH&rSj(A3;&Exm z$$brKf|6gpY-&*h7!{b0T9Yqoi&MnfTUo{e0X}?yiFap62Rx$-l_2yPeJFAxOmqzu zMmEBTz0Z6oj|E26tQ3eagh@G<7c_EGt9};kZPfL8W+Y0bEFa`(@po_5!O}q9T zjJFr)fnuT;Fx|^M6&^qy7pIAsN>XJFcX5iar(1l?Z1*fEvN-iw!6KG^)icvfib9{q zlLyEtnK*-2W9j?|Yw{qpt*Z*kTFdk{-Ex9yAW_{Ac%2JVo+=Q4ZDvxXuE<%Q(Kn}d!CmV<)bfvv4p0=^5-HxXMh3aW}b7Yf(oi_Q0GAu$-~D=x>-(LN{~41v#ysi18M>2u8BGc^ z8}uLVMu4QuUnKtLsR8k|dh7Fb2#@D?Dn5^XV%juE>nMp+C%yMl1n>8C)Kh2XZsyrM zRH~nLf}imygQ0Sv>n~IjGWGO20nYzMvcNzHgew~cu9HQNgUy^3XzZ`Mb5weOc^DKB>pD5V z&+o+N@7=vy-|Ir%4`A{}D-PPlE~WNUn&Kah)%F~@z6EexWAu}MjB|@_Fdxpr&3oF7 zoP94cIo>-h4}&U+*-tuD;sk(w?Se$!8ox-+{X|{g%R=2R=;rU{@6$qE@BL9(pZizN z@7<^0$4e6Y&qETv&-MME-&OKI-*>ydkJn?n-(|bMZ$0GvpHsViuSMj2pQQm*Bko^w zzsHBKzCR0gz7KDgzi$(DzAtaz_=0GuuM=~9FK^oX!_j?T=#}LTz#Db~Tt1YeO?)1| zZF$~rKjOcy>IyGo{O^>;BV50yeqV3jzmIQTyB`1I_*P-A>1=hEjM#);Jgi zI3_d_r?fbRjY_{i_cAD?urSf;LYfMU-tlDc{3W(BGlnfDbeel{0JkCyRutW>n5?%r z>8x0O!oW*O z*MtJARk`wy({U44y1#Tni3M$IGVyEXzW?zwdl%*Aw>1I@NUDxYu?w39schfI+s72f=JXu4$_94tCZA{ciJ*4vZk)Oi0VwuI4SnX z7D*-jWWSiTmn6c<|xe( zXDRVWBx(g(3_oFr1g`!hf<$ShKxL+h-d4FzB2`kB3`H4L?Syl-f?wkriz<{^UcK{$=h2GL zJa3YQ&!x&+DEf2+a)N3=#`w2Kg7SBtcU438J5zgOaG|9ExC5unNvSKrzg=O#Uxyv{ zahte2*(TWx(+A#QHJOLur?qw7Y|(;!GeGzBvZLZnAi@IMK^3fLSx_+ekv6PF1`I7r zZ01BF((#Se6p9q!GE*NESUB+IN{AMd6+k6$i)_CAiDZELsE_16@?2fT#M7d2~wB)@=BGm;C%c z@4GxdFRvri&4me@{my)n>-O_$vTRQa{#iWEmv8rQwSPgPJ`*?eQ!|*UP#_V|9Q#1o z^;zYTnj4;Bq=vVYwX*3JFnuqm{2(JLh-=o5dV?Os2J)B9^*dnlZ6MQ^<$Yg=;{5Ie z8LMWew2HD|;MN*tr7A9OVL#Sfqjz1SUoEj}FD|(V5=?kT=*2n>Ln{1J7Rf--kt)d^ zl9j^0i(1A4*_Mj*=nHQ1n)C}_i|(!KKkL=vZR3T83i_od#^LYfG1c+EZ@%Mxf71T# z$!iZPhZ^t}U$#>w+r8E1lu)keZO|_gAO~P5VMhBiitHeSZmDnlG%+vkNJZ z;WgE0U_F>0h6=}qige_sKpFtg=6PO}W9ljG=(+2gn}mn}}>?LVSFdv2lUlgbt2n^U#iGAkcH=o;jZclNR6MY8DdY{4# zF@52hQBG4vXYr27v{vCmoF=?IzwEt^F?3N@uk9V*MT}U7ZFpv7 zPdoXVwz4$(pgRkeyZnm8>?R+UK4C7I95Np|6}Y~96IY9&c{G~xlZRuL z0PY9{m&ap}Gsb2D*d_Y-lIgc2pm>A2$CoD{tRzfq=!?W#zP`cxrhbRXRwp3yMHD(3 zWex;%u_Up+ zvK02juW_S$?1hzE(W2enx^;FUj(X?2aE;>)|H%2+)CjI>(*}0BTi0#Qq^`&LXtxK{ zDbg@3j8U94kBS~`0JTIQS_s*}OR7B92r1)B1GWtJA8TkVbJ&U}LwLq2#(nq$71GLS z?yfbyzKU`e62*RDEg+Op0uAE2=U3Z;!|XGni?qLh5oc#ffB;@5KeF0&o>)@m)oD zSwWxE{6q*of25`_D2>>H!gZSy62xhmEXnL;bO|b4gkly z;pNMcvT)#9F{I3MC42WHMA@xFr+X37tAX00^VTklw_RZn8)(mLMWNDH{@Qe@XR@~uU3Tv?>?SCr#zJiN7CRSSh8Ja@5P->jE zBp&t>9qX8%!@!#a5{WwqvEyfsRG5FEHT6`dj}Mf{s+XlCV-sytIK*p-!4NjY4&Nzt zxkM29rLQ@mcNwt+Jkwz15E)%2op8zHG+Tu!wsT_+%xSLXw;D zyqxaC$VA-`)zE6#306|Zr){8%2v`+gf7zuoWw!ZKGWEv2kAjtJWQA+1$mKHpH!IjCzk4# zY_96Y$>IJycTH^K&c6QTMO))8rznrN z?rJnkt7D$DLP1-SO7>fdgKiu)X60^%Ynj{^^Iy-{Py!}?r!~QjotA3~Agp>r`C_xE z($=cc*8>K8YepXyk|Pgf(2*vzmz9IQgOoz7eRo#h+n8B{rj((tFvL9RL^*1MY)zv> z@^;Yhlyl9o-`}gA6(gIo(-mZZG*tt)?JW^p4)2jtz}iV#wk6aZ3n(!sGpgyX+DitP zGSdAkK5A*o0LW;^{@|5C9)M{dLR^wREPSGbjQ&)}Rz|>tqQF5_OLmk$p0z$Knm-+y z-QC!*NSQ@pCTEmI#mvDHkSKx)ZG`<&jsX&j0}Gv68SQya*I~KStHM36wr=SaUQ+n`iUhZt#;#-Fmim1*$|n})Q~K1RgusO3IQEz z;ZP#64y0bMB=N|7i_%q~p2_fM`i^zbhLi3smin7hYO1mT*~vCXpyhZ2 z)OUyTvt#R7mPs|ro2wI ztV`-Ha}gPj0ReooJ~o8#Hg~{iGn5X_G`X{(1g)SitUjt#-aS8qHA&k+KmQiqyjqHxgEkeMi zy97u)lAWHP9q4)-YKMY2>rW;~q4t}$Iz7g!zv~9sw$JJl7ZteZniw;6R$-V z;4gI(+-`Vpoo+f#cer`zr>*(zyB!L83(E?%$l75vmVTHwjlZrk;0)TmebZ&l4= zeXvwsZ64>Ls$|W!{IJ%1P1ss)YkV4QQJql_YwjfHr@~)tS5tQ&i|%yjqiYbY_BRiE zuYrBt*aGM7<{|I)5%_AKy*Ht*Tdm@*9Kw5ezaXsL0Cok8o~cAm%y!F ztcT@J0mXIqUJt%bJ5Ct$PPxGM14$fgz))_~ZbPpF+?n?Q1Oj>>H4Dg)H!HRqeZuhR zUiy#2>csVTF)N`#dew%(fbVe7fX_;6FS7L@QUtH*Uct7q8uR{>OP6G zpS{nLTy^>{@IrN(%VU>^Ua3CdvgwjT@ITYQXd2Mql6k}=SSNg zYydIbSuSTYuafIJ%Zhh7nG?<(2Tevozj;JM@nz>2GY(1?WTz)UxerI zHR;k(&8pcWXx6UbaF~?ZsF6(29|BIp1lywC?Tuy0_IxEGLY8(}VT5YPclFE`H14-Xr9C$U*8PDBQ@S!pzHPv zP$Yh4f9#?==asibH!FJK^HJ{X!SsH~XKNcT)Yb0sfRiRv{mDO+5| zQ)K)o3XfctP=~>#Wc94FPw;mh!<{U$4V$402p|xL%}F|9$xafJ01LfPI+RJ-IF(AE z0Y=z{)}_+ZE%jQLr1h!eRl($!1Coy?=f{uX$lbzJ*`>l z7;}0P-~yxySQ*ORC?a{%AzDKeQRtQ^FbbLwOm2$-kdb&XuNJQrSxds$6v#3jmczT? zTJ(_Jq?2vPzM3{7^oQ2z&L(Z-HmgqKjP^~b0*cyS3+-iGfvMpNG|r7+mL?sTHt|C2v%_R>tmix^v^7^zY|YzYlv`#N!y8AZu{E#_ zFMt0B|2T4+K^_ZWTz2n+L*DDAhADquDA7^Uf=7q1jPrzqYP6l~dRKu7cuWb@9_z{e%2JyQVQ#hWbW6%EB3xjY> zHeA@;77ivGBk;5_pK*?}QvnXLe?1df)9%bx5G;b+Hi5jON~Zs`XM0_IxzLz~-?FHF zY)qtToz9ykyCT^{QZ0hFP91j9(6qQmk;JwYp;~d)UCIvt5r{uQwOnHUH=t4 z4v#&4Q(1b__k-I!|7aSVeqiOpTE^PY=PCsztX0`9@6NC?gb+09nhxRBI zCw4Z}IDg^$toCZ(-`rouANnU@*FUDh{$%!M+;yCLx-&nQ5;WpjhTxg&rT?B2Sc}8> zcaFP)c~lNi-zo_`XHchXNDO3PNen|nFK3Q4F5ooIKO%U)NWvfLyMlMM2v}063|SH* z@`?Uo!T3D8k9q=l($K;v*HC2?c~pa+FGIP5nmn_3Aj{9^d2{!7;gbJ*jQ#fxyw308 zu+HzX?e}rj&;5SL@8^TRulwx)l}fxU_t}Z-sTzHu`-0I-GEPqLvSF!KH!EOwF(39U z_wv4g!d^WrU{#0wwnNmASZ-FTvl)y^olE_HY@I`xDABU4+qP}nwr$(HZCkr-+qP}n zwr#ubes^}>J@XpX`YLl(M8=;uP*e}$&}Ht{xyy)oLJ1>$`NnE<$s=ciw|9uPOOo*M zg!6xy$ck>yqf%f_Hh|HdF~_;69s5v?ABqihkya3G31szadwb}}dpxs$0B z6fWBtAM+X)%K^B?{~eEw3!*&guE!#Dmy!A+>tSyAVoo6Gi1H7R0W;rf%lCOnPjTUZ znR1CuAkfv5IGO?tDNrf3zkjb><^OJ#158HDP&k4PKYsuMiLv9kn4P&F0rnXjy(MU9 z`}FV8v?+)eE_Jw<1%nFie>grnn@d+@Um~a#We}j|2o#! z?fUQt`C6!UBaemRX$Y0iiqCFY>is=9i2b>GPW`>#r1wiUYWl+SWGEEGE9`wom6>m4 zN>FaOonks(3%E4o3KRA;g2koDNGO-+)R#JtlDVa5jhcJ4E-$e{ zVC-iSEveTJvB8kSdMxDA#IaDKV5=8Jf-G4IUM|5p{g&LY9t zgR<1yJBV^`p*78u+$A#IUwX>~D)Ml*i+QAh)1@8~^sVtU+u_d?y4prN#ndy*9*)#I zcb$YlIl_h;x9^`S3pbHuTD<(jLPt!XkAu+Ke=n%gk@MyhNT>2}W7XeY;~J$2ucJF( zWxo%(!Gc)Vca^oQo1F_(GWvYKp?JA{NQ{cFW^2Q(y{^W-8dr55$}&pEO3x^Gl;hm8 zktvxo+WEYKa#-o`p@M7JU(?zpln_`ebU;i%O=LX*SR|1d z2$`7`JPJZbh_(>o1AmLMTMSi3_fYEW=Di(_dHLj#TNR{-3b7)9jfKkpBBRWgjYacg ziM7Uy1RKedF_T->;<;(Ga^ZNKqMQyUQ3N1hHcOC9q6SZ`VWwM2CmiW3D3GcmuQ$5l zw^uP4nO`T-N@IpKiAkqYT-BWlq7aHl*~d7gXd)AVNtL~9wwY~wLZ`MQ2q)~(_utbl zV{$qqe7_IV>b(-x2r529M;96##%8e*W~`nMm47&CCO^e09AgE0GU;m8eGBT;2n#6+ z97|$I2i({W?mIJ#0#sm8J*1O%uoTVh*L_l>3Waukpb4w`up%$)Xfxu{H?$p#GBmvC zbEH6XOhuMo+51UVgQVpeh!5%?1bIYI>BdJ<-K&PG;SJ-;293Q)E$zoG--DbbRSp;{ zMNog}s*oB}3=YoQ%j$x-^w1m&d}GN$Ch%78E|wxAb^4^y+rl+7Xk1903#L>NFD_p4 z`u}=&u}TP>SR-L65|;Z9Z-Qb>Z_*tJS9akqiV=kzYzrUazQ93&4=9%N@5_oZU5>b- zf4f!eRgSUOQs8*u? zK2O&Eep08SdR&L+7kWwrD#s^>D5a_;!43(o?S35{i1UXCU0>?|La+Rhl+(h}Epx== zQ}=La8iLl)#n!MjxV+EP!Ik_186;T#Td$;kJ)|4k{!o5?4w%8nkbs%zA7rDs#UGpT z2x~hHn&7^u`i!o3qjK=77g-#gg}9H*i7}5{J49tUWaWyONvbMH6xLlgJ4`=rLFY0d zNiM2Y(-@pk4kCfHB^IJvQlz9J!yMD7hnOgEuG1NHu9RU&G?`a$_uM0NJWw8D4>mkj z=E!9p9Wv5f!c>HkMan3;C`9Q1Yh=8$J%{pq-v*>_A5t$eRbj`y`WRJoD&Q3N=Q`P6 zwwEgUk)`%vp(>Aj5%D)tzg*8=3QDW*!%KNm>y`{o=X74qklUSWR$7uQFj^+CPsB*1wrp`x3{K4vP&Z8Kw&iqRoW2uX znaD!r#rO^)U%5W;7laC^`~6WJUH|Lp`P9$hp4{(M(KD1sK10M|jK}V$!a}uK#WS5w z?}Vd1c;VeZD9{^Qb*S=NG_&@MStQYf`fbH;#o8OO5E3hS$PS1Jt;mxdHi{p^y%TVG zv^DJ?pSfKPWiVBXk&3p#%-d?uFD;t5M4h=|3M>^<iL=uMpl=*?1iArnv0>{XN?5Ju-OeoB_`18)!R#fj-EEv z3YuY1nBw+>vkZCHOQM%j&&#B#TFKGWCHbWQU#QJXRpL(dVUKB+YoIRY0%z&@jLcHCU8Qwvj8eDQQ*Xv#b8@>(t-@=nsiM;G zNDeknIb6!Sz($F``}_uHNNooO#w3SR+j_`3k88nYe%E2PW+LvGt%xwbUxtdzzZTY0 z>~?)#XdNUWV66`L7fPi(q!jd_^MgiAF4UiFPfv#u$x)hnE9{(t|9;%d{&bQCY(@`k za-+yA;w1mV{^w~S-_x8DfB*nAL;p9$?f;(E|0-^3KJuF!7{65ME=K+f!4DnOPYM}~ zBQ{l7ixxs4qBVyLNkic{rKXo3+pj#X31B1rHsss-qmjn^wY{g)JQY%||I zh+m)mAV>JN{hn{9DG(~eZ`6N5{2D2kYLpmL)2 zH7P2LUL<`a85*+06lrV?#FG=u14%Un#WTu{Omp-dcg*$7N9{l+YVH8L5QYZ=$2rsu zg@$E0XoZXjT1|iBktP>-kimZJS&n6z!||EY7f608kmHV_97_w~N9)0GLR2e+eN+D^ zp&EvbOIzd!*TwNO`CWSC_?+x}22TE&-NZ5vtcC3Po_Q==@14IapH>`+`&qi={=`{X z)slst27f_#As->LKI{+o3HQ?1{tVlc&vD}x2z*@`(=FIaZ~1$aZ}+Qu_yEg_yA;Qh z>9IrYeBOxtKvUD)V@MkZJiRlj#=jIQi9a**?aGc*!r5`0 z9q03jCI?5VUX0SG<%c=knEFz{3ehd9ATK1~3AnyKaSPO-v!PBglL#lT3iXl?F1ovlpSRCw%oxN&1k100ZsFM}@P=Ykt1kOtR+ zrmA*@50V-;N<6&C6F{Tk2f~Da_Jt#uL;yYioVn+Tv1TZMMM$eL`sewgOh8y16+v2j z*^h<{n)ssipnfaa3BBubF~d3 zX_JSCsD;Ygt@K%;cARhei@b&r4I!%@ep*$aM|XzN{rbY2U%gPjvZ!j+zeA=<=!du0 zE00}h;@{hfP24-1xV7owm(-9-3`GTwCJa1wkKk3)-L3D^6K|KcS_MCHbs6&DR*N=s ztk#;`@97O=N@X0!H^lm+3N#`Cs~-~%y~lRA^o&89BQ~mVvfcWKvXy#_b;za(XR-np zTZfy)2j(GbeP`Ica?6x4?_59_fbF^CYAu)VIu`2q3UBWwdMoIfVDy$kDZBrl3r)^M z4bA`0g?5MgFa3an(}=;8-IUJ6jGdi@ft~SRKj>E1wObNH@wu&qP^MZpa&=7%0qJr< z%teAo2ov~35S_2`VYj-Q(O^E@4mK?&+7O~9)KdMcq!lhDcn6|V90qRw3-f-a{3~?3 zwsS>Ba=sACSG9__+wL@z?scofeJv5(z$?C?Ank7d9+g5w`1mt3s9rlW-ANDiY#t~; z&(V}eSkw4-??P2s)j)|<3;}*mBTmq&g<~@YWNegb z0;$lZqB#~`dYQKXg@sr_5-b9@(XJaMyO>25sc;yt0dHy2P*(`_%M|?aijq5S_DV+l zxiY(LX`i`9LEc{yIf3lbdIudSnTU03pbeK!U9MGfr3e@eHqc;e!Pu(pFW2wU*;U^+ zpYM6*g(7OkZXzVNoS2R${rz2^rjMt|XYf@B*(4dBgq-9yeCFJowE!8$Wg7B5L||zSF?UN7 z%D8C~FyOMTs#V1|U5nQ)czG}6S-d8226)NOnMPf6c|k9?6A^Zk&LsQlO{KqMFTK$I zmtCD;Xj=$OM>rwMM&GIA*z#(wh=*+`&k)KlzX(Mdm)oM}0XRZwe7XBWnz|l6p5HG3 z-z?#z@bh%FhNH$NH;6k2A(aQD6bqF~JcGCKj!Q?8d6VeOK@T!0c{1sa&lDj_I2OWP zK7~zyt{q|?QC%>BA!lg#Dp(0QICl1kBlaxX-fZ|KMPL%(o&xh!_+!+o zV%kct^!B#izcoHwOhh;D;=wBya^R_Z4e3L0VQ`&P-Qzi=bnmdXK;<DKoOmC*SU2AvXsdu9-PE7~q&gKL|H165qNM%vH`kJwbNm%+`2ptRIf8{GDzb z=LS*N;r%{eo=f+VH~*nfN(13~|%VAPrgN%*Y5)nMchbUt{dkRU>}u zNu_S7*U&N-WW&b}-=T%jizIYMnF z_Cp>7^k7hsq6+Qucz@1RhkpQS@cfN^uC=YI;nDJO{hXfE#$MI8>v}UfoW&+CJdL>) zwu#=3CL<_D04``f4>GdT95_c|ZxQ(Jxc}PUt*x>7w|)I(yPCb$Ppk9O;QI8^Z~GI> zbdrdAFz9``n0x6TNYk)>s^#iMG99On2!tzMNH}#P!$qiNSZ%oFIo#xFu>L+gsAwXU zs61P);=mWTsc~{NV;}KyA|x=k+F!f$kw+-_iiPYSZq|O0qUnB&$ROgi!sHZXrYCMV zsNQ06kfrdbU}IvMt&bN7ok`WQzAB$$iba4UDCFHY6v3do&Haa^#IGLjGGJJ)^9Euk z0i_j{fA~!`{sOu6at11{e|w>mm+BCW#3v_{RTm9i|WtD%Nk9TGt#4J zE(B$r*HKjfY&-ou84bxJ?6$K?;(h}uC=t(2*uh-=WnEQ?K@blB6g5=DE_m|i@WjD} zc}h7$ov=3woKZNd8=7eyWulD{D|8P{@Avk@CxCNgFb^{~?=Vsg3kSEy&@I-nT5HIo z8Q{Y-;vm>0qEN|zI?D`{-V1C>@@l!&SuGIv;JHyB*)Z5owiC`~KBkV2IuMYR2Hj;BmDoo-oA7^n=>K<0NngHL;1fnpZ~qyYI`|tjx_&LFH5lFykOVtbKXaj4SdvZ_{LTWrx}*`cZE zGFpw1Qef$7I$XZC;dpF5%+!2-JfT2}of2@BrNXXi)17KaF$E9@5|mGWuU&f3h8@CY z%z2|JZx>b#sSBuUV9oC{i0CiXd}Bc}Ss5{#bZCvE=Nre?@_yN)VC^6-xxrv9@3n-TZ@7 z=Jzkwq++9Kfk_uU5{$16Y>R!kWZSn~eF?|6wC`AFX%$f!jin{b9N(if99f7tITWTo zs;bk?70a<#p1+15gEP}{Q2+tqrnN;~V^wHfr_H?AT5@rdW?HBwthoRaJ0}DwXH}kG zxDce3X<@hFtp2j6ebPlh1bEk3jluG)f;y-XC?oO{WYfikwP0~cFr1%`1ga&=g2@wp zr&W_&qZM6}-~M*BRNd^X?2yGesm3cU4c0{9vTQ08X06HI)C3q164D{I{x`5%6;@JZ zc$jh~#N5e?mifA=f zdRn%g)_et>6{9n9qEK@MEniIG;l}lpNH=UPKSIwrB2n6y6dz8P6@*+l6wj7 znmgP<8AconMYeo4B#k^z{TCPLVt{EUgWDxMhfx;V6`F=a!O9m?oXf34%Oq;%Fy^7HCG89QQ1S&9s0=@(s? zSVb+#K<2d=S#c9Q>N%vk-Qk(^hc}h-8Gwx9;^;^dgwW*}^(m@SJeU<`8#eXhRY1K0 z>LzTaQ>4tX5ak@pql|Eh4F)|GIV9+b#0n*1qlpk>^6w5skLYO__nL`_a$f*sW*fB$ zY8eN(kOSj@b$UV*?5SjpBf_>->E;DWVfjm9YKIlQAd$ zB9BF5#JQ&v<)0B72zA*a*!h=^EIo4MNp!SI8RVV*_|XTR&2F!&WeX|A}+~)2aids>hPoL}z#epnDw7bG`cmf37LQ0R4134@JJk1x3wM#PE z(-m0jefV>Xc+y8a#mjIF6fj7`n!bj}7dng9)tBeo-PB(Y*#vF8LlRYkGdhIKX%sIl zS%8=Vk*=?07xNIoqQ|9kP!2RiN{ z8`U;cipXIE8l54HIn233!PwnQ;t{gsU6t{u&4q))1C7R?2G;#`QZE<;n?SSn7Q z2KFStzWT^31^kraq($S(fQOz@XB{d32rfHt)0otdj0RWZDmEE{lxKcwe47~(?cO`{ zH7Lr*<>{0HxIC2?njm0(5W}KPgRGJQS<@|?zIZKJfuR#|Yf^+sGCS4$I;erM5s*rK zq@+DVqnwd^zK%}`%%gZ9OkhwZFH86qa#rR&L$N^vs=zcgB55BjatuXM!_bDtwrZ{3 zbVr8)I{iY6)BgfU*d=GOS0OF<(z+jG@Q!UH@LrdUtxl4%t|<8Unq#s}=@vi;A9ut) zni=zOYiB%g?97aj!afP4hXZe{7Y%v@O#4%hs&SuRwS$H63+h!LYGtBPT#wM7wP)uU z8U%*izbGc&PED^sKe&7-W9;yX33RZ6aUz>vTIr3dwa6g=!_K=t-z`+fXn0)ZlGcgU z=jtuIxXM)~arxMIRIFh%UU2}0qk{TL3LE}vAdpS6MJ$GPATLXBp`wL&)zmoHeW``bm@}<*QPj*l#vdmr%Ti! z?!_SVtzO{jTxy#mIr2IqaJbLg`$~FT0CtBDBh0@%L#MeA(0g9T!5dJ64{WUeE9xh% z#gCS|0NUr=-6K$s&B^!(dKhJ{51>BRqro_IWOyQymu}J<7*@!V759^q{jWYadw^GH z%aE&ZaaYq8lSQb!6r5CQed&Vjk%Q9{3GdS59Ze{^gr7$#nHi{wqvomUwh8FJgAR|UbaEUfOCEPmGW=tyVM&2)5v3d5Q#i6 zyYrXw)aq|p(lNWGZeaYV2L652IIvuA1o(kY$E2fO&w+UE~8%})RL8rN(Bk%32sPw#fW1uvhKKGeP$eylb z-=wZez-oo^XGW6Mq!8hg8E!vsTt=Q0jH557zI)Ov3%5aDHY@L?l>lDWE=Il-P)e4z zjjknvbWOhRK}k2AQViAW2Dm8dRYi#G(yup2U}Wk)_3(ePG<8iy4r{}q+mcIa!J%1` zcMogDpjncG?ppNwQeilOk>Ts2c??BmC1_ce7P5h+QkBY^f)v+MAuowe&kF9>8jw^m zz0YMB%$9khg`*uA$rAsyl+97k;3e7xZSE~Q6O?^+-R%pPhC-dnh45-?d+mF*-0qRR zO^k1cN$BvP|@ymw)fNP||_*~^Q-COlY1S4O0^D?+bi za1MvUIe)HXoEuU(fbb}zIz=~za{@WDP01=;w?^*McyCtFX5gU(2713zq;* z$9fwg-cq*-IhqS%oOT!d-fu^u+^b*5P2HZ^$L^lnJO)9DGq{N15Z6TXfDC^WM`{PiMHMGMLm|b8y{FHt_9n+GNxFDR*mWEzn zd2XTv!+jzt!GF1+35b;;N>l@t?I(0n02Xc~{cRF&shb+wa$z%-N1!KMKN^o9)u<(pESa7_lLn5T(p>(K*E7do6TiM$6mnTb_>Q z=OZ$T-S>y;?Ax9Akdg>+16&+O1qph5FBvEQDdLTzXd>S)5FG;fF4#7NJA^Y6j&coR zGl|ok!|Z>t#Gmu!?9g22-@}uY#@G)0t?QrDOuyejuX#g&d~rA?{v?fm<6AMqDkCIa zAjL&FJj7Y?Ok{?ErUoUvFh33^4kL78@^@vqNl_wjYOF}MlM8INO+jF^lvrF$JdRJp z_WL1EXFQ&n<{hoQ*E(Jx4m+L?@2~Q^+a7n# ztBNxDJ*xRV0g)u zLcmrEBaf+)&hj)oQ5U6l&ip@Rk2|+5zhCyBFMl$|<^Qr7AmMWS$ps{jN zJT{h%1HNyay$1-MHzi%Clk=K)wD=s-Z^zaQYFGIgEC-3A9e{fO#htp{?$wP>9Fgmp z;N#IZSU^sC&{@wEMWS{6B;5WuLB^QK^ZIPW&d&4$74bLwoOR=tuXVoJ1^BYgV-DoN z#1O~mMG%T{HoU3A;Y_#$z78N4*^Aee0roXfhx7R(1xEpVpVddYh!#90{}31jxX9ET z&~xNIhh7HYq>mIY(dD_ABLq_ojwTN^8Q?S^nY4h*oHaMSwXv5@84;0j)1>uWv3N0 zvt?lg*3IOhi$>#}pHp>Q)KOER=gsERdlSg5F8)IC;k?X*@GsBVKrS{ql0zTgjpe13 zLc1t?$iz+#ix00gI*eDF!{I3OoUvY$$0C9qQcz!W-rRw0Gwin0WYl-*CN~gx(H?f% zdexot=~11j#YG~^)hAa>QG&g1X7(O(1&o>NzfxpEyr8+^@dE# z|M}|i^StPiN{=}(-Tg46Hv`>~!OsL^cfNiFA)(9Cu253T?+1@(2Yxo!lNQW{6S%I+ z@tIxSPtO%;b`ocz^#$)la%<;OB#bE^uxbNM>IIz$o2+AJo}R`J5V)7`TUF6B;Vqzy zbc$i-1ZC%uR>q1$X?dt`y+31(DRv9{qsIb1uP2{7#Vls#=PyE^KIIk=7KV7{bl)pG z&?{pU3Ux{|DSLzzKK%>)pOV{tyv2Dp0sw#;Ma3 z)7qD@IHL}~IlTupgE(g1K2DvlJ({uTXp;Rb63~RE!2Oo8Pcu(DF`V3uIp^(%rfz^p z;Yb?}LZJ1e91aB(Xwe)36ut~5=>^4pVy|=L-_Ye3Hy$^19-f3H0yi@J6_u5hzRzdz z4o9JS&P#;iUF=3T*|%hh97MW*d>>5~&NEghWWmHrg|`H;b~K$@(>LvP#X6j2GI)C= zuY9pO24aPRlm*i{$t(s^kq|#?2x!fQLm0F}Y4jqpy^Al6Pl%!iNzLMdrJ;gd_e4b$=ZqQijmbo^)(-WkL{Rizkqw>h^K!nwdU3J}B~qlQD3G8RM3QSD_`KbH9g=glPm3Kw zD|FGQzNz+#ydL%UW_!OqJypN*`&_yOzZAMdFuTJ9s?QE5(bpr39u*&MRGhx*{W3kY zV;PmEBJ+Npf0n-9(C0}Yvtv2jsv(4fu(@%wavgGit&!o~HnJepz1HN|%H(0imI)?8d1hsfWIsk0K{V+rZZT zi%a=co+;P@+zmKu%MmjqXc4K_Hwer)=a2e!gA2k$w$(4o7X|0h!|(W!$nX8}3NMfM zbz0i%jqb4$6|)wA&t#f^2sQBpSQ#v9BoYr~2IPuUJO?A;B9Usq7JIHVb~_M{=&ddN z)eBa%W~+b*i3Y&_;6`}W7ldvP%Z=HPM0);C6E<;r4ZW1#_{T2C?`hV*(D$HF$sy9K z#~rik2)yDi5_=d@PsrV0M@?)oJm|3Qt);FaVt*N1E1;qRTjnJkzyuJey!Atvj!Wo* zptAsWZ^B}zxz!HIe0cMRy4$qZNX7OS3O%TcB#BP##1kO!u9D?&fg(eu+n zkUo`wZF2Zs9-m)9$mY||2*oRS%_v`8(3p=RXAI8b*+YRy<>|KMmyjO+6D0Uj_}#ao z@+TZqOy;q0Jk3^q{PgEM zeo%vzDjkH>$8Fl+W2|my!w|0aCt7pk? zQ}r#bmiW8e-`k;@M$#f#4@xI>1_^LgjgmfSB<%vfyM*mvu=oUfemJM%+1(!pPuyEp45U z(|CNHIne+1gv@e(M)SJMWiw*wq6l5VdHJfEaxCl;xrdK&Vy>WJVpfJ zmIw-b`T~T4F0ojTIV-BM+B+k{tYsUCsJ^CPD{DQes=~n4S28Dp4SNsUE-00Qeo&UE zwxNuDM=aGRAQ|{gEB}!tg-SN>T$2C?xjS5nB@ETJog>u1s);S}`I+y{>iQ{zx&}h3 z1!noyiwnF7T&A6uhNWsol6(&ps&UjEJM{th#FjQp4;LK+TBMiolQc9iCh3n{h| zRL@i8$0Ga(Gj=QF*(y51_^H}%t3L^FkQUBJw4I#*zaH3E!dU@CXD5P39R#36u`}(g zSuz`4sBq*$A%19BqDA>=BF&UaIrWd|Uid`JYKV6pGhJW>y!j^r=PQbuT6D$KA?VQ9 ztNZgorrM3Y^B|b#<5^7x>X8Q18W{*_4+U(9WmOrfyMOecsOz{JG`f^ZTl) zsLtwrJ^Q*(OyvJLIErrF2qu!t?fyi;33`AKr-3t-ZSCRQ(pJT5fSAduzg-{bIFZ%< z>%D~s6*i3+r-sPi&V`ch3el*$+h((*U51uclieRB{qN7n!S>TKvJ`%YL(EHyKAYMD5B2I=-y6#W@qgFrNz$F6rfMPxS!rhL8KRKCyD0u>d7n%Y~GLzz9O z^})X)nObdBgPZhaVFpf=>d@1%j)YbgyUQ=u(KW&bd%p5)yo!|r{*6CVYl)}G>T=ijsd40-7_e!Js&?6tRj5R836wgg24 z!D$;#0fs0IZqjm)oV+GgtNX52Xk$WB>k(sJs5vM-x@Mo)2mre%qLCAXi|~&}{Ps}Hn7Bxi_T{ZmSFmY&XuC|(d z4SLO{If{~ZWXIRqNr}I~16=;(=kPgZN#A(FnAq*Zx}vD#KQkh`7CQgu{Kpim<ZsT17pYiSSnuOz+4t zW(7<>r_I9rGj)U6$jD!jiQ&AcDHii!WaowsLybOjWpy!xrG)VBV%#{Mp|@3SZ~Z#K z!?yJ^jVh%?)n+T9!4aIIS0h}%bh8L~FToWTZ{#knXuU*ZSu8*d!0j}xMCAP@;1o23%>tDv)-ig5X^}FuJtbz5AIAHR(x8Ke zHt%{BamRWoWQE1L!+|WXge|A_7S-HZOlL6oZS}ib3XtvGc70yh3+vNVNq(- zuH}m_tsT6*tvnT>Vu;oakArb4ut;xFna5Mk0F(xC^{%2D6${TMEiqit(iuytRA-bO z2&&S2!_Wia`J$0WIj8iH!`7?XqBEsyDzs>BXz;@3$qb&FKX-dOI{V7Ir8_4xdv+%V zdR7fT5(8}A?#gbW6<`PB>g1Ktaaoiqlk)LXhFyIQ5GGk;d6$N&mt83dB9ww?zK7fi~#ah#R z{Q8dWz^WX+D4<$ndsG8sX`A(Y%%TbGW9L)5FvY_FhO2OSxn^C88tBgad^fVw#{0oJYH*JE*i&+pxO&`{V|_FVV-pR7M{=^ApyH$|idlt(c;54(Y30K-yl> zToR?p9o4*_a&j*-uxvEYTFr!nz&@HhJUOHX+oLNvX?O(8>M?$WHfZ`DvCo}%@e@WA{ke^(2NvX>GdhCreDu>-z!74^0hKyB1|In(_n zm3t8sRmT#0y}pm`@y+N(k{*8mwcTTr;mh~fA`y1j=$Hq;nAra_vX%Tf}W8A&d1=q}|{(MO75>#*jY>J6L zAMA&R0c>r&SBv~OD84`DGhLzJ^Qzt8J+&%nj4?ld14CH~^Q~KkCPzY~dVJ&)8K^%MJf9gT9?Z>J*MZCfqL2%3{=A3NTex(b(X+Z725d1NA|DAo4T+$nWvcoC!jgdz>Hmy8U)=db0J*M zkf{)ExL_Osu@Uj*OJ`ZVZ*Hfvh6}52AWAtV<dU1t}8 zrmf2=7!2Dm!OU@_OgqRJjN%tgS@i%;k2}e*I8G|fL zBe5h8wXzQW^mNxP8;1KQ6;z|NZuG+A$0fji$OK8SC-?Z>7c?z_Sl`jS9T?3|8w1up zlgW1AE@IwNS4A+w`YXzFOZj34gc!cRdem23a{$_K| z{B)9SXhK?C7?f8D&N!6)wPn)ERbx`EdH(ENdsNBgkk^@XR_QYsRfgu)%s$_p9@e;H zfo3SW4vYn85MPBgJ%1la7#Epg-_s=OA`&^U~S?;WN0oJ45uO zwXi}J=L*Kj^f;n`Zp{r}4;!}4<-2N4PY=yKiBIqlVtB?&K=Ix9{LHVfbiM@3h6Tvw z^Lye_`oS-*5uH8V&9{50%`YX;FZK)mpV9}Jj~zuI69B;G=>Hw2|8LUA|C=`I(y~&% zkZSy)U-}@k?Yi91pOGXZ6cZ5h>c0(l@;xl|-1P_QO-7mTZau_f>j-^rOQ5b=Ze3@msNM=C_pODXRwdOI)h?c1I(L zQm_&mR6YBx*L(kU@pNxeFHdpk>01N)@eD{jEM43k@__z_Iq>xhS(UUw82-5-DL0+< zb$k%Niv2nr#t*+84!XxrJi0}~5P2ktRu5u{_ywh6rvJ`}{Plgp`>sQ)J+WYTbW7hN z;T#(mi$(T}Tj5cfHva*nUD+eZpe<MX&9FAHgLV%+Thn7{B|Ib)8^+nT&Aiw_5F_35JN|ohh))nS8|ve@7l(@}jsuFR>?hPLDw*9Up0{aFgo3{*D79TKGfW z4ZJdKNW$&Vd~ouzw0|u#79$sf3@k}z7eK7Uyq>m9#1#H~GSDuPLu-!Kw0u0heDM9NKAdHJ#|c z4*ZfqFIj_zszh8-O$Q_m-r2LVJK`el?UM9ZM<2^^!BE99OSzgH#8#<2p-HwrWvp~+=t8yQ<{7yBa94KWnE%JXNyK>QKcaR{<$e#YYtcCsAk{Yj(uA-Ft1{i z<4(w6AQJ{EKjdh+o2!roKl@K6thrRr_aTEQE;uH&<7%|1dG5WzL8Fw3;Rk{Nx zHLkeui6N|f+=2-33}V-f5h4)_f|w`^Oo2UX=4q3&Nj>^;pW1r>*oVhaX#sCAd}$Lf z1g_JEd486`wm&K6r;|kbSh7mSnF|kU^pAKw!otbecC}>fm9!a+7*(=HBUptU65jc^*78kz`+-YSA6%hR*6e8+@Sku7Dv-*FVNwQJl$ zQg$*dT1OVm^8Ne9d6(w7mI$VAMYBa+9yb)A{xP5c_W3=F!;w;z-(7XNJ}-Y7Oc+A5 za5vi&Pf?2qt{<6ikLT5s&THa~K~h(W1tXui>FYT07p}pY(y>5sfm|ev7!R1`h1`C) z!YJChNnFAKW1v{tV$1QVR@4k@3+ z?ykHip7vNxdRQiII^0Ko_-b&xDqNh5D>r|Vw~fo7QWLN9mPo$|C*j4EYF*&fpqV0WWsyT>y;#wI8cYApT~J?{WWyMgDFE( zU4vO4%k!Io_b0|eU8+o8;&VVhiE|`Z-1UhnLl+WD3k8fyGJ(vA7MU?WHl(9-0OxKS z_wYad=wZOO`O*ltG;Bh{Cb_Jn^62;#rLeyQQhsmnRiypUCni>}%h9;TU2VVEU5oLV z%`seeDfIH#>}9jHyUwf>az`rc0k zXjkdlDWkEsmq$ zEIzph&DjB zSQ77)Zq&QmIBg}&`eFOn;o@Ya{cSdRp||nf?c1w@)uyDf_egr5DD*{w&QDn+H=#ss zT5j=2)zJ7f-4=oO{=`6xG+jmTGiYM6-4H`{b+2+dHOKHOJxw7^VL8OmovG&VLd7Q} zz8qQydznm^HV@F;SWTOy#VLdIf!P$es{*F5`0fFVUV9mQkb`I-#&=UeH8!NxeX~49 zW)Nbj7=dW6&l)I`oafF$rPH9jn$UcVn)ifaM1UbpMMXXBAlVzxMC6z5v}PN4J{A4>rk7jkvb97vmUcQZ4w87%}kQKNrCwAmF$#S z!OsV9cPEgakv}Lm-Bi~wBf9w5EWmRa4*uL@R?Bb1OsqsT&H}|GL)(N+Kk>e$y}p0v zf7m+5CQ*Vdi#BfCwr$(CZQHhO+wQ(?+qP}n_S~5H^d??av5F0gGV4dTD0Q(oyo93Ar-BtK{b5! z4{Bf~AZA@hsAG_noLul{P^8>R8)PZvs60Bn<&ORBW39VzDzif}FwWr(QiW0;oeXE3 zyI9m;76PqD&c$ZN6BpQ(lI|)0yc~hDimntQe@bcGD4*q4T=)}?4r%hW22Z9BK3tJf zEl&b(Vp-H!>?gcyhR^LF#i$V};KO4RG1;3-Old(on_j1(Z^Axhgm~AH0W=FjNoYWs zk+dSDj5hEa5}+MxgoImPX<9TVkW8Y~FsjsUw!u0kXe3@cQ{4id^&xJb8mF$@vu2Q@ zviV6$hU&Ts@45+=jZ%6iP{XA+r_g1jCvaau%`-{WGVA*jibR(X|6yIxj%>`;1S!(8 z#mf*8ta~UHuLp`-tPhlw7vx-cpjS2A@h(J}#6{%ie)^r+Rq9NnPf+G29QV+^GEAkdha z?xq*M@WY?H%QlH008+dvzE zv4d8JMkPc@3LA`aZs4AylB;a6uBe(*QIUg&>6sDdbLOIO$HpR&87q2;o8=M7gsYy9 z);I<)po-p9R`L-e%V1M9mV+C%0#=cQA{7CT2nnZb%#B)|%QXM#4`Ht2Bsd(hOb@ms z4)o@dl_HIUK}UDN1@Sa=;+l+A#T`)7lf}<+1JuI%#vQ;o*ZGBEvQu6m4bND~?dNE~ z`^oLspeXh3^v>$H0snBG^wl23VwT7YcTFh$Yjm#kHfUn&tE##4=kJKYywDlXjwo8k zlkzJz3P-4~Jm`1CHo8&(dV*qAN~ppq^--NC3I>vX@WgpB*#cFLj)1xK#2SmWZ0j^M zcm1OeTUmEYK}@@ygw!;I?d*rSE{2qiXx0c-cSK!%RT_+y=SG1Eh1cXtsNNhd(HLH; zX@CQng(8Arqdp!cex2<|C1o}@9;^G{;JyE0rdJn@3?nD9;Afpgdf`@{p@pK=|P=Yai+$~2g4~&7I*Hc z?u7<4`+9X@5~jeHSdb5BQx@p(m-LnX41CcG}*N`Hh**UN+pGA%dBhESM5b zDvV<%)61>00Px?cfK#V@>0=7zkk#q}N+8DOyyZLjWx z_RtHcB%7ry)XmC}J`brsqMBkoWPPx7WPF0;7znPmLS7@OglUu8Q=_};TR&+^C~~d7 z&3dfS)j~dFhrDZ7uzr`bX8WjTKXnDHlD-@^%RIzH_Pg;7=0T8YVtP5zY0F-lu5aH!{qlGA&ZQEPirGA~e(5 zuQ4~k8m7D7`f`K6f5dPJWSi=FU%(NJtbMN#Bkr2)Onib}Blfzbni!m>CgY{XJ}>Q5 zxy)xMyb^eUdqL3*TY;G_U#=WsXJKu#I1DWIY31{b*F{H2lc&|?;$Qi3G3A?mnGjU6 z$CQvpQm6a$Zj}PmBtgJIAnIUuAfw%FYn$9sLvQYrJTN=F<$q>HMjxsXbZ&g5dP)Ze zz059oE|L0sq2nsZ4-^N2u1WU^E^{?Yj@${Ourtk7oh?45Nhr8ILrH!Df^7vKzQ62y zWr|&xrf^+8JX~*+r8)O9j~BjXSr4z9Vosy1J?NZ-u7%x5b}tJ}d3_Hubdt3U^kgSU7qipS0n7~m%T%m>=5R%PUGO(sy7ggalr?N@Uz+XA&qOaxEc>padg&7Fm|FX%!)FvLv7=pq z5lzCD(b}5Ttk|}c$|@UXK}ly{29q(tD59Y^K!&cox0l7Bx%PY%)PX@JR5=#T>ZE7? z{JFmZN1mu{N|9@m6mD$>k7nrkWA3bhI3qC0of@8S5Ka==%88ZQR91lJ*l%+(#u%D@ zCz-y&rK#ySU%%64s-}`d>7u^l?*1?iDT|Pmn8RwSEghS(lp~utivjFB|CiKv*^723 zTH1p}ZLaQD6J9gR%l+MmWg>KPA+a)wsQe{wQ@M)M7hR zw{G-n+?JPtjFZ>VF3(ZI36*tvY2E1D#_0>yd?==Sg&iFGQD?Nzz1V(WN4yY_i$@ z6or$^M!7`E@GgPgsUmFz(NXA|-D(UY5PLm;_w1ODKLI~8f8L!{EbW1J(s1eN@+@l% z6L7StvDR-B(Jb^-O=(+q^Q%HSQH0V{9gvN_RucN39lgH9k7GfgqZ2F&FA! z4y#)iiJ$g_%RJ%5%m%kNln7!j`Lnd40C`=L3b^at-s*%Ck$-pkVIjBl((A-v6*-*Q z@rV5v99lR}%nYTMYOfaIliQoRPp9~q(UOqQCtC`HzpMy?%s8$$#4f2H42A_r*u{rQiuH=B?obDv| zITGCVoRsc#F7^|x5=bU2`e^i!kc#FtkrGV<48+C&Ki*txB^czVi!Rgh{O)I&@86SS z@HYs}A1CG$yNWFOT#uE=>xXfX_cDed^pVJ3ndq7)+@@iNM^BP!_HIkRk0K1^$_22H z?#e6u0rV=m2Hk&w2)s){J*aGe)vS~;*`-VcfelDx4u$=&bPciH|1AE zickPnb&S(|J`5>p_iyV;krg9^Y#E($Qob%kpndsbVb4(l|2?-{xf z%b+q%!A87VTAhSwMRYm`YJSAvjh5C>MpL0Xu(Dd}_{r7ty0Xz#0>cW|S^YUPaa{_T zTjOHQde_M>#cmunDttQ>`w#1~7V=lg=|>_i#meTqIT0{J)}xBFurrh0{#`5GZmGD; zBo#Gv41ANpBX#$(teHw$Ih~MvC0KP)l>|F-9KGepWmq^R52*=tbyTDLF%XIFQiwElS>;fl@?ue=v0SNBBR`IO)rVvZ5b5VPPF4lQ zgU)d9Tr$y0SZ`G|w$Z~{4~JSeS4&%*KvkWgq*_?spl4GEN!8-ERditUb4LSJuqbDD z4BkfK@Mt)`ZXN-S0P`Jp#=P*VM(f=Tn}4ZjuwlTW9pifTp`~|;!sFumZVUcJw!!4K z%3WtpzK1h~IRU3M5wIaIK&R7r_1{=W@O0v@3gxk0^($KO7P4)C@!$Jj*RvPyw-mrY zL`2*ZI4#FR&3=;zMz>vw@Dda;V;>2DjS$Ax~K z%XFwU!S``hn;RI!$>PrhM033$q-wcO_#4qWTbivEQSarq4|Dn#lY1ycaWkyEahphd znYRZKuOP>~yy1>%3&|tuo?s>h(;M&0)Ve*MUGutm$^6aU_Iz&f z_dju-!37@54;=>(5JUuz57F*_+l>uxy_Z+-y2^J?r>*jQI`t$@(HP99ob%&>06ZYx)>0Uo$^aaUY zR@c(rFpZsbWiWGast#oXGdmxZgz^2n*V^YUli+Y>+S0S;y&pQ5ux2~6b0!*djO6iM z?l_x1tmW3IkdbHWsvuxIG7Y^|9gM z;)_!!*sRmzeYcz<%;Tm?*{Ye+vz1+L?|#k~s>ZkLb)AG&`<>CC zJO(&lJ6;DIHUa2Sv?;mNKU@Zvv461QR@m}=%DdkAW}N$%n`jT{-?R>9>~_On@wc?` zf*o%ts6?`dLAG@YN}pTQTVo9W`G+5T0?CPFr-TGa=y##qh$1fM7zULna?4(DhZUc7f&r-bt6&0e2 zHveba4cFNVw8R08_qQ~?VLSp#>srZ}+7!P^V<5xFSq6?k&kM^bU$#UcX`=@UMz0oy zh73ZO+c5ieJj|FJlD$t|zu-Oz!B5%|gVdEWjuy!Nrimk!xkU+a=*nY z9tE|e)kTk_E5L)xLI{60ZNqPR7DpA2B(vx(@Lh5z-uCB_qO?zpeDUSBef2y_X^OTuc>zf(Dli>dM1z*F0j`|*$w$t_fT$v-hmIh@v_U^-Wfl5 z_mh<&lHH4yF?~ON?#|_2cRb6KBTpkhm@6$$jcIN=j9;^8$2Au$JPvvq`UJw2Q1m>n z_i}d0tWsu>R7Fk+_J~IbmP}l*85^&@?~koyKAxIp>vZY&Q;3>U?;ILFlX693rQA^t z)t?pzmpx_LZ2v-c7c};T5Z752-oY_oheWC$U=ty;+;~e9k(1FM)d;?kqI?{N1>=%9 zOwV~n4@uKhG^%vpQQ~NZsq?6jb=Vf*t5hF#b>X07(aNa!Y~_sqEngkW(n!jkRH$rdq%_$Zxvs(S2Hi|sWv8i&v({4Yuv5$tg`ay2)f$6SyCm&HrehWrkDTl~CC5>< zXAkzjhMSN%j1}0UAot&tQ@gI`ni9D7`ROqOg+*9bQXgnvJ2J}^>RfYrck=+F>B^04 z43=iXx);u# zhNs61Je(Telu;E3#y^*Uj`D0MxAZiqQ5H0G$m0MCcHEojJGDA$3QwqXR!(SQ#;YV$ z@)V<4sCKzeVSP^3T*kODQRZyg!L6{J=!Ms&EpD*Y zQKYiFK^L(3ut>>P4IzVv2%{)fnpw0{@50GUj`b4g-B-m3RmI-)DQy+Oq-r(OMz@l?AQ(5yHT_^gnxvFG=-*KZu#ed) zdov(dxp7@lpMRbF`n@m`8vb)v^U(u}2@%)#&<|`7UWt=?!Jy3ifU_~K2UZV>c}ei2 zmMueQ=Kl?NtYT8A+}#&N(u<@(M~o1D_Hu7{PRA4x*idIr6xC>Gy=vSF=0YqC6iHk<25(;Fw#{e7%g$>j1Ms?LZhuJtmxgxFIrn=t5GHb6Ng?Ux& zU&78(uYL0420y#X_leZCDU8AkGpXh%x*T8kNo?M3O>6b)`+a{m4EN&uef;Bkm5Il# zYw!_n^v|end&BF1SW!B?A!oL&2@HjIu@kzP6lpv|5u?GG|2sK=0crHbf&gjS0j6{u z)#4vKwwfkbOpzdq*PmT16$W3ESjzq&gdob*x`e#p571Fn(5b$WGIXs&Xe7P+273JV z$}@lMR&zl|A4?xlQnbG5QgU$wE8D_{Mstj|5X?VAE4+nN_|e(0UyEE7f0c&tH#{f< z{!qU?l`w)S@dzHB;NyX=4e!FxeJ98b1kwFi-G;a&(VKt&rOQ)^v0~qzNgZw5++48q z4)#IV6{2{cLEb1__j(-sZr!Cj$xl`)aNDSZ`RDk#+E zeLF6zYXO)vyIm;TS`i;eC%<0m*G%6xyJ{F==iQ=IydFb_cXwoBb@0w6P*q5n1{s_J z%9KwZt+ITiNW=3j-qiR=}aW5l1A(( zD5_-vvFV*?hCdiKhm9h+J^n{YbJso^+xw2#ZukdFPUrXPpr32jDd+2%h4Uy?g`lb* zL1ymSwPQWkynm$1ns(p{C!PcN$P7Q{;D-wj$NLGl>}T)r6^^%q@#`REKdN>*;9W5o zgg4yJebN-Oxu9+NOqAa7>XMlQ%27HXI>RDpmW%10fkYm>19JHBJXJ?<&*%fBfy`0W z!rQ(pAu%7$TJqa}SS*_VU7DNVn8}cOjBF8f__UOAh63g&C|dzY5_@uNGU>i?(YwiK zChT>m1TAc~JIBU5GY)P$%OlGFx_xx9tLB;w(+8nV`^&x1%M^rqkm{ls9S9@)6TWHUl0_!AX>(AqtxJVdHbs1LfgA z>#4Zoy5dRFDrm~ATY=W&dg;TsK{(Z%1OMUGHo{9K4NwB)!m_J3tWV^G0Yay& zddWH~gj&bL*XXOt>BV=xo!T)Z?+I2wv4hON0BMV@dX=GM&%y<7blF#2$UAl=D$?Q+ zl;KUgv$$YEKewN&!5>avmYsFTB2}|Vy=!Ky%G1vrT5<3P&67in3ZEek7Lm5^m_@jH zq^d+E3CwD~n3x3ekp=>Vw*VZKH|;rf5hE|^ND1Ow8A+Y%o4uQlOTF&K*Q3#YCD8j9 zF3->B`h9;f?M1Jb^WT5y4GZs0n%c*qa#0A+>x>H8M2^GeG^PBj#~OG8Ykco+ZXFvl zF??**u8XeM?x+wAtUT)1L*;5IJtAXDDQ#JL0>}-m^o*MMq$b63$v~r05NA6r-;BqR z4Ly3~YKfcw1%#4!E7*IAR{SPyIS~sy6>!^<-t;lkY|&|WLGA~CGH5=?$8iDBxE?*0 zI>ut#a!jA+6pQ@$H2XPty2JbSO82t!W$%7{uv6PJrCQ(qGPwZ5iiAj}ZLh^%=Sg|( zLXXyI9^JWjr@2WZq_LXipBE8NQc=gqQBxiqSB{mzKI(ipL& z9bxTnM%E(6fj^J3&PmW@8240Oq0@2pu~H@dsa4!-=|#x;k%URPRLSL8>P)<^FTrNLrx+2yeU5LEu~O0}izy zk|)d8Du14xnOic73Z+&~@$4#~4t!x9{tDR*o@#i$R-Lc*>;Kk5ev$6n7teyxyRL4MbatmSN&+LBYRvmi)(5i7*=JS@u(JUIU|t^sC}*# zEdHL^X#mH3L+{S@6Bj$~@cd+6#9=X{eaWugt;*!F@8gWu_io308QS{u|e0m;~7t5 zfKVP@l*B(zL+Pr^xHh${sa_EDl8g9|D0Vfoeo=+tNp1~WzjZbYxGXTBVghzv$!pTE6cGDCbIgJ3Y6JIBa(!$=VRB#Ch8YE4UEpO(CR&dP2Rm8oNQPQ^j&O>mNzrQu9f%JU+>Cj~f@|~sT7vHplAbZDz}|+V)@Z%$ zmBNc(VRPhVYxC6<=`OwT%p7pc98l&tod>T9xgs(e;@(kDQQE}ZWTLyTjRHX;jtcvw zMj77xm4~qu>g8Oc^cNZr5uEQ2tQi$lezjU zIOWH#+of=rA@38lLK-D$MNX#BKR5vx7@2kTu3SMzP%z~Ps-u#>z7aM;fE!V2+ zs`!$@h@cqMf-o8sENS&+4VLumVZ@Yy!?OsB^-C zq%jYA#YU^g(5&_7o1aocb?!vx;=rSkr*kkT0?Q~)2+y*QU@Z+vaoSO8plz|W=Sd18 zg_y55x>&_$&?5ZX9>|H82BG4r80+z6L<`jxC+5iweXd65?}M6*ds{GDwt04wys3~O zb;`&$6_7P%XyCxrODDQt(%kte4wJ>qf+B|!`5-);Gx;2nJ+x}Nf5pY*N=kNWgVa1-sgwI0AD?`@jz zB-Lc+JL~!OSQdu&J&b#uMR#P-&Ph7c8rT@Tq~;-N{3!E146!X?)WdGTtmx-VXbp&# zP4wj3@p=e<(zn%iwsOIHyOdnC{2`Zt4Vj@43G0J%w?cYzjtFB+wMD_w&c|EHAe1yB+lM-SFg~nO@ud%gdV$NkhJ zSnsF4`+Lc^-{<6A#y@z?@9=YFUU6Z~1-Lk)?p-TiV|flUrc8!Bn_%Ne84A6=o0?2< ze;=+tMG;t1K&7F8G*Us@RGm}+%Mv`CoIG9mov@)DCx$vXj=Xq`JTp|A1pRXFULVFoii|6qVTYBLoIw%?LjBo$oAOL#kVe_|C-j$vYq-g)M zRWF8a*N9XJk>F5<)q;7j4!kT8Ce z-mCXssg!Ozo0!eB*>Q}UqE0)Bt!;~6+uNqG-Fv&-o0FicjyH5^lUHCr(SCGXwXQMx zAsxUfC8(wc_&#ewr=<<^gSd2ktM&f0X94v~bmR74=#*W-CrI}Hng?4b4orbtF_TNz zOP3E|t591l47B?(OEol%_cmdx2pEulGBN}8?pm0n4%BXFa`?WB!q8@OKISX@24wOZ zn0lQ`n-{dS>~lPQK48( zdmwZ}a^>Whk6&tOcMN8 zFz?UOs%W&l87T>N-xYt?dC>gpy%lN8oj76G@)FiuI{ImalXqc%VKC>0oiy>HmN)a| ziKrcwFdj3&+jNTPtMP6{G$+IEQ1{G%Z2jNMQzhula58*9aP40+bT;=eQ2U4Xqtf!Y zL$0KlTWIGY$hFqdxz8Ld11hY7uDv9z)zpy^hb#NU5oDcl(!t{1y^j}&Yb0x8qWU@;maB~ZQD@Q|nigrs+^0CW1O}T`Es2GDhG6l5ZT9+M+ z3N6qbCC9i_bY)VMY}R&~wuQ@hL7jvbei-`c(lfFpbsCxlL^jZucd(8NScyR)Cp3$dqpOo_rtdsia-*f zESrexcW8`O%i=TX;%(;nqG|EqrdrTgJ&{p-K;pbcgvAGdKGwa&y zS8UMM5euV{%f)jgl4IXN#g4H$nRAQ*HI^zyMr768TvBmbBWi1|_6qYBhY{&bxM1HD z3neJ|eSL5Bv8n={&x)4-bbZm3CcPC&4r%-jL0O?2v3xZ%ZR{~O51_VoZ4dNGE~8vm zByL?0yDh)9*3-hwniAFZd24RyHOR zMkZET1{PKm15*Z;fAJkY3Nlt(^zhxUYHf?S#OdUp3EMJ8&XnEBzWfDbMyMhfW-0C@ z1qrTDy1%a*$eNOpbc1*49*;X%4z520*;wq0KFlxgL|}LY%fF#?X{9NYsJ!8&fL`Q3 z?-RCeR+`nVa|ZxXA?tlQYF*Q`?gD2FlYo#)!yFu01v8WobeBmID3`lQj_H64?|bOo zq|Ym)j2XO7&ct~Pa&x&Aw@W*^v^}!PQV%Mq@PJ@5q+FjpY*TLV(?mM!dyNjch|z1( zm1KZyQ7+FU$_Wee402)^##Ca=9TxMJ3=S^0wh+X!+ZV2_z!dZ621EJ1JA4V#1FZV_ zDFXyW{i{+>CAYuG8ek{~S7FP(yY0D8-YPke0@qmX`7_D9a`&Jje1_r~V!+;+()=sm-B+JkwZ!+vU_Nrc+V0C~N?-PZ&VP|pkt>yuVSLSGOFgdE0*#oe zjtu*V(Bss=nzBeCa7y@m^y3!eVHC4%Md)_8c}tC>xtQh zN$-5k8GI*316L`~lUOAx+Lo6Ijvnpp5rWH(jGY;JzFgdeMGuSQ%!K3#sd5s(;wTfo zyvlx}atM)d7b%CO$nCL>o5&Fzppg1~zu^A_I3eQW5WZvoxeh=L)`aIQ6X3V{=`J0G z70c0lYAh|A0Y6J%U6h0aHiQ1Edx5}xn|sGu{}h0K0+j{-YUjn~8YTC`{!_qR;lsHt zz#bO1s4%?)bkGI?QC{&y7%O1LMao=pWOOYo-<#5}u6W7_*x%tR>>zO^0 zHA%;_pwi((`DuLV9Kir$prD?PiPJ}-8gpvh^`-mDHUSs z__Dytl7f_)RD}tH49aSD`N9)P&~C!oh%pxTY&2f&&Nx7=9z+%Pi0OxQ=>(zl?A4`6 z8o{@R%9e~t|M8w+w@xGWmM6y>yWn?+u6*2}5PDI~rqlD23zw}|5}mV=WYuQ-c-G-FHCq ziZ+0?G1sowyWa&#&4=f@_6Y|y=BDq@|Eu?y*<`Tk|L`0d|5DQN{~vPOh>gXN-GtSI zmW_#lp6TEFuijs)OWAFT!uPzY)omif2cQ^@&(7@;mDEM{ktf_t9n)gyoEIlD?kdagNQqVu4HQd_cT+v$Ez z(?ZeE*{fFuYBr%FdR;5c1j4IS2Mup-ru?-HW^jW_fo#}jSEt%|Y-|SM6jMNHowu&w zjhphsUK=nH2rvwY*b!wY!$eCkgK83wF2{cwc0sh*y0E&ip~z3Q=ZOswi9vD|j>tFj z*(e572b`xY^W9c&ZfzYl6c)h-!KA<+)e>t1LR+HSAa;bebrJ|R^E*PCkx@3ns^CVT zi;~I9v{@on7=(%p3>gzHQbJtrh6#>G6Bh*=~ybBWxj0r!iHzYE2 z0O!vz+CgPOutVGh6U&?`=z*wsHnLP4BohGMw66punXV*$a&??V#F1tj2zP{aM3T@* zO@XEldys&ME}}u($Be>vL^__&XX8q9)7xG5xo>iNrIhUETLOiFZE|2Wf5UZ)^UcQl zVqe<3J)KIMRdb+dBoIHW8z7#R&kX6%A3ZFPV=V~qHmwz4RFba85De|kpCMhP)hDFF z(LY6~TOs!ZqWuKK6ihnXsIrWKZa{zntWPO>&|HI8)pb5&X;dD;+M=Gt-Wk@wuYdqc zRbzO%VmVvyp#WbmrF}G^6$48AKzrO2AC;gi_U>9OeyY<=dKLYbeZO#yc47V-07DKx zvDube4$HxJQuo0-W#rrXP>>8w=?4b$t{cAcgWJQE{1Js(hj?i z1;+uRaemeiw!_K7Vvdd)P3aNH8pVQeM9nIWn&i1&;DY!`Xkqp>gKjYxoB&4C%YnhD z#EC18yUCht!)RRU%pEVr6uiKWTZb9}L`QNdbkA6F7~rhWK4!sIZ-5x3oC%910!^&J6dQW2Z zz?7cTQ1rAxnMW>@|BgLc-Mo zhfHxgk1*lMO>#Ua5B8;662(i^Ym#L%10y}!vDL8frn$0Pi|>ZVtK;?3B={JeS>d+d z?lbPk+sUuY>-YJmo34}X))lX3%jdnh1$VKq3E_z(V>AB;CJQm z+e?m-0;)V1$WK^G)6)Z~W-FZX+=azF5cr{c>mm5sQc9nR6ehF8d$=T%EQ=7|@q$0k zx&kU@nWcSlC4VLjKMzxT1-vX4^p!OEknjqbxsb#7u}_k^Y|%X*+T#;el~9k1Xc*mc zu#5ORstbGFdWgvoKmg0_QY3p)#pi(;s%I#N25)PRSn zc}a+p`X{^LrLq>Px|X3f7tGIxebd>V0@txo1Cx`qtK_X|S>z&4C4_bE75g%GlLk{X zh|5u%zhVoPa`dUzbE88b6sm$y?AZ}Gg&J^n7+9Xaj(s5&m1Uo3%G*+*`<;i!3SnLT z-kP*XPkA}5R{_awaSwD`K`z)clms-0j%Upd2D_0Z1oKdR@!YI{CqO>_Y>p>Mxvd=< z=u#%L<(z}a6$bO%JwoII^A(2HO+w_u6eMbUt|hEUV3u;*RDxGgk2`gFle;Pj&j7x8 zkZ}*$To4g1Y7X~Z(NQA$@NP*@5Cjw{;`IHb1T6U@T7^7HVk zZ0;BTA$6>^XKXOR+{S4hjmBVYZ}j{5!V>crMq1lE@jl;ws^p^PfwUk5003;!|Duxr z%dYmnDw*5L4r{d8&qV4?Q?bE2Jk=(H)hJ#{Q^8mx)kMUB#;9H!c047u^XW!$7E+u~ zyU8M{5H25%S!C{Dhu1&r=wlbEffQ3lcD>9^md@ zL;-hEZjfg>kGpmqu&GGZc?0hw;Z^fJ0%I$1o`JDQtWBFL`p7P8p%9wMxt74{{X+tu zKb4jNPn(m0)7;}kTYbG&kO_h{kRf}TS}43LefYZg z>?j`^LCbf*)$;3L;8jlHYFMxc^|>?HqHz9!fRJ4{c>w=rjafGkM)TN00ueGp^DLdv zrk5Por9%MJ#1>6jt2@_G0US@+*3*GqayvL+db?z}FP~yOd#671ha=QZv6J580sv&O zJCEQaoV(4=Jpto=VPln9vIO~tP6~~FqN&&gA4OWyO}DrmT57Z+QXs=)jba5JJz+Fu}@rt&C&gGH2SX*d74mnbk9J%5xhUS5w!F|T=t*| z5j#w7f=r`_@G*!`M{tDpWG&XceCVQ8Fw?X`5Ol!_c=QIGU&5S1l~Ov`K-H;8sl-|W z;OYt6L?mxy{52%p8sLmQKOc(Dq6~^Yd1$dNzErsWeD;t1p6*+ES z`Ed94LuC2u4&vsE$WH6QZ!baQ%n6C-{l)YKrqDX5nLeXV(p=Dh#E{fnj9@qLhMRvv z0($KP;Pd|gUZ$%_?=`P5oK7odf)+x_OTudezcT|}P{3=Kkz^KN98~pQhUxQehxJ5tVVJHq{kEM}XGl}Kt=aC}wN9_JikaS&;b&FigK&o5i{W5)@ zlV&UmgEHO4gvJLO$jspK?o_QjpJef7y{}iPOu1MxkPj=UU9v>A+bujzoPiH@>lT_t z@j=Oj5hTk0?&tx%CM|1ECHyt*uHb{W!IzUMQhkIGYOU*5sN|_Jio=gRgF{XxF$@KW za!ITywOg^=_N1|88t56UUlsT&Nsnr-+6UaKa81`LGo7a6~MtJ5R%2X)nyQA98BrmZRl zykK_;sU6Ou61J6LmcllxtuYTjso0K+xWc3p9+E`x_%amE_7nsu#>9+F6DG&^ZH=Wp z!e!!&Q0ROfS`q#hFX5d}G8s6Gvq=z_f{bBt z9v}{&DfUb4vJ33`7IjLDuRIKVy`coRn(@8b+%EY{dp8zlNwQ3gsR$aIq*%ocz8GbwY( zA_kqJTR+pqdWUGYrf;w<$1<_1vbp3H*~Ik%!-juDJ;zo_WmK}Fv7r1BU*S}s5LRkw zUDA0C+a~sJV@7#nLV086|9%h`%t$UV|zCd>s z@H28i#fD#KbCoc+D3kvLlEMh44%m5H1=3n6T6%%4rXOoA?LohB)3Jac8)7q$i5rT? zYaCAz;4Q_1!0+DVFFiP!r?abw=aF_Llw zwT@q~n^_$#GLCNTn<48_d(h9D42%x{;P6;u26=|9jH4LXV(P?YdGk$>cw-IUxSdTZ z!b;WC1{HnCsyBHF*|FK_b#G}JtEul_l)NvHybWGHAGrAMdm*fxQNlTSspj8jwy7?2 z3eApK2C;IL;T(pyuhtqyd~y1mtL%Fb=#ZWgvBt<(bm?#GzQ?Y2;?|j?yVEmsExNv# zK839r+U~RjzC`<0B`;EKwx{~>18;KZR8*vyvE`)ab+ z`{U_!cXLL9M2>8tiz%G7yXG>uyW%{=Y#zAw=Ww=1>JQ%eBg6dIg{*T6bldynnN>dB zPK~_TA!FM8ReHcK)Ode~-Wsc7ls@-1D zP{^$Lqn_$!mEfiBJsqgIz^-T#M7p!Hr4fKXrH|6N>xlMf5(K+ba-^aD=VI?RxC|vI zD0b>$>C{B4OshU-oEGNEOs^LDH&qMj&a_8T?H<;PaNCi%L2xjw;r2Rd|H`uxD(C_6 zbEh4g%Q*PWmiO5EOBD!tgkyi0vIOFJUIC(f45FdECPnO1?Cp>Nbn)x`BmP9+*Ysgk+8&ZAUovHb>BVwG zv5q(^lbq~7UQJAEE#NgX$dH1-Pu*$X_paa1M-xTg z&*r24_h%BK-_KDJL+{st#KuniaYB70OCu!ElX>3n+~cc&`^S&~-}i_g|MwdzfU~K# za*x{JN*|3vgglmi`4~~a>)|ktxoD6B>h9i8;9X8y&X5Ds>t|J;|MN;9*Y|DUG0(SD zIQ$3^N&n}#ZqE02n>JW-igM@G@9PLM&xDB4oH(HG_vPG8U=AV5CKTfB=~cn^A&3@C zfwg=bTJ7;A14LLjKDIcEFdB#7n{bP}HBve&cL?&5gLLY#Uub z2Mbm3)eG)F%+gn?ZclCWF1Z>h=w! ztloQ}6w-KT#}t$HiGq|#5Mxl;)=|i`E#v4InvOejkw~?}h62*GaYsecl^WTvY7a{Q zmG8}M8Rz(0M_e8%38golP#wux2r-nv88GY?{95P0J*|=b{Q!;wrH2gh7Sag$%xH|B zDjl=s(^N*K=USbC>G_B2O^ql*aj9WWdFFD2k&#q})Bq6f)YggC-LXKJn1Ny^84vy+o@68m!!s7YKXJTWwNQa(*tEg zIVt9>Ns36Y?=IgY(G^1DA=nfx*Jn+IXu7Wc2%-l&82g*JQ?R8r7nG1qbX@2iTIA?GysYKVrK zAxB$BVS+Kbih?1htUAXeNJ2$gem`9kK8lyD*CNs6fVNJxUJHcKu>>rhTfR7kEZaJJ5F{G2}1-auGmE^ zSE@euSUXfAV~h-82ARkr-^`&m;@)jkEUB;^nlg{b#X%b2tZS*P5K1>|o;zT7)ePoK z3)PmxR`R9(B3uSfOEu~_Jz;q?O_jGdOJ5BE9aH;_T{V)n@^MnCY-SGXa27#L%&S~* zwEn-|eTw(_-(F{_k;wPm*Uxib8h+8Od)SSy12$c4m@mFkThUI}O~e-LY5uej7U;zY z;XM`PN&P-3*#FLBoqVvw1ySU!C?V~#-cKg9u%v5DcI)vB@v(o*Y0$Dq*Ay|E?7aYT zrF$s-U6&+yXM{@pYy9XY6`1ssC%0To(m;gD-fD`0-U1aF=#b__m24A>AS2fg>TLF) zN8qgUx25QQbKo#-2Ob*_M?hjbO9?R#p6!cvq;OGMg_(Ie2g~apvv>*3UR(yR!$?M# z+zgoMtSs#7a*QIp=TeEFKT#baMd+BuBsChMkYf=FSM$dRT&A3kF0ziok&ES0VDPk# zRZIymg`_JI z$D;E83QIy>=rOzSg*$4V@m%m)r6zT6#L9G2(thb5p!G(k{Q60EuK&K2B~D3V+B@%ZGUS>>vNSt$ zGY9Gv2UuAa5{qska5;V{dy70Cxfs#)8dmoxMth761sn9i%9`>TG% zKTC$JnbB~VX68Z!sbpDvwXN9PBJ6K$KHFdLPiU_kBp*+lR9O`?gb3u zLTW=dLWB5|J{6sl_l9xvd2PpMK8ioqLE8e37QKA&^YXf#_fu(Vy8WDE&?CKKS!23h z=8FaH8&#b?l*PeOMN_$BB>`WeMdn&`otN24=Q&=%FdGl35i!F!#WPyo?48-_S1%uB zmAQ_06{R3X?_?)QVWY{0l9M5FwH+X@MBjfts8$WN#;7~JIL20_abQ#CSD~mBCbkN3 z4YDw$Q_y_;CoieV^Henfnl3*r2v~6-DegmWpB0^8tub{p)lh9!LI$M}T`IN|pGvUP z&Mni>D#zy6&EphOkLz9riJaHvg1-8!k}j{@hQlyo{x5loT_239w$(Z4OmSC1U1so+ zdE7#k#>*&zS>jPzOyS-omBykP17(pI5_QXlgCwNHuj>K-L|h)XU)Gu zmy&AsuIulXDz=X>9CWEvgWw9bF05;zWS!Z%!fx9GfS@(Np{wLN5xU%~TtN}2BCp(5 z!v$RJ=My`EXqAfQWGa!Xb8sZoka0uGC)DG0^@~i z*p`%Jnpry~^*hsNulC`Gs$Q>|sR4wMQzIZU9lpagd*y;Yf@?y|{K=hB`D1b@3ommd*x!hV-7QH*#Kkk0DZC%?iwV9$(6DjSI zY0PEgCTaCftz;jFjefNxmjy?wy&E}I>+}+7x!3Z(N$lUn@^Y6FHCtTH`a-o0F7P$2 z(E~GW5gJW4*lIK@QFjO-tohcJEnY2!)CE?PRcoKA@LWukv67V z5QEMVgfx)c*=R^JE%+wb2`PDsO}P*({&u1R)sQnuRy?DeTcH~pnm8Ax9^-7CIJEx_aYqTV}!^Orn`5figblbW7zB$~f>bunaMbNMfWbhCV<0%Ekie}iE)83;; z0$~F}?dVQC2Rau6%?f3W+$#`DgalihjZ{-(s|Ppfi_UGKrLxQdrs6I;3mtG?1xC*B zW%ZnNp)6j(s3^oPY$8mT4$qiOH~B~s^l@_PgrmyUzog|vuU@*V2MicAr1LAQOAbBY z#Raal|GD1bGXf@UGhKw){;wavWN2*%Y>;s4DBu8WEi zXwOzrS?d5OC^UOZAtDWyjU~FuY){=t4YEWAHLJCWs#;tO1Xaf?Hi|zrs&l3_gQrKx z877ASuCj<<)lN_(s}KW%V5hPMLnvo5>)i7Sgh1?wcDvh@plqjppn^ESEL23pLT#rJ z9GyNG1cAhwTlN*PEd^6GN&u+dxBQ7>)wpBgUiz(wUkgM}jC{h-uNJ{(F=l#hVJ8EO zj)@Q_Lxbldj}>)@CdzRd>21fbb3E!6Ln;k}O{Kq|pP0Q9?xZ3z2MLd+XBs87M_a9Q z8^G@u>2Yt8m2f#FRr{cock@ty!6z(ga z;A*k&J6W* zq{O=7Va*VkN|TkdX%0|uf@Z--EUZAx{;Fy&W?~^%v$})KsB?@nNcDus0=D6^+$IW; zw`tH!!WuC|5gJ#}8i>)c?d+l0*%>xYORMSlO1ZcIjZ8gk=z*I7nv{2WDd6gYp6+MS#(7hG! zHbSZZVB^f3H7}nVCmq0XNl2pF;4>*u8iFq}VinllIv#L|KNDFs1WkAu?OTl`&c={U zIDbYa0*X95<8Z~W-B$x+8i(#IpUaW*th%p(2tP{YoPhPHXi4Xz0?9k8n&Ve94hgM5 z2T(2%M#n+|InKd;gWstU=&JZyj-VMTk*FBd0)4Ga`!7yUk+a!lm{BnQA??fvR8PHS zRdI$Zq0{hw%pVLRo`5wNgSN`9LV5*xW|AENpodVqJ$0>ZYKH4F1v zVqu0#ju7_2S^Z)|*seKvs=@!E?(ljvyN#jI=Fpe2049W7J=8W~CRbJYE8O6=zqL}P ze-pOlRL})uamR(!JbtQg|MK&60=1!K0!ep~{RDze^kz+?8tWZFBFMjR;fvro^=&&n zZzVK_I~w@>1Sc>>YPHG!29v2m5{u)=rD5@&Fhzup+|LO5Cv1reSJ(mbsCd&RfWYZ( zOdyTdIORs?6ZJ*vYqG>PPY{GTl50wSJH$RbfF3mRN@z{CgluKge(aQNwnf(ic zug~p)x@aLUBcf(IzIbs?ZRkS%jSAdxJH zRg`C!ji_+2QzJ?eZeG|Ml{N2JEHw7=lhym8<8UlGI-9~`2}YrUSrFH)M#D@*lC=k4 zs|I}*HElrx%WP=;TcO@CiQBF#qcR5l4C$pwueaWmZp8M>d$$Z8(tjLWqB_rvW~k7t+X^VG|)Ju+KHTpPWZ zPo{rG9^w5Tut1?N(t64KToZdBJF791VwV2`>oU3b2Z}rBK$qn*2GfZ&Hf;JaFvpi0 zDH@t7D>OLbp5c---LUD*;0{>ceuO5%hDTH7_6idIN{x;t zQ3WlA8g!`eCe;3osCdc`o|ETlMR`bfDrSZ`fHT{xmK^%8W!zI68iiKe@1jwsGgk0( zC+t&-&w1x77S)7vljJ1k{rC3i@|!~dH6VqS_jvF+{Gl)pL4#Hl7tbLIk)<>MtCt+bkC4XHxpGpj8GEi%^eVyvZhR2P?aL3unCkIAI6|9<-B zq=p4$I3S%BlJ~mbe4Z{K=e#HR4&0CUSK)W`-HV_{pzZm*>pyO|uNSuK1L1QK6;k&+m^Nu zzjifz`RZ;+t#29gsh-E(E8)6s49{ge%L0? zSmF4aITp8zEg2s57r(juEKQ`o=H~lu{!1Aiwq{aUIonk^ZTy}kV7wsP57l3~Xnic> zpFO)f_=U-dYPtU=qc*1ffs^RQ_*cop#~U7#CF6_KNs+fF9;~lYNg7MKIK|K^y+c$j zH|#mAy>WQqtfrIyO7LaY+9$X0QIiV%u2oW@Q%F!-3if`JJ?wNK-t6#0?hMl8bsb%8 zMZ|1R6Hn$yoy-EnfBC7rKRkB2EQN;6A|-%l$Cl)ZjkslHwb6Ull)AxFnr8uUz7c!i(SJ%0sfNX| zO6Pxhriez5!EN%@sBsRR)3(rG=g%9424?OJW~>{t*CAhLe|vwQ*JW#Q^gv?} zXDlC5T9Xp>yK>qR!JfnE4jjQ;3W zSqY-9cjb4p#m4o!>nJAS=Q*EQ(l?Or1jX0iw7!-jUEvLQ`^rOSD!1*(W9wm%SMgmP zrZY}r3uMQzp!W|0{=;xm(OQb1iBtH-+d#~WfWL#ymqA&?syh;X?WP$dlm1>%TF}?S zTGhf)8CzEo!uyIYVl~+JhzBvF`bjqmvj>rdrEk`keF90+biAdyp;iV?4?k-$J$3yju#jM;4<_YjJNE4Uy)^&lzA|IlD9Rs59a`dR7sV_r!8P zUCT(gefA14km0}+SM!cX!#{4vzsKJK@)XMkoyKL`??a8e6}~!~2&y=6oFu03XG@>! z%ob(%@t7~{hmeCkFn--O)cmC$BIfqr&YA9abbq1?XP)I-gog($egzU8|5&7T5AOEw z-E~6I66h*t`QV)ia?}m?U{#%X~+ zI6qeNxLnc-g2|}_xxuIO#vTH;9DFHJe9VOp_R?_o9g(u;-0(w$DvPpR-xC=>9Q90Z zEJrPGGkVnpPvw{Sc8}OIcwqQvH0qYh)phsgY`U{tf=IaSh1xZ#Z3ApEc?;vl<`UkH zo}^?Irob`Y-M9p5fnR^mA8V!vlH9)xeIYU_CXq=O@s*W>_tO4aPBp&iN#J`8wI`-Y z{}mS4)cwbtS0&4eE#71aw4usHj|{qm#vhndEHW*($cWA&b<5-)p&p;m>C)&uzS+essTBb5{zNKGaMi@b97W zX!lN;uJoc>==+Jr4&jjtpEV=4UL|aXY;Ps}p=(HJ(>#;cl)pJl{82fzt3p&N7l&Sx z%=8A6dG#FO*lzr$XRMYFa6yD|vA_;DC@jvd_eP0XmLOqCRERXihvBg?_2qzTkDZ@dB?%(cYfjk}27Isdn}_*ATkS*f*;-T$Y%# z3&ti{Eh}*0%u_NZ ziST`xLT<0f8fy1gC&+?*9^2ObyvyVE`ciU_(UwGO!3Smh$bf+#*$|W$MqRa>eP?@#RvNnEM{W{(&(DS z?_8Jf^-uNnclOln>Q;TgW?jLEo07rV^`-uco!{NB&E>~j>y8&V$Sxq3+HIeuy40*U z7^hqr&h+ST2Pdt~&#TMt{Bfsd>HGC|c&W7X1W-Db_y_}+I6q&*_m-@gdj)jhsLv$m^%=@3sho~otbPAZ&G_n8o@p+mfzz>G+wi&$aUS42VFyYN>IbgWb>6%(wN3izfhCYw z`;*}Jvk`2c@QZRual83mCtLnir4`Z7iw3Y;Cer~5+W*stN&Z8Oh~mc?toPprXfsK( zkc$^z+iEW)1IaH{_!n~XN2?=^*8JPxK1fYQm&a2GPUxx~I_recOd5D3U7`Y!07>IJe3_5CR52mGO2;Z`w(1_eX$K3WfB7|6< zW!e(+cqTw3WnasLC`N83QcKlP<>n+dh<8YSpDwdu=pksKZt^up727$i!h7JG2W?zGiphx z47fjs&<=)L-Oo+%bj)rNBuHO-Org-@TQiNp<0tem=%R*#lo3!Kx>qufV^|p{QGG`( z$V~H%UleHxOo+O3dBa3e@YL^6h{J~@qG0mhjiT~kcelZKe=z*TwBgT$EGE5^DFxBE zENKX%;O~i$7sg3cu)C4#zC;Wf&73 zA0Vxo$+ozNZD|9{b}zip!VeZ7gAzS2{AKKnD$UgeqfU zi(}Ssf)rzJ@Errs-2>R7hHE^M{4&lPD|S;j(H-iRj|?lO7GTQ*pUR`y-#nv8nIZSH z$QM)D75AhPR;-}HO^Ol!a{{j{LNWeeIEdD%185#Ap1?g^1 zbKXFy{)0F=7Kb6}RLg7Rv>!85+`)RxG>Q<~yVPZ^lj?x3#|e3QhSEH!A7QnOp@a=; z_EY#B=tVmFPZ?vW1@yLDwsNJ**iS$s%ettaR3tMg5!}d(m8xV{3 z8LDL8T`sH^dH!MLJV=2G(bxek1A-+>*q-pV5VimpB@2<8bCern>anBv+5;xcn#7rxL=yP{izb&*6s?GNLe?L{`fMIoFnO&)H{Kd#BP#58D~Of+3UHLTP_byOePwZ6Ltg z1RcQ04K*kniap1vRs+MeWvcR!TR-UKtDgt7A-cZ;TE>4A!dhWjGV#hu&;;>U)DIfWR`eK9k;tnX?vl0 z*+zg}0ByuDBYnm7{23XaHt#cVrmm5}!cuK3EIV&X=O*iKCb!lT?s#tNem$)kl}ude z?m|*Bht0cahlQs^t$!6Vg-jVGAX4_@9QhHl!Zfs-%mQTN8E+Zo-CoIHIEFq*m^QO^}F*zny7aT@uZhjWAJXyepSHw>#pQ%>zW4MRv$fn+Y;T#`-d`qqt??y$X3E8wF4UnWa(i8`E1w*h!~TNW_^=ya5u8lm9)jF(do%q z^ZSM#1GO9Q2C|f4bIFd=B-fw@SrdyomV4_@;2E~)yn`T~!Q>YAoyoVnb_yg@{mLEH z?nd`~#9KC=vft*jp=)cTEWNIt`IVwkLoaa4mX zqa>QSqG z9-81YY)sxI9q;g+uDH!^N$@YO2s=sC^{C!E*&`>5UQA##T{s>D`$lk;?Ub1q6uYyu z3cOp}*+_qeFOrjS4-L*x%qeu{u#d?t433><>+hqJ3u}dzDv9ALoB;m3;)!Kgqfr{A zQb5$~!|H1o(?K{#uvADzmX_J#j+LdSs*>9e5DhS(0?SWBV#^P=5<%|=fe4^rBtV{H zcOJHZ3kNGe8(eQAtO((TLTb~rkzfh+S|dFvV{Z^R%;vGCmOtvL&jf#WdrKBP@l8a$-0Jb7CPP?y{+U%CuYqfxB3)P z@@H6Veb&v9Fomue)MGxN3(1bW-6AqyV_hkDSw^S3`)TN>26dnnXXPL1CSs0E;(vZR zTPGd)A$FyoI5k+BKpF~6Oc(2DVSsc*sJX1BY-w3#mp?mkW$F;Y`VEg>7;#-ncn3v# zDALzWM{^*YFo^I+Ge?t0P)EeGQqW?>kz>_jkZft*ZbB7;v6d+=BR{jxE zW`q97q0u=MoqyrMX=nP+j*2L1;ln<#%#*sIeZ16j~ah5-4x1P8t`W zR8pX#_$91z(6Th{`<_8hw`XKwwU=7Nr;>x?IkEsF$4oCp2w&$z_c1z>!FXoezgG-C zk)JTI*~}&4TRUbc$1ISw^)(<+xKh;Iurp4)n@FB17AhmV1pgjfIpd+^VauYkU3~0H z>cpIQO~d9>7s38c7PUyCVpJC-dJQCA7`aJ;u49Yc)myZeVieSO=fL*4*8T7*>{ES0 z40SU4hjVsjcU~RVH-FJx!ozAWD3P=S0FIW2vi2~+jrV<>OCIM=Pp}GxHlMVTqf~_h zsl@f1lN$xc#TO|EgtzcW-e|^9E~EhCaBLXPMh(G_OFRtblI9R1myz@{7aG#_JWmSq zBwAr7be|Pjl_u68ETp`+m-I41$IMDEVXJVx`U7|nY{S-#zLRX?ST9^Ecq?Y3qHm}S zI5;Q667#yPG*DsDS3|r|$w9`TpdmCaKSJWiO=2D2%`d25c z!=juQb}LZle~o=1EK^r`+b};rStx_8A~p|Ns_8*kRtXWfCYEwMQ9IEUz{Ta`In8={#S;b^RqJoTfIipIF!XORrB%&`YwMlPpnI{>7t zXNpZYH65P{F^-`T5miWT}8Yow&MTR zenK9(bXmUSb~ZcyhGHAl&2#(sjMY*TiUEe-c#Oj@Or z-BxJJwFh%msA=HYFcr>8WBXriLpCW%*Q&Hs1?4K5KZ7ON4SnRPe6vmykHq~->he%c zEas=yiIt#lqO>;;e*Z5)-rCNT`4=*O)3^6m;!M{3x4#x5&$_d35PWBiL?zkPe)EX5 zz%|N!b3@we9^Q^eRH2#C%|Xux*$$_*`8eM15K$Yz7Eivrbo2hlVKb6-0^+o; z+C;zDk|=QLN1<8}PrEeUnxkS!8OGl^L^a>;ldQ_daVtGtF3owTY(C*oQu<@VJ|S!j*Xx)g{`X1{ zdIOl+K1BNPEb=4n-TZF^I<9tE-HkhWbmW>L1EXClIDrKUq>3x2n9t#gwpc1=mU)eE z{SH^o=y6Z_)*hyTWa9~$+EYM<-M3BZ-=1<8b_9S}7_ICHnwg{v3z!Zo{{3BpNGQ?+ zbS2KNd+|+qOehWAUWcWu*71dqjGq0$a(r*7?1+W+O>n)BRqBqXN1vog9X%#SYPW$( zw7kW3N~e*ijE^becpR0thgMocu&8yJ1}mG_a%!G)@vQDF6rYGD_kqmdTjGi=mp;FK zY9ReixZV3XKn`zwehJppcClg^(nqS`H&nMc{ON7o(=bOzlcJ~CrD>{$tJoVBz5!)X z?`%Nug#EhGrAa2wwL&4!PM=>n?}gsS?Dler?kOVV#4m&J<)Y{va=&xUb>4u7ttUa+ zSKZbvZDZ`V>Kel;kGe%c(^vNz_+(@ihSMFRjB3v)-m*h7r=^qDTE79snyz18*A~*b zs*|3d6Ri30-fbC>M;SMcZp_Y10h)q)Zq!rSQAO|C4ojAJ^I+ljA^Qd&jpwV;a|_vw z^=Vl2<^TEf6tv&0PtZ|Cbjqx-BG;m8=+~p#{=BU7>!;*2Hh{X`Q~SH|)Pj(r4rqx= zf09<~a`9LzncDyCbPu5)lTH&sT?$hwf+VUpHV?Jy&i$h$iAJDnH}FOSBCi&%J?bQl zS`vdNDOi^r@jN2F-xGeQSyg^w#td%#FI_zSawJ)?d5qVxQ8#bTEs7W{VMJ|Ro6pD3 zeeQ~H==2uR&&RL*=jU$H)6Lz+dWa7+ZyBslZfIAEGOsIdKOEok)C&bBhqKl3Kj{K5 z1OMLUV%2I%rZ&Z4!==LI8&vDFtC`xiyUP&Jy_di<@$lyu-~(JR1Dx z53c-7iP?V2cW+3UnWNiVUd*xvBrCVe%3D~@1r|@X=SQ#dSc&qSOIhh=mpCHZ58dj8 z>Cm9(t~p{|V%29s4n&EEssED?X#T0@ug-Z~*y_DG8f0*fE~JLe38XeEmf&pR9=Gwr zEWBvuArT7EdNEzG8&m$qnuA|*ZT@0qj58^-#*5|A+$E;%58FdV#dkF@@Rv#*?2WZmb zf;G=ad11w+1B_YNcJFQYv>LMB1-9X}ME43~R>oz3UiqDR8z5KclspB$FO%RCg*@$O zv%5vr7m25N=bezx z<+Hfv=V2FR#Tz8=2SE-vErVPJPc`IEfw`RT*GSyOg~E6}-dbdx!AV4RaGXbw z3ZXD|G)^64!skUK*Ma#*MK|=mz_+Wa6J1xrsyOw~?=O%aieP5uUz}brGp={YUChGx zu!qS-diVi3B^-i?5!MQ zzu%D?OXZMz?+q3Hly`F&{{;m%RW1K^yc<0ZA83e1uF*?@;V~5N^8V}I|Cf=k&c5BK ziDaS{k!CED=U%ra)`~JbiqkS!qc2xNmM9Z{p9s$y@!faDXX%Ecn(9|lIH94cQ5DfN zjx5CF>hCUf#mI#_B{!v{S*d}eO2$KehTDlavnU7|$`V!@mV3h}GW3L%${%Lv&v<7} z%=6CbXL$3lQ>Ct&*p?oEcnF&Cl@X*nCj^b{a<`OAc0e@PtS z{1CarKQ<)5QvA){Cg5b+7ZBnJT!%p_XI>W$74@c1r%NX{YxH^|hRX}4s@?Q)#uHWG zc!(-V-x7R&IStn`-6&JRFiKv?mdIB9Z$WS5_{5R_r(5<-;a=jfvf2|Sdvg@m3!2m^ z>7UsAFb=m)GvCx%ZIU#^f~BuXT!f};P@L6)9P0~_M2S*itYfONNraoePb*0)THh@q>Qsw3~#T4u#^ z$%9^fCng{mUxQd~mok^0BHJ`96|=@-F|PMngFg|*R=NnI8@;j%GY|qg6s4lLdau-w zQnG{OVTbQr6^_GkQ-l8VNF8QLhcpd2D0Unk85TQ6SKF57E%Zfl0UNF78QH1st{S|D zuAyA}y4Ye|Y&SZw$UDY^y17y7am^USCIw-_3>g&5s30v+ACGCEU3v7!ise(@-Gn5G z)X7tuS*+6a1S#e#&`~T!;?y%v6I-EJw4^ZHTlQ_sWoY$_b|^Cb@QOw^3Z9X z(*~@WOLL?P;K&GmDwD;Q4PUdOS$IV}#j4gci3-|Jqcp?+AjNYr8|NBIG`NZ~RP#p#2-kz!O(#kmd0m&VoLQC0l$i(VleL~{ERf-T7{+uLXN|n*zy#s6 znx_q2;#TQ6N!h1ok$CALK?pWcDlsXz4utiao3TFg%oJ&o{HQy>ZGDE&Am6<~Jx6D6 z-6as^{I{Gh)}kiZp?kV9G!;Y8n2kfv;n=s4v###In~&l9cc1|zXH(zd>NvG9(0KA& zQ_kVQH_I=9^i+4530Ky6iHN@NjJI3s=M49Ko6F~hr%iPEI31pef)~^=lk$qLVOk3V z^pYIL%P9b8Wah0u3Yy}#+Z_h>ee)0x&T+q91QE`VvN#G9=ZYd$&*2@OAaa=gs~C9n zc+J3?N)%2W165)8j0ZKdRIpk-C6#?yB*O~df?ixBZum12$A8~KH*X*X%B@GLt1#^? zq90{+a{FA#IAh~lfQ3&$mpiKRn0~QNOm}VO*cj02uEqD+g!EETg2Y65bx&dR1P@^E zV=C~Hj3}rdJB?cggwS=$^H(22dH}fzG(F?B6Sif0cX42dIx`)uA>tE-E z)L%{!8U0zS$-wjx3DGTS%nD1!gz0K=D6XZn`Hz|8ABM!9?ix1xnzed=I_jdk!4apv zVP0goid^DD8|!V%B?>34J?wVlyNGUYGftpnMtO6J5xWc+q3dKPP}{<{%aP-c>XYZI zlHu{Qu(ZD-yY5_je$$lfYQiOkD49_h3_HW2wr$Wz=Pe%pv(Xbm;v!}lRl6OQ$nO47 z1Fi>VJO%N1p!l3VsOnFPk17};Hyab&RXtE6SZA9}*l4Z6)T@TF39r>YSIIi7Gxt!p z^mUmSOo?HmCGdTW?Y#(2Jn%e4ZZVxh142NbpNqB|q+8>$ zvFomttS*ygY1tIPQE9Leg!qeXcvp+!6h4_dZ|RE|$D&XfUI`(V5-1iDOu zd1;!iT(N#m5k6?U6MIDqwy~*8DEI2Y(cvOz3@&NDvD?}1m}8FP%_aWWso*2gi+AX8 z0-Fv^_a46A^pqnyNP=_k3HOKh*%z+Zm0rjmu?00`7@k4f_Gts>+-ihhRa<~3L9;4n zay{i)%D1dna-A`TLErB4E%w7?t_gn5EvGUso4Rf4dM46(9AgznOr)D(z--+-duC3jGF{tq z?&a)EvvpY;dv~!Zd512u>5=kir#nZ3VdU#>8Jur|?Y4Uv&EHL+$* zlIBKcBg5!u1x7iza0=*df~JZ&52#2JL*kmXG{w$$!=1?1lWx}gtMHQ|zmof>y^u;l zwP=Jw1nN5mj5adld)u3-fP^ARQ6zI^HuzGJm}?f)0#R`Q48`gu*cs&hITsu@vcW_l z&;!cYVi{LRE4>mS=KEah*1`VCoJtusa2{Ide!K;AZc03$yv1s-?rotWLk@*ZB9AO8 ziDpK9G&kj@GRUj>SgRAqtP_-4Zx^R%V#F}EjNF+$%eU3AB~LIEf{pW1!qAnChO-tm z=0|{x49(oxD@H}I=3khU$J3Hi!qZB6T=6cO(X4k;r$fQ?b5B7#03QbrOi=I^3DXCR zWioTmWHy-A*>d(atW>SG!5dV~_%{dR0U`0^sKk=mC%gtQu!7fDfEU%SfAMd{!Wwgo zjtUaESTOWro+yr39vmTY0w14Hs6B-mArz#2Qq-vCTlFkHttA^42X<(|AQx#_;sCr& z+XePtc)x*qaYI+A~>KH`HQ1uTN^MBJ^-Ji75 zb2ts{sDT9C3T7XmT8LgpQu&tDvjb#pJkhfPfo)oq8!PQT!AVRIlqAQ)0sc+gC1%#3 z!U=zz#>NmT$u5EgMrtv|3lS~wj;s#K8I2J<$s8idU7M9cMU)Z$nQ%tM-ly-&YEA>= zwzM5Y$JH_O8fj_h3sYk|>9fxDzf!fb@hzHMgUOgvK!*2_VL z9g&F={6DtNAxe;F%c5!9wzJZ@#D`}ZtXOk#H9t@F;^o8gvQ z8-ykiTmw&G=>gK+1%yAG4DH>XqGYvBb zuvz^{`?M-zvw4IMbHp7Nvh3&xi%La)l6CrN1zpdZwvlAi@K6MS*k(8poQ3rtZ7Q;f zQOA|w(+blC+mgy`Q^vniQm3jEwL$<+M$Ks}~jzAkH9c+`~J`svt2FO$Q zV5rEYAKyz6eg5Zi0O6K{kb8NkBPicV(!gTdl<<(s5^(8R2s0hSxqE+}n(RwhmSYJd zjUrl$s2n%8b83lK7sloRZhU|AUVD9A?=oY-YQIeH*4fxGCTP^!L}c^%y;LNQtCFPI z)gX-B9*)Su7?x@vOumzTMw*N5S2p1G0d8 zrrBBc0^9?7oOHQJ4Zx}z0laCVvayVQs_Pk)yl2hRZ>6b;8F$kqX5xUnBsA*`#SgKJ zc6oDl&nHe+K#4U5m8onS;;uSmp`}UJ<^GCaBmr5b&BZe?N?|Ys4o7=!GOwegxk#@V zX;iBEL;1rP(>MJ4SouNEnj=ivA}flJr`5TrGWMY$Jg(ei0B7fQ#J8DT@zUr| zzAoR}%U-yix6PSbKK!rO&cM}O5Bt-9kM}};?|i%6?T;T)T=-o*pP{L%UoU&juQ$8z zL*k`ku%KZfxBM92e#f$XzIonE-C$Un0E>t;eQwM?7a%-t&(ojyzb5vd+1q-)Om5FN z-FCZeuCJB!hN9CDQ9zn0K_7{lXwivH3a^l5D8^Ruc&ya=ebrhMaUb3ZsIiv5kQIg& z@EWWTAMU)^4JnUZ_kz2@_2Doo2!`@@BzgKtCW=gH!EHE9y7MEEeNdE> z`szyTU39vDM1D!zoww8zOKU@OcY&ksywqv%yi*p4xBYF=e_I!ULW<>#8P}zmyB&)+ z>K4-;W?ULs_C#Ae1}C@fXtnLHpPf1R;%8tlPuK{Y%VE#isu+&zl57YgCK57Y&AZ?Q z+V`KVU#<)wXtg1zj7NHr)8)ae-+ZI0GBnsiAe$oCy6PPbC&JF?2$W1>zxdQ*N0#|n zUef|eox}i=;moGWQRT9Ex>G!#v|;&EH-Q+5x534u7>{f5IK1RGAl!${C$&36BzMiZ z6I7hbE!7O!0aitBRouHAJbPB|G%HgyXixF$@8pL};zb@P zgf5R*zlu*!7n?N`GRpVEG3K8X!9dbBf&%^WKsXP3Ee4;W9JDPX*_Ef+EelnyDmX{n zuK@K%Mjiek`7@_T^BdVn&CrH1?5NU=L}xFXtZ*jZt8Sr{U~1)39Cr(BQJ!%t9S6RK zBaILm0XWvcc_+dP+8-k8m&N`#T@5Fq%_Ja%>@RSE!RkBMo<~jnp)uWqDNSX4R29A6 zAO4I?S}Yo)hdf(u>JDNor9tin`wfV>nHaJxE5smtfZ?0q%VQ`wRhpMI z>?;rx{RgUJ5n6DKlsgI88|Jf{?B_8zkK3=>HJ!nlNBOOATS?!NMFaY>He?@(N}=6q zQUvQW_G~a*3f-TM4H2VkA?(2&-M$3|u8IZ=OW;Cr&;qOi7-3Cpl3N`yXQYsN%Re)} z?kAaH@}aQbF}EjDdI#)#E)4#*@9eX_tBrJDEez?`wWE8K$F9`nrAOS4Wd0kggyB3? z_zaMKmKoe$Y#MELd7op6y)ro|)MThIkbr|}OWK4V-WKFU<~^Cql_-UIr{}|tA3Dus z@Z~sxNvbS(DNi6|?Nf0bi6~vgURjvz@8X^1p=B%P>2A*3(ENn9cF6w&^b3?L;5F`+ zk;)%_%$M41sLa!3(*ON<&1^tsZYUz3pIWkXUyyjU_BlhGzSGMoOVlS;Km7K z(Fh)Z$g~+B>==tWKh!tuG4>dEb|ejJBCv;yV^?yFF4%#b%gtrQ7IK!_XnRml&=|vJ zc<{*nPqd{i3Rr;&!Y9bnm}`uz$NOwPm&*$=6?p%ErzNbMV%95fiE5aLL2H zQ+H%il25)9gU)kb10*(JlPA2qpkZ3X>&0PaIkrIPC(Wb%*}Qx@!okUIGLaQ@f(~!TrjEti`!@Q zc5E-ZDfg;&sc!4G)lh{2@#p4te{YuqLJ?){#`#9`vFYgRn|_&D&71}n1rVKP{;mfX zdu##R1p#fGsdpGcxeb^zX`zDlpObq_jfG2<%Dfthx*uaC@x)K~9xV$`xa%Z}72(-- zQJ|6GttP1zHQ7I0)wFP^@Pn$K-zt{~e@qDocMRvhxpKFDe?I$NTj2+`gz~g5nrk^| zHY4-4z8@YxbGO@n2RC1DyDV$xz;qwDJDXRw@C@rabGsPcUS0xyeU8%<7Lo%9-&}Nm zF^Ztcu=`VUr+EHMM7nGfzKFJeZc7Em?ykAtR)XJpOQ_%kygS1K$VB;8-i%I!rn}fc zNc{UHZoePqzK}{d^Qs2qJfwU_T#7+{T&r=>eN(}Hv_7tw1={WMgt30*W;u_7^)^60SfC@KkS~biR7*!T=YIIAE}i3W5edBl%i3mij&e*7jlf{s<{HSzTby zRny*$F;#Ho%`GuxtmxL0mhvqoOkGi0NrrFgCqv1?Wq|DFO=caRe3H-({Y5!8!NR zg`uxr$~7L%Ut{A!lV~kuMSfL8+raLwEivjV?+DlNuq3@!W*haz}0x`nSQ7= z+rNTuw#v&oDA3OVH{4COt1FglwQ1{QxHnyCOh^2m*VUxm5nR%Bsoq{qS#G!U=WMp0 zY#ZJ*UHBR@OH9xdq!kpK{l8nBdHnbyfKQk8YA8)B^E)qm*#e?LM5 z>iE_Yu+9DTo8A`pU-$<5Omz)`2Xg)S3C!| zpB=ahlIsF>W){JiF51~Hq1zHD2)p(+Li0$A-^xmHYN}&xNoxM|I+26#8u*5WjOkS_ z1!^$`-WrF5XkJ1`Ta|uDxI;es6aKu~ytpD<)c?Fk2uXjZ`{z&fZKex|Jyt}Uc#`Qd z_Gu|3X?u>!wQ9SMp^Ecn^DbN;tK+7dx;RZ-XJ(~i8~w5#z?=DvwE+E{d9Aev=HO8Q;ARPcm&*ZF_I1w`=A0 zuIcrDXo1}zW)pp!rH(wee=Ogw_I6`T|BhS?T6cv3GyvK(IlZ*5al{*IooAlRD}K4L zZ7NiwZSHWbE1=zGKalBe9CPdVt^6{n{XU21>klD{CQi!c)S@C*DkZ)-)JmpwLBw+8 zJ7!y0B!g~h?V_w_W06^!aA(7n4womo-zMAeT&meg4a-1=Lt}%dp+Cyf69P>RvQs1c&}+BGGb)T1RNnb<9uX#kZ{`JbgA; zv)uv9`wWe)hEK;S!{Y5nE&^GIj~ZeXnG-4;P86^}hjW&NAUcPc6O zV3%;l+-7!et?ZDs)@lq2?m1gH7cFdZ;%`=MEeNC>hK6s!w-HZwD&2Z@vCtqv30Le61so{UufhTokU@fe}b9B7c67(2E%vMY=-dA_! zbqS@M^mgFr*G~!!bM%#t!irrNBkC4fnxtIDkPr`b?KD8NO$77>9yP2>YBvDM{PQ8} zDj>e34B@5S5W%ZW82`+*_masYYxrh zF+yc&yPN&#p;H8ozYPZ(JsZKRC-Ejumn1}`8og{;3+eMCb_S-+3II6Ghd3=QXX6A9`GBQJ=H!1H!CA7f=UjY(7jZ1PyJM zAyx4KGD14m84*VSRHy0M6j!$aaZl`;lks+>9GN)`;1=1pq;y7oF{8ZFL+R~>x?+3EbY;Ct+|RO zI@E*97QTjXcxGgU3x5_Gls?Q-PGEBrXagETL$;(xv|se3pk1~(F|=%RgvqC4<4_g&_QIJlRmIy;h&U)46j$5m*d zURtv5e`T{aZ!V$IQB~sH=og5YUAd@42TyFTFiW=@7i@*84D$!p8Cmc@m~JVK12t;} z?2fPxmZ_Ly=YZnRf0D`0W34w?C)_zL;LQ|4DmgnS{|K-UN7u>koz?-2hV$gu^r8bi z^wIKw9Qn{_(GUZ_qvKB!VS7FpRMbM7Y8YsvagN3H?HZp2nBSH zVx@-oSGfW59_a{G^&`O?THR$Qr=LaE<-cC$5dOTZDKIHY5mBQ8S|@ac0plD(BHhJ* zh{g|8Fkfb*#|;7ic0AkUgO{LHggmZu3sX}K=n4Qg&x0F?%%|V#stYheD*ii+1RRO7 zS>He=ZIX&)N(tkpbYCJu1-4PlSk9YBy&X%ZytgdPJllB0Ic zZauBTX&~#~e~hHh7CZI^DQ7uDb;D6PB;2RvnOq1`W&nCV)N3QIA{YiIz%=7v9{2B> z+m}?|w1b;gk05UrIL?=l9{dr@Rf2X`o*ikS0zmxw@E{&RcO;M)9byth9`U7Goob$r zMV-l89TN~h$0Wk1JcO%X-<^9*8r95_FsNV44*3b2yjLu0R71PrKpFGL3FU$(JR3TS zyJ%20iPG8C&LrdonTN@j3&1R14s2;C5{4W3>-0smw&6&^A7pub$!;2lcCfPhBa`mV zpLYN+S0TT{$~+ij3j7n^5)oz1ENJ;mf=;f=iG%Qc%!&apP+h6ECWOf{x#NCte59C^ zh6R_q<5e}Aho@m8(WV4jPKaGVlM15Iohfs2tB_`>0Zz_N~~sa1y-p`YLv? zQ+wzj+=ip;i)EK!eObz5nP32irLw-i!JVY@DU0Ux1<0dg#>||+i!(lx^Q>8f$ALG? zWW>p)wm?#%9B(LqZ={1!wn;7osOQwkza z^(rnBf4iTFMCA3-$cfG{FK)fphxj9&fQ}J(K9VO4E;H$J3B=PksKWz4?7A9~xC*)y zBrL|qZu!h1#I zz%8oFBaRp*pS%=t#J-0p{E;vXe!^d*iwdfADi$ggdAAzJrC@sD`th=kq%y75t5qv_ zHUw?1Lld9Dy7)j~etHi;|*8byP%__Ol%YHd_C-K8xy{St&ZnTsXJ=j--n z{jfm0fel+CI>e7{&rqf-cS##_QHqt{e3Ih$rzcu`;)3}cOPXU9+P|4m>p0SAWM!i9 zOJ_GCS4FP{j~$=e@eAL58+evCCbB=;wTR%Zj_d{e1UZ+9$$6G1>ZSW&B+8(?d|@H9 zbHWeiF}tv)=TNSVLr*HnR)1tv zqE3;Pk@z;%DbL;W)2TQR25g_aBS>d)X?))viZTTc%yk0G{JW)&}q zH6buhCh;h&>|8wlkm!(*Jg@sl%B(94ssP0PE;Zz?@arL#H zj%HkPiC@Lww*5@-ngG6s`#s_H3&ju&2eO-5(AxM;+sTDzoLtBf0Vjg5mF z_BqbL`iEB#RA8*$jxt5^lbykvc_VgR;-KcJhIYoI_pRE|QYyJgiAG6#`L0ftXCZf@ z4)!)*?+*(sRM3bzXCNXm&%J#+rvR&Ebf)X-4Q)f=*xA9d+2o!(Ro)KsUSFVB>LVa! z-MENZ zyZJ&xpm$jZ`ac3WjHIQ}G8S*W6!5b^Vs>76n)DKmTt|i1-0I6ETMpbn5uWUCJ5Efh zrNf`Z)O%? zw|SO-U2OlF?1NtCu#=Y75Ftg({HfkH$_uR=Oz9D1IS%Gft&+u}tu^(04q~8+K_g!A z0L*oR2J>>Jmg2|4WM!zk{LBklnY%*-sAB#A-bl-+Kl@x52oO>1#HVsy8etQxZZW{O zf+;3T7j$=b&M(F5;ho}bAivZkJd~vDfHVv9r1?}Y)Uqf=S7smeGsIV$pK=g|9KO&} z(%Ro=fQrEydb=y9yPz7$@1Y2(E9@?NDPZ*2ZbrAdi+Q-9s8thnul9AHX@1$5beP2j z9YMuNT)eFA16k`X?B~R~GFjDc*Z$rxGgdLMsEK{&iH_MQK%=E9TGg@%&*Z>uURKbe z>)b%v4g279r`F^?Rd>7JG{OBAc}7oOxUBB2Xc*^$sw(W$#RMJ6ijUZp_PmA~^;PSB z7Oa=eN>H+6*hlDYc6s$_a(sVQ(K+D#E9Uywd9|{jbI+1>kj$zM1VVUPY!V>9D6tQ} z6lv+3F;afIy%GKef%tFHx~-U*ZIySAqTU;aW=^G^hviwldi6d9og)wZno=<>m}Sbq z3jm{=BSz~jdU)8N!^PhztP5#h=~&3(U$G1ZXo2P_jblqc6hV1RT_V+AS?_M=nnH>ibnO`@oZ{Wb=FF!vhNuPWv$>XJri_?SxUY=LF$bxtj08Nb?^b zdQ{bTrs%7AO@Ldjvj<@wP$w2HJ2LtSfy^kG@J*+TS|luf9vIN2cAs!A_I!aSPqmWB z&Zo4pq#&-?9+`!I6!l^hJR*fXFG4m+FfH-j2B^w*BuWk2C-dkf6Sp=jyqimGjH}Dn zqb$72kl_U4O7d@rXUdtx*ill69Df+CGvV_biHsf%%OSV4Y2%!EHzb^1&A8p)E3o${Fm(gRCcoLt^T#Z)@6A zD4~7v`rkXP;c4r(IVpgk_$SZ7h&b^Ds`4k_#^U6zJ2_h^ddSJ8`-jqe$4q4F@$rUn z^YavP9V6v%A3C|93GZ1vi7;lwyHN69l*xdRa_}a2Y6q~M2i3g%HbQd@@a9CjtCf2a z?hhJcI4LMRA!0Jm{G9~5l-Jm+e4)@ulr@(;=y3VO1`HP}rpU6txKqx{R7}hB_IAaL z+sU^V8Q=K-o2>ywVI^z%&#Oxd`=79BV>U)s6M9p2T6$v>V?$FGqyP3`s?A1jilX$q z)~-o=*6CM`Y1UpR&*vLM6OzbSXnN3(L>1p_YFLn%ioSqV6O0yz+InsXp#hP8BT`sw z45CSHezCl?{EF3TU~vkKs(f|4b5_xg1fNYv{o=$67bH-o0+pAv_fGL^B}C0kfvWoLV@leC3(dO z?@&HvDfmksWCzJ5W*N>Xt`)=MA5QZOk0Tpig#XT*Cv6B-;-B{;j?XS8Ry0{2#j#ny zLUKj~G{EyF^xa|acJ?VWfG8V8vfyOvMmRyNLc++NB4+SA_$O0tLZW_K8AO=Kq#^K!NRn2aaq)BX01dZrL(*zckQYBB|Cej6{Ah9_u_u00uAK)}JiXvm;n zE`s7AT|gv$eiz=*<4rhqa&CC%Ka8cQx!6iQ`kZ}O-j$-7tsfT%Ku z`7DdofrkSD#0-Q*$t&w+7~S{fC1zP z+E%;k;imN92~iBgcDMQfJuvtA*#5er%;J7LtUWd3>mR&&d;j|KOe#(?Mu28HF&m9u zAGfn&P8xUN9oPWFGHGfLrybBjeRILIO)0p=LiK8lvP-#xZ4B6@JZznO%ZBPv8EKVr zTco(isAjEF?Wt%lSzjd#ybyv$w7g?cUh6$&F$p=gNnIG8nhwQGXLGzxPGQd2JC@xv5IA$I*=R2; z&0&MHLNAXf{f)KxNaHqW#8^w#3B3+Z&eWx^zyPKW8+f=$+g7j8xGl?&))CJn zJ) zXXO=Sy&AN`(19RlHNCfS}Z+Bz^ zx)K&;1AGT*#3epcFy_!YfSCd7kKjy9y+#R(n>vk919$=_M!>63x6}d$F!Dki<{uSB z3JsKSw%*Ttha0TgOr zWNy(5PqxUfTXbmA?Y8=H94l+ST$sxi7oVJtiyf$Mt<=FaP0L zAze)GPoXg7`y{wl>?MX9Pf#?seX4#5Mp_SQ-r4iCjcHlr)M-hi+^- zaV;BO!#@mOjnRey1c`$Fdi**3s8)>Ci+)pv&}@KkAtc~sW+a)p&TS@3V@9(7Rlt&e zd_CW!{3K&uVF2JLq+N(91}@Ax4_(v^i3gK4Zyt$`ynMvdaw$yHl|Vr}ccZ_Ey-MkJ zdIPNjVZTV7$PPpz8GJW_w#wpp`g29|TrI6KVRg=|hbhWGUK$OjQHETK)~mD8vbIKN z>(Ac4PPh0V2M@zw>6DGc# zbN2?3p8$Z6*7D!TR=b79LWZLKyv--=<(0j4GFGAuD~roHU0LIigH}yH=9K2wy2EC1 zzz55anpjw&#yXv2d&^sa&YmdqZ#eXO@l_3S1I^nwvWA4Rn-XO~*h%ws2Gu6G7A}w* z2-8xLEqHdeFfTcKF8w}1DI^;Qyr4^XrCK!D@v^@t<*yKvO$@JQz&U|v{rpL$L~%o_~iVzx{;WMQq(@Y(g`m?%~?TXWesd$9jTkXrz(bCjIFN=%N1J zWbS^1bGXhO1m5RgK}-STcz;xLi*fSR5o2SDwM5{Qw=!e<>?D7y??INgI%Hu5dJiHL zw%Gi^Fw9uQVPSmiDRgy)1gL<~g&h+I4(+S(LFV8(10=G@LnefY`rNtJ<$hZ2a=%FKnfz(Ee;3SyeD@-_ReMo+JcOyZPi{mCr5bJ7>Vw#gO&pDEG zPlXSODxjpamBJ=vj^&_cJq)XIw1e>uWLxzQwTCy8$NrGi2IK%dFKokB3P3hUXqRY2 zu59BFYWC2rNXE~yj4s$CVd$PTibk=)i)Wdr#YMLM@;W?fElTe*1^SCGe)Cu&67||H z)WxCQ@7~o&B{c*P?Aecv*eJtk%UG+w->&UEXB8Q;-};fXt)j3C>B(o&5{%-tKz03GzUbd7x-rADbX{i%KXM~m-m0u;y!?~w z*gWcy`9104p7}EV6*qRL?+JxH{BNqRLZSGi6fh_MtTo>UtEFeE!66#m#ALJuc1vap zAb%WR-9wG81?3Z`G+6lF`E#^k)tTe8`DJ)=8IwHQTvNWR)q!NH*|Bdm1++E`opYDW zs|D+!&kSpKau=9?Nj=jdb-w9bi9JQ5ZHa{(k3b#kq##QVOP z{r!H({Plh~zBlvzd|B1Q_x`{?&Og;VuXvn2VM%J8lpHUQzXHOO^EX6E@)ZUx85UD+ zcYa_%og*7nZXdc=ST<(-m9BJ{^eGCX!S((LhFCB4{e8*Zzgw_gkzr`(bwFnkU!tmWnXIkLiQPK`$ABjFaZMjBWp=G^@`sTKSE z`F2*mJ8C4LN*7vKcbm#ehr&PhO{|GD`FlZu3iY&Trqg=)P{?^Kk78>RVh>dOgEcgW zFPPu61KUwkppC4e?hHtPet=O%q0F4wp3F`vN$r4Vq8+OA(S*YW9pNDD$z#$n0^PW< zcia|E+*~OMk_7@5yZ|BQSF_w%v9JaYYH}dy5@rnI2Y~?(dA!8lrYrALtKw&&8KWKE zNFide_XhC(UaTIIloty=4HK)K;`Ell$TNtMdS+2_xk}Y=ynd(Z=H)w=c8YRW;I`7OjUzH-5rYI_Y1sjxe5694OGWjd=}?`ZAptSe%d4=9 zIdAynHkIVF7o9}wb9-5#W`e`VD|bhVCn^Avb?h*90;hL{RQwh)IV5;XBNFnknaU_nnpbJ7 zH*xGl^^J1;K!_2dUxIg}B2gvYOOFf*gOVOob}=<&;&wDvdwn;OT!JA-F@yJVtz?u6loW0E^(eb8$ZnZs7L z=0UYeYirqx1fTPclvgz3(sLoQylsTM_k6GtE)u0{dX@WV!AQDa)CA7rbkc3nj#fW^ zp^FxJ(2g4P^wC7YG>OcbZh*0eKlzY4fZ^t1oy1^WA;Yb_PFfA>)RBZ}+Kb38fz|9) z!_3~|(agX-gUe2ywHDO5yErFSxyR|W4HLO^WV;g8S8UB>Pwu)on`kw zoeE(yym2wli8bsVja$AZs(w=gGs51aimzUucjamz2S6f*{!`p>(9Gu@r)Dj=ym&YG zhmXSL>SwA4NEQV6oPLAyvU0sYo_n_&xVA^+t^aWSpnfEFm-w93_WT^H_7 z8)BVLxpHM{1!&ehz=;xFXtSRWvTGs3``mif+;O|%hti))G^`dbQ+G?-EpbFrhvwVr z2Cr$HADuo}{zUi?XgAN=c3j=F3bo|&M4-9kKH8q}dsoCm=e3+W3u2DB@nlSV6&-tz z={MdJP~Ol?w-P|jghA4pUt@PBRx)x?^x0{Q%3%vlo?vVXT6yWrWkEghHeAQ^H@)Km z_I3Y)d=l5bTDXlgNnZ<7ZraUa1mTA9%a+iDo^c@emBVQYF8hv<-0Ud_~BR;Q#Tb6M8pfU`N;5x;J^wb8Mrw*FZt? z1>#97SDcd-|7_TZa~>fbArXWg#VG{<06K0O!3p@xTpgJmbypB+6p?IpuLHi+p?9j| z*XnlPzW$>eGv$PT#=FXqKazC6*C2S^L?2FXPad1&1U)vSy%)x(&Pe(+%9Vnb(!s|l z*-4{;2QChpYd$D5^m~g??Dr2)LvK(g8J9nVa8G$jb`23fH|Z0WQ<2_|tI&5z8Ox2# zs4rhpzNxRLQ+1_E&zs^^`?>AlZ7c1=Govzg7Cj1+Nsgf^5Hd%;K(RibhlOw)uUfY7 zVcZVgZ%pt{7q#6wcGy$(V#FdtX=V`Uo=bvPH z2~5NKK5bs-7G+j-g89m0+>4IjfBkg)1lqJNs;d~9%A6&YALNmyG`PG9IUAwjDCC>x ztF$0EOiP`u_7-H}_<)2%ZL7>Y8sk!}ZVow}-1R*F_wKB7_j}nz*~5 z{BC$8)9nB-I9aUr5G9KVK9HXTpv-VxzO91*tXmdT`mxz3VVIN>8&$ceC!Wp?0FW>u z0f8mL*PHu+_9{~~xcv(5fK#eR;cAj~0~=zUm=rYbmBaVeHRY5LBr>CT@hX7{QUp*$ z1|QM040UJYt_qtfz)o4JL`AIKT;MM7JpPadx5(~$K;pYbS%G|Hpdbsw#FF7>Vyl8e z?<_Ximlv8gZ5SDO(mV^q7~8C#cDr82w_-jmbhOQ>iJp7f=a})Fuv3MUl+%>3AmsS6 z1hW)4!9|6*Etz`Afr%OvD{vrx89*=du%*TXmfgd~!Qpidy02$pSRjj+lfzx?(ac($ zh;C6VQyMzXZ-v|xTN((dpZ9!iegWE}HYZ%d6bmDc%}7ZVjJXWF1yLTAJc6{p3z_o# z;V?BTO?^PjStD!S!GAWKP9J(G40P=8!Z&A?hs_^!-V@KQSMbmd6`48T=BE;I1{)8{ zJOxrJU;}uQ&{ZT<$c?1x-=ppZHi|^TA_w&h25Lv~mGC4$>0QcngDo;L{Ry@{zK4E(2Z5g+?WvbQ-5_-)sVQti6=*n$|nb3njY#1ca2^eIyxtd z1D(-)gSWWsxQ>?{ zplV(SVYyKV2x}&B|C2N5<3xp;mZbgK_7YcK1i9vhC*0#)%3>4H0I>o30UltON-EM{)9zXEZ`G9u4*`?> zp`)u<8+D}z=AF%P?DZwUvS2RM?xbJBpVcLFq_;`JC@BcZfPy4W&`=w?NHZUZ{fDIH zd)#iP+q-&ctE0OwLmM(zdLci`X*bby3c709$y;6KO7oT;tNa=?nWy>dXWPyJ|0*TC9%zgVB0qQ+`WM?R;T>sB4VW&mgg;H%9<|MM~(X(}N9oW9lY zfIK-?tY5kBa8KIe_WVisFY*C^QLdSTH$s~FMAjcNBF`{K!Txd+{Wc;xfnp|Glyd38 ziEQnD!WsD~;#%cJrPwJ71O+sObGokGE3KDB>)%!B>8>%W$l%cWXdT2jtqM~jU>KP| z3KuDn^1Q(oZ6j$UdOyw!*u?O-3nXTeaREuK-Tb`|DJvq7#1%5`vxN{{FYwRW&tyj}&vl4Ho=%5CJq}I6%iYM1D;?HotRs z&%HlQk&*&up$L6t!pWc`Ji8;{-#<4so6pk*y}o46J=RAuUG=vy2^WJS6k|3~i3M0n zuEAX6!429k{h(ljr}JwJ*Gx?Pt`xw`0P<&%+V8z37uuB(4)K`-Mpl;9ynogDg#Fqc zG@1vM1SXI48*aca*^h@K0~4uaIcCT#u2*Fh%|n$A*L7d?@Gj`CH~Sj#EO)`Ke}q2= zkfZ~`Da7$ojnPtL!gELU$o2FR%imqAiLVxN!4XoY<_q@0ocaG%Hn>(NNeiA60;r#H zq10$CgYp-TD2C_GSrrgCKo8x__+k3q9W_1{31a#SJ?d}+!|+AJM*A+n1nMY^Qc-H& z9TNSKaA86it72*iJXk5N?zVN>J1aGJ=wl|gbzDk__Vsf2-yQK!uK4BD!xT%H2eu2g zUi;fxT%fink^GBN3iUhr8)pz&&A}SFuvBYktioXjE|Vuo1IHxeLGxHlR*R*{IHFxX zK#s^YOO1FH5nj-4Fyw(f`x^`Ab_CYI(TtH^LtRxM_%OlJec3XuuKlI5njz$oLJ#j@ zMD7XFN%}}7xQQ{#VyTa89K8az8oMcq#7e;zPeoTanO2an1GFGQh@@4I&W`tnnN~aF z-=*x0l80X5^`r$bG2hKvD6d1^Pb+KQSlEXVmujfBvx20|g%cZ7!8KKPfzC2Lt!#J;!q1 z1&tc`vz6m_v}a!8>8WDx&&k13<7R8<6V;nb2qKqUuQ{Yb%<@oUoS@h!;DG-rr&o47}ddJ8uK@n-Us4vITdpe4_P!uf2c|3x7|3xKd5hx z0cJVZ^vP47Ju0g&%(li05;8FgojM8QcKB#`9+~rHwBnZK2JXN=rhm9Y!{oP#TwY~d zs&rhzvjyt>l!JYxKoVAcUdE+DXI?lrA4{N!?G1|$TrW^&JG_3OF;F!+&H7q{InBDj zzi;nF>X;GheB^1&)epDYSb6!}!;z<+K zeSWwLRA!bDsKe^0ZFgh;Dzo!q55G3U_5p2?*@53(P==ZLo{_ukw42JkVp;sq#2s?c3$Vvz+| zTMaG0{~KfOL*qrUdC zV{cu`^vH^qX$^BZEQ*A8LO!`$iUApH5(}AViqq`sL_ngjNE1LKM70;8xB(29AV-v0 zK406r-%obFpWH##1&BXA&KhDzcZ&+_x?0#E{z1&Db_TMGvvyuyyN zgGNhr%qtvB381DfAPBc!@Dd2m1Zk^UTkjNUX*s}HfG)P$#{RbIX7_`|X(Sp2vXaH} zWz-P`RH8fDj0lt9)Cv|eezH`|34e3OU?^=~KF{@jK1YAw&1MfCg8>ANcOxzf{9itO zzhi&Dw|j}37&yuZsG>Fj^+!l5_Hbzm<^zZwxT{vr2n5JpGqiWMeYVvcc+5bp3%Rtu zoIkpk+p3dPVZpuU1~pF`gh>J94j-X5qPxy(zLk%TuQ%omCWFiXipBd8O;X$CLHXa6 zKZt2yb7*k63-(c11**Q&3{a4!K&b1gDKLyMKx{O_|I`o=wDN(K=r zQ* zIRv}XzqXAK?pU1iG@Yu5_JC=k8~@A&nA#^xwg`IdR~9Q|YoyZ*6PgdRNs}<5 z;OGQhaL?P{l*olmX>7&0`qb5Cu8}EC?YJ7LS6~uE8cHme4pm?%2%`Eh?s~h-d|+CD zC!m<+yGNjIMSb@Cih2cj&x@Qd+;h*v!u|76s%ZUOq#nI5sJF%Yf|ZtVNSTy-Hv`;` zHfXQC&H7&SK-YTq<_kbRG1+LSJ6~V&mqxJ2^`FiE^UZ(uhnxS6PjA`=?~I2t_&U#- zt|Gv;Qve*T_2!y&_#UVBBiGOHBR`Mx&}45AwBr1;3-A{e5PDrCH{B#TI&r6~>-fAZ zXg`gxHO)JbRwd1WE@{>srv3;}X>$7p!(dbNbUJMP(mWY5FtF_DbhKc&dmS~9x;vhu zD(0=(x-Q!7HnTsNax2zHKQy)0^IQ~IHhqB$b$b;!g;VWLC*;9-({bCX1QG7$z4YGa zu$IS`w}EqqB?xo0r_hv@4~rC3kb?o%Pv26!X3)R_BN2R)IG-!8%$Gu7Xg_AigO`0&wxFO4|2la8CVtG%%P3`dagT(^VRgMBr1r z*d`Qx0;f7~WM z(+B0wvkVN4ta|^7a}&s?Jv0kRz7V5Jx%p!i^y0qM>_ z2&{n}M^%TF3J^b-=S&DNs?qjY2BZ&BiDn}7?!dfi1Y*4b^4GmJ62k(bT97UoLokc< zi$`XEaNt^Gz-r)Uut<}F_WF_jH;6>ch7&l|%}{q7MHXNYYN6QMBeqC|n-bhI+8M0O zYw=uodRN72VH6v4G8 z^;$dr4a$8p8^1_RLtG);sRym82appRI^e@@7T85NfQz1>(2CWsj7U)#lLTZp9-WY6 z3>@gMzyZO8hXs!Xd;vDcS_Z6WvqpVurh+_TcVuohEra`5aJ`HV=@Ge!2gmeqgOhp1 z3c!r(*PQmgt<_bzk!H$3dy(oJO!oxjf6|!lb83`@>7EW+9!yNjiXY6oE%52Y zv)iLh3CQ{kN<0%4Zye>s(>^;Dxfj?g6#Wj>hRbjGJC^6*DPWhZh%e2Q8%pQD$k`oz z1L3g*vUaB3m}zxpt-q>$VqRa&SiGytoBDO^hk7a)raO&vcMW6!lBN`J*c4g_+%2U= z@dn=kgVDkYp$;h4!KCO_Hv?(rY1f-M5NyF39Et5Q0a5d6? ze?7i4=;C<^xetvep(}0`Ch3f37%^0p@)ottGj==Vn<}UbaXR?OI`}jJcSD4=u%V}H z--_56-9&zMZs1%V5f3vpED~>i+p+0r5b5#qme#LAIVX<+J96Bh!+)kqc*Xz5KcgQbWOWGWP4YxYPgB2zMv-% zO2W~AJH6NCk%(i)C6Jin)0XkqEvOt!xb_rAWzc}>|4?ixd#5$Ld8}kU6W~3Ygyl6i%5ek zL;f`6>#~fmZ0Lx$Wtord8y-iJTQW>d#s4t^H@_ELBd_Qnj+DEhKZ`bQJpm^>1O3u* zvp3^d>20{nwn;U8 z=ip;1S+c8`MF0M-Gf@9-k3x>x9n-lV?Y=P*(`g4UNZv5j>Y_EYRopgI z{WLqkx1{xZaR-Uv{$K|hXODKFj1*Ja>03Sv!ye{j0>@=D}5$w(I$W zvJ~i~0EP@*%djC)X#qo;JQh@Ji3gE&wF$rt)@GnsJq{yAL!yGVzBjV0fBtAixA2u4 zO`*H%gHfPh)`V-$7Dn?0nlT$>Govmh#+G4Y2}}TO43H@iztdc(s|Z88q$%V^wx`kW z2sf`lhicRJQtNyj< z=9r3AR;{sEmwH9dmq7Dm!8Yi$_c3og=Bh_K5Le&q|CZUXrtQlW3@_ zulQ^MXw^8?PE5Q}Js$amb#)n!>FE#)l2%UF6NJsb)kZyltOv`65Tjv**Vy2qD!thI zOkCYfQw#(=VKLl78@(7jk@a~EL!ir)s5Ub&=+s22{0v7JmbtiP)dDc=^0vWI&p`z3 zba&6~$Zp$P{9k*|+SRs|?f3gD9NjLE2E|~=gV@n{5kjWz!a*HZN4|KA+_CVeHN>6*!#RUrODf&`0%-l5m9QKIO_CE5UI(jyMQv+RL%GTY z`c;=hvYMK!TXG5IeG;?nut_=vPNaiQK={l_2_mypq3UKH0#O>0-V$@zP#fcaa#aYT_^z(Hg29@@8JTaOJ>X=CL zBsOy+Snr$`vm8zD_Bpvq>m{e8xS4_ds1?~OD4`paLfow;1p#7fx_jjwcQ4J)QxqD{ zE>d4#8}O}}#12=`z#)!ju)nZ>YPy{hh9J(laDwOCsjD0=ekEAto@vg(I0G~;v`co@ z*6=3^fq2{a$7n+t7W(paZ#8iHb|iJj&p=p|g{@6p)jnKYg4jMt2;BOhyO0txjh&4x ztwc6PL#)}4dEfg5pcCOJ5-l3Rw+2`9=kpY}&7AT@b8-ju&dgOKdel)@){v@u_m|lH zJoLHBh(Nq88HgtW{@BT3G5W~rN|-H;7sC04!0r$het>Z+m2{(VU-Q;4i~Q_u0kn<0 zTF^_zd^3;2eW0oPWC`^|G_v1nF%9~Yclj*KF>HYkD<0(wBghgj}hkg_`$q&pX+I~OFs3(~6=`lS#lXRNjJu~59GBh-_93nE(n zB1Kp0OX+wc+;D{3%@io`9w&Hk<-Sr)gwVe)!lg^08=mDTnHa=UdfjlYoWJ8LaFc+p zKzYA?7a9cf&sIt5DcKU_?VK1gcMP%((yH>oeizarZ^?nuo|CoP#R z+*=71uMD^Pz5`sG<5CH;Q2gb>P`}3>&YgV;b34Sy%E+aaYyj1J`d)@j51FL0)Mm3O z21N1zC;k(>@@UN62-ZF%!3M@pcJty>yYtGD!=Cb26n(=(Zsc5TPki9T@`eI1)6?DF z!dw=ak%D0uw#jP9|}qGZxq#HHdN0?!QQMsFUst9l3N3m?HF9+5>4s- z_Ga2B*V@D}CBa$#A5ekHRKst@@oxO&7vo! zTNB)gAI9;cV>F5VJ8(|95a*P!GCC-ZxG-_f13<#XDmcfoqqfZpUv)svxd5b&=;!3p zHLIHFf@8duM*jmCueb@uD_o3MEXH_+3}|ef`I3_axJs2F8sj-ds!QNf7^b>Z1GKP} zk+CGjN-713c-Fl{QJcki$vpYV0{I?yfPlv^<*ce^g2MqAe{?KGsU~H!ZeV66!{hOx z!_PmZzI5?Whn%&LtJ@7rmR~f5oC36Ws`FVrEE z?OHhNRx`s_4O6cn81P`tZkc8kd&BJ+Xi1c)?@7~+xX9;jMQq=K;h8O!C>*^V>q~Hk zm%!ML*iw4BI8U+eZL~UWy+=R+w&S<00h;@1PE0WDKxYQ5@`P+iYV%R4qAWN;6dkYZ zCcJF#gok|_mCO~D%pEFuI~Y=a$%4dq5Vr$UDw02MA;7t9H3xF|$gr9#_RwXGa|?ak zcp;VWf#+Gdr1cW*S;E;IphV!#lIhUoG;JQJg|KQr4 zHCJSF^`q(A4S-P60U>FZ}J z>FYl%*4JYUfbMG4|RtiVHTB537Sy%pU1>P@@ODneWjl%#I ziUBPA3avj&VcyO}93CFDYsV!Q)P9CHQN86!Az7!KlX?u35-|+HFo>RR4dH+NU@ZX2 znRoc1CPiDY!E)3Yynpu<`l$mvLN|GY38VNu+HPv`eBm@X0w{M)zSpD7+@$BG3{mvn zE$X4o0KAM_#N%|z7HEXyyK-`mk%?xY3O}VllNV-z8Qf+Bt;grR^;2Z#koe#&5JImd z9l|n8eQAhJm8*lvGR;VhsTtF_Y}JVvV~fTHCnPQh-MNx;aKsxSqI8pUDK9@WG7tN^ zz80SB#b`7uOG>1Z4Rv?@0{f&cF^`eDdCRqdYt@RL-U$dURf?&fO29o`FU3 zl#)?MLgd|yvd=GfvJai;%RAZUPWHKzeePtR8^}J-SCoBhd1j&9&U??S6&H%jcSh0@fnbS#eGDs*H)NyPv}pdZ&KFa@7W3rzJd*x&6kOL z_1uz-_ zPz;@u>v4f#Ar^cy8GDyyB(*Q$nE9Yi- z+F0U^zFnqp!<&d${o6`eH$G;82V`8GBWH#8>g(%!J-pG~PieJ}5ov2{J%&6MFYP%r ze-H}K2Ki`+rUuTTv3N8j_i#}TGrY@`$-Y+pLZf2A(1cdM7%o@ z?@q+K6Y*{!;=N9KTU+rSm!w{BzRflWxLhyCE8nZy;(N*WAu-hObNGw&biAUhs5Jh* zU5bRhXhtvwW$+^3VImjO;UB})7f4P9flD+yGUjEu`Fqjm1c3BC8g}qO5KwqV7K9~$ zOtE^NM?m$wL+Ur+F~keDX#ix$`&m)F>uc6k4@01#_l)PYwLRPr{UX`JV&eKy{S~(j zbf7h+IF#`y20Jj-uU=;T1y-}TQ7c3|BEoPADHM5AKypCA=n$J)Ii3TQi@kn0cm$W)ur87$~JO=k5=)> zv%v2*=cKZSaYi^!-v*~MgR@513Zid!JwbO9h_BFAnhHyGN$KvAa^_(_o4Yy4Pg4r1q@U9 zo8t(N{-FzTGcUyP%Puauu?o!c!Y#Zftb;3@qBIDiPiICs+3=ccX;B+5d6mk^CEj=o zZqc*7r@%4iG=sS2#DR>u4GfkkbYWXER2Uk|P$}n_jszrOK`BIufokEVk*Dm*^R80!E;t~Wu8SX(z<3BQ}RECjo&+b+kJiTZHLEAz7ux% zZs*%`G!FB8MYj1}c7;b{b+KQRtkKUQV;y7!s{ZC?`Z4WZRGT~)v%Eio_V>pbsxDa$ z7X>M0XUys}n^XoG&(Sna3}Vi`4s!Eep&}=--oVLt?xjbx1a`9oxkg}~nCGlj7u3a1 z59304UO&c@tr7+2K|$=N!GBfyTq_}+4P?)|ypvr555Bna>1&<#?U8Q!gg1SHO-tzg z_1YTW1n*_Stc9X>E1dHryU1z~WJipR%}`mD|DBT3=!?%{KRN;Isnfr2_0^&kCX=YF z=cgN{p7)j1yR~Oy(rqD~Ei+@M(^puq^W zmP5J`n5j1c(-VtRgv z4#QEB9#zMFguNBdEVQC`b`)bt`Z&mE7bmPVlqxgi#&=ie#%GapjzeO&`$lM(j|WB8 zoObYu!W(&_Hg9#9kvsHI-gI>i22y(%KaOEdi-ZL_Qu_k0e3mjgwKGYkH^ncS1Z#F= zJ=oYknxP^FG0UWt7~6Xxi7_3YWZ)#cAQy>3mgLqNdX4uvf+5Z*%QJLi&VFZbi7sU} zQU$4cp2!0GFkAyhED|p>N(eMz3Uf#~?$KH$i>JOd6*24T+qyTU>SZwlCL#YdE72xO zL4Ar}hhCnC4s~mz_~uF4{HIs-8n?`UAXe+o(UQS8jwN z_KgX>`ZrA|GSbF3VEtoWe9AQ>_mwA!lNQrOn+`pdsbcpr%dl+21eN7fprzth1L^Lg!MhcRx|VqNd7S z^Oa4Pm4^IVOH+i)5b_aM^+sXmtJgVXjuN!{4LgZCj-Iwh#p` zCbT6MLIhhRrA*SQ{z^(JQk@pWThaA(O9Sy;-Sj1fUBKziAKh^=qD;uGRvIyBVm{dho2wi+I0c$L%xx~2j~X=uO#dMA4Nw& z&^HI5>he6Vvoe%FGcOf^lfUuJ7y0p%p25Q_dM2UQjmi*5a!(cfgKM($qaq*=5{x!R9aQ6tX~)P!Ns(`lrH0< zfJ5w_HNmt|*g&iv(G@3h_qZ-fCw~_Nqh%PgwJd8(2G{)>gAeXCdRu&EjB_R{4-o&c&G+_c@0hRel`uHw zqr(GiY#)%N|lpDyjJ zgFt{UY}FSp^FcFm29ThwIKelI($-fx%mP5K{Tw}h+C<3U>*IOUO_v9uuZyQE_uUmD8pW%Ff2^0siE{o+{%&Hn4 z1kgPar6hKW)@GW$bP~`UxMoFhtoNauK&;F0ek-`r&`Qg3eeEy}_6~ACw%;R{P5aR} z5(A$@pTwqpkzAoOQ!@wl)oC`VDKO||mVboh_Jd#^PqM0h3D+1YEvBwTx$rsu9(WXx z7|Ykdwe^EPH}$VLQLe|&$>QGkLOu{Q z@qMWOw3y=Ut*9To-rR$E^A7j9jU?_p4ma_fs@&|)N;EF-lUUm~FAzUhq!G2!q`xaBtir$w`FG!Y zFJhKl;V=8DkN6|IjRcBoSK} z1o#z(LpT6%kAuy0nr&~6&eIw&Vh}|Qvgl!`BaXn)Bw{WQW)i&PJ`!r!6faf6WR5Q{v-$Pntp9;vCU4_~b77L{T zm90`0xar{dQD5K@u_i#8_m)$I=Ww89acQ<()OiCsxK|^b?l;L7@po`=Venvg`xHfa zkg#_jKZdi3f08ce-_e;w;Wy+h0m~wHv)~ci-FmpQ^B|z-Xz-I##D4eyNP;B+scX8w z&R8&DM}d%>g5%_;F8hrPK=U|#G#*)46i+Tdts&xHU?>J$Lk{y|yFJtb6iMFAF|;J3 zd8ZF{dwkwIyN|~FuLnSt=v+{$5bpJbh|G%1BnXtr zhDrmY4;dDu+djr{06IS5G|1HnC1-a_$JM?>1x_i+9+D+VQ~iXGA`O6esEFju?>7tx zpxmp&t%&Obg3Ca;l7tkc`~qh6Bdjk(T^HYfZUzcoxlLbz0DT@t8$Gw>*lkHmR)H3Ms;c)q85M0s@5$q>m<-V=fOPs){%nv+mCz_D!YC|{QUIG7 zfKRHbUeA1ISOHAxqqEd1cy9EWAJ^!9&-ywRUuj627gwp#?>Lg@nXd&oS&MP1#NZt0_b_-Z>SB43O>k$-@9~ z8UB6pU=&1QKt~GveJ#;sQ;{pLHfz2DtgebTJr}b9KZEsFN4*T$d1d|UR zFfh~bvfRU*0BdXZ{iwUDdBWz`*Y;P1ztQr>BGx@mt2dwWx3aoVjvHAY<;Mww|3oSb z)MhFanJ6W79vL}3*u3V&3YeBZ6QQxqhhmXJD$ApOSeniB-<0(M^V^aqi+T8JcorHk z<<3L6zW`Jj1IYEDDVIm!5u+b*BdV2qKgr=y?`0Mja|LgdmY2;#5^oW3+omV+l{>kC z6B8HgsY1Upvzrud`O1jmHtforS_-E7ras zk)F@QK*)7V*gehf871^Wmb>Hf_52fXMkf0OeHkBVOU=*Z=wZy`TrdDdoW`^GT+1jc zge_$8G(L^bVpTl7azYl`tEEXk3nPHiMy$`NF4J^MIQt5O&PB04r|~q&bm=oEJzR(E zFUWP6S&!&)Ey`;(3UNbtNY7a^31`vJ%CXiDYARX|OUN4`J2MrrGmXs>lKnFkz@vf; z#zs}Dm1ZhysHmDs9qH~bLVNH+j}1XZlw*^DGV1iF4Qmy`%aEsND4QzgzC>Qb!Zwce zY2w4WFS0vur=-)xK1am~59_HCV3E{OX@exvcw77sqAA8(2*E@3F<@FT!=z#cb$JYM zyW~zCuVYf+f2I+H*}v3Q0oPlfpOv*GVze4YWA146Q>p11)N-^OWbXQSkgMJ>2vq(Z zxZgn{2JHNf`8U>j9i(3{lG{lva8ITqFa#jJ;yrE09Nhv zYT8mFyE3LGJ@Krrqe1=G`#oW3YW}90PO=e*1*o+nnD#g0`|I>FLV%v^1H*8Vjy^8@ z82YS4bGdKhwtW-3c9G@T#q8o`arTn^3TVsgR0r3p$wSnCO?*8>PRxh6!TV)aXTTx# z&6mUt^lejCa1?AP%PL4x#aD-K1Z4v}c#J`n^kYh1f;fiRE@8aq@6!^Ca;d&Q!SiS8 z+Q3Dsdv0X9b@!6Lmfa!#y>)M*($ai>91Z?wbMt>YJOk3Jl)S&+zk8XC&S&|@`|Nak z_sRCdQFmu_@^C!f-s%2AaRUDWP)h>@6aWAK2mob|Jyb(5Ffr$~005|10{|od004Dq zFKTlyV`z15Yb|AFGB`OhHDfL_V`4RAWHK`@YI81aVQ}m^S##P-m;Z&zTgb&*?Bu@8 zNG%x?+kg#@lW*!Pl@JZc2uaq0P3F(fS-PbbOPosXJWSQ3Dx%eW`t;eCmjAo8mRTMq zaqI8Xb}LWHERcEY@BeDO$Vuu4%fCCF&R?B4nM!Y!Ov^~-o&WUnG?qmt59hHTWu0l5 z7af_eI%D}-+{!%n=khYiR(|okJrhf5ez}ks*Vg5nI z>faTIn`Oz{LH6MG2Oynx|GV9aA@EY}_dJEk%j9zzX43Nj`xO4yD?l??Xih6Ti63dn z!U6@Alto(N#JvRWrz4sAnGZP-W?+;fNEkCjB;$FpfC2FYzbnRxtmSDGB21d3ySN0f z3bUgk1J{PZEK62m;p=(3oXsTS+bJuMqaETs@6ok~mbmtMx5L5x*mb0DMbxcqx9#L#ksbx_eeh)I0IWn`@o%%8w^pRa+C7f-vn2g;J8e)t0;J;2oEF$h^OqNa06O-!Hx{) zPJYRrPZoB4vHboD~{7nQoZjf-M1~ z6;6~{1`{>1GDCx$Fu06^WZLwZF+0pc`jAeE`44KdoPKx=$^TZeSR_bi5w2uHQC6zp z>SI+kqI>{vNlfoV7zIs`3p^kFEap>l&~}-th{`W@z|ni>66!P*UloeyQ8J+e!gwJe z4EARCtOF!!Iz;vnYB0p87v`1wy_-e;9GQAoP1!z4mMn|Ja7<6k+G22j?~1Y4cOQw@ zdlv!uXBIxRbZ5)kUs0e-skAT)=Vj(k$O(b|7MU{=Q!o?~;hD+QTR}ASf;>l$$o!!2 z(x{w=v4=_3ixO0a_mo5KoO$OS1dzcDJo2cC1Gg(s3K6>-j++~x?9dycaH58}mlvBz z4wJmNsm^U|OJT`43o4pJ=bda3=m(4HMB*%fEo#@%HalC?RYw@}Ns859?oo)O1^ka8 zgPBm9j=XT{oy$*0A5TxuygYy~G4&ua03JV{lic2nk^ir)|0~+^R76FuP3n?jy7uEh z1reQ6Z>=$Bdb-s>$1bDjAr4i%Dyxyz!Xf}*U_T5Y3Es%H#2D0v9XD0HkLm?)RfVz; z@(>=5NOW#iwJxsW1F6B_!I`EiU>fP2BP7%v@G93O~a{0&yEVG!j9EZRVP)x0nyj{1

    V7kLN3aKp2l9v{h;S$p;4wKbT;RvDM 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%0D_+z4@nQ@^`Qv~3KfnLSe@A%Ziry)2)b6XK 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%0Aqt*t5-pybr<1>YZrr&=kMF>+_F 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

    ILvhV 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

    mM&i&aaI zlOg|_!Ad(GZkOnLB~1>QUw_gEx39++Ckke0lTv#Evk|JjULx%b6riWmlezkdTnni~m4(|=(5W2=4scYX!WAr8Jmk5u9DrEM&%M2gF#pZnl zJSCaaee`v%dan9a7UkAfE!gC#^u3}I8~TeJDL+)ID^=BQ$bNh1M?2hC7v+`^vq;S4 z78sWd{-0)%8rKS3zgbb#mgHKVhrTm^U986)weECmOErw9BZ_QHJ6E-?cdkj7N|KbK z>-Bec?V{`Tl>t-2a~rOAQvq%Cr%?BVxqKRB{HK6T<(z`yu#C%#bAg|MKf+wl@Y1aq z0QC&7$}aw=?>*yxem|_d^0iAfkb=3t(UJ5)C4Lw3QlLc)^dTZd`);%8SE0H(fsI13 zhGI*+nB3ReY<^dp`8K}I2|bFIRs-uqtOlY)tOi0M&xzcOUz{)-=)!HHbv7eOw0bpo z#(eoxf@hHM%4p+EjCdK-P&j6m1^?_yz(6h*t#3=&)#*Wc1k0`jc|ys1xOn^@>E>3u zX{AOgK>o972~W*SWX%iLmw~@*z85tGVm7+=i23@)4u%r6><8o#=SU<*ya%+NrZV0h zqD_UiNFR%>5Z4CYPrNIZ3FO$DYs~95r@Z&4DCPZeL00lIwOzk5H~+ba{+xgQgUg8g zvEC2L#a!(Nl@52C>uNKrA|7%p2mZP*ZPX)VNOi1(Y{GbR6trU?faI|pMaXEeoNt%Q zz8E-2txF?Y4$^VC?i%uh``b;b>mKBTVJ_;Dg)`nxOMviXWRPS7L$=+6Fib=eA{g>& zz>)@pC7RE^0Ls2kR<|^!>F|BANHoh`QiEif24R&K-}MF0f7M+eh05^LN&dNcvJgVc z40y{T--06(;@4spg9T2eU>~d+eDe`%Toc0L*;+2W4u5b%v#H4WBAPBY5>aM~K#mea zB_DuGx|sDtWnV0o*P>Qho3W5*>X1gA%p)UuN{~vuUF~H- zl-HXn=LjHN%Nn-2!y4pX*ziQKiVe@M*7Y5~%6sC7^oI%D-nV_-^JiB>*Yj_Kf1>a| zRN#LYl2L9TEXE*16}!CydK1ZvzyqeqRrd)`Om{Fp9$Nbj#;gxM1qPp zV(yY5PMBs0>AzvapIMeJmSyv%WqFAXPz~z70YgfwpbMl`m~a1Y z(*;ZE0_lRz(uGL?y5PKpE>MJiq6^Klbm2Z{x#w`{t@08BgAvu8z8Ka~Du?q z0K|N-4yr4sVe4KT`{ebpC&03JuzTy+Q6)d0UmW`uQ=AWW!6~d0lzK}5zZ6i&r4mf? zvtN<;`L-& zyr!Mj#%m#%`Hnm ziNgH0LM*KOebm?Zfg7*N@|PG9ynS20e;vQ-!sXw(HzuLt*EIZwy}?A}pV}L

    Rh5 z^V-;py>Uc?zM0@HLM3MJM35ohyOAQhOgXDN1vl>nmD+(xuv;kFD%dJBDb3auv%v$MS}`PN#*ll>gL zFhN1@)K<7h=MqORbDA?^?det58sEsGacp9HhydD&>m8wM;UlN zn^Y{b)QzW$jm7+oSbVLq=Za4s>Quu%Je0I-zOGuVd2=BYu!_pw=`oc*#G^{l$wGQi z$}w9!GSlFwQ$$HkXSJTGO$VmGr<(bsg_PFlu#`p?vwO^<1Yl#H5yw&T3j4*UY)NLV@x(< z>j}nOkU3AF1e=OYV2wiKTQ4um!A``oM-biUrwa6?b5t5R*Z)R09~w(5pH_PB0Fe|Ri}4VJU<%Gdpz?rxW7Xe@h+*437k#M=4o)9 z+rq|2qTQTCq(}b@*-MglmENgOYW|4KXiEbbkk5ALWXgW95xh*q0JT}9D-%}M_Hd?{ z9~k0op%~(!J~&mMiZu?fc_hclkslxoq7Z4UuX^p*4q0BWlShSqyFE2>f-H|bo;@CY zpf=hsk6eqb?aIh)$IPPbIIsEFA4fg5%z!T#Nw%C~Pt zCZ60Glb|^6#UxxzqWStHX059GdmXR={EpME3@Ynhoh+{qZebFym0#Y;B*O5alt6

    Rt82n__iW_y2|ev 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

    <@3F4>XXpMJyPhfyMywR;YpI;FCo= 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

    4Ep}wu*JrC@? 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 B5REI%-mXu>8w|Muq%w6GO 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]o%_g!T{9}x_Y^V#gDS5~QSPbI7x=RA(1c~P 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�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 (xB2!vSeD_M8Rh#7BVw`M( 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℘Y(pY2%OO?e=0G@|-N&Mo`E6;rs0i%$8D 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

    c(BvW<)hT;5knwl2lmyzJ z6)ZZ?+W%8c4s;>r98l^8iQgA_Sh70!ln}*viD-1vx_G41SDY}v7q&t=j2)S@XPm19 z5iZ79(qq2z$u`P59VK1*V+8;b_;2nusX9t9n)jNFm~|TcY|>iTfMIT5e6WMWb;ise zh~}fC`=ap2n`sb0%Yrge4qCBX%C<@*v~P&A(Pkk_Rs69o&qln`GjZH3ThyaJ>mZOW zCduOrtN(Pu!Vx4+`0l#7^Sza;+V6ZF;jxe?22bEtWqPKO=w)})IS6WSoixcjyO$k5 z`nBf={=+REWeP?7CHxw&Gzm1K9TchOm6f*Z>sghT_BnE0B=$p@&;x)2eAo~N@q1Tw zBex`8^trZVFbb;|e~nRo(9=C{Dv${|?DI{#{;_30IqboL9}7}Y@$WHrKW*l3lxZ5K zU+{L+kr5q))0)qhi;IsKWs%*oEzmv>B(-rnyGljd5~gL3B| zys7kQI9W)NAl~I+7ZuEAq07)L;tc6)Iz9Yr7KcHsW#>-Ld+EX4`Izj_2UU`1!4IpT zhWcD98|QQK+aWee#cr1Q3%Zb&+`Y(4AggHi{v`x7iVxz&g#fnO1n75Mg-#?f8bS(R zE?zXL6wT^BWi*euZ=^)wJ=gsTA&DnNX9-bsA4xAhnmflMaK<8{%B`jze)57`utzMO z2}m_ClJ-{>`S7kP4XJ`4E7Xi0afz2jA1pJ_)H+n<`Ak5z3C`cp=Wbj-Qsl77H7yR1wA$u z=)#shrne;)Mn}9D$dt;fPDr6As$*HW<6}B61Y{6Y+)GA+rrTJ_%iU(7F@T<*o>rv) z4!m9sLzpr^4j8aOu~w9HuWWU(+4QE^Eb9Lb_fR+(osEmeuPO1iuEHqYy~K6M0{71r z;Q6`Y^$ll`Len3s4s3@a%H!otWPmN0NFehE%3!+?<}@%5M`FwEgxcBqy*@n_{za(4SZNO<#t77af~bH6hQI$IGQC85I#pGR>*Mow45C>v z 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 c1ePt6u z#I&)aAFR1?Dq+SPPms{`LX_y~9vLOoCg3`3qB?=GtzX%BvYX=Jvq#X~k15Y0R|>wHY!Nu4I4eY+t0kPMz^9FqVLr zy09!SEsE7G$25Cu4Kp#Sq+v9 zxvkz{4^iT}?U+3{iCPc3JN;vNzzIY$3YvjS9^!7SHY8~;K!m)hGuQY%!vjVq0eb2cC6@dd zT2VMV`y6=8%metMx9ZM5*W~(;($@h@E^@6?!p%lxPx#XOkSdRCXefT8jAy2$6_3cu z+YxQ{&L+Kx-#@1d^5oKt$hbdGL9+G;qYA90GU~AA;6ag05i3+r(S=X~We7+E68Zh4 z$XrD-?21wT~D>+bjQ;k192^_u4Uq`tJ_JKn+Ybgi_;S#D4&am~r- zL1Yozg-0I*M}#d>V8^G*hbmMws6!4T61naqI#=54WP_x#mL|Ew81$wW*exV2lGE!R z+ckKOxbBvAyW8kQfH;MAoQ%^y~_SnMVx*IvXuv;GO;FC{Iz;^w$uRBoPyip2- zk~;I4ux!rHk_YZGOqf|01*s8r^%`iV%#t=tlPYX(JCqR2c5?Y$Y*@`4!_~$c{WYdkEBc&FU*! zOxl(}r6A^j9U9VzT1yMDKsYmkadGjsRJ?g}X_n;9HcK{<(@%O?JifOk(lH3-_aT=6 zfv3SXT&TRSe*52i^*4Y0Pa|onKgl8#$2zIa1 z4cq2RW8t;UzBC5i%9j7*fA+IK_#Y~V_q7_>gY~9wjt zPW^7i}XLQ|W&mYUGnf02zF7$75Hh(OatH*MA;j#SL z@BKet{q-MLw9TJ3G9qQ|#ak{$MhG}x_W%B9T!+lV?@!_pijk!ajDWkqzc<1L z|M;)|^-uo%_uf3a*nadUz4^@Yb~UrSy*RV{Z-4ZSbVYThlU~m6%u01a%?nM5PByN4eK5?WhXdIw7=sFFdt0J=$wrpuWep`+Dl~6Id4b~G+&myQH#%Q{ z&R_kPfBECT{LQcar{8~_E`*J>9!$Q{M8{=33t=*EI3=+|I z@@VL*bmQ_h;BGXg5m}Q_!^9=Ozec$;fGq(uNB&h*_~{@1$&4r?)DEJlSd@b6&rpgUb(*-|!!uigp1^#(z~hy7W@SYn28& zQ%HlqHJsbQA-wz2Fq1RPo1CdMKCs0NgO_Ia5$E1fl-0^3UqkmxY7qOWpg_UKX*1Cw z!9h=rP|#oMw2W51O!qxE0Y30wm2MRo$g{sa{ML_DEu}hFa!SfnuR|KrgDODq+JcRv zA0Ev{L!#A4ha&gI7!J3Wps7i*;QFZ^LEu(Qi?7l02^+!lWIRS!m2rF?bw^o0YCUYW zn)jOTMEs723QadQ_o9|0h+u|CA@&HbxpE3AbYO?MM_V5SxmU09+ETq{&>Y3*1PqPX zIlLELjWTEkJ}$xKw+=p{xzP0^r<;itkIuPvV-JF0D&G&xOM!OLE~GYWi^ zjiTM1Rx3JekJ8~d+G^vS*XVIFz;|6Kn50}J7)?J){A&T}m?Ce9fWX5Y`eEmIs^Y2N zMD3VjLEsIXXyt7V{|Um!ov#!ELF$^+TC~@QjvCRU4JA$RMT$*z!Ww-T)joDc>2(7@ z0pB3+1^g>M{y>axe_N40;+K>$Yu#A9>qpV15TL#XKjo!oXjKD;Q>e^063_&GWKrWS zJYb^`FOK1dG=_Ui78VEFj-DMMQ>6Y#Mtx7J<3><)CTZp##goHWgq!L)PVBE^0KkNl zLyC)qA8+=3nq__S3V{xf>E-Ddk*6-Cy$1uMM~|8@N5}�?_10%=om*Qu%-ztmg2c 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®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

    I&Bk6tHMR90j8rST4lGTt7J;FOX_v0=H0 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 z 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]B6IintJ8l|0u2Qn*szXd!C0t+_brI;E2u0gE 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 z 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 i*Xv7yyD@sz|2*b5)?)$P7<3fyrw>eM + /// 将前端UI压缩文件进行解压 + ///

    Rv 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∨0t^uRn&juj*I=0bEqukCv?4{iD}9iBE6ST7 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 z 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

  • + public static class UiFilesZipSetup + { + public static void AddUiFilesZipSetup(this IServiceCollection services, IWebHostEnvironment _env) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + string zipUiItemFiles = Path.Combine(_env.ContentRootPath, "wwwroot", "ui.zip"); + ZipFile.ExtractToDirectory(zipUiItemFiles, Path.Combine(_env.ContentRootPath, "wwwroot")); + } + } +} From 4170428e0a89cf1de0a7db5c4254ec9eaf4e46bc Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 30 Jan 2022 10:53:20 +0800 Subject: [PATCH 068/382] Update UiFilesZipSetup.cs --- Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs b/Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs index 423b1b54..4c9553f7 100644 --- a/Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs @@ -15,8 +15,12 @@ public static void AddUiFilesZipSetup(this IServiceCollection services, IWebHost { if (services == null) throw new ArgumentNullException(nameof(services)); - string zipUiItemFiles = Path.Combine(_env.ContentRootPath, "wwwroot", "ui.zip"); - ZipFile.ExtractToDirectory(zipUiItemFiles, Path.Combine(_env.ContentRootPath, "wwwroot")); + string wwwrootFolderPath = Path.Combine(_env.ContentRootPath, "wwwroot"); + string zipUiItemFiles = Path.Combine(wwwrootFolderPath, "ui.zip"); + if (!File.Exists(Path.Combine(wwwrootFolderPath, "index.html"))) + { + ZipFile.ExtractToDirectory(zipUiItemFiles, wwwrootFolderPath); + } } } } From 473e214a439bfe38474bcb4c27896a529d7f3374 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 30 Jan 2022 13:35:46 +0800 Subject: [PATCH 069/382] Fixed #229 bug --- ...egrationEvent.cs => BlogQueryIntegrationEvent.cs} | 4 ++-- ...andler.cs => BlogQueryIntegrationEventHandler.cs} | 12 ++++++------ .../ServiceExtensions/EventBusSetup.cs | 4 ++-- .../ServiceExtensions/RabbitMQSetup.cs | 7 ++++++- 4 files changed, 16 insertions(+), 11 deletions(-) rename Blog.Core.Extensions/EventHandling/{BlogDeletedIntegrationEvent.cs => BlogQueryIntegrationEvent.cs} (54%) rename Blog.Core.Extensions/EventHandling/{BlogDeletedIntegrationEventHandler.cs => BlogQueryIntegrationEventHandler.cs} (64%) diff --git a/Blog.Core.Extensions/EventHandling/BlogDeletedIntegrationEvent.cs b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEvent.cs similarity index 54% rename from Blog.Core.Extensions/EventHandling/BlogDeletedIntegrationEvent.cs rename to Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEvent.cs index 69c74911..f84842d6 100644 --- a/Blog.Core.Extensions/EventHandling/BlogDeletedIntegrationEvent.cs +++ b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEvent.cs @@ -1,10 +1,10 @@ namespace Blog.Core.EventBus.EventHandling { - public class BlogDeletedIntegrationEvent : IntegrationEvent + public class BlogQueryIntegrationEvent : IntegrationEvent { public string BlogId { get; private set; } - public BlogDeletedIntegrationEvent(string blogid) + public BlogQueryIntegrationEvent(string blogid) => BlogId = blogid; } } diff --git a/Blog.Core.Extensions/EventHandling/BlogDeletedIntegrationEventHandler.cs b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs similarity index 64% rename from Blog.Core.Extensions/EventHandling/BlogDeletedIntegrationEventHandler.cs rename to Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs index 6b475872..1873b346 100644 --- a/Blog.Core.Extensions/EventHandling/BlogDeletedIntegrationEventHandler.cs +++ b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs @@ -7,26 +7,26 @@ namespace Blog.Core.EventBus { - public class BlogDeletedIntegrationEventHandler : IIntegrationEventHandler + public class BlogQueryIntegrationEventHandler : IIntegrationEventHandler { private readonly IBlogArticleServices _blogArticleServices; - private readonly ILogger _logger; + private readonly ILogger _logger; - public BlogDeletedIntegrationEventHandler( + public BlogQueryIntegrationEventHandler( IBlogArticleServices blogArticleServices, - ILogger logger) + ILogger logger) { _blogArticleServices = blogArticleServices; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); } - public async Task Handle(BlogDeletedIntegrationEvent @event) + public async Task Handle(BlogQueryIntegrationEvent @event) { _logger.LogInformation("----- Handling integration event: {IntegrationEventId} at {AppName} - ({@IntegrationEvent})", @event.Id, "Blog.Core", @event); ConsoleHelper.WriteSuccessLine($"----- Handling integration event: {@event.Id} at Blog.Core - ({@event})"); - await _blogArticleServices.DeleteById(@event.BlogId.ToString()); + //await _blogArticleServices.QueryById(@event.BlogId.ToString()); } } diff --git a/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs b/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs index 197803c1..44e15c74 100644 --- a/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs @@ -23,7 +23,7 @@ public static void AddEventBusSetup(this IServiceCollection services) var subscriptionClientName = Appsettings.app(new string[] { "EventBus", "SubscriptionClientName" }); services.AddSingleton(); - services.AddTransient(); + services.AddTransient(); if (Appsettings.app(new string[] { "RabbitMQ", "Enabled" }).ObjToBool()) { @@ -58,7 +58,7 @@ public static void ConfigureEventBus(this IApplicationBuilder app) { var eventBus = app.ApplicationServices.GetRequiredService(); - eventBus.Subscribe(); + eventBus.Subscribe(); } } } diff --git a/Blog.Core.Extensions/ServiceExtensions/RabbitMQSetup.cs b/Blog.Core.Extensions/ServiceExtensions/RabbitMQSetup.cs index 125431f2..91ffcff8 100644 --- a/Blog.Core.Extensions/ServiceExtensions/RabbitMQSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/RabbitMQSetup.cs @@ -38,10 +38,15 @@ public static void AddRabbitMQSetup(this IServiceCollection services) factory.Password = Appsettings.app(new string[] { "RabbitMQ", "Password" }); } + if (!string.IsNullOrEmpty(Appsettings.app(new string[] { "RabbitMQ", "Port" }))) + { + factory.Port = Appsettings.app(new string[] { "RabbitMQ", "Port" }).ObjToInt(); + } + var retryCount = 5; if (!string.IsNullOrEmpty(Appsettings.app(new string[] { "RabbitMQ", "RetryCount" }))) { - retryCount = int.Parse(Appsettings.app(new string[] { "RabbitMQ", "RetryCount" })); + retryCount = Appsettings.app(new string[] { "RabbitMQ", "RetryCount" }).ObjToInt(); } return new RabbitMQPersistentConnection(factory, logger, retryCount); From 615f2338a041705b8796f104bf5948a39595eca0 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 30 Jan 2022 13:41:47 +0800 Subject: [PATCH 070/382] Update ValuesController.cs --- Blog.Core.Api/Controllers/ValuesController.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 002f1e62..db0066bd 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -107,7 +107,7 @@ public async Task> Get() /* * 测试按照指定列查询带多条件和排序方法 */ - Expression> registerInfoWhere = a => a.btitle == "xxx" && a.bRemark=="XXX"; + Expression> registerInfoWhere = a => a.btitle == "xxx" && a.bRemark == "XXX"; var queryByColumsByMultiTerms = await _blogArticleServices .Query(it => new BlogArticle() { btitle = it.btitle }, registerInfoWhere, "bID Desc"); @@ -172,7 +172,7 @@ public async Task RedisMq([FromServices] IRedisBasketRepository _redisBasketRepo [AllowAnonymous] public void EventBusTry([FromServices] IEventBus _eventBus, string blogId = "1") { - var blogDeletedEvent = new BlogDeletedIntegrationEvent(blogId); + var blogDeletedEvent = new BlogQueryIntegrationEvent(blogId); _eventBus.Publish(blogDeletedEvent); } @@ -358,7 +358,7 @@ public void Delete(int id) ///
    [HttpGet("/apollo")] [AllowAnonymous] - public async Task>> GetAllConfigByAppllo([FromServices]IConfiguration configuration) + public async Task>> GetAllConfigByAppllo([FromServices] IConfiguration configuration) { return await Task.FromResult(configuration.AsEnumerable()); } From b9dc6deb7a9b1141593cfa194bc38df3f9ec0fbd Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 5 Feb 2022 12:10:50 +0800 Subject: [PATCH 071/382] =?UTF-8?q?feat=EF=BC=9Aocelot=20swagger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/LoginController.cs | 2 +- .../Controllers/UserController.cs | 2 +- .../Extensions/BlogAuthenticationHandler.cs | 48 +++++++++++++++++ .../Extensions/CustomSwaggerSetup.cs | 14 +++-- Blog.Core.Gateway/Startup.cs | 8 +-- Blog.Core.Gateway/ocelot.Development.json | 38 ++++++-------- Blog.Core.Gateway/ocelot.json | 51 +------------------ 7 files changed, 82 insertions(+), 81 deletions(-) create mode 100644 Blog.Core.Gateway/Extensions/BlogAuthenticationHandler.cs diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index bd81d6de..55c20827 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -273,7 +273,7 @@ public string Md5Password(string password = "") /// /// [HttpPost] - [Route("swgLogin")] + [Route("/api/Login/swgLogin")] public dynamic SwgLogin([FromBody] SwaggerLoginRequest loginRequest) { // 这里可以查询数据库等各种校验 diff --git a/Blog.Core.Gateway/Controllers/UserController.cs b/Blog.Core.Gateway/Controllers/UserController.cs index 8a2d7fa3..36532021 100644 --- a/Blog.Core.Gateway/Controllers/UserController.cs +++ b/Blog.Core.Gateway/Controllers/UserController.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Gateway.Controllers { - [Authorize(Permissions.GWName)] + [Authorize(AuthenticationSchemes = Permissions.GWName)] [Route("/gateway/[controller]/[action]")] public class UserController : ControllerBase { diff --git a/Blog.Core.Gateway/Extensions/BlogAuthenticationHandler.cs b/Blog.Core.Gateway/Extensions/BlogAuthenticationHandler.cs new file mode 100644 index 00000000..0f287f60 --- /dev/null +++ b/Blog.Core.Gateway/Extensions/BlogAuthenticationHandler.cs @@ -0,0 +1,48 @@ +using Microsoft.AspNetCore.Authentication; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Microsoft.Net.Http.Headers; +using System; +using System.Collections.Generic; +using System.Security.Claims; +using System.Text.Encodings.Web; +using System.Threading.Tasks; + +namespace Blog.Core.AdminMvc +{ + public class BlogAuthenticationHandler : AuthenticationHandler + { + public BlogAuthenticationHandler(IOptionsMonitor options, + ILoggerFactory logger, + UrlEncoder encoder, + ISystemClock clock) : base(options, logger, encoder, clock) + { + } + + protected override async Task HandleAuthenticateAsync() + { + var claims = new List() + { + new Claim("gw", "gw") + }; + + var principal = new ClaimsPrincipal(new ClaimsIdentity(claims, Scheme.Name)); + var ticket = new AuthenticationTicket(principal, Scheme.Name); + await Task.CompletedTask; + return AuthenticateResult.Success(ticket); + } + + protected virtual string GetTokenStringFromHeader() + { + var token = string.Empty; + string authorization = Request.Headers[HeaderNames.Authorization]; + + if (!string.IsNullOrEmpty(authorization) && authorization.StartsWith($"Bearer ", StringComparison.OrdinalIgnoreCase)) + { + token = authorization["Bearer ".Length..].Trim(); + } + + return token; + } + } +} \ No newline at end of file diff --git a/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs b/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs index f392ef6a..2269e948 100644 --- a/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs +++ b/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs @@ -3,6 +3,7 @@ using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.Filters; using System; +using System.Collections.Generic; using System.IO; namespace Blog.Core.Gateway.Extensions @@ -45,11 +46,18 @@ public static void UseCustomSwaggerMildd(this IApplicationBuilder app) { if (app == null) throw new ArgumentNullException(nameof(app)); + var apis = new List { "blog-svc" }; app.UseSwagger(); - app.UseSwaggerUI(c => + app.UseSwaggerUI(options => { - c.SwaggerEndpoint($"/swagger/v1/swagger.json", $"Blog.Core.Gateway-v1"); - c.RoutePrefix = ""; + options.SwaggerEndpoint($"/swagger/v1/swagger.json", $"Blog.Core.Gateway-v1"); + + apis.ForEach(m => + { + options.SwaggerEndpoint($"/swagger/apiswg/{m}/swagger.json", m); + }); + + options.RoutePrefix = ""; }); } diff --git a/Blog.Core.Gateway/Startup.cs b/Blog.Core.Gateway/Startup.cs index eddcdeb5..5254b97e 100644 --- a/Blog.Core.Gateway/Startup.cs +++ b/Blog.Core.Gateway/Startup.cs @@ -1,6 +1,7 @@ using Blog.Core.Common; using Blog.Core.Extensions; using Blog.Core.Gateway.Extensions; +using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; @@ -35,10 +36,9 @@ public void ConfigureServices(IServiceCollection services) services.AddAuthentication_JWTSetup(); - services.AddAuthorization(options => - { - options.AddPolicy("GW", policy => policy.RequireRole("AdminTest").Build()); - }); + services.AddAuthentication() + .AddScheme(Permissions.GWName, _ => { }); + services.AddCustomSwaggerSetup(); diff --git a/Blog.Core.Gateway/ocelot.Development.json b/Blog.Core.Gateway/ocelot.Development.json index 88475e25..e5aab1f8 100644 --- a/Blog.Core.Gateway/ocelot.Development.json +++ b/Blog.Core.Gateway/ocelot.Development.json @@ -1,45 +1,39 @@ { "Routes": [ + // blog-svc { - "UpstreamPathTemplate": "/gateway/api/{url}", - "UpstreamHttpMethod": [ - "Get", - "Post", - "Put", - "Delete" - ], + "UpstreamPathTemplate": "/svc/blog/{url}", + "UpstreamHttpMethod": [ "Get", "Post", "Put", "Delete" ], "LoadBalancerOptions": { "Type": "RoundRobin" }, - "DownstreamPathTemplate": "/api/{url}", + "DownstreamPathTemplate": "/svc/blog/{url}", "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 9291 } - ] + ], + "AuthenticationOptions": { + "AuthenticationProviderKey": "GW" + } }, + // blog-svc-swagger { - "UpstreamPathTemplate": "/gateway/is4api/{url}", - "UpstreamHttpMethod": [ - "Get", - "Post", - "Put", - "Delete" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "DownstreamPathTemplate": "/is4api/{url}", + "UpstreamPathTemplate": "/swagger/apiswg/blog-svc/swagger.json", + "UpstreamHttpMethod": [ "GET" ], + "DownstreamPathTemplate": "/swagger/V2/swagger.json", "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", - "Port": 5004 + "Port": 9291 } - ] + ], + "LoadBalancer": "RoundRobin" } + ], "GlobalConfiguration": { "BaseUrl": "http://localhost:9000", diff --git a/Blog.Core.Gateway/ocelot.json b/Blog.Core.Gateway/ocelot.json index c9612a60..29091fa5 100644 --- a/Blog.Core.Gateway/ocelot.json +++ b/Blog.Core.Gateway/ocelot.json @@ -1,52 +1,3 @@ { - "Routes": [ - { - "UpstreamPathTemplate": "/gateway/api/{url}", - "UpstreamHttpMethod": [ - "Get", - "Post", - "Put", - "Delete" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "DownstreamPathTemplate": "/api/{url}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "localhost", - "Port": 9291 - } - ] - }, - { - "UpstreamPathTemplate": "/gateway/is4api/{url}", - "UpstreamHttpMethod": [ - "Get", - "Post", - "Put", - "Delete" - ], - "LoadBalancerOptions": { - "Type": "RoundRobin" - }, - "DownstreamPathTemplate": "/is4api/{url}", - "DownstreamScheme": "http", - "DownstreamHostAndPorts": [ - { - "Host": "localhost", - "Port": 5004 - } - ] - } - ], - "GlobalConfiguration": { - "BaseUrl": "http://localhost:9000", - "ServiceDiscoveryProvider": { - "Host": "localhost", - "Port": 8500, - "Type": "Consul" - } - } + } \ No newline at end of file From 6a79425f655be057dcfc5393fe62b9db4b716dc4 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 6 Feb 2022 14:05:51 +0800 Subject: [PATCH 072/382] =?UTF-8?q?feat=EF=BC=9Agateway=20add=20authentica?= =?UTF-8?q?tion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/ValuesController.cs | 23 +++++++++++++++++++ .../HttpContextUser/AspNetUser.cs | 9 +++++++- ...dler.cs => CustomAuthenticationHandler.cs} | 15 ++++++++---- Blog.Core.Gateway/Startup.cs | 2 +- Blog.Core.Gateway/ocelot.Development.json | 10 ++++++++ 5 files changed, 52 insertions(+), 7 deletions(-) rename Blog.Core.Gateway/Extensions/{BlogAuthenticationHandler.cs => CustomAuthenticationHandler.cs} (71%) diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index db0066bd..bdc83da9 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -17,6 +17,7 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; @@ -82,6 +83,23 @@ public ValuesController(IBlogArticleServices blogArticleServices // 测试redis消息队列 _blogArticleServices = blogArticleServices; } + + [HttpGet] + public MessageModel> MyClaims() + { + return new MessageModel>() + { + success = true, + response = (_user.GetClaimsIdentity().ToList()).Select(d => + new ClaimDto + { + Type = d.Type, + Value = d.Value + } + ).ToList() + }; + } + /// /// Get方法 /// @@ -373,4 +391,9 @@ public async Task GetConfigByAppllo(string key) } #endregion } + public class ClaimDto + { + public string Type { get; set; } + public string Value { get; set; } + } } diff --git a/Blog.Core.Common/HttpContextUser/AspNetUser.cs b/Blog.Core.Common/HttpContextUser/AspNetUser.cs index d7fbc5f0..a2aa6720 100644 --- a/Blog.Core.Common/HttpContextUser/AspNetUser.cs +++ b/Blog.Core.Common/HttpContextUser/AspNetUser.cs @@ -72,7 +72,14 @@ public List GetUserInfoFromToken(string ClaimType) public IEnumerable GetClaimsIdentity() { - return _accessor.HttpContext.User.Claims; + var claims = _accessor.HttpContext.User.Claims.ToList(); + var headers = _accessor.HttpContext.Request.Headers; + foreach (var header in headers) + { + claims.Add(new Claim(header.Key, header.Value)); + } + + return claims; } public List GetClaimValueByType(string ClaimType) diff --git a/Blog.Core.Gateway/Extensions/BlogAuthenticationHandler.cs b/Blog.Core.Gateway/Extensions/CustomAuthenticationHandler.cs similarity index 71% rename from Blog.Core.Gateway/Extensions/BlogAuthenticationHandler.cs rename to Blog.Core.Gateway/Extensions/CustomAuthenticationHandler.cs index 0f287f60..f5a06fa3 100644 --- a/Blog.Core.Gateway/Extensions/BlogAuthenticationHandler.cs +++ b/Blog.Core.Gateway/Extensions/CustomAuthenticationHandler.cs @@ -10,20 +10,25 @@ namespace Blog.Core.AdminMvc { - public class BlogAuthenticationHandler : AuthenticationHandler + public class CustomAuthenticationHandler : AuthenticationHandler { - public BlogAuthenticationHandler(IOptionsMonitor options, - ILoggerFactory logger, - UrlEncoder encoder, + public CustomAuthenticationHandler(IOptionsMonitor options, + ILoggerFactory logger, + UrlEncoder encoder, ISystemClock clock) : base(options, logger, encoder, clock) { } protected override async Task HandleAuthenticateAsync() { + // 可以查询数据库等操作 + // 获取当前用户不能放到token中的私密信息 + var userPhone = "15010000000"; + var claims = new List() { - new Claim("gw", "gw") + new Claim("user-phone", userPhone), + new Claim("gw-sign", "gw") }; var principal = new ClaimsPrincipal(new ClaimsIdentity(claims, Scheme.Name)); diff --git a/Blog.Core.Gateway/Startup.cs b/Blog.Core.Gateway/Startup.cs index 5254b97e..32c18090 100644 --- a/Blog.Core.Gateway/Startup.cs +++ b/Blog.Core.Gateway/Startup.cs @@ -37,7 +37,7 @@ public void ConfigureServices(IServiceCollection services) services.AddAuthentication_JWTSetup(); services.AddAuthentication() - .AddScheme(Permissions.GWName, _ => { }); + .AddScheme(Permissions.GWName, _ => { }); services.AddCustomSwaggerSetup(); diff --git a/Blog.Core.Gateway/ocelot.Development.json b/Blog.Core.Gateway/ocelot.Development.json index e5aab1f8..e69c68e8 100644 --- a/Blog.Core.Gateway/ocelot.Development.json +++ b/Blog.Core.Gateway/ocelot.Development.json @@ -15,6 +15,16 @@ "Port": 9291 } ], + "AddHeadersToRequest": { + "user-phone": "Claims[user-phone] > value", + "gw-sign": "Claims[gw-sign] > value" + }, + "UpstreamHeaderTransform": { + "custom-key": "blog.gateway" + }, + "DownstreamHeaderTransform": { + "trace-id": "Trace-Id" + }, "AuthenticationOptions": { "AuthenticationProviderKey": "GW" } From 72e539db82e549cef34e8bcf3c69f453c7ae9f11 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 7 Feb 2022 09:49:05 +0800 Subject: [PATCH 073/382] =?UTF-8?q?fix=EF=BC=9Aset=20service=20name=20to?= =?UTF-8?q?=20appstting.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Startup.cs | 1 + Blog.Core.Api/appsettings.json | 7 ++++--- Blog.Core.Common/GlobalVar/GlobalVars.cs | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index 49b34ea0..b69b9068 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -48,6 +48,7 @@ public void ConfigureServices(IServiceCollection services) services.AddUiFilesZipSetup(Env); Permissions.IsUseIds4 = Appsettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool(); + RoutePrefix.Name = Appsettings.app(new string[] { "Startup", "SvcName" }).ObjToString(); // 确保从认证中心返回的ClaimType不被更改,不使用Map映射 JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index c5f477c4..92d39d4d 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -72,6 +72,7 @@ "SeedDBEnabled": true, //只生成表结构 "SeedDBDataEnabled": true, //生成表,并初始化数据 "Author": "Blog.Core", + "SvcName": "", // /svc/blog "UseLoadTest": false }, @@ -277,9 +278,9 @@ "Port": "9291", // 服务端口号 "RegisterEnabled": true // 是否直接注册nacos }, - "LogFiedOutPutConfigs": { - "tcpAddressHost": "", // 输出elk的tcp连接地址 - "tcpAddressPort": 0, // 输出elk的tcp端口号 + "LogFiedOutPutConfigs": { + "tcpAddressHost": "", // 输出elk的tcp连接地址 + "tcpAddressPort": 0, // 输出elk的tcp端口号 "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 { "FiedName": "applicationName", diff --git a/Blog.Core.Common/GlobalVar/GlobalVars.cs b/Blog.Core.Common/GlobalVar/GlobalVars.cs index 68134874..cb281e26 100644 --- a/Blog.Core.Common/GlobalVar/GlobalVars.cs +++ b/Blog.Core.Common/GlobalVar/GlobalVars.cs @@ -31,8 +31,9 @@ public static class RoutePrefix /// 前缀名 /// 如果不需要,尽量留空,不要修改 /// 除非一定要在所有的 api 前统一加上特定前缀 + /// 前缀在appsettings.json中配置 ///
    - public const string Name = ""; + public static string Name = ""; } /// From cb33310577638b2aa36464fe27e1c8816fbeac7d Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 9 Feb 2022 14:52:28 +0800 Subject: [PATCH 074/382] Delete operateFlow.gif --- Blog.Core.Api/wwwroot/operateFlow.gif | Bin 1024730 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Blog.Core.Api/wwwroot/operateFlow.gif diff --git a/Blog.Core.Api/wwwroot/operateFlow.gif b/Blog.Core.Api/wwwroot/operateFlow.gif deleted file mode 100644 index d7ae68823ab252fef0ff717c497dd611eb098738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024730 zcmagFRZyHwxVDQ24Giw??l1#E2iE|>0|a*o?(XjH?(VL^9fC`6*We6)zP0M#wfE7! z`l`3O`mCR>w-4^_mXeX=2mXkM>xOxRfk<7Hvd<@%z;sU*SigO}BT zjyVMIpP~QB8N&cf7YAiafN~|i+PL)ve6AxD7Ez;s>(qyXE1Lf;~OVzgu)3kTB zuywGvwzIRhad5Y^{rSVpMoZsJL(^Pc(^W$`#z-$+$FxA%wo25hkK1sb(_o21e~QU? zh}32R(_@~_e~I09gC}xJDRE9adCE9v-lSs3vfruCIG}zzv~VagwJs*DCN{Mq zGCDUlA~r9?t18^0JxqNd0X$Qr@w>!oqtbJ`*8jLY{9!!xx~K7|VS2k_VJUaMFKVIE zV=>KoG2C#;$8g!sc=hMcm4w7!we{_7?QPwCeS-+dDWo*grh^b8@|Zc6)ene|+_Ddh>LC_i}On zdinS5>f!zR5%Ry@{NK+1Gjja|xq60Nyg|+&kW&cc1OhpFd*6R~+kSrg{q{Z&d7p*6 zO~1X3KE8BZyfq!Y*B(I1cHi?i-cy#|W9Q$a#$S^so(g6j``2H_wqNIVAGi0<4~|Zc zk5B$Vq8&C7gR~v&@J1vjqGtbn?NB#pwf|urR(zg0}-(pb?GstdP6a&WWC(1 zf}jBC5{UQ?Rt5360kjcW()%N$iCA;&)aFbRY5tmZsKklGxT1En*wq{5>}sXC*&W`; z$^n2`#e6qLlVuq>T*b+eQR-lcNKq;fTnfrOVm?1w^f*#}Qxmf|H8*YzXbmYGNlr#m z4b(AyE}PDAGh&>QYA0Hy-M;ocEM-?a&vtjbSRgHbG9VU7()2J|T*FjSD35;V{LI8( zmX}Wtq_v|LY&aIP3|cnWU6R!}$j)y4y2NtPl)CQJREy*?xlAABngy9fuzV=2Xb~%v=y2d9UmYu9!LC-NEYLv#bB!#NIFg=WUlVOmjc

    )}<`ZkCi)rr$tfYY$&o7*g1ZpI68nUdzq97 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ν6~lKd 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 z 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%0AW21( z%HNqS7!;5gYe(6OKdbZ3Gw@tiVyovlcc_MEYlX$85wb#W9_kwlpD30?J)ni3z$Pi3 z+%(hZ+;p`H1s1IDOi>CUfvW@(YlG6&7R9W!^V*Y@B?g3lKrdd#{FtWRFW+Alxkn88 zZL%hJq6m*!uLG&K)>(y?RCLQ#Qj4-+#dfS>m6)A@_lQM>3$fbR#%24;wj z#yM{HPru+eZ*x-8>7!~Aa`_nvo)Z_C`h1pG5dE=?^&ggv3m$rSTTC@|hA5^UawFWD z+Y?aQ)vURAgsWmLhhQ^Ckm0z(Y`>;J<6Men>-t$G!8V;WcUZH_x=&s}lP1zXD^tb5 z#KsZmVNSfKfvp6jmH>pB&$ITW)2y8@17K4{tf-qy1&SOp><9^}>@dJ}(%S{g!tji2 z6Im)_%!4ce2$4X2X0Pa1jayFW5E{(oIW=LZI&D{c@sLD~%d$^|aO`iYeh|bDd3dsd zxJKUnrt+;8l?3*G_?>@DY$o%BGosO-X}v?ECGSc087ug)z2YW{%z@nT&Up-M|7rIV z@r@8{RqV~=f5FoE^ed{*$XuK|J1!CH%|7r^7;J}0NTP!M)~jTLielRV`gvcUt~B`)9(9yT+~b`Vn6)@76?ARa&-p~8 z#JZ#UTxTz#(RUf95#gbIRt;o1*tDa+2_G}V!v>skIC}vCwK%D^=K$<*gToXaTg)0( zo?1eXAV8IXwGq9|!BVA|VW_J&R5?jldORABcp!X-blp~A1msJ{zI#cf@KM1<0K^R0 z1F?bQqI=ds|1Hg-8kZ~Nwis%G2&SeG55;_0PB8HXA~s0SJ^KJzRcC_{kX$%zI%Wf!vpp_`DBBP&M&CFPCJG z#NGK*U^I6FW=o3KRR@h~2U-~DbUwid2;AOL4D74J2UIM{4VT7&1xkAGn2X_~y0^~U zslrJg7Huoo*if0DBP!BIa1$;YUKUn|?A87lLpA&RkVZ?ugb(9ALfgS5wr-uYc-QrX zp4EOcsz54nTPVFXLAlWWO?w}K<1SrUVu@+VW|05In0Xead1DNW4Q|xDrc&M({6QsO zUAN4hzTfbt4!IW#%FlPWeCV(5eRk|da-&9rw$b6KBT}ukUki2sT$$3|n;^{}&vv+d zY(bLj*wQQ^#R##C2@wZNv3N+u?X`i7Hn#N^1r+-2udHAWB>gWvYt4y0b8K_m#gh-G z^I4E%cF^!JDrho~A{`BIU;RP*fq^6=4)RB&#h&K}3ng1u1EOJe9YXHR;|1N$wrYj3 zY-2ml`t#ow7^N@dGQ!eu=G;()$w!_x(eCEyhu&Tz7mcBegPi66c2fnl6g^vOpv+Xu zbJYcUX-3b@Dy8FYr1yXSE$cx?%#pYnY6r?r{Cr9K-@v|KKg2RCQk1k949nVY9h%tc zikcKk)9_#=SJF0Z4(L|qMPXZSvh2j1qo3Ph>lVnV`Wi6XwF62ZaQ;<*xm$t%5FlK< zOO4RJd%n<6%+@n**XeWi;1L_DI;Fj#dI7_iBiI$6%hjq1j(4yemu}oA8I9ICy!19A zo;{0qt0qCvGS_<5`=$osC$HXm zdGn4glaqNtVRJjC+;}X=X*~PZo$4=DHu=t?Tm4Hlfs?_fFM%vR&;-c@(K zd*MR1gSyh;p}mGjKDK>{0IMD~_&Rehd5WKG2PI)yWM1!vQSrt)%c-{@vcx7MVbUBHlN#5{9GFK$t2VO_B-rr?TaK6kbfOWiOy6iV!D#K{c*q>*#*J9AeC@MWg**Y z&hbt+?5-8pkH~ZkN4weI8jHF$o_C7?U@E6DgHC~z=|Gi9cAy>5%@V2v0Qwh$DO-Ii zG>~G-F4b_BaS>2t#8jp-uXR;5(c^o+etF-cb&tsX2 ze7E0$WZ;zN&(Ayl;0t{!*+i;cH%;I;e|K&-7h3oz^_Ld@Oh7hOY&gO}48)Vh?s*()f(P zo?mbHX2ISy*^q4oPQZDc{YSc_#^DsFUm&H^-XI5X;Mxjq62gIw;UoLyIDwliGo146 z%vv*oO4=`wi~^_OB|Iim6x&fw-mJCm^$*-tuoR(MX>`*fyIcb5a;0sN{EoCI2u#&)Y4 zqpn{I5JEpS&hE%9cqGM%*$wsJ&&F?}OGcE7hvA+il|y7M3&By9D*TkfcBjMgs8EVG zJOuZ|&D)Qi#kQ!Iql-BDs=)!h9P|t%w)bKHuUc*n5n{(-;R}PPL(0EqJ(h63_ky!< zJRK-`&bu%e=jn;S=3${tI)%sT0*yQ%apBzE9Web){<{FKM>xdYJJ>4(i@^s`_}uM# z&BKK1sKWN+i0HnO{BTH#4kumce+B^8C)TI7ajIesTmW$L?PqTFvxY!iz#6BCr4SoZ zXEvi$lEpTuoGdOK8o-W7AkA$KGINo)_0j?xDYx?_`oq2guG}rS+q>sX8B|puTZ=sx z@x(v(oxh;|d3XBrcf~yuX}ekP5Xa}kPCcD3J3f}G3C(&pFC8AfP!v`;Fr-@=3fKj` zA{9~2t8x?0p00gS-xl!{`y!HTRJ!%}*fu@%`-=Gj)_&D{BvftPo_zq|__IimmK68Gh~osmM1#j%jZeqq$noe`bi z9rC{y^;rN_2&VNsma2EbM-jpZ07_dzoXpkbiOVFTzop$jKX|%S_%pnmHr*~aQ!#XF zIzd!L|A#eqnE0%iWiAFe)s-)O+*`T{n+s5SvyC+Irj*gR1To8s7IAQCF#X)JI1s?u6v017po0bAklb^2v&O|GuSt`7(oB})TG?W0j1|wu zn8{izdu@s1V1}WdC9gkw7ptxFN_k^skwQO>`?pMm(4_FCjE#&nFz12egox)~_4esO zQu)g8e9-IfAn`!yxXnw!?Nh-tNOUg9oEJTNYWwW$&BIbB?11QbcFZWkeD+$i_0&CZ zaajc9Npo>NU^^*5D(Rv8Q(R}y3yJ-4I>a3ZwIFfcut9c=`qp)&6Eu#eC}7|EHKGvg za~Pr-QqX9@QI3J-*MW2hxZhy59UTOpDuR`Ry*fAzPuz_J@kSrDcF-YI{)I2UKyGx9 z1rBn2=E2eRGYBK8pgK0&%{nx)&Vj}a=m>EdW!a^0h}1nx>#Xe7>abWnukoNl0+fVd zB_bXv+a_30%R9f@AV*5_FkI7jFE4vTopT^YL@%WrRXaffQC2;LaeW7!6FW(~(q!RE z(6+MU7~)PVN=FatFBE!2%!$4A=eq9#K`Fh3Vc3c@+ZtOq6D{(+-2hS(fN&{o+Rxnj zMI)-Yu_wOE`AUQuse;0zy#awx37>;$0m~R1 zUwEXW@-we6O#nAc0oNS`>y1it^`P&2V45ZuTnP@{5~RZW$kE#+hLbEE91yU{*rx2< z3V_Cru~f)5rMUA34eZ8YkP5;r-I0qYa83$A7y#2zG-ASFI$;C`4CbNpXN-HnL_Sku z{kPCShjmZkm41qj(~>o&1I+8}HW7g^-Wpzg>E-?7Ctaok-xE*fApQUM z?}LKhYvYCjO@0Iy`s72XG9hNHgm#FUFnQhp2S)q6Gh?v#MuIISCG9C4vXm6i_d}h* z9}9b8Ps>ez^L}^03s@1@RBeP6+ug1uF2D^LY~x|g&ud!dR3Hw+iE;aatHWPlfrBOu z@y1?;1SJ_F*W{YdlL8Iw*f{T(?twdm;`5t3l#t$Tfz44F4(gh zXd_^u0W6!%!$~A=n<7vx1*Fu$bV`034`(ZG0`Pp05}#?)sjOTF3>2|cX>2zVRMET9 zuLHE}3JC8Fq2HyM-gs(&W8yXo<@s!+=QQ zamN(5?3;05bXs-ctBf%pnBUC~#6o^uZgbD=5Lp5bT+o?(0dk{3&=a7Kf&1JM+IDrI zH5%AD+_zMQ)zHII?a;GMVcCi~9djTh9usX{bDap*Cq-0VTNktxSKQDuJ^u_{V7iA#J#F+`F?HP#9O2TFv`RdGpfm z2y-V{!L@sg0KS#FwpW|!utWjU1q2LmCkg6u69g19^LQY6EXV}G0FXZr3Cyr` zSE~*kETAZ{tA~N1>dGl&DD&2MU|f9-28=)vM6M8CqKfT-#u3+|N(^bS2C!nX59u&# z*PrpRN?#C|kz|mqnr(2l!OVX-A*krhh5S@vPh2?TJ{ee9yxLLxD3AI+_yPQ0Inn7QC)Dw9 zV!47%?hsz$Y*^VKF% zR6wlfw=L+2J$eUkJaI3-dOU8)-SG;#v@!XwP;p`6?i=j=RV$d~?fv)&%v1hP`GlQ+ z73ZjCuim;_Mb-x5y?%1n3w<*>dm; zF-MKBiFDEGJ35L-?cPq>u^WN}y@ieWV>M8@eRJD;Jb!x6j9_|i%oN}|X%=9srEMVu z8@;(+A!Ui$g=o$GH`^6~;{eDqL3`<`?F~7-(?n9~`^Si5{H_UNFozGfyU62BC~B|8 zBBgTX%^(&gy@pz7y~*d#Rae=jCs!zc|&j`{^qMAKNa3PlDu_mru68QWowX zMY}-6@Rg8o=09WVqxpv)D;^CGQd2BISv`UVh=Bcyha2H%q66lcWjh1vq9ch0KeM@! z8MpAIy+-s*f=1jcO1aSiYl{N>X+%6)F^12y3Q8NBamOZM?kiYWgrt1;{E13L$^wqwERWw!(jFEg)Au?gXXEUR#iE!HD^)vaJui|oV&8QhQ*jl zf%S5s?b?g(@x6NmDsbzqqF8U+A537O_0R7U+BVe1fD(GBdroUF-rK1ScMYRtI@gDeFjXv0>88`ss7(qkh|ktUxn(X za8Fn7=+RYoLzUJ`+99N2cmx)_|DQ{FMhF6GHg$9h@XGy;oqfRz5U^e(d7hjxf zAi-5G7%;5CV8e-v4`oVHT&2EB*ehdTvuv`9(n8x<RF#+M5!GL(HjC4&-)3;mBjQ1z^IbJ?{~D&2TW_QP+c zm4pIXtGrTiG5l?nWD?gzZBe{0RC`wUd^_k~!j$0^$@(>jD{F(_8NDETs1^bHrMFs8 zBYZz4$PR(36G$$C;fBA)?6-*q!nAf#9zLT&Rpu#5!9q9U3cq#RWrms}cwkq^CDvk! z(vCckY9mE$39zg>A;;2DRDn0njJXbu@}AM(bNlM0p(N_KZGsY~z@$}52b+8anTa$f zj4Ha;x$7GRl$ig!thf&|rqh)RYb>Imio6pqoELJ*PO+$0Ru_zBMOO{3U6iUBolu-6 zp&n*F%9aoz^OIs|&%e6TIaEyQs)x6m&PLAkXP=)OcLCnyt?Lf}%&bvJou-)?RHnG9 zeG_xc7h|=#0)G|2I>!?CR^ps49Gzw`ZZGsDX!pz@iTq6D0d_p$!} z*l%jAGvU#5kEN_T*o0k~?46}d-=r$I6KHL_m;reo@P(izItwiVZks^;ZGQB*WAbqb z0cqRD{+*?#G3E5T?wMxqa+pHGC!A4Zb0!UdIJr87+*wDk7sf)>=SPwCvm@Qq#6s6C zH%Jb-S$-e4+t4$!gf}yyR58$lSsf0+A;_p}+vCGDO*I%pkrC67iVz%Nf2yt&mj(sq z0w9-7n3}s8+p{|%IEe->h^s=?2TyuC2kgTE@8c-8-@SL7!aTFxKyRC_`bhjzjq|)# zR7Ag`Bx)X%_zeSfa?;lh%>^b3NE}!9Sg5IB)F`mHKcR<(tf_Z99=EDumO_D@XN)LI zX#Qr0hS5*MJrulAg~7cr?aAQxo?@kk|05H+tzt^wxAS*y7d4ujyj35pVN>k_pvoDsP;)Fxy$1skW9N7# z!*IoZ5!Z|!nk4V<^KGwv zLB>B!qP0Q;xDLHKP8fF-7SO}(Yg-YzBHS#4*Wr94aB4z|yHYUy4GHny$yc&p%Ad!n z_IMzzv1fy;y~T6h2alTnP8if~T>hM}*^Hqx*rc@K5)V||t{$E{uC-O4vuGnwGrCiD+1*ZNN1w~K+9 zn2+U0419q_Ax?PNMx4iXdJa6Yl!eU3dD@0jkUsA0rC`hmj*dt2*=~xXMJ&}wZ^YhG zSL_G15oHd|BJZi5fyv$P#N5ACQ5AdhY%{ajMtX`b+d(oxeG<4K34g?o?&+frEHqb4 zK<}BU31!(4Yq7b)WJMrwu=HLD}#>Q1c?7SB5uR zWlD@-aoNg)lZ&q+Vx^VQ@mie#h;bUTj2C(JM_VzEcuiq}ur<6V_MpH(5mLUb6JtlT zd&3JXPTRB&qte!#)ECL9Sj?C8Yy$bP(vY*lN0#qCvySI;X?-`ZET%WC(=)R=qyJ5&+`%RlNKdp4fJECG)}`75=o zW1S0F9op_O&ivn4B4p*K0O#jBf@>X7d&uYZQgp3HeU>3=9YA&A@@|HkdH85NCsy5H zNoQk$IJtc6FZ0>FazasD%Z)R{cActuKYyp%+}eU49GzcV0mSjxyQLnvAD3Sgue@5< zQR#o~jPc3Wry0G{QOjDv8>|=}sFnCS#pxlX@HL>aOR#{kxUV&F#C{z=-U?N*MHn7; z`QyUT8JfkvK(AGr>}CHyn`#c8_pc>J)iOpfNm9y-3_J-hxbd{!Jyv~jdk!pRFM2Ao z6|1;Cz6E%wnCZD~;9KOHZzK44`4#m~(p<(l{pMxD(AbSbK<%YRZ^q(Okx~x^IJXm8 zJ(~6Y2`)0i_#PImczyvVS-bi;th$E6y%6%+mT`oJ=ap-muH}Sho3Xp+S8riZ?4{)w zu}?Pbl&l%ACRCewfbA4#P0R6BU)(!j!;1OuW-foVdP&ce6>mg*>ub{7GLR5@tF?Nv zRYBCc|3&Lm8UK<^;$(mXv6;fA8t_|=uIxf4I$N{MRvN;xmiyb{e@6=)vO*l=l$>_C z?%Y+pC8`*_L6)&&IXmE8MwDEH_pPoKE6r-zJG~}^kBpP_(hfBFuZ)3`9^U4~9?Nv! z{cOafIRT}tkGIv_)Z`y#X!|B;?O;`7^;N#L`PsJERPOcr z#PMHuGb(!Lk;^lFW(~Ftdk=q- z)+MZ{pN?Dk+g_fmJ1Jpeg*psTvX^;_6S7iCIxxFmer1VSDnxi zXYfAm+fuBjk6d7TLY#VS0tK!IDzRNw`0Xz<$8@-rQumsiVqW0nTaKF)es5K0nkow7nCr8rVFg zvs*bC9}It%pVk+n6PlV5r**a}Aw_0rbfByj^NbZnT&3OYd z8&*D$_YiWoRqH(f&!zWa#pZu7aA-Cug5s#%g8MEf9zO5P`oFZhUL28Ziu#_b@sg zww+JmpK;~g<^Ks!moZAAM78E)>+Wjf7jMba8k5XTEz!e=4u1J`#pY8wXVLs7as^aw z{J{39nq;`=;^pP(jZdAd5IHS;(IesMv9vk>+pH)`aixp=DecE2lFaj7nV$jJ*KHbV zAC5K{&wXRF9WI;ee5M^}+A41XWaBXtW`kLm)eX91b;Raf&*kQZFxMPkya-kQA<)PC{k5C}*X3_8XqGBoy`& zDlCcrv(OLgA8gAkN!t*-`ZSx=0<)(l_t*4mUL46! zfJ$uog&G8~7oVkpFuosq59&=(?j>s?qE$DzUcJJpXa=#DVSCWsP7uUxbtCdrwR$-_ z6Ra{zV-1@jX{G)AAt1 zsEC3m+$RtS_8O+^$?j|$xRl49zzL2TL3@6MD~=r_LES9*)5DRwoo13JVV zM8<}vofsurf6riA8GTWb+T7Tk&)zvbGA5O+;g33Zn`tc`)x)s2q2Ci&3CPTM7y}8h z-D2a!EFbBAp^6W*x7gZqplC7Bgg%Z(&G1s9@bwc@AbTD0Q43{Zec|{{l31 zA4U;^dJX~4aGyEgM~%o7jN$||pY13D@0_2-AlOHG>n$5uDJ`#+U&BA}z3hZ+11(Ff zH={<1;P^4habf-WL|OO!6yKMHDQ@67rKj%^qgKg}o)~RV!?FUdYy=$43RK_7xCp2y zYquw~e&60=GEJ$C3`vO?-9awVB1GG5dW2OE=v1=-oj@PSN$`$Rc8pVq%NWpt=jI@0 z>vKnKd0=P8uy)3@%OudI&aNa3s9ooZ$r#;{qG~@s>O#n|p|d%&R&jG7B)Eser_PDpQ@xNeCmG*A*U!m=SQ;goEqP;1TYHAAQpO9AAP zt@_*#bO;YV1(Y&ox)p|{te?v$Dw)9nrY$T9!dgW$7@XY3fPVoRafID@Hu3(sX-iWb z-6KlYXW(08#p(NsbwVUW2%iUXU-sVSS)YuR-Jw3B=u!IWBO40=rJ?3iPax0Kq9*G= znvJD#C)p2|da3`^XVZvVf;()AWgRGR40-0)Jq^e)Z;NqFdhVeQ_G3To zcbFf-photb1gc;`rehI1kAScYElc$1aV$t_ad=lF>)Cgh^rX-dW2Y(Yi+8Wr5e%!* z9y!m8)a-_wIY2CmvgZNfLX%|V@%Pg9o81)*zn8V-UJ`C0+TmKM_ABv>8rwXNclZVb%|2&{*IRN z=zG#C8#`66N=g@R2c~jTGfo@%HfAW_9eDEGy_{s^TK<9^2#dJ6|996k_E6UY{&56Ma8cr$@Yam1FWYQ3n~WlV87eHXZ^nOM1%2UD7qL~UD`7Q`BAX)41j$@Q9c`A`-B1KpgTGbisp?YGBq-T0u$Z%70mHyR?R-;mn1g{*2YPMZ75e<_WH4kJcG^@VM$&MAI|CKAZd&>**tEfJI>cCJCdEPB5W7D2evA_Md*{zNr zO(TVwk9Hs2=`5^t7U0 zLX1Z`brmlloqOy1r-;zNf<(uW`qRnhxw-8R6C?Bg(Q$g`{Xmyz9aoTY>IYF?#c*-$ zi8mR_?H0K)1Ftm@R_R#{Cx^)NZ@X2?D>Q-{5b??9B~lHypqKn+FX{!|BA=qVDcy2Y zb5u9~3yR9T9TGOC7(Z<>sn;@XIc;qmT5IggsQ5p+?lUaO_x&F@AWH-RMa2!~HWg=@ z3*0soM{4E(_ZCNKP7uYJscD&-;mmBImDw_!Y17QiQVUmEIUClep?|*r=f7t>;DCes z;JEJlIPU&-smI zmP4yC-x)G>%jrFu^;*2U@cQ}h0<>i~zbF@M)s!}Oo%u?#Q9RpA^7;22AYQrP_&SnB z_OO|!m70X@mcM{URBjVtq5))0#k+i)P=2X)#ekhKTZPLdoJgk<54a~DmH`X9pm{2e z&oze}4LzH02zEs#+%A04z>*>oLew0C>jO6`G(K#Ih`o5rndFg-uF@&8?|&7@R03_I zN_Q!Av~Tw-J@ZyC>q*#Ecl?O+@L22qiz+Av8F9Y;*h$SQqHMMit_l1TZIDL9yb(N1 z4wd5H=jBRTcF@CZ)!LtI*rBpK_u~ZslqZscIe%*SQn15bt8v89i;_=1r!CzH8gli$ zq2uka<(~f|F6bY><-DO*1XS=yoZU`K9j z40tgpixo{{`SxD)q_nA%s?B~n`#YYIE`NFTg{gLz{%Y;iP=Cic=btVY1+P@nm%ar3 z`CWCVEJQxvWQC5c^BtHEvC5#Xm;&sj`mIlQRo`3*lahaP@qqO8b6J?kE$t&{6k=eD=x2o=6=^Ck+ekcC=`q!SJ#O;c@ znZ>uDQ&+y_sTER6=}0?#PvP*V6=_nu50r|;wIO+OSgJB6K&}=kbwe zU#sV)!}Jq;pM*GGt~`@Dqi*+eNbK}x>BV}Ij?>VSle)?0+%h68<-MODhkk2F-kymt zYBqlw<4P)(-MwVybM{FN^ad9gKzDL_+f_cf*`jrYzCYpY*nZQLy2cqAOh4T_nX|9$ z#DNH}Z^vGS#G4ct-2aSz=r?)Jd-KBi`be`=Z>`&U;T=J!Sii@2czxZ%-*F`{WM^tp zWZ0zXy=8RZ>xZvpFx?%eR^NuDo>qET?pRZCWhw>VEE_a@toxRGY0|ApnXLAd9{o%4 z;TI0yets;us$B zC*KfqykJUDJ)2fmcYnV7YsXORvmbRoo~|1lP*eD^ksojwB<{UoEAI{|Q195>{^A%k z)Ab1s)w`VN%aY8Tv`mc~MAen~Q0?TW+hO`lV9LOq5IIUJOuysB_c;Iia#N(sR!wx2 zA3y~Ea^sHGh&5_pG6dgt1x8A5+-k33OYwUg#>A$}yvy%Pr)y-qb^3xz|9k&)?gIxC zae4F+s>nL$X;1K%zF%?N1*w4d(5cxMVvm(i+ZcU>==TOp#oVx6%|H53-<}1#oDecI zL>_+6A|j(lnx)_1ElFtxC)bwmUH=dXd3nk@vEbydh3Yt%ZhHkP^&V(z)MxL;=BuRR zr3>;m`1uxF4O_zx@6Kz8AHVN(wWd<}_dAs9ZDVh}>P+e!By(i{t-n4}+l*gL(s$1v zN_iWxdM!rf`*dU~{jTnU;Z>!-TtI1z`c(#_T4_ABs$ z#W*xsq?p@1s<<{#7|#X&(t>aB(TkxFe*ttApj=B6n`eq#Z^U&0;PYc!WsTDa-i#kZ zzKsA^FUNK>ql+o|)IKpsXs1~up^G3^*39#6M10r=Y>pE_6aY9-2nbMS@pEE&?jD(K zxDkS?YM9s~TFLj5T@z37f4OMu2$0sAaxhbTgFE9mhAuD1Xz7U-5h1!fJX&WSe0And zoP6QtbhNvO@))}JsSK!3RM@6kLvITtOD&M`Z&fRb4<<`ojN%Be9ZZPokZ!G>ENT-3 z)0?dYDiy?k{a_&ShbE|eF+049Zv-lxD-#jDI_-#&%WcF60OFj+v3@je7(Kx&!Nv=q z4BGo)0dy<+-`nTfV~@1|&Vlm)=fd;Zj)WcLV+HD*>Zxb=s|K>d#oT0%#vmWf8h%vAQtt6&XYQY30=$TfgOKUo|xSIgwiWcFd&$^H#M zKv)vs3Rdp^Q(Pn$&1=N@F~yhr@LcdF?vg|`Q1Jj=Y`PEE!z3ME$K4ZdGk}OZ8s45a za}OBdmn+rRF28?XHGH$vkt#PFr?bRIK0GLAxVGbbN-%sv_XJRM-M|8UY3|M{{x4cR zZ2Xh`hH**Xwz}9Q^?xUkJv8{RATWAd;Q-64fq?8`D%_eY7m!^SX?Sax-0wcI&$(8L z3A!*3NFDIgMumWLbsAmNdTN?x-Qal>28K_{^C;a49>Pd;WWe)GQ1sK(8 zj4ca`Ac}9}#0&fIa93-w{Q_HkizOpjvCY|1*X7(!k@J-lcN66a0qSz6`Z`PP3Dv&5 zZwEtxF7suFQB**q`pY@dW%6otrE(xwoX>>qEk`VKc@kB!6F{j)9Q!RkWikS3$&y?v zla43KGr}=>bh)lm903o2qM+8UJ3SGgY6Xxy0XlC?v{(S?sW67T5Ycg+-KIk;iSjLE zcph024n+PUC}uaxDRfJlu_WbMV*1;}s`@^)@x|-y;VenaHZ$3|LP>vJlsmG^&mcZ> zxlz0SQ!Y!A!;;I?-)igo5jct0X6dXF#Mk)f28!fg!sl)1GbK)=oG%Mw#=>_14+j{E znv)>xP7v&wOl=>2A6AY!2H10TZg>^+^19PF!RHiFc@iMrM3;}1BBQm$k8Sv%tCVR= z(`jA2&wc9a?z10`*=pcEtzjWn?NOsf)*{`qhHEm?NyK%oeZnen*VjeoM%axne}@Gk z*<3k~IfN|$>@R?%UjX|NlJ5c_wgQnAW??u$g2xAwX(^lh?KL={BMQ^R2Rq8_-N%I3 z6Tp#tge?IaP1bWFizVHHa)}2G_JCvgI7b4&k_(%>mTEym&s>?Fhy?p{Q=!nLnFe>m&QEP_e7s>%($?SjK*A3ckeSI zwR~z3z%IYiKMdA%W`${~U+!Wettk0TbmU!uct@Ywp+3$(p}WTWUEE>cxp zxmSSP*AIA_Y;|#xH=(Oc72ZI(s9r;KaX++HJl$fP9y$@Oe~}&5X)RgCqN}{et{_;dD1Lw1UGKR;#jmePw!{uH5t;)h>X^HG-`HnE6{UE(MXKu{V|}TP1?taMQ&Qv+w?=`mzrvm=N`%!7LlG z5f<~Pu>ueARqV7Ocq94LnmD|r7+<1>J* zLqS66y8r0VEi(LsaPt>2Qc|@6j@1YKgCz&5|p(88%@a-&I z|D<}xpx82Bl#pihmh%c z4GtDQ5x^Z|_Q(o%TQsz_yGJ0Qt-eRrn-W#SDm(j4w3mk2M?sD?h0Ox-B%+bkoLVKz zHkS}m(kS7zATG=iz~?lUX%)~pbQ{z^^o;mqr6ok%TJq9#Y2T+Z`Ziv1qDXShD&KIn z^es9aZ&N`GuJ5aUMUHz7LYyKlGv@Pe0mK{Vzc5$t8&u`U-mufH;(Lx=97Wx;sEW6l zm^O^JFPb}>(DyF*iNjB_TrlpRp^R|^K+dcy)g!9fYZMVm#_$9wJ_;oX3s@d4WfgG# z98hW>H#O@uZXZ*;rBB(JE1q5t4$lNTV-?;msebE2SkqE=`JsD5>(XCC=VidmF)=b% z{23d(%*P1(Ah-B9FWP93@bz(VO=4BklJeNC)F3|6Z)Ouehd9=boj;7t{3+f(hhPfC z-%SG!zYF)A;R zE}`NipoDabob@pzjcH(>g5NhMCULdwydZxkIYoP3vX6Z8#d7X{ePT?@*`#A=ED*XZ z&{zbB?~TBQ3&iDE-9Z9aIf)^4Uj%!Jc_y9U!o$aIN}JyR*p2O!Q6%m#Pyc<6oe`js zU#i8vl#dgP>WK2-YPcxLOYRC>)L858ZF|jr^OxxE(u#0w?HQt? zJteA@2E}-uXY)^Y7qVdYTvX~m-Ge9bmkRV7mBw7FC02@^EOSEne5ca)j~X$Pq%`LJ%0C) zYrImd3{W|!;O{!07A^5m*2aLrjhk*m9~dZPY_YUduT<5mr#Aij0vdTcP@%fN*0RV@ z%_V4b!`$UtY~3x-xT+IRF0{?rCH?N_yFk>R85NIxb-%qpQo9rEa;V`z#DUtE7gd*L z?-ZL{nj{5FnCGe@aBBNc7h>g258$sx#x}cTi22A#%Vf0Fz{kNuVz!59nlF9ShJ$nr z!Su7j2eGbf-#p{HfU^oVyA2UP?tbkrZK7=N8>{$m(q3^)b>){lWdK!;dF=Y7;w$AS z+-k@1iD*g(7`5$CR9bHHl^x< zolVn2AOY3^<8l1@KB=_&e)`__%s!{gAC@m1hyXu{16rZ*Z-e+J<)?zPI$DSY zMM(-()a|`)<#cDJy?ZFuG5lEL0aK=^JJCSJTr_&$?%Uv(r`&GLJvnHuHgw8utiB&( zLmM%0(F($-RC^rA|GZzhu`RUPyFYlS+J{!;aQblM#aE|=HNqdZGLJVrA#lA|qAqS+ z?iIwy@i<)+ALi@fAo~mu9-o!xnrMq+{%saUTPHT)(y3kpQ}=`C6W=0)sZN;bxlfI5 z2*N#HuF?--WEK6%p4k7uro75k>&OQExum~lG8!jum)H+`q13+tqgYBhAoOQmoRs?7 zD}Yu$T?uiJ^{U@k7jvNr2!4_k=ooemm>oNX!nEbWofigB=Z}wb&;dUgmZp%|DS1 z>?PAmQ$8wQEbV+^df5`|lzEBjZYm>$4thu}J#)y$twVo@Fu{10QpxHBBh@zy*saMtM=QuYK2*jgWvcIK2La@ zwtz_4z)99immcxNeJ@|j3)>xLzTa9HHW+oE<~S7LHcdv${PDY_x#$XEF9i2 z-e?p+#R`>C9waa8I+0h@WnA+tjN|EEYXD!yW!<3T-!dCvQSiYa7O7CxATX=2a8Pw` zE49MCNpio$Ws&$+9fZBN$QcNw+nFk7xY8u^06t85TcDu&gd=m_S3ccQ0qx<|iz-PO>)HT#T9cVImSu>s&ZX9L)bUSA9>uKLk2fcxQ zQMZlC!@ZfONzaR(rF0~pTZz43@m} zfTI^k5lbHtQCg)I?73%9mKaMtkGsn(i`1^3E8?+PFz_=%V|{;)xdRqZbd{yy%+x z`*}kHu3cL(dcVcg#O3Itm;6^de6IiYYTxqgusL{+=<|51$Em_M2ZDoc{#X7$I0EEV-X*$`wom(bbw|XIj&~Tm%=3R8+~vTBn)p5k zQtkjQN;pfcuoHEBO)6?jb7m*l{4Jt|QW3rOf?A;^qGC0z4Gx zgDs41QNiBFj%pW{l)7E%$K2ikDSja4aQILBlmhyM2+5t+^tCCyzr$U><{1#w|X{AjqBn2 z4m4X!OFNqKf%AU;r+XUqMhBrmqu4C%y;#?%l z<@TM2l3j#PL;y%xiEVdP`*gmkgf8OPufX0JdB|RceX>@&i)tKKAr_Ziq(+mSL*4&D z^k@1?eX>Cf56U5W_$FKw0M~J!3?=7D*Wfn4TB|>fEzWLMYRDcguBC#{Q}Kqk79M4L z-5{C`F5u{zw)IzlXB&*|r4E+c9lL|!=#LP$?>qk6bY{o;TxydtbUZFjvmXOlL?Rw} zbUzOb=OY>R6v%mXCmS#pbsRK?>j$dTZMKJpDRp4F`Lk__!G(t~c5?p#?3S7~EJccl zm`h|w6P2!llg7K04~>ZYEC)2jWrq6sP-jfNfzY6eyo2^h)9*&ckRFANc5Q8n5B{y@ z?XGFG`xDtOy|`gZZ48E6=1D5HRg`JX=%{UvfRrcbh|+`s#a0XmKPml2fA_#dKqOT1 zP!&S`Q|?=)oSo4xMcD7eBP!o5{)Vi}mL2l?C+mBfZERMDv}Lhz(aw&csxQHMUiK&s z>8LHdb)C&8%FUWe9xJi*WPeL3-xhq23b<74EyiKL4}I;v-H;y(^HL^iJk@n3YyuH`u~`@}M*%4PoYP)F_i#OOT(rk@QU zzfZ-Erj<+LIT+YjIUv!Oeb8U9U2I9aNB(lIb?s~+240r&8&Ef|=;|JAn;qe0b zqp7Lwe27&)V%v!lvuA4$I|31Jcfgmk>nA^rHICfpYpKawHx| zohouz0NVP6TosgQQAHjLaYO+~mjHXV3`*HheA8p-K>(33;EPR&M|dGMx()N%0Oboa z*JB`ISDny}-|7s<{o2>ggeG|-!kNfV0&v1uXgLcJih&F5$Y2cA76YH;TVkVMT^V|LumF&sjUS9}ge14CO)FgVC-$ zXfQ3`{*<^7cr)1pZ~TTXYgF@3f(COTN{3UE1kl)Wi_hhV+@FE2!~zhf_765gY&GLZ#_&cY&1*29gZWJoq0Z1LN{_ zu;@7tK_w)%mqW9el)vRR#ziF;1<(^bD2H%ZdAkO|E2Ib+)<6=tx3MHt0EH*g&cI58 z)k=rQGd$Ho5fKzm8t6E=Sb7x31d1>*kRuov)zOeJ2Jz)974#u@c#yeB<>k%te@qZ% z1Fgmn-64ZsRDvv-qWRv?=L|WMjsLHMlErzAu+I#H&`2ee!+5|P6%~ao0)$8qIm`vw z5FoAY5~Fx<1FZrt3rgW3^7>#Z7wx6nooaoc2AMt0<%@t1g7l;~cpiwNDoOl#lSF!Y%+{OpaOUaKc%06Q@FrL@qRx4A-MTi+IqS zjkLq$Ol`H=&saO66_7n;y5F=QXTfDobrC- z=oneNP*gJz1G6`Tzol9JA_>2ep;WvpjB|`vpgO`N=25l&QIJ2$kQ~06n)Cl4*atnX zm!b-S%j@Zcy7mh$LT)sHS9yt7ci%<)fhfGs1#*}h!9?H##;Pm^+iNvF`|yVbB0a*Y z8GSw!FM!AsVRrr2xvWOv6Dq{793qqdfeFzih+HuMr4dL%^)s~P+WQwEax?4#57f&>s$LLU#1Nw3iarT8G?(HQynSrn z*T$?qSmJ9n^;&z)4kw{08zDG6N<}2lBz5L3&pJzZ2ok7cSc?wmyIUx|UtKAfmMI$I z_-AoX@*X!3B!zq3@=Jhwy2b5*gyXc<_Q~Q?3*b;vBxV`fPik9Y3rm@hqZpJ)22MCN z=*YNQP;hFvb8O5@b=xs$4D~|xH^?J^&Lh5k>8a+t;PwmN&~P%Gxlc3WR8$~O^U-Y# zhkR>R8k0&ps(_@Dq1BxKf)K!asV zt~npR(glrTR=ypJ>q>%Er+N&zOSq$rnS5 zT}C-VjFad;2AkYCeMC$>d`i4#0U6~9jSzH>f8~@eSP7H(8n(9*zNASGp`!q>)=12w zi)i>J^7QBEoFiJVXu@lUeI-B#GGW_wK5G*_NB75Va~?`U+)=z};iZBms4GQL;f8OZ zCtqkY_@e)Y^Q%7gUVL0n8oCp*bZ7kb)*d$cqffYmiAQU(}nS`{p<7+~&RC<)cUVkcMVG)v9ZMKFhfSKu5Tc>vV)a52DS0 zwQ=Qd?H&az^G4=CiA)HQ2eA`C4>2kZkwFH`lPjW?+7vY1)B5`n^7G55v@67$`Op@5 zc>4wvVw(`ohsKiNJ!C{ICYwn^KzmSGx1e(hu$uCyJzYpERrWL!LB~9!Z@|!f>O#&n zngo4_srEdKFcKhr&OD8v5}Y-+Rb4EM_B0{2?xCLFJEcQBs)B4 zW8l~=)LIM-`}c^`CdUq`>?6HL@C2GbizqriSm1Lk6vH~Gz^qe)M)9G!G^}SP_Rwyf zSeTV32|RZI{+i@=Nt7OZ-0BAb@em`dd_zT9l=tEA3^p{HT8T4#IL1XBm>1oNcy|BJ zL;Y6|Z!#Htjgdv(VP8JTt{geqo<7lCKxS3_CP8-dg)1wpjR~P(O1kD>8wr_PvTpWj z7M2*HbOw^G2sVqv5Y z<~wbXBpy6uo2;kCgXl6M$1h9#V7$=ko7SGQ(Q-#Rbx5>ULn9cut>wuICD7*q@V*W3 z=s(y^0XU~zhxce8^b=Af4LZ7^^&byzkcetyKqEKy?rJ;}y#iZfAgI6C7sydReGn0V zl6Pu|iKT#Ma=<47qPiT_s%8!ud^*gFY87<-8iTrwK%X#C-V3^k_fUHjV6NOaG!`v9 z*11G_w@CG4AGdh^Zzhfaub~z-@!@CF(mrlgS5d_dd3SiV4d-#iN*G9m`|uI2v9E~u zlY^+dF0?)in$Jw=5Dgq>hD4P^GyfF5AuNQ#bDL?%wj+qhF>5LNuqtZD1p%~y9Jd`= z4)txebzQ1|h&VS0ABjI0DhaXutYWJWY9IIPL*n*Oh?4Ch({biF8;zaOoSXK1@ln%Y zM$>)9H5gqsVF{%d3ljOPwW+zYF{BYov%@BcH=Zyv}!o)Y9bi1Ou*I>gaEbfov*ZmUD z>rr?P#x;y{Z!Bi1h-maj}?uiolK@!!FKi?FfkFCxZH!>$qw?_hUr zpT6>+878m2R9czlOYoJHH(Ze(uod>VC%pu+OU3$`cRFgUm2a+VyE{=E+1o8USHFz* zMt$jxq9%&XDA^Sp?WiS)hTrJH!o`?gb#1lW6;iYf~rSxsSsi9Gm+aJ62q;}cN zm^@z}!UkYx1)B5ygVNU6l1+^b`ONl{O~G0tI$(Dv?)LWl^hWlV+Vd+1 z-M@|Wu8os6uC4zV1+0O-BkvkY#J@+L3;M-(`(={zGj09vx51x>7Jm*qpG!~hEIVn( z3Htk#wu@p9eR|vu7zHnPxx7=tZa2{rNPE5Uuk38==;+gV{PK^3)jAO zq_e0)vQ%Zft=1ha08U|+K-35IoL85Y&W?zFl z!(r}|`#(@y98M{i2XYU;{BW?|{OH=^o0lKmxRiWxHNOeXgQ+*G^upd6|6gg*T|V6_ z?l+>M9^LEVE%l{mBWmdU|#M>GfStX%&xgpIK%+jZ9~Hfl&htGQDRe*G+_ z|Ca)LvUc~74Ts$LQwPnO2Hnmw3EcC-HTMD&s7*;)xporjOdE%jdRdgyj@!E?cefcwT!k(iXnGc`NE8ZqE#Dp~T#FKTJyhL!r8q!IZO|c!cw z?s3xcz1?1GERIZzjF3w)~nMW?7x+zT4=g@w4y(y3~Mg}6) z!xbBaFW{22!D0S1WiKjF=1w^$Vr&rS%V3Ey8Sr#b1Jq##1;d$hyj=FE@$hygNTA0o z-h&y~J+*64dyoXrWU?>~Mnj5ibZMgYK<+C-0i=^smVNKKau99Un$JV#1PYYe%I!>C zfd#QhSCnh{fHs#2OIjHaP4)G%*ep7!QBElcBC&}QM~Xj>&dIVAi-UmJlUhBE$ft!d z)|0%_OyPNV*dGz|zbr_YaO96a18V-2l5bOGD_&$Zw0Bx7@5S$AWvU>;YW)rJNoC`$ z5|w)VA{jY)g@Vd;4x2`FB1k+slTqV1zI!vTIe;w1T!8gIBKfH=Er{ANrd<+L4x6-1#@!5Ns%T*+St3#g;dZiR zjVCh9fbk{<`Lg9ep`S`bCSmZ_g8(=wkbr2a&Q)9qFE;mI038o=+}nuZXf@wZ|6f9Q zi-FdJ)8&R$^B9U^hqEkMUAejt>$}5`HL6%BTC#B5`+mPhW(Xo}>LK1T@v*yYv$C&X zprwEd*9HUSZndt<_Tt68O6O!R;zf+S%)o|&b0eRlG(L{Z`7f9>$0Q1tn}iMS4uwGR z2R}dxx$d2&njl%*70?e30RBKO_%UnRa9g96H>fV?i{C%)gv%3fOoS~qCZDF?b6CYD zfLw*&YWA<+N#82-ptDAnBc=XV9-WBcYK2Kx4e~(_nyska&I5T5u6LLZ;{wBP!(2D1 z`7$YPLmVCmIpvbCdygn)%NVxt+L%9n$`0YLIoOhznTsccDEq+s=a`va)tA`VKJTuU zX|6zwX_w4yAGUrgfXa>kRSw4wH}U6gk!j73gT%kp{HW!~ni6HVafY%jz_LRM%}Q>< zVNEN4eMP?9?s6OH$K0cGLTTN|GT|U4*G`V}ie#_TaY9WaG2i0J(edhGP-wtt>2$3d z{NIg-BG)TUYRxnz`i=$3ZZ{=fVYGmdH?oh4-(EW!9>1`=5+!16m3Sax*)vQrZjQ9& z2Y(=)J2Ap{k^~X^QU^|6ExcN0U88g2Dy4h3&=^pe*noQE{Q)gLb6R~#F7y+7kr!h^ z!aovlav-4A%R#5_2Qb&O?sDJHHj?=C-&bFr4ZC=(-4^*sAzx>ZC}tGN8NR*&)rS-1 z|MEe@QMm}+p0Ne;_yectna&xR*S+hDn6obY`xtK$F1$ zoxiQ)$rX9t$$de%p1|YAIv2pYMAs|s*X)PrEa&Pk=jsYn9(|P=k+`gwE@IEii^W(d zdazB>*fgre2a)aK989ie5Bp{XJ9(UQyUyZX(~W5lPU9nXf&eBgGNwJwB@}YzJ)r$_ zA~}y>n!Z=Mm?ruRO0ci>`}ADnNcPZO%j&s;yu;R&5-MXNBHG1D{kcM?iEHni$8Ekf znE|rEbd1*SsU1@^j?6RJU|$=*?_<~U4$(|1R59dtnOx4bXgArDTj?ao{TKo~mkZ8G zzIaUQ++GhHKN)Dt6#~`l_r)v&lL%vf$gbz#u$+EhME?R-MV0uX(-m24D}itvKfIX*o!@Q z^glB7-aII5ibHIBcVw<%8ki&i31La?U84$B)t>)7(!)IN z{ClhGyFJpVGjD$s^nmY z7#_#=J7tW3t85DnkvMnnFd4M`U_K{B^QB9^XN3l!4Zyi zfK?s5VE55HXACE8EYJ4fg}J%$G)(?35X>C|4U~c|c|rE`I9+_0Zd@K2f8vjSz9Z>S z|9|Wh+N2{7oY7e@*O@1D5DzjuV$bbiZ1eN{9K3Yjj??*^(mx6jEHL^X)%6C6_1O9c zd9<{|=X!Z=|78;ggA%3I9;BK_&Og!o-}!zU7c!rkG2k4lbFZ%#%1jiU$!qe-4e-sa z^(_j(T~#gS9CWJMJ$3x1=<%mhnboiB;D-xmeNUa3Dj5=g?9Lt_zA3ok%K{y)usTy6 z{2C!|wDfCJ^AKLmpsBjnxVJVGsk)oi z*ZgkSI&$yn zk^8ep?jJq!S>%Q5JswL(EM3!oz{-Dn@Sy)tfd6ou|HCZ*krV!-=lmaC@qc{Z|H)JT zr?dXgR{fv<^B+S6yig1nulD!jy}dQ$hgI}XA_u(A3Ya<(@a9~=+baRn_XB302F%U| zyju-;|1Us*3Y=36oL>zvFFta`q+~uI@IzeS$E?8R6M>)31%AE~_@(vT!qc}{-I6b> zf$RSQH&8*Fia}p>gT6j}_bT7#TR_lOT+q*~pkF6~{(BYhUCRH*IpN+q=-+J6_G-{h z>+J6=pBwc-2bm(lwBjH_o(MF^n=07JqQT2(qNm>jo*i}|(roeIwh=H)FOUk)6BVap zmFNGHjF1@(85u7PXSK?nIFa#tY-nR6m~ zG&3e!S}E9t$+qA_h}OZXS0UcMdAl0GsPKF>jtC|YK{cCK-_Ex+3&z9?4w%jBgwOc_ z7IsNPcg4>uWQUlQE$qzBt;Pi?53|9;kloT8e0VW2J2;p>uj^e*9G=$+1TTJCfX37H zpmShr0aSd^fiI%vEpR9cm01fhe;4Yywz$7v^al=H(i8C@{=@jU~SU zl%E3naF!G?Ve&md|1Fjr59t0b?8xwvPd89$IV`X@jCOU&{VGdggQX-03+61*Czpah zunxO^kS`4Peik0L{VqIyEj(d6oFN{Os1%VTs>^4!^dDgoBk`pk<6hBMI1eF?)FDIiDOw4!BK+diAP#)fSJdZIeOr* zkqF0SHZwl5gtJ^4xLo4RDd_%a+r!Rwjj9feIvpQ%COfL8Eb44SRPEKMy56YzXHn(T3Pj^+!LP;kEcLH6ev!HRze;*apz* zGtSB9oakQ!Xv62|Uy;#ug(Yq3l>?tX2XC^cOgZ<7mC-e;V;_#ZTZ?Y5;8!vOD8 z{~m4_k>3ROYdjm)8_VfFH!y!RSP+a-zhoB1i(`hH?CVS4E^Q zY>S9pOW6Bs4XvLjcP&x=!kT2l`ds)*7imqAFG4U|Q%*}%FpEV$1S*cPquZfD8&MX^ zK#Lx>bs98eih+5MxchmMu9Gw5CYwZj6MM)&Ijt$y zr0jjjmU+IRH1*A9J;iP3`;T&%aoUiW=64boX5bXNrT%TmG}$RAc|qx`^A6A=Eg63; zLG0mou?xwru%kgcM`<#MH2e?asa#Tdfr)3zs_T2)LzXi7tFK1Vu4^Ke+@t2(4}TcT zfOXD%3q&7F*g3{fJ|+bhNgMMG^O;Ta#!1~0kv_TQ9Pv}-p~&7Tk^Xb*{_oi@g7Zw) zk1^I$bAEnr(M)wPPfe5lJYRN9k-CO_zp*}fbn(N_oReuq@00Y2X+J+~8u@Hma1$1X zza2|RQ`r+=cs{LC|G0z?x0h?~TjlsPxuv)6BsWJKb7+LNpG?1aKE2~w`lScymxU7c`}C{p>DPAB zdFYHz<%}-B%Nz>I98So5n3FkjGIR8N=A&zw4^uy`IHt0F0^Qa!pYLRj>CjA$xpY`@y*7Sp{nde!v@3Y>mXT9Ia5}>o^l(Xmc zvlnc#7u~X#g0ep(WPi-ro?izG57G1lAVPqMX^(lmr%>1%v5N#d!FQbTIWC$zU-yW7 zcgy(^l(UtP^D`&s*U6mk`fS7UoIek8{yxw7_daKPJ!fYphe_JSAoS%z(JBYp8N>mO zxUy}jW}?bav9x~h6KCF&Mn9#P{Qq;%({}v3?=8t1&l{|BKq&2$cGrE}LY0FZDOxYv zT+iE{&_1gDs>AzQ@Y9Z?IzH|3d$W<|U5letI!Ag-&9AFJs}H#Cny!@C}U+;Hj9Y5kC6fA?Ibb>%--@xI%md;5tU zu}(NC%H+%B)u8>eEAA_TF3t<}z{hxv*mLa}B51u#v(0(WFqqQ*sg=1K#cxcN_97}& z-O4*eP&b#$)y}u{1pSN4wEXYuhv!EeU8jwbXPO$nNf$@$DkBY#pe$yu#L zv!5fEu%ZD$CRX({oe9d74G-XIb~&n99O`$JcRFqu5_jI@%yeWNox+y%&BK6@$5&Jd z#EXRnj@;a390WlG2!L445k3^5S%c|^CHV#;Dg%noUTmvNDxOe_3{4!)u5PKw#~a)k zZOGg6tmqUX$qSo{p$W?nt`|eGB1IIdihRro(xYKf`SA##%j@T|7l-%fL zWpU-f4(NdYP5&CX=2F^IDE&lYuMg2Yr93!aEbV($u@q_L(My%W1BUs?st9a+1injBYWK_wNiAPK4~)>qByuGC z8UVSNLoF*VIDOUIUmqVyo;@0R#-GOPhHLx`&ybwQ&uVto-j&43djEyU(79ASxc#qM zc*_!qq9SF?XGMk97|%oHV|yw_)B;a_be4}d>o+@I-P6fginYI5`;;+Xe=L(y@iiYw z(SWSq+e_)p?af`^t}fIl<8==Eo=|AG{UR#Q9jXvpHg3O`pa5~i51`$C2Q**qT%U~d z2Nlb^R7-F+EzBznyjvJrw>`?&Q(WW=;gDiUB6iB_>%)rsO1F?770yxJA{z}o+9LcN zkgV%hU&~eR$`y6vss^LFr(NWbn}wTF{gO4p{Gj?K_|yHXScw#nEMV}Ahu~URjD&-H z3dmyZKULh&H`I-*}YZo2cd#!09~AwyXi*AVr}d z4D8)CTH6I~4NT7d&w02r_9ELnpW^)p+f(&3MTA#O4)?4Css)#)rti|^?dR@ydU_N( zFmg(xW)4fMX>jfM2=>`$DEi#2 z|6}XCgPI82b{}d22}$U^gEXZmQk0U=LB&u+dhfmW5_*SFMVj=E(xr)10Z|Nyiiq@H zL+|nMe&;(g=bLlxxprr>Gy6xf*_mgb=e~ZIOn7=B1IdBqX1t&tRalZfpLh_X_%qVo zjBv%do~hn)t(?i?N7C%14_<#DP;ttB6h27Tg&(2T#&BkK@mMGdY{fs{bE15$yZU4T zJ{}{7EQU}pskm)T_=I}r+9_Bs1@?apNh`_YYu$Vr)~TS7#TCTLO0t=c!xlLZf~=|Mm^%1OCHucng|*F+4}ju|D^6uypYNE%umi>l6uAIZBy7{3}+oJ zrTKya%Xn^_NaiBNtznP_yG7jp_64PtsFGnGcDngdIQMJWTI)skIHjoKhIocZJ7kc- zSZH=jEMk{4pM&`G%)_>(f_pAbwJ&>_d_gSgwOpO3={Zxn`l5R~23lh?Eh#^n>sa4f zTO|Je`?jrdjFyPSc-#2Tt+RgS?;ht23QwxkKuc+-uV~Y;@cU=3WPRSfJsWD|-xcVu zhKzb=tNKK}sZck{K~ywX6h=`taLmG$K{Oofyg>l-)sKpd+wZg<>TGWXI@L+OV}P(QXhbNAq=8vYQ*OH z2T@WGBGC$|fyYi-x2rg%bhYjZoZ^3f7>AY7M4rb9LclXQVc9G4U3zQEsG0&wIr5fTVkBisS37Q!gZ&MAecXIgN zMK>-N^Fcns+2&8+^uf6J`ym%xB)80BUJNl8mV&`ZoQvv@Yd?DhE6_Y>W&V4pxcS?! zBSJKs9+s8i@a@p| zg1IP>Ku8jv(OP8fLnyH#z7*|WecS%>w{%$($uESFC*FnG@g_+@(kuS*NJ+`&?X(ttdn zhno4!4=j%|Qw#+|?|0Van0G@0D|=}nULSr%fAn1w2}@ecLa$o=Wzk7RL5NgG<&wK|L-5b{(95RbygAeP*3yhHsgz;4 zEBpN@E~@Z2^SI01G!YVY%9q>0%x@^-de7#n3-H!NrYrd`<*u_*Lw1+t|Fu>Tb2)2) z<8&e_>J_97=2ipduJNqw!iYDAC%GpbNN(|>n?C9rj~C1%Iuxi}*;bh5#+xsFra;0^ zya>(l@);qe2xenKP|X5)(?TV$f=D-EZR-ML(wu@&h4&V7DXzdfT~t;5?Q28fz;V(0 z5DswqD3?q>uQ6dJKOsM4ky@enH*dd?F&d(>NNZXA<%I$l&YaG22DXJ|BP*tNG^A|e z5K&U#=8xb~G9FJ`WbWsz2v^|diJ<N)0~Zzi%Y?hM`MXcyM#i}lHHZ#i?k)LrzKzD5?{nppGgU64~sOwlE1`Kux3e6 zV~M}h*r0$5FZ6lo?xf|t(;}ht7uzl+_YN&ZE|)|;v)sOam+x|kGA)a7S>4ZmHnzIN zu(Zf6XeF+(EUs4~n!qV0$NkW8S;DiF)3CJs#zM?@St{L1T5eJDe#sr%Qt2kE$DLOA zVyip3B~m?BvNOxFOvWLQ*>FYK(ptr_OgW;LfTLHH3qcsSqIL&On6si@!lQAxtkPutq;us-zxC74D^Dk_ zpUtd1GqqNYuvSYiQ>$2cUbv#Mw1T3t(PCQFYAd6g>eaq)qw{E0N5Mu{V^vq%=7n52 z9fvigJ-$!R)8=L1>dOcl{e)HhbQ^STZe=- z@?(HG+ln3&(t~N;gUilSaNYC1o!6svFSd0(t~Jdj8}<7Y8jsej9oKz5?feL>ZQ1~i zc!@7$%PzRkF07<7fYi?1k-!^I zWgpJ85iVHiEnH?8YVBjn=PSoe?Y|zSZ6D2MW8=z8X}=NUX&)Q75$m`CFzyYCu#eB( zh!5PbC*5#|@<()TB=%Q%2v#ZF=YM{>5=m;qMyklGRuz4@kxIC!60sgwVxQ(&6_>IR zz_gjpR83b`g`~1e(%8(DTTi-Uo&1PDMG(zFO2p^C`6|L8Ct))u-Qjia=IauN+?vhY zCWpMv&Afhx{Lh>DlLGmqeX#r-j*ZR2Lx(q)n{T!R(oGQn2tg6kRxy|0o3}{%S%=&< z0%jS7GL5Y=ZO3xMt#V7p3dgMq&8^Zl2YP3uT3L81izahRAJbb4F8?>gjgI)*rRCaw z$BM56@Y`8nj)D3m$G2NsZx6Sq+tEc(M@HOM1C>+bp&;iV0V^Q9iZg=CyuVq&sYPS^ zRkx=`glR#B3*d0l4AI^dz{CHSPlZ0kv*m<8&`#!B!xX@{^XSpsry#8lxqXq$J zx{t)&d3bz#D5CBy6(P&YcICtE{?Kh&h#D_0j?Oi8aNqi_*>8fIxvg73{eFe=yIH0u@TUqbuJv09=+guQ zt8v77#6EDP?_87M)&Y+jL|$s|T?QInNpM|9G>EP3?cIMzJxg#OULQn?zJ0*RW|8+1 z;n+*JBfZ_G+?}2t;XAqnAO_JpN~i2R=Y zsMy&C}m!0kQ<5pzDS zUZo#legCEnNwK|6Eia@JAI=~Sza!O$|5nw-=Kz$A2#Hk6q>0{??pBORW8O}{F#C!`#)$w}x>#oR{aB>uSL76HcE`@YJu5(VKwDyRYOe0ewp!T|1JlJN!9OD`x{5#oSL0 z?4YQIBsR3SLTTgf?ybf4f`b%6caLO$B`54B(qQU6+)amREmNIC{@<|lj1smBJ9 zPU`!`5+Wrs6~{)*OG@e63+^*7FZJg2m0F#0{M!T52ACzVLi7x64XO#EwU0b!_%^ z>N<5AICY48Q<3cJ{O8nV+1GWu&EcCb|9CjXv5hBK`am&-^p|0`krRO8o+ZBt?ppDtrX|YW;%8 z&Vs-Dh4@JZot^Sg4RGLbeqmQoXCVO_PcMU6sNO%JZBxUcHnO6ign-ta-Vr26@z6!?Nw?zIrhv@51=7dJ>= zwPys?%Xg{91$ES3b(UUsC|-$g^^*j5cJn>umQmofzH0kUBb*=!&PV36Cnr`7D!nf631HgzOzV5oNt1fPC^<+Zz7lf_Am=Dc&i%S3W zoOK!fyQ(}Qta^W4`KF&4q9`iU$I;L|wtW3{yIZ*Bx^G?P+rR5EqMLDW$e5iemRoj$ z`=(#$rt&dfh6$oD_B?nH7V?8WWYXw^uzvTDS;%+055N3mzhx+J2FqgIWQLi!)sYb` ziNOrU2yVpf*jA;8`_ubc8McI=>EYnMJVH*i?9a1qYL4r9>d>EgghTY9(?UJMq9MN@ zcXRdT4swV77QxTEg?xV@w@MU>l_y}c$Nw(95$WmINWyQtQ|dSF;4V?~{qFh{ zA0r{3cpoD?Vn-gyR22T@NFmjI^1))LfP2{KV;Qb0f?aOHeUsZ31pL)efB%5|?qeAt zT0#;0(~!M?+AJIc0t-wcfI(`hZrxVSPhifP2gy_U0)tN$`{HUQiA!!7TK(D{`Ms19 z8Wg#bz!%a;qIEJhQvu4Rl^22(ObXq4uVuJ5$e6@Eqil}jaoYEa731k12GTfamp^$e z;d4pjs9UX5t=Ag(!+}9ORnTII2Erg>()u4r>9<=*snc+p*HyN%afjFD&(?yNEAoehkc`k@OEcE8;;_U1ndoO^51%v1` zYzL%kATDlgIHm%LY%McdV|gAkfn)U&;d`7LVve62lOr_0>=mM*xAX!u)6WJ40LK(Y6HVYO zYWaw1T%VhSFbeI7zTetniDt``p^UnZ)c5*&Pez<_oO(j{C<^)({($5GkOLh@>D*pI zL>Vfz7(;VbmNtqc6ZL$~vDf`zNG3q$cC^y~Ux=kXvYu2&jf#KQg5jg|n?@gLWo8WO znS{{()VC?f`f2F$f%ccN$BU?!%2dcQ%C`!e#CID;H&HG_f*zx$pj&Z&w4LQPynu$kJm zD)pzPzK3bMu5~VV`|Srj(@w)j72;_XCXbag;#eDOpVc={I|Y23aPT%^^KK9Ge)q{- z-hR(bTUVkf$v&;Ibnh`oiWlu`t|*RNDS|n_zbK_czjbpf(5GK%n;RyYYz~tmyPl0By)kSoF)4 zvyUh9Z~ozL{;{J8Xchou`UoN@mXa)3X+}jWUZbvF-%4QY&(a-9TTT!ajaPo8`+RR>KoZ~QQKp7l?G)Dyas)7<%1BQ_n@4rAH6iCG7t=2Jmjqr-Y=C7~0 z_bVkqDYY1SVdhnx{BdXi8$6uC^Q@AIhw_$_hopXrt8`yYiRa6=ARp3KxzE)PX1%+} zprs}uI*yAYZipmrrUBehs3UU2L|jf+DG;{A171E=dILfe?%ktIvi$NLN*f+6PXYiv zODZ9A1q|E`1OOz}l&Ccpl%M#_&V3|0ERiCX%zc{_W$;_$We-($W9I5z2ZJX@ zJ)YsVm$CNPTEa1bwllp zLYi`c7n>SS1Y;6IGt0$Ts~>N2=;S>j)RHu*e)4!m=MA2w3Q4<#iZ|3PWuvWDmleE2 zH4|@6N_5x410FSZii$JERvY}-((9Oc@h+6M&f;qg1DBRwb0KZL!;5Xh-!ppeduZQ! zyr^Yp*U;;jdsx3$M`U`zM5c7|@U1uPwmF%R{s0?YWBiL9OU6I?!*UXhMSuz&X)S{) zLZW7$Ue&7G`4#@ zfAQ5mE{gYj)=vH(BQ~7wxQNWeUXh(?A}ocNX{BymNuFskE&I5P_N%>&8PoUIKaVS< z|2jMmW11?aJE>B>A=d#%)4@IMbAK)U-8Wqz)K5FnrJ0CPM=|~C_~}!|J3*?ciSv`=%U{iUr%kW_I@`%J&rG;#)aaOevHV3@}drb@ltmJa>?N*1c)s7BtU1zpJ9iHB!G9{EvBofd0Jq2cmHSYL7zO^R1E{S0*E1dKfBkHD}8E;rt1zui!Hkk8#^^s*w z?A65=2UD-Sd6sqQUl-$Ew}6T_zgdyL+8!y*dQc5q63V^2oP0g!T`AAHrS{Whc9{I@bmhIt@%v^*MYYQ7HR<_)Z((f5 z#q>8D>Slr8->{ujzr5Kpm=FB*k?pkc)yrJz;t9kZ+7r*}DFXnI8m)QYCC;$)x0Am3^-dzjtpJkKXP+y(dclu$;WxLY;;>urJqi?y0VQHVsVLGHC^E(dpoI(B8#s9>iu^UnUImu? z9UR<@0>8(AyRhJoaL51(GK_(YVIkk(6pamJd7>0w8yM5WVM{3JItIFph3>;)M=01C z26lyo{WFBaiL~IrG&pzy4x^-`)}o|Oqhy}A?E-=RLQ#nnQHC!NeAp1^rOo>@4WUL=e`#FI_Loadg}-MbGT3JFWy6Onx&sV0py zl2x%%dFuS+xw*zuZM7%Q)t@{^sXaASQVmp7%rV!fcGGAMeAXTHbRhBRScc}e*V+^L zCSP+MhBLiB#0I|&j>+{*OZ85V@=6ZyP4w}OcK3{SaZ0qa$a!f}gmS8R?$Pwbzgs2r zi+aG+^S~KY*sON)qE61TQQoX;?hn7$KSEypj7 z=aX92BRY0sKH}0w&R&1JelvMp_4B%6=IZ_8<@>3VmXZB;{X31l8$F%N-y8o-xBmXs z`Ez`5a&+X|r;)M2p-e_V3*M;^O?$(!%P> z^2W;A*2>z>;`;vF_Q~Jvvp+lMzjn^%_Ab^BE_aVF_fM`4&aMy7uTL&-POomxuJPyB z_{$so6&`={U&8;VZV&%Q-TeRS`sU^uf2;poeXC3S%?1AE9DjYQGyKiT&Gq5U_1^W> z*7eoW_2ulv`NG-h`uXYJ`RU=s+41H1>E*@6<^QRxtIMnZr*2REZ(Uqoo!{!>;=gr% zes-&~Tb-Sr-s<$^^z7*D;^_SP==|pB9Dj82-#Wa&AD-h6&hfZ&{Qfz9?*hMbh2Orq zS-rfOySkaax|uz@T*93#@13sfo~-R0Z*JqZwsvS28c6N7n_xASp z_YU@PN4SHd{e$DZgOgkBAD-ZjPH%N^e0p?zdU$klbbNGlcyxSlaDv+h;Q;|;ENTr! zeUTt)L1X>~7&;cttr0x(6qLvTi)?`RJD0HV{JoQq?;klfl0khX$}_$5tT5bd4)W!w zg0b(BTz~y+wP<12o4u{;1*A0`<#*sOxVri_nc1%!Hf!R(sd?FY*v8A4{`-5p*FNu{cO=ggTZw3}=dIv$j|N_yhG_&DNk5y}Z-@YPIJ z?Zd_V!}ajmmDiPDMRPE*tpU>TO3i#Eu^1hi&@h`;#Owu~DjKnI`~nRmKOQ%9ruCV6 zJjq-33gHiG;Y5aUg0jO1DYJ|8NeWtt;3oGNlp+bg_HkJ794h3*!LvuqrKE}V%~O#| zi(e6P1m)vUqxMoL%$OxhH->bTchxjd-L?op7D}QDx0gLH(d3_LFGUc$60D>WkgKE8 zG`OmHGBgzeFqwW@2E0gq*B>f&#mT;UZ*n(LgB+eLV&jhWeRO}EJ01r9@xrJGZkA>0 zIc}Ec*d|ox=f71lam%`ODELyk4EMvb5QB_?RN-e)L3rgTqFz@e>r4B1|Dt|= zL1*qRIqws4ChB2-x1LM<;Jc4|fV;Tf5Lr5#gdOdJXHbjj!^$xfAa{T=azkgMxUPfr zk8_LkR#gQ8c<&giMDKDu@hPqD_;yt=W~l17y0su(jjx0jtI`NLz~9`RLMv$3g+lM0 z#)mY`wx>_l=JhC>D3-$c_C&MeWF(B?tu6-OO#CGKl3!M;W7}9=JFf)G+HHQ1nw4hs zk)>OYhcl89dD5?sjZ!(i(t#2XMKAX1um$tQp<%C!K3#lb{j?~m2)1)GA{pCaYm8_SA{yi6tudYMRiY1nfJjinJW45D_sUlk%sZ-+cFRZ+7 zZ3BAqGA;G+lUNT%oxj`eE8KLWF2*$9)jt`pa3|36TZxe`VRMZ!uHW83$pHPPw4$yL8ac7E&~`_dS{A z(s1=1HI@spG746Wkp{LZWVkz2$(~GWR?rF_PZsqowh;rrXsag?PQ)Z<6hR3F)D%@V zFcH+rFXu@5f%hjx*_M&%*;714*j3*WaDf>Y@xW)9lnl$?8hj!GiaJ!pSx*dk^NmL( zXHS&b3UhbHaHO793x!WQ! z)xVT(e?(PowhAJU>Lk zr<&zc6YT?<2+`)aNXAQ4>^R7pZcBgt(Gez+t2-KG+pfqqz6iCsOH%o4Ray9&GSy3^ z!n|*$0PHY&mqG5Snxz9?6`F(v$|I}_wT$Z?VKIp;G6bw~aYT#^e{R#dtqQBuRM|sI zfUNLh3J?AWMm&J#TY6nOpHN&OEYt<e4LdSAXH5VQg4EAMWs}u~m?vaj{-RT}P!*p|6Jsh2eh_xiaBRGip zl}c3=Msnq`;m{BotKLv^AR8VdDSM7&4I3G{yHFe#I!MI$uSiu4zX8xkIvJ&2f=-Y1sr+?|IO z(g)d|u6t}6@OP)MjYDcw!>@GXH6P(;x<{yR`t(=LcWobh=nQz*z5Z-J5PYvEG|th* zu@UISUm`(xK_X^(5UUKgX4qI&c8N<%491s8d>kPOQ5@RGmzN+u@9DDKOlc>f-x8=Wp{Yx^>`MU8vJ>Q#b!5|uTHg~3N*g(mc;bhWKFx8CmUah^<_h-1?!?y#gLuk3~Hazrh| z!TxAq6oRY-s}q2LW}w6CUqPRp11B2DC31lAMUh(#z$5^m3ajIf0iNPu>%Aa9EHDrq zVfG2Wu|VpI4Gcj8HN&AAN8px);BFN72CJ(V>ytWcU@~ls55qw%RsC=akV7;mObs^P z=Iipy-(xuV#Y;a!k`R{$8#g$GxeCnH9r_JRx`PF76qyqpfN#uUpL=}=Fyy-!SgxO6 zGef{*O0zh)S&Kj2xTHp?gYT)90h5HhaY5tLgLKqXenCZunUAE0UtQjJ*0sz zsAV0hD*>nb1zZPEVAr7QaEcE1giUvly)A4Llb{EL>G^7goRhWyfT#RU^K`85S9H(K z4VixVGpRz!?Z6lbcxwY}{M30D2VFzJ*d7F34+CfQREUaU&P6Z{WazqI=!>$@wIP{( zQnwSybRL8B6ClMQEk$)Nw9MXYhyxsk#+z-UZojr}wEK%-bI?CD^t1sQiUx^Z*gWVU z4@7~+d!Z}n@Mv=%)6?*&DzGdGXgw1=h7OM{0t)e&2ctnX80adB97#)2(*TSuikvNq zj5P=ULxKLGpcnuk6F}a90T;NFTa1zeKxFmk+Zz?#!2u2~f;f?pWr{{}*}gKQ1Fsa3 z`=dZN#IG_D8 zcyv5$fWw?I4yM{(X%!C=tfZ*G!2&SAkRp(!O;yb6$Y2ampA2NnNO=qB*+Ed07R5NL z1#Fu`xf4nu2jDLYP=GD?1`t0O?_>1~nt$p`MyhQ`5|7@fO&X#^;Li^%#wYOm3 zrQik?kY;nui%eaA3GieU1mElXTe@(^9n=aa6iN$rrT4oH2~#CWD$B~xu7otl>1e$O zh%SPB!9tTIZLkQ#Z;}Ovov)2LL4Rjba1HSx^aUFjD5GPp`5jw|EzLD1*pPd{XE+Rt zB|WuIU5KT3#tO8W!^i~SO#lqDprPZ2W=8|e|4!X5im9f(JRS%B5RXr->!f+qS^8$8 zbldM42V>d3U)iIsW*H$_^_uj%7Z72A@URAG6k7K@3mwK`W_!o(Zh&T^J9OLKjG>+4 zxCQtJQ62!VIPGQXz*KZ|L^Lf#=a5x;YE=3rR0eK=%r7b*kB|qsQ}FA>grF(-+p1Er zRjH22Nod!~&@2UEHG=##?ApM)LlbXPF-JUzJnH}5fnOPR zlcs@j<}f3@1{S^^LQ1EvMush-umf{g0^HVPq^21I!%O+DAp&Cn5YRc)Rt0>;;e@S7 zF{MjPd(}}N)FCR=yr$YLU!yGjrRCQOKin;0+pM<%nTd(K7o}L3mF&Y$%*FK zz7EiFEM%w%JiY+iLsKZLk@?rYe^f<*8-!`Jf;tu;{fX(Ow&Yt2z^esFf_Zjk1Nrp{ zEEoeD6D`jg1s)Xn#3GU*!SG8Ps9X&MuOsRAQu6sI7ILZq77y_Iw=i524$-TC9k?g; zlP7lfLcWR?c}eDDC6hxy2}aRcomj{?7FN!jEICt0nrQo?yr*NNC2Rz`R`dd#_!bKe z#M*+IuwI0m^}SVKy|vNTPhiytkO_qC^;Ufs3+#AdXoERW{{({i($gILVv(Wi9{^Up z*hFOIlb#R$46toJubV)CzlnbStM7MV)Z4y18Duulu=91#wOf@aXQ)1W+`QJ$?`La~&BfHOWDMAq)sXP%^tpMx znXM10YR|=0{rg(?inE@Pc9_;I>=F&Z!(*Efup4xIhp5l~cK=P$Z_+{kPry&Or*OLy zsI#4qM;tjK9F(-HdxV0FBYt=H!s7W1bF5%A)nL1jKnD%5yjcI>*W_nezXEq=%2Z*b zTR)R2enRk+&G*55XOOasd{cb)-`T%^sr%p^3zd^0@DQ}+nrvi{H#ME&jr6O7kPeJK6u(mZ{yOmXWk6u&^%4afIF zNnS44t(b58{cfd8er&S9hF|1hTawxuGZ$L2@m^qly)f3ipg_JTj9*f%fuBnR(#cUm ze@Yih|sV626IlJnh7|SxC6=60)p`Upaia0=YxEv-?co&Z>Ul zs$tKnu^e0#->c5n$65UsWx8g&XKK*%eCNd5WNytBzvdpgbOd1%+;f%svtn1c9w@AW zcQAExW?M(IZA8dzkRPlb2Q!`4Ej-m+3!2+V(UcXY-AtF;%rxE14&BTt+)V3%owUJn z@tZ|#TP1Q^Wu{vdp<7jjTQxmfb#q&9@mmeTTPBj*EvDP2-Z2@u+W`&0?z!!5)9qg9 zPO99_py|%1(47(Cu!4r2FLOKNP{2Vi^6?yME=Z^-Tb2;D8h>~aJ54?_2e&2YEu zPteEa3)j7?x3~9euK>44_y$MwX6Hd%mhy!PS9q1oUvo|=mt#1Y`CxQn5xzMK1wO-m zPq~7gE_lJh$-gat02uOvg~OWOnMnX;2?{*40o!*sw%$03En2RD!(>Aa_eEh!Aj+zR zBV83Tm{v5aT9nH*w48)8175(IvwSZZRsg4LK^^sqffE2H1@yu%mtSnVOkl6$dzroq|iA{04QJ0dRyr@VkI5)jb`H5Gp1;V+XhVS=lLTDw##6l$&l78J-}kPM0kBk2 zvQGF=a}g}KW>Q)Xe2ROA-o70|z}laaaT`I*w#Tpt@=_O{1kuXnZZjhXkTEYyR}g5JK=dT z_G)TP{cR>y1dn>PPGu~wvZr#MUcG@Xeql36H-7V-!8wceBNDeXVgDq}3n7(Si>iv2 zQx}?Z5hfmk3l^>9io~BER3+ZO9m+Ro9&Id;4a4sdbFe)yYV&+ZlGW+O`!nnAN4YM8 zQ|Fmhm-$ZxMrW>bA42|-vKjm1!ZsLw%e0Qed74>b4;y1@OghTyet14DXPH#o9(e9) zOcLVjyuTVW@a4z5`%W4y$I{{_NjcNqvNntn{M)N2`%L5KC9AKEaf~tP2GDS&%x*!Q z)j~Dz13StTM~gM#G(EzFA|i|2Xr^-8@Y>8$(Li8dtX@E6!Scuxp)7wk0z`HQuDGn8 zRgC`GHyXQ3!S=9OkS^d4jLvoBn*??E&_b<%#&@Q^jYkjfP&kKd~ydQZAMP2gws!{Myn_~6bJDFK!fL@>mo&4;icrF+EOGKc(?sy>3r z#Av--AH6Kuw+6}ue*CgL+NvM4zjXjIYDjXs%9_4Ssvj@I#o}xODzeY`wMgFVX4g%; zQPDoAY>KsYs4S4uDdyu(*DJ213bsmLQ*7^!A}zJ^kJxx)r`!FsUL9|+Vr>J}Q2t?&6^|@uFLN%*`N5l47RC8E!&R!#Lgixk9^XHQVOB?N zhvC=0bH${+A^8C?wC;|G^zID1%(qvuq5#zoYN|>TE*^oXoS6pE!T_x8p5h> zl72q>{oADG74Jioo)d-p7;&tO=O|xgx96Cj(B5!UdLB)xf?@cJOihQyDQ z7WWuMg@`oo9FT~tk}BcYeU%YPsCW#K?h^42G6m`Js2xRXF4_(?6^Z)~hAfnP_t3x~ z>jY^)Mwa05`eP?|9_dhbl}9^infiAtY5jA`BwT@1e{Yt#%guqZY^C`x7Q$J0EQWag z^@0q_A}LWpHg{R^edMxFscy{%15%pAtlHPh&~LMmveN`Gy?7;Q0P{=#N23EyQl64~ zK_g@Ej0C&8yP*gL;G@fMkT#af3RWB~lc|h|Wq^m@lCh%1>9Y-_V(dS4&_9~xO!Xrb zDp2bKLCkm(oilM7_Ufa8p`Sfd=-MwTBP3~tL>@|EeA*Lm_RFTAUn@A!2SMU+qWv}bq!qy4(~6nu z#pQK|mH6ZxXGNY~YvQ{$4x=`Ui*6d5t0E?h)B2ZC%K9MnTAVw`MS|J|7S8*S0L8!L zQW?D1q0-P9@bjRh?tb<3unFK80w_G<2^?fvc*5AAcnMhQ3h zP+FLAB)7{2CD5%T2X!4ucN`a`IM7K)KU$I}eKiba_MFhNK4yPhLK2}FKJ3jFrB<~N z+cQIynNH)O%q13$9pBK-xm2o9>a-U;?n^yeQTFoVD*f25n`ooY?+&{FKGY^ei`zhG z#~Z%0&^9OZJUx+OP=che#r~)}br6pQPc4!DkZQnZxA3WWB)pg%F%&3y#@)!Hs^1rj zpOjr^N{@f)QCOVvE1Hk8?tFkNt~yy=bQ@lTc`8OHG;JWv_t1@Y^g}S2e&1w23|sa0 zDWVVTOVdAGj3Hr%G`4?{2ndc}Q09}Xja4Xm9wziD>B`bGt`Wf{H`G2QJ#4A0Hl>gR zi%}_fwwP)UVG?^%GwAi$gEr*r+k2G6j(#@FII7Q2NA?0&Mt9?`=5n^7-6vDQngEJMX8+Xj@o9fxMA7&%7OW?QfB)z2 zevDsX&dX|{!?sX1Y=;d`bnCcb(e`V-SD4f=@iLmtk>N)S_}GKAC$KyF1NO@% zRqoKbF4o71T{bWqNwXJ zoao+S2uSH?XMU~JPprKdTe8~mxAPUlJJualr4`1q^GV;r#CN}ZJ@y`6QprTli7Gz* zAos3#=;sn8g?2t`^Ilah7k)CMqpNbSxj{7?r_k!l;@e5!N;+FmoK#kY=dxsQh?O=c zF7h3;qEsZmF=K`C1Rhs8au6A>eA!);_wd0)-}PAVl?z^?pFg*6OjlEDgnlHQzvyrq zKPnI7a|!J^fA?DHKF)dRSJ4uqhEid%_?O|$Wr2$&_UG}#F!SMh_TG7ck4LdYWvt2b zH#;ezSJJZ<-eB#)C?2ts$2|l*y@a}Abc-M(49Sl~D#gx^3$^Lz8ND{?wS?Zi*Fo|d zj}y}cK3)&>)}|*@%$C;svp{+Jp7ebLv6OCt<+rbrL;2xXR`Qf9ax^^eJ^y^bZ`V*> z2@;6+vJ>}n&KjSleeAvd87L0?Yn&ce88UL8xS){z)l}cQorzV zzleCM4Y*%`c;LSHz~QYardEOV`U7C4|3TD%RHovcUsI%#>XeegU^YFP&7kY zPaB^O_DjqvsPPQFupZL$9(oxy^jB0_enknCG-Nb5WIQ!wQZ{JdtaL9}>1KJzg6ET^ z_$MnFIkQ>=hUE%vG2MI6G5$qZC-=@^p09F^v(j8=4#3k}P4KBa60Z;U)xs=5(Y<7=euNp>XCEl27|bm z25fYucV0T;T_z1vULf(Envu9V3Z1yp44zvSWaev{qTcwp1mgG-8MX9<;ZRhJLq4$` z2J_%BJz+MsMV-gyivl8ez;5L;GAV9~E84I zBxmZ!^L!yKOD98(L^lnBE;m(#kxI}5)bmjFn68z!5Ps5~r!fZZ80CHqU5LuY z_UC^zN>vBt=?w3L9Q*XnBR|7QGCothF$c=qKVdQG6&`?>=RA3|GCm&%lJoy?{6I{# zB+3{OfTJY>;8w&Xa~A zu?dJnW^k`hrz10psT`aF|BmsyF5F;|Jo$+4;UoZ~n%#a>~8{@vH4TCeB zT{4O(^}ItN7bCS7ir{(#bWQpg`V;cV#^{_u?V+mZFIO#>oqcM*zsY+mz97abBrAqp z5!s)|hHgl$S^%jnNW3^IygA9Hip2uq*whEadIlsvz^U^NQ7_bh-lDM<3$cFwv2D8K zzM{kiYS{S2TLKRdYLjCi3k;p6^J;kQi-^)uiw!LjQ=w(u=iuT0-YslIodP zp%<@Sz;jw_lYT2OL^HPeH2IO6A?lvgbgE5$f{z{tfY5k&$sXnI+e#_(`KY;V{jW7VQ@YRPN2S zLuh`ji?%h7vBjwRv53EZIC_ysqU)0c%9p5A$idv74(Mf$u`%q?N{f);_&133vQk7o zQ??MFs(+|xZ4O*#6!E`JMoEm(69qQu12glY*U0J((9&T!Kzm$aFecj5Usj(#YUO`1 zb)Hd4_8^5(O+K@1B5_s zXr&M6-`C@y1xvNxHs$C=q*W49jBDt>c5p7d;j%Y*8yWfJ7iYQA;}N6H_X7JAGcxxm zJ{1&4bJZxdjej;xp4;>^HDC_>+?)PRNK#QE-A!RCOni|LcJMF&mE5mCZMROO-Ai*$ zQ3X}ks9#3 zGnQSdA)28ti)Q6v@;ne4Vaqev2o__YFUTcGlkxcCU|9?4$yd>M^kJ_Z8MBXnN@>FZ;hi!V-`o&M(*Ek2LZdpG_uG@p5K$8U z+sy=1ZXt#-Hz(yq>XSOtlf#@FC9Flw#*;A!HS{TcG?6xJm&S>`!fiY`WCJ|L&8@dY zP~jkYadcZ^Xp~xXKZm+)bXk>Ydu_4vzLc%BwDrHi-Z6lFF@|l{@e~OzMvZ<ASKw+kMr5L?JvKz)b{vtdWM+1o8j~Zp38%179AkJu!yVyR7`YgsFJv zJlDilG;!OtK8a|Kr>JRAU2?Zv41l*k;j_lGZ$~oVpJT2I9);Hi_Ih+CN#JqbP< zzhWkxMBM1f_fd0vFd)%fgvMo-?tB6#0nq%_1spTj8}h{|XeH725R4P`bV4>=2lhik z=)$FTBN23X1A$LekYF^?sTj8tAAH+jPrCKVRy-sD$YFtE@U~^;yTLrb6G(Bob=iE+ z#d+_uIW9y?3}3%X%_T@^sgD4@*aXn>Gu$#ZxT$>l_`X4!Z~S(CF?hT_>uM`r(Ke%q zZqzsP3-sS$$s(rgWc}_c9ayF1s%^G1XH6B)RRa`F;-L_8a&{dc*)=5f{Rb^M0^JQj za=vcTtB-VZx2SG9kwC>=f9J2hP-Ps~I3bAa3oZ8XW8-gW0dk(=LHB8O6LCtj;9zVp z45O{;!E{mWvtpi`^Dt=X)h8m@|qIL7O_2+`qpDt|21zJB{%<@NW?&Og2MUCvd| z_K8n)Q996m{V6J0XchGR-lj|I#n*&p{S(Jw1ydxEu*#E0U%AV%)^16}{<_#071WHp z&|Z6eyY2%vZr2LuK^>dj4sStxNpKDghhk8~I>AgKze`VdL47?qpxZRd8@CP$JR)wnjJ7 zC|O|j&;1NZDZ5k?vTy%Cuxl`|cRvF6{>G#P5YD=W8VfUTXA4?51g_Z91p^48iUz79R{eKjyQeFxjC&>L z+>6`w`GFLdL+6M52;wXb)56Bv+u)2*(mH&2h>lJpMyZO{Hf7Gz*yL%yUU@Gp%(}Rg)Q$>&6UdH3X%*?KQM&F+g0hXAj zL8YbN1p$}S(LO!Z76pny|KIqq)aLi5CFqZ4U?B{+Ti-tIefz#lOeL4~xmMW6D>D_b z{4Eg=VP1~t$C*cTPyrk3Qd$$nfvoStLqGT3|NgPej^(MVwTeIf(>;AFBrko@AW{2L zP}|2GwH5R*soF*Y@fJu(_%QMGqmUP_wkUx^XQ?818n<;dR8|-v;=C@5<>Updriuct z{C9BG@mQaal=M-8KL3vBdvzy*w;jbXoeHOm%y$&BKV1)f^!nP(>tZ~OpW{8ILhuRN z%k=qa2>Y-bSv(U*12y@|lZA_xJgb&S zre*hIrAD*RNd+ms!;MdqE_LxoBdXJ6dk{5QI%kO5+854@a`Ac~iRj{ZKet>Xr-?P( zr>lsM=(R6AH^{cC7HN$ezl(jWdm5#gSub^8b$^U4(GYj39kF=#(H!AS zVR)0R)KB}yvR)BonFVqEC0;1q7X3Xm%%d27+jj&#f!D~Y%kT8!vaG%m3bRYjaCq+X zJ>4gFY)#Y}#o)Ku0{86-PDM4}0^wK>Al{=i#Q+jHA&CY`(0+%3Ah%I#J{jmXwFq*LZvNdYs0h%S&^&sG8=QG0p$NvVuZ@-xlRVcg&=HtXAyX zH1EpZXz*zMsIPVKajYYKUZOpaL7WASru9v8$2Tauf6S`aa(~-c%i|hS)9Vx_k2%}B z6J>M#`*Xib*B{2Ikjs%mKF_a-bn{vF3SJgR%Rgu|kER#tB=gcoU$1^fB;8@L*p-MY z`bl;VEq?#;;;%aXZZO3=xrds+v8o~eo5ISRlRx_Y`PnAx1c4(g?_E^tlYI_@!_(i@ zLAOe$xUZ3<%HsZVJ4@>*4VvA2zzS98HF?=)szu|VuB7~3!dlIS8(GsqtJ;cVi-pmM zYdv_Q%^p1Wh8+)((pCjB`0RYMTU*Ij<*9|lRS&+SVO?xW&Z14)m4*N3D#krLkxQo@ z%Zxt}r#GDAAlPH-{=g*(Bn(nMRN3bNIVX(mv4&c*7DX-aq9xzRF83QR5B$>+m^j2?`H z6wMfJHj6)-jv7h(J0@BC2*Xbr8+{wXnVc?^A#6!(#)7b=fTnGYXD-O7Zprk+JvO%< z%=Fjp5p;lxpYR27qCj7<>apb;2@D@<60gldRmv~NZsu|h(KeNRcO!+Se<}AWZI_&Nto(2L$Q)qV zL9m}d8r+KD(FR<3NMj`zRn#T#u_(*&878&#mnbEjEx0>g9tR407iS}|Os+`Xju z+WjxsQr!1Z+5oL9Z)Wdi(!a&JN;}oJjj}!#cKr71{p5JWKIhG_-?of`5-ME#vT?6~ zLnZ4{v;%Abm9@r=Xhiq?i}4>;|9vO{_@Eu?aG-{7fK_YOr8jqtNcSw_6vJ!eK7KKn zz2LgmZ&Z{PL8n7H3brKOD=t0QwzF#u`dIg%P{!#$N`u@R?OZy{d|e&g{PPPH;idnu zQc+?~=~MwR3fr{wsLJNubd`3+ZEuU-UgW*jllzz9f3DB}qbtt7B6EEJ_z#@@__5F5d|Hkw1?< zI>}c_z9qeAoU9yqq;vxje6vuh#NK{Au^&enL7+Y=-06OGgL>qT*I3jc%NTmhE8ZJF zYJ#L4^j>vOi&sY^Q|f+1@h07NX#>1XG?mjX2O5%QvWb>^O)O(8bBlSyZ40LQv?M+xWziKn_f_=NE zSI(%~yiGuMdg}hwDtW$el4VcpTy&`u#&qm zD*!4_{RwmCbTNQ|y0vcoDY4C}Vd_l*BB;nC{!-tD!jJ0o2ua^H5Og`s*A4tkO6+)M z;#1&{BM$5Gq>SdwCFb$76#q48x}xmbd``iZgSk{XrCU6&QAbqg1rHie4un3B^jG@g zC)pf91(qIzVRQZS{ZGfh?oGLdYZUR@fxcJ22Uw`uuiE+CN~=>WW*_eAO!~Bm3x<197XMg z_ACGBe)D4g-pfC|cH~M`pq+)5$j9*Pw^JfN8$w|3pRA32X-!G%6Rghy>ONpPrfITi zQ6gC1;hT6fK@Ixi3p@Mars`TvC4pq!|$-j1cT!mrN3VszMI_W{#Ezt7;EOIso8sJ zxdJzW(tN40=zHFJ<|cUOP%x&p=}W5-X6dhqOXW+S&Ak)RuDPzi0!@Rw@tqtg7}zMc z7SN09-NPjC&s$7gwv}K57|ka-$ythSA6Q?DBKw76*atRHM_#U_m=Vp*u%nkT}_tS%*OXXjo#GqD%xSba@=6fz-52R2=c>DvBC; zl~HF%b-;t=`Kp>0r5*r~)gq`VUqo0)#n_~fT@a7Xkg_e(%oGf5F_l#xVy!oq-CLDd zf&m=yid+Om39!VJnOV{r+q#De1HJ4Nh(~rvSPH|DLK5r4NaTWGI%}{NI++1DWE-TS zE(W$kvhA-)gs;^T@d}x6h!mLHbsbJeQd0+Wq1gd+RUUkz4~1aXcPSuM5AGtE!eX^T zIvui|px95~7eS+rhh*C5WM+}NwI({VL$EMY-92NmsdXyakw*EG7-SxAI51R~2sb-x&^iMf91{%G zJr$0J40cV#1DPy}y%=2A43`K@Ab`aH*zk17Kplh}0LL7x8kQ4y>PO{;K+p=Lt}PgV z5EI*_sM=PeVM%&=68g;~ne!pEs<%SlkijWI&&Ukgvtd#V7AwbVL~k0L5v(4WqljJ- z@7KUtc-^xhePy`pIoLoMqc8wg4`f0jh7HXLHU<*7R(sk0Lcn~XoEYl|l`8e3Iu|5N zavZ6%IV4<)6fcJdU%|Wj)&?A}nx9j_dR>?c507nyr2Daz-i>rbIP!BYOok6GxrA5S zlmrxl=t}Wg))yKMF9iFxydGHg*hFPqQp^acphwV1G1b#UDxQMfpL;0dSH-VT3_ZYC zC`0x~tMa=;;#GJ5zdnrrw*fvjoFLZ!@Z)d=e}B7#RfSm5Z%!xs}qf$-j-I%hGT^{vKDD5)L@~Cmt5bFtrG*Z ztfdW>D zeXR|n&}7pXXdy3Cbr52XNSSsM!}1~V1w5fe0+k86@oCkv9I10$C!b5BBSbOuOfoz* z(HR~Rsg{hnF&T0ETFnhDdj*d2*fH9t^JbG^7m-GV467|54Lnw5SBH=uJ9XYtw?GKg zEX5G(C0&J=X~Dx`aJga{*#m-_yieiuwsZDNbX*o%?)!8cu<(B z;W5E>fS`J?VYH1@T|%mIi85Ks8n$5G0{n2zjcR))5~%GKYoB~7!QdF|XiJH4UDubV zp@v~uz*5nmxFW%O!V3b`mIAEvnDF+8@l6Q^<0W!6`}78s6hsa6b>2GQeN~E zbg^JmGg8+GfgZ=+Tts#q0WXoa#LkCA%1u<>6CN9^DlvUww3p?dN7niJ->4pz*OQdo z#6L(GHsCT*z|u&P@%rAku(H*9ST9^6jjRM%ZDF%clVYx#RU+%DzJM>whnLrbY@N0Y zVF(+MZxzo?UG2g5bSQ?(parzQ)>jh?1jQ8OtOB_ zO1-R@PDK)eFG$Z6j9fBNGor{Zfz^}=;>3${LNMGkK@5AT?hb`+?r|G<=6KHbi4<7t#EP7xpx-?`+CWv}$>0D%bTt75gK_W&s$f3gUA3u4Jsqy6R9((fXNO?ZITm8`3iLn^FyjPJ&E`~}Wd{rEN3mxfQ#1aV-ZQjVmZ9Ma{Ie#`Y;e#%6g*t(lS zkvB3y6z^MBdFx@DERZIuQ@#krZ+r9mvhVlf%;n^*n|}UQ6q9bFA%SC4HeW=`GW^78 z*diq*e#oL!kq5>G2SaKsCJF}xqyBGStCcRbQbd-(2;L#LQlxG%A@>ndM+k{4eJo_C$){2ltfxg`zPQl> z{Fn)?`WI7jl)w1}IcoT6^(W=D=LFs6XS%b5+HH9WLY0`UkBxn(XVtLsSAyz_?^Q)v z5Jb|}S2Nj2c#hnMj|h)DS6#Mg+W5mF~ESv5|azwW50XaGg+q?77L_`{_kA zD~w*%c|92ZZ67YzX0N2NcseK+o+Lg+`Oh9BivpjCfEa$@G~C)WTBSt2!S9Kx61l3~ zps~NIpg|-Js_z@^Bao;B6(mDw6>-EG&`ATj5C(hgO0UQo18u{fZc{x?z7;itEB2J1 ztKAmbwpciP1@cqf-a`^W!qS+S9y0&-<4bb2LFqp&Klv(RlT7uHSGSRhOGpcO8H-t8 zVQJHoilG`) zy=@$#9>6J|O84Ym`mxay89f9IQiy^C+_n8Ms>B?!>4W=$gPVe`rPAnfb%|d2 z<@#^b`Q6dQU=~OHX$)VW=o}BiwE}TvCgR>?k>hXT!*_pv1&R&~>1-O~Du>ishiC+9^B1FQ*~jAtfR*KR2UdfY!sDXLhd z>jz&qm!a(+(pN{$hndobUApZ^!#MQCKj6}xou9Eb?8={EgQYaVobARhkCEdb{c%tT z!&Af6T{CB~r+Au`#bf@Ao%)j$v6d#|@Nm>ZyO_LR`OBZ4W8Spe-MzwSS;tk~U8yTa z{)zLUt+Gj%-w-UEV0s9A+vKlO=DTs9JMG5S03)URTH=7B6dqB?qbqrw9GnQc#H5FC?7yVX=3hD;&W9l(Qivvm zH`1qi*uxssdkra#2$0q~?{$Fp`sszL>nSQ_WmGSbzkM^p~5MY%HjTBp@HJ* zFO}#dt?`497i}kf6A|aV%&}YNhqljj;Js)2lRfVe;sU#lg2&fOUj^q@MK9;FzR#iR zqq`8|-_&yHQ{!*s1iOL0hA_Qv)xTW!dcR^io>|f*|L^jj7o)#ktTvq02pN3-p&$38 z2WIk3E-cQTpucsk{}wi2b?ju#j~ZX_;=@>{f>g)PlDI>5D!l3My7b>$#H@(UczfE^ zrE$fNL;dTW)P*VN*RlSu4pwozpEovs*?sHWyKZpE`|pkhNJHY~(S<7bQo>Igu%_0( zoHm*x-IxE}G(7Qpd1CVq?fCK}!SFQo<*Aq9ucoA5IfiEqhNlk<0p%~x)C~Xh{`)gy z`1hURc}B|lhnG|bu-Ng-fBy`PU{J*DifD8SyO>@(dtSBmeV9|VdLGB~KwcH!zKdlR zFN+*e;}kCKd~eGFX}fyI?tGui50o&Yh1vzaR%Mq$x4D*yt~Qm1I67{fc0ci4y)>z- zJ%wLvYDDui@9W(6e_L(w*!S(^apM^II^o{;Q|>^QXMQ7L5-~*z9k|21R>nN8Ycl%iUZQQh&BNU1n@Z73%SK zdvg&Bb;SH)7kj~}K>hDS@x7oAouNC6FUo$Q=JhT9)eE?t-d-P>5m9Oqin>!h^$@Hd z6y4&#$b8cw|8HkR#E;K|sl0|2ts%Q}xC)CIr@v?Q-}J=%ucV4o{P}Z{X5?q@piy-z|GW%Fl7O zO^`H|KKVMVP_E-|bSAc16sTrDr7|I3P;XfjnpA5UW=RJfLb><~Zd5qR3Pf+q@1rZ( zRW=3uTPNt@L9yxExq;-gQFhZ9{HRT3y|H(h!FQyiT`#qEbnc3bWTC2E*wbWQ^y!sd z0Snzt^{f7Slx=AX{vfn{CCedK-Xa_K*W9FqJ=6me^i_ltTDNvP*YJ>PiE#4IE|9ur zkaIQ6q4T77bQv3`GyEntab%3=dRP=E0P)N;tA(vMY4@`7GnF?VBi6DWh+jQ1O3Kee z9ZFZ+uqYkok9V*3zOUcUD7)-a03Nuh(KtVrgH)|^n0$7C+kpg=Cw9v3OyRm3;znJF z6^2L6r=FEnX$|bLnwn!a(No$D<=Q{fcDzkjes7c`J-K}@x~DR9(8^D9%R<4M%ctdr zlW=u`jDM$u@}O#CdUlUEWU4o5u|%xA>XXdyRji1$dPV4gjKoZ3wab~1;Q`0B!i4d| z1rfu{_(Fj=&v;#kZ2tj4uxYp3JbrpZQZtLn&3M!dIlO#C*8o&bZ4^ z+DOE-`3AD;i?~SCI!-D-bTHlRSs2H1sK#RKx!tD^p)(Inqrcy`J5 zEQ41gf}KC7i^`2I?Ty|wNO)gfQ&*x*crqhp-gAt~|n87eIU21IEyiW0*OlaIpK? z_Wh_@+yH??$i+#AhJcPjf`Arvnxz2wQq2pewTtY;lcmGL< zZ0Fv5KJ_$LM5o18SJ#wbVw3^B020Z;Ryf_m@-IzHo7|YEvh{{PFjEMg(1fiOU={K)*0e&e3sl_ z1x&L$Hpx1y8a?R85hFsT*iU9nL|RVNOE68+`(7oljGWm#ZcQaE05E!7hYHf02+mr~W{CDL8(hJ-h(=ohEnwU00=6W*^nv#c3sA4t~W5H+IO%y!uh zLCUy}!(9w`9lvu-LSX zh=oM2%7g+mhRg4D$OQ;g2W*6FZ=g8Mtp4T-%(tfM{4h10<*xSf`bmHWaO7CzKDwLV zJH^$Rr1;(?&;9%Qx&ukzZTUjA@ZK&#A9;9D!5R{dHX8mhm6v_@bWQl{E?9fEn9aPE z0NLdWP?u88vu_1M;+1J+m-4d1%f$u$VVhj$=CV7fY{H&@O~mO=Sg}<#kl0hO-ccgG z5qXd?c9$Sr+)6KGUlR~Wq0NqoPrp*?%|c>`uh?0Us)h0g+?8=r9hd>6LnK>@4jb^LsA( zKI|$6QnrLxwvf2828lQr6zV{w>ca-pqZ>hxO=6P#aR|djfx5xfy-Add#ALAYpXfez z{YSeoV<4}l@ae%fxc$@YJIctFRKPd!^%q&gbO(@_Qvy8u(r1-(IIE2_J$Ln@%S;Ct za%+`xh+d+fpcV<`Rt+B^;E)+jP4<1~Ae)}iIo)QHgjznQ}y#*H1en- zGFu?PLtVoymHM@oOrQLT_IM{`KdB~adJfG#^zh-p{Py!8!3ego*z4}e%CNue0z4+~ z28>yCwQvJgd^Dp~z-QT8i~@gA-U>&Uj8H{3Vcx0KlqY}mRL(Kg1lu7f#g<{xpRnm& z(>(p}Q=7&b2dmhiO7l@5!XVpeY+ zM(=&C_F#{k*fLW5Qw;gNAK2UVs^^LV&*N1NPKe0PELngEVPoyy#XwSTvm>njFc}YS zOQb1ti16Uv1S9@{9!uMP@2!XZS%gI68Q)gzF|TlN#ZcysZD10r`2%u{rWx#A5`ehx zhI@(3iKamJBgqa1&JQ?|D>&hG_$L(<>}kjq_MzzUarNL4d5OyR$RR07$nnWM97(*4Xp{MY?18LseM!U(BpH3<;FESVN z+Vm)l`!7uM$J9s&xx&-#Ps;#L!|K>`IP35#({L5<+p&l02oV8e?iF0F{FI=8tPhbG zy}HJLhzm*>i6T$02((q1#Ewp7})X zu_}=XrS0QTrcakykPs0-*e^O&g4S&z>#YW87`%kC-R}VtpC`lG#l|ke-uyl>`rltC z6c$#+Ip7jLuNgh18!xiRcRsr2&61clGxr7e^rIa@Y!n1l7G_?kZ#$Sj${ux_7|R7pGdgD6WsE8zg4?Rm&vBGUm3vgg4#Jjhh;p(Mx*d1Pe7 zI3w-dvTfi8#Bx=oW&px*yT2bMz?QxB zXn=V)n~AczN*NI98aqBo@tRtjC&RhVj77HL0*-JZRNlACuf+3b)N>EbvegS@@sD%B zDQsRWhEx7_@QZ`nT2=wV(^rHFf0B@?0#u-=_aM6zMd4mOiM%G_mZJI)aJywpsCA%v zyD`!iE^_5Tz2eFXJ@9Z5l8GZn69{b_$p{PikAIG;Y+k(Z2t}=0-kwi~Oe9b&iDPX|dbN&?Eja`iB8Hob{_m}pGEuX5CC;BhI z7fvwu_iUUakp0sH#p;nlZ@i9vx&ipJET0Igc)2DrSz} zXBis}IZb-U%;O_Ge%K>sahuBckc@$b!}*iU%h@GetREGy!41qfdKQhCVmrIpjAsfH z!{OgCFO6p;#%@3GpsHSHazoZI|o6j#t zbpRGTgS*=Y7}-cMw9SmeYst$`akN_kdvJc}(mG#$!1Heb=b8(%kV&*=N{kE<*C{H; zl=N$A?s>*y;BzYKh!Jq0=x?D3Qdz>^%jk|Y?K#O9)XE$=y`h85)b`ALxkUHUS!+N` zt_ltbV^BZYG+>uPl(Pv|OBxKWXKwh*(b=mV7bD(BqMbU?Me8|rAi(01Ea0{*=(oY7 zq@P_lAc)$Kq3}C@0-UA6pQZ0vaLFaBw%R*TQ>C@OD|!{Q2t$iV}xOY-~r)Ka;7Voi-}kLq;f z`bwKb#hbHqis8}sE=)|#L?!2F-Kw+4YdS4k(Jc>qIQPz44t1UYVIswA*TdF$ ze_EaqO1_-6a_Bzgj(J)m`$Smq$*-O#gS4%*f?NzSj~|pg)rfhf-TO?x%t%DHUHron znV8n^J*{ego?VTplv(3F^?@4UGA%(|fEY*B<+eJ1=$@+^m$umc*^TfIEj}^OPf4xZ zzdN<7p*pzC`@Nize=_rW#S43(`7xdP)!oV0F(MT4@Uotp_%2deH{7_}r#JKPjN1M1 zde5Qj^QV70ACy5CdnH$U`|kGkK{n_{X#1ai5U;+D`Ls!A^P%s>^{&JBy+h*dqA~5# zx~*2%AJfjZUel#?7ef<`bI9Kz$Ebkc0|MpzT&lpX0F3al5rpls3c@YNNsN0QE=}@> z`VIE$kbCm+e+c98kHGt@WobP29xH>w16O;3 zNGnH!W56oT;$3LT%EUE`yv9cpI~VdYporoH6B#Hxx+3X4r~z2zdXM1%BywTlqA*?$ zt!l2x*TV1D*oS@iD%}D;48GDOiU;;hd;kiwtZ|hRUzfSTUBuwvzpoFesgsZzXdi=U ziY#{_>zKZ0@RY)=73sS8U`F=&)OS4r*xDP&-x-XXz+SH|`^r=9^C$c(Z8n0>^j#>S z!dM$)VYapP<0=T#8eITp$dDoMVL%!A1r$j)&g5$2T7URz z4Y=|b2lOKeACa!@txR3lmvjWa2Y7HF2?1iw1K?<0_LKUrsbIq@O z`~W1EqV#UKKlxqS?)SG%RIlTX{?{5bZ#jv-s|Xs7<1feXVT~cSUm{M|8q`+=TKm7I z!G~`$b7K#>;T5^_Nl+sUe`}G|BkECC41eSxfAJtkzNYB5>78=MI&(C?N}8SplP5b) zkxIjHuy(-z&v|c+y}yx6h;EwO5JoU?SgY-^tjW0P$AQl8 zx1Eb_S-%esbE|i18*_L+YICDf!1HGDHjS_P&5O`RbaD+NmQwg*LU`1;5{(r+I28z% ztZTzmRjolKXZd@xSc)alNp3Fa z-v`&ZXmmNrG0;e0(2OCkW4~0h@Mi$>rZ}MKSQ`Xbb=14woni-q`4{!ak$la-x#&u< zq&li`nGe~XaxW9{Ha&u!G(%jQ`t|XG!=AqHXuBBi%>v>!+(X z+Lc@>(}`o!c(l;y*yQ>mU88C7v0HES+sSN*Xk?au@|M?aVG;dJ$1iIqQ;m)2%CC$|+3c*;|I6*SstG81#;Ug^M9#t|z!1XWyIj?)+8_AFvk1iDJK5Ut z08fSHVK$ZzH6o%z<7QlV0YPuzYcgy7d{|L#{V@dWgCs z8@)sMe6;R)9~dH5Fgu^41_D;4>klp1*X7*=Ce|9{)KYT93TN|k@(Y_OK6>79j8+PN zs-V)6WURNN#lKmv9hvV&1uRrUBI5o+sl!LpMl0>_3vXHd!%wJ>pu9-kAe4fe_%ppp&bI}DP+p*52_DYM*Gm?xu?YCn_jl(>m zd@RhKNjGlkXO8yd)O?Qdqg5bE;_)U1rM|lfC+Y9(gR9^j_h-v@mzOujLzpl{X;jD69O-ss~1I=5mB3 z@fTMp5ql2(oZ0Fe#WRF1vwHn`L5^x0Uz=}PPGV<{>c3SlzvWK~6==ikQ$}(*q2lA5 zZlPcuR_|!afhD&pW%3dFet*1-P4_7c7Xr!Ap;P<#$8^k({(o$-2QR+OS?KH>6l8y{ z-FWovdg1swyPG$@;-{YGJw{bu65ra7c+%v!r+T&b1FK{NnxjJQCgUsT z$*`j4qam?OPo_NurE9%s(>iC$FA|p8Y?sPRXCsA-k>)our^>;r|B$SxEiMagAsm52qe1m z8=_woI$9IS;=#z`X&f4v6~!Lp^DZ|Pw)@M}A2lShHJgHC!Z4h#?g{*j5Z~fMJ5|fQKnEI`vEYk zJy(nPUG)*&X`V^_>e?KBjMvF3sW~~(*1lt-@c*zVSV73%*s=!OuKwD29mKf%;O}y8=0z~4$lausuu-+ zGfIU=M@j1+U^qHFn!PeEa@nOJj)+@(x}S`*>>W>pCt^&0XLBu&GQBOG9+G11m{7dO z?`hPkJ?zQAp?q(Ps4*8Z78Lt4HDurTQr~YA(Q|g8q*VuavX`dUY^!6N!R#N+bJ%_Q#pWdQQF0 zXl-xfjWBuvxl+3;k5O-s-a`f(kz>9G8NwBx$f6O#n|j9_H_W&i$sNda1kXfHw+c6O zBh4aGkYpiY^%jOsrq6K|T7T?15?VN(tk(0E!2v-SdA3AvxV|Q=`J2iJ?bxL^JbB9U z_OWyGtgWL#{9b+C=G7-L9fj5x4OgqX)eZ#7X3v?-ZS|(8*Uls}-S-?2v&@~>fQQMt zEOtx@3;xhHBSx7O7C*C#T>F@BeC^YfoB{6%VXuy4V+6_3w70`Hnl0Zjr65P(@P|<< zVn&pQ3u4F)5}Y|OSsKNNr>}#B>wV{N>yny=wgkyVAHK%{aqi6Sd+Z)ho95KI3vio7)tM!3fS%U?`@O#}$&@A>j?OaLa zt)-2AqH>bikQHmJJi~|Ia~1&rdDf`T7;_>j#e`;y#RIHM6)12vmq5*BS{R{up|?hr znW#Sw4@_XS&M6c-4j*?3Fsj=*dMr}l1vC+rzfXLOc znyRX^HtM5A1L%k}H%t7>k{l5As_$Fd1C_0Jj&%3#``q9ut7Q9+d|CLZ#l-bD7L8EK z4gH9&cHN86Xc-((iEyf2*wKX*o zr%im6)Akjoq$ZPPUC^Jx-|EE^_@;sF_xR=bqeijw#lugNuR6W&hAK_J`zd}hJ#)5L z-C0#~Ip=KQ@_|D!FU#EZCmVgbFG8OWbbovx8MBnpw@W4dNLv5*2yLTZaWt&df0*;H zu=iE`@8*rZ-Q}9OSrb2D2L^im*VgyGDh-}B*-TPSG07_4pBdd741VQ2qdU@-XLTFc zablf;Ztuidy?XazYwdIIr$5wJWG=OmC)u$;L?Rd!6>%-HIXp4t9lEpOF1$9n=8_Gx zo$ae%00+W&RXTn$kM5?C4f-%{?NU5s2`)$sVATp|;7j=NAcj#Z#_cIyo*W_7mFSid z`LZEAYb<=oB2jmopubC~6T>h4QszXt*IqN`I~9_^8Y9UuwyihUSCVl+HZ~%9#Mf*K9qsuuJ%7`B&Wdxk&E_kFfyU?yx^fQT$qXXIc*luBBGc4GmNR(Ri8C;*l!TS6qF(hjjWPzjNfkJ$-O z_-!`+fT5t2oO07PCoM9^>`MlkFQaWY0}xf%jY>Nvr(CwpbU?+$!O{|z?u*}|UAcry z;!C|6m72JlWBDcRM=>!VEzgZT%}bk3I4yq=b>Dg7fn-T$3S)sTf7XkJURs+HfgM#Q%xqycBJ!f=9Y99KX}>wU@)q9ydaRjogn{*s*XZK5=ZNZKh8>cNuwmudiy(rqk@K6_+3`#*f~ zyH4kkuj>1R?1^ML6ggv(JpAqo!w|PIv6OkT!cv?_mcD?USf6$vPiEP66A|9)^l{4m zBXf|XM26j}#$}8~9DqSaLNpHj*+4v$%uvCLJ)>4VZiP zdbZ`th5JBFs#`NB9;&AkKL2ioUhYcn<#v6`XpHMJvU^g<&LuV|m3WsCZ^uZg>e8}c zEU{&L?(k&m;x5#cX6oNq@F@C^t=&62Q4XhOPeaV3V=VjyFKZq$UmA@3V^NU!r+D>N z*F{I%_7Krn#TK1NzXOwQTIIjM85{i{UuPW?NA$0KU~yXIubu$AApNxuz48?!lEs&1!d8$G#xS9aJ$OU6$eI)hz!20RY0HtPaD zgQL;0UXhAEV?88b(}a>-ufso3icq}1YQbe>#EU~At~+DTKNCk?1Qtq=#24@rO*aaq z5&o7VE$F~M@%9%ChA~Ptv5t(4K9V$`bDGu??lu!fuVIfe^?<7hLNK`}6$qaB;H4Fu z`$PnCd7~YS+;<1R%ldofRGWW@>e(^diR$b1{KX+DWck6zKnW0F5+wL&j4hfgU|XSw ztYy4#qJhgXIxiua9*6}z9{U(F-EB%GPvm{M&OGnuo z@i?A+-AOnxLFkK$QbPp%#m8-a$XQX1wZ<$H%Ye5-gcB7pRMPSMES#MqiUlH>LzEwe z>oldYohU^ATtxq6(njCu(#CcC6;Y(=4IdA#1NP`CHgf6>_9-+jDxgCN9@g|~+!f1) zd$&92V~}!{!~~3=nxB{6g{GXbAJVX2BKS17l%|P*Te^xs5rdaxebZ}%Jijb#OLWc) zq*Uc`pS-bAx9dMY65cZS+s&|?@Tms)cLq7K2<)h0o~wQ<0QT^yop_rk3cha4!&Pt! zC|e^;;F}>nXJ7sM1~f@L#wRLQ)L3t8*wQE|vM#gVfxn+hcQNAMvGAI+ArYTH@W3!RC zBRTDX;e5>19?T+2`s^EYSR!piqyh(w{C(e+Ojzu`mCM;Ni}2PHNPWd0OEpsA$3sa_ zVfjX;W<E?#P$u1edxm$$2tc!a`c9Q9Z`V&c~bQg837;S4XfQu zVDwt0AL+^38ZenOEO+F6d?W?oVa%au+V$&wZ|tuHguB(iE`OOrUBdhj!mwh(XIk}o zB7Uy|-oY8+Jqkg564sy3>oqH6WemW9RD5Ise!VyG$10!{KYr;1aM%{l|7r-xPj}Tp z+Jl1YT8{q?oh1mQVITcmX9Pq9lQm2L(@;-56(!uZ{?GH#peuZ%~LGqk8i z-1B7A+MKKMt}n+_G5K*dwuw{asOU0WRqST|rn1;f0zI8(;C!bIeE2C+d!*U;bT#%N z&Oj-7^IhrlWI0@pKIUiA?^P=PE1LtObJnyekpe#aXWaB9-5K93aIpy3ZHsp~22`a3 za~g{!YH<=d||E4)ujgI!DgUi%YMB+5+ zJ+~KxHxv!g*+gjTxh6+`3Qc{hbUXjC5KFcyLMt)H)6;_V?3bx@H94_r*1%AKP2cb? zb;QjCkBU#8Z+>7isCtKU;H23h^1^Fp>EETxM4@sDVVRhxmLYQE>!IIXrBOwR(|FZk z2DkO1tIp!qqRFMl@+ZN5@=q_|XBDw^H!_}7;^v*hG$-0sd5zv1;cl`!C;S5HnOs)E zi5yd69#{J_KV4Q=pnbbQgL=hSp4EScf*PF;h6u#dU-+le-;Y^>9{dg1{>fq(VSu3~ zctJXm{OV4vcFQOQ&56RI^I>w!=_}H4feSuKpd6Wjp^q}fQ^Hv8UYi`s=H6)?evs3eNZ&XiHvS8GN`QJ0Bz|mint}XkZjzR3aB}ZDi_@8DMPg zUVm+D>395VQ0C3!loGxfImpyLp_i1>ifx+4$%?A~+Y~Hzs-e=r<7i@1eL@dgr6}w1F2f$*e^n zB4FMjJ3nA}&Zj8e8~1H5t`Oa>rSAlcG8DX#Ac_QUrH5(wx8Ic*yJQ<>hu+_y*C2zB z>gGZrCzZU3zKapx9SL|Uz#&OU*2(ew5Y8;uqTKT-8>U<1GBx_7UK6*l_k;BM%!pf7 z9%y>`D(z%r)BUz~_@xCF%KCRHY!%%|(h^$?jsdC3{c;oTOUi30xcsEQP89Rj$}NLS zOHY7e*gD@ArP*q+t0eg_1m^(Wb!^9LfBCQ!jRK|cY%w}xJN#=uG}Z%Ar6t-L2FYKx zr1@|qb``yNoz8+lA-GhDGBC9%CJLBQ*&00NFJTw6IkHY5%p{J2lJ;2*y;}xjzbWB}?-PL4RpkTDV9bw0 ze+(yAMGl2H1u}b@i0TzFLZ3c&*L0$W0#{{b^EfSBdzwvn>2235{k_wHi;p zXed=u4*i?bj)qb;mcX)B`pM*Z?m-k^y>s2XpeG-0L=@Ge;xO23R9`Dx6}hG&x{J#I zULX&A&w70Ix-%t^rTFJ>aI6%XY|GBHCa??bo;Kw?QZoj{WnPIV^n4(#n*@B>~-VDJ<*xZ$%TB;gD8k+LnSItB8UUhwuPZyAHBjVy zgEWpgf9I-du`u-wR9^}8c;{lVxVQsqY(sc>$673Hz6$(33ib5=Zn1pm9N4m4>0zDd z*ixg_5SR-+EhN)geb@>7<1T#qWNiKy{z^>u-p4zN&2k;j1>8-G^o~=t+#vl9?&S{k zNp!K?q}~PhOCxU&u~tV8 zY>$}%%YX)60^+1$QEmXAXNTX(HaA-j-;IqmCAyw+`BwpL~2eJHqx z&H6mSC1jI!_41EJ&9N(Hz&g$oJhQ+77_=6$EBzES5o>)_%m&@p3Jae8Zhc+u0zI^P z3ZCz`zNz~TJ@yELEbYo%f!7pI@4{mx*W}?{jcwaWVQKd8Jc0C*#wVzYVp>fFpq~v~b{wX7^mFQFafjWoNg#cribxDH^1fn&jP$e4r8KML?@bK6*% z0xU#bG<66TME5yG1=H#b%LN`AXxna?+HpYL3}lh#Y*pYIQD_;C4)u;XgJU?y#h&TP zQM5`lLF9i!V*Ll?%;c~jaID!i*rUaJqj{LeM6@~I`_KtlbJtjz=SuB0tbjNy^XL3u z+ay_CbgNVhSyOc2w1Qfq(wn@Vl3|P>Z!BJP#b-oj-EMsv>6rV9|bEcxr20FvUuy&|b zExEAlO);d!qLkk$*=DFFAE~8;Nb!&DdpO*^vvX6!`Qi6Ao~GZ`P-YHBWrjxI zk>>cLW}csBIdyGY#)vaa!pa+y)={DaU2866bc{?3Go*!(f3!WMbv8@(hE}?! z>|&45$gtK5m-c3e>S~D;CBC-iBGzt*_Fkg)exCM0h4x{q_HGa0Xi58|N829^phrPt z=s**bi#?Ijxzg0Rw$!y--3sN~_1Uh{uV_9E!N z>XwdZ{Mb^(SpMa^4zom!5R5;#jCyt0G{gP-ikUCBlg+~A%;tb@_QwsiCRRXBaB9)RN ztPt4G6goEBD2-7=V`MMj*?TR0hRwBy#RA2*z(AvV1~W!a8dmBXXOfvj8>P6$n9&+h z%|~jBMN_j!dfR4LBW3^|9g{T1Z#a!DiFKs6lWnl4PQquEW@gnepo+Kr$^Xh2WpdG3puFGYJBNZf{=6X)0;k)G*%+%>D9wX<8eaD8`58 z<}{ZE))$;d{dA43$!eaCVFo=$*UbO-^*HJyd89X$S@QL)wwM{?nNexwf>Dx5iuX)^ zwTXE^qPQt4AKwDmgn3GVJ}nWNVXwIjf$2Ale_>Gl=Ib~bDl~GjNUv%Paa~k$_DFgs z^A6TX?}AZe2cN07qN$VKd>)3*N%c(Pag;=<9{ZYciYvwoZ?qBG_cUj-5;+SM$5CuE zb15?>A4aF?k}T*-C+RX5CX>u;dZ+87O(gfsiw4b724LQ_b7?sMCMwt$kGa2A%fDw9 z#Li5ARl15$6^v0kgT4A692x?BC$(Z`q7+Bs#i0Im4BC)aP za7=R|2Avi-`cT8JgFAM^O!r?Mc5`UC~-Wr>ranrfLvz z)J=b>l_TZ*?7q#czqmn7&A0NBo_S5NMbluBD!rO+w0H~!aG7GBc*oGgm&shW#B%Hn zjh#{nVAcWuj6l|@#D<#_)S~*&dP1DigZ1(;;H#DVRGYHC>7I8IXZ-R}n zZZXCRBVA#K=u!lNro#gDY#5kGJy;pB{9I`Tz#oS^zF^{Hu&$WVT(qON8LntA( zNdu20F8=HM%GPyO(Cr)f*;ee^&zst=rtiO*a!j~{Wz8~EMTvz+u&mAEXRU!Sto~ll z%p2{}scnIr4O*eQsyDM@aTZ^{xt!zAyh0LDBjebj=TZ0$j)t^{-!a1_Y^NRxVu{mW$U2Yc7h-N} zn)|{Q`(|m+M!LvsWSpbbZ2gQQ#hT+#5-L?@WYzV~iLO(nvALo3E(yq`INIea<_=%S zg37CxQgGC}Bbd_fxAfL#Z(EWn3cse38m7_{Mk zx%VtvK3h~-ZP~TECwnZn%v$iuy%&?)L0UPJ&!f3$TlQKD^?fE6>6m&oW+sbaxKWku zJBsll^fWT)Io330OFL^)UiX5>3*hPCh-yS14iK>goLxmo7I+1(8wQ;jVue#>3c}JZsK(p$@Nbd_h^wE3tVZiccvhjVjD#~o5&7yPR{e|&kLE+Pjnek@&3oA~m{`U#0r@n;(dWc&IQUI?Z5sr|0@E%lT9<0m!l zC%x(?bLuDi#wBauWaM5;^nUzcBS})p<;F!>2b+)=qo;c)gKOQBh#ys!6gTR=9^H|_L ztf079C^%L>B<9^0P=G6XKmo|(7WCZXXmjHncH^oO=-vdsB3$3Al=GO!6E&z8{=GAC#~PPJaTY zvjt`LgOhf_DWZ4E?3igbcM)CzE@E)YwQJ|ZDRmb(X}5n|wx2^kT!lTjST?vsC-|#P z@HemE?_T#_Kkp*{1Ob%5%6f3*%^e+Qwp94@l45W*5K==AspW;#$wGeVKnYBotO*e-n?(tfzH@KXT6}$WPte;MB|@_ zZr+f^KhULd#Gn3$9-GI$@sKrO=sJDq!0KcDX~?8b=r%8O3JCJq5B`@Dy8k8g;AiOJ zA7u5Pht@en=Xf{}1(j$5azg*~NA__=7ShKSI@pgw2uA|f!ZCHj2KvKqZBXv!La^2z zw^yIGyh3+@l;HyaJBH3kOdykHsW)SH3?aQjBD)V$Z#)IB{Ro^7fQ5le5{}Q|%QBeu zLdIJyRld9b1CLFY|DZe|7M}n~>*!tJ$2R_1Cct^`Odg<3ARfkqc#parS)v`dlUUjb zm?<;*mtAwkq`3UW1WpP3(f-d)_N~lEe zj|amA0a#R2BV!ZO@}A4BZoJ#oEy9zfMBm?PRfTY_?2LU;OyPk_Tp!H-%x0~CO5PsF zFv5Vmp;C7jJ9xfV;AR2LLh5NegxtnxE-?<3{~6I0Kz-`a%2O^~3x8e7QXk)YLQm%$ zn%b#<9yEahs6KZgLx!>Ev*bneiZjgk(!Yw$k7NE|TJ)an*#&30TrJaq7?aaoB#`DH3fJU5HC2-!R8cO9rs63xHD(aMMi7Gk6rOBpgbq1C7Wdhl8Y zCc{Y9S8b{@wJA+at^IT#AR|^$uF(&w?|FWcX5aGzeYcA~L(sCus726TmKMNB;;mI* z@VzjIp*dGYV?`l)LmElx{L%Fds={yG2sizYYu>Hr17EUgJj7pMAL#j8pZav zy(q^5PnwrkHg0?>Hwn2|aF+<)BCe?JCb6if>1WEVs2vtqtf(7TpsxHirEgJLKgR=6 zr4C$*h;3Yrq()XXZ3Z8zP=lHx`e~CD7GkKE8~$SczMOpEZVlur_iTG88pdo2Y=!hw zFA*lj(gKRzy;|3r*H7E8Ko1oSOZt}ljll8p@;++6rJ8=f>zB0y%;}c3gKWilwL_fQ z_ypn;TvKr)f>V}tqrz;YK&i`82SQnB$0cD4ODUgHtLK@|m=s*euWm|bm@7qQTTaoG zXYBDq{j7!Ga=>hT^;Ez3d8-3ZcE4b1jP7QlD3eq(7@`q(>AJS5I zo=P`WCGMs_5HkI7q)+0hE1klUn3%t4oxgAL1Fntm>NKs#agM=xlVNDTw{kYUe(ye9 zuKszNE941BqhUbBbCpAF#(z1^@cHoSJQ+)-+D(A^rHNVxzD&j%db>lx;XQwS8Ntrm zBWgw*4cD$4@?^(4#jj32yYV#Ir+z~|`_eeP$6um#Hs*;gff z$YWuZRqfZX7fAmkRWSV7r(gCtiRjhZCaJtzog5Qy)Q}(xr^OFprMIeS4kcd@Ojv_z z#sb;RORVuC`@=S9f;lXtMKbYsiJ@GIbVG4iN49fufkJ|GL#h4z(q8qM5Sr4tv|@jcS(;;VR#J zPOHPWb1fUfKZBz=W%YB^_;2bGU6kJH=f0iqW-=~|x8icp6UBFx6RG`>&*j9a@sGSU z!qiX(Hp`J=OL@WA%oAw0ty?Wo0jBjImK2HGK;L@SJXiMp3C+<6bq+%A~n-(-n zI{{~o`8}rk<^!u!g5JZG+b$DFd2F!U{`zjNrbUq`rx?>A)yVV%mEak3x+oDzL2+iwj#p!dY4XWj@F!Lij*0 z^Jv$B`GMzCYj*+p@sW$7?~GN zYGYsxWOKrBo}ehTNwwP4C&}Xz|3`8w#2!;nt~1ebZ;s;XhPOtrRX?;_YUkfzNw2i0 zU-IVTj>N9mz^(pe9ss(l0F)S4_ViCjwV3DGO7H}5U4BO@(xSxYO3ajdUY9#aADXY; zPyee121Ozc?SYd2`aN%IixEd}btD((PHq~y5r^-po98w?ZyPreC&A;AtLrj>RREc@ zNP4MtJTG`Rv&?zCjnpR2Dln+}aiv!TG|f5g6=*AS`Ds;ZSMv03{FxP)69zj{_qv}d zmbosokv_CIy`Ss0zV=#^+IR4JSlpDkZB|7bDW5*9K65U+=w;3mydF21W$%XQLuE&X zuf7?qTujP}43>K#4jp747FK0$TWp}BJr82;oM{(>#R#u~wa zE#bu);k_*oZ5@bfM?_L6)g+JGw?_2Zj#yxwM8b|#p^$`b9Z%nm+q#e07?OQjk7u#mo3M4pXcIm>_)VQCipPj2CFzKFknpsBLAx63dJGvD+`iph? z6FY{3b%y&w1_~xdG$y8(_DszYGo5x!boML?8!SBbtgkm%)r(l2HyA{UsDn4yBJJ7Z zH`qVeZ+ta=@yQNf%lfL)j+4ZcBc=#RJ>M-eV$VIfA=49qTPlaE)X6Zv!Mno5hvq=r z(?N;8$&bq{@Y+E@U{gSXnGeJ?Ggu@z*@;Jm$}mzylhMH->&Pu zS*XiiqHI&5)*>{+5#YmV&(_T^}kj++M}FMAdpru^H9ASVx&+6 zw51rir6J=e7E}CY(ot>JQKc3}$P%Hkv#xfrse|UEi@U8$;-vR-TaU>}|AU>>Q1RRon}2pPE84bb zW;NOA5UFLgoOQBXVU=l;pR@dGW$z@6i;A0wDpT!f-SE|J;j3o59Oc@!oy0dAg&m0= zITE>7CMQlt_Rh|4cbt8lT_{KpIqOnYOor-CZueO(E9tTVTW@iFQ$o7@81+YQ&`gT3U7y^C;X z58_3G_yRW)4tvC28k5_H*ZUs?+|rv-Wn5V^R5&trig*+{8P>XKN;@dzIOtLVGFvDl zi2y=;)EA}Q_;F5zWSvx{iWEf5WGG!K$*8pRJ2G-^TmvYuKGZ&i0}Gk)*|~2zV3~|hmDc$P4S0KAKZU`I{Y0|ZX@<} z7{@TJnbV-qy%ki>wE-|$aBth_mU}L;+(RKj>3WCDCNqr+-1?TYfl?piR0EQ4yNEEK z?F23zv^ledC9_lJm4pu|()5JmrFM|2?f8be6(zfd$jFOr9JZMsgnT}F-ZlKLel+x{ zf`CSz=3Oy3c~@kpgLD9uq$iwm8U?gbE<(8De!vxN&K|SkPSEt0pyxX=*+JogB0&y& z*yp{0WaKXCLq1XmTo^>JkVdr;%*D| zXb*MDs^aKSa0K=^(@=4BF-6ELRCe@r{4D$0^R2Yl`gzoTbF_Dn>_Ej2`8v=Q-n&sg z7+ML0qYV3c&PTpl_N^LBcKvkCfeUA9kNH91k4h*fzrIpF;p>6F$AxQHTFJ!S{+gTN z?0`6Vn%_E9IAtax z!jWbBckL(>B(IJqkEo6S1bnViJrPv4RT=SK=!$3PEfF>$r|60tJMp_BWAYWaZz&vq z;8y&gDM3+<=dF-Ieg1*rg~%5wL_80ZDxMuN^&gYXUNkuQwHb{bx>9Hz9t6&#YIO1e?rK_xlxC@k;ko3@U$CIPt*Az-N@~k$+*~;%|Kzhvc7Os$~MAO(AP|`#L!s_E{}nk#h=uF+C@D zsG(52d~(&N=G&4syc7nM2)hW1EW$(r1w|o#Vz5gwFF*0HI`ITSiS$eHz)O}(4B>J= zsX9N2@jBQ`59wh+=|jKiSDiAumlCTmN#092po$r~I`R zue3IQY1JJDa`@}a>1qS&MEwy z1B_uFx_$vBkZTiIfN8?D;;H}3yDPKHaZ{{%E^|MNusVzGYm4Ck%c*P2#Q>|#YpcTm z>&t74Mt}U8Yim4^4e2uh24u&4WBpWbE(mgvym3$jX=evO3j>@2wH>GYsV894??5ho zH!cv6E9}NK0pyl``Yxf8ugfP5B*yqQIP4eE>q8;v9b{S*V2n^AYTZv89*{T*%t*slHA0s|qpfv`Yu!Yw#G zFo>b+q2wfDF`>aT<+Xz9f28KP{h5^K&ySKrl;0S7X z1T#326F&Sk5VkrL85l^ngc^ngj<$eD58sNf;q9o2MLWP_VNKEQU^+SQ`&{_@VsLyy zBdiYYQ!duB6VcMtnK%VbT7)NUf|C#7$(P`i2YAXjm^xJq*&~)peV4`@^np`63GXgJ z@-AI5C?gx3U~reOc9-c8l;wVxs9y4)3cjgMU8U{{%p)@gAy4AvM$wHO!D&&WBn-NS)+Eog(Cy#=|cINWH~F zy#u7d{h`4R(g=BIgh84T9-7i2zjGgc7ekuMADZhREiDf%-H_Jdht?@b+u}ppCZzrF zq5Tr_=i%WGAfyBDv4b?EllrlfIi!p8u}d(dTk^46F{DT1vBw~!*W$6)A*9d!vCl80 zAM)4_3mHgw97qot%zYdz4jC$c9I6W$Zh0K;4jCDK9GMCkU3?tf3>iCo9J>q|e|Q`R zKqv4J6Qt0;)QG>#&`D0jq#$%k5{Z~ngidQ9rVXGo7Kj-K=&UV1$o#VdNhnYnhHH$L>_O3o*W`iE<;Zrkf(sKGrXrW(y(*tr*r183(ltt!LUoo zr%T1KD~+csgRpChr)!6>8~3Lhzpz`#(=99v{)~7`54+2Kx+@O5FMqnP3;Pezv^(r^ z_~~&f46*oxKyHR151){iVNVbKFHn?TL;!Foguq003ek8kMEv1I_Db(DYx2YaC=Mz~ z)Z(BkII*Kz8uObhp&$|`^-NB)2LC$}XU&g-ZnM9FNL{q^C4+9R?xq}G2r9m(5Dq4D z)BmdRQ6%7=?5*JsgB10@zQnG^l@`B2*Z1V_OluqlvxFfO-0Fpf{~7`wC_F72jcdNu zLnyth+aPy0*AJB5wplK}T!}++URm`dybuLFQu#U#rgPv4YreQt>HR1kc=Pze-}P_t zU-MT4L6>ebEoCB-+)(@T@C`KeuqZ$x0mGJP~{jEiqnWIHc?R1_mIeN5_l zdQ$u8Y>9M2?)_2SA6X1(GQAf#+v5{Tw9t%htIo8(kySv8!ESmNld)5Ny{ySLte(d_V0p$6MWZKk&Ndn`HVe1qc9?g}%&ann zS15q~xqiL=YeMoRpJMTyk9$L#Lp_4RlDVAR2gh^}n{wG-dXu8fw@z#m7_gmBS<6-3 zM7bJry_~%oia=1Vg+I|2y@y1|DXh{H^=;rXmo#N#vsW`v+0YZ+blSlvli}9U=U=H- zIpgEd?Ab%8?yS>TF<;;%oQ|UHpql-l4chdG zpT_7Ca!M}-Y>Q(`PJK)ijbo?9otETX_U#;wqbv?bL1DZ@N2N#MMBzetJ}A-KP-8u~ z`5n3WO?dcKc=&mF_&K=w*}3>QxCLJG$aC@O^9rd6$VdrT@$f=kaz&GH#SlM>^Z(O- zdSd^ZxHBmENBI9235*E*PZH}BSFJHMDe&-&O!Np#a}Cb73o5sSHkn5Cm?VtqB~Gd) z%}OTy6G~p6sIz>r1$4c5K z$ysEpYvmaz6kADucMvIa5iEBTuJVwq^_6c7QfZIW=#F_an4mbCqBxc!JCUY7m1X+x zi}OmU?|MbRR&B^uedJzq%t=T5O<(fu;D`I+jEB+e$I+aJ@lWunFSm1FZx?^S*Qy@2 z>K=CM?+;q;&U)@|M<4FTA0MV4?-mh{yGX<#5^;(|ULpVI1Ag~#1HZq%z56fS+}_>7 z@1Oghb$9=)$7lV&_QT`dv;Nch@O=Np_3io9&H2^U+11r^h%0smnUZzN5`j!N5=<;NBjHxyL-FaJ3H%}J8K&|s~fu; z>)Tsv8|%w!%S+2ki%Uy$3(GxoOHDH~-BaVk6N3XIT^+qmO@A6{{`@ZM?#dhM`Y_oX zKUEPr{UvZF)oU)seIDw+;1{;+m9p-WyXpC3&+F%*SM^a~{b^kL#ruJW8?t^3ZS$Nme%*bQRp0WtN6n0-Vn-y=8gkq7t4(>vrD z{69MXzrseMsN&G5RTp%^ut{HAvRBW?#}YBChm`KCqjCZ($(oAXnDQ9!U&ZG&IWG;Q zlP2)9#KoJ}MNF3xyi*|{@08U(s9gGSmRRE*}Ggs_E#jurw8uuEuOm5u4#{0DjSR+>mWMo2 z!@ArP4PKjL$0*Q>6yw)}zh!hjY~q z!=JUDXQzElK9W)%KBzUZJrwUU;#^0>(|Ym9)Fud-XtovmaxBwS#V@B`2Z`jq!hPka zH)V|^?D=t-l6mPcT19lyOU}<2XJKtORk^?rkIr&>0mcrR+BqX9W^( ztr<@m-h6b9N*Y`VaprMc{PeD2e<#hf{G0evD+SF5lioE75isxr z2{`Wm5~jNSZ$C+@sQIl7jR5v+8lZRXMU-PvK!5a3;ml#GZDOXacClD7saURnFzq3yDXUayjt}rz#sJXX7ui*I#o}U_Br)Gp8t1X0Q4JD~;5KF7Lz2=U7}x zPa87|nu=QCt*JiK>8y`t)CFIEq~?>EygToua;Z4)t0g!(mxCm~f_?e(hO88yh&(84G7HPO z@?#m?ez9QEE(IYRL;14j=br$)Jkf0E`pmYLI5B88jj*3uOpzw=iA!Jlgnmo1Lr==E^YO_W8%RA$hD z6;Cq;sd{{E{`}? zbS_nGTAmCG8Z(f|DCHX4v@rC$FCSKzQw56B)CKi70gSQ5qFpsFC(tJ21+vB7vpPnl zCYG?Uy?G;&>21rVG{_#@-ArD6hD*wUj>4my|FSDpU!*0Yq;!gXN@*iAZN5;UA^m+h z4!YDvn!Pl3O;W@8WXSnz;^-oOYNF6^s1q$I@ z;g23K&j=kNvSYU<$UBl0NZoy47CR`>fi%jbMpKgxaLj&Jv??n+qRHLOT{K11Ll?4nRrQWc-_DxHC zSHjF>1~}!ZZ!uob7MEimnN2g_jl^6( zLo6an!L#nuC%#DH_y~;R*Wh7eqwomTNJlkg7c+TbAeJg=5~=$1eHlS%eF+Ztpz6(= zev^D9B3Z&sd{eQ%_8WuQ+As7Id>t22iYeJFolAr>#NBK&iI-d&1Zod=c^ z>xw}C@=={-ZqLlWxPYM2RW+ACQm%x7K0ilJ=F@`SFXMVA4kRX*3-$Zh2@uB5t6uWB zb9H;mPRi;$Y!4Ur#Wlj)%wA2c@9&}^HA2SP4ii?fp$9d4#ywtZ!wr13y93x%2H!q zhrUb2wYVEH9TUj(OJ667rE0XUs*LG;w0lpJ-GeizgcL0Cv3CmnA+ycy`TP`JP@aPT%%QYKa&wtpY%f0oi=-7rgrR_S#k8x`XSiA`Nqdz zPsoBi8{NATky*M>=v`20ljO(iVJ-R*L2fd^UN&^YQ5ZwHz0*{Lq;);jqo^RT#Q ztX@AgdID;Z6kSekY~7Wn{#?;g{FP9!E>`lyH{qdsH?*?|fh zWsT9P0o&o@S-i#L2Gw{|x9He;jG|>pKa!yrDX4w%A@^~s`lM;dr2RO5iF%bm)e~Da z`Qp>!0jdXnQSgiI{QFiODnoe+(ETMTJHDX^kMWQ)V`?}2UYPT?; zdAf1zy2|U{fi18F+d%WCHWzW^s?)MCHwLP`W%||T+Oo8(ecQZwm%?F z!-1`9SUTXA1jJdKPU{BcIC%2jVks%5b&E~sZph-ZR?6zxw&?iX7zBBlF#eb$uX8_{ zi@Yj5t=~(@y`S~^e9gRm>uRghoa*qgiPrkYH=*s+d3fozUKmv4l?!oVyA>KeY4dja z1NnDLcTp-Xa=MFdza#Ty)#haFARl>pf0D3#v-GF^SXtm+OzV%(=1=eI{zT|sJe!>j zFPW`z-cMVxPj|EQ(6TgM#8o55Lut&rPbQE>)v%So@HbeY`z|5;Y|dv`Y?x|ZJ)#kW zrIuuHaF>fS`9R1JMMRBD1o?dUMPtP7uG8P$Fn|3J=F%`uwMZb91jb$jwixWSD6|PH z^4DDGlFM5}UnrGp=eG7xE*ln zc}#Kx_W$AQEra3+yX{{rKnM^Zgb*OO3{G$ccb5PGf(0kIySux)GcXM9Fu1$BySqy! zm-pOr?*H5m_pVx1-Bn%H)gPYj>e~C+zhzR|tzj47L`d!1asRQm&6YvcaE)L_lmlCcy zqZ(-v1k&7rJaO~fiBeA%;>`){X^9Hb(z}m|$~;M`zmg=r2B@VaX*MTm^F;G4CFy-l zHsDEaz)mu9Oa7CVY%cBnyE)nVDcSZ{lF8Q;$6qPVZn1AgL-*zsPw7OfHl z%aLh=mUR>+p|NZ?AZ3ov?|&^5)lsRWKFQRn5baC`K?>Qh^^0rYp=wNG>h>4CgTv7U z7wH4P4QoV3b7z-z6^_G;;=mUvx1_-=(PXXN0kuEbYN>d!?bv7$;o579!$bhFGK90V zg5Nbl%NP8GD8yJ8LJpP%xfC16{^H5 zM<*Ibsscrm&8IAi6QZ>ufU9?haMUAo09Ax+we7)R(`T9HXBp^l8OKf82*G<_EVyno z?A8DXOMU4VcY^$Mw!#*KV!EP@7Vy1LInyU?=D;+zPuh|0qH&twBp~ksJa&mAL0B%v zE>_-oNGU1Ujf)_P0pPwuP#!j1v1|^RhcCvUhg9N1DsLfC@!p32EE(TOJ9RCq0EL+$c&#lmy#62bde@>0?lu!vTC*%gGgwZ?`(CN>;A;HS-6 zS9dm9X9{Mm`^+|nU36#;i13G$8-Y1miP#)*{t;BM%UDlLBGwwCA`xcz4CY|CXCE{p zs|tZcS0I(M$Y<^)_3uzdh0BPvs*P95VtKWNTlMp2n|*x|M}HBxZStnn~5p3u9oFfzu-DA>iglG+BjbqNsf3eJpfN_DZ@0 zl(F!#X}fAIm{w?eD^aHhB<-aI4z40xxuo$YQPu}vvJqA$#MXP#R(Hbp^|I9}79YQ> zR0or{b(t1Vpds0{f8C}=XG;|4-!{M#p*&A5RYd8^+62dFnKh;s>br0HA?D7yYK)ZbjM42eQv9Yne ztnd=hLp?I07(PL_jtlEQ5=V1qsbIbLSfVx-YZ-PaD{%wp~tObgpa zQaJ(`8Xq?LX(tv#7ibw3vn$A>-G+R?ce#ZO%KF`smwu!iU^&Ffhx3=tbK{uT zBpp1U57vYZ(fk;i?P{B4X^7PPrlLJSvf5Ly1)_QdgkSeXyW=z^jF9K`Qjp0o-HA*H z%g99bx2pi=;E<#(DjP(*$*V`k`LOFw3*kIPrx*&@ z1w&s$Y6DW_=&&{~+fE_XR^i<nJU0xCU6 z9Y?xrKFv~k^dBhAuC5TV_O|oAPN{fJ=l>Y%8ZP;jQ6KNw$4SvhP(G8t)jtM5$61HW z;fQ&SKEm^MqBmEMCQ4;BAUQgL(uRQX7c1aZCg@cL;cPN)bK-t-vdRcmcCsS490Nyt zDsk*P!^oUcB#2;bfFIIrBsUEP_IOyaExeA!AmA85r{XeaLUCre>L!-Th**^nZEQyh z6Nyx9F?Wb6cF}s@VNEya@G8sW2>J3h?_hJZRuby;Rx&`x$oeV0#^7Pvt7>w~)0U82 z&u&ev8C^yK202;-44i(Q?rI&lTAh_yyOq-P|1?v~J^H%9taJr)EJdsae^)4f^j7d= z|64}H`aVd{viOmxD~_=#P=2${sjD_g-CX^cTIjflcACP+emae%1>0~8z$o?_H)c6_Y-jFUqg2-X`f<0S?zU89E61nxXQlPV$nA1UQTp|5=5|(D{#`Qy zh_4c&I&5HKi`Rju$Qun+)pre^VGV{>^>3{cK6?<+deG}-5(X!$g=^Ur`ghacnnseT z(ND8fL1A@#3h*?%wZ^zLfPqayd<3u?r)i&&cmXi|B$~S%aKJ z0ly_HqmW{6Q)C=tPYvyPK}y=j)jW9}3E4`BkIL4MH-X=@b!+Rr$4b2jTCz`^&}r-B zcBA9BS(lI4ZjbDvK>F4viJm)-vbDZ+ZAjW|N@$|r-f%J6M68=D;~0aEOpDG;n?c{+ zdk`;$V#t14Ta0Pz3h=(DoEqwb?NY}b&V1WjYu{SanU@Fm#dgodR#Z|b?0z8W#2)EQ zKVwbOJRH^`(9k^=W!QMMTqB8G7ba{gKi`5do;2~o*tkRo6v~U63a;3^*cf-NX4f$5 zcCJZ@dNv}L;_3FJ%R8#kwzu1^*l#XB&>!Il4!eG<0uYdtp7^T0p z0kfN|7YuiEV-xu3o2Sv67sT(Qb-Fx>r{Y*HaHB5FNeD~iXnplCU){gK+L2R~huAZ^ z5qxmUdRw?{Cs<}%wE1rjhcPI(M$36uAD@p|-yqHLTaQFLqf7*a;|tZ$lQC_uR_8Po z`t|c>$&2?gXI~)~g-n9-39aBzQpZ(6&J*?3)g9qAB%<}j12c2%V)fgJRQZS^Df0TN z%-oL$CJvM{-$vJTqC&@(*o2}MC81s}4D6%JhHHpv!>hK=Yf^o|01 z(1jT19mdiH(xxTgW=B>ENYB$@moWQ zfkDe>zdoN1q|khwj~vFj-bb=_f# z;ay+40ykL@)Jlp1<5xE^dA+cy)KzvMs|+ouuttWyvX@nsu@T*d-VYt28dPJ;H!gJI zNEtdh{@g7?js~F*FJBjnCgY1~0e5n@CLYSdT~f-@a5N_l$#r^z z#|Nnb5^fubgEQr&$-eH@sVEA*<52yPkl?6FA-X(EO(SVMJEZb{nSJi3dI>v@rh1gq zyq4+S&w0%#55U}>@7PaujoU%m1b-Lwyb*iox zP7j*WwN$CP&NRhM1`*7d(?0`i={1^tdHWxwT`bz1)O{$5)iu1L2%9v$CX9LZedeOn z^$g!TWA3V1)i45(A@tB=pBD?=idilGw zYo(~$v~Lx6hi@KVhN)&^-^EFI%8+sYV5BxCv0~nO(a&phdYYAXSa)=HYadsBqe(ZS|1z;~(Elx4`=(oxrp|0(EtelZ~UuW`a>Rr^6OdU+;T zo#*f83lHjAq7&GkFLezV*4_inI)5+4p=t1nmWKuL%LstVW@#nUXGDEeaeUhM?G@g0 zTBOJ~1H#8&FMVk1Na0ebx%Qrzf|MfikTX(5TfD4gzG!Ri3hZ@#jGhdY6f<~m1hi8% zD1~sV*gKIw?(9!+6kYeom)N1eySnq-6}r9n!lY`yBOOM=h;qGDESo#q=KU?hl$xPg6cqsK;HJ9nmjNapTI1ia4O`L;{*34a{m~+m6$4g52ub*n^ z{-=_kI!8Z2(mx>$svsSVedR2mT8;AuFj5?ydNo)rzJ{ah_d5%oweX+S$#WHk#x!5L zC}5ej6{K&(XwdH<_YrqDl`2U_;|(>mksgK5RT-9++BVH}LkgUgE`63Jcj4d>-FcUY zHSiD&ZDAP5o)F(+%9_mb(MtJ4a>!vnj~vf}uYqVorKiM4($=?+!A!%?@-ma4h{;WI zC7=k-QE^~txK&j^rlnJ`bpRcMFZB-LBWdw(9j)O*^XspYP358_FES?vE;$`-CN=?K z>xFnOO&7*S*KnrYb5oz{yNoIvI^OFXowL;xK$!(bGIV?fM-$ijcFCZ5QI`mdQVo2k zz7s2(M&Oi`Qx34lR;#{{NWA~uH)HGXW;({&3nYln!PcWEn`BATEep9(-qpexFuM|R zF3HKanqt7(*Na7x34BQ|$CVwsQD=kxqgzgHp+YlY>irbzI^VESzY;BFZg zEFQzw_;Bz8k*B(p&bZLHY=@XVWwvI#QqW%hWM4wFG0h|d@|0MNuF zNYs!6{nrK_0VjWu*98Mg`bL#8N_a@-1>4QfW$|$i%Y!SOgK*dN_3^vV$_Rs>K3|t) zT^-^+SDfj5(`Z?fcci&^`R!Upu=zgc-dCJ&n~M9(W|eqTIal`3wIC^K&4t&e#j3`(uvQ9A?4Ydea6s#*GNLs>`m zOJ;@j%Mvxyg^SACMn!>J;(Ysg)LQ0AZiddr2g#<@htczrc-CnrlWT~R#e?^b&O(D4 zPqiuLZl4Oz94{sh%?JMBsNZReOKOjtyO7JTBhCBN-V&}>A6z_bVLH1J&W$;4a$7Tv zsZ)*h<$H$O>!CMplaV>j9V8Q&zyc^i*ZJS8x7E8l$Ny5#J3GA;VUN2!D$Zs z&(x`GP2YD)N`}k~pUag1fax9{rkjjVNnW{5QYPo*N7Pwwwgl zl`qLY?hR;n2wFADU$f7B;1eL^8*AlN|I~Pb^S$&&VAZhvGaTzo1mC&{zv8ig@kw*H zXlM5c7heYV8)oJGCxI<32pl0*tOt~0v-z5>=?5A#ErHuJw(D?&67^O{5rNe*6=e%i z0FAxfhC5h@trO$4vo-DpG&1e-*5yOlA#B(Ij9smw?zKJd z(A&u!S_DtIoQ1@E9f0y+A$faIg=KES9UhL`2A;B>5{rt7+S>3Q;HO&tOL=XF z8f%^0gdJ_%d(+_1B2{WJeSK*F~9hXfVx4zM^i69^fm2SM*;<{VP|OVxYZUOy@e8-tD*`7>U7l=Y#P&lbwH8bL;O3r7<<0f;5z zucPaAv{UGG(}}cONPulehNVpTA+hn@I-$y&u>)MD&0E?XKH6g_%}(9;@bGxTw*29( zf=f-Y1pz3FKyg2^$N@ZZtxbK)u4rvAalc#WWIujUI8lu@VZ=)9-=r8iJn{LB`jS{Y zef&0xT?8MbsLMKu7*%8foOYyn<*(d;Wj zKKZk-GL`X6V0AvDzw#OP6m3%F=8qhLpIL0(KM0M9oa6Jp;i#Y|M2?{4QI)ukhm4{vo#U8*7C47uuL3lf zReSeCQk*QXG*SLrvC}h^z4Al?0u@ExPX%!rEvKxJuRmXwGDOExNbjb3$jQ}>)h>i) zp4?SymuLcoL1(zdiMKz`J+ro^W;A~OJYLMDJyxC|Q{yn6GZ9yhhR=Oy&PR3^eo0R= zub21Fudtj`W2MRw37S8HHDx*P<*2Sri|NcbQY}Wl&*uQD1bV5^gf|4a5ABUsxM2Xy z>lY5}i;kq#y!yyYb$-xC<=aFh`!O!Yab()y^8U)=a}8S5ubHp%msWe84gV>vcAT@$ z^Gjq+!;ot3r;b|u-LF(XLI8M%`g*}ENduL4+01KcY7~(2S^dw~jLa;R^{sr*@?X|J zW^?A2^RFrk%g2&}N|KX)L3guD$CTpMmg~w>E8c0%299mrE?3{tyndZ67}Bio)3VcF zXCu>IveS z_n=DNUeyy>4YMDDO$2GzWv$MBPHLO$(IU_ptkLEP6rP~c?(CC$RViMuDw!@{!;I3N zd$+C-Rxf`uZ1BSNlVY7O^4DB#J>BkibJC#&OC81Q`gn#)!kKc}gmU5&_>lmCwaAgd z-FkzWT1PgHQyfmUlR?5-0Foo|Op7D;daNL})0=q=)`p#glVgY}6n!3{~Md;(~qk`>xDC zbH_CN>iKvU7edF%=5jN}$7|Zl>i)-O_PXlbV|(uy)5|IFwx_unXVBd9P1lyP-k(%k ztKiFMa6T{k8b{aMQ+^{{t^8{gNyo5}zh+}z+ZWs=DGE_r#{ZF(Te3%3Ta*hhCW3AK z(0~eL=OJ5)36SBYWA=JiEXsohl2?L7mfFUTZBI{5Gze+UNxI*LYhWic3d$eznPd5n zhvhB$_)PtunIq~-7SDCQjGft9WwfEqpdOzxzx%d@Y|WX(Og)@$cxI*30@D6TeZ3BN zf+p!YS-+lU#M~W^tL2qrT5X3>%*SP%GUc7ADHDa0T!&%aH5AEyo`CC{HG{vr>z7m$ zxd0n0MMYiMmwuhA$i{rO`YUmkKy^O4ed4s2bEuZVXkaTQPqK`u$*7}Yb4GTIIq-hq zVz$9{Fp4lp+^)yF5(6|X$T9noD`&akc!eoLV2>2V-}>Kp-q#Hk+;3m?+hCe#7fW9T zR-&KGN1t;6Hfj?l_Gixa<&5flWA-d{*LWQ>Ob<(p2ln5&9H_dl+0<`16b}PT91eRg zxl?XhVfLSJr$X>LWhZbc<;#XvWLASH2^Tgi}Hsgzr3 z(5;N1odifxcHvh3;8x+`RuRRCeBf5@h0s`?%K8w%$4oqEWfM#|l<##=QP zCC!05?S(s?1E=cRJLI!Fy|(~wntOwPch3y>M(X#*rp`)&&gwSze^TzvK=*HnZWoYy z%Z2+ln#-3C=Z(VKCEE}(;dr|*j_WKB*6I&VruQ}*=O&NHbFQdpFlUsjPGm=07rlR3 zo)_}y8__00QV3g7mL(6DO)lOc_qdXeoskY_e}aj*UElXcxvRHQOoo|uVk~Neg)h8c z&y6xyidra%3eRQp62e*TbXgBYURJ_bpA1WAd|aA*3|hGK0zFk*KAyU|iasKH31N6l z2K&>XMlwsf2w`~s#;|XS`n-uz^wGWe02zTSG=SNq#06#j5WdXC&5;Im7V9~qgZ>2G zqk7cs?GBZKFQ5lkqJ+mh8#n7eGAS-E^`NLq!AFx=m#`F%wwUJ-8n+0Nm#W66&Ify+ zg(rxQt0l{G?tyy;jeC3LL)OJpbBud?(+hOqv2EhD#ODIo%yofPb->A>vx z=b7`-opLJ7-ohiy^zUatV?l^JXyPR{_nE51#ql62@gTS?<{4axT1oS_80Tf1*{g@^ z1(G7%nyMdpb3I&qxpx8M@OwWWR6U?1z4hmx27EFQLZuMiRp8^Bi3p&CjAt;rrW{TrB&@MKn$8t`nq%$rRfC@4&pk1X50Lhp~i@hN@Z9gL@`bUaOF-5*Wo+Nd8* zWjmbApKzz$g1(e@T%>;Q2wX}1-_td1{)7iU>Peu>yp=vbYr2vJzY}R93&AmdBnu@A=Oz#P z>g-A$LIrLjk6>(h%r^xLACg9LEW1)f!*~?9DPk^<9w}ml(Re6b`3cgpf;xzrDHEv4 zZYUFf$na1l%4;@j2X$akypPjyf1*l->F^ZWeXi&2ZNOi zL<|5|)N4j%co{<{G-cK6X3bj}0~Xvz)Pe>NK|}0pgQSQUb4}e=?o*>eqU@*Og9r|l zMfw1CYVTHNGu&{C-yCsb4%RS^DF(K&<}0Q;6#RFTSmS~S@2=m$zYo1pB!k1Py6WE< zM3KV1dgbY1iXT;)BSLbuoFp?Tq|hbiJglXIA~v)3urrcv_rsyB#>Qv`2Cfo!h55&o0BE0^n03(^j34BScF4^qx!?-42}yF|r_(Z8~*L0^wwl1_je|oMjk| z<^w|jhYBHk=$Cg8KBW=nkS{l*;9;z=wn(w~_v09}{?0%L^jy(N(F9ZWJuNb;oHllL z)hOH)iF_#r1Z)I2tT;FvU!FK4?PsCjK=`L+tCgk5=3!L!9<+i%t5|ZgL9EVoggcDd z(K1ZkCZY6EAq-J}I8xa7ff=RV$6q25d~SP7vQBPZ_X=@0BJqP*wl{D>x`SVUuLU7+ zS|3#<)Hjk8zinJx*Z7UfQfy1XFgd;6bL8!x5TvVY3jllogq8@lq0sW z&x*{J)Stu`6x*Jb=Z6p%fB}5$cx{fcLU;U4iT_6sHl^qs2bcS~;-Rzi&dm1158@~E zcoc+349xd`LNKi+k?Eo6!Q{2;C`YCpQgw1+v$AA=!%cfBsVC)^Tep>)KqME^u>`F< z-w3zAgbDtE!13t)!uKZ?T;lH`e*E-nq#?MY{I1f9l$RXe2ssp~Kh8qbFhdBAhJ_$l z+8;q*;tbaSg`p0%?5E zSFHRfX$V4E&qu_sBYv9`Hg5Puqp_&nY4A8$r6-28cXlH$M^o=-36buqN=6x;>CK#X zwsDd0?J`pNu2#?Z3SYlSpFKW3)wmhFXNwg<|LH>8t?}G3R&Xmblb$L_-ahFQ4DLtg?81^itt~jll2Y2j?oAuw@Hwhlhd*c; zdOe%)3A)qM{EIg;^eh%}V^$<=e=NS9rjL3vS)v320pVVK$v*JYpuzt@)W^Fhos9tR zt_saHkj;`Z$tSd#Z1R8Q9wYT<$zb0lg(F-nhaefBm|3he&P-3|X(d>RTA$EBkMGRb z_11;po_`i#HpI(**5eZcV};iIBy|a762*LE9j@V`PEJzfF!DvqRA9r|b|@l2!ou9_ zKXHU{a7%nc%I%j5bjbW*_KRi%Rhp*(4~&pR=U&#LwluaC8sBqfU9SHl`A>?CNh~?_ z1C6*$O}z~&o)lq%j8YP2VYm0_aSn8GMJkfKAX8olxXS`(51=e%K(^r{TU3y080(vV zx%%*%6ME13M0sI6fmW!8@r)VhkUb)*@quMt>e0{O;|Fae9`{X5P5s_?o@Evx=vzze zsTQbmDCiv@icJRfkl9Ejl!2L(<|TIlH3{?>5U{G0L|i>7qdv?C&r~wW0++p=Nfg~K zIGq1FNaXx?9@*$(%d{f0m6jvlr}CIO?`t-B0S>9`(d<8R!aacz)U$=umDigJF14`a z3HCp^?+JV-luKaslB#Xy{^Aq_S4nTS-anQOg*7U@Fiy=ROVXa~#5w-hRydZA zENzDcbC|?h+BAkO@3)6m4V9le#T=}jXG^s#F-nMUYbs#cb zraZ5#!I5xx-|1Ysyn$6Pe?N3%Sf7Qc@NHrXy7bUj*g5O0u72I%9t6$VnfvhVQq#;2 zf^@DEYPHpAQSOJem~MWyy)Jw41>+Ah5R@opkAyLP-Gw5>?^wm(%q_NlDFebVFGt<-&_zTm%3?%>=1 zY6CZ5+I}OG!#^R1hv3<#9`kk^$~-T*g0I z6*#8Nw`@{jh!6muw3ll0^Y`3$-XVxUF=i=J1m)a&ZBo>63FPez7MN{rt=lF_a4s5V zKdJyJD}xY9KItBW6r-i@oUE6Tv=`xY6SF@T9ZwzuSzmc|lM!Et1LFILo!j_#6CEw@ z)4sUKsV=rm4?F~pRW*-pjo=f(*e7Q)L&!RA1stAS06uYEixnA`yZ)EsTzDx&5viVY z4n%l4QUdP?f{HCMJz+M8FT$k$H{FqM+xlWy0r09_O=epp?y{t4R#z=B8dow(pTH3chE0V_cPj1C~mK!C(_OwOie$filb zsawElV#pz2$S#o|I-Ad^EX7{ZO>?`=b8P?&?*=wd0NV?I-4wjT1-$(Q{Np?P^ArN- z1p@awye-{LNdSXO+PQgOOa@t#s? zoKhA>`2)G=2OgF3@~*s$mcp})xU~pCs7O_U>Zd}{Pc_ydl##-}xn(MG4o&7z{N$YGd7EV-so<>wRh@N>lG*lVIvU(Zzp~sZBAd z^{GSkfmA&4#TMz*mhHus$;GDq#a83g*6YRA`6lMXgXZfp;^rb$+9Fh_GFf=1_NQ@)K5$M3xu%=C79TiXo7hkf z+bqk7tkW0KVOMLMFe#C$LkSYC5Cb4!A?YbxU z@Jj;80d^*nJQ{!?g_2;C67L#QkNW`+ST_xiZa0+?LRj))*tjspAmUqJiaWL>totym z9}qrV68Q`Qj+R6(|B1Q>M8OWJ7X3br_C!Dbi9?``NiXpypbaybM2HOt6FH1iFpF0x zeWQ}Zvz8{C(5AHbVOkzhxgLg`ONO?~c$$}nPxnwY`Eje3W)RRuE7PX7mxeuK#Z8xH z+MA^^iLpb?kmb8R4faq;(Pra;<8(^}k4p3C%wvfC@!{Z8!;ez8CDYPrc}x(BO~A#) zN2E=1)R%srH3D#Z5x>d#eID)PHS#B1^d-`U$LJNMF7YRl6aJhU;G-N+nv6*IC_HEc zEic+JdB)7p2WCqaH2~TXkt=UO*RNvxpq2$k< z=zqXXCT~lqtk@)$C)5wq2qDnhyhlu!w{x1WMC2=~pTH|TUZ-erw;~6UZ*@MxD+IB% z7$ZMBpt!gTE3pe}6Y(1oTrKdV7Yh!X@3_)Lq)+Xneji~S3l1SS0N+v$VKkuG09>d5 z_EH6xsqPLMfW4+CFgANYntnWb=B$?@)SX=uO@6pgM3ziH?o~^S-X2no0H0t)=279n zOFD=FxIh5D6tfd+GJud0?(LD-{y@HjiV7Bq7Pkuznurjt3NfMje@PWZ4l8eRrymGB z8IGsVX($i6hR1`z5CakX@lYXz=)$Cb{D7z;czj)aqg~zS7Vv?hOsDY2NT;0@qFuz6 z2qmJ_hr+pF1OlWkx==riO~h&h;XXCX#b~Rg3O}q}gc$+zm6q}$a@1kX<3K4yI;b@@ zl!>mFiLRuC548upjYtwWdV=PUF4y&W_jIC!4ijJGYiiF44q~*42x%w%**Fv3D;*s= z0$glQ#dtZy#19VFm-|n`=&=a3>lvStjYe2NPC`FQ`R&~pRxDRHh)6Vvnf#Z!YH z)}-)Yx3EUgDSoKvw?jDm!X5%5`m^pB-dz8;NBvif(TM{Q%wj$xXAsCm&Et*A11o$`?G^7r;Tk86cROl!e0=9(yw2QMvMN`uu6w_H=pa z#@p_>!WKQ?s^U2T)58ya*Jd{Vk`PIlFjJH;wCC-OMe9+-Y>nnVghxcN?8>h~QmMi! zv_TeTqRV~5#L{CqvS8_5y)p&VCyOG`uzm^o{(&&`Lx=52`#Iy_Id#W55qsC!J`-kv z$W40yb7t4a0)N8QPP!)HNtg)xCV=*zDM_FljpX$$LMP5k*J`_;sapcKBkOCg1wvB* zj4sn}=DeE-DoT=SM^n(vCdo#lSc`9Q&E8?n#(c%t+l3a$K!WPaec3%Z&w?i;%r`6i znH!#;&*2-ym-`Tbp;Qz(s)sq#5Ak=2ApZ?X56<^>R^D%uqIHdhuVjoJ;ZTDvnzZZ0dvD2qAQG{DoR&r zFHqu7s484O%o;s!&*$k#x#5qqfxuiDK4M->*}RwNH#e;xFNqZH!Fts``FAgF|ia%usj z{#DaK{oo+JpGyLy5j)Wq;ZR=Sm1czS;kpJixM2}qGJ274Hh@YR2F(CIl!BP$=(}{NE+8# zOO7;HUvSzyIGYqS*hFwzpt$@Q;Iwn#v|4CzU*)uB3uWK!W)y04l;m)94n$ME7lqsJW0T((Zhw*{e;V$96s`bf?m)q&KuPW(#ipPME-zR_h!-NL=um{o zl{?g@DKvyTET$$9Fx$qdV(G+#S9ev>%X{sL_G7yZ? z9Q%}M;Ex8|od0$%c zNPzh?E&0sA0LYLUm)2?$-WroTQ(4ic@VGwkL5wykvVuMV`WPVlcSw5@IMuOGCn zU+`}{v~B$Rt3*k(`LB5MW4k_H`xY0~HVsUSNnmFoe@75TA<@43k8Dp}fIwGZpDl0S zrXAh6{lJ6tFvJ@nTHt6U=O{~={N#UTnX?1b^+Bb^Qi z$Zz^GZML6hh@R5>@r*9I*TL}GVc4lXyii1LQh4q`e;2HO=On@x9|M`id~PEUacS{I(YCg6Tkoa2>f@?=Fb!O?`_iS-sYbOZU9bTKtWW;tE>pOXTTjuPzZv>9jhlC zfPzh}+7zoV8uF1$B9S}JKs@5hcazyBSe&6`42f_sE>FCXbOOzfVmbUUW7!mD{r<$S zH*0Y&jK*FcXu_siZKUD@cc?zBj!SLF6GhxA41ITy_9TZtpr2MLDp=p+j_=hjk?QQG z;<=VTnzk_G+qKk-kJvkCddE zk$EMp{`zH=Fm8$XxC19>rklgTM4n`dK$g4H31Nb1$gdj{W7|zfuYp!v^L>|r@L)sw z3cC1=WcpuoK|KHpI~m_*^ppT~*y_-l4zRfChkpirIRzF{$d@yG%cB+)vPh-w_q347 z?hoHbON5b|ErwEv0`n`W&IQ;HvTQwp)FBz${u6ZYW3-p}zek@W!YCeJEW7^ck{=U- zjS@%1bfZ^dyU^q0l!vI&ET@NPGT2#LF^}Ajvy^%bX=@EB--AkAf}e^dz?!d2?S=bg z7q$BByb{TOpEDu`lD!eJm=O08ucZJ_r!y0R@EEF-!XKwUHK)r(4rlJH3mdQ%cRv}? zQYPXDGh$KwV#N89@O;Lx;MxVBsh_%ikxJRQgb}hnIAitJ|HWof6iuL*o!7D(`?;Xw zMin+cXfDE1VsN+{RdyA8@&kcLdgi!dbY%OvH~ZzYps&`c zm4Rf@8rxyC`qzG%nZV;- zhFvmbKg;cW$yCb$Q}Zy@n`!y5ATHbXuqZ@f`3RI3{mfEa+W+ggta@D2;uL(IzFXdf zsdZZY?t1w&a!5hztUf|u=jLYQ=4J)*aq|oD3yX`0OG!v8$o=@G ztYoAtZ~x;*z)$%&O^LMMym`jlAWM-77lmqny|PgI+)$_Z0M{UQcXuZ@2RjE_J3Cuj z8=E)(kF2b1EUaw*V@o?rGbdAh4?QgpO&zZv`au##v4X}aoW|MoMj$fdsxKzZ-^|*` zEIR-eT`cCky!P$#o{d`G^~OH6mR|Kv9?cH^O^(6M_R(!lDedm*P@mi`-@?AY(vjfu ziJ;o$z}AD%q1(u*$C&w-gz5X_@$>wajiU0U(vrzm$Z%)ZV0ZsOcW-}pcX#KT+FJVB zswbiOi|rY!9T{s~c}sm2(}NvjL;WMe!z05Zqobn}ZXqBx3;&pcXoF6{#*OIdk4GwN85YHJNw7m z2WQ)d7yt3m<<8Oh!Qs*2f9nmaa&-J3o%}yKJv}`;J3Iehy7*tZ{2yKYkFNhmH~*#E z|JKdj-R=GToA3V1_YV&bkN=~mr>E!trI-KF>;KZ<|F{0X88!ds%F`?C?BValoA3XR z&+lH}e0KZt=F^+!H=kTTom@R0zxndv@Z#>^{C4;3X7BWR|Lp4YYUl1@{N=e7_F4zK zgTSs!-smkDsQ-uFGFX+@^B;Okrc^ZTJzMQ?Fu5t%9fFM3OZ);PlZmG!aK z#)}Q1cN=RE!ltX8!36qB?o8XOy~zUEobwDOyRoKHi;eL%kKL2;T9^lkVmtJyuBs>J z_e6W!OZoW5NRDEMz{JV@&B?|@N5{W^aL9m7UnIOgn|`R&C7b@}oK3l|m=b`kz<6P) ztss1p)RZ6s=fka#-*%|mp_Iu@iJ{cRCEMX#d4t;#EdAW^5v=oncA`E`h3-W2otGHK z2q8Cb$B5vW8HI=um+r=6P!H`UC}AENC90~WZ6vChl8?Tax;u53*c|O-!>r@0;^-e38wUviSWUm&*~RV%FY^AolnjhH-qWVn|6~e z&YKU5%g$R)8&1w!FZ;_XfVVX}(Y%+VqKf?Yn+ajW%Sa5Dok(9SFS}4_AeY_fT&I^k zSdt7^z5h48#V}KXzV>u`gryI#6UjEAZD`*QsHMCZW@tRU9$^_^xEW<%kYj5*UW}-0 ze>J~m9u`7jyqy&LVs$(97S)P8(CkTcJxG<4dD}&4CVOoASukCVnx1bloc)w_r zVs*dt2ULE)Y}t5rzhc`uHop4U{b{28uetww7$Nn;*~5k}3e)3e;1}!1tx%eZ$L&b2 z^T(Z7Nv5aW!~#DVhQ?j;QI-J!1?$ic6{eQ%&rW4`t0ka{=VM6Y`SVHD0MpB9-GcSY zS<^wq%Q^Jn{NAO@{Iv7t8Vl6Zqc;z@BOOF#ovd` z5N6opZi-F&)1TDtE5sLU0|I6F_hqEL9csR(~;W!W)luWv0shPJE48 z1dx;-R!+Z8ERidsQy&^uYq?IUiY#Ibm1n`7)I~ zNQ#iTQAkZ7qK~Fphu|O&y9r|9T#&MU{^Wh>L4is`Tkl7^8=uB!K=a)dsx&V8yCbqh zj7DZET=Vw7=q+5sQ_=3X1*90IQj#*$@#(jP0QpiGNdh_VwH;!MQ#~r2>R_+s+hXo9 zGldl_fA+&$kPrq~X+;Pj=e!OiA`ezh8J;Z$-jymvfmK1_DmKgPnQ~F$c<5x28kxfQ zdXHe1ajXc9rW>%f6&(RkSkYsg+@X0fXy8_QuH`x*ZUDXHfKqzMmx>Y{b&YZ@azQEd zEntFB4r1_SWU(K3UmY6-F`|)O8rHn8NgacjaE&aDyWiLT-}IKHlx|#-?^Gt_f9MwG zTkh*CIAG!gN?86_siYXKo3z&YBP;9A_l*@+qVJtwG}jOon#$jay*IClAeg;xu9pvR z$Rk|a7jQx1Bn{Mds74`)Bt@bq5oU1xfOdpThRPv@2=E$HD6v+Xmy| z>Z1XB^Z-6#8h!cqy#R&kaP`sui@m#SiYxm51rIdRc;oKw9$Xp=5Hz?;aEBnl0*wcE z*8m}b;O_43?(Xi;8GipOGj*r#yn(s>psTv7A9U}tYuBlD*7|(6@!yjUIAf}!tQ2>M zS04KX#;amHM|a3y9tR{as$=-T<{wHt>g-G^6H-Ub=>UQC^uJ-z10{kC8uN>l#;a2r zMlIM|AV3F`%jB8KJuZ$V%#kq!D5*8)9%wOO%t7aC=7wSr=Yj;hQ#}NzOc`#_Y6?G6 z1V*=&h@h|8YSsVNL%sFK6vzYt^f+(7pi z=-_F;AWq7|Yz~zILhDUXNYW@lDErEw!qjog z=J`n)^G=+vU(i%3o6DDA5Lm;_@PBp&3Kp;5WEON`#c^^n%BiXNtn(}gVfu7CfjtmM zG`qi{Ga6U8oI)mHE4dhZR$omKLa(Eif46zi-~T`Lmd9=q=zrH+9{Yu%S8@MSZ@Iet z#m^P%>m=QpkC%tpcKC54Lg04x-XMP6AdCJ>&7j&%T!nfDSJ_>~Hs76eA827Awikw5Z*{QBjg9dDC9S(teP--qPm zkfy`dv1B#_PqE&9XgTKtV>mlr4^;j=ul$2PPIN%eIuJetlcRsCLHMkSoEL_uj)b6Z z@?AeJ;9nR*Rwr`Vy+5?r-)0i1!+@LxgK`^e(h%zX@&MUCfLIjSS@3ITeo@S>@qkkY z?O%EvgFL@}LDF&-!7LIPQ8!O-@Dgea5_yk7eGHNy43-oKmevWD{T3{j7Oc=1thgAg z{1~iC81h*lM9tc%Gz1u~3JkeKESwB6dJHikMBy`m`wkOo$mnVyff5t|M7!bTnClFdF0ibdYFH{8thKIiAhmP-s z22;AyI|FP~;c2Wwtsg^tDh-Tv!hC?CKOaNL8;}eK5gp`E968|}!ow{a5x|x1&XZw& za@Khuczu)5*2T#7$H-2?sBVF%UY#gQV1QA0RAC%YO#&e~FRDEas1XM=(m~d@hz^a5 zvNDM>$^%AC0%I?M@g^qOFet=2cKvBF?cp(o)+nUkRGRU%pOZYUzu1501HHuAbEF~M zZ`%*zD023RaPz5a>BJ#=#R1dfP@3Y!%!kU5i)fcAPR(RF99bOm(0ZEI;*Ka6PBRy zlwk2AfiEsG9tH@egwt$70;}rtZYDD#!|OXIfCJ!yDnn(Q6ZB!=Io|aa!L(rAv{0|K z@bt8ZrvxhyLO2LH6oe2OkPuO+8U2*T`~zt0oDj;15O#?W0YVPvL0? zLI^a$kEjH05XQv8AV=zEMlc~0>ckivXo=LSP$mXWsH?)8!V}*I@~Xni#35Msg0nnB zbO;ml2(zaJvuAa)=e@EQ)3cYMP1&nU+3Qc)n?yO=f;qdoIs0BYhv_-TO*wml3I3Nk z{*~5IoVmBUx%cuwArm+sliV8{Z(dFy+Yr*Nd}5SDUeqQctqA~zIOVHuZhtDGy)#@u z8lrSEV$|mQH}eRGfqu?#U{2t@jkgS^b&v<(n^rDj#7`;^(wz-pwhp0EFgF4QNg5Ou zteVT%`Sb1wiNOSLBdGsMR46G_D6Lm0>s=_9QK&#%Xp{%9?2Q>4 zDpKo2jB-X)E`e9o1L|}ZX`vJ;3?qDp0YWH&LC*NWdB6&yf=@!la<-7#bjV$>3i;Q- zPF-#m0Z@iCzef)bbYups&6s_ToEy>n`~6IcdHx+o{3k)^Pm3CU9PzCA!%*<&vI~ zyw-@aa+JSi$3KPQjO;l}Ak06irfI1ZruQtMy?CscQw-M7t&YLRCrGu%(-ZPdqlc&B^mMj?9>eGhO+KIN>iSgPABJIK!>B4<~ziL^@Y`@Ix zB8}=oplWaCYA1=JI3?*g`_w`Dw~OMmi!Q63?Udqv1xHW<7)^15S8=sBv737tUf7Tp6uC| z=wv9B&EQlIk?2*<>bGs}w_ojdd{1JGB<*IQ)M&*KgaHO`0zYIG*G%%B1G1nZ_Ap}h zB11DAP_uq(w1J4$!Kl^2nAgGSOw#2~1ARUn-<=EMIKzJ2YMu26!mxIl+E+K|W5RlM zTA>a7&KfRh9sc{bfA(irk59))L|@jV*5fX3?rUG50mpfOY$0oJI1KOyTC091dY|uT z|LX8?>*(m}JKH{dLDKp#f&_^hK(w?|EKs??skUF}x#Ru~KIP#F0s3=}w)p@VRFN41 z#t(fF8DJ2NDUrrSCT{~DYl^sSiWI%=$zX`P6)6DbXHC6(ae!bp8gvjgXwvg$B%^W? zovii78S&wA8e4SAaudNSV2W&QM(k}yjExP4b5`1LHgOdTrxFRV3JHf2>-{mzcTQmB zCNMs4Xz6r_s%1Jqile|_*phUn(+8Q~4;Xrhw52hnUpdpZf=MQU=+QOr$kzHV57y;v z-hr*vS+v!D3_de{0rhl2f^0GHY*2FSJq-i);~18Y39N!BC~|EP6b~3?21ZN*VU$#~ z-*}CpCJoOxI330_U4W^bBK%5ImXipnoil!Z3#%}Ty<5v(XUpv@D>ZAdG$2F|!-a~m zxg5aM{uX(PR=~Sz`T)Y{7YKo|ki0t#e*# z4Bq+uhvqE&;sdIk!EgwmFnH zp8R&@&O2Y$THe~aD61Bu46y_`H=*{M!n0x-WSw8wra~w8j2sa|LCRJj_%0vJP-kRA z$9Y_bDMJZ2;`0Tvby!~|B+>5+F6Z-}@$7xSN3Yq7b7E}!ND<>WVr&tX z982BkxL9oR4?E{O4O2mWQe$+|kaL3Uf@tu49?xM)&l$0X@)W)blNEH1c!{~Bd^!|! zIEk@OH^I4>(&MKkLnbUd>{hVNf6vU0fcFUrn~3Q=+q-E0Zdb_g$?o z-atWjMtcdB?%FwMCJLouPJHY4=OZ_8iqeA{eJ`Hcp~lUVF=QU$uy#)T~ArF<;t0p<>`{om^b0$kT6jH$$?L?8k>xpbQ9 zmSiaWi#z3v>b7(Q9-C2bn%a(R44LS6_@($2xdggTpGoC8>4uXL^_qSE#25CZVOwcs z>3-c*NEB9b#reiV+npsOh{DFmYoV4W8)o@Rgmr%ch^yO2>8BQ(PD4S_TbQL~$XLY6g4=gO=ERSfj&y|EF~^+#v#`?Ix< zFbd=9>m~H}z+@Efn~SY(wtv6={+@$lJ?EXf<#~S+c`G$pzfDY9);Vo994oO+s~9Ja zXj)n+_T>BJObU`UVq03?j$-$>dR)P-tbRShuDtnt*p36ssh8^`nddIo$7d0PL$OU? z;Y*2$2;ORb>eNxip$Wa_XeksaT+q;>FY%-}wSFSD1mGXZWX-eWtqK!ko3zpZg%d4S zGfuJkR5SjZH`GO#sI8Q%mHc71Mn(J|yqowQbI<2dV8|)9B1jbXbNvvmD0`#yKcCv+ zy)@tHDK0Mf^IuXgHyX?e{z(o}NFBW{N?0qrYR$N%U$9z)zMRI$Uc&Y9X&ZX(@o{N7 z45RZFgZx11YY}L8OcqjXykmRPXU_6Lt}oL=W(>2l0-T8mpBHKH9BOqDTB0wspLC)z zWRA63$7Rl}v#*3ne2N;3d@kx13_=sgl7I6sgj_DEN9*H{xd^l2_j1-q<7@JStlf_y zR3Rkmx%NrBf>{Ytus=WChG4Go8(VmepPKBluZvt+2)1Rg*QxYGHrh8?#!6sd>qinf zV0Ug|LyeMjmoaupxbN1fcaYVnWjtjRnn>mT&BIHv~$dl~1fiOo9? z6wN=o4COcbxW*rTxhcV(3Bj57m?MTqnaYp*M8PtiC+Q{yY*=+!uN0dZ@w|>;`Y`PXPK0O`G1Mlsf;{PD# zd&LhYUcD)gq0h$GJ;@GYJm*@AYB>+s#uObW{yr#=YN;x5HgihxeLhs&FgZ2=NqVyu z%Gtm?)^ud|{l$Q|KQCKW1NOUCoH4_pRR{dCq6T~mXo7sVgHcA=4D-aK0xeAvKf);_ zMv!6=`YZZQZ8GpG)A;RtK@v|{$za-bIiX+D{ry=DKmw_ z9Oec|)ncZT?wILJR|P~mm;Pv7FXu~e+sKETn5VphVQg4GN1`vMDdS1QQBj~zNebiB zsj>2_Oz5c!79V(ipuSEr&wMPdLdHn>_SXU&lOCs!&y$J1WJ!rL6z6ZBM_Mbwz|~Qv8=K0dm!x+yqO!*#68OBO2jJa>`IYTW8&jtr@@k03kLuA1bE$v-+Z-_1}RMT7$g0%5 zXJawFcBPV3F@zL11%|r2t{0r6y0rc1LVW7M5@a`n#U4V#8B;DG42WC2&ax> zX{4X=<}1Tw?9K36boxKcSH*_dn;R3(#-Yub*HEu)nhi}Cp5x_H^x0AWa|!<1&6kx; zCMP(4nv4#(tik(bOl_Vj4Y&;Xd+g9Q}#V@oov@!8-mK^%9 z&@>U^=vE|bc+9NjXdYn+(4TAIk6?4IFh~c7m+F7jDokkWqcf;`R+>WzuB!-fa>TSz zPB>4drhRj;InbYc#)g1c(f~G6rSsb<4K*iJN1Vx}>Hw{UuJ^l~U^s{vm$rL=bZhBv{=<`uMFIul>@8Bw!0O>{~CLm`jBA>NdXTV;?5ForjNrN)?RP zpp2MnLh9-+!$+@S&34z6hSfceFt1Syv9B2mtNZ)|UgPfVUvnN-55$qYCqu;CeiE!5 zexwi@`154=J;i%frGu}+7|@&5zWl|WqyP?8>agdCLk+ut^j8D>eXh*HYU`({k>qt# z){n%;PF8iZsiA_4$+pJ>`O|q~f~-S-TAL z)gH{QP}B7mdbNQ`gsCfwd_2~0EU$C58upfyZS}QjZ{fVeZu7+l!PLRevkZfGRk2v2 z^yW9qn0}89{&9ys>oA-DUhgKvzfTp%-x@m+uUqU_)I%oE|K=J(gZz85O-C;mn5lkt z5wE`p4=%+%pA;@cCamoU760KJY^m%QXdk1hcW-I+c;T#rD+@hry_jh~B?-SBX+K7N zpQac8q1tgr0|xoF7HYKFepom&`pXUs*5K}>{h?)IWKm2oONtL(oX<^0 zKm<(4+JWIFqe&aqGe)DLoLYuhuYtC(sGg>7y3hT5zuLY z7GuiV=A@fJOO?2-->T$WH+UnR-~&k9=~lbx{wyMc@wZ3gv>n@EK%iGfxVH~Wao|dS zKx?!IE2>>INk$Y6e2UX$1ih6Z&BCmXB+8OVg87_?Xdp6>8C%dO-q+YWlFq(um(>k3 zzz_VGK=Sbyjf_3El%YmA2ClfLh?J&V4{z^B>_Qo0UU^<=86V%S%b-5)R+)fPDTtd$ zphi~lWWNDZdj#4KhSAI%b5h6JZr0cSxSqkHS-IgAPL@(i?r{G$ zVNZILyl&J$IqoOVVEL-qk9g+dDZU?d42Cdiduo#8%%|mj)dqX65+7=YuAca4Z~AN1 z6{4aLe&GtTYXBI5L5-7PydXg7Dl$PMGsf-5x}+g51F1@pp%Ky%evOd?bMUS3(9r6~ z^4-yj*U>T3mdNx^(C(7VlFamG#X%F2!PeEffs=lqIa)kGF>YimZl}@JB$D?x9Ah}D zBkv+@I>#ZP*QvK>aYR)n7^V_yrPW9t#YHA-0beq>@M{} zt&maIr={DRwprUZBwKzmeU+aCDP!?TkNmYq85- zB`$7-g`FQ9b*nM4ZaM)u{S>(>`HaR_2Lw0($*kmpxDQo0!$Z17f?F%$Xegu0 zh8ZtU#r8>|@<(n%zHX{Oiym$JPxZI0qW1DYP1OTce986}%!Y>1SvolK@(^_7H?G3?GI^lk}>g%L1=9CQ&L zgwxr-bUE#j^m$Zdgu`7`V^#yd^<#~Jd}@|Fr-l3(yo!U3q;f=>h@spUQ;AB{*3On0 zUcR4rb%f5a{jjvMVN05?E5up2xYxHcbA@9Cr_vqff-yCLN^(IvSn!M{!6e;z7mY#K zn}yGEbMd@Aj&mB!hT=|b<7a=T4{0?K*Cw5dq`r~PXd<)}WBp}X)!bm2vX5>9`Jo$V zN@hUS+CV>hS>i<*&?N60d7XI{gJc$i-BsERbSw-7V?F^me+RlchoUF|7#k7f>a-N@ z3JvAw=((q||Mc_pb@R!n{hCVS;uiJeYn?4sk6)Wvc%q`DoxciJBGp{Xnp?_t;0|il zEqRniFP*@5pG6j;Q6cX2M8&O+^OJ1gRKj!F)w?0&|+h zZF8Py>FIA$p4eJS%vxfFtf4?XS(XnDj5)~Ok=?Cf=P;^tk8p5)OT{6vzmu1Hg+;T~ zdU@|AWser6HToUpMJmrGam!k~&Qb~A=6<`R*Ba`JJFJ9!TS3uiR~v23fL&eVQh}D3 zj3KZXX5!6`vdxcahL0~@Jw7^mWnrxQ4QK%SvL`l zXx`j66=_TWa+?#P>u6D%XyXLH`Avz;O_UVF)4t93DWcrnO>F2o&N>iOUyb^~7&mlF zEPazuHV>0t10`y$L$KalzuwZP-a511w&g<(-8S`yZ5mlK$AYcj>ZZ{q(5;icRxG1! zruKNEUuFch+fm=l)Nr;4+P66{<^hObXmEDo7R|2THlE0K_`a{RTJ8j}eu)#Yw~^<-WoIYs?u(^IBuWXA61}M<)V`DHY9(v5xBF>V z1qx#Epbz-o;;GdXU1;TVzG*Ug&{wtez25kS_Rv-LV1Mnvi03frM9Cp8PXIeRDujGW zFsQAw?YT^NxNO0|u-A-~wZwD@7<{BUEE}3b(o3wH$7-c!x#7`&7?Jb-=arC47MXt^ z^ack$dBMG;>pe%WnxyMN%5swWWV?gZA8)9?xPiEbK_zXrAE{;(lGQ}!j{^5?3`eY! z^o8@4t+!``Tdd((7WIqSPwu~}x#80+e3dkro2y#GO%|Qu4q2jbTUGX61>oxIgAJL0Cm#`}dx%ay-IM{#c_;<$N}vQ}l8n$ytb zaI~Mlw{pwIXL^41$No4|$UH25@3)My(&~1oTX!gswJoaGe0A48h`|rBk&FS$J;+K# zs9g-cQNMg$4S=<;aJ=Zsakw6GlwWc5ggT9DT2Ab7=4&CsARJBUW|M}C|0>7ly-T4A z)XWD9+q&88Ky$nCr~2v^{PvD#zu6pyo>hf5!(7G{$@{P~Dm` zc!(e!^eK4wk{JwsmYylQV@mR9%e?Pj?zezCJ(#lXg4--fp)R~y)-DfUT^A0pLsp&R zZLN26@UykG{0@oS&-{{|{>mC)S6pCNefv-mF1T)L@#TY6&4|Y8tZ1JDs8J-ff ztMlz2-T2YDtFeRlSqpzGh(?b@kA@<}Mk7eBqYJO<`@Tcsu50c-%k3}2 z6E7Bs9?lmpGyXfXPH&PEe($WzIs5y$@HX1u_uuN@co=XbW)pr!%4v&-&?@b@`?d^fW&$e_Wk-I z{223J$ox~_t9H6)=3K|>Usxaj4hfr8E{=r%KYEM(;iW0~J&)#d@c-0X8r6Od{5QQN zfm$Jso~+;Y=$dX+=YLZTJ$oN4`d_P|G0Fc;Z<*Wd4PvICj?&R89j-B6NFeo@Vp}O= zQtvObdnlJ_{Pu9&CQMMYmKJC@{@07=U_3`W2!kzx_h|Z;N`Z2jH=o_cyWYZq#!^Ww zU6+e9EXtDc)w0c8rC|J#!0lwQ`ldR^;iZ0Yp{@mk++dMjIa|aJ4o_kBP)$-bCDEnC zQZPv=rE0s}v5n?1BH&|~-&otJ2Vkr3gdF(NVsqv{WksQ~{^C>DyfRUYnc#TxTv%~) z@V8k!z~_iS$BFCBBh5JiZ-LNtIQeFjQgsvui2Kk>9qy*3MnD-xx_q$YxA`M&GW@X3 z(=7bOrNJy>H(lmuIAcm0wIT05{zf>IZ5l`u%ihmGV?($7ZQT;!@y*=eA5{~r-W`_C z<|ib?R6>_1GS4JpQ^q|-VhdGkQww6Ve%kb^KVin-co2uaM6wSTZ~qW;JkauX?g#G1 zot9azXW9iG5=9E0)6?eP?pc|q|A;6o{26UlNRed>Movr$M{h`TiLpsUbQ}3WrART7 z4o*&s$%t4m@X8R#h@!7YUa_%xN@vc6cpNaqRmUJKl)a33?!+*|(U-=Sa32#C7BiD9 zJB|otu2iTfGvg?A>XzgsXOwXDrzC*+L@|$zW;WA}C?+!X@$J zot9^5LblMd2z32-)`PwWj|rLMEtYN z{)Tlq{TOBSdR1_P?4W8;?2UgDf+{Ak6+%H;H#Ap;xPwNrOrNvS9H{VR7piz` z_cyxo#yTS7x5txsd1a{X-tN7aUqVyG+QuEn=L+ttHJ^W?kA)<;kH^tgkp?#u1LX9J zD=q)TUbDi)#oz8${#_akq{g20$99PczOWK>z+zVhq_fD= zjKdqTl@gIByad6uGKd__2r%@}X=kGtcyxn*YgycdS6vz6@I;CBg|Vmjt`8DPvvqBN zM05u`8OZ)h1qwQhBf_oey&bPX{Dv-`6K^3zdv>uP>9nbFmS(CmGmoXonHOV z@Q%5=`!XN~?b?loPL zbHAI#Q;aZ1`jaCIFKSy9z&r`Tp7nTYT?7UpfAW`%k3sNbl%`>xk|EP@NA{x=*b*H7 z;aXcj{&r}^te58(=$f{DOC_gXGM)TWJ)6(mih$;EoZ)j~3Tqpa@>g$#)X>Xx0{3EG z8)B90@4HarQN5)6N~yx1-6tMq=>#ehdm2AKyZ_;CQPLPVP&YAi`}K2`QFFs=c8=4$ zM1Y4yLl+NQ;_dJ^--xZw&T%rNNYj)03|&5iXvAMgquhe*1Y~Hd)#?)L+0H|vhZLgK z!CfyOX!tka{5UgrnD@7_jLnx5AzBIaQW0rt`{u};-3o|~C9RcRqaZD$?0&I^o$m@=`>lGVa~YT6tPD-|m%C=mIP-FD-MxJY z9J|_5GehIiSd+?_?&xrdK0xh5#@j8ML{*F4%Ked&W6eU&_WYV>8GoZAF|iN-$@<&2 zRvGkaP2Z)ibUlllza6HOO#{~8?|4+|=e<2E#ve~Buooy=S)ylt12~+h+K+$k%g#f< zQ994vR!tkaj-NjXZeV6q<>k?4)#X$$nSYuU9PGyldSNz;BU z(v4bjGfZvzJGh#4;g8U2mV%$=z;J)L;;7F;JkXz+ELx%3CA3!yxmT1RcUambDG--m z7?O-+H(e55r5gFvrLM(f*kHGxI%n6msmUJHf~L+dxmf7C#uY0*Yb12z)hwM^;i(?U za)_@zA=*w-s2jO0xtu|>e)VI(eM{fIUUI|mJY2nXhkT%>lWbl88_DYqy||z> z8##dnfzZH|tl;PusA_Ue$Q~UYEfx9?IT`Nh__(B9_Wz-`d^9V+V{(lq$lBq4*IR1j zZ|W9bw`e`RXKTvu^py=i6TaJrnK6fD?|O^pX|r~T*mZR5+UdLA;scr*&#Z`TS$IwP zuzFMefI6JbVr%tWQq}&@g+rc9MZjP2@OItJ(|#4IA|#1b;gpIwca_rNJN(?9+<_x< z=`bL2C^bPlW*2f}`rz9kQ}H}^6L!nOCEC=N<2^sqe*Yx+TF!uZHawwUKcsc0U!ZVi zvY`D(=u`dKiM4qS#y^&Fe&kb%F9_U~e)lsmxPKuP_D^lUpN0s27Np0%(r$@uur2i8 zmc~AOd1*gc?r{H`dHig3mAuP4<`Dv zw_sni6iG+)eK0+}ZvMB7Nr{{GpQ+sIC$#$?gujL;+Dy{^K;5y|=+@N=bGbzZM5Chc zg24={5NuyC2BV2(*HRnINWqwHCR?sM^1>4Qr=ob>+$kc@XbPm9cqGIHEb4_o3qq`n zwDu&5{4K&~wOsB(2%+Nm*Ir88SFl#=2AnMMcRY&pHN_F!+|@&qwoauSn8l9X5$|w4 z?2M^vuKbC^)Jvx2lph4Ux=Fj)xhQ&IB1H@e2?!k_C86Uc;V;zXZ0MCIcwO%Q6Q~U_-m@Gr4@<~29$dFD7N`jk`My+pPEm}qzO7X=_xMg zsTqH$zRhW~S#IZ?MdrG1!{=0@^5l)a|2dlUebm+34QN0W5f@wZmf2%%&<_p}8Zhy^5C+r)6oxUxIuW!p8P9|wS& zuHTecZE3IraRK-RKLr;=FqB^QK8cuZ3vw?PO%dSMD+xE#Fo#gHmwyQ$Te!MQrQpsi zPtV1ZGW0ycpRcFxprpqF3cSCyj_sL)Ib>QaF87p!jqBS-wcCeD`yxw0c6}okNk%ys5T# zueQAFFJ;h-toe@2ip<}S2nS~M5;`*#e_O__Pg3g4T zeh1l7_L5>8Z<>m3nwoE#MrN9pEZf3}-qP}y3*G&p4EXmbU%-^JTweYWGR8y5GAD9goQzBzr%#!YaZPM_<8Gt_IV5+dt~VV2(p^ z?A~`2V;H{MmwNr>+}};2VbwAv?ZVyda^A~yNZ!lG;1+XWzdz#+ci<&N=t9ik+Mjc< zNAJ~tFeA_KN!7}`#OgeoLPx0B_x_+`%1WxY*KfO6PH$}hEr?^co3*x^DIjq3i6Quz zB!D~E#KbCT7fb{1oYyjO7YLWRT>g2J2@pycjL}`4n^LcWZZc5H^Pj=a4g*aH+ zkk5=gTp|;J8E_1|a8$lbk(%4xrn~a+OTxq?YSlJsVpLCUe;}+F(cZuNb!^lKLnIE5 zKHvV~q_x(_lGH@AEqz+d@BRd3V!p#&$q+h5y-PO+8c?7GQj;Fv6fS-NvdTc24v0_|Gx|MuXsqAZqHkC(PNvNqF~ zHpK*V!<{yr+abe4hJV_(QnT~~p7g?XjgbHC#<%aGW*IvFTMuQOL@b-cV4K1(n<8hM zrazlVfkBQ7KoAMyRY+p=^P@6vd>hJ40fI z7=m1Q(*3inwz+J29O_W5hZ?4L%%*xofZTh_CyAF7#Le3+Vs66{2ge}ter>TSZ(%7; zA>_MY@=7pCErdj)e9wq|-?Dt)k^R7<{NOwLVQBeb4Es^a`N1$ORxd27J$SDh25+zv zs}XWc4c;5>MAmRb>n$f)WXC%#KktV*8-}3xf=@m}j;q-(njxfxFxTtl*S}!SjLI*u zD@b}fk$E|;_Sw&6EB5p_?$6mzP&iJ!D@Zy!k#Eb-<{eK_oKDBfuS;M~O3H8a*iW^} zNn0y!epMXbpI@Dq-weYNC{|o!L!Rp$Z--$X+npXUF7Df%F0?M5OC(;ZVIDHd5sWzz zttt_nIFX>9l}P@az@SPr=dPE8%e`S3lsM=2sj+8#@L97n@&!ApI0y1b7ltYaN@67% zF6^D&Ia+JwX>})H00#4d9SyYt`Ku#wFegxjokXIX{1i+v_$NxthH9$^-#?wI#P&F{}65LP1)%OjXtBbdu0 zRLsMs&rLSci91+DO4!A?(uMBJjsC5RwB;)`O&9Ax0No4^i}AJa%C+bYm&6E!b%aY| z0}MvGkvQNY{e2_Yb47j$rg#KX0^z6zt&8rZ%khKo?II*t2lyV@aKph|Xn?I0E(VD} z8qPrK!YZ077m^2v(gv^cL9OxyugXKM%0FIJq&ihhJ~e_mHNYJy8iZo;-Ee`R$-S?B z7uF+0qoqnon_E4%OG(>RL&cp!q)v%}PgClStTuqatxi+hRX6v2FpE#w3hJ&ew(5g#&q)z7n)bi42mEE@4w)28 zDsivWb7!LMuDRo;`|s|{0iO=T2g5HORup`;#r3uoAM6_H?K(c#57gUFe2^l5IM{)e zTWXX>z<7;SWQ(0duO3Dp?{HP!T~^%CHtU@m?r;}*rToFlBM{J{2UZq@l$75T@Zfs! z!Q+OPbhO_71(p&|FADEubX;-&!C{zY!Ps7#{TPN7!Sib|WQiLwN4D019r1m3x3VUu4)LS{7{J&0}Pw zz>k^6IG@ItfyS7EM~Xp-2)jnCK>^4F7zFPb+R+$>`52D*Eddi8GVm=0^C>F#G2!N0 z6zXFv$5Z+zf&aJOf*#Nnv(gyQ@-<)qjHl5^HVYGX&=fGyg=_tYJNOv#erEz`3SsaL zAZZR*fTRiw>VMi0bv_(x={nVS~h%K2ZWnFUm93^w2G@*i(T3W zgj;!hx^{#K(L~f+e7a^JZ8+VXku6kcukAi9?K>|WG%fE7+Q-kQp4pO^*wVt#g7zv* zmIv;0dTHNjX&ULW2zu=a6B!&3Zd?%QHuhBy^XdK~{J-ig3~vSMuNcmd>Xxs>0HFqc zzhUh+j6-2E#jdtk&ORKWE*047iO&8o;RR10_m!?09H_7Ri|~A^UrkHbG)EgXD_kjm zH;qIft#fzjKr;uhCp?t*If|D^S`zQ|3t{Ok`)Y$mRv^@ckTFjnj+sJ(~+u5oxT!V`Fx6M#$0Pg5&KBjUa% z?z?y3b4~*}*%3Qi;lsX!?yZzx()>HA_qxeoIni@ybX7?7)j-_nr}`2YBiAy z4#OACaI=}oArWLHlNzyEsNni2-79!UwAkQsFyEHx>9o-SK_U<%ZOo<$Q#heAT2}iy zoIvw~?$apa3!YB)V1m)qda>kL zv3ljq2fHOi6{F%3t0a&^n$`bCTBOwZ+Wcn*{u!h7@^spg;~EABt*zTpmxJp;&J;~d zH81M(Fw>vE)59!Pqn}6Enog%jIJ(f(M_G;}z$l-ZS#c0>iAiV1`17-zm2jIU6DWvB z1Jox(|8KnonQeAb+yW>$#oE8RqbeX3@6u0f)x|z=_U)E^@DdH^%F+JH?3#8HmnAcF zzpDRtNK@BgZcf`YT6134rflwi=q+b+3&s$1twqxxZ1am>;-N}fOBU%4^GjBlX8=88 zC9X)>TE)I{HpP|~H+5yvz0!*72rlk6{e&ols$Nx_g*DHu|I%B^7S{i}-g36E@vgV% zY(oB<-lD9t^{%%pZiT(;EoR|wX^qCjYYqr(BvXBA17s~Tx9rNo=&7yOqd5D6256tA zHQY`AOK&M(+RtOR+r z%wG|n?_ztIJNMx6&r(NA$5wXh$S#~UZ2d=XIVxW{Z@C)(kKS^=a?t^cX>i$v%&~ge zgQa3{)koyCdNn{5Yj8aX1*D5Orz{M!55#Uou-H3w&g^3VVcESs*SQzVU^xZ9( z#v0x)*;K6EueeMYKCF3NtUYW%FpVC!esHWm?!>DYJ?*7Ctv?;)#~M8!6%Yh_Z|QFM zuDEvG`?6p7zQ&th-9FE{StxVx->GRjZoEBg#TrAOjw&{wFIN-B|K6T1Hr{t2p#&^O zTmS;^CM;H(1Oj^;1l?^DKt%`!;!6g?kk0*{T@bwuIaS{xp;(f&YEOJa@H2kNcvel5 z#4C>rVRPF;H6@fH8jlO*tKC9(Ns}Twj|&sM-NJ+rN>gFPhs*G8W5uUQ)3L|@*rS%l z@wDz9_hPr-B!R9iis@8?BAkP1r8fw=2xYlq;-f5hcZjCaWckYDqaECKNVW(+3XaFe zxYzEGU8Q{#J&%v|yWOFHC6WVUB*YENNmHF2rpDa?-3mswAEmM6DmRi!IAI3{MU-R|>u5h=UGBxddL z9tcjQE4!B`W}mqo2yYRoc)h0t-ql)hJHPz_;E z%13uUgi28ntNl<;dhaHAj|t3Bi*`&ZAiF#K2qyjk!rxsk9x?_$hHQ9HkR$vmn zshE`7BEB;lwM@Oa@|3zV_cJ?F68)v|l=`~5GY6MU{k8LyhPJyiCkTnb7Dj4gAK$qP zG(OW{k3F?%%>Dd*IN$I{IkkDN?%cg9)9}nOwPo$@+_Q_s=qe_)b&v1DYbw*|t~|Bv z%>BY=i^TY8JhlC*uS#igwBR zLUxfhAbNil3n4Y9!b~5O`EVT{pJh(Rkv^p4ah;e?YQdzEKCD@Pom`b=!RC}cVt9X@ z+C^%~6`MY4@!=+YD$A0uB7Mxk<0f;9)Jkw7ecZkNCfjBNUG$~^(W3Jv7Z#eWCrToL zA#nLM4=ej{@*053BT)O3ip*xjRSMBEuB(79+eV2e1;a3p_ZL5ztr}7ag%;yL@yBdi z%?o!5-piZfrYc+A38C_Ton2)vYY2K584K)WyhajhcBYv66W;B&mGRm3795#NV;=W4 z`D6|@Dw)f3_4jpE*$xg)nJa7e_YGZSjxMp8t9u_Fnx?WH-77NJ&O9Dkw#b~kCNkfp z=ZChdY$v~q%#FAEhYnbBX9#B2CIbIs*VbRL?~9a+K+ng(5epb1!sjhKf6f9!2bXA; zM}lOr`+l&IiI8*t4m#%3(4GFVYZB=m+ksQ*o58hNW7hsd8KB%{3_B#_BC8z>>B9ts z-1x4_w;L7~hUy6(7V%xBVx@+4hQ)#*f(hdu<9`4A@0}3&Kd=9@0{{P80iZ4n>^pCz z8UThtL;xA+#O3!uP$-0=7+t9PB0yYvvvQm;0}yfqL_%Z}^T8N24o8D;+;lxDENWsJ zx}T|)(tw!s@K0*y6B(i|{}+4j9TZi!t$VLduNDjhX;Je?w&;9=R>eM+^_te?0nng8Tbkl3}n!ojo zXNF-w%@e&WpG6k!%VA$~2X)rl2*8l?kwQEn%mDIFZ~OPVzW$u?zea$-2!Ij5*#rT! z9|6@xYAh0vhY*nRq^d;EDumEnk*v+vzMv35FLm=MNie%TfLSwAy?~OlJ%LD7$^UB! zhlal}d5Tl=;OCwQ0q>ou0&qgNFHG~ATe~3JKReqd;0|F2sLndupZnUsM*q*_f2#-( z+yxK>a3mWV00^jfOxugu(SBqX)b!{rUbh4z1;qG_qVG0_GqM<%5(slNMHAgf$!^zL zRP*P$UOzSFvec0xb}Od4;0kA-zYs`N%naBI*6#UsGc+^AIt(0Op6cdibOJ`;MkhgS(7@}>vU(t)=!T;I8X2A|d{8yIt zTR1wmg0_gNGY9C8v?ihjZ%-39xTfNW7S|`4jv<5%}L50fIMYHe+!{1897l=3>8h(N{ms z#lq;%cF{lodl&r>+=a7U^!XSvIMEO&{B5dg>5@V$K+q-B?(Ab=nhZUfpUB z+liho!v}g5&tU0OyclPd#z3kEPPh7VKDRN0JNA=Q2{-@F>CTMH0l)!*1?d0MoIxHQ zry~WWrBZ8akJi^czJ7hUyX(EV`DAj_w~`{d_X5%|a7n^%KQ zPTov!KIu3CA9P3M*_@n|ot%vImDxpRT;1J$oL(rkzTOa(Yqha4xW4|pGRy4ipyk?{ z!;5T-=zOP@m5$ZZ7lssh013@*OH1h|Ctxv%PLBljqA~FKlI3NW&`^{5>1XTf%bT0e z78b^5TW>$bgcY>fui_k%n_q^N+UKQ%pU`_}CuD1@WM?OOdpmt|v;IBq@yUr>a{{ot z>$kI$GllW){rYV7=hv;RypxlH)n--?53$)@@2+?5KYxDR-3{>YxKug#@Z==&IZr7Dw2ah6)k2Bt5CqY|V9sheT z?SG3i1FK+w!vqAghzNf9cD*^d>|k2o-&HXF?!Q?|%=|V;0+cWs9V5)<@mCcLDKfTT zIRzgWSfPTi3MJotRs};+cQ%L#@BR`;RjCykU;eZT2F;y*B#M%wRk<96swkSSf!Y$uM!ByH0Or-r1UL%>aSX#ck2&8XAfDstu*>kc z2sE4;qL**gUFF&ZaX>2UOqTz&j-iu&W1jX9P1*l!ROjNYJwa8Xx2`J{)y?g8<4!PU zSxQa~RlJ(mFRX%yo*x|z7sQih-F$woyuv?<`g!yofN15GNRe8w)OfbQ+=B7^ApRjN zGtYw0y*R4$pL{Jz*A?-ZhB6GunB&A)bqj>@ zE$?c$3F1*XM6(43&=n$E1G$JqW2qr z_-|8jJuzoB}fnu9RBsID=WVI2DRhat@HDk%}p!_l;*9VldWfo z(|+~K%O@w3FY~Tt4X>u>(VU#D+vkIyHnHtR$HvCz(b4WAjElW#zg^zk$q9OWePVez zc)8zdwjqd5ucBpr{oA+jE7mp8r2X-m;b*t<|1J9QzxPT0MX`(q7>s}vo-CUcKuE=J*Nu@Y{)~bWlkjK( zK62C$HhCg?EE^mi1|zl@5^sb6(dY5u1hXi3CyeLHHSq=%TX&SOEgqLP1*A8g*X!U& zLT9;~8AeLq!<`+9O@>}H0-}IUAc~NZ!1^I2dMJyyOixc6cEf;}3lIKC4T23Q9Fnnfsl+n<)q&EFF zni4l)PLA_V{dG?lsYr`Ofc{sQoG|I$;Wm?bcMN^T0j!ntoP(* zv?vnV&`_*Er%FMMQv4x-ppms>XpYs&eaLBG^n=1$`zBwNp7sN=OgL7J+-WFUCzsGB zCIoI@77dkA(DH$kiL=QfD4K1xf9FDk01V(811ZFDN+A!BKc~l;QSLE%N}i82AZK1?SW4bKko$*bSASRA8Qv&*6)FgQoHS}nx349 zaRIx0RMaSsx*fNTZCzlLk$2zJECI9avnAn?Y1}| z>Io5;$YQc3Sw9>_4Yu8RKtEC=&ApbKTJY>N5XxvOW*b$TMS8vxCt7Ie({4`gU69cVbEXB zo#%S|VAbcAl{5zz0AT|n$Hrrn zg9A7P7%>1M>Tj-q2+_-q`p;cOfByPU1pdnr08xY>U($nF%TgQ;R@C&%Wf~Q$eU1L7i=C5zeROKQk`Iv&49VQVlDi&cT6r}B?eZ@Ut*q?!Q^g_ zDJ6Es7E%d7XcJ#j;hVbn3}kccnB#39jBa$`(|g16(feP&7P$Fy=Y$+U~3(HJ_jl zjDT$x3n$L_hxoxi6+hb`ad=LN1LEckIw#=7QxH1;AL4*&2V@P%9S}MoaX`WI7je!s z&#A8jLI*?%NSxnd1{67?#OMcp!IV@w~xT3@p9VLtkI!VcH(o%CcBpJ zBsC8a4zz;fy+x1PM$(LYw1zof%9Eu%u3QC}wQOz4c!o9?W`=fm5U=X4STxe}mX<{^ zN;zgep6~iH7XQpW(@tM>0&OIuKl6-pS^?=pLWGj_)Q-2N)ut5{PeBpm+-GkQnOn{2 z!-b+yF#K0>32IQ${1|+4u2}#|AfADR(U|__{t%p^2Or`9x%mH!9uPVpYkorqq|fiX zD-vW4sCWJ)-C75=4@jKf=m8n@JC6dhBM>?uaX=LVlIXwrlKJy?erB(f`a`bPnao$=?)zlC$_ z+606`eTgs(BC?uM=ZU$@s>^b*;qsY8E#k6`K$;+g8ds=quS0MNpCqC>+6fLAmAXvx zxW4g&(03%X*jYAcXFEQ*Z-!#W8dW_M;!z2seQ%g+4&jPo(z`o^FF;HeSrxygQb7)V zAKuAUV%uao8EVB=wlM_|T+_VCcu=AOPtg~bUETBnyH&n*ATCgrqI-dh*&uyo(uA}9t5`DZrY?QiOt8#9{O?L|TS0*UEFEZVjH);U5@ zI5GTG=eRWZ;n5*nOso3+VNgNEm{bY&2E_z%W$YBU>ykPl5rTlF`e8l}&f$4r>Y!^4 zK*Td`!q;N}AO}$bZ8x^C@}WAfr)Did+t~X?$kyE~^bT74wc-_DfRO5*O8E_le};*~JI)AF@f$`hlDlI9uU8je;amd0Wz zRy&E=m19Uz253l`60t}zQe+uNdUr*w&LJUhn1FfOeGBQ~JYJ(rO3g;XzJVjZ+cgj` zDdA!cA>x~SdaL5{bX(pa5nDgqvetmECi(Z;%`33}+tYUv-gsVKnDCdcytk6@VXB~B z*Sko%)>8>voApEQriX%KW$2t*IuqJ`qRuJk)_v+XRQ%>yj!j{G1m(5uH9soV=soJ5 z<8u5qAG6lR)&Dx6T1ZUP*MGDWt9UXT1i+v~MzY=n7wO|rl+rkqA5>%=`;>d%HeHcT z0q}v62xb6q3M1#g#;(o`V-biwg#UE8@ZW|p2%CSkZ@_s#XMPQc84xWXWBxXAKtl(# zlTYdL+sfJ4SlZcny}KK=we1pePf0E7)_7^|GlfC_z$ql0>YWUkI=3k_e>q5+qr~UQIB+l&h2Q+7l?LgaE!?wPQO96`8}cK#JuIl|25D8=fJ{Kba`J z*c*44(WF-A>3Z2?oYuw!W;#E>ocWUvD79&kvv8sj)NO!>>9v|xY*_<@$2@D2N%p>- zIYK7a3Q&*KNBk;j*(|R<{5;6zXp-|)O!zxM)NGu)F{Vje@wa`ZzQ2&7Q zbk3**>Ku?tAdf(E2LuzScDg|rok^okQ1*b>0+9rA=Wi;3=mEh5N*xeP;IKJJC=gGe ztpmy-F!%b+DG+L>oH`qa2lWyNDUeYAZ!gV1|NY-H0)J&%XT#})Jk(>a;ejL<)vd5v z(3Zvke9%$GY`g~R&{Cf2A3r=|It0|Hqa>#*k%EJs09BgX1CZ03KJ6&I6b41u%rG;8 zLgi4wpV$EBSHMF2=td7)l{p`n3(F}gr21rGJ+L{%)o5ZZaw-GwwOoy3sZ8Ri>9 z4d^#c!#iizzfqg&HPn_X{p z^yTrSy{;~f;f8zfPwflX6?Z6m4f0JJ2uuzlYrQ|-uUoRNTc^4DW93=Nqm5wv3|jM- zi-^9JwOmuc{i`yQ4mUD!(o{Z86z8MDU!I}yxgS1^!dfSdqo|OJDUOO}*_nYvLe4LB zZOkyZV5ZC2Xc(#ZFdAl;<3ATHM&t&CbLbUgp)^r|4-ws8G{OfU0G~O;79t2Ro(Uvy zWD6YS`d5JjatH*{-X8jF?jQ&xP$QitWdHD)lg?-q31SHZ(pkC&(xrZD3kRa*H)BBd zfDi&P266}-;sULoy}h8be6AB@4@fCcJNECZ7YGSH zgn&h@EMFU-CIC(5AyixBIU?3HFE>AUt~x1_i!B3f7)d2Zl&$8z3=kWAkX$^_!@_)E zcv|r{Dtuwkdsiu)Cx&?q-=CL;1E^iQxdO(4%QVHi+>=El{;ZKVs$8r~S*UrfyGI2~ zijW*sVqRl{1U(*1kB?Ti{TDFVU1XRE_fm&Gv#Vlkj>#_l;{|k+<|`OSzb=Kv1oP)9 zAJ&KPjJ$s_H8}koP4KpLzt80Lz0F(RFO2p2f!ELG^126b^5ml*Gaq@QaNWsSpSH=Q zv9GF+t^#GD!<91*52|cmJsQ15Gi#1{M>k^RA8#<@2o|PFFzQ9B-_tfsB`}Yq4XHqqmP6RldW*krhtM-5e#4ROJ|myb@|7Fr0y47NB8eCkip6ngaQ&60i=a;iD3bVPo!LAya(iBi zT_NGamge=nk|e~VS1aS{CxpiEnDMYRv_;b5F{VlCfml+bveTH&c+*C70beWa8|2M+ z9t%@2Cz36zA(Kwri+Wv;+ZZ6?3TNpQ!v;d!VFGo;vkfy9@=_#wNz{NrBa&>F6M_*k zYmNAEc{VKihZbSj7s-lL27Xwd!r@L`=g?E=Rh#zNim(-*g&!CKWZ3 zR}qW>8S5U`_lRLx4Rh?voZ(abUde+O%?v2?J>{g(Z7{;(#IvWd>57Ocve% zqmKG(VEt@yrymFx=2N)*7CgVF_57aDa|RTUARtqItDTB7i#p;gAv+a9AX$E|qW~Fn zmYkgqwf`myNSxnrIXQ6xu~O*5_M0pXD-pj9=|5!oH}A~<(@r0R%jx1U3v>g7oSJ!g zT^8;OBf5x86J|4}y@3EDogu4Wc{`K^YM?!0@A~@91EoVlw<*lG#yG zV|CGiDO6H;`GUoHXc7tnVI#?C^k5{d98}PY-P*?ojz?rBxIGJtIRBogn@20(hY*Ul zKBcA02b5S#@u)biqfFj1NwKPQ#WqiW@RT^8A(heasnQ1~BA7D7WB!hX$wM1bGgX=e}O0y{pq1l$IY0M*9-w6F5d=lK(X|K11?(WFj3USac#_PNv0;&QXoSv(4orU_&*> z5aJUnku9#$6>!^ra;7g=oiNB;PnTh2?PD zeysFnCC|I$__rn@(3Oe!FvD3~iHPBZ8=>x!T&Q2B&KA?o`sbifmcRBvVFCsLzSHxM zhSx!Zj*s__|2}q)k2n7Q<@oUM=-}WGZ2PC}X!r2w=i#r_{a@p&`(1N89W&ei+S+Hf z+a`Bg2KSp9_iF04GfLLb1+&IUgR0RzHxj3B=PcbTU3pNx^{{%!vt`%6Z#QyyCuV3n zW@smNXeVJ{qY}5!**DqUJJH=Uf$JUZ?;Gmt>Fexn@9b~r?QZOAX>PBrtt+l9Ei5T2 zd{>xXn46oIlarhEIxj7$BsQWxIuH}>mzUrZ9}^ZG5fKp<78Vj5=5qla^9!@{i?g2>KYd>Kbo%qG%`bhLUz%O~var0i{B`~7 z*Nv~=PTRMCw)K^jAK?1c)z$A{TU-0Fwzjdh_VXWY<2zU==C8I6E^_^Stgrw0M+1R; zdTjjT0MWd;xw(CI?Ck7pZ-edc1AJn4XJ_xM?f(7j?+063+Z!7@>+9P;er*5vy7hf- z`}^0;l^@%)oBJJ``&CK(+gScz%QC?|Yhqu6GLY9NZ)c!1$h}Q#c z;1ch={1|Z2cX{FP8>3POu#&=?(f7K~>bLfyKbQG3NhF9qp}l7kZp9m#cB2wp^zE_v zZMv)S{ilx?JfS;;Zd}@LZ>00sFp6?Z_yE_``3?En^<8@ST=^gKF)#W^bZd`Hl`|9h zL^j5MPaSGzc6|YB1{|rc*uTGM`EEB4u;#L=i1CMx`LQ*`i+BhUTPMUNVS3?~$AIxx<66 zHQ(f34*~Ur-H!H>tPr%v@|=zDM7uA_yVZ_C;ypj39k4I-EhxM==Mqg;(nON1Rk+f{ zVV~ETNDHAD25Y;F<5F$0Z}=HxlD9K*Q!Z-Z2jgWd+h@j5WgFZ$Fj)Mcn+sC4oqsGN z5vRnvRyJfnOrJzzjguv2bz*{%X&qskNUtxfH<4UFVrwB+SrAkvyO#R$JGpk!A&let zEV|j$m31kNEO%A{E(L^*=K17}Gp5}0uO2P7CKX6!uznwX*Fh&85w#N0qEhQ%cM(9P z6c@HE3t4~Yr7L*z7RvZdJ1(cyS%^Emdm~#YY3Ivp)siU(gBC_dgLq1{Tg)zGa@=L* z>Q~pc2DOyakQKxdvye(df%7QptJE7XQXLM<`xNR&$nVVCxh7)N;!{8XnRxb_rt>Zd zDwpoalSF?xM*i4}2yIxB7*QwN+D~d~5-TElXdOW8iD^o0eEQ~d1i7lq=P#b2dW$bK zy$asvRXp8~ig6TMc%72oyZ6OaBvQgg>P;cXqh4VnHzhpPJ&sa^Cmh>9u=oN;>tot= zQI`p1gxg4n7tu(v)NXd$ z?qb%l>vGI50+YUgLV=HSSykV?d@d5uST7~AO$=XFQ>p)4h96 zm~&H4wq@ra7k1N4KpOuIX|q;TY2>5AYgcv7IVl)$Me_5>@GC^+P%9_Xy+&H`rS^4= z=r&PRI9neRyo?K5wapsGLS*Y?em)0 ze6@Gnop)`wqwo2_W;#HckHS~O`7&;05NPDf(RFH}6NHtcFW6og;kv<97@I~fVx~8J8(BBC;gXc? zw{{wDj7K|1Dyl{E4HN@Rzo?B?Piz-?^t>_O?KG@vEqjChm1Bf|!^k6M`(3cc+dFh! zW37@2g$AN6+%Em2oyI#QN!u$1FygUBubtBG(r+~%u|tUSeYp#Z(Qvnov61SX^5Tf& zcTVq&gA{{(OOkuu-M?~Z*y}=5h9$jxNpVuwOKG<3K&$1UF7M=$fO5ai1&Bib;6jNEhzHFik|OI zn*F$=R|}9854G3mE*zt|@oyGArR$!>lkzAq;D?giXyNOw?lz9Ez4spFo+W#dWDFPM zr=<4t-(f7r+gT0@RYdABW18Ti!9j#xjPneeZbUrpZA56}yRWOqTFJ>uo@l@Q{2XnO zr?HHG9ldJ$hBXskB)^GEP<^rc{$8h1Z%IOB_u}Oz`&|}frAckIH$Ttl;@|9VIF`}m zyGxAmXp>tL(p+4%VW~-mOW)tr{K~g*?M7mshIq-7G!koW!+l&lXX$IYo@FJegZ`+< zvg}K1CRZ+1zFLuaFGFKG#JcI(=QYEfmWLxHA=w^$O;(<6xMnIjie|}WE#om?U*OVY z=*RT(<~;6MF+V&Q#gbJN``oklc1g*XdDVE8Z`Ph+6w@Y-QNE6$aG)mk%Ih~5DovYS zV$8#w`-HA2J8bw&&nw$9YExc4Ea`AR8#C0;S@zCV<3SDC;mlrdW&Li?kLRCi#_}~D zc)fV`?ZIT#xZsjl_*%nfF21Tf;e7n6`COvz;mw_rm%mo+G@m4fO>3s(m$y;8 zKL}5IzVZ4c<1lS-W| z>jQanDMR~*_xNE2^_RSn^gfj0K1a6pVVU%BJ2WH4fglNO)P^PtwxbsJSN+9T0CQi6%a1$@=qev;jI8Gb5uw8;?Le0v+D+ zK&P?5`+I?$i~fVf#0SnWXFHwkU5~pefp%j-&-a3;@&g}>2m2cZ2Vw$`UBpTKw1R@# zwLHhr9yy5JDCiT6ArgYOg@qUjk~89N7)FJpa3D6>AX+Fm5(v&u3N0is@*N8<+6yhF z4?Bnp9>n4gTndA2L#HjC#ih}4uxWpA|@~qyu&_Kvq;T`2*`GD-E!C<4lk7eZxab=!bA=N;q@)yy~{{Li_o8T z5qn854(KVyxFV1DUH}qW1WCjvQLw=baw%lg$<`x1wtL?#NbHd0>R9qU6x2l@F^!Cl zBfwW3A*baI`L!O!TyTfh)7$Dp$SMJ#g$v&f4%xzm|1dfZ7w`;iwhJeN0Ge9if)b=W zx5876Vq3T(4#ndXl3)DFk5WmFgN#3id%_O2!VWXy4!0idI773v5Nv3?Z2+3Dh4{o~ zsEL9yc0`+U8#0c^v(3iKdBl9rkKt1#U&)VT#NlZ=hr2Prk+O+x%LzzytVcnN+||)`=Q6UxI9G|esWaUEzN2S{8-EClXHR{K#uGn>&l2WUXOA`#PIBp z#uz1#wI{4%Lekn(q;Dnau*GeQzwq*mRL4d(*@e1rQ|#I$)$hNw4NfA>!J|};+0Vw? zD2DzjL+lnq+Y3^+w^DcX5E3>dZON%!E zG7I2)5(z$HhQ=W&uAJ!?$J4(PP{0quH7gkfhFo%;d7tw-$R16o%c&#}SmGku#^M3p$VbN|KcUjt zL(*j?D2Rx%eHdch?XwXM+2S1;$9{|%YnW^n2%xb}ehJ8lJjhSDltUz%IgQKd_RMR) z1s}kJ7NT-G_EQHu3)rG^nmY=%-3nO83(`Z=+8Ib&_DM4(?{j1nezCE-QPiWF`YD5m+93^7{XVSVO--Q* zIv}z$McWWd9%1~B;AOGU<97txsmu;(`9$~W7!zJe7Llza{|wdaR)vz^(4^)q`f2=u ztNf-*XX19Ur_m7&+E|9h_f3gtv{&Co(A&3wuEFL~DRBy-=`(p(~n0>%)&~ zs0sSRr8kc+n3Tv7zgJ}{TTdy`dK1OlRg%c5E0g^8YRv<}xN_5%uH2kuCJbqohsCI{ z_eT~V(v6D>or|`c5uK_Ds}rT<`>EC@2wUQcHOWd%rt+t}k-9g^Lq^IebSTUb?8zeR zfhHIgU0RlCDUoDAS^V!L#(?XR&M;h2|) zAEzdzs^>YFg+A^~HeKTj+k5%Zqx_=?bKOPtDgkNEM5d3yU6yKm^_sO<$?n>)$@&w{ zmdUPKO7+I-!H?RtQkvb^y8f0+waq+74Q!Uo=cnpKr0cEt8YGz8*27wq-)he}O3{+k zJ9oDZ5VzT9wjKX)6nSRamQ{m+H8fpMZ4Z?WmgQ^Ssc^(LeAEtaUU6(?32*rn&@u6{ zW#~pL&P2-kZNuHv##rfwiItYusm;ERkaxndj88ijx;nqCv_^+F6iK(_@YU(pilj2N z*S_sal5XNot)rK2%T?#3p6dAVq!|cr4?F6{rRqeiw!3k{+1G(sgD#z^=F80N2~%B@ zVcmGE`c12ioFuJXPg~ax>ws>Q=M=`KyY-@Jx7lh>ifQ|9YIieppL=Taa%vNsX|ph2 z-&3b9pQF0xtF14(C=a_EGl+YiAGO_k+S)kPMfIz3JGKAbTzCIeKkHgBAAZPCxZy~6 zPq{9zj5{W|RnbM$)1rUW^NP26(XlV3ww$oJ`=tAZhI${X6XlD;-psJUovBWU24yix zC;VL}pBYZ#*-+2x)_lHxHj<$>l0NC4w#xaBibrkV99v{bTi-q%`hHkNC(~Y0E5-b) z-=S^J7VffRNvy$3EO)Z)w&LHmchAq{Sj-!cV#AAjz)FM218_8CrJ9f+?#pS zJ)!$+MwjnXLc|cm)BdPuBN*noc+;_+wN8bs-uI-#B5T7GP7{^7!yT)AM$>F$uV%4M z^~wCmvS*Ww=96W3h))?#*mob1LQ^g8C835n;CYk9eP5ifc676Q!SdHU!Exu4?#4-{rOA6Ox9$(luyj+H_mfACFkSoN_Fd~_mV6qG*v-f~ zX1{5u#q*_E*4gs66SrS=F|sV`u2os~wtQY2wY%9DtI_rDUawNbkNVYx zbZH!BYK%H!3)VL*Mc$(DX)U^^LG|)%=JVMvOe=)vKHYr(HTBm|m5-hB_qQdFXS}CD z@$%D2ptdUF%cx;G2f6Eo8F;e>ZQH$RpI1N0A5L|peeUO9W@1L1AfZNfIQc>B$?Cn;TMVoWIuV(iAf9*-6Z~VAF8+5pE%dDX^^*eFz%9qveDa}hrO&`ZkJB8^b_hkks zWIsRr0O^eQNx3og6$KT1KHY9MKRAmxaVFC@nn@yG;D4~WcDYgU@|=pv8Hz ziY9hm`snV`&xyJj_3$O_YMl$?*MreAX9A?qYex(R(w^$+}-|zLI%%3}@6^)_ScN!K#=t zWCi4^rCkdM{i&!>SU4-fuC1j}OQVl(@U=pHZlnmW!%Oj{!J2W!z3KXZF84bvVHehB zT3#mJ)vJH@>lndov~JNDKzdFoHEDeagQ&z@$&G(g$iI6aYp|Vt`{RSc3ZCO}65osz zuh;knGpX^b4PiJ$6Ox>w|!@~l=FGTHYd}E zS#d^CT;UZ`JTdndQeqf{Mu|foG*iUmKVJBte9jv#tio;^s#W=>Wa6gcPcADg-ZFfIUr}dp?EcUV2~xPCAv$VRs&Vxhk4_~|Z`Sc!*t!eM zF?ri4HYTj720_g4j4M07Q-F2+@fKYGc} zH_kWTUF)v3TGBWwnB84Ms=4aW`y7+3UOIMBer;Ik!eY7M?F%VoI+n_k4IC2w^bMrW zp)K~Io*cnW})Lx#Q-Xg43iCK+(m-1E!u z*TLIATCU!Hc1Y}Q_n!nb;-U%=iRjN8Qh~oDW*I3;ZaVmGBv2SuYmOxza7! z`?<1ZgqS*Cx?BKrzJA#r<~%4gYU0fMO3BQ9I;Ya+<%7u4nP-oes%+DJj&tlV-a+5F zEC7G;Iis+LjdBy*fdGS9oJc)AOR(opgUPrae!}_8`~pkXKj-EI#CfYu4Z6w{L+lZ&$t<9adUgU0HDF4xm(dE(%@Hip){3jEuc3TIh zt#cQ>zXRgMJHPe>F0wD~C4WvhTCsmGjwX|{P{Y5r^pP?{;2F&H)828CP7RbO%DaaE zwdT<#{G)~ZdAqX-gcKu7=8p3_2e%}+ilL-P!1-SiVJFn)0!z~30tEamNlfVF8Ak*I zcs{TbKTK+(>BR+fIGQ5^#1*Ec$-Nq5ShXiEO8)R9bJHN19#AWh-Okj!gJ*Rc@M?>j z4G4S6Ep+=3z+m@e_@0=qro%{$TF9%N!iPh#YrK*4^ z4k*jg4n!>zFR;^uG%8#c1|r-R2nZSE*(m#C5}Oy~!#xz#I3IG|@E_Z8AC-yN?&Vx5 zO@WjKwCFi}@GdfKV8AD=jIaCo>~6RP!@CMK!&iOQ=F)6%)Uif#4m8)q%shW{i5(i;%Y~Su%`}JM%+uP zWcofX_t0?Xg>?@BSUpty}iMM&0!$(J;F6O@OZO7L@>pC7@rP1Wg z9+fXw7t*78KQ3q?n_Wdl60Ar&^n&x3opNQ!0C~!lG=Tu_&5@3q%vGBlLwBbd{o90M zkA844x>}4<)1yce`Vy2D^G@)VuZdn8c*1q}qU?i$>t?i6EO(#ULH7&#pMTbgXx_Sg z^ppojVuSSFows26Hb+*FLha87R;1PM)PB+`TI5{Ldv3++Sf%!rTM@6Dy*fh5=v7Z# zE*z@dKv{`N#g0U2u}gFY@LPeb2nQ@_=H0lo`(uGs5xxVc1L4h41Alt%|oT z2&K%v{p>6bqCvVU*lRvJ|EQ{0=CWH3)?iVMvUc$oo11*T`PN8O-5TPu>n|^J<$A;F z;g$!_+o;O`%S0X34fGmZ+5$>9hQ(KM_NA${z`N?vz_C0_cPwkZ*XzPfGs6B%p652n z)!jxGcY&a<2XhZX>HT+yAB5_Yq^=xPich>_4WZeeIX+0CZ)VBfFuOO^#PZ3biE(Gc z>&ekw2FJmAUL}{9yF+*Az93`=x;Mgun62`lRZZGr526dCZ}UHpXfmVaNHFuTnw8GH zLM{;&Gn}e=@#_9%P1Y}QhCH_C!p5`QkI$#o9W8QyPmcCl`VgN-xC~@qcwR(P$`91q zDE)B4C$leosSN$XNIa44K_-y77W$RPZ@f?8`)1ya_OE-!lHLAdBKofZU;QkJ{)oWs z_i^hmT|th47&5{fI@NC!LB>O@;MOyu5%ZQOl6|?yZpA@iPL~f40ty0yWA)z`M(S_T+eDG2&>0Mc_#8@S-MELg)3*vP-5_O)_M*9`~@1?Sz#B0h-YAWOd_T>H6Q2~d0vIk+% z=PEw_E5Up6jp6i-2lJS7M}chqB+L?waMNQH62K<)LjdW7J5>;8X9@7zy!|QlVB@nd`3XiJj zD~bfGgs?^lir}W})I~B=<=46urMiVpoNBMnw-DW^x3H4D&6g>=Md~BfY`yhDVX7hW zu7aJLg379b-n!VqT{+e=r3oBVW1(5;NC6{7s4WsApw8zk*plMfqL(d`Af@caNBCF| zmBw~%`Y?!!;F4KcWTwGPUTdZ=ABPx!q?U*;|k#x(IaAgEvQ=E8;XEWg~H>mNd z42gPs1W!9ss{N)(yHDJkSA5dXx>3Sm?OEAHA^G^;>w((E@sX5^ zywOv?P}N|i(E_`fu~0fHQqA(SYeZdO>1oA8+|5Uw;x*3KH5P&+232OPqPX`0`=np3 zQ}=CfXf~l*zba_16y6-|D#B}!NaO9>i|gCZ?t3lXx7DmEq9nZ$u;cP*h-}{{e3^xlatoL+ubh z?PI5_WI72{7@rvVV|Fe!Ut13-JAn%09hg@}kS7lCr&i-B*Wn9bpM!U@DC)A7*M7^2 zBJvase4<;(ROe?TQg~zFp^47U)O9Oy#$%}jT8oY(Sw`2VSSxHd#1!kQfW2EFp?%bN zMP3^VujxxZiuTVRl&sTL>e3y(5~9MNa90SgBD*eDx+_LJ z#YT}eEn;He{sNQT8GRcG?x?*_wdzKOxORVlN)7xISv2n5%hd9 zw9ssrD+8a+18Sge>=ir=6hqmgd~-7PfVbIV8HF9Js8(*SzneTxq7m~k#J_Nlhtheo}2ai$(+1gd@!rDc8Uwar&ke=S%sF5uZ3w3pmZMUehO$0 zLAW#w(`mBD)9?xw(M4;wycee{ttYUDH3o3eI~H**LgirMl=#k@rwW_HEx4dtY38TmT3H z0LK2`WO&KTJpokIT>PyAA&}e;Fx{COfyo8koJGUX6#>?T;6IY!rv2Ku#Zn4}11R{? zQjJ>=hF%cnV5=qJY0%vhPT?R(V^f`84~F6E?X^^;;TgT*Lr#kC9hDWBzWF!{zfD*> zJzqnqf~$j)!!5!~e!(NguOybV$1T|pz+y8zfk1s?YCXfVT-lNh0s0-eke#`J8Clc~ zVhS;k^8CP$RRW!L>6*d6%LTbeIa#m6*Mmh5M9oV)(* z(@Yg;WSG>HBS%K<*<4O&p(Wb5<$x(VTiktB4*p$JjnzKx(l59Q5 zqwD4*WNgA~pUd7t_Up#Z3BV3)P9ALkDr~;W!=pv!!?sc4-0PBd?9XNi{>YB(_ML3* zq>eeW)wHC%X}#7fyJqd>d+pyYiP)CyJEd)!s_a2a z?Zp-{-R^Cl1a8+B?%{UP;%2Ag&P(3bSL`Ou=BBsjhHmKwZyI@LcqR$kK26*XSoFSa z&F1bw_HM_H?(n8i>gFWtp3Ayc@AGEw_WrK-2JQHkZv&<8BeL)9MsDq%Vg9yk|Nid) zcW_7>Z}Rqt0#EP*&u>HCZw0qE2JdSCfAI7iaOk0M&(3hPF3th& za0%ZFAE#UB>^&3*axG8sRxR=l&tbGkvnG#mBwYwHe{x8fwOYeC1f}vx`|>!KbM8Iz zUfnkPm_f_<;j(BCYdaCwfDI?_x+ZCY%@_gl>+{eMJ&BFeG|!K*E4zf?aiW>?O1E@0 zt@DHpJr?PX@9+@tFgVR)-$wC{O{Y3gw+})|55z@sM+c6IyEwC(@;A?jOSkn~=g>@t zm4;)K?6{Dx8}k=T-!~lWQUa^X7*+myCOh6Xzwp+?+9y`_j&%0Pi(I~C5Q~txbYDQi_ECl za6eKf*LQ&y<)49Ng3nnhz73{}-Jn z`l3%0p5K}4Y*V1G`G$XUqlfya=Mki5dK(maf06pE*Lnn@`l{c)s~?uF7yGeyj;{B5 z(gS;8A^Wvw`-44u@J{##&;NWS z3;i3>HD4=z=SKb6FCMqv_@8HpIq8NRXA9nM2-2uQgkOD$bb2a(ecuyEx=j8NB05h~ z{x5n?+LwO62{;fDy$*1Q!*vTZKl6Cd2QMLw#2xxHhux-(z&s-o~44Bv1)5S0zzU!VTo zdhNL;5MNKE#|~ix;wKx+eS}qkSAODIcp-)vYFN;18+GIxh#`vj-BiU5_mgtS zspyW<>7ePdNW@LX>idi0+mOi$YX7+t4CY6+aIuKu) z6;U2vL3V1Xs!UwEq+pVg*(R;E+G^pOAI`Zeuc#;*oQzUQ_bai*8hb3V$rj7#g-}Ae zMF;W)scEJ4$VJ}@j>=Vqm#S3J%`)m~YOP=Ijq0Gcl=1a#xByzpuDIl4o0op*GMV75 z`RcnbLAmz&ubj$aHLU)y$_ach!U-$9FvC+Zdm&`tp4R24PD*$enEi0WUtf;)(@tlK zG1l2%_05VeVVbd3Y7-xGOs2;m_r+yu6N5&rr~K-?Gp+st{IhQj)5IcG1PgsM(n%}5 z^rAdNB&*XBK^-;KRrj2chd^t+8`E8T{WaKOi~ZfhRu}Yy#AZK)ws~s1{kC{MZ#_3j zW7~Z<-g)c2_cUc&?QuT?!hI0nf)9Q;;u6VCH{&1i{W#>2OFns_ekXo8=9z2G(Bh3V zPC4kIi#|H(URl05>Zz;#_6z*@khSNYmp(h~wc9@W>8tC$JMXr39{bj}3qL&Z#V?(E z@5w8_{A|Ai5B{|A(Mvx)^@k$QJoedZzmW6K16)1$;fp{1b=PlyKKj^q?|rZ2yZ=7? z@k^CEDhAb`KK}V*zCQcA%KtwA1L!{FApr>jDWLums6f_X4Nm=oo&X~#!3o+fcSz8O zKKQ@~3@(8Y3;ZAmb;iF3#)*O^JRu4ncREHS0fPm^U=lnS!Wq(#O(P^>h*GG-9rEya z457h0FsKh4NF*<&83?vAWJFS-sV!zo+d>*cv4-GlHc*1%Lbzl&CiX=k>Z#$?aHA_6 zwy%d~JR=&9bvhxkQHT(si$1zImwK2CLv+Chq^cMx00~41LgM0n`Vs{!B1Dg{kxyD& z1FeG?{&H4e^j!nTNJjsqv67a&}Zmc`tT$uA7UBIs6sQG=}T!uLmAI3 zMj(Hw*=mGTApKY@R$H8yJD{N#&;XJ!(QIbR;u0VBP?MY!!{%E!mCihlQ$LWAOKTcL zuRX#ApD(k_I7g-$Gx>8eq}=6edg)8u?4qF#eJDgDD$$8jw4xThC`L1?(T#GnqaOVz zNJA>pk&?8eCOs)iQ>xOHvb3cxeJM;mTFg%#larxbfr0#jAT+I$L0pv2ytYKjd;K&1 zR+x$c#Uz9mSaxQRZG%}8hANmx1rn&;not#vSWa@q>!9e2jI`WU)SRvJKLPUAHxW7! zg)a0YhViT*_#WJ?Bj(sd- zBP&_JuCa}5ylIw1m9C`rXS4MgQ>x75&RJ!(o1oHXtVAo&%8YYBT>7lw?nuhlzKTqc z0gYR{x~T?fiIvv82MHwATb$W8RIyYmTG-mwlEk99&V4R)qbuF%Qn$L+y)JgMtKIE# zx4Yi`E_lN$-tm&RyyiVGdef`k^|H6U?tL$Oy<1t!V(_M>LX|g-v8pNQ*H!+Y&96aH z)`Ss^H9@J0EmKd~s?(CH9{MoNg8$24f*=)Avl6am4-$oMVA!;*GHz#)YnwG=9*$Ds-MJxurg?{8ma}k6K9gC{8%=P1Lm9<>Pz?qXo%sCR5xP*ra){4`t=GnElrk}iNGnue5 z!NhE=b)Ff<23k#Y2_%VJGUb!tGEK;YMr43&Wy@qX$9}S`8_!5|#^AXaEozg;Z!uXF zr3m3mkLu4MyBWzieKL-PS+}=>Ah~szGvMSM$2p ze48(Q`Ng*64cpfG!*#AbvTI*6yV+nf-_8p6$J9yN*a<{-vX|}bZF5^_(6%uputOw@P$*n;?rsP!!w?~h%a~I7XLWNyMl3zlRSGIZ>z^cuJV;T3?Xe) zMGL&q4R5rdQ=ux*0Zklt#iHWUT3=BUha(#wBQ5YxH;N+mvdiEw(V|z{yW^`F88_9z3z6uJKpoI z_qvBY*4_AnDqPTwv=d%+YoDY760i8hGrsYTe>~(PFZsz+zVep8Jmxd6`OR~_^Pc}a z=tD31(UZRPrawLEQ?L5fvtILkf3Ye)po(rlLaR|6XJnMfPCg$bVo$~8IP3UI-xgkd z`rfy0QcfMBEhRa`i4oDTgJQ@frTNVvn9;V9ed58$MRtn*(57EK=YanvuYa>Zy77T- zd}Htqkx*I#S&=*Dv59-^q8|gC;Q0`ek@hdX@re=g^@j3I$My|Nins^@Zr}2u8Q)Z& z(L^5u4vhE}Pxl#z13q5`#>4~~5BXUiOT1n|v|l&=s2_}-OG4<&| zWT5y7A&Lc|_i5o1@`>|RAp|m@2nx{>@Im{103$5H`)!HDWE0?wKtS1yKOu%OWD^%D zS*Gxp69tYq?b)b7)1Cp2s4USrT~nw9j(*J(4Z6+Ykx>p_$BKL(21>^gPT~ayiUJPd z^UVknf{hYl9}{NcooFB?ejzCqVJGel5KbQ!{vZYd$|j0po}i)wCSe$^;uw-44S0YI z1kwA&A!&g?R&AA8?UPdd6saZ2QE}GHELHxIH5C-G43SaQPsz(w38U>TqSZ7a4m~1S zWZ`k3*)3Ay6@ugSh2tfXB8o5v4?dt2vZD8$Y0 ztjN|t(3XTrWNv9ABii5%)=j@{hdIt;J-*{VM&Kvf;-BoGEl#0KEF?q58WlB_J#A5iS>&XErTjSxfsxhA6j!A^ zqk?gYf5n!AK^R-s)`3l1g|Xx|y8h%#ii9_g#Z2boIl3YzuHp~=r7U7$K5k-D=FN%J zB#RW}6P6;N0HjX}Wh%O3u=wLZBIRW=pC)Fh9 z11%@8yyJEnVPqa47Y1fJ{wCmI_6d6~jdqr2c|sr&UZ(~&VHXPI?4T!OZl+F7VV~s5 zbJpV5xF4P^*YXtiPK;ApA$aA}v8sG5N(%ca@Kp(&k0k^tr+hunAL*W; zJsFma>zX`4HWr_>YK^j5E4=m)wmQ+XbiglK7;U&ky{;kgUC3*$s|>;!L#W0772XT@ zgFk!&M`%Gj83P)K(puoDuTX2eR_uz+D?z+qLqTEYJq6&<-up7Ol}9Ez%~f(k?C2 z8ZE{S$v54TG*QT29Aauv3mw{_HAO8!O|7OOi9!9L9R8so9-1p<6O&LQjUnP;@B<$0 z=90vr)Moyye=Xygd`doPZMfY=6No?-sMf>2EX|%+(-yAb9xmc0uHr5(<2J72J}%@& zZj?T)HDL;C6(c*j$Cp*hwQw132IG)eZi8VigN#e*a_(uE4{iZf|)D zg)EtA5V8*z}STnNQZPbI`Myy8!F3nD?p-8UtJ}>k}uk=nY^;WO- zUhm{;$kcRLr6}Vn5tl?l?X+<(-ga;KehT^87DcwMKy->k-V5-S$NR!Z{5};};%=YS z%Z3d^PJwSmid)LMLko<-%qFkPE-&F?uL3VH12?b(KQIJGaN$xeI^nCAU8MQi7N&R@ z$^Lwk$6jz)W-te%FNmE>UGiCwl;q2pY*(gb{+=wlU|2{BnrpBw_{N{Hy}&>C!v`!Z zfhzCd+N=Z*F%cKB5g#!UC-DSth_hHzv~U%bdDw7n8Ck(5K{T;nJn@um?)m27r%-X0 zCE~US9}K@HKEbAws73zm6AHUS3_`Jx+)@Rr0W(#ww{RI6Cu6_TP`g4<^C~eQ2eKd! zG9eeT0#opB!9^R28gX3=gg&S#g)D)N#}k>yeu}NgnAT65iK86R zD5HtG8iam|8vh>DhJ8jqfQzT)jLisCsUcJ!|4afKGB5YCFaI(y2eW%3vV{z({K-cL&2aG{C zbg<5AAVjo8Pc%hWv_)SuMrX7}Z!|}Dv`2q5NQbmYk2Fb_v`L>dN>lVe=rF>9fF$h( z5cdzm3a;Zgv`xDzLMJquz5qA$fDN!mh{QDG2sKRJv{6TDPU|$0^0Y=^0rK_+QO`|O z>*Y~bwV@`pQXeN%Z^WaZ0>koQSHmp0eDzu=?^nkKDm-ivphjB9!&=Aw1yTWqN07C{ z*2P`O>|%UG;0mHu_w}A)bylL=IP5U)zgB)N7_96~86Qsadg9aL41{#z{Ykx!FY60>p_5q^; zZojPZ);8cCaAW7T0kbwm)@*4XH^ogUm7;bs_cRSSwK3SXF@OXMd-YS-_HC1Z@@h+O z1Gmdcw_ba@^a!MN0nfEN_>p{P_HaA4bvx|LN_Thj zw#&*aewTN7|94EUW_l;Mt}XspE@`L>Pbayxhm#>3mrU?Q=_BF(st&tJh7QkFvm>rP6LSHzH$x7M)BZz#E$ zU#rVeDJZe{8nPga!z~OF-J!Y=C`C0YFt>?=552~Q~T0p zXn1;J_>*d^D{3#anH4&sm*cG`x}x{U5ceI63(=dgdH$UfRWlA_73hP0!0=a{aWNJc z>c)#t5lCx&89YD(@YX|cdP-OkC+u1=lzF+69JaS0`?v2ot&a#Z-+GJWx~}i~j`X_A zWo4{E`ju~FnS5lHoXRt}3cZqVBLi3nqo9$2)s^&C`pz#ak;lHHuWIExJ1qR3M{A!4 zv8}6nidww8{|dYx1dG#DC#`vvqUM#ArK~v9!!rRk7sQ77y9fjP?4nE)HL-w+%E2QT zE8W*BmHcL$e98y;xvN^mBl^0td&U#X#v4R~qo2U`7;z#IxkrH#9F&!z6NPLs%Z#z= zhVgN=ARSx#msQBL;D^=2M;`kYQdQ*VI(@Q7{(Zzt{GBc@RR_JH4}Go|y~ZPmbZF3IR*ai`uxO8 z>@H(GVG6z7b2Hv^yu8zU0?m2bZ^&T3G~6@qqO-d=%Kqq+egrc)d(V*SuRf!8KAwKQ z=+Eff*M7P?@M)vY?(_bI{5*&N|L_aHI1_*IH}LT*|HCo$I6d}RKlZ~K)D1d+^k01N zOaGu8z4Zq)PeVaB7PIPbHft&gG=u>K%hePgan#+ zDNq?iD3D=8hYuk}lsM7hG>aE8X4JU;kz+@XA1wwDIg(^alP6K8RJoF6OP47%zLYtW zW=)$gLFUxClV?w#KY<1nI+SQpqeqcuyt$Mq$``7jMwL31YE`ROv1Zk}m1|e8U%`eI zJC*l6JeV-cn1vB19t@aqW5YN0&am^I9nW`ptEHuOB~zvGdjzKVBempvuu-KAfIC zVe{|d$Cp1pa{I*0spr?fpMU;;|6yM^;iW5pYQPs=NKrzgd)%O03Rn}P{dsU@D$?Om+5JmKA zi@8+Uq618y+u|M)p#Bo}(nqgyRG&~c1(noksRd9#Cr?dPTZmS*bwO9XRgTti$u0N1 za81IM&<>YqcZsm7s5B~Ko0AmTuIR1GQ6@l$stRtHtybWHuQGMpgCFV^-Sog+csFw) zj#y%h941NKsPvIR27P`2Ytw$AaD**eyDZ%4E1yjz@__K~5Ifsb0R< zWDuA&`R16TfyWqC;9w#eW}jHJQ;|s~*y%S7Mp$Z86t4KUhOM@2;;p%!HR}K_-ne5` ze#jUsNnzf!(kkZK6j@_esG`#<^yxRXd07kgo)tEo`{ym#u~aIz_2xV8Px)rHikdM^ z8Ss2DReKq@{-3UV$*8A3xazNS!wHSYCYg!f3_KR*#nPxg_rwj+4$LeSA0=W=}p=4=~2X-A=w(jem3n<-TZUK zJpW#>(aA60!qTlm0z`d!Ri9U|qWH%5<8LOY=xATm7RJSc+|d5c120FX(2Yf!J(ID2N%9`$7a2aI$Zg9{XK6(K(u4 z?t=wSB8V0Ohrv!NO?yJrB6yIQ!BlaRpZ)abKU=Aoi=`7Sxg_X8IkV1oj^ds1RLK5o zu2)S_ViKPi^rDLZno*5zl%rk~C_+IR(lzz+m%*G%F;Q{M)r8W52T=$!ok`8_wdz%|dX(J! zRH$9`DrmBpIXY#PtYtOpSwphbudbD?qzS87rG!?w&XukJ-3?dUnpdYyLqBhYD@N-Y zSiuhVjCa-RVG&yvzy9?=q$BKOAsbnqyhJE?P3&bayI95+2#jR(>}Nq6TG5VHgq6kY zX;Etx&2Dx)9VG2*VH;c7&em!~v21E_+tt;wwoW^u?Qek_T;UGaK1I20ZvK%Q(%tfQ zHm)V^bDiW!BrevF_VN>lO72$`%+hKjsytLh%ChQ z7`H!GLJ@@A1b_Gg1OT>ak(+yDCeNA9bx!btKLfc(J_>n=RGj?y{_Mx(84F}I{2!l- zH(@g8^~XO5GFD#DjUGthq;H1vfaPpwO>dgh!o{;^^!&ixO(l^{7y+LR_!j@|anGzi zUZNem=v!JCEN6B^Y1m?ec(8!TmrhuwI~{Cc51Wji?o6m7mqe=2%UDQMVh(3`XeuXL z%yyLZWiyjYa!sRa zUR&DRM)oba0UmIHd(hm~8uh(oTzMM>ymvBR4xK`oopTKVxLObRnZf! z97XCLr~1|59(PSM-70~w``z)LcfIeO?|t|C-vJ+Z!4IDBg*W`+5ubR)FP`y@&wEsg zevy8^UG9~)e2MAqbj|mt?NqbKr73@T(U0D}ncw{BsS~GZ80hl?4n65%AA91O9`&_n zQp;Jtdgi`f_PzH#Y-w+M;ftp84&Ob`f1iBi(>D0ScRt5g^hMtCe)-k6zSWxleC?MC z_tIx9^{*d(@dqmV+c*DMif^0mBY*tucYnCbe}4Y?dnNt820xv>o`3z{CjL{AF~;$W z$C}07wBr8+X8;9oyOf9BtnIt@X8um3{y>lY$Zh{D@B$g5|6Jx+lBENdjR4mz03C3M zmL&nZ>sj!o0hb5@N2>cc2(IpL&MUs?^6x-83<2#BmKS&C=7 z-bRX!h{_VtcpQfvvTSi$N7)!jhWup#>;4crkg&+~P|5so6!{PkQ*Mx;2i45*3h6Bs z$#7BBO?U)ocu0VN0u2`Z?A2&z)%pyG7-$2ZtrOkq4)IWGLNUn{q)L=A0F;pwo$;)o zum`EgfqroXr|fm8v1d|F8b^(IETtL)Fo6OG9DPw0Jq2cj(K$ZRFY=HA$L%9# zh6xtwCSxagd@;&M;N7aoB8iU}{&mjbG&0;cG9Ev&DLE=6iSqm~5<#Zs7?Er#n=GxE zu}XpiD=DTcIRZ<(QY#%pES>T!c>*e3_ri47}P0))tNJ-(6|&2o&kGBCt4 zFE7F`e*!SkaxghUE!Xn-+LBwU5-x{LE>(gqxpFV>axw+;FTpY_Ng^`!vYRfGFg;Tv z4D&FDFF>w?9fV1rjuI(h4&wNdDeJN+A~QHl0v!)vr;o-Q#Nm8Hl4FJJJWNP6EB(bBrFp;C6hO`(>H$;^+?JC%!@evO-Hgb zr)UB>VIn*GvN_okJJS>XEN_G?Q9?JV(>l3wI;&GV_0uA_vpYBM1@2+ZKwu0wX_HX% zD8a<4&J#0TQ#qg0J*(3!Z8JLQaz2++IW^NTc5^?SviuzHLqRk|MRY_-v_wtxL>mwC zdis2fL zN_omkLFh4?kzC5uOpz2#)AZ)n)TLhZm}GQD$+Jcygf{8aPQ4UQ%~VhKROR{Q?D(HE-p$%l~SwJMo)EC zVJTHrb(?%M^&dvl~#e(jBNE*6V50DRZw$8Q#tBagSA=92MVuC1*-zQ&MnGv z?ASoiDyWrMnyB%8+O#WyZE}-2$i!ndVw)R%U2M$Hq_$+XiQ^ zRSs9C4F2hGV$;G~Hw#?v5;r%tK8I9DEmJSoQ%t{-LA#PpZ&PGRHfzbnWZ`vzFwutu z5)wgRA|q@CU3S&9Omg&*iDrnqripM6hgdApZRdh)D{;%}m1xbvXx9&8srFFmb1TPn zaN#pLqt-#0^God#U>P?*Z$fJ!cWbRH%7A5M`p0zy?HdkmUIWH~dNE*RCv)e=7LP}C zrEPO>QE3QGZ#9E&{|afZQ)z#cORF|a3pYn=mpWfFckME*?o&&F_i-b4cw@z6yQ~{| z@o!q}oF3K~P&bBZad};hbf0&5r1uMR2pw5hvGny-{T6Bg7jc{RLdn%|3-@<5)_nKU z{&tzRachEj;kQqW*BXncQ67mPT^1r8b|8^uib6)&eh7bQ=n?&Qjxtey3pgrLW6C6U zdm*oTr<7m87gKk4eAzch756@QcQY|Kaf8=!Z6ba}xJ%|Y!U8F1<>kRKKlpt| zc#3soSXD-7^2~>SxCJZLV!v&O!FSBcRVgxfcSrL$x6a$G0N zT!-U!6SZTRxGt%fgsd2fviJwLSX6>otY9~AHMU3cm^`tTkN0>d1XDs6`H>0!c9MPf zlGF8ed$*5A$X1(8kk6ul2l;X!m^cp^KkZYIL3TA8)RA2ok||V@SDBK}6_%OSVAofD zIoXd#nJ5dn9lw`2=-5w~RhFezK`yhE88nSinQ&9tP@9-`L0BhbxtZ;FmnX)Gd-yV{Y35@qSoQ=6lXPS%w)~7={ifcNk2l_&v8mbFgo`rf`QktlBtCUl7qBBZe=aH(n zdZ@h`0*%_5kou*=*(1&RtiPnI(;BGOdY{^QS>L*>Em^Mlgs$saxxgAhjWgK%`miMf zTBA%_sbX94#ai#BvBOpbg9sKY(rg18`mn`|FLqF4_5DDb&bT&S$%1nY31UOAY^zLK z$d(~9+cWO^rd(RDL%X(>%w$DbD@%68^=4lWy=d%It;XPsNPt)+`O8~#~wWS0L4xqB~QmHV$z z3{tvwifSlq<#ufOQMIqDa#<0}9?@kM@oedvfEA~0FPprDjJT&Rua8?~9~Yg|dA%08 zBSYf7X+^OYg}+am7BLqWtM_;(yN7kLY`Z&mRtDBe7Z-CI!KEU$$BMxz+QCDZOy4<- zfmEh#oWj!+YI8GU~+wJql(bz!>8mO=KFaq|C*H_y8z+ zPyWZvT!WV$%&B(W1D;0Oxt-e=>4m)Jy#%mt-imU*u^61fm)5;!Iw^$yqkmnBkDlev z9qY?|p`Ui;lNgbu-i?{se3{)gvA)8!o`k#pKk9Eo{)f|b~gdD=)*8Q}qU zeAFG@Ir`u$y~p1Z=_54n2j1X4e)F?5moY!<`<_a;{_lw{@V#y43E%L&yo?|DaAAMU zlNpT*AKp`5raLp?0e!Lp2r;6>i4-eZyohn&iz7W~)ER{; zq{xvZOPV~1GNnqC(^|TG2{We5nKWzKY#E?tfSo*h_Jqk3XHK6vg$A8=RA|hkJCPP8 z+SKUFs7`-I4GPt2)~!X2LaoYm=uxgv}a`u~KEGy^7nZ)c&=pRllC=JGk)S#ETn0jy!qOw5FRoe-1sm^y$=HKGuvq zyY}teyL$+`c_gzj^cYXZ3@vkpFm2v_ONML~m z4wzno3NFZCgANjQ9e5H>NMVH*UKp8po}I^Ghbld2*m?n~=3ZWCnfMiO@#R;Se*wnE z+kSM-M;wSY-iTw4I_}70kI_YlVUR)&No0|maWtNXN-imqkEiL>USrHT=@)=hUWsLv zT5ic@mn{KlWSC-(N#>X@_~Xw9QS{Rf2q9^451S;Qf<`<_u<0g~dXna)h%l1H*pyz5 zDBPfi9*St9iY^)x{+MMx3TdR09tnj%AdFIlJI0_<&zx|k!09)rWNOTwrlK;apXtHJ zC|+T;3Tv#g&PuCuj!ueeuDb4;5NGzBFiM>%XrXCHPmmxio$;h_>Yl0AdZU%lPD^dI z*0y@9Wlwx_kQ(uZzviE-UZ6eez4)y%=xIamOD2!r2c$%udW~#Y)oqv1uCj40O;!UmJ2{a4@mL7VIn|&=zrmAh6SI zp3HL9R%56Bgv)#^q#=1ae?1bOPtq%5T=Pl?J@s&bXAY^5t-3Cmc@a+b8L zr7dqcN{w)%2U57yyO#EZ6#S4*om%8QKvfSn32SzWqW5d}|mgOH0Xmb=P% zvwG;Gl5$+9>e>mLNvl%gq1+ji^%ACuBUo+=eL@3cmq$WBH zt3u=-K_LdA3vKB_8~V_gTJ4Yi=%yNYT0FLlNJfP*YFAyPpFkn;sbnpybsEA4edq&pQ*G-^e`nPt zfzWtcjmwHox>Ob2Wu#oyPmACKSmc;>uw)HcM^w=Rwf;aAH0Xg_A4^rZ{>IfqbB)rU zW`rW#bY)5dA4^cHT3f3R$3k|t zEop7Gx}VxGg}1_`Phe>@9Mmcop8leNYoF^{8bAbpnsNwrjUkbgWv*NGV3Xb!;xzry z){m0C?Nvj%7t0nmK6inQQrzPjzotk=ammVDV&f{hE_c723>j>1;0aIM;I$9|7L&$SIF$1;Y__+>=Tl@whwMcfiAKXG&GVRPJ zZapE-mWu}yVn=5qd#eafLvo+(=I7bPsgZ|naGa_uJvNPC&fkbMqnmuSCqp?UQr7Ba zzf9WSm?f};qK#eYTUrsrxi+hAJUagIBJmA>w zxFJp>fzT{D_wofg)VfZ>kuxaya~I$Gt9Lo_2^MO z*TudEqLVzXCs=q}mblyKQX8fKj-GqL$1K9dTyrnJdtv~Zz=f0Mj-u|ulvdbypbiS_K znM`*`ac0itj0UBRDJNwyfgkvo)2M!0P`wW@>HdE2ed-J=-PJC(v64bPMAU%D)GP1> z+<-ziJR>Z474uV^a?>#XX;p)!j_5!KSP}MUFWwy5!DfE0#GyKPwzr8YD6;Wq)xggLAm(JQaf5GFkTL zIQVyhJ6J<2=!0T%Z7IP+afO48qk}w%go%=ZKgfg`5rijkPs?zFeS$t!XoXj(TS=&e z`m%($Qe0w0 za9DzK2#C{Chj&Pb50Qs>SA>jngn`J2JTi!d2#KMyVS30CZ-_~8*oc{UD32J4omdcu z7<7raIE$!>rT93Wh>Ds4iVi1=h(n5|2#X04GTX2Xsc4IMIEj>K60MjvuNaHJC>^s{ zi?>LOhM0@GNJM-{LB0r#&Db2-LW|K@i_f)K#b}Lbm?X$piRe{FnCOh(Xd}=ljkOqH zo}gApAQ5CoVaG-g*Y#uI<#m?fj+k+IK6YVBc89BoZM=v!%m|MEco@Ps5asAv==cx- zqh#BaIShti@3@W=L4FLGV3*PUZcQ_h4B>zNw}KmC5B|^(BLI6Q7kQ1Oi~M*t{s@pM zDHsA-jseDI4-rlYcXfs)5ax#vL#B~8iI44QVVU7_5V?~y8Hq1|58W^x$)ao5hm6`r zR3nB`zwwk=mN?ypk}7GHHvu^<*^>HTYe-W$j+Q@Q2{pG9Y;d+{xJG$N=6diJHD}pp zchV;O#%J&La(0$*bSZ3<2T8_YX?PQ7IcIQYIeOj#msQ7>dx@7hd4Vs$4?Zv+j6`Qu zq>XbmRHp%2Q5jZIiB#P7hga#D)v-4Epp^u9kV~U-)ssD_8Gu^HXw2qya(8Gb=bG0; zKQ||AY8Q_K(QC6Qn|J;eZS1IPaJDo=hMTmh3ZznGcgCAR$%KsQm>=v3YMvb93+scI^0` zb!nFFR-ZKob}}cJe1>xck)N_TpAFWZifMsFX_OyPeI;>4ln8MucAcpP9G``B$VFUK z_8+T8S{K@x;3=Y}5t`&#o`yGPvSSRkV><^CatRuruz5K!dY?0ypDy|h1v;MqI-mvd zlLVoo|9PN6>WMF~1oz;PAjwGIq@vWxjT!o3pLSPH>0TvvYB2(89Qs!(a%C4cqF>rN z;%TB>*%0REa{j7$J$REn1Ce#n#%wJ2Ek9WW^|qsG2d6c9n|^7VZMt=K%9qn~oOC*M zZ`XG1cxevirv`eTZ)yyu7oR_Rz06VkdT~_5o%i7GkBQUSKM!0V$^B zNu~?|Kk`FA_5&{XGnR76c%FBk_`?kX^LU_FGmATn0HT_RoiBz7Mf+Z(V-$HU#!9$mKA2h<(;F7t~ODk zrh1Lm7^zS;socpL;!34ex~bs`Zn811oT^tKI%Vk!uz(SoPFHK~N{sKyVez`Jp{1c$ zW*5fA{vTWRsqD3>4x3+58n79wt_I7o5P`7frLarIV#hUKqXx01#%0{-+9bM(OS;#pj9rAfscV(scVp}R z#=3ThxP2SDfIBpTYr9(rIWsT{qc8)fu)BrWyRj>~I*WzTE4^1ZyaBs5G+?~Q3w6uO zyZ`XIzDv5mD>TAey+{}`G=RS8tG*Bc2R`7wKOh0z8!0*9z8wGz2muE=5Wfe311&HR zZE%q+2(^>RxZ78|k^?5Jn>Y-@K5P(fpaV<; z2RUGm9E8G7I=kJNv@Hyt%p=3>i^CR-1NAEq^y>pI;J!YPU>WQKKXAl3d>Q^iY>(|* zzxkU3Kky7dj05(#!>TaC*uk}KXu7-C#7_K~*`mJas|rzUYdAc?_bU()9LLc!#W>ss z{wv0s;RZP%$UPjt?d!iG+{Of91O8jW*)hi=SjQ1~$9Q~|dhDH3jBZi4rpxv&+vYCp zvTfV8ZQI&q+qTVJwryKqb@lm^zUXxN>Rg_Yv1Vp6Gv~!fRaD%(A>SN}jR*bk8n8U=+Q(rzgq?V&n1G|zDT3?g zuYzgZoCGld#lD;n!kt{d8{xB_T$3IU%K~ND9m~iXLa7+w7#kRlZiWIL9NQc{{~Yas z8-1o3>hT_Dy#$Tap3X>^=(y}}wjS%z9#7StS+5^QTpcGh*F2tTKjogd)CNpURlz)F zf_7(3lvcs0Yz}MT_PuCh)k^oH>kK03Al=cRwAgwwxd9TQm4sQHSYn*8SIdf#VCRr% zcY}6Hqv3RV1;p}A3bqlRg9&`RSpJ1J+rF_kNC72Xt=z5jV z1}|1c(#bkVnbi=VRUs+`mb_J{ReBhA=6f-}M4y#4&efb44Y8PVX23v0(;WrjyNRbx zjV|^&J@@+52AI_s-%Lc z7iLy*`5K+*N%RchBAp30p!@p%&DHCLZqcbVm`t-8h- zldF*8?R7O0uXIhAb&S|OtnJ`R%n<0w%{89lRGuAK_|>fH-Lm5qo%IIj>;3w)9mZI} zu(8lv%>zN+=4!(oAq1m3(K=bP!#LL2_CITE+lR8g3-Y#sfI8Cxtu<4sid+@nLmd1_ z)@po_Y)ZN7qYv=o0*;(Qj|$iXs}_r69Ool`m091_eY=_necMID!C)pDlSH8)2^B7ACcVZ;3Q1>8o3eq}q2k2Dy*i+2#{|7IOT#YP-LnL%k$mzFgN;4a7gD zh)i&KcYRnhnl`=eQ!P8Ar@FWnxVmP#LAa44J5mAw5}$bK$6MgWA{`UhJZ5-{@=tDh z0EpZCpufKY{jj~jHc$S(j)U9vpnWg!$hS*q>{4k9FHGLk=@Amogp0`DKMf%(*Ig!J zwSw$0fgwJWvp&F#Vkz&+%}XTW$8DG5-1B@N@gY9q8i0<2v_spJ`()n<@S5JNq*9_vnlO~TiK3V(|tB}eKx-_wqz)`_Di(=epax>vYLGH zxq0zJd<`IgS`}ws2HfdoK6>n&JLVbyee-k9Fd5greht4?OT9??zB*^VCiPyW$Z5qQ z^2hfwCC|8 z!f)LIH{1y4G4LjHplSM8w##93+tvD9ZS?MVU6Xtc*?oRYBg^Y6l?wV0QKD#oIpaUs zOX)VHTzy&rKL71~EcOaRJAV!5eo-|c|1^4G0&$muIR8k6i1tK}5Rn$Z5J=T$cLjo> z(dgmw82g06kx9^l*{kMOiK3rQkk;@YZK_Js~K8010NTDV>?AQ8JrcmgsuDMiELH*Sf*tWh@NzMAy^n75c z^20clnko6paGvC8(HV>dzjGbdtOYnVCz`{e+vxQLfFqJ?uihFAMZov6&mU@KE0mGS zm1wWsn@pPT7mszNH<Plo+Ga0!hMYSVF7)M~yK@8vP@lK2|h!%#k zlG`697(MkpkFy^_*)j?a4PaDD{ZztjElHC!@tf!I_~BlPaS)Zc93#~|4E*zP11`o> zypniuoFC_k4}{E!F$CsHyDb(3qQL_Q(0wic2vv^m3pB{>g_M+PNH+Lmp z!{T}3itp<{lo}FXe`&=%Exe&iuN8%@ra5*vUX^ZeBbEkqCX!Lz>g9e?!zh*YnAUMr z*-gjwh~{C6g`+cRfWLVkaz=1&7b&Icz1?lw_xlMhg+d(YYM@@ck(C8eVaZ%UMx$zR zWQDY4bzU5~!Db!jdyQvg z=;Yabon=Rk>W0gQP1}bj#`NbQ_~JEc)0n-1asg1k9qfzgzTChQo9P}5BsbB}89T*@E4q=Y+m*{P_;dCq3W&1V_GH(#UQ^%JH4+I=X_!|!B zMw{pFx0gq}N8t_yk|fV^P(-s)ZDCTmi?Wm`#0WOzQAaPrlO~+VGzsFYn})QUG}~K= z91zYYi?&>s*}I)u5G}5!a@V=TTU$>W5KJzQIemf0g+CgQ(Y@i1&<5aPhEE-Eze&g| zhS~w*HgYl0pir5AQ=~9ck&G_CN~(`2rixk=QWt@yJU>>duT|{RJEaW^bl6jMO~|gl zr_f#kH%cufk`iUN59mRdTRHE^&UXaRJA_oG?GP>hX>yaW4{fB2J_APWnj4odQOZvB z7(j0irv{LT853$2OKW1yXdEl$ejJtxSe}iP@*DE*pq~7N(v%M-Pv$->0ybWLlmD?v zO8&x~;GyzVh&E-3`G#8%KzqlJ^HnY)`GOI`!&XQxS!B^!ER&;MS4OG%Qv^Go5R0y{oppCsjEWTj}_it2P}s8(79%d}A)D^+C8+ z>Ni^%zWlclP!2sx~A|QyM`3f|@c_ZOr^>hvfOtm9=*U50>#ZTx3i^#OPr};r=wloPiu7l06Gw(KJLoQ6J?ss0h)j zN`@O%9}}XVinhR2!0|#GCsRn4g}ZRLxgUqE|At%b$t9x)KGTc|`|h#|RWP~uV6G|2aXmDE^mlm6yqdRvk{ z9c9|2{c(Rxsn?z!_>7SEaB0x{CgY(skDmi7bd2rxXIw|eu}~)aAmjHwUi`8c3hDGf zWkQtt{Ks-lO~`a`h?SiT(n@i&RV4}n1O6OR#)CC$GZKiE%{&VRpu=AjQ@+p{yFm2O z3(d#Unk&69S{lo`GV-d#bXB2>a5^Qed$`IlZZ`h zzw!nthS2H3xy$-^b&H;nBENUTyfYCsGM3I7AEc?)zBGWMRio=1mLdQVCx?0Ew5$pz zk&&v6Cg++wW+2h;fG#Y!)t)t*CHILVLq*8AGbP1Q4x@E8RM)>9+f6X$bU+SXbCriYm5vBNw-c4D#{U;BZq zICLzDd#$(1-CS1jsv^8aevNBCd`9OK%I2eh38M-<$@Xt30;Ym8#lnfWg zvze`rBy7op>KFH>P%r-@q`iodaNa4uD#x7GwQ#q9&&`#e-{*mEZ8Xl%rjIv+=P(90h&+DUP-~LM+lk zWZr^okIj_Hl;DMe-+Nh%(!J7meej2H<$=z`ei0*XQDbS*&jk@(>ya|eVJhwh z1)&%ZNi35tQR^vD8|@m5Q&GE5QF}Ns2LP^^BdwSdx0tiEn2WZUtF@S$x0rjhm`9eF zXVs|7<8WT!5K^Y7;)bZ-rQw|IE8ctqA%*e7IU zmw5D)cuew`pEwBVt9ZP0APJ_#k2_Nmw?wkEM2faVsX)btZIBHsd`+g23n~`ZmA||sb+1d7Hg?iYbpG`08I5@B_yWSgHhj4iSA9Q9$Fz_ zc_7(cP%KR80b1!nZs{Ru>0xbYz=*Z^`mR0k`a-wCs_#?7=7GvA67LwCtJkKfgX;-Zt6Gp#aWR+3QQ$n@`zWIJrAqxqDi< z2X47X=@}6u@HJFwpDwBFO^K~6x%Vo$?O#A(;y_R`~>@|c+5u-)=-)AI0J@(5S*h+pzZ@CwLybI7bAO71gas8Cr& z(d$!EAKnU>F$!4234Zc`5kL0;sWAmSp8&Kg1p=Kp^yX*CsZSY(?toc^hFxW950WZZLcwMTRfMn+y>eJf+`sO3Zj7v^=78I`j14N`HJ7 zvYe~VIh8o8mAF_3SXf6`O%&O$l=$F_2~%dc@RSAVls_kxv^N)UZ5H@!l*MdBlpOlb zek)5>D@*zC2zQH!9L- zGYe6*DVEWxR<#3ssajR5;BG0ZY^gedkJy5%xrksLYpy_cEUQl}J7uqkCo8#it1Vlo zdCTCrhmd&`tNEMIT5PG^C5r45iW(M0gc$LJ)8GY)Wc&IQ`@yS6^00V44TNOlVoRup zj;&_+4~LPZDDSTtD8siTD)U|P(_61Tz^)}mtg>dTMrLcIfbc{@alSFD$2g$=CD!0` z)=+8S%DvJ^+R_O7HJJZP*Z^$(FWL&-k#a`Nx_9yrbyjbY%4+`CYW}ol3G4dXhB`<= zFU{g=y-K$SCl8@@8=f;?YW7f#2wIv7NqUNA2e@)Ywov5}yqvN|^srE9vjDgDdMi99 zKPlccRyTl~C9i2(V}l^GI`R5`NjiWMLXlxASVVC4_$n zUT3v?eI7iosF{CZPh*EnyYfq``$(w$Lr7#ph)0-@u}fz`XB)q2{R}>(O{TD&O!w(4 zzVmCd;318+N@s0JARbQ-;ZviTPH){@2Rc|c3tVs8CPox_7b<#_-dGEcmgI{pq(!` z0MsSky(3tgj!^rK;E*9#ri>0#A}_vY&e+LH>_lR?(H-rB&E?FF+XEVkL7z0v|F zHzZ0hfGOC+Uf#s{r#lO-)8084Bcs2evOhJafyic*R-sJ|K&Htdr2S{uv9)j6#Z{wo zAS`f@s%XS@oWPcv_b2qAEX62p8k&3Ch=}SidfrF~B7rwHj}PK79Zx+c?LeeNRiwuF z*xVS((^$MjU1G#osK;17M`a3aTQ+o84*!T1-9&{ALB@Aw_h>;WcGua)M8(uZ3qMxP z6i+ti$V28x8^P2-H&#bCTld+-3H;bV*VGiSq?l@Ayu7bzYie0zx=(4k#Bpp62vs#{ zF|`AjX7ri*#vF-k9Zz4G+RK``&_g+dsyl{iI>jDX=$d)foS66=JI0!MgqA8^nfU=u zIC+*d7fpS7RGeGPf^CmodGP}2PgQtMgJVzibx)Hm%)-xkYM;VG2#Xw7 zr3?tmB2&$Le5?Zca|WLCqFBp79m_Ba%TjvP+*HeIdcBHJt?Zt2y?^J`_!s?G=SuaK zb$~e>fZiQhhXDD-_?v!fk7m`hUR$WTcj!sevFStSTC9zBsMJr)pa5;Nybr51mZ+b<4J#aiN6eGKhtGXE}piS7Ln_p;?)^fE$zC2g5 ziKJ=>lWfCzDV(aiMrdk4TV;EScDbd)H>G+lY;dXQaCsa$vxzTsD5FE7Yw!ksgQ|M9 z1Td5hzCIMyL5tPp!6m%2)!g;boaMcVkG012)mtvZ{J~zfq?(JJ;ev@?{fe-EE7k{G z->d^}rqJwz$Zxk|ukir(sdc;WHAa^7R|{KuE3CF108Qi;z-@)8ExeyOg5J#z!X~hw z;SFFT`1tCQ?%;C70VCB8gTM|m&LLXX?gP!S72$@6K$P6h@sZAvgutFuZG9qDoAOUA z&5WaN>OGa3Mg6q~*@+_sg_G|)q-5?t(qE(6MLzuk35Kacrh3|i0|t;Tj~9u zI43?nRo>MwKTKyq24^8YXJI*K5j|&7J7=*!&c12DJUdQ|wfB6z&c!&}5~Yvn2u{-9 zkGKoYKqrrqH%{_=PZ7VK;3!JX zM+P@1H6eS%7c;v)Cp$MczZW8DHy1laqcAtGUN`Re_XxSyP&ap5yqAa>_n6j~$X559pw}2gkA$1&*q7Jepl=Cs z9w~g!iGMtthhJ0TJkl|iegLQJs0-;c9@z|w8Le;kL2ucJp82)&IWHc8pzrx|p2cBv z1%EsPhTn?gJj-)uO58jHg5Jw#JgaM;r?;Fdcf_i8JnIR(tgGH@TUUc9yqfjAj95Mz zZ#as~yxMa=1f4%xG3x6|y}Eb2n43O2;}!r-Ctm#o-XxD7yQt#=V&yB{UaoN$+_*pJfJ;8L=_rUln)~xA zQ2LGt_?Yqg{!8Z1Pi9Zp9|(a+EL~<#G#Co4ryWUo7cv-$&R{rI=0GwUiw`dgOXWy9 zo=7fNAYK03*gu6{Zy=h=iF`VP4PduFRqjMFlf&x=0#EHsIaeSWM=TThK(bJROC%XB zK1a1wp;~L$T#;-xS*_a}2v6fmyVhVjQy^36T0LK7TP+yF`9!zX;d+K%0T2U%5_Pe!~I1&Qd&coa8lqj4(&_3<|&gPPgW_X`p z47a-4gAj9BU&l|Ui!sb3y2&4NPnrkSY(IV8PA)=fOK(2kSuTbSKrwd}_ScT^0w9UU zP(9|C%(fk;&oCA|UanB{0sa^nA_jigiO#tpc*mm#LGZ5NdtsObY5P*p9VUcP36pH+3NY>)F9(3o@}zKIpUn#uX zp^oAw9ldaCaMs=d)omqbo`;2j|1@ms=V2-=>NnOkN*cBlC9di#{-s`ab5=l7_MXD8 zQ}|5JYu#EM7^2b-z%r=POLe7EmUM1F&{&uMGn6tMhG4!p$q`R|XXq_bcl@Nh_OGg_UNjvN9DLuQ_MDg8Qx(ODVfWpVO?eWh2PqOFp%8SjSC8J9lFt+3q2x zpzQJ)?^V+kCzy3FOe^?hn)iyX?clcC>+T>aDdd$uR4d0rQ2V3xUMfow-_yHP{j2sC%?a)cc54JUH7;o-CYl? z#j>Aw3$45d4=YBwJXdpO8r)AETD9G;2T8STFOEKPKKDnBJ3SwiIXCL>qqW~XUoQuU zTA!N#a=pIZKpFi(oY!tUR`?FS?EGQ02|=eD_&V^Ayn_?)z-i3;VGS9Bur~=Ixla2L z0~v#fafzU%%m;oI{5U^p6Txbo4qyz_1tLD`fL(#4V8a zJRO_@P6(IOCjJ%UE<8k*5TTewjF9~*j1w9cskyn2Qtdw6A(9YfhZ)9C%?XS zOz$4e9n6n!Km6O<*}aT@drSZR9)5c(UOMjn{*HNn5B~TJnch8kc{%+4zW@HdetFs5 zI4fE{Zr?gjUp(sHy9%4yJ)1k2T|2G*{w{od9oIGDdVi1k{@wukpZK2&{P$G=Y8eO= z3YU@*7!(EtiO`=hKM*7k37XvA9>{+<3LQh(9n*m@6c$rR*IGZ{$R86;q(YmYqyRF7 zkvSEYT}X5)4W1pM%;CWlECA1QTl=;ycs3Iagr6PTNzflc+CUHr35`4uQ4kt4Jc5uv zJO>QMT7`-T2(AufsG;>4!$&b{qA zVsIyMYBOo>DDmHY;=jklg~yD|$A*W;#>dB&`-k3(o5{_Cxuvb?nT^Tm_5aGXk&&ss z-oEyhw(832f})JPyqNL=uYppFsXUAID!ao5$DKx(jVAYFMb|+kPfbPtPweuOApbuzV@w&YJAgEu|+GBP3gJEF6{8{4l1tP&fC|PS` zO#KmYghIZLB*NhYiCBs`+8&BUlYbeFCbA@c9m6nCS)OwzrAyV9rT8hNU3tQ-wO`OxYTV1j# z^}NA)M%Pf$q4M&8e!m6;15sU?4h14FuWa~XqNf-boK=fyA{3#i?*^b-%Yz1z^Qz}t zAVbv!5-7Fl?}gwjQ^xzUb)e~+7JupUhr6!s4ad9gCX6PC{pK%-(2|ZP4ld;p;D=^b z{A(2RgG3D{Y=j3Bw^0*qGO{iFlJ^HH;)#cZC9G$JOq8J42ufD2I3*0BkZIeE^5|$= z3xW})EDj_`pzecoRK_w5)gTv!aOB+019kFvZ9V13OZ6bnD0FcMgrPWe7=WSZiYQ9V zBx=ixa4WebOac6=(Kn0oexEZ8qUk;ts|sQZCrojs_N4NSArH=ihu1sA-jOAjQ! zYAVdO4-#k3$_s5NPgNhRq4)Hmu)jl@$K`<>B2sFsq)M_(g*6y zibS`BWjMSOge}O(fUKa+R|jqVU1n}ph3?cT`0v*%*1BqzF{lK zWPVPSAfQEs+5XAyz|cE;vt?MOO+eP@&nPrq7Lxq|I}2eh(AVn~PT)C=?bcoemh9|b z@a~c@{>B(vqy5!6;BztR_&Kbjly4i&<#a1uypvQ9UU}Fq3O8#6KFs`JWKp05lJm=Q zfiUdce*Dg>S-(&(lMYyCZ5X<`*+3Y5_qiElK};fHLf0%=x5rG5Z|?U?GwyEVCFW#E zjIU2c-qe%Uo3Qtb3%iexThP4GU69{jceQ?i!89QFU%i7wh@Oye!AB@%ec%Ws0l{8* zR|u=WWq2n@*#JO{BgndfQ2@tlPpz= z$pc5C5gZNR%hOU{??wr=2GjuSVyQrn!N3CYgP@;4BSeP*;qr&k`MO|2#L3n1CQ6w= z>LM*@q-8ph#!GpMNJ3Q_yM~JM2skq+d>GNCZuGMOu%1XkI75We>Q#wyAiMq`kB4HC ziYQ3<@j;9^htT-qnPgVz5N6+te)OS5YjFb5th7x55d5zQ$CZMEi>Yb*y2&B=r zA~u6u6-K~}G!8z20qz*0xj`gjz<6AMbEILJ0RV^4qTtd{zHtvIh zRVGyyWO{3VPS9fzh)# z1h}$5(nudDsPR@;p$T(?7(VO>CJ#kX>P;qC0O>Z**c= zL3LR-;}(ltL612~PkRpz9bQfU4yw{Sd97_}=gWPm>ii&tI|2|l!x%M^en<|z&~J7f z|DHwKyP0_lZoRPMK|5Byw&;6kd|qoFLH>zp1`;IHhg4h(wx`5nGX74=g&TBXpxnCe zVeaJWe2!w#mI?$KVt6MCUxGDm4f)`(doIRdV9(?CVtL*=nzhbtz;beY?auU?QRT5q zdla-IbXT#jLiYzgqL&YVX<7p%Kw^N};}UfF0?-&KNgaF zd3cW6FMzeBSzy{B{|+8Kj1!c7PCnq-7f=Hk8pQK+L)n4!Eg8(Lwz1Vvb6V{W%4H$`du9054Q_s=qid(COtM{JqaN)uNp8M zW`jxTS1918N8uG{6iCUA4P+u}{$o(TV*B8#=4fJf$|i)Nj?Lbt2)c>`;~q#gW`IEH zfRh%ax*`wF9-`bPOzajSTNZ@r271RUr`7HZq3Ap`Z( zhR-6W9v0{n_M^$77y0=qukL$_#8w&x2yD~v=u1nW@=w{8k+F>)uK2a1CVgPQ|& z#0=Lc(@AWkwf}AFsfG<%5}ZHhLL47i(H2>?8d>uiS%(?bz#i2E6%`?_aSco%kq9bO zV5vKX1C%1C$l_6^9yQ_~J(dX932rMt|@AeNOLYXuo;~+X8GiLdi z)lS756Ul^v$t2y)c>Gva*c9Bu1b8)EXq}RM)17+TTydFA+1}J-B9wB_nQ>0pOyDV& z4K)rk36#ShVn#h~a)=F2#R?q|D}Q&%bHBUWX>WLV?m2Lm8}{dnyZ zP~Lb*UVDW#vQ!Y^)JrBX=W!K8Brs?ww_fnSK%{?H6Ced|f#7d}T;rX*-*|mF!Wl=L ze8MEB%F-TE5))q2;v;y&ICvs7(z_he+mh1r@?~M5gxT}bv&K2(pj?Uq{=y+ex+|v_ zpYbQ3VUe3+yF;tyL#YC_y40o%)W2~ya$vLji!uC)^Z){bW6TIU$KH ziqj{uj)r+hmxo^7nHaEPTlN8Q#FGwL~#+j9#51$S8OJ- zyrVau<%j@yOE5%vB2lCgqYMgD&U`F#CdSo3M)qRtv{2rai0(U^4rC51j)K8-NO=D& z>|%WjNP7PYeLx_mA`C>ZZ3vA3RBDexakzMC7jRL5LZ&BnPIY-&>_o(tn1H}65W+5K z-g+uLVY%qvawn+rQ_u`(b}-L~axTjRHBUUt+0Yv5QuVg-3=Ykb42}AX%7^+&#O2DK zNW8vvy8+Is9~zGcR%Mw5wniS<}_)r<(l)XKFo6_SHJpEp}Z_ejbcw>@Rtm zDbYk#^Gbv8ijDwsE>mn^*xKy=f|O?kmW&iwt?Jfwn*vu9ebqQ1uKGJ_aY>lMT}2BB znqv4wKrIfJ%R7gmue>>mRKuL7qA?6D(NjX4un+^6V+^$Hmt-TWRpXANex;!a)JMtj z1n=p(>(_aHsX^1iJ4Jd@Qk9^$j8*yv_TPHT(hh-Uu}KtUdnU>!MoptQ!pA0GjLISy zY(uGPMyqQ4s4CahW*?6#*Qk6rSj+Q{*7x<+?&CUtuNwELG*7Lz&iu zA5j(>X&d!;)#6MQr+ktW_L?U4#(K5UB-WlJHeZ=LUTR^%Ts!?sYcG1owPf?X zWG!BK-A-C3W=pfOXIt7@EwWY<8&@5bd|hj0eMe`9eMei*M*7!z_IC%CLzDs|wUs5{ z2*d+iD5JDQEGT$r(RAY?B??UWu06QVq&?}ay|6!*coJ)&Qh_2fB{@v_6Vr@T$ZSwd z&eAmrV?vr`%w^gtV@9f}=&pw>y^;6K7sJx#Z)geyaB*UZTTK+-ISn=+XLD0j(=lWs zbXCWVnN`gXU#LCnbR!E57h5B;U$jz5&8vstTI-V{ZJFZR|IKe6!C$g%13hDNFaT2Ym zLY>QDOV|;G%T^bu5m}tRI*t*`O9KPAO54v7Z?BOcu3=|fL5Hp?r>xP;@ex4R+Gr+n zcR_wT>SVirS9ahON&^>mVP#aYSI!Fu7j_Glbn&RGcYD-jVGMVJ8m;)ldJ`C=P)lV> zm)5A$M!kp`9sp*DRH|zPHl@|81kov_bh9kNx;Qhsc$TKCR=S(%U2Y{)?J>fG-X9pi z4m`R^NQV-;SJ{1vDRFqw$TdYda{)=Dg$;2je7DgrJ}ku*k<(@jj_++_rJDainFuU8Mc9?A98aDr+`VE03-Vguy$%XS7MH5FpI<=EdMnOh=at z);*VzF|v3!Na!U>ys>1fL*OL8 z;_9>Fp1tDPz2d#K;`_DYkGC3Vv*Li%l(VtyG>xNQw;H{*8vC^xkGGb{vzDy0mg=*X zHoa=Bzglax)FUvKZ!mUKk>)SIUgEP}mc3rlyFfMETcxAX;RKi>NZhMDR$=Ca5glz4t<4wL)9!jQFQN zLU$7UrYc)m;abez=9PPubRRhGHqFJJ9L(&{RS_^xFUcmwH+&ye&sN3e78rdqu5N?h zKBJiPJUqSP<8cYR?w}s-`vZZEC4t&3{Jd6Ira84OCIIQ#4uch4Wn zqjQ^SX`Y!J?_HNMCy<_ftF%?il>-ag*$Al<` zX=Kl7^!8~i;4~ipEKwFBiswih{xHZFFTMLLYx^t*aF$|o<~FsRevMP-a$c5mUeR-2 zwS8U#IIqLMXyCml_dWUEOZU*8ZH;a3C0Z8-9Ggy8N^foE_HT&qZq3eg-s*36EGUa@UoE%z*I zcWqKm-NF;h&x_w80EU0{E*0t?^*9`1#Q_#@Zu%TWa^<2!Q5ii1AvG~3o$+#NwMR~GL zI%R(8f!Zak9T)x1I^@L$iL<$Ams6gf@^mql#I>9E-Z{(~%3nD=S!K1H@hR%T0oT39 zqZj3QAclwpGl(2qVKXa@WBi)@XL>So@o9Z>DV0tT2pWBtf48X1A^-cmz~mp{GR{;g zdVgD`#XxVLJm<&t(|BIY4p34h#3p_=eyPW^oaEqftR$*eJI1#vxijBI-#OOtv|>cP=K(%KPsm2 ztB0VzegqZ77Yq04N&a9kED@VGqkYJbFCLFC7?$Fpc;e4Py>PnXkr)t-PERnF6Dbg$ znf3M}k-~{=4v&u{+`UqnESX3QJ}am4*(?RN<)!tz^O=%g`Mt<#&6q3OD_&}j3bWz)!Pz1^*| z0|97uwO?!p{SeLBWOg{t$ed*B(Q2RJ7Q$xi%gGi1C0y|0gRFIQcb}N+hQ%w;`Feh+ z8}Ge=A!vMi=Bf1>PvYx+ewX_#oNNUH3qd@F_=fOk&JFfe0nK=J{s7AL^=L#0$ zO+5~?FdK-1&Mhy1)Lwunm`$3+hzP+bEGra7SXfz(y!Xptq)L*7Nf1I&IYA_sSlzsU z2vt%*ocPOJ+CPSRy)P0NoN`Yh6wWd{JRnjyTs$aov#bIGxiO&&doUVW?3Y58y+|>A zLmu6?G1BbxcRVG4=yzDWc>i$FYSpiZVX)0HC}88fMv9I;(ua1YUoPX)P)=jOF{n$Q z5_ti;-b{gLr}HdCv@{K4L_AO41E8&h_sOL~6#7l=B3d%za}Qnigg_91X^Ubx1%hx3 zK}Z{mMEYbX&LL%&n@Y;mDJl7jN_w>D8WG09tZizQtP-j>xRm@*koZV~h%hc&(9j%v zO?hKwV9G00+0kRnIu>Fk=<a1U0}KIW?@QW z?gD_h5U$T_wBopij~uycdqMy>?T^coH35@L6S%e0de@t+ALP?Dz28t?jWzREoY_Z< zUP4KNu;VT=Gb^U0c&}iHahtoFF9%<&JAS`(+m0Pb0R8W=Hwu)5`78~6p`o<#ld+k} ziW5H7v~@;F-EkfDU^x_bZyO$kIg0tK+<#;_wrN=``EDPxXTH8KSGplmdb9aS{Vq2o zuK-}rysP|@iWZVN!nCZEvfwnt*~ERNs3;W)DKW|=)LIoV=JCoz@-#4?7@%50G+KKw zfqZ*QVBR4`(CYD_I@IX16D>jsAxOc_5vhRdX5L?h;32Du`Q~j$boLRj9w`;MUCU%5 zZpbvc>iY)W=V<)i-86EO6KcpYr#+`wa0W0&X@k$8Ou6FGhM03uBl~UjrT#F+tFTy@ zZtA~-W)+Naeib@p{2iK|sxpOd)A;8qnv#=nWv0S{3W0Bw$3JiwzC=uFo>;%>R_1b@1f8g$ zyj(LtQWdX4JaVF}(3iaYW9?K$LVZ~F3(1mM1WL;WiuzJyS|dYH1#M6gpzKOaZ;z;4 zQ4y>%*d+(pGyah zh^Y=k@P)LtOhbfF#F1K%dNOgcWu6P}b`a@)PzHj%zVShM4M6}6nfG6v5y;qyy_@?c z)ie^5oWmJ}nbn%V>4Wsv9wL(c2IoxQ64%0#lub<7*0Mz_Yf%-Vy90^t!P_42st12C zztJRaxm#5PH4Wzi?Dj_@Rqs1boX;ApzB5c)#}(-<3%vE5p`{Yfz4WchE0?~TEX)9M z$))uNPRTd6Xz^;hy~?S@LhLp((-_au4Y{{|uVHc?k*ziS=valS${2E>3D6a#xwiLP$Dc>PY3fnqMBA+VLz_ zI*s%Iy$!^i+8h}~g&qOsuX4<((j52(mjxQAZi++Z;qChO65&)j&V&BMrG_5xRo!IF z1sy!k3jDH4;FGcH8sM^xA0xC;a+#ox{31+9O0<5#kX8h@@>f87TM$w@%K>#Z`t*B1 zqbcAn!zV>^uEis?I0xObnp)F$4NJ-WI#)nZr%fdjytSiRHrN~XA{^pR$6rqtfk*ev zL)*HbsjV}xpD)pf?oW#Yx=cafo;r92qlm{x^u}FMhxUMrw*JF^^o@K$+s|-b_QNGG zwmXyluM?e&kE{vZFQImD3^iM#+YbE!RJR?-+Iyav*P%9tw_!M;drpO~%KQ|;kxIY! zQQ7b>1haOdYUvK7-WbEZP&)I$IF>CO+WA=F?s1DZH!UODkz9CtQ9gio_Be_ zl27;(QjPV7oP;+To)M96(^dU=;94Avoa~wYeo4RG z(P_rezanv>uRP2f?K|b{buVz+CWLt&FGVv{c>~ z1Ss0wtk8sUnH(jJbVp?fa9AMR?j13buq5GCFj-N*tlKf>_#O87SHuzFB1*@Sy8dQz zE>u7z3528kFS712xY4-%8-CrU+Is7zwr$(CZ5vy=-P*Qo+qP|c+ud#U?sfg2nH$e{ zjyWeelNWiFNsjq_j>9R9Cb8?@ISI%ei>`}C=?W4FMoFN}3?^i&BC?D76PW;`1WAZG z$d%l>m=t7SEzJ% z#*9NIit87tZ^{dvL_N7hVn~a}h0(ZBBnqq+RVCw4ldHt!=B+5EbZ>04QXR4`97S#- zRR~E!jv_s^8Hw-``v)OWQiZbcSTdy5?(;nA+bz+Yl)q5W9{6W02tjh*2@F;#`#Qegi!G*Y`FXcL+ux5Kg)U zdlCvIm>3QsX+=6Uw#D>H3gtseFhM%D1RhEWOrLu)Wv9ZwvI*C#vXV73yDI3qGWk{+ zj?s6BdIjzUH9B7}p*ZKf4M>pwv!oBDxt}iCKUX?F} zj-$5&5Gj%Cwd3mxjfI$)8C(b{wJM2JVi+&ssdge=IT>ADg5y!?3f-B03W+_D%W)7x zUPnX?VJmYn<2>3CI1UvI+-7{q5qwRVcw3n}I+=SWMaKKSGXI=2|57vm z4@&9p&N$XHViDQG;qm;@^Za0jG=du7#+Rt3zslJ5#Uo7YolxC$BI&M;vMR&VMlSQJDJm@w zvNK``MEtVDCCqri3hj`p@m&QB%CnTZOU)>XAMa8e{4uk3i}QR4q*5cxp)-UkbRF;{ zX2B|dWtW@5r0;X0H&>*I8)oyZf(;ir_ImQ?uL_J&BRkaS4_=BW`Iil2)tZGACbSeV zQigtJDkuyR%2EfJPhu1LBw-HBwOpv;GE2$uQ=pN@8v1|hm&G^9olt`wSHG1sXI}>M zp9j}pc<@sLcU!X|n6T9!uv^s#Wm5_}8F&0dcGwkiBwrt5(qL8=M7mXO3DuQ?d2A5T8ZfB7e=6r{1De%|kt- zS~yC(FUF6FxPGfQk%s~%l&fe~`4ro^s4=5pe& zm)%2WJiH>ky-2&h3cJa#o15#XyKlW?BE9q?ndvM2wa0mF-OoGN-&`<+Kr*_p(rm>x zd?Gjcbt{6=yIwkB5H`CNkgME`t(8MN=1qIBf~_C7yRi?wr=?oklCiOzM7}5#jKmP1 zYQMSkx>1d^S(?Lvz@Ux1DBL_D1k)#qVZI4VF`aH6I995?x=WOEtD8~8Qy2zcWIvUY z1j1spmZ_Q{tf9-#*@D32Kx(gD>d4(@k3M9TWp!iL?ReSpX4z&OO}1E$T(YfgUTxy= z>%K&y#fO$@SJ#6p)A5>$M@hqKwZU4d(VI~h6T&x;Oh)X=0A7k?ilrPE79H2?ZSszp zj-_g2hwA}Sb_C1xMw;|c$jwIGMzOC`N3yBuDB>1-_lP+3VT5)uh)o33^mSe7$yV5R zZ`jSaPk1k9=gsNoiuWMxyYen}n)j&qKpNJ1~_^KA!5Ap|I^!tJQf&}4W@3W|H{D$sr5*{E!fiTO!lyh&;8-<1V zxbK)H%<8%K$$0?b+=uE=+I^bz&CE8It)LuS`U`|px67&r(KJs zbhd6W)>Q%G=()*E&Hw6Do3OIAHOJS{HntMArnN#sT=JY9wx6Cg-W?J5ZBNeb2%VS- z!{|xys_<@(niBWG4~-ypSwv5rJ)Rg#j~Oi6>&ebtT2s&sp0N!{w1DPLxBJy^QtiGg zov4{6(wb;*rDH8*2xu+kZmBz%`y<&gE41u}?&>A)>N?O%b(Wt&^sbVU6-&$w6-QTs z0L^VV>O`d9PR2tohvG=i;$^6hSds7sJElaMMU4QW2m?4GA9M2~%T7>VTe076OJR3A z-n=8{bmOb}bXI}8p@!R4L>U0lAU(r2!ebczaD^Fd%&?mj{(KH{_*&_W2s^pVy&M|CdNK?YrQb zvOP|&tB9ve)E)PVf_v02cfJ*fNjZB=9tVp&T91(Dk=FIng>^|V^aS={ z&Qh3IpIzco#3qoamY|cXA@~^WUIWKXsq?iP{ z5lu|6oL=nS!?cU2S&)cH5JE+69$6+Hby< z`O`3_y-jI>w)r%Z^5{i{M?yaI~in{9WnVWnO~h3 z1~)PFGVxE$%=rVV%iUdY`md3IM%l-Be(QGX>8?QSo&mjKwt2&~ySCZ!@UOo_oL1KP z_BNWPwm;^~!_O@09Bjuq_=fI&*`0p%s7Z1cEk!X}EH5m;=W3jlL zE;kpCq!S4wl1X%xsDYCyG@4B>a6-VrAQ<|k8tZ2Yg&ca%r<==X(y4rrh%7%GRg1Y2 znRJ#?sTb;%3hWS>TA7uL#Z2TMD`KF7S6ZzG`SB!st5>?MBJ1_G5nNSUQAj;{k_ppa z3m1I&;>Z6P;%f;sn6kS zz&lD(Sx!DI0n4+U=Y>$fDB|?Eu9FKL10M>COmq0b0UvIzbrWklEREf4(4+Rb$)ZjIHIsg0B>=*r`! zC+H3%#90n4Ekh}eD1v5j!VCJGHIf&a;vSx^($3uvnmkcxHJwD~;@vR2B&Itr%0NDn z$Mt|kg^Uf8kG)PHC@hR+Iv-UTi*Ez+9rbT|3o}Q?T_=Vl`K9Rn5G|v@%MpgH_BZqM zlu_*>-6sX?pO{$FhRm2j!Nj6$PhwQ2-c7T#m2|EXSTZxuGk?`nn!~x!^;f!xAbQ!B ziHSaQ7ZrcDxGt;f>L;&ki|4XSsTqE}a$j?d?br zmA;6c4{ozeI}ht~n(IOaXfGMki0zEw3;rrH4O-+&oM&Edxu3__qs5Lf^-6!R@o}9WX9Jkvq@0Tr>c6fQAFkMiNN}P!q=5Nh_~!$Z-qkXGJhR3v z?pg1T;UV~yh8e-`B&@sSJ|J0@>>_bm6(l?19arNVHFF|(a2dsVVvKf;<6@=JC?miF zQ01A(yu{E@d12zvk%67W|8e#8q? zTmeMx{muEi{LyIRvsz92_rrp#N>xaqIISw-rAb{ zv4sk*pSw_I0WngvKSah_SLZ4GuD4Z;(gt)z$kGKi%{P6d<-*?O{H8}rnZ1K&8mXT% z*IK06NE|`trZlSh#52+O# zIH24(v=so?-in#0%l3~qGol%ss6NQT-@whm3~$JV3AM>whD)TN@Q3S5%oe{v%TKa( zT1fm5DG|4-Di@W-Cc+kAAgK$IzqVOYS$ETby>I|js~ zsy8L4dy2y7gHcWfuwE1D;7j5t5f3n`5DnX^qS2l={*9VNPlN>w52|;Wq%lO=fh|Vs z_(mKtn5LTVvtY=55*`G13}75bAPlv?G2)ST7%$*w~Q^MI7=w~Wy9R=$l($I#QD;hh5h9k7bav$is`9FUdEgh z)p#8qJwE#|hj!6MDx#&6?< zWS(;Y;pXyNo%2q|&FGyyvp>%a@2gef?BE%^QhGe!yBeNB+&&*2-J}->RvXxGo zTpk(oERV#n+ppvp&SZ*2rytW6HR-{=>p!S?06LNHp7Q4$BhaE-la|gdTkFtu6M)!~_&w z_O{svM~6I}gLsl}`B@w8*Xc|nZ^*`7v;fcLBl-J{yX=s+H>SRzvU|7w_Wj2{p2?7e zERL}MgD7Fapup(Gr*i{3$OR7go?6+hI~LHmahSfv_`zViu{7&0s_JUJiKglEOZo9G^CW&M5I&%L^K41KmtM{ z0ulmzYCJq30s_K+J}np+Bp4XP*A*NZ44M!e$pZ|r5e#|`3}P1?{2mJY0~zw2`rB`A z{6F$yZ^AZr;$bJ^$$MgnTVnAmq7h?~KK(Qft@H+k+$u?8Dp3l$KQv5TZEPHztsVa- z4h{}ZUQTX-&c5MpQHeoWc_BSzK1)UJ+vPUfP2SthUi&Q`*Bu@=<6(D;36IN3&+DlV z7ZtBB&F8PpA0MsnuY+$d^LMwWH#gT`xw^W#yu7@)xHvyQKRY`+Jv}`+IXON)J~}!& z_{#qN-rnBs?(WXs&i2ms*7nxs=H|x6#@gE2>gwv!($eDM;@te|%-q(@?CQ+S?DX{X z#Kgqp$jI=}&_Hj0Z)0z5Rex6XOkneoQ`@Ug|4YKsOXBi<((13Y?XR}>Tf^;3@8j$I z=^`l{CeLf==u|M@fURR2Xy!WI(P!@Uw$4Of%euv zFJ?g3!=T3z(DNwhWeoId67(?-`n>}Bl2w2&MA;A*MtKWIqes;s7vTdx?Uq^2Bp()& zgwa-rA`RpMe5W-ddw3*?@P+6X?%+y16k_70>CBOCE}PBfa=qG_Y%ZVA|BtMaX{q>< zRmn8^Q!SOtJTSQU$RP_HeRfBC|bUxx<nDvz&322AXmcFx zm#kW@kQaq{R9ge;Si7s6h*u8(3U;m+ASTNKhI3{!zC&48yjlI1I;!ms}0b`V^UCosZ2>=jcrk zjnNo*5DDa2pb|q+1vGZ zDaRJbj79!aCPb}U$3gQ$4C%r&=*FxZ+y9g zY3WqOU)U7d|G)OU4sr}cK_2#Zk88~ZuBaf>HG zwXod2I1a#;*E~(pmEX{da#;~KV;zo7G3g)_RwImb?TyxHV^xPW;-RZ0IU}-UEJQWx z1LbcPr5TYRz7MCl!z{_+BeX7!sn8EEiy`Pn^=e8Iv>{6DUrV4Xa4}bWJ_!A8(OeaV(e4PC1?NORxU8lROL1v*8 z)z)hflC;4RkdoxBT;FFk2W{iHSGd(ucDjl$&A#0(^h#EDCi=mLbs zG1U~)SxQgi?l}W}a8ZIAh9&U{%wd8s%!px+>N3G(wR-U2z;Q0X8UbdRsV`(Wp{eY{ z!pq62h*(=_oio-Fx6E^@6EyZFoIR^%jxn-@wBIP92K?upX#8>r1_L3K$zUMFgwp`wKufxjQU>!&Civy)mmM*IpVC&+mP6r)8?NO-NL5PDt}6W0 zBQEMbXcSb;Q8eBpl?j32q*k~K0(&dkklNqoJWQx_F5D`hE+n9?0BcQIuQff?Rf-iW zYGoX)GIH`GgiXxqLo04{nz^!bdqc@Og|GF2NHsU~#c)gf^; zW|Xp>YS5o4Fi8XL{&tu>oB&Jkh|ou&Pib}tQC zOWV?-2C**f%9ROs9a5cB1g}~vvSeG-t(`o!u1@b&w2*x3w_*h6iW&@qE(;GKSd>vwE}h~{gb z)#N|m#4Re5D6o=V_87?J3QRSJ&+b}9w1iSo%7_^3Xl9NZq|PAJiJT**_6^G8kO+AS z8mKORML5ZXXK`+t1hhX$PK@!7v5s<9BKz$T>?YXW{&riRuOs@@Oi?JcPjE+tP=vW#foT&ld;bs9ToFjvxA8|0P~K{d`p#+dh;j^2IE`({Z$Wp*-WeYbyo zyzSaB*JlDD6j^g8`JC0eGvPoQ&HE5*5`4p?M50c`C?GBaD9(E9*%gpqQ6Xq{$? zLN1AkdTG~23-fV7EY_KEJHE1^gpcPzgyZ_ZjM>H7q9 zl2cfLHZkM<^RRY}?U23KJ>-YvB%&ZncZlDenA3T*I+Z1Bwa&UFgZFU+5Phm0`{ee9 z_ZaX+CA8VjD#q_-Y{gL8;I9<(u~T%xOW`EUtd&i1yS_nRjpqoh^~e}@DVzvFS5yO` zYgHzg`zL4P08l{yaUeAP=Onm;QxL&T{3a<#SVZ~9?_om^?qS&ZqvUZHiXctOYS{cI z?e=`)AB;bahx;wMp83;KVEN9hkIpe&HwgWf0U^Km|G@gRr1`)}=~buW?6+bn^6g~Pfyr3czn=**6xbcIsR9{@O<5e5o?^JAuB z%5d}v4nr<(9KwFRBGC0B=!U8CEX2~FYz%2UQJEFXuQ_FCKfMUDH6-{aJbqbV&{Kp; zN(CTz{;;M{?w|-mXbin+w|HFl^7V|4m;8}+5UMa?A}ZvpJAraV>Xo_>0DN<~3W-T< z5AU1MvCkkNw8F?&Mh~2z4faA0gEKczmK$4=vr=`qf-y&J5W3b7+ACq(Ui6n=P)dFG zXM6PEON8(ulqg^7*pu#(-*|Fz6>U!d5 zkg8YX1Q&*KOsu6(S-A_L1em=OI6qiIKUX3zW-OSv+i&RLQ7&}y3W&)Jj7$kKD_CQQ zLnSm02?zA}-yHEZ7yNO>mIUP>PsU6yh>!U5=CFcuPBRK8DpDsZtYoIpFh7ZSs_?L` zHD~uS8$8b+#uO=b9+t)wPBGtI9L3NNP{8?&LNPj1f14$)GslV#8X}@bhD2fzYioE& zqFZy@u0z0}PNq6>s~AM-b(d@5UTPsK`vqT^i8!aR3hVc`>j_HW{S(8;I7LeVx#BD$LZt7s05kQN=3M>rW);B>R!C&cC%-klIKB};UA{vWGx2LoaWq3=G1)8 zebLVEY7A@?M_I?g*`&r;O2fKA%^B&Wfa1v;&CEMD$?Humm|ayL7|l(1%tKfT^ccxQ z+ahYT&d2R4+~Cdyil9WSW_!K|ZFMG=Qx}wVl72DpYiM^W6u{L-!8enfc8EMY>!LW~ zLJXaZjMCyqY1h@sLJ^*ln8!>m3%pMpj3wdX{&h1;X6vzWTB--r)2M>kQ-dn$(lYa6 zovR4Vt~_L^!dYn?ew)G;Z=kSDiA`6ThH(j0Bb+-Ip0rNUm2~l4SYB6yfrk^k-&DD9 zvO1u(KvO3VWF5o|nHXn~lBYXrbQXplyA@=O3tTvY$_D1IUc#-27LsbyTho*sx$!TO zeB*mWXtt5k{%GgGtF|&|# z1yE>H$8ea26jgPnlV9ai{lruMqEr8tRXyabBLZGC=mSrql(ywz4c8hBB?MD%Dz{D1 z5F^Zas8hK8yTN*^;ZeHoK|1?TrqPoO8P%xjeydUBs;rZ_Tt>N8c(8u(cYWlE^lFC? z`vl0|U|8C+nCBSABdS8~tPN(14SGvWSf7<{NlTuYRwfgr<={=4@ft0YMkM(PYNrG6 zZ7fbM+XCSf3K&{RdMSg<-s;%glF~(a@_>3KhK@VkNT}QPP?a4CLlT`;J6MF6%0tDds_w0f?-YO2^<0>260@j6=iX zk7vSGJwrxt2YihUcWCfffZ)QE0CQ2L-{es!v=u?S4%Y#1yOjYmwQXy_%LT^Zk;vi& zgTd7W!c!u&(`hwKtnh}r@&T&FoWJ~1ve3GwFg-%g>MtRe3n6BdsD)|ikw3vzAoLz6 zUX)}YdL=E&VYE4Urc5qvA`}piDuj&G-3iI85YH4Ca2(v{>FK%>W$Hl{Y^&NKh?w8^z>SBgwSb$ay zgw_W`aLjIs{=?Il%mY2mo959z?F$nw$`^~>0ZZ2ro-N0QjA_tV8!;^q)ttnHj znOD1JHCn&`E)@ArAzoP7R304K8prFLv`N z_Ey|w^QKqCv5EZ!!m&Y<>F|m0NrBMR3D8ahZXmi0@;D63Vo)4{GrJZa#uX2d(F0Tw z?jjq#tJSq#VN}GYUAgya^)7dg%+xae(~?1TPKzA;Z^?XRf%4-u5E3Ft$YEJOx};))n;!!znfxT{>_EWb?>DOZuufa z<5B_U)$&qUJ*QyR0cank^6sh{$4>*UDI#H?!Zi2^Z~4up+nBUZ`V9Ux@%CkrT9ltg zYk9qW4%4(uHd*VXHPN{>>RTn<{yDXu4O>%z%>=vLAitS_TBg4}o73_rsH#TbQ-d@E za5PR$2fL^tR|RAGI}x>8*8apl{ngTNw>6cGUC^hwP{H*JV9|hpCpQc`C4y+<{rB4a zCH?~f9h~-DtM}jOl)WgIMYICFC_W4QAfKjk6abCVmL0)5G_IljAv5w69`O#x-WJh~ zTxB(4mps!Ls)ad~-&}6Ooc(a+2~#V}<5Uq(p9?ECvIIYUo`pm~| z!N)AJ6$%h;3@2N2~(0S&l#0ttS) zri_L;0FDs^qt66`J&0_#0B#6GLle3rCI+Y}z$AgeTz$zXhs%7>Lv+ymhxV1e1IC&J zSfMB^r!xXg18jiIVSrDmnIsJL0Z6Kh?TP%S^d!0pnd6h;ct=Eqd)&7BaUQ|Q9om=x zAOi@9+lwnih>rnTW5T@1F~RL}0ft@q6O{mbf`AYw{%wPo6r&5)-irf}rx)>;j8q42{NH2+P;U$_%?4hXJl^gFe*Kn*c?bEye0vP| zu}H|1kMVOGM;c>|LX2zhF-Zv)eXhI~`5OMP2W0_TSqTn;>?6hT0}@I&+3*8m#czYu zAIEQUAN6QIZ>;R!(c4R||Tp7RUh41}-zWp!+ zg**345D=CTVhE22@+hBeV2z;%0#Xg3=VaMl4B_6s3BMcun?v{wCLAafDq|_-h9;$i z6e$NmAP|bJd?Xf)NpIk`VYV#JiAxlm?FKjj{*2FXi%uEI6-|Z%1Y&SkE=?!Ur5`L_ zgfA5&C(*d?oSc;ulRpu{-iFUB-2*Jl}zb$GZz3kd2{W z8MH$YutWxWK&QizFh;wIvmv>V+!9qmIQ|!lpIAWwH8@d84PD$GJxN$?!WVaM@hospUdiI>Q= zjLD;+CU)Iy$-)e6?OOqqdG02pQ9QvMTdzAYSOXMlOISLfxnx&T?)=>g-UJ1npMigK z{M)EXR_q~^IH1W}n3~#xTdJC#2qGcd4U&v#2j7-tYU^i2uJ_ZiO?>j;jmO6a@Ztg;wKCo#YQ=O?BNQb;4C` z`epc>wKv_X9#S_WOp4jIbJj0^?`j3pD_rJIf)`)v}5%sT|{f^(nXN z|7)vo8vdFq{xF1N8SAwvKArR0M!U}E9ht?6=rdPni0FDHSh(BI z+3)wf{dQxqBYT~_ULFgJ@3l{as}XPj=pg#>=X8A^)Y-gl@RAY1J8d2BlW%JP0b0}; zSfOvQ+d|LYhO^>6XKo0xNCsZcwF@JAEQGi~7KmA44$XNpy3*<#{DsKp4M zfisB|q7h80*LY09tOR)|@H=LwlmrKhI9ccf-1@l~R$QZhk1pw7;8SGTpc2UtL@2fx zw~X@d_;9NmLz?IHNo*UWq{vFsEjVpqA{8e)zn0Q%ht2_N8s=a%#NBVhAWLz5o~4X& zF$)&X^UVmTla9g$l7rCFL}8e7z2IdAr#ZUY zgn(K^T!Lh(Y5l#XpR+s1r;%R5)W}JBN@}?%nNppMPppZ}GtZS`ka9WV-y$OW&NW{Zv|4L&Bf9Q#p-hp6^g`YW81zn%THo7hy+8=H7(2z{ zZf`i4N-q^3xyfoAZhT4R!-Y(BNIt+!gxBP=dL0-g%aF$2oDXepCA_v$#IK%(;UA0m zFdl}r08SITT5(A7M~hP2xKyt;)I-H*yCig|#s$n~4}^C!LrCApe_lDtozFTd;3)1+_+f0JfZt3(h6P%wnoI|VGL z2iB#8pj#OKn)Dy~4#2YY&sGnFfb{{?((9h;p6~_6XcI2!K9-D&vO1d6A|fcy3`NPjYfN;jy(J%~XoLaH|q;nf&%P=}Ko zL=9F6cOe8A={e|5;tUmn<)W-_5<r4dD66cJP#5w8&t z^1~GN6ZjhBsUs~W(J~_Y!XxR1DK*kEe8DQS(*sUh#tAuiMJ>L7EiR`v>H#Uzh(4s@ z+c#GX*OSbt?U#+~O-uRJm#Zo^pu^FJqR60O2*Tr=ETH|TJ8CvVCvS(TFjK1%uwg4AT+{YrY#!2dcS?x6}5|h_`Ky zAsbiWl>`$+PtY>ytVz)#=vlnKyGVLzY>{<5gpSEg57WJbh|{J}(T~zAWx_f{vOFf& zP>$QLht~fudngV6kP){DyhH)K)V>R?lh{Pc32m4fX1E=$M@gC03|G%Gr|MQ=z#pP` zwvOOzwx4WcJuFm4cojkDCHnYM`D&9Ta*Sy^O`0Q}mLqU>Ns|TL9dSjI@uH+TC&YSW zoCSKc2WafJJKY5%QhGgKYFsuzZK~C+Lqm?QoUB_bMJwrQ>AqDI4L5(ZIxf1Lw`e3zgG_lrpzP1F1FzhP}t6`kOX3^5V7b9!^AR!&km3m z4hBuohev|w!X}hGnuMuplaO*mdF)0AKNlHamF7kSI_&tz62M8xn?yt9Kbw>=k@_f0 zm*jwz3=Oq7a?w*u@t`SHd_NTesAWOul?!xLbbOVu=DMMRIr#2c&{aJ}%iwjx(63^p z3#FCc*+W+qB66c5f=DY0uWD%cYD{!1V@k}!1#_%53QWx9>~0HpM@bm!=`=!c7eHzp zt{}t~QJjpZQ(h&=(zkx3R?L9@r_V|e8*gZKyv(y7LCi5{*Ya+u-1(j=vAOO$Br|{ zF!e@6idM*LPqcoCI@4yd_-2awW~%vSn)_yY*k(rRW@hPTR_kW==w{C9X71@`-s@&Q z^i~1pRw4OT5&KrL_*RMfR;l?`8N0R?O3fUZD&z=JWZa|={}Smer;B=t(!*9g^mYU0 zb|d+A6Z>|v_;!o>cB}bzoBMWq*mg(ic4z5!SL=57=yuQQcJJwS-|Kci^v(e0&LH{D z(Ce0R&krO@38uZ31hVVZ+Y!=+4aQ&g|*V-0RLf^zH)Y?jrdvXo-Dy zS$uazeRtJ-cg=lwJ#2R)b$7FLcdK=Gdvteab$9o4cds{0Nl5QJYl|fWJ~u=!@0!9f ziwVC<9Y<2aRtgImSwZs%Gy+-SEr@ z{szea!fm4pT7D#W0;Hx&&KLU}x96_E4|?5iw%)(N+#4kj8CzD2mR%;p>=$r{L)cMA zIe>7Rs^=V0f|W2lRP94x2Uo}lH2B>A26HF~fA9-a<&J#m&bD^FYk$iZPO4Q+efHoY zL*%=|B1LOI4H+a3!Xd$#@vkAcU#kYn?8cB1%P|FW_ zH-|I^``4I8?*u06v?io|`x5#_PL*-Av&o;cCF-IQel{8M(u{uySPQ1)d-1TA;%ujXNPN%WW=_!n~ z=rpD2l%4Izb^df{1o!E3oL$YHqV1iQmvH)&nx|!nSK(;> zxNaf5(gdw*IZT-3N!Q(y;VfNracpS+xv*WkHZtFki8d^Vj~xFzn=r45)-N4yYd7Az z9t~gXlPK(Gunc0_8!Q9!m+Ox$N4tw!8%O3DL7~_NqL42Y? z&Ke;?-yW3RExxT=(A}M5z}>4FL-+B$@g7sq3lijtbkyBF=gl8t72m+jlGGlSup z-N~N`$w}P*K~{ThGk6P+X7zV`*SKR#y9d}E3Gf^Km3Ww0xt~A2FZW_n?cL`hdk_q7 zgj9S$(42&(OhjQvlx#EI7^?qpP*-SkLgajOS$RM`d>9g1s|r3rk8nQhyK@`4)lR#{ z9(TTycRmZY!%M&Il!#@{zQd<Wx8F?18opRoH>QJ&J#Y7q`L_4xmX3?5J%`) zcUyIax{&8TG42o1e3xtwkbX9JvSq)CE9S6!wws!@Wr}zXLw|0lbY{J`Vq51(47n}m zea>om=7N1u&32tF(1TKs_DTO<+MceZ2f?)aG}X(;t$VD@%K599F$XK)n={D%&Ea2zWjZCxyyAwe z1IqZEy#FGFLvRq45~O)BOka{`{lW!^BM3Wgh+JCWC}aS@j*LhlfcW|r2)m?BY|hPb zihg$IVp(H-d5}4A2q7FVk|rnw1Btu96y5%gmv@LYf`+%Uh|{}>>j3vuW)j5tF}tFb z#o-lAar93?!&Nc~n+k3_7>tJ=>PdH%uCf;%QHg4ekvi?+_nSTa=ZB8qN3kM>Q+X^V z>?}jTM_4)Boyh_fRVdBZ;`D;vymXb?2s+3gL*Vm+@^|$Oh8`uHzTqmr8}-gQ-1yUf z9ld)bg##3Eq^MBAS?~k-^$TI+JE4uQ8qA6o8~)A{`&`ldT($gM^ZZ*j8O`alWl=;|xX%9qSwN=09BTCF(St?>5{k=-rGh%tMF20vxq1s?zMNDu=+99@CuMB*I`ZdVJ6BnC)tTu96 z%6Xa6eH+>!=B0Xv6BSO{vvJtUmosnf{5kaK(i_T_NSm?kw7A_?Moy7*Zvv>eq)=i0 zyb2VNkQX1_-ZFdemOD?cZ~s32{QCFvr!Ld%Y1!@6lVrLvR9al%8N>y84W<`geDl4> z8)$XGMPGjzYPcbX9eVg7OVvem-C+W*MPP1k6{TQ7<=Jrxj4+}{oM;l-SRsY}1nF|d z2n%JT#sxA6xdcWD`3NGCNh-M{lTBVFB19w_W+G18`DCC{@ZH5CLFUC6qY8Y;A;*Nq zmF8ZJbQu|*MMe?;q!Smp=_H+X+Ic6Qc?tyOLsAw-rA$^%CKN{U8RX@cr>G#uN^Z`{ z(VS3J!pnQFSJa(p`ECt-lbBq)|sA^PQ_4MiYioC$RigA7Ev3M-LrOdw<> z1e^h@32Ou?!xX(grYXT<|-CmF@7&K&}utCsT+wc+`6A(cqAPX#Qj|Xp?^1z;uF)qdIF61zr z^xAwg&N=JpX+xk6mM^JT2?B^KsGth)K`+ao@th<#UCFLQsw<=n!$y3y!C0RWg(u`@ z5_Lfye+?_EYIx8s*WXrcq@?7i z4Jt^2iqSG6T~OP$X1!3fZbmB*x=>I0EY@Dny>-`fX3n{fZMRJj7)zwC>*fqAbh_M@ zR^B<=t$R&YzPanZJMX>w{yXr&3qL&Z#T$P-^2sZ|JoC*v|NcDm(M#_bfVGJlbX8Nh z(8Uy3bOFo13}w5r!50wOHjwAro_hME-%c#nKw_-%K0W1~aI^oKz1x*CX7Zs$v63;9(J4ph6(P zgbIc<>jd`$fdibCkQjmsTSBVX)T%Zz9j?l1le?YLmbI}P$_z+Cq93xz7AIRREQdav z8vSM{!viklTTk2|7PF|uEpoAoUi=~$!zjiFcCbVrluQVz(t=0;q7dW}L?ceo2r5kE zQMW@0>|A2UzVWe-e*B}~$~dJn7Kl(A!I40?&;>4#{^tskFb@?5QAfPp@gxz@mQD5u z$W3yxlb$S*Apb9CRKOm}#3GeJM<1 zDpRuDQ*ilI(Uu}Q5EmtCMib(vND8JAq0Y4as75_1l0F)xkeX1hwX0selv4Y|Q~@~^IH%O9K>X#nMs@D1Zhb3UJrveYjWs)Em5N#w^|*qp zN{8Z-Rk>(IfLcn6SH2Qbu*&vAV~uNSLL@BdAp5OwwJTk5y)0%kiL7VdXQe$bk4TD%LD!@*_aTHr7ParS`Q2YwayHtJ~f3mLzlSSzT>&SDOs2Xh&;^ z(wG)Er!5z1F_4%f$mu|W2EqKE#-iZ7baKU}da9eV?#4WCI zdSyuDCh)`AQO;VJ16Llm3P10Dt-AiAtDyp6i(l@-jlbhPFoF}jC(Z)KvxUsw_PY1I z@FmT(1tj49^2ojfzAt|9%U^8kx7r_K?qT^epn(;v;uUMQyax$fXKyM(5}FW&DrDiU zT$nW)QkKUyv?ZmixWhR0aKAtlk`R?vvHdDJ$gqlHTUjjSDR zO=UVon>nKNN9@v>td6?Yw*EG1sReRszN8wRCe7(dGrba7hlkd;J~py7nri~=dM~{O zZC%vaPghI3OgCEQd$770@5l!}!A>@~!~M)UkB{Tu`- z$OKV<1Zsw8^5{cX{yN;_jxPqoSQM-^`3Uj!+n0}<)&@#8A=UXQ@AvCiSB1U z%f0cA7aZLeZTEgrRYrZES*t8HS<56#hy%&v=gHRNigAl`m_W0wFrj(TCsA3e2eQYA zl&v)c_FTtu`{Q%3`(H*L)swHv-ci-DUsX&OC)*Lr=658}h3&*FTY~W|%OGfN-j82TDWXp;)82YL`dB$(lOe8m1eA}EI9azr9NO=88-S+HHA z-gV+8js&2IA}q$DYmlN%nPN$}ni*n&d0>Iwfdr>@g1xO%x^Yu5ro=GHA~KR3EykEF zk_7&>jYLazL^S4oL|UXv9vepbo<_1` z-o2d0(TKWjQ@r8i$9Wq@u}4qV-+A~TQml!ji2kLu z&4s$;%8rQLLB^xVl^xmvrdAqdLUx;4Cgz&4rMaymDz4i>$e-ms#dLAuL4cq*h6I^e zR0CLWE?dCS?-e{}f^Uy_V2fU)LOkZ9SiAfuHzUjJ8CfYat$I z3gd8&=US#?W4a|?p{5xMVRW{jK;WMNE*}XJptsn~Y{8&@(II*6XZjUqSRAKT0AUa& z-e7Iu*K}Zf4g_ZM-+LAqgBk>WZlU7wCxybDe}V;oRz(l~pzyKhZ9ymc{(xBb*$~)W z0u#!N{uCauWFd-H=7d%#jF#Mmenp1j)fuLt-mzh7y5Z8m;gk7DAVvz=+~JSjksg9T zAs(V`HlTjSsFP-+d5)%IzNJp7VkWj?CwjyuJ}H-0PDNTM`F79G4($cK}nP*;;n&#>Hu_;%$DO8$fCH|D24yrlw=~nnDl|tq>3M!#C zsw^6+Rv_wQwxl~YiDt zt6n-p!m8$CrAz0%9<>-EwqO#un2U)imbvie?OEo;wk(?sEQS_r%k`sjswc;m&%`X5 zi2e}Gu;{b2%y-fa(8A35y{O9`t!`B;Ra`7fY^)Gc7YmLJ0+J|!8d-jl7}91f#lkF& z%4|x&oQ}3(;z6x-nHdbakJU=3)~;>RaxIv8ElY&0nUem_bnPqvy$Oq^?GIgT#Imj5 z#+1@d1=FI08Crr8D1jy9=z!8~=LBL7J%Pv~BKB=nk*V$9UhY=~F8jf)!P=V&;OgNX zE&+4_Cz=Q5p03tbxF#v3(y2C{M;%L&^!CNK6voZGf(?g}HNLhtoHCiUVe@y=}a zp0D04Z%Z_9ynb)HU20ht+feo#s-|SuA>?oTEBfwlov3e!bg$rLtgrIwS7s)(y3_rR zqEJ*9+(^GRt7sr% zR|aKXrs`9?3=|a1u6C*qXL0{-Z=VXWLlH4k+(IO{*C|jG?^32h%wxx?j8AIDxEf|o zI_$;hok0_TPO*5bVF?RCNY-ptR;<+A_kFCr1atho6Rn2bnp`B%1XZFRG{^XGI1>`J>(hMcx=Fg%G&SFc^N}=-2vNiuO z7ayt@cZ3GmecDkT(Wl>8SAt$MJkxSEN9s0nL`qrRChsVL ziu2oeASV2ZkSuB0x}ZAS4m-=B*1U5(FLWNyv#6pcON@ur4Kg^hC&NtP5pv)1q2Pz9 zDAqXhMH``uQnN-gv`NdAL(6JCcZ7M!0U>j;{!q>N6zPw79kFv^;;g7TY;YcT; z>&5a(4|RRia!K6s5cBXV@_|aJz!Yr6mR?0v6E#&!hf(|1N|O{1w=_whDOY%PRfqL- zT=hsG^)b0F0ZhRZ+(NKU+b=Hu>Yb)?opzd7*Y$IdwMdxtH3{%Q+yYx;@$gFTN$9U# z7j|^ubx7#-s_`}cS|ec}uVF`ahah%rWVK1TuY|yH{IYNe11qM6rDTV8e^B;ED7IE( zwiM5BZya!7?&@QUHf*Z~X?uieU-t8o>jryVNfIVq>@Zr#HgMl{N*gOgU&JGvw)~D= zZX<99gLX+iD{uz4bT8d-XKQg=L<=0Z#bNemvq#P0??>|FXGd{#Pq%r4QZS{QNKsr! z$Ut^q+xK<>1I#zBGJq~H07b5e6W4IPsS^W3cU+&hfKN$vTdZZvfFxwMB?Fv5$ae#D zK^H*6d{20#r7$C)044 z6m}=kx*$kn%WUm9m;X$GFKvfELJLSjMT~ff69AL*C=QLF3X=1jB-h?X**a@im)Ch` zeYxNsxR{eUMa+U0Fu;RH_#%&)<{@a*vbp43Z3w#HeO-&4Kf1Z$`Q~1CMYuPgR|FjV z`FumdEyNO`3#~}ot@K%#gl4&jK{~1%r=+j0WzWE+Ys4%JdY=htj{+i+(P0bG;ZOfc zB{W&8|2mkiI{xlbIz_xXrdGvN1G};Zh_ExSWt*x}s{~jtJGIYUdN@t z;qXIJ>q$EIz8}1-_InEd`v<$O0uOw{+oK&LJjL_-wYy)o!(TTl>ci7n$_>v2n`@Egj zr#<^A{(KP6yF>{2hlhAWnE61MINK#q%@LVSOA!KArpXorVdc2m5B@`Ny++iwke?xu z8@Y%ldEJ-&W!?${j_v;NZOaft_Cw1MF;CX)l=D=ZphN2lEPNnf0$_s+4o(no^W?w@*Ooq= zdUfm9v1fmM`(bX$yDj$C=$R(;zr%}PMgIJ_bHs+tt9K7wdwu)&@#ojSpa1?q?hd`H z3_Oa&C_u;tBrv1B$V=#v zlNe~x#TQ>hZ?pyDI}fZGFO)F72^pkN#}9!FQph2REV8-~85;4i5-&QjvxZt&u_Ojg zsnSY=7)a;>8Mv%Om#!?_Q6x7e;1UW?F066Kdd$>8N-aGDQ}-l{6VFjeE!EUh ziPTdeJ{$8hFDHFlNCrs=^@z$-BvF9?Nlqc4*D4bws4D`x8dk=F$o{M(reseN71d{< zjaJ%ew^OP$R{?EEhFxoYh)PKaz~dA_R4BLHQ-U36STdX-RwV)`?ee&InRr*AMmsSm zUKx~4$pI5Oi5K93@YOd4c~k1*;7Y*YatU`8=C@%P9)|Z|e%0ucE=7`?X}r%J7iT8VwJIy_cD;7 zZ69d?+?HpCxk_`-O;?~{tL~~`0wSp7jHBHx`f!3B6)17S{x6oH-FqV^=#jZ{79RVUJz**=euc_S8VfTmg}+4{uUYXmPGsSwP(PTE>y_FltD~UA$?O!Vc`3eF1aOH z_#5Tq`otIaXG z4Q`Nw9rWM_L1;neg%E?%qu%ta2R`f#%6lqQq4>sEu1K(thV6Ub0B_;5OTaH^IV1rm zdiVtz>=1`!;Mes$)x-MnuW8uhpAjp8#2xa?hmUgp;O7}(Nlk7tlMJZj&A2qgS*RfdmzYJoL^%s1%76)_B&8`& zd9gFaQU;=Yr6c#{gj>>524~9Q!G^fME2<=dl&fVHk@-cq!0wFDaON|i8BJ+UlbY4E z<~6aIO>J(Io89#0H^CWBagLLm=tn^s zQjw07q$M@!Nl}_om9CVfEp_QjVH#7J&XlG#wdqZ9np2(bl&2iUK~I7D(tC!2s6|zT zE0CI0r7o4JO-(9{pz0#0PL-+=I1^Q|npLC@6q4YpsB~I~(Pwfr8D%x=S<#wSwXT(| zZFTEg;Tl)D&Xulpwd-B+npeHt6vISiugKu!S}3VbO{M#4c8^_ngCHA*+Z~ zOqQ~hwd`dvn_10nma~&>Q_eWiSdgho%ZynK^m)HryA9&nxOM?jX>z4rC5 zfgNmN51ZJiIeu+N^WqlVHaQJ5>1Vmmo$htF``z)LcfIeO z?|t|C-vJ+Z!4IDBg*W`+5g&LQB%bkg#{nb&5qZf&!rzt0bqgY4dCgaz0h0Ip=NVx6 zG+>|xrKf}*(jbDK@vAOd$Fq_#xlE4 zHg4^YhkO>UNChfP0f#uqVGeYtLyEJWeeG|b``!2c_rV{2@sFSU-CY z0vRv{k|6TLU;!mC0u_)C_COEv01xiK;dD>pOu^ZptThMjqwphd5@YUa&l6;uX{G;~?!8VBsnCKs*`r zLNOFt&T}^0vqL@fLqQZT;Byelzya@I0`4~`X zglLH60(6FIx+ruaU_p)aBY1Q>g&{&=0Ttrl4*Fn7&vZ`dbVHCdHkvd~^>j}q0zM5v z5MJ*D@Y6S8G6XQe6<+C=xa4x8RB9q1M^P!6x`Is3q)t5|O^N>O2Al6G@xTw{)KWn; zRJG$yVS`Ui^;A6+3mD-L1_2QGzymjN4!+I=EiMH`RVXmk$Yzn`Oo0ya01!U)R)uv~ z@w7fr^;nVBPq3g74xtbN;SzbX4svhzOyLtzkXVC49bi$mx)T<6DVO4w!mePHfd{uW3T07 zofcU`c2x->5d5G6@c?C2)>>^RQP*@CB6S;r4Kg4{ zWj7~ow{dmXPL1_$2SjjrV^0@h2mW>J~i zpb##16MS}UgSKrc!4pRJbyYWa3Br73*L)2^{(aYX16JTV*_Qy~w-`ieM6Wf>UV)_nVfC-pn zsrFSvF!v-*foJ$38dyS~FM=sodlw=bD)?uCR%kJSXenVGI{0=|w{*E6ZRZc4<`ch?Dq%nRtR1;uE+R zgFP2?DS;APA&WnFi)&YG`WSY%n3hdfcFEw2GeBr~z>o`~mNfyEm4$VK*_KZ?mua^L z=7E?=_m+2=6nhzwrFl9OSvS;kZ?V~tl~kMm1d?|^lGPI=3mB7!IAu4vR;4!~VsL>& zd5I<1i4_89rC4a&mS`t|09?6zZ`qjBcb`u;b?sP>(O`vJm;m_LKuefi0J;PWG;z*2 zjm`LjgO3dIwwDK*g=2V{HCi|FmytK)qy3k7dstaVU=qgpUNhO8jaZ#ok)2`IK$(g8v!U6Szq+--dQ`<4q{li>NBXS60|f?{Ap-#n zm|*nIWJ)n1Xin*8R#CY%#0{5l&3K?x^; z5L6%r)J)gaxl6nu`hcojd^KQP#;LqjXxzrJ951k-q|E>Wnt;bKfC=WH41P$sAIAkV z96HC;D;B4v|CPxN+abJQ3+TMg?fhb4W6G<1&+DR^zaz^5eK)WG0#0BNIP$?ozyVyc z65<+|Ef!*pZUfm*m!!J=ZOn$MI8> zSDGcd^pgiW#7Eqn=oc>9Ks} zAwJd1y}zZN>cO5=tlllK-o}}o!E3+-*t)OZSKHsMknX~Iz`^v9T?j= z{g=zwi&GoDAtI0OScJE_bxnfsEqf^Dcp%t?nQ0<-*;miQUSr3;Ey}*eqW}`hK=lTJ zw@2^xz`zM4ZgNVAOrYjzirb|h^x6x%?+rh_Pa=LLU+|lnwO>Ndi@VipqV^4$@+%)> zFP|+kAHZ|d3mUuz5S+)_3zk6t5w(;a=Wzgn00A&EDhWJ@ zFrmVQ3>!Lp2r;6>i4-eZyogbuI(6BgJxeBx*DYA7P{E;-$4{Xv3)yVYbkL(5lAAD zWD-g$v82#j&}p*NS8gRG5E@X-gI{-6PV^QUCG40MOpN#hD5|q~uF$E}4}9*St9n_&Us{vw8u<_8~o+@YEr zaG1g(EVJBl3!$EVN*IvF4Vj#g%q2GDuA1kUX@Y6zmSJ5vQCM(N zspggkg@s8JXPPmktnx7_tU!2%r6;J;PD^dI)-E{cwHYbOZMWWX$Y>*uLMkbxb6AS0 zE1GhuZM*IsB&v|e6}cRe3Ds$3SJWx%Y<2^U$?KB}j#tx`wpLjseDfsumPA(JW#GPG z^fwR{`_h?eQ0OhIZ^5j-3v$RJkNj!2BtP_R$||ocS-9htR&J%2X1Zyo3+aOM$vQ_E z?{P#bcVtT$U%6CU)j5Y%dq2&mmC+c_=@WMdA1qT?IIRHwQ_~bB=l^Q1DTyROX&;jByCf*aN|sq_XtxY`XT&UoXF zpA2{0bx%&YhIf;z_qj8xTQfs|KMs0Eh0hE0siA|s`01*z&N`2gyIpzgvR`(2-sYl9 zGpC;e&im)B{|+xlLHb;3y})0a`tiyy&wO96w>^9G(mPgrq?zN+IlH|F-h1<`kN&f% z_Igi#`R1SB?(=L<&wlLH$E-QuofFVK@92XLe(^`b!hiq%{|~?b3UGh~ET91oh`6APRAaL@c5akBG!1DshQSY@!pN2*oH$af(!| zq7|=*#Vl443lN|ICGcjw+rc3XvPq#X)Bu7^}iAXeGRM7(LuZAQduS8+%|<1;J@ zK(sI2BtR<@DiCQx^B@S#rbI9b(2$DMLFClgIZrwnAV$Fpo)kj~HW8@^P=Ym{7^7^= zP$L`tbENMQXdGkWuZVz@o8D|lSeynC_r z(s|bNp83p8UDLQ(yb5nrqC=Qv5Pf9}Xm+%p)|?Q93021%j&noEz#Xya8P5%F>Z)PQ zdOFq~=eC*EK9-t5a2#OYMjO$P#jv>tja6OyxhB0{w!7yTYQGM;q z8@aZWzVsg=8+%aS9UIwx7^@Si>v-?G-vQ(HYr%bwOi%gKYsSWw|2t8&OX+Km z``ibr^8VFYJ^Nbk^v#bFA&8{C?(=f{<12sp5#l|ye9wBhdtpQ-zyumZz=aVp;aoV4 zQ6*+U8}FkL6Bn@2jB;uaG&+C=E6@`epx_DS3ncmSufP2lX! zGQyaK#E5c(V2r{yKNdk7qo_K%*f!1xjpJB*(l}1kNH@SINGP<8a|Di!REV_&dE`is z_h*iTf{y8EjZL?XoMuPwxJ>c*c+FIg1<8E(xO@4?GU~W#%2r1JsW#$hkQ2%Nb_fY5 z3b~N`Xn5KgDS3?l z*pkKJcrQ7GG6|Fw$%rW9;`2~Z$D4L|no8bOrny!PIMfpQ4 z;Fykrf|BwDOpu&#Rht6Ag}WgminyD-Nu8$jn-&tB!s$aU-~=dloCfG!oB&stSy#ES zRlR|T(^;MC2}##EA=!B-aoL)bP%abT1cOvYFv6EPbt5@)XJn|J>?xq|Hk9zm8D!~? z6B(cb%An}uo)Ti9e58?@ca>&Yj|N}|WZp%CJsA3C9~ z$C1c5jw4#4F}gY@Dkv$cNh=zB73!kU2%|FUqmM(QBxR!*0;0C4poDpdKdPj56r>F@ zq(q9N{TQMJ*`rHprO;ELPf8g@x{?=)q_%aXVR}AI${<>Lp#D+XkVYz^UpkLs>ZWa% zrDhr#Tsl9KIT)Uo3H!BE`{ij>`lf%HdW|Een!%8#feAV~BRyysdRmII2YT=3r+_M{ zy%(p0YF21!sE7)Ni`u9W*rHqeS|;(B*Fz4Kq5}?mo-Bhq)4l1 z#04>;8=sh8wBdg6r>jSShY@CeXw(HYVjEjnBflo9q{^%&X{v+Tn2*^6VDJRilc{8J zW;v)6IH-jea1>;qBe#)88W=5j_)ije0q}>X!K$omN|4P8uafhua;loF`2@Yh1d@`e zIJE@%rmc?ZsNA}lF*1tU%7gK@i3O{Lu$8cR3W#Ze{z&-Mt~?opNgA&gi=~2UspvGE z#fdi%@JpF`DPK?!HS@0mE3jNRs{^qFV5qVa;IJ|KvN1~lyc)4JxNOUcu{$d$^J=E5 z*_}-X0ZbsWnDPZnAgeH2vr+gS3QMc+=LvY4s8yg7P`j=Rn+aBXf#%7F-HM)}>aH-! zvtt`+KC7kj`2=7Ynn>!{&(0wfl7HBYZ-LPF3RYo6sx#x+PInfd}jNkl4~<|N{>3LxuaVsoI9kR zOOc{Wx~uCKWQr}2TN$W(q?Rj>@5;Kj8hU z`;)@Uyd*`u9%{Ubq(a8mimKbZ*Xt0jdm*s9rD&>>h{tj)RK3cJz2)n?8q2+s5xvuk zysT)w<_o_BpuNG7zA5Fs$0&8;JHEc_lkw}nzA?YRQNQYYzb!g-?d!he`@ai(N6#Cf zygR)ws=y3P!GRILzcIjbTEK{U5c<2niCeqCTfrl|Ee>p;va5K{_`W23yB7?=8T=R! zT)80pyUWYMHyjZz%os2n!y82JWLKU9J)eG#7&&NCJdiSOpYt; z#Efgih=IgO?86D#yENRtRSd@E1;zf^Da8`Zzl9mbX?ze@Od&{I#yrZzYFx!^d`E7) z#Zx-Nv{l1$tj2U)7+L(rL43v*%g1v(#=#lLzDUJ|+^l{~7=V1oYD%SX%*Z(G$c19Z zJ~VefoVt`;$t--yVU@`}w8>mN$%DMOpKQs8jGBq8o1U!76&%VIJjy&&%6PoQsEoO> zJi@aKc(uGkw=Btd+>>a`%Qx)HZv)IaB+Ol!%U*2E$4tV>+`7x0L(PnpQw+<}?7!6P zJk~r~_Qs+d+{JqQ#oXM>th|`6{K4iN&FIX)-pm(}tjXe>qntdu&`ikiyuk9j7xYZZ z_AI5t{LJpW&-~oY>im}Moc_SNY`X{zzy919;M`sUouTX5RJVOofiOY%NG5; z78((Yln~e1Um(Jv;_If)S|EqXRhy+_B=EiI!jjS(On%ro7h8G+LX z;lVD4cRS6~CF;``0o2Sa)QGx0v^UkEXLoC~LgCADY^T&qt)WeA5l?;1QH{@5P1VLX z)d!r`RgKj-z0%w4)h(>hVu`wI-PUPs*1lucTfKH&9oGyB)|?g7$41tiwn$O8*K3{E zD6P`_=GT8Mpn**hVja%cIL<$O*jJs{nO)T#+}Mx`*N{EBl3m1ujcJyB&xW1V?7P`` zt=ZDc)uAognM>M<{$biPgv})F8%G^-k3HMeS=%{$+cK2fKztaV?bx#Y+hiNu5JA}$ zjoJf^(PpgAsl42)+uSHK+^JC9ovhI|eBD+&*Hp>S$@|^mjl0>Mz1!X0`E1bEjo!39 z-b7j6iRjz$y_V`-N$g$NxSY||z03H`-1BXd^_`x|E#Qqz;3sL|Wq98S4wd@N5YH{s z(S6a`Ox^Dt;1G_n5?)^XZQ&zr+^>Az9NxGdt`HPX*db2Soi;27E90E*x- z4yY)e5GsD!{CMHIo#8JI-#8AhI*t%Lj@$iB(EqLB4^89>j=nHl<74>XPfn3WzQ!Q# z<09_e0Pf`eRz9j&E;m}fk>q^JUcS*_E~#QJzhq9KWqsyNp5|))r)-Yo#I5Ah4aX%; z=TQE*JUrz_Smk|Aj&|~xk1pkrj^TSw>6T8a zn4ZCbUW9}0>AeW*11#!9Nb04|il<(`sSbjx&gzNi>gfyXA1LdyUWT>Ky|?axxvuMD z$m_7{>tT4~!QP<54!Ol{f549Ht~lcg$?QMK=g)4X%D%DFE`QE$?H-8jr>f~d&gpVq z>D`{}(Vmam&V1Z%?)CTW&>HR|-p)e4;q9KG?@q7r-sR+O?@EgAKdbNVP48dc?|_Z& z=&1hg%g62oe|-ObwgK=kdD>@&&E&<-YQx+49Bv@=PA{Gk@?EoTd&B+?)5SW_GB#fB;M&|58P7U zh*Y0@R?qfpclL;!_Va%98$b6!S@*4c_YJ-Fdr$LjkA`rMd#D5mdN24f+4t)_LzVXU zEAA+SAPA}L-$qX=rl1^&FY}8pl8wL6j}Q5mmgFc$`PPF6EuQfb&-tFO^n{;;l>R1K zV^;c;U-{C#>0JNxuCJD$PuH?f`n6x?a31m@-1)p;kiJjeEEfF2|K^Df^TGfOx-bi_ zfC{EC2NRF{R}T9l7+RG*E`ZPndyofrKnHRV2c`i1I4}Lw?+U4a{V72R$G`oB-u?U6 zM~~15hfoNEApYbJ5O(OuiDSxCDp#;(-MU4<;X{ZKB~GMR(c(pn88vR?*wN!hkRjEn z%LeUPvSGk<&2p8>lpH*L23-kR)8XRuftoh1~=&z`n*=E#8) zckaT5mSxXQO0pzMVSojrf>TFNAeyv=4<}yS_;KXPiB?u#v-5N4(WQF@{TWN6MTQ0e z>Z2#m9o4K|D_q#z{Or94P*ZKU_nnXcp$7=P7?2JsAXPy_PiWG6?^2Ww(hR)_3R0x^ zDu{FuQ0YxTkRn|=h@c3ls6gHg`rOa`ecyaD?|J6ToSAcz*&{Keuvhl_UH|pJuD$k; zs0KCi*Dt72RIc0s;VYTHKMp+n@%3}bz`12lpm*WUKcF`P(I_?;*49{H*Pug*22r*xICcCmg?U=jD#p;3k@J||$+w~#j zAypTNM@^uK&p)^ZW$TQWqcsdmQ2goHnV^J6+ARTca>-iv@u%AHWp#x zN7R#w^drp*+so{rRrpLq``)vPjKkRcuY5g4X?}`0%C`{DzyIGv!{qsZduOvUm$K?$_9V==l z{G2Llucc~WnrQuNa z9wb62ZQz~M`T=g;Og@Khz2_eVxcBovJ9Gyw1{L5jboKk8$FLk-pyyi^@gvVMZT&#F zw6V{T*QE8MK<{a%XGh-CoRs=hv;N>lKD_X#|tlSU^|~P%uS}5Q>$#j~qfWq;?viOe+g`wYson77BRK z2E>u88yVWWDoQ$Hux~P%_#wH_582!`FHb=D%ImYgAKc{NU`Gx~pcy5{VMQ6|E6>5D z8LeVtMV)mZ&!earqg`l4^Tby{z)tg?@ro7QivtD0pai%z&@*<>S5c%`GtSAznrW`I z8;z8`?-AR{wC$@TwWj&NUNsXLuOxdd6)wdSdv8{dAcOX$MuOy`iurEwL&lfu5pKPC zET6EEpI2oPGgfT4rGH>FBD9i@foh3Y?T)feu~u@qjV-_F4`qXHt(4kA+Y2stR7}>i z9yQO}A_IP?SP*EZc5v7U#obZ0;i^qdI9MP&pQq}esGUAqSbPcJP0c)oBEIzIYb24C z&~q7>*gcMQbt_mLgW1!F3zTWR3#dNH;XLv=U>(f%of`pb+Bv^g?5`jFxPc|m$%Sw_ z$dLJIgmLNQk=Q!OvHaACQq;+(E^<(~;HY`sMyG&j)j>)6r)GSFPT_e@UNoDVB05Q@ zh~M_6is|Oawf)7&*~9xRJm1tpMJ`!K3)tU~rjld0MrD*>QzA2u!AK6sl&RP{YG?h_ zDOJ>ctX<@&`@~PT!cMo`_;}S(|HV(;stDZ*YfdM_K|j5^V%;ZBwodeOF$!oC?aB~r zr}6gVF6m(eg-;bPOD~krb*Ssko4uQsSMhX|mI&x?u{&zU`He})>(wL{Ion?FHyp6j ztIb$-wwL~8I2@r@SHS6VQ_bIKtXQwU+}6d(^q0|Ow_Zc_s-=sIzwzvv-m~Uam)n8A zjOUA!3gSVx+~WLAR=C8UrFU|e^RDS<7Q@+=jPhjm8SNyvo!99d$~K#>?%T%6opoX0Nr6*DCU7ohO;hd@R^?XTl>VP&(l{q0ump z<&B709cxpLjPTcX-p93BN6rpP#?zz4-t|ucU7YQWXJ*#CpS?J8ag8*dUFPz6J{Wk* zv&4Arqa9n;+|e!H9^?7FVxJe=fwu$RHB+Xph_f;#+{O}`EI_y$TR2G!?iIn`w3vN+ z%9736N#HfyNvqgJ*F4E+Z?ep^?%N}M>=qwsvT~mLPM=zkds2zXD!=`m*QUqrsXZoZ zmrL#px&(P-uA8j4pnTs19(&{xnr_H(`;Ekz?JEj2QYzW|jbkOxCa?a0kaRk2cNws`Jkm+PB|2dT09m=exFRUu?q6 z_6xWJKd9aH8!IvUT5ccs(G=%5*<<#twj^-d<*xtiy4m;U^}x@8IR6Dg^MekG7s+vV zZ4@MQDSPZ+CVEJTn^_0FN&kF#{pthtt-C?ZGwVU$U*H0FBFzt%x$piMyc@J%Vt(|| z{_d|iT+l&}`SD)K-J|WhcMsRialh7am$Lx~lcK=PC_LaY)lw*^C%ys&@bfD}evN|2DuR|NiVr8#?L{S`~ z_*-NJ24pYH%3j=(y>uumNGd19EGH}=cUekKL{(1IL{7|EPCP(PB34ckX#7|qcePWN zdq7TlR_@xC-1S2_6sbJ7DpZR{UQQJ%qbjdpBCqHyFP$XD8!I23E2~@~uhJr~Iv}q$ zE3dvKf8$VIgH%D2SwTxcL0d{eM^!=BL_yD4K|er2#YWr^DlRM1DXSW0IM8L1ByTng zGdNVRAXT(vR9!tIu#_+Q1Xyc@>EswGEusR4%6~g@>LDHm8s-cq2%A96p$2mdmzedOX=>R5_Z4G zJFLfdKq*uT9j1y7H$lfuD#gOkQL*S~ot|KhUafeghyirmEc*Ud?-P&Sd#UIIW=wPi zI;0c*Koyg0f=O}49Dy+RkeIYgOiTsLrw*OuiOHJ9WN%?|I!RJ1VCl@t`J_sT0=+q^ z%0(v1#m>ql8&UbO{b^GDJ_DGN7UhZou2`lCTA z4Pof&I_0`pmFJl%O(q=mNl^_0D#3M_d(5w!4pmNEmCgsvv9K3X1D*k|+e}oCyPZ{g z!eZOQV4ax*?m7cKEvf?ps)L8oB@3|rL)C&6mCRYyw*qRTQffsTs;ThzA()SY98ex?pZmkzCtsefUBym&q8%-DTEV;dy&rSBod^?V8QoW!JZi$yx$~T62Y3 z%T;ej#m zi&XtcN9)2k52zdTN&7$v4 zL+q+X>UKfj%Tzy8LcbHO?;WRqXAb5wPU4%TA26s-za0bR>{%Go$C6D(m%eLh)DM=P zbmuf^5i|&MF}S5W*=%7DnKfx2ZqOWW5Ho0CSwC6aY7locX|ifiykii5!BCH8st{?I zXgYO6!LU%nFeT1V#cQenYnb+8O1{Xjpvo|F+faIZDu2N+hs8(&-zXn$l&>}|C_0^o zGAar*;E#W0i1c$5CY+1a|;j8>DuBa^WelZ+jc;R|zvh`Ds6>8R;kkNjM`hUrAy+*IAn zk4|IIxbf8BTxXFfu5OOF%XE%xzGrog=<6ISzS*MMd_U(ri>TRo1+&$-`9WJVcCUHv zWV5YgwRiYLlY?fTS#&mCv_6Kc0X)_D3L%I~j+u?s*6p#Z za(oC(jU^@ldBah)>@EB26e{!fuvAT~8b}O(K%`e|eJE7=E}rOywu2nd-iTH--IaGV zR6U0_mQVMlZkWzfyC+S$j_*p$(<0{5sMiO}!Qj(egaH8ua@`JKN*G zM*zkJg213iK@c{SfPzo8G~PlkjDqEwO`{;YLKO7{$AR7ipegE~)FC=a9Scy+U#au= zcRIU&7J+|M1pZ5@bE*JOQb+F3r~`!ROa%U;j+e8Y{VM`6XAnLx>SzF?4vd=5q_--s zBLd8h7ex=sYm216>^NYcx!4tllyf&Z&@Ai&PQc+3h^|>xOr|yM55Tw=4@L@7)U@<@ zSPf>Q0{uvdMYv`1rQ<%yPiygxW~k>3#qy08^@l(S^~f-8R-M>?%f1XC0bysd@2~IS z?9M+l0x&@kJ_rOyA=`pMP$()&gRLW&{G6hVMD?Ou>AR4Xz$9<5Zqi&Nch) zZO*-Z_VoQLEQEx0O9*QT0uzuT2U3@2yWxyxM{%4Cxif&0T%%cXbA;W>nYq zrtow6x6Gfrj!&QPzDi-fy6YTV>eTTf&cMfd{&`>t{>4neFH0fjOfOS?h1_4YX~!7$&kyHA{b^l#UGtO+DWhejuYAoNd(5W)P{fc1g*wf@Q#+;$R1DZL)MrlS z*&+DPjsWb^Up3{4lLh7RaFxuppllJrenE>DLL$1>BV1((kvI$pM5A zlZNYdJqzVo1pYY@fB}o&5%eGwRt5wk;WDAOu#^RpQ_9**!co|J6#N$vxkA?R_s?Bb zMi|C(pd-0SSam+c7j{KmI`7>w8E^Mn&7ICmzXD}~NkNFejYKm*W;NKk0-43(3X*)# zjqCpB#Pw`X|FIE(shx~O79bfg2u96Lnp?#Nq!g2EY$}{R7yB&tT;3A1f2KdXvN~P5^`b+r4}V$^Ztf-&zldE|6Wo zfc0Po=h}_K%{-6$F`OEJpwl7C2b>JlQdFSG-xBbj6Tq`Q zJ&VBKBLE}%Z2&H`V*k`gV30s9C>cx-VmQf;lXbtozMu~u+-hsDZf|?-?DzuL@c#NW z@cZ|>I9wbKH-^J~O6l~(;Viy=i|b4Q#-=J9F14mcYJI)u)2Cq^Zg^`eaA6?>hb!CK zda=JBS?LSf+3~~S^1gm8#NoQWeGBpNam3;Jak%^Q^Aos9F&u6ehpWNi9#&39`ubAu z?e*et={VfxmoFQ>l@@z@)!)9Q;&A1Adx1MU8#r7C4(FNT%bL>{xz)+)?he|*0k0DC zO;N2~jKpoJ0y{g2i|pKr{QF*?-9L-K|4js7$G~vIjMlJ-4}np~R0$T~N3&1~$6CZ! zSrCy@gB+kpi}N4^Hy=T+D=>ZafJK_mAYMZ*5|2xB6ON*eP-MdA9~K1dt#l`Wm|ZpU z5{gd2|AVj!29n54qGC_IKa$1P< z9mbxbqs+JQ4i2{%6=e#*0k;9%e*v)Kln>Xe`9gT#rRQr?iQp zBIn>hWJ5b7#S(pNQP3DU9fH zmpoKdlYD0ZgvD|Q$_13gNFD9VF-(VnDZ|>lm$GjFWWhIa@nZpHcJl+ z<!?5EP;-g|F@HFI>Hyjvb`NE5xBthTV%TAv>53Dp2y7#$7g zemY;4!M(l$C4VP>3pYfLg$Gk2acI$2>kz zJ7nk5lKj;weiIzq51n{ZUNS5m>1LbFtiHOM4y_`@VnI%mq+LV{gEs|TRG?LL?If3y zf%n0q`@%A zcYfyOd_2GlTsi-P+6ElX>~RzhH-N)Uf_zs27yx1fUTsnjINUxC*QlZby7KbC&i5UAOcS6oaJV^uQUIJl@mm03aGP84 z@$YnWfX5%&+k<9s2LMz^f`(jb{8^)3Uh#c*ik9zoV>sE2oPTV_obC939033}gfM0a zBo;XRh?)Q?b27<6e4dLVp*0vvaSkprT!n3u3&G=vSqYW}V-tBaZ=rWIQRoC>;1Z|t z!kobwu!|C&3=i>dP_qZy@Svz$2MfftFM|50*$9Zwv;U-5-scETH@Hf=^5gA7C=8Bx zyP=uuJW{BqX@-w&T?SXe>^G|NT+xQLH^(=npIf!g6obPWNizhYQO&w>)3YQfnUGf( zDTDB1T=AAV(NEdcZi3zQLz$`SP&`Y!Q(Xq&*`3UIxwvyM{?vx1JD2;JD=4mU22^!A z55~S@3|#!d|E3h&^ixrl+Sja$hjQiqftJ`_Vf}+*XTdB#?Av!ajwE#CC|RHAl(Z7A zH+MiLsbJFbp8n%P>+dFeAL)>C7LMJ#SykgfP=eqN5KfvdO9?_%YEH_efbW#e9N_#)C5>0x1 zQVON00$>6vpfhFiA7|0o3;(kS{H6~q_vGY9YCeHUt6X4;l~5oPEz}-Hb_tHOI5{mc zih?&riU-+2NCbt^!&)B}g+hr@%7r|+T;R}{WVHTXNlY@d^UWi|6ldo37;H9=c^O$(0egh%s#_(YdKkIwY z%YOGx+W|>x$gt~#n|Vs^(|i!g!Y8#*MM?p$LtjxR%9cPUb+o0#=!~qP*LACVFb2-YetIpiL`>rukj?Q zvOMOA$0L#e&8v8n9puDP+!=1gBXt1!U{T^j|4ae^G+G5{B>4YNqe-!o8fZTdD2xFA z|2o$dgHfcgml(g~|Jfg&yx@KgXb zby_p^19}Od*Kee8+T`lyMjg20)^3jwYa&x^M$cxLu&6 zdxwhyRFkhSE5J6Ossm(L*Yk=TT>y$twtzxy&Krlz2RQd=7(0qf9m16ZN(sOuVB0(d z@EOUI;|l_W86fJsy~P3k0fOp3JCM&_^}iqjziEVqpK2jKDOfl_BXTu;+DD5&h$(Jp60}+b8 zH7|n7M+M^(ds4X>)H#ks%NcXnZwo{%d9J@s zC3usqOWzp*<0q8K6sZ;lhh!2m%j-_nq2j=>uMs-@D1L%OE^MZa1%0(u7MNUPgmP+2 z6`>FgZxqb$SQ|3G{t=oX=RThca%KMEn%5ioF4Fpv8Id>9^m4C4e$+^Cy%Sz$Xk?07 zK=8wI|L+ktc#t-7d_`EpFbw4XbLT0EZ|-2Wo}4b_4Rx~vnQPID46K{9JBu9hK_$|& zdW^T!T4+qw!3fZ_G8Kmp%`H%)g~c7Bi=_|o;p&C$VQ+OE7NHEvo>RsWPYM@85WY6! zF#-)da42nvH@gEIHntRZk$kunB9z`}f$!55wj2*t7%ou0TscN9BR79AOhkL7C^v~O z3#6IIAA|ruP$FohRyCl-PrMJ;fLp7`ghVf=Li+@R@u_U;G?n0gNOoG)9RVcc|2N41 zMRn>W;Q&!}BCP=Zw7CVOI8bZ>2mz=AFbQyTfF%XLsdj1=#Q~@TfOn#|>|+2+0RMox4Imt@ zmKcy(0N4Ns{bAuL+h$ILT`R!0-0d0QBXO_D0iFRQ`z`MPMqVk|1-Q5XNW(~;_Psa& zSCzi3xEv%vN`PKlz~6RuJBz^IBJlqrSyUK6GLrM`90{_WFcMnDC=2%mHu-2O>q#EA z+(HZ(UrZ`$K@*9NRust0G(@666m(LGCMawx7$0_Zcyh#oOD#j}hD1Q$g8eWnc}#j3 zDleoj9SvFW>>K;gMlWoyC9Rc{PDx1El%Qxj)bX?5ao}K!kB{fN(9eK>Y~39SI2t;8O$c0Pv&$#~Tn>xL7VX zx4#{MXLrvc@ZTK)fNCeRW>v^PCrZQFVnW~$kxVpYDgjk&tHh`)V3Lo!+^Ie-s~mtq8D5y4)9DMco+(M7#W zas09(G7zD5i2^SURYCZDc`Ct&P-&y@)`r(8b!_elhYwr3Hw^Y7M$v6mLlmLn$@lIq)fAH@On*6q95L8C{1_5N3zrHt@e|PCSr+0Khcyzm(dE{RJ@X zZw?r+002PNAN>W83Sif%A_K%%13)T(W`NE*oxIxxPzG=eAQ%9y6OnZaD{pTQu8alX z5dri0AL#a3DXu(z|zi><_~P`WCZ80$n#j_D}X4uOsW=IgTqOv zQK(qoo&3HCMnMszAQt=j5t$ScX-H`a3KwTugTix5-efT_x7bLI6$KL#aqOC;d#tx- zsXxLy5X=Qmo7E+vFICQ4(9R^!3mQc2+rG{>B1F)~>sYksNZ)C%|Dk=+giQ8Llk?5o zr+N^9ch^!4_gqZMqFi3;#=<+yQVhx~)tbFgQSI(&tm?6iyzMal*D+#_I!~s_X*@65 zIUjJ%f`|vMWs{}uPU8{ND|*Fw)Y^mSY~;F)ay?h^Nd4Z~KKA!gCuxt&e)8h$LCDkS z0%7l?J(TC-m|A7I^l*mg?X7i6zq`za!scJ_d#}^HHu`cqjO690*u@`BmcJ%#CyZ{8 z4(N?}9_l8~Vo13}z((*0AKhDIVlc)q1&l#5lm@ml9f>4BQA4*W-?2jR!b|gSh_Jb$ zqV;sW$1NaF=-JiqI6(#e2KBlHajuIJaQtl=i$WtM^5J9|R1MDxim0V=8H64gTS>%c z0|i4ll|f)jiN{f#7-pWl z0d*mOG5}}*&Hgg;8vvSBR*Idv`T)}apzQ)yJU}*pV}LdGTdDzM1Aqo#?L?=&panEo zN{ZOM+MAP|V!+C%$`sI(4y%+D&}1iTU!UfG)A4xrHfIs|uSMWbtyz_OO0a=pwlG2> zc2)_jYg=v?nE0}z>VXV|5D!U&fT14BhT+pua3QMPY-Qn8vJuRfhc@8^bfPuRMA)M6 zbd&<#lbdZ8H^AsbzPU1Z*g!lujGQyt11Vc9eW&IS$@W-39!v}ugtuaYspy^aJAHN8 zCSnCd;RjcqeL~lO#R@qYWNasjRP^l@;Pn?V&0Gemso0RtB_iI7jb3H-9gFE23aluU z)+G!+5mInY(ystS=tUMfJ|OwoY?z$u9RAjXoMV$FiE}pb&)}{1x2$RPvi!em43jE% zh+dG|)1P}1%zlZ?;Dho^_={`e7p2=EtF8K>5gIR=eD~9tRo0#Ay?e@QK1 zj`265fU5C6u#O495@3z}#?o&l0j&BhxPFrfU{d8==+-{Aat=GW9|`#Ffacl))?PiM zpPak%UptV_o_!X9|Go$SSRw+1)#<_ph|R)ITPTE(j|0_+s#1Ef4vM<>Zi%8V*j)IVS z-klb01z?~N5MuIYjci|tY)1sk<6zG5Ed2P0LXh{yWHEzSk_GA=l&FbR4<;C|=MqLD zn=xo#?W-0Y*9?gHjvD0IwUs3;>w&Q?Keo{hX|g z0-SK%?w2oX-@fI4{~o`;U;h1j@Yk>H2L};*dut7VXa4e_;pOVg=I+cUZf|b|@WAa} z?*8{3E@$s_7J>gH0{`-)a@#=M*PItXc+g0)bF$2tXt&%5a#nJO+0qd?LNXeBVtPzX zD>f02h91;fQ>2nYgV5l>Xk+^lAp$M4Ki;;trHkAq*J!PEP)UOZ6G(q(#kOWa^YNmT zb8YbnA;}k6kiixskFPcplwuZT)e`C1LG%a7_F<&fH&djq<_61TTlk34r{RT|Q*s{4 zA}u{y!Qtm)_B7uL)X$$TZio~ z;m)XFZd!GClxBXrIC{Ej_0coqixVu(RddqO2Lk6&UNg#t+wf+!>4)`Jj?f`^gJP|U#y`evT_n$fn zAPK+|z`6cIlG6$bAjuzw0Q@-xNc<^Gf_Ha!fyLqgNdTSzFahZCpM2A2uQ`jr|3m~} zlPAl;VXYzIWDGp2tyoLEa8gE?GPCa@9+ZfNOEF4A1}`icf)C?CfmT{UU`7Op_hE2f zG><72;`uJ;07w)ZC8D9lt_-YuhJqLowh#!O0$-J+2#-vXioz9iE28ubh=?^x%0jzz zyqr+};>Ps;8eRgdHz<%16x^GA>9rZ>j@}dP22cFLCw|{;jH|r|Z;_Ge@r^e+;pY!L z)^6463=AjmZK1w6(5aZf#X^+kGBhZBWaM%M$@MxR<@V!%=h|(S4MYfs2Hvl&cu*(| zY2dm51}+D2ay1CL6FK1zBs=}@s^!EB2Eq&^EReSU6Y)O#%(Dpmk3|4>>tu?H9(%F` ziHMI`A{SVWO+iNvMV<6*0&!T)`f9TEJfPtYLZGNX7%&S2TM^}6(4UMjZfBOHE*waw zzr9pf>S3>%BN=SA^&xRXy@0`$X)7Y4TnOU1gCITneL`i^dI8@ev*Q( zK#Ab7|3?a*%*gnHfHoU|aS1d70Db_X9caG+0@S#MVyVJKR2O0_hT?I}T(ewk){o9CrBKdz0*S}T2B*+dJtL-E~ z4G$#kfcKQNn`y9XcmO=OA_@HNLBs#pcXal_|EnYLZ$zycrXKKWIEe-(#RAQO3b3XUxE!KMUooy*L`>k zCxy{wDc1utG6uENQbrnKqfgZpNXHm;KvT62_tNK{r|`WCCT;DvWfaBgfqic;4XV_- zOuv#m`Z;Ih@zkA(%nFdXKSI9l-|^XFB0q4bBWE~c@8$M1>+G^ z5Kl~byZW@xx*YeU#O$S0!9T#LY)myu=P%SsnH_OD)A|9BMx3 zEtnAsr+sX0r#XOoe zqw$2bM&lLs(wehRcUw5bOmQ!T-g%+`A(VfKgd{M}B4<#n1_o&+ti$r>0~JL}my=sY z>T*DDFh6F!rbg=W)vVt_i`5WPO2Kh{T@lDogLVdPE1CIcDNy0`k|KN+;;`VvPmYxo1V->avj(ON!}8jFBMt5xps$a=ZBun z7XCB>dMu8KF}HG!h?#aItJ9cEOT?QjS8Ktm;*1p@QqH#U<|F3wxPsT0TP9vKZ4auz zTj$fRdf3P1b1j5$Gg+D!UQi5z@|PF3J)B7mUcU3oB7Z*Q`<(BvW9cU9u95GyRw$!5 zUUJ>riL6^QM|H*Eo~&+%!lYxP#Kx{G`YD-sR~?XH{Xrisg1%00Y#Xa>l5pPi&w8}l z{UTi7RlQ?^ek}!m0L#+X`8HNRR&*q)c5r4%kH7nU@U{qHbsxj0=j9lb|bIpdx=iCJTvC6VXN8p$|#B< z3$-OH`C;d+-PsoRbtZ)Fe!X>k{ZC!HE{0DB%kk!`1|T=XU%IB;wv|8DGJWpH>zf-Ls{`$ZmRmEz+B$Ye0)$;w*RWygg0+;}302NHgnB@9r z8tvSf^7~&6(zBiWuSDQ~MEQ{dmwymA`70BkFYqE|WMzO&K~@1Hk5EO0g$oEVQ34=6r? zbO-(glfsB-5wuK9NLDs}Mh+A;mo*tTmJpc-rfP){zs8466XAbG5dWa0{YAxl$SC#W zoaP5H$00@cS4y6ZGG2|Byc+mD8!mc1yXe&<!HWdZFEc1O? z>fTgrUt45UQK(r_jL9gw9{u=gNSSCrnV@$Gi+u&NaRrm!Qx?rKCQLa!s+d-^h>kmr zg+7&uBA1Rjp9WDtgD9e*c|uQ9bB?}&i{&{#@`Vs{tN6KgX=IlobC2%1K2zjt>+^&5 z+;5!tMqC9(y)V7HD>4%$Hvi!2a*F(Fy7F3%=7&;~59L;CB{yeteJ3)*-lWB~rzcls z=M)y@7Znzj6ql5jR8;5H*QPzIe$-TXzq|6`o2Q9mHOV6{bGrx1T81l{$Dcf#eOfzT z-#FXyYO=LszO{3ut!u5TcX4=RdTeZbY;1UBXz0z*!0_n6&@`~U9t5_T&Vl6@y<06E zTg}beo#i_NIr}g3K2?@%WYw-mz1j@#-HRCbdVk~~Z}GTf>9};^`04y{>(+6{r{k`b zjm!^6X0 zC%2!6hu@BlfaiWXKHmOyyz%3B_1E#r@$vHU(fskz#PRXS@wd0fo8w386UVC)hx4OH z(}RbLormj9ha0s=%TEsG3x7?e{dgOH&>O!0%5Sg58&H1KGW2LTo`h?AD~*YPphk=% z0mVhB(ki4vG_8=?SfkrQcMPet6)DidzAuqS`=o_^(d$QoCoSy%zsiq_W2AuZI-e<^ z{Ce>4BP4$-Kb=S+Fv>CQ-P6MO6lN}0u9p{@ZfWg5*Q=O$=DOUU^;Zk~k8gR*a}6L@ zS=hclmT*H*gr4VatX?i2MR^`=iVB#@+uCNUIn_QHx_4LZ9;;eY-G|Xq?ec5eK3@lV zs@j5K0;Dt*2Gte`ZxPMn&V5Pzqcpn6%N=%n;;%k!G(F#2A1+YIQGek#H!*SJ=PjwL zf{zU_R>xl$yZxJgl(&W&M|_N>OuW%e5<^n7Ysz3awfFJ;n^&)ZGrI0am}1v0$5~v) zG(=*B@Wm!|{F0s!zVq+uR2mN8e_>5PoQc1&7>SJFS&HIN6h|r(V{{T?pk*8HqOBwi z#)E|?99Y9F26bDxXIDj$$)s6@-t-dssQbCq$Z2&S)On2KFdSk@&9Nn8+#)f`hz z!e8RaG>HCd>p$<~NXk;eoIesWgwNtiNJs-ZpAm>4)TdH+OFI<@ljqd70hI?xD zavrb7Ze~1sjporW$PLmNE`U3v78kb?@NZRhexutAs=1}(Xr0F4bRCpM zzQZYS@QN@t*#pNPjrzw*6N4W$dB zTIZ-YF6%AZycm&KOp;TtKrtD(*M0F06Dd)C)jOi4{cQW&jO#NU(KdZ^PEvt}q7eDx zoHFcNBDUWns!c}c^Fs(J>e9J64sSB6yn>MPZ z_j)$g@1<~1P%DmUcL+Sb>=sJi;H%R|CJxJ6d&^gTB+Pvs#i7F~wec3cBk=ru58|Nl z3$e_Hg=&(0UyHm$#1y*n=-cc)<^0u|K=PkDvdcQM9|VO+r)A0#>-;`GrS6O-YkJ1> zhN_{IREG0w$?QbEJ;Y2@Vgxb-uae_^ZoaK9E49paoAaI1{9b-ZjLa4u#bYdLzv5ZT zme=P{BTU%SfXBw+FIHjhXQa0U!9I1vT2qc?M*Ik0Fvu z=UYQjNZPQwjt^%(hxoJxi@0$ribR7FdLM4QXlHTj%_aB}A0Z-j8yT1yLZg807EX85 zzVti>yJ<&bxza7>8Wtvm5|S%V`pm^)03|mSev-;lMOk$ojUbd&;GPEgC{CK=!W^Kk z732xf=PaL64N%;AS`V+l3gK=_&8$oJ6N5W#koUAAsaM)LM^rlK>wLTQn%*Y!?!VWW zNUh8X3}dXGob}PDMqZgn;Pa^?B0}aW?N=8*5KObeAqCM2T-B^1rCA^C*jkZd?J#N8 zl_QIH^5AP^;(=$|56N3Zvrql*-B0qe4#Nq9KG1r4e1xjiCBP=3@|gj)`nrx^6?*QaS(fw`(Z$`dtj5mychW30@4;gv5m zBE*l->NjQavVVGVf_lqaLZ+$8f_BUKq?a_Agbdg$bUYI2@wNLT;rV`^Sc3}-Xr`-% zA^TN9gLTCQuluKl8g?t*U_R>1!tUwh;@vOP=;Dr|)R!VcaErGb^P7Do9(#n?jaF1! z!Z0xovbKlNW};mK|ZU z(k=?oS8rn^XxOZ#uH{Si1RVUGP74~+-y|)m1T0e``RsSl;evPDqw^z+tB72{rgX1~ zJ^Rd~Uj3AdSDCT~zSU%r4k!rgEuq~rsjfTt@VvvTj*pC`qil}oU$+ur@aO8q z#|1t7_ya^a*NY^NI`LEV1DBk{b-?yEqlg~f$KuM$Byx{NqjE^WsFpI74!~M zxE`!f$KLyrBF(vKvdZA%7@D?JrP?mNr=IenU}`!yc1`hW`i1wkA9Q!@%+NbaG*!Og znHar}8n&O7$TIgdhMs0a0z)eu^$g8xVrw^U8V)@1jv2L!*tqxg(_R0dx=J54YQG4_ zz`Tfug-_b=&FtT#_bI>^h^fBm~eF%^re%qZicKJ9+T;9#x( zJEM^c;-1=XZi8)mwTJ=_^y8>?m@g9vjrq;@-xxL zJAJWfUJr6))}9R{F?T-gYNoffUt|YIFn)qt{(Ss2+(f{Ccu)@-mxWx*maG=%7>JCRpi zpkSN!g%L9NB-xi>`%7Px^hBXaAdIvKagDarf}rVm6(u>X6!|yI&ShOz9!!&mAAJ;> zFwY!HKwi15J2{N-EAdyCxf{^qM&9G`^Lyyiu)BqM0s2DZEyK>F8&p!Fs**a?{hj9f z9wsmF@$0NjdhsoP$%TX!aeegh8(US4D7>l$4e6{8;&ux)(YuRkjBrMaa;yklBlNzX z5GGI^rn+Gz+NME1Zqh5Kv#+a`Eq@h0EJsooY1bQhY>=wc6fQ-KFzxm-#Mn?DVewuK zN2K^h zyS&2#inp;=Y;hoX{H|LZUvq9hV+lApE z`SGL%F?SkE`I$~?rn014&y(1Hcr@%&w!>LVXt3`Sm{u&4a}H>Cz6Ne~a7c=!yx)+s z`{5o!L`64cveZfaO-T7RLz)ZyBX?f<$8gq_WG4Sm(k=~FjAEqpNHRY5mZVIofk8@A zhlAyF_{QWtsXQNUY|=x?jHt-i{4YtK7|OAo8#%3yHuI8OpC`lNnVr0u9fp|(n9LrA zO#DSssEjw^NCuM5#c#qNL+4~==oNX4$(WtWVr{$IC;TYsgHc#VX4mt~ZVbF%65bk} zZ9J7t3eL*y7E>4ZEfI6o5D%EH&YGXfNw}Gj7o5@b!}mV-BmJrD^*h=4dAU1fnLE$n za^mp4=Pr(PzVgppeoQ$Xe#l|oOaT3)!}Eg=5t5`t+~i5IBC^gV=gXv+&i(j2-+&

    YC2a!6d!kh|wT2=12K3;)2cS%p22%e2fKf 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 $uo4>C(2P9-p?J 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¬`g4Pp6JfMvqShpvOI@oAuE7??`l4 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 VcWHEJAX8&$Cs> From fb2eab87d40c31dc040dd0bc8cf7a9c8391548e6 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 9 Feb 2022 17:13:02 +0800 Subject: [PATCH 075/382] fix: some warning --- Blog.Core.Common/Helper/CCBPayUtil.cs | 26 +++++++++---------- Blog.Core.Common/Helper/HttpHelper.cs | 1 - Blog.Core.Common/Helper/MD5Hepler.cs | 2 +- Blog.Core.Common/Helper/RSAHelperExtend.cs | 14 +++++----- Blog.Core.Common/Seed/MyContext.cs | 2 +- .../BlogQueryIntegrationEventHandler.cs | 2 +- .../ServiceExtensions/SqlsugarSetup.cs | 2 +- Blog.Core.Repository/UnitOfWork/UnitOfWork.cs | 1 + 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/Blog.Core.Common/Helper/CCBPayUtil.cs b/Blog.Core.Common/Helper/CCBPayUtil.cs index 6d43c39d..ca753918 100644 --- a/Blog.Core.Common/Helper/CCBPayUtil.cs +++ b/Blog.Core.Common/Helper/CCBPayUtil.cs @@ -96,7 +96,7 @@ private string GetSignContent(IDictionary parameters) } // Token: 0x04000001 RID: 1 - private string VERSION = "1.0.0"; + //private string VERSION = "1.0.0"; // Token: 0x04000002 RID: 2 private string MD5KEY = "20120315201809041004"; @@ -179,7 +179,7 @@ private byte[] DESEncrypt(string dataCharset, string data, string keyCharset, st byte[] bytes = Encoding.GetEncoding(keyCharset).GetBytes(key); byte[] rgbIV = bytes; byte[] bytes2 = Encoding.GetEncoding(dataCharset).GetBytes(data); - DESCryptoServiceProvider descryptoServiceProvider = new DESCryptoServiceProvider(); + var descryptoServiceProvider = DES.Create(); descryptoServiceProvider.Mode = CipherMode.ECB; descryptoServiceProvider.Padding = PaddingMode.PKCS7; MemoryStream memoryStream = new MemoryStream(); @@ -204,7 +204,7 @@ private string DESDecrypt(string dataCharset, string data, string keyCoding, str byte[] bytes = Encoding.GetEncoding(keyCoding).GetBytes(key); byte[] rgbIV = bytes; byte[] array = this.Base64Decode(data); - DESCryptoServiceProvider descryptoServiceProvider = new DESCryptoServiceProvider(); + var descryptoServiceProvider = DES.Create(); descryptoServiceProvider.Mode = CipherMode.ECB; descryptoServiceProvider.Padding = PaddingMode.PKCS7; MemoryStream memoryStream = new MemoryStream(); @@ -262,7 +262,7 @@ internal class MessageDigest_MD5 // Token: 0x06000020 RID: 32 RVA: 0x000028A0 File Offset: 0x00000AA0 protected internal string Md5_32(string src) { - MD5 md = new MD5CryptoServiceProvider(); + var md = MD5.Create(); byte[] bytes = Encoding.UTF8.GetBytes(src); byte[] array = md.ComputeHash(bytes); string text = ""; @@ -484,43 +484,43 @@ internal enum CRYPT_STRING_FLAGS : uint internal struct CRYPT_OBJID_BLOB { // Token: 0x04000028 RID: 40 - internal uint cbData; + internal uint cbData = default; // Token: 0x04000029 RID: 41 - internal IntPtr pbData; + internal IntPtr pbData = default; } // Token: 0x0200000C RID: 12 internal struct CRYPT_ALGORITHM_IDENTIFIER { // Token: 0x0400002A RID: 42 - internal IntPtr pszObjId; + internal IntPtr pszObjId = default; // Token: 0x0400002B RID: 43 - internal RSACryptoServiceProviderExtension.CRYPT_OBJID_BLOB Parameters; + internal RSACryptoServiceProviderExtension.CRYPT_OBJID_BLOB Parameters = default; } // Token: 0x0200000D RID: 13 private struct CRYPT_BIT_BLOB { // Token: 0x0400002C RID: 44 - internal uint cbData; + internal uint cbData = default; // Token: 0x0400002D RID: 45 - internal IntPtr pbData; + internal IntPtr pbData = default; // Token: 0x0400002E RID: 46 - internal uint cUnusedBits; + internal uint cUnusedBits = default; } // Token: 0x0200000E RID: 14 private struct CERT_PUBLIC_KEY_INFO { // Token: 0x0400002F RID: 47 - internal RSACryptoServiceProviderExtension.CRYPT_ALGORITHM_IDENTIFIER Algorithm; + internal RSACryptoServiceProviderExtension.CRYPT_ALGORITHM_IDENTIFIER Algorithm = default; // Token: 0x04000030 RID: 48 - internal RSACryptoServiceProviderExtension.CRYPT_BIT_BLOB PublicKey; + internal RSACryptoServiceProviderExtension.CRYPT_BIT_BLOB PublicKey = default; } } } diff --git a/Blog.Core.Common/Helper/HttpHelper.cs b/Blog.Core.Common/Helper/HttpHelper.cs index ba5ef48a..336235ca 100644 --- a/Blog.Core.Common/Helper/HttpHelper.cs +++ b/Blog.Core.Common/Helper/HttpHelper.cs @@ -1,6 +1,5 @@ using System.IO; using System.Net; -using System.Net.Http; using System.Text; using System.Threading.Tasks; diff --git a/Blog.Core.Common/Helper/MD5Hepler.cs b/Blog.Core.Common/Helper/MD5Hepler.cs index 2f87cba2..2f46f0b5 100644 --- a/Blog.Core.Common/Helper/MD5Hepler.cs +++ b/Blog.Core.Common/Helper/MD5Hepler.cs @@ -13,7 +13,7 @@ public class MD5Helper /// public static string MD5Encrypt16(string password) { - var md5 = new MD5CryptoServiceProvider(); + var md5 = MD5.Create(); string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(password)), 4, 8); t2 = t2.Replace("-", string.Empty); return t2; diff --git a/Blog.Core.Common/Helper/RSAHelperExtend.cs b/Blog.Core.Common/Helper/RSAHelperExtend.cs index 6e2025bb..87d6c2d4 100644 --- a/Blog.Core.Common/Helper/RSAHelperExtend.cs +++ b/Blog.Core.Common/Helper/RSAHelperExtend.cs @@ -265,7 +265,7 @@ public static string PublicKeyDecrypt(string xmlPublicKey, string strDecryptStri string strDec = Encoding.UTF8.GetString(resData); return strDec; - } + } } ///

    @@ -284,19 +284,19 @@ public static string Sign(string str, string privateKey, SignAlgType signAlgType { case SignAlgType.SHA1: { - var csp = new SHA1CryptoServiceProvider(); + var csp = SHA1.Create(); rgbHash = csp.ComputeHash(bt); } break; case SignAlgType.SHA256: { - var csp = new SHA256CryptoServiceProvider(); + var csp = SHA256.Create(); rgbHash = csp.ComputeHash(bt); } break; case SignAlgType.MD5: { - var csp = new MD5CryptoServiceProvider(); + var csp = MD5.Create(); rgbHash = csp.ComputeHash(bt); } break; @@ -331,19 +331,19 @@ public static bool Verify(string str, string sign, string publicKey, SignAlgType { case SignAlgType.SHA1: { - var csp = new SHA1CryptoServiceProvider(); + var csp = SHA1.Create(); rgbHash = csp.ComputeHash(bt); } break; case SignAlgType.SHA256: { - var csp = new SHA256CryptoServiceProvider(); + var csp = SHA256.Create(); rgbHash = csp.ComputeHash(bt); } break; case SignAlgType.MD5: { - var csp = new MD5CryptoServiceProvider(); + var csp = MD5.Create(); rgbHash = csp.ComputeHash(bt); } break; diff --git a/Blog.Core.Common/Seed/MyContext.cs b/Blog.Core.Common/Seed/MyContext.cs index 81d5bc8a..1251f825 100644 --- a/Blog.Core.Common/Seed/MyContext.cs +++ b/Blog.Core.Common/Seed/MyContext.cs @@ -186,7 +186,7 @@ public static ConnectionConfig GetConnectionConfig(bool blnIsAutoCloseConnection { //DataInfoCacheService = new HttpRuntimeCache() }, - IsShardSameThread = blnIsShardSameThread + //IsShardSameThread = blnIsShardSameThread }; return config; } diff --git a/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs index 1873b346..5d1a2d8b 100644 --- a/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs +++ b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs @@ -26,7 +26,7 @@ public async Task Handle(BlogQueryIntegrationEvent @event) ConsoleHelper.WriteSuccessLine($"----- Handling integration event: {@event.Id} at Blog.Core - ({@event})"); - //await _blogArticleServices.QueryById(@event.BlogId.ToString()); + await _blogArticleServices.QueryById(@event.BlogId.ToString()); } } diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index d4ec5ad5..8dd04c30 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -48,7 +48,7 @@ public static void AddSqlsugarSetup(this IServiceCollection services) DbType = (DbType)m.DbType, IsAutoCloseConnection = true, // Check out more information: https://github.com/anjoy8/Blog.Core/issues/122 - IsShardSameThread = false, + //IsShardSameThread = false, AopEvents = new AopEvents { OnLogExecuting = (sql, p) => diff --git a/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs b/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs index 74eb0dea..dffd0f61 100644 --- a/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs +++ b/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs @@ -36,6 +36,7 @@ public void CommitTran() } catch (Exception ex) { + Console.WriteLine(ex.Message); GetDbClient().RollbackTran(); } } From b304e73b7a93d7700e2ad0a2082602c8d6e4b264 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 10 Feb 2022 14:31:52 +0800 Subject: [PATCH 076/382] fix: change http client --- Blog.Core.Common/Helper/HttpHelper.cs | 97 ++++++------------- Blog.Core.Common/Helper/WeChatHelper.cs | 2 - .../Common_Test/HttpHelper_Should.cs | 26 +++++ 3 files changed, 57 insertions(+), 68 deletions(-) create mode 100644 Blog.Core.Tests/Common_Test/HttpHelper_Should.cs diff --git a/Blog.Core.Common/Helper/HttpHelper.cs b/Blog.Core.Common/Helper/HttpHelper.cs index 336235ca..4bd14883 100644 --- a/Blog.Core.Common/Helper/HttpHelper.cs +++ b/Blog.Core.Common/Helper/HttpHelper.cs @@ -1,90 +1,55 @@ -using System.IO; -using System.Net; -using System.Text; +using System; +using System.Net.Http; +using System.Net.Http.Headers; using System.Threading.Tasks; namespace Blog.Core.Common.Helper { + /// + /// httpclinet请求方式,请尽量使用IHttpClientFactory方式 + /// public class HttpHelper { - public static string Get(string serviceAddress) - { - HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); - request.Method = "GET"; - request.ContentType = "text/html;charset=UTF-8"; - HttpWebResponse response = (HttpWebResponse)request.GetResponse(); - Stream myResponseStream = response.GetResponseStream(); - StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8); - string retString = myStreamReader.ReadToEnd(); - myStreamReader.Close(); - myResponseStream.Close(); - return retString; - } public static async Task GetAsync(string serviceAddress) - { - HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); - request.Method = "GET"; - request.ContentType = "text/html;charset=UTF-8"; - HttpWebResponse response = (HttpWebResponse)request.GetResponse(); - Stream myResponseStream = response.GetResponseStream(); - StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8); - string retString = await myStreamReader.ReadToEndAsync(); - myStreamReader.Close(); - myResponseStream.Close(); - return retString; - } - - public static string Post(string serviceAddress, string strContent = null) { - HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); - request.Method = "POST"; - request.ContentType = "application/json"; - //判断有无POST内容 - if (!string.IsNullOrWhiteSpace(strContent)) + try { - using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream())) - { - dataStream.Write(strContent); - dataStream.Close(); - } + string result = string.Empty; + Uri getUrl = new Uri(serviceAddress); + using var httpClient = new HttpClient(); + httpClient.Timeout = new TimeSpan(0, 0, 60); + result = await httpClient.GetAsync(serviceAddress).Result.Content.ReadAsStringAsync(); + return result; } - HttpWebResponse response = (HttpWebResponse)request.GetResponse(); - string encoding = response.ContentEncoding; - if (string.IsNullOrWhiteSpace(encoding)) + catch (Exception e) { - encoding = "UTF-8"; //默认编码 + Console.WriteLine(e.Message); } - StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)); - string retString = reader.ReadToEnd(); - return retString; + return null; } - public static async Task PostAsync(string serviceAddress, string strContent = null) + public static async Task PostAsync(string serviceAddress, string requestJson = null) { - HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress); - request.Method = "POST"; - request.ContentType = "application/json"; - //判断有无POST内容 - if (!string.IsNullOrWhiteSpace(strContent)) + try { - using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream())) + string result = string.Empty; + Uri postUrl = new Uri(serviceAddress); + + using (HttpContent httpContent = new StringContent(requestJson)) { - dataStream.Write(strContent); - dataStream.Close(); + httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + using var httpClient = new HttpClient(); + httpClient.Timeout = new TimeSpan(0, 0, 60); + result = await httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync(); } + return result; } - HttpWebResponse response = (HttpWebResponse)request.GetResponse(); - string encoding = response.ContentEncoding; - if (string.IsNullOrWhiteSpace(encoding)) + catch (Exception e) { - encoding = "UTF-8"; //默认编码 + Console.WriteLine(e.Message); } - StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)); - string retString = await reader.ReadToEndAsync(); - return retString; - } - - + return null; + } } diff --git a/Blog.Core.Common/Helper/WeChatHelper.cs b/Blog.Core.Common/Helper/WeChatHelper.cs index 22cdaaf1..75ece17a 100644 --- a/Blog.Core.Common/Helper/WeChatHelper.cs +++ b/Blog.Core.Common/Helper/WeChatHelper.cs @@ -1,9 +1,7 @@ using Blog.Core.Model.ViewModels; -using System; using System.Collections.Generic; using System.IO; using System.Net.Http; -using System.Text; using System.Threading.Tasks; namespace Blog.Core.Common.Helper diff --git a/Blog.Core.Tests/Common_Test/HttpHelper_Should.cs b/Blog.Core.Tests/Common_Test/HttpHelper_Should.cs new file mode 100644 index 00000000..b7bfa83d --- /dev/null +++ b/Blog.Core.Tests/Common_Test/HttpHelper_Should.cs @@ -0,0 +1,26 @@ +using Blog.Core.Common.Helper; +using Xunit; + +namespace Blog.Core.Tests.Common_Test +{ + public class HttpHelper_Should + { + + [Fact] + public void Get_Async_Test() + { + var responseString = HttpHelper.GetAsync("http://apk.neters.club/api/Blog").Result; + + Assert.NotNull(responseString); + } + + [Fact] + public void Post_Async_Test() + { + var responseString = HttpHelper.PostAsync("http://apk.neters.club/api/Login/swgLogin", "{\"name\":\"admin\",\"pwd\":\"admin\"}").Result; + + Assert.NotNull(responseString); + } + + } +} From 2e04353548a5326e2fd2e21fe9b4cedf31042f8e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 11 Feb 2022 15:45:51 +0800 Subject: [PATCH 077/382] Update Startup.cs --- Blog.Core.Gateway/Startup.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Blog.Core.Gateway/Startup.cs b/Blog.Core.Gateway/Startup.cs index 32c18090..f9036a56 100644 --- a/Blog.Core.Gateway/Startup.cs +++ b/Blog.Core.Gateway/Startup.cs @@ -15,9 +15,7 @@ public class Startup /** *┌──────────────────────────────────────────────────────────────┐ *│ 描 述:模拟一个网关项目 - *│ 测 试:http://localhost:9000/gateway/user/MyClaims - *│ 测 试:http://localhost:9000/gateway/api/blog - *│ 测 试:http://localhost:9000/gateway/is4api/GetAchieveUsers + *│ 测 试:在网关swagger中查看具体的服务 *│ 作 者:anson zhang *└──────────────────────────────────────────────────────────────┘ */ From 5564c52f78fc6f1dca46ad17643557896f72ecd5 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 11 Feb 2022 19:27:46 +0800 Subject: [PATCH 078/382] fix: gateway add api result handler --- Blog.Core.Api/Startup.cs | 2 +- Blog.Core.Gateway/Blog.Core.Gateway.xml | 4 +- .../Extensions/CustomAuthenticationHandler.cs | 2 +- .../Extensions/CustomOcelotSetup.cs | 2 +- .../Extensions/CustomResultHandler.cs | 62 +++++++++++++++++++ Blog.Core.Gateway/ocelot.Development.json | 5 +- 6 files changed, 70 insertions(+), 7 deletions(-) create mode 100644 Blog.Core.Gateway/Extensions/CustomResultHandler.cs diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index b69b9068..4148297f 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -48,7 +48,7 @@ public void ConfigureServices(IServiceCollection services) services.AddUiFilesZipSetup(Env); Permissions.IsUseIds4 = Appsettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool(); - RoutePrefix.Name = Appsettings.app(new string[] { "Startup", "SvcName" }).ObjToString(); + RoutePrefix.Name = Appsettings.app(new string[] { "AppSettings", "SvcName" }).ObjToString(); // 确保从认证中心返回的ClaimType不被更改,不使用Map映射 JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.xml b/Blog.Core.Gateway/Blog.Core.Gateway.xml index 33e74e70..4b1295a2 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.xml +++ b/Blog.Core.Gateway/Blog.Core.Gateway.xml @@ -7,9 +7,7 @@ ┌──────────────────────────────────────────────────────────────┐ │ 描 述:模拟一个网关项目 - │ 测 试:http://localhost:9000/gateway/user/MyClaims - │ 测 试:http://localhost:9000/gateway/api/blog - │ 测 试:http://localhost:9000/gateway/is4api/GetAchieveUsers + │ 测 试:在网关swagger中查看具体的服务 │ 作 者:anson zhang └──────────────────────────────────────────────────────────────┘ diff --git a/Blog.Core.Gateway/Extensions/CustomAuthenticationHandler.cs b/Blog.Core.Gateway/Extensions/CustomAuthenticationHandler.cs index f5a06fa3..938840cc 100644 --- a/Blog.Core.Gateway/Extensions/CustomAuthenticationHandler.cs +++ b/Blog.Core.Gateway/Extensions/CustomAuthenticationHandler.cs @@ -8,7 +8,7 @@ using System.Text.Encodings.Web; using System.Threading.Tasks; -namespace Blog.Core.AdminMvc +namespace Blog.Core.Gateway.Extensions { public class CustomAuthenticationHandler : AuthenticationHandler { diff --git a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs index 831d3e6d..3cb4014d 100644 --- a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs +++ b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs @@ -17,7 +17,7 @@ public static void AddCustomOcelotSetup(this IServiceCollection services) var basePath = AppContext.BaseDirectory; - services.AddOcelot().AddConsul().AddPolly(); + services.AddOcelot().AddDelegatingHandler().AddConsul().AddPolly(); } public static async Task UseCustomOcelotMildd(this IApplicationBuilder app) diff --git a/Blog.Core.Gateway/Extensions/CustomResultHandler.cs b/Blog.Core.Gateway/Extensions/CustomResultHandler.cs new file mode 100644 index 00000000..3c4a314b --- /dev/null +++ b/Blog.Core.Gateway/Extensions/CustomResultHandler.cs @@ -0,0 +1,62 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; +using System; +using System.Net; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Blog.Core.Gateway.Extensions +{ + public class CustomResultHandler : DelegatingHandler + { + JsonSerializerSettings _camelSettings = new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }; + + protected async override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + var response = await base.SendAsync(request, cancellationToken); + var contentType = response.Content.Headers.ContentType?.MediaType ?? ""; + if (!contentType.Equals("application/json")) return response; + + dynamic result = null; + var resultStr = await response.Content.ReadAsStringAsync(); + try + { + Console.WriteLine(resultStr); + result = JsonConvert.DeserializeObject(resultStr); + } + catch (Exception) + { + return response; + } + + if (result != null && result.errorCode == 500) resultStr = result.message.ToString(); + + var exception = new Exception(resultStr); + + if (response.StatusCode == HttpStatusCode.InternalServerError || result.errorCode == (int)HttpStatusCode.InternalServerError) + { + var apiResult = new + { + Result = false, + Message = "服务器内部错误", + ErrorCode = (int)HttpStatusCode.InternalServerError, + Data = new + { + exception.Message, + exception.StackTrace + } + }; + response.Content = new StringContent(JsonConvert.SerializeObject(apiResult, _camelSettings), Encoding.UTF8, "application/json"); + } + else + { + + } + + + return response; + } + } +} diff --git a/Blog.Core.Gateway/ocelot.Development.json b/Blog.Core.Gateway/ocelot.Development.json index e69c68e8..6af5171b 100644 --- a/Blog.Core.Gateway/ocelot.Development.json +++ b/Blog.Core.Gateway/ocelot.Development.json @@ -27,7 +27,10 @@ }, "AuthenticationOptions": { "AuthenticationProviderKey": "GW" - } + }, + "DelegatingHandlers": [ + "CustomResultHandler" + ] }, // blog-svc-swagger { From 8722594141fb3c5b1ff59d1602126bca71e565d7 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 14 Feb 2022 10:44:35 +0800 Subject: [PATCH 079/382] Update swg-login.html --- Blog.Core.Api/wwwroot/swg-login.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/wwwroot/swg-login.html b/Blog.Core.Api/wwwroot/swg-login.html index ab31d3f4..fdd32fda 100644 --- a/Blog.Core.Api/wwwroot/swg-login.html +++ b/Blog.Core.Api/wwwroot/swg-login.html @@ -3,7 +3,7 @@ 默认首页 - + From 7b3732948f7cf41a6f8bf43efd5a748936c5a702 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 14 Feb 2022 16:27:56 +0800 Subject: [PATCH 080/382] Fixed #238 Bug --- CreateYourProject.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CreateYourProject.bat b/CreateYourProject.bat index 8f5b5ca7..1e1fe8dd 100644 --- a/CreateYourProject.bat +++ b/CreateYourProject.bat @@ -1,9 +1,9 @@ color 5 -echo "if u install template error,pls use:>>dotnet new -i .template.config\Blog.Core.Webapi.Template.2.5.2.nupkg" +echo "if u install template error,pls connect QQ:3143422472" color 3 -dotnet new -i Blog.Core.Webapi.Template::2.5.4 +dotnet new -i Blog.Core.Webapi.Template::2.6.1 set /p OP=Please set your project name(for example:BlogMicService): From 95f341037f32a725adc7a89a1d8b6455910dd840 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Mon, 14 Feb 2022 18:44:27 +0800 Subject: [PATCH 081/382] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 84c2ff38..6a58321f 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x -**已被多家公司所使用(80+🐱‍🚀):[点击查看列表](https://github.com/anjoy8/Blog.Core/issues/75)** +**已被多家公司所使用(80+🐱‍🚀):[点击查看列表](https://github.com/anjoy8/Blog.Core/issues/75)** 欢迎盖楼,留下公司真实名字的,可得定制化指导服务。 项目单体部署,并发在400~500,一切正常(不保证自己的各种错误写法)。 如果搭配负载,效果更好。 From 9161ec914ef7093d63e7468e7dc92a867c3d6ab1 Mon Sep 17 00:00:00 2001 From: boboyunz <31433611@qq.com> Date: Mon, 14 Feb 2022 23:35:25 +0800 Subject: [PATCH 082/382] boboyunz gateway --- Blog.Core.Common/Blog.Core.Common.csproj | 1 + Blog.Core.Common/Helper/Appsettings.cs | 20 +- Blog.Core.Common/Helper/DynamicLinqFactory.cs | 191 ++++++++++++- .../Blog.Core.Extensions.csproj | 2 +- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 1 + Blog.Core.Gateway/Blog.Core.Gateway.xml | 93 +++++++ .../Extensions/CustomOcelotSetup.cs | 8 +- .../Extensions/CustomSwaggerSetup.cs | 3 + .../Helper/HeaderDelegatingHandler.cs | 35 +++ Blog.Core.Gateway/Helper/JwtTokenAuth.cs | 259 ++++++++++++++++++ .../Helper/OcelotConfigurationTask.cs | 148 ++++++++++ Blog.Core.Gateway/Startup.cs | 13 +- Blog.Core.Gateway/appsettings.json | 76 ++++- Blog.Core.Gateway/index.html | 138 ++++++++++ Blog.Core.sln | 11 +- Ocelot.Provider.Nacos/Nacos.cs | 56 ++++ .../NacosClient/LoadBalance/ILBStrategy.cs | 26 ++ .../NacosClient/LoadBalance/LBStrategyName.cs | 20 ++ .../NacosClient/LoadBalance/LbKv.cs | 9 + .../LoadBalance/WeightRandomLBStrategy.cs | 74 +++++ .../LoadBalance/WeightRoundRobinLBStrategy.cs | 71 +++++ Ocelot.Provider.Nacos/NacosClient/UriTool.cs | 145 ++++++++++ .../NacosClient/V2/NacosAspNetOptions.cs | 96 +++++++ .../NacosClient/V2/RegSvcBgTask.cs | 127 +++++++++ .../V2/ServiceCollectionExtensions.cs | 59 ++++ .../NacosMiddlewareConfigurationProvider.cs | 34 +++ Ocelot.Provider.Nacos/NacosProviderFactory.cs | 23 ++ .../Ocelot.Provider.Nacos.csproj | 21 ++ .../OcelotBuilderExtensions.cs | 20 ++ 29 files changed, 1769 insertions(+), 11 deletions(-) create mode 100644 Blog.Core.Gateway/Helper/HeaderDelegatingHandler.cs create mode 100644 Blog.Core.Gateway/Helper/JwtTokenAuth.cs create mode 100644 Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs create mode 100644 Blog.Core.Gateway/index.html create mode 100644 Ocelot.Provider.Nacos/Nacos.cs create mode 100644 Ocelot.Provider.Nacos/NacosClient/LoadBalance/ILBStrategy.cs create mode 100644 Ocelot.Provider.Nacos/NacosClient/LoadBalance/LBStrategyName.cs create mode 100644 Ocelot.Provider.Nacos/NacosClient/LoadBalance/LbKv.cs create mode 100644 Ocelot.Provider.Nacos/NacosClient/LoadBalance/WeightRandomLBStrategy.cs create mode 100644 Ocelot.Provider.Nacos/NacosClient/LoadBalance/WeightRoundRobinLBStrategy.cs create mode 100644 Ocelot.Provider.Nacos/NacosClient/UriTool.cs create mode 100644 Ocelot.Provider.Nacos/NacosClient/V2/NacosAspNetOptions.cs create mode 100644 Ocelot.Provider.Nacos/NacosClient/V2/RegSvcBgTask.cs create mode 100644 Ocelot.Provider.Nacos/NacosClient/V2/ServiceCollectionExtensions.cs create mode 100644 Ocelot.Provider.Nacos/NacosMiddlewareConfigurationProvider.cs create mode 100644 Ocelot.Provider.Nacos/NacosProviderFactory.cs create mode 100644 Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj create mode 100644 Ocelot.Provider.Nacos/OcelotBuilderExtensions.cs diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 80f8739f..1fb4ba6c 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -36,6 +36,7 @@ + diff --git a/Blog.Core.Common/Helper/Appsettings.cs b/Blog.Core.Common/Helper/Appsettings.cs index 229b6ef3..0c970984 100644 --- a/Blog.Core.Common/Helper/Appsettings.cs +++ b/Blog.Core.Common/Helper/Appsettings.cs @@ -11,7 +11,7 @@ namespace Blog.Core.Common /// public class Appsettings { - static IConfiguration Configuration { get; set; } + public static IConfiguration Configuration { get; set; } static string contentPath { get; set; } public Appsettings(string contentPath) @@ -65,5 +65,23 @@ public static List app(params string[] sections) Configuration.Bind(string.Join(":", sections), list); return list; } + + + /// + /// 根据路径 configuration["App:Name"]; + /// + /// + /// + public static string GetValue(string sectionsPath) + { + try + { + return Configuration[sectionsPath]; + } + catch (Exception) { } + + return ""; + + } } } diff --git a/Blog.Core.Common/Helper/DynamicLinqFactory.cs b/Blog.Core.Common/Helper/DynamicLinqFactory.cs index 7673cc13..d2af794c 100644 --- a/Blog.Core.Common/Helper/DynamicLinqFactory.cs +++ b/Blog.Core.Common/Helper/DynamicLinqFactory.cs @@ -1,11 +1,15 @@ -using RestSharp.Extensions; +using Microsoft.AspNetCore.Http; +using RestSharp.Extensions; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Linq.Expressions; +using System.Net.Http; +using System.Net.Http.Headers; using System.Reflection; using System.Text; +using System.Threading.Tasks; namespace Blog.Core.Common.Helper { @@ -294,7 +298,192 @@ public enum OperationSymbol ///
    public static class ExpressionExtensions { + #region Nacos NamingService + private static readonly HttpClient httpclient = new HttpClient(); + private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl) + { + try + { + var instance = serv.SelectOneHealthyInstance(ServiceName, Group).GetAwaiter().GetResult(); + var host = $"{instance.Ip}:{instance.Port}"; + if (instance.Metadata.ContainsKey("endpoint")) host = instance.Metadata["endpoint"]; + + + var baseUrl = instance.Metadata.TryGetValue("secure", out _) + ? $"https://{host}" + : $"http://{host}"; + + if (string.IsNullOrWhiteSpace(baseUrl)) + { + return ""; + } + return $"{baseUrl}{apiurl}"; + } + catch (System.Exception ee) + { + + } + return ""; + } + public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters = null) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + if (Parameters!=null && Parameters.Any()) + { + StringBuilder sb = new StringBuilder(); + foreach (var pitem in Parameters) + { + sb.Append($"{pitem.Key}={pitem.Value}&"); + } + url = $"{url}?{sb.ToString().Trim('&')}"; + } + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.GetAsync(url); + return await result.Content.ReadAsStringAsync(); + + } + catch (System.Exception ee) + { + + } + return ""; + + } + + public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + + var content = (Parameters != null && Parameters.Any())? new FormUrlEncodedContent(Parameters) : null; + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.PostAsync(url, content); + return await result.Content.ReadAsStringAsync();//.GetAwaiter().GetResult(); + + } + catch (System.Exception ee) + { + + } + return ""; + } + public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, string jSonData) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.PostAsync(url, new StringContent(jSonData, Encoding.UTF8, "application/json")); + return await result.Content.ReadAsStringAsync();//.GetAwaiter().GetResult(); + + //httpClient.BaseAddress = new Uri("https://www.testapi.com"); + //httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + //httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); + + + } + catch (System.Exception ee) + { + + } + return ""; + } + + public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + + var content = new MultipartFormDataContent(); + foreach (var pitem in Parameters) + { + content.Add(new ByteArrayContent(pitem.Value), "files", pitem.Key); + } + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.PostAsync(url, content); + return await result.Content.ReadAsStringAsync();//.GetAwaiter().GetResult(); + + } + catch (System.Exception ee) + { + //InfluxdbHelper.GetInstance().AddLog("Cof_NaocePostFile.Err", ee); + } + return ""; + } + #endregion + + #region HttpContext + /// + /// 返回请求上下文 + /// + /// + /// + /// + /// + /// + public static async Task Cof_SendResponse(this HttpContext context, System.Net.HttpStatusCode code, string message, string ContentType = "text/html;charset=utf-8") + { + context.Response.StatusCode = (int)code; + context.Response.ContentType = ContentType; + await context.Response.WriteAsync(message); + } + #endregion + + #region ICaching + /// + /// 从缓存里取数据,如果不存在则执行查询方法, + /// + /// 类型 + /// ICaching + /// 键值 + /// 查询方法 + /// 有效期 单位分钟/param> + /// + public static T Cof_GetICaching(this ICaching cache, string key, Func GetFun, int timeSpanMin) where T : class + { + var obj = cache.Get(key); + obj = GetFun(); + if (obj == null) + { + obj = GetFun(); + cache.Set(key, obj, timeSpanMin); + } + return obj as T; + } + /// + /// 异步从缓存里取数据,如果不存在则执行查询方法 + /// + /// 类型 + /// ICaching + /// 键值 + /// 查询方法 + /// 有效期 单位分钟/param> + /// + public static async Task Cof_AsyncGetICaching(this ICaching cache, string key, Func> GetFun, int timeSpanMin) where T : class + { + var obj = cache.Get(key); + if (obj == null) + { + obj = await GetFun(); + cache.Set(key, obj, timeSpanMin); + } + return obj as T; + } + #endregion + #region 常用扩展方法 + public static bool Cof_CheckAvailable(this IEnumerable Tlist) + { + return Tlist != null && Tlist.Count() > 0; + } /// /// 调用内部方法 diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 4d04f49b..626abbf3 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -12,7 +12,7 @@ - + diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index a726d7cd..584a0b2b 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -11,6 +11,7 @@ + diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.xml b/Blog.Core.Gateway/Blog.Core.Gateway.xml index 4b1295a2..0082bb1d 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.xml +++ b/Blog.Core.Gateway/Blog.Core.Gateway.xml @@ -4,6 +4,57 @@ Blog.Core.Gateway + + + 中间件 + 原做为自定义授权中间件 + 先做检查 header token的使用 + + + + + 配置数据 + + + + + 验证方案提供对象 + + + + + 请求上下文 + + + + + + + + + + + + 网关授权 + + + + + + + 返回相应 + + + + + + + + 判断是否在白名单内,支持通配符 **** + + + + ┌──────────────────────────────────────────────────────────────┐ │ 描 述:模拟一个网关项目 @@ -11,5 +62,47 @@ │ 作 者:anson zhang └──────────────────────────────────────────────────────────────┘ + + + Nacos配置文件变更事件 + + + + + Nacos 配置文件监听事件 + + + + + 重载方法 + + + + + + + 执行 + + + + + + + 停止 + + + + + + + 配置监听事件 + + + + + 收到配置文件变更 + + + diff --git a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs index 3cb4014d..f0373ca1 100644 --- a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs +++ b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs @@ -1,8 +1,10 @@ -using Microsoft.AspNetCore.Builder; +using Blog.Core.Extensions; +using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Ocelot.DependencyInjection; using Ocelot.Middleware; using Ocelot.Provider.Consul; +using Ocelot.Provider.Nacos; using Ocelot.Provider.Polly; using System; using System.Threading.Tasks; @@ -17,7 +19,9 @@ public static void AddCustomOcelotSetup(this IServiceCollection services) var basePath = AppContext.BaseDirectory; - services.AddOcelot().AddDelegatingHandler().AddConsul().AddPolly(); + services.AddAuthentication_JWTSetup(); + services.AddOcelot().AddDelegatingHandler().AddNacosDiscovery().AddPolly(); + //.AddConsul().AddPolly(); } public static async Task UseCustomOcelotMildd(this IApplicationBuilder app) diff --git a/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs b/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs index 2269e948..f0fc4abd 100644 --- a/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs +++ b/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs @@ -16,6 +16,8 @@ public static void AddCustomSwaggerSetup(this IServiceCollection services) var basePath = AppContext.BaseDirectory; + services.AddMvc(option => option.EnableEndpointRouting = false); + services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo @@ -55,6 +57,7 @@ public static void UseCustomSwaggerMildd(this IApplicationBuilder app) apis.ForEach(m => { options.SwaggerEndpoint($"/swagger/apiswg/{m}/swagger.json", m); + //options.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("Blog.Core.ApiGateway.index.html"); }); options.RoutePrefix = ""; diff --git a/Blog.Core.Gateway/Helper/HeaderDelegatingHandler.cs b/Blog.Core.Gateway/Helper/HeaderDelegatingHandler.cs new file mode 100644 index 00000000..b9293007 --- /dev/null +++ b/Blog.Core.Gateway/Helper/HeaderDelegatingHandler.cs @@ -0,0 +1,35 @@ +using Microsoft.AspNetCore.Http; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace ApiGateway.Helper +{ + public class HeaderDelegatingHandler : DelegatingHandler + { + private readonly IHttpContextAccessor _httpContextAccessor; + + public HeaderDelegatingHandler(IHttpContextAccessor httpContextAccessor) + { + _httpContextAccessor = httpContextAccessor; + } + + protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + IEnumerable headerValues; + if (request.Headers.TryGetValues("AccessToken", out headerValues)) + { + string accessToken = headerValues.First(); + + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); + request.Headers.Remove("AccessToken"); + } + return await base.SendAsync(request, cancellationToken); + } + } +} diff --git a/Blog.Core.Gateway/Helper/JwtTokenAuth.cs b/Blog.Core.Gateway/Helper/JwtTokenAuth.cs new file mode 100644 index 00000000..7c7d5469 --- /dev/null +++ b/Blog.Core.Gateway/Helper/JwtTokenAuth.cs @@ -0,0 +1,259 @@ +using Microsoft.AspNetCore.Http; +using System; +using System.Linq; +using System.Collections; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authentication; +using Microsoft.Extensions.Configuration; +using Blog.Core.Common; +using Blog.Core.Common.Helper; +using Blog.Core.AuthHelper; +using System.Text.RegularExpressions; +using System.Net; +using Ocelot.Configuration.Repository; +using Microsoft.Extensions.DependencyInjection; +using Ocelot.Configuration.Creator; +using Ocelot.Configuration.File; +using Nacos.V2; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json.Serialization; +using Newtonsoft.Json.Converters; +namespace Blog.Core.AuthHelper +{ + /// + /// 中间件 + /// 原做为自定义授权中间件 + /// 先做检查 header token的使用 + /// + public class JwtTokenAuth + { + + /// + /// 配置数据 + /// + private readonly Appsettings Appsettings; + private readonly ICaching _cache; + + private readonly INacosNamingService NacosServClient; + + + /// + /// 验证方案提供对象 + /// + public IAuthenticationSchemeProvider Schemes { get; set; } + + /// + /// 请求上下文 + /// + private readonly RequestDelegate _next; + /// + /// + /// + /// + /// + + + + + public JwtTokenAuth(INacosNamingService serv, RequestDelegate next, IAuthenticationSchemeProvider schemes, Appsettings appset,ICaching cache) + { + NacosServClient = serv; + _cache = cache; + _next = next; + Appsettings = appset; + + Schemes = schemes; + + + List Permissions = _cache.Cof_AsyncGetICaching>("Permissions", GetPermitionData, 10).GetAwaiter().GetResult(); + + } + + + private void PreProceed(HttpContext next) + { + //Console.WriteLine($"{DateTime.Now} middleware invoke preproceed"); + //... + } + private void PostProceed(HttpContext next) + { + //Console.WriteLine($"{DateTime.Now} middleware invoke postproceed"); + //.... + } + + + + + /// + /// 网关授权 + /// + /// + /// + public async Task Invoke(HttpContext httpContext) + { + var questUrl = httpContext?.Request.Path.Value.ToLower(); + if (string.IsNullOrEmpty(questUrl)) return; + //白名单验证 + if (CheckWhiteList(questUrl)) + { + await _next.Invoke(httpContext); + return; + } + //黑名单验证 + if(CheckBlackList(questUrl)) + { + return; + } + + List Permissions= await _cache.Cof_AsyncGetICaching>("Permissions", GetPermitionData, 10); + + httpContext.Features.Set(new AuthenticationFeature + { + OriginalPath = httpContext.Request.Path, + OriginalPathBase = httpContext.Request.PathBase + }); + + //判断请求是否拥有凭据,即有没有登录 + var defaultAuthenticate = await Schemes.GetDefaultAuthenticateSchemeAsync(); + if (defaultAuthenticate != null) + { + var Authresult = await httpContext.AuthenticateAsync(defaultAuthenticate.Name); + if (Authresult?.Principal != null) + { + httpContext.User = Authresult.Principal; + // 获取当前用户的角色信息 + var currentUserRoles = (from item in httpContext.User.Claims + where item.Type == "CofRole" + select item.Value).ToList(); + var isMatchRole = false; + var permisssionRoles = Permissions.Where(w => currentUserRoles.Contains(w.Role)); + foreach (var item in permisssionRoles) + { + try + { + if (Regex.IsMatch(questUrl, item.Url, RegexOptions.IgnoreCase)) + { + isMatchRole = true; + break; + } + } + catch (Exception) + { + // ignored + } + } + + //验证权限 + if (currentUserRoles.Count <= 0 || !isMatchRole) + { + await httpContext.Cof_SendResponse(HttpStatusCode.ServiceUnavailable, "未授权此资源"); + return ; + } + } + else + { + await httpContext.Cof_SendResponse(HttpStatusCode.Unauthorized, "请重新登录"); + return ; + } + + } + else + { + await httpContext.Cof_SendResponse(HttpStatusCode.Unauthorized, "系统鉴权出错"); + return ; + } + await _next.Invoke(httpContext); + } + + private async Task> GetPermitionData() + { + try + { + string PermissionServName = Appsettings.GetValue("ApiGateWay:PermissionServName"); + string PermissionServGroup = Appsettings.GetValue("ApiGateWay:PermissionServGroup"); + string PermissionServUrl = Appsettings.GetValue("ApiGateWay:PermissionServUrl"); + + string requestdata = await NacosServClient.Cof_NaoceGet(PermissionServName, PermissionServGroup, PermissionServUrl); + if (string.IsNullOrEmpty(requestdata)) return null; + JToken perJt = JToken.Parse(requestdata); + if(perJt["response"]!=null) return perJt["response"].ToObject>(); + return perJt["data"].ToObject>(); + } + catch (Exception ee) + { + + } + + return null; + } + + /// + /// 返回相应 + /// + /// + /// + /// + private async Task SendResponse(HttpContext context, string message, System.Net.HttpStatusCode code) + { + context.Response.StatusCode = (int)code; + context.Response.ContentType = "text/plain"; + await context.Response.WriteAsync(message); + } + + /// + /// 判断是否在白名单内,支持通配符 **** + /// + /// + /// + public bool CheckWhiteList(string url) + { + List WhiteList = _cache.Cof_GetICaching>("WhiteList", () => Appsettings.app("WhiteList"), 10); + + if (!WhiteList.Cof_CheckAvailable()) return false; + foreach (var Urlitem in WhiteList) + { + if (Urlitem.url.Equals(url, StringComparison.OrdinalIgnoreCase)) return true; + + if (Urlitem.url.IndexOf("****") > 0) + { + string UrlitemP = Urlitem.url.Replace("****", ""); + if (Regex.IsMatch(url, UrlitemP, RegexOptions.IgnoreCase)) return true; + if (url.Length >= UrlitemP.Length && UrlitemP.ToLower() == url.Substring(0, UrlitemP.Length).ToLower()) return true; + + } + } + return false; + + } + + public bool CheckBlackList(string url) + { + List BlackList = _cache.Cof_GetICaching>("BlackList", () => Appsettings.app("BlackList"), 10); + + if (!BlackList.Cof_CheckAvailable()) return false; + foreach (var Urlitem in BlackList) + { + if (Urlitem.url.Equals(url, StringComparison.OrdinalIgnoreCase)) return true; + + if (Urlitem.url.IndexOf("****") > 0) + { + string UrlitemP = Urlitem.url.Replace("****", ""); + if (Regex.IsMatch(url, UrlitemP, RegexOptions.IgnoreCase)) return true; + if (url.Length >= UrlitemP.Length && UrlitemP.ToLower() == url.Substring(0, UrlitemP.Length).ToLower()) return true; + + } + } + return false; + + } + + } + + public class urlobj + { + public string url { get; set; } + } +} + diff --git a/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs b/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs new file mode 100644 index 00000000..5fc14d38 --- /dev/null +++ b/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs @@ -0,0 +1,148 @@ + +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Nacos.V2; +using System; +using System.Threading; +using System.Threading.Tasks; +using Blog.Core.Common.Helper; +using Ocelot.Configuration.Repository; +using Ocelot.Configuration.Creator; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json.Serialization; +using Newtonsoft.Json.Converters; +using Ocelot.Configuration.File; +using Blog.Core.Common; + +namespace ApiGateway.Helper +{ + /// + /// Nacos配置文件变更事件 + /// + public class OcelotConfigurationTask : BackgroundService + { + private readonly INacosConfigService _configClient; + private readonly INacosNamingService _servClient; + /// + /// Nacos 配置文件监听事件 + /// + private OcelotConfigListener nacosConfigListener = new OcelotConfigListener(); + private AppConfigListener AppConfigListener = new AppConfigListener(); + private string OcelotConfig = ""; + private string OcelotConfigGroup = ""; + private string AppConfig = ""; + private string AppConfigGroup = ""; + + + + /// + /// 重载方法 + /// + /// + /// + public OcelotConfigurationTask(INacosNamingService serv, INacosConfigService configClient, IServiceProvider serviceProvider, IInternalConfigurationRepository _internalConfigurationRepo, IInternalConfigurationCreator _internalConfigurationCreator) + { + _configClient = configClient; + _servClient = serv; + nacosConfigListener.internalConfigurationRepo = _internalConfigurationRepo; + nacosConfigListener.internalConfigurationCreator = _internalConfigurationCreator; + OcelotConfig = Appsettings.GetValue("ApiGateWay:OcelotConfig"); + OcelotConfigGroup = Appsettings.GetValue("ApiGateWay:OcelotConfigGroup"); + AppConfig = Appsettings.GetValue("ApiGateWay:AppConfig"); + AppConfigGroup = Appsettings.GetValue("ApiGateWay:AppConfigGroup"); + + + + + string OcelotCfg = configClient.GetConfig(OcelotConfig, OcelotConfigGroup, 10000).GetAwaiter().GetResult(); + nacosConfigListener.ReceiveConfigInfo(OcelotCfg); + string AppCfg= configClient.GetConfig(AppConfig, AppConfigGroup, 10000).GetAwaiter().GetResult(); + AppConfigListener.ReceiveConfigInfo(AppCfg); + //string sss = serv.Cof_NaoceGet("fld-cloud-datax", "DEFAULT_GROUP", "/api/base/deviceList?limit=10&page=1").GetAwaiter().GetResult(); + } + + + + /// + /// 执行 + /// + /// + /// + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + try + { + // Add listener OcelotConfig.json" + await _configClient.AddListener(OcelotConfig, OcelotConfigGroup, nacosConfigListener); + await _configClient.AddListener(AppConfig, AppConfigGroup, AppConfigListener); + } + catch (Exception) + { + } + } + + /// + /// 停止 + /// + /// + /// + public override async Task StopAsync(CancellationToken cancellationToken) + { + // Remove listener + await _configClient.RemoveListener(OcelotConfig, OcelotConfigGroup, nacosConfigListener); + await _configClient.RemoveListener(AppConfig, AppConfigGroup, AppConfigListener); + await base.StopAsync(cancellationToken); + } + } + + /// + /// 配置监听事件 + /// + public class OcelotConfigListener : IListener + { + public IInternalConfigurationRepository internalConfigurationRepo { get; set; } + public IInternalConfigurationCreator internalConfigurationCreator { get; set; } + /// + /// 收到配置文件变更 + /// + /// + public void ReceiveConfigInfo(string configInfo) + { + Task.Run(async () => + { + FileConfiguration filecfg = JToken.Parse(configInfo).ToObject(); + var internalConfiguration = await internalConfigurationCreator.Create(filecfg); + if (!internalConfiguration.IsError) + { + + internalConfigurationRepo.AddOrReplace(internalConfiguration.Data); + } + }); + + + } + } + + public class AppConfigListener : IListener + { + public void ReceiveConfigInfo(string configInfo) + { + var _configurationBuilder = new ConfigurationBuilder(); + _configurationBuilder.Sources.Clear(); + var buffer = System.Text.Encoding.Default.GetBytes(configInfo); + System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer); + _configurationBuilder.AddJsonStream(ms); + var configuration = _configurationBuilder.Build(); + ms.Dispose(); + + + + // 读取配置 将nacos配置中心读取到的配置 替换掉.net core 内存中的 configuration + // 当前监听到配置配置 应该重新断开 重连 刷新等一些中间件操作 + // 比如 mq redis 等其他跟配置相关的中间件 + JsonConfigSettings.Configuration = configuration; + Appsettings.Configuration = configuration; + } + } +} diff --git a/Blog.Core.Gateway/Startup.cs b/Blog.Core.Gateway/Startup.cs index f9036a56..b4ef01b9 100644 --- a/Blog.Core.Gateway/Startup.cs +++ b/Blog.Core.Gateway/Startup.cs @@ -1,12 +1,15 @@ -using Blog.Core.Common; +using Blog.Core.AuthHelper; +using Blog.Core.Common; using Blog.Core.Extensions; using Blog.Core.Gateway.Extensions; +using Blog.Core.Middlewares; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Nacos.V2.DependencyInjection; namespace Blog.Core.AdminMvc { @@ -38,6 +41,11 @@ public void ConfigureServices(IServiceCollection services) .AddScheme(Permissions.GWName, _ => { }); + services.AddNacosV2Config(Configuration, null, "nacosConfig"); + services.AddNacosV2Naming(Configuration, null, "nacos"); + services.AddHostedService(); + + services.AddCustomSwaggerSetup(); services.AddControllers(); @@ -70,7 +78,8 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { endpoints.MapControllers(); }); - + app.UseMiddleware(); + app.UseCustomOcelotMildd().Wait(); } } diff --git a/Blog.Core.Gateway/appsettings.json b/Blog.Core.Gateway/appsettings.json index 59f40d82..33b99ee8 100644 --- a/Blog.Core.Gateway/appsettings.json +++ b/Blog.Core.Gateway/appsettings.json @@ -17,15 +17,87 @@ "Startup": { "Cors": { "PolicyName": "CorsIpAccess", - "EnableAllIPs": false, + "EnableAllIPs": false, "IPs": "http://127.0.0.1:2364,http://localhost:2364" } }, "Audience": { - "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", + "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", "Issuer": "Blog.Core", "Audience": "wr" + }, + "WhiteList": [ + { "url": "/" }, + { "url": "/illagal/****" }, + { "url": "/api3/****" }, + { "url": "/baseapi/swagger.json" } + ], + "BlackList": [ + { "url": "/favicon.ico" } + ], + "ApiGateWay": { + "OcelotConfig": "OcelotConfig.json", + "OcelotConfigGroup": "DEFAULT_GROUP", + "AppConfig": "****.****.Gateway.json", + "AppConfigGroup": "DEFAULT_GROUP", + "PermissionServName": "****.****.Api", + "PermissionServGroup": "DEFAULT_GROUP", + "PermissionServUrl": "/api/Permission/GetPermissionlist" + }, + "Influxdb": { + "Endpoint": "http://*******:9328", + "uid": "root", + "pwd": "*****", + "dbname": "mndata" + }, + "nacos": { + "ServerAddresses": [ "http://******:8848/" ], + "ServiceName": "*****.****.Gateway", + "DefaultTimeOut": 15000, + "Namespace": "****", + "ListenInterval": 1000, + "GroupName": "DEFAULT_GROUP", + "ClusterName": "DEFAULT", + "Ip": "", + "PreferredNetworks": "", + "Port": 8090, + "Weight": 100, + "RegisterEnabled": true, + "InstanceEnabled": true, + "Ephemeral": true, + "Secure": false, + "AccessKey": "", + "SecretKey": "", + "UserName": "****", + "Password": "*****", + "NamingUseRpc": true, + "NamingLoadCacheAtStart": "", + "LBStrategy": "WeightRandom", + "Metadata": { + "aa": "bb", + "cc": "dd", + "endpoint33": "******:8090" + } + }, + "nacosConfig": { + "ServiceName": "*****.*****.Gateway", + "Optional": false, + "DataId": "options1", + "Tenant": "******", + "Group": "DEFAULT_GROUP", + "Namespace": "*****", + "ServerAddresses": [ "http://******:8848/" ], + "UserName": "****", + "Password": "*****", + "AccessKey": "", + "SecretKey": "", + "EndPoint": "", + "ConfigUseRpc": true, + "ConfigFilterAssemblies": [ "apigateway" ], + "ConfigFilterExtInfo": "{\"JsonPaths\":[\"ConnectionStrings.Default\"],\"Other\":\"xxxxxx\"}" } + + } diff --git a/Blog.Core.Gateway/index.html b/Blog.Core.Gateway/index.html new file mode 100644 index 00000000..eec5fe65 --- /dev/null +++ b/Blog.Core.Gateway/index.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + + %(DocumentTitle) + + + + + + %(HeadContent) + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + diff --git a/Blog.Core.sln b/Blog.Core.sln index e587ddae..1d40c8a8 100644 --- a/Blog.Core.sln +++ b/Blog.Core.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30114.105 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32014.148 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.Api", "Blog.Core.Api\Blog.Core.Api.csproj", "{6F47A41A-085E-4422-BB73-5A2CBAA07D9F}" EndProject @@ -57,6 +57,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.Gateway", "Blog.C EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.Serilog.Es", "Blog.Core.Serilog.Es\Blog.Core.Serilog.Es.csproj", "{52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ocelot.Provider.Nacos", "Ocelot.Provider.Nacos\Ocelot.Provider.Nacos.csproj", "{6463FB13-5F01-4A1D-8B62-A454FB3812EB}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -119,6 +121,10 @@ Global {52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}.Debug|Any CPU.Build.0 = Debug|Any CPU {52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}.Release|Any CPU.ActiveCfg = Release|Any CPU {52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}.Release|Any CPU.Build.0 = Release|Any CPU + {6463FB13-5F01-4A1D-8B62-A454FB3812EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6463FB13-5F01-4A1D-8B62-A454FB3812EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6463FB13-5F01-4A1D-8B62-A454FB3812EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6463FB13-5F01-4A1D-8B62-A454FB3812EB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -129,6 +135,7 @@ Global {17C9E9DC-E926-4C90-9025-3DAC55D7EDA3} = {A592C96A-4E44-4F2A-AC21-30683AF6C493} {0B3265A9-6716-4D28-8648-C64D5E692ACA} = {047A9723-9AAC-42E3-8C69-B3835F15FF96} {A11C0DF2-1E13-4EED-BA49-44A57136B189} = {E2BD7D4D-9ED5-41CD-8401-C3FB26F203BB} + {6463FB13-5F01-4A1D-8B62-A454FB3812EB} = {E2BD7D4D-9ED5-41CD-8401-C3FB26F203BB} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {AB40D0C5-E3EA-4A9B-86C2-38F0BB33FC04} diff --git a/Ocelot.Provider.Nacos/Nacos.cs b/Ocelot.Provider.Nacos/Nacos.cs new file mode 100644 index 00000000..d8357920 --- /dev/null +++ b/Ocelot.Provider.Nacos/Nacos.cs @@ -0,0 +1,56 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using System.Threading.Tasks; +using Ocelot.ServiceDiscovery.Providers; +using Ocelot.Values; +using Nacos.V2; +using Microsoft.Extensions.Options; +using Ocelot.Provider.Nacos.NacosClient.V2; +using NacosConstants = Nacos.V2.Common.Constants; + +namespace Ocelot.Provider.Nacos +{ + public class Nacos : IServiceDiscoveryProvider + { + private readonly INacosNamingService _client; + private readonly string _serviceName; + private readonly string _groupName; + private readonly List _clusters; + + public Nacos(string serviceName, INacosNamingService client, IOptions options) + { + _serviceName = serviceName; + _client = client; + _groupName = string.IsNullOrWhiteSpace(options.Value.GroupName) ? + NacosConstants.DEFAULT_GROUP : options.Value.GroupName; + _clusters = (string.IsNullOrWhiteSpace(options.Value.ClusterName) ? NacosConstants.DEFAULT_CLUSTER_NAME : options.Value.ClusterName).Split(",").ToList(); + } + + public async Task> Get() + { + var services = new List(); + + var instances = await _client.GetAllInstances(_serviceName, _groupName, _clusters); + + if (instances != null && instances.Any()) + { + foreach (var Sitem in instances) + { + string sip = Sitem.Ip; + int sport = Sitem.Port; + if (Sitem.Metadata.ContainsKey("endpoint")) + { + string[] ipport = Sitem.Metadata["endpoint"].Split(':'); + sip = ipport[0]; + sport =int.Parse( ipport[1]); + } + services.Add(new Service(Sitem.InstanceId, new ServiceHostAndPort(sip, sport), "", "", new List())); + } + // services.AddRange(instances.Select(i => new Service(i.InstanceId, new ServiceHostAndPort(i.Ip, i.Port), "", "", new List()))); + } + + return await Task.FromResult(services); + } + } +} diff --git a/Ocelot.Provider.Nacos/NacosClient/LoadBalance/ILBStrategy.cs b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/ILBStrategy.cs new file mode 100644 index 00000000..5bae9078 --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/ILBStrategy.cs @@ -0,0 +1,26 @@ +using Nacos; +using Nacos.V2.Naming.Dtos; +using System.Collections.Generic; + +namespace Ocelot.Provider.Nacos.NacosClient +{ + public interface ILBStrategy + { + /// + /// Strategy Name + /// + LBStrategyName Name { get; } + + /// + /// Get host + /// + /// host list + /// The Host + Instance GetHost(List list); + } + + + + + +} diff --git a/Ocelot.Provider.Nacos/NacosClient/LoadBalance/LBStrategyName.cs b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/LBStrategyName.cs new file mode 100644 index 00000000..a01a0136 --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/LBStrategyName.cs @@ -0,0 +1,20 @@ +namespace Ocelot.Provider.Nacos.NacosClient +{ + public enum LBStrategyName + { + /// + /// Weight Round Robin + /// + WeightRoundRobin, + + /// + /// Weight Random + /// + WeightRandom, + + /// + /// Ext1 + /// + Ext1 + } +} diff --git a/Ocelot.Provider.Nacos/NacosClient/LoadBalance/LbKv.cs b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/LbKv.cs new file mode 100644 index 00000000..da3969e4 --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/LbKv.cs @@ -0,0 +1,9 @@ +namespace Ocelot.Provider.Nacos.NacosClient +{ + public class LbKv + { + public string InstanceId { get; set; } + + public double Weight { get; set; } + } +} diff --git a/Ocelot.Provider.Nacos/NacosClient/LoadBalance/WeightRandomLBStrategy.cs b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/WeightRandomLBStrategy.cs new file mode 100644 index 00000000..e6c8fa1b --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/WeightRandomLBStrategy.cs @@ -0,0 +1,74 @@ +using Nacos; +using Nacos.V2.Naming.Dtos; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Ocelot.Provider.Nacos.NacosClient +{ + public class WeightRandomLBStrategy : ILBStrategy + { + public LBStrategyName Name => LBStrategyName.WeightRandom; + + public Instance GetHost(List list) + { + var dict = BuildScore(list); + + Instance instance = null; + + var rd = new Random().NextDouble(); + + foreach (var item in dict) + { + if (item.Value >= rd) + { + instance = list.FirstOrDefault(x => x.InstanceId.Equals(item.Key)); + + if (instance == null) + { + var arr = item.Key.Split("#"); + var ip = arr[0]; + int.TryParse(arr[1], out var port); + var cluster = arr[2]; + + instance = list.First(x => x.Ip.Equals(ip) && x.Port == port && x.ClusterName.Equals(cluster)); + } + + break; + } + } + + return instance; + } + + private Dictionary BuildScore(List list) + { + var dict = new Dictionary(); + + // aliyun sae, the instanceid returns empty string + // when the instanceid is empty, create a new one, but the group was missed. + list.ForEach(x => { x.InstanceId = string.IsNullOrWhiteSpace(x.InstanceId) ? $"{x.Ip}#{x.Port}#{x.ClusterName}#{x.ServiceName}" : x.InstanceId; }); + + var tmp = list.Select(x => new LbKv + { + InstanceId = x.InstanceId, + Weight = x.Weight + }).GroupBy(x => x.InstanceId).Select(x => new LbKv + { + InstanceId = x.Key, + Weight = x.Max(y => y.Weight) + }).ToList(); + + var total = tmp.Sum(x => x.Weight); + var cur = 0d; + + foreach (var item in tmp) + { + cur += item.Weight; + dict.TryAdd(item.InstanceId, cur / total); + } + + return dict; + } + } +} diff --git a/Ocelot.Provider.Nacos/NacosClient/LoadBalance/WeightRoundRobinLBStrategy.cs b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/WeightRoundRobinLBStrategy.cs new file mode 100644 index 00000000..c6efe7c9 --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosClient/LoadBalance/WeightRoundRobinLBStrategy.cs @@ -0,0 +1,71 @@ +using Nacos; +using System.Collections.Generic; +using System.Linq; +using Nacos.V2.Naming.Dtos; +namespace Ocelot.Provider.Nacos.NacosClient +{ + public class WeightRoundRobinLBStrategy : ILBStrategy + { + public LBStrategyName Name => LBStrategyName.WeightRoundRobin; + + private int _pos; + + private static object obj = new object(); + + public Instance GetHost(List list) + { + // aliyun sae, the instanceid returns empty string + // when the instanceid is empty, create a new one, but the group was missed. + list.ForEach(x => { x.InstanceId = string.IsNullOrWhiteSpace(x.InstanceId) ? $"{x.Ip}#{x.Port}#{x.ClusterName}#{x.ServiceName}" : x.InstanceId; }); + + var tmp = list.Select(x => new LbKv + { + InstanceId = x.InstanceId, + Weight = x.Weight + }).GroupBy(x => x.InstanceId).Select(x => new LbKv + { + InstanceId = x.Key, + Weight = x.Max(y => y.Weight) + }).ToList(); + + // + var dic = tmp.ToDictionary(k => k.InstanceId, v => (int)v.Weight); + + var srcInstanceIdList = dic.Keys.ToList(); + var tagInstanceIdList = new List(); + + foreach (var item in srcInstanceIdList) + { + dic.TryGetValue(item, out var weight); + + for (int i = 0; i < weight; i++) + tagInstanceIdList.Add(item); + } + + var instanceId = string.Empty; + + lock (obj) + { + if (_pos >= tagInstanceIdList.Count) + _pos = 0; + + instanceId = tagInstanceIdList[_pos]; + _pos++; + } + + var instance = list.FirstOrDefault(x => x.InstanceId.Equals(instanceId)); + + if (instance == null) + { + var arr = instanceId.Split("#"); + var ip = arr[0]; + int.TryParse(arr[1], out var port); + var cluster = arr[2]; + + instance = list.First(x => x.Ip.Equals(ip) && x.Port == port && x.ClusterName.Equals(cluster)); + } + + return instance; + } + } +} diff --git a/Ocelot.Provider.Nacos/NacosClient/UriTool.cs b/Ocelot.Provider.Nacos/NacosClient/UriTool.cs new file mode 100644 index 00000000..dbb7cf8e --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosClient/UriTool.cs @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.AspNetCore.Hosting.Server.Features; +using Microsoft.AspNetCore.Http.Features; +using System.Net; +using System.Net.NetworkInformation; +using System.Net.Sockets; +namespace Ocelot.Provider.Nacos.NacosClient +{ + internal static class UriTool + { + public static IEnumerable GetUri(IFeatureCollection features, string ip, int port, string preferredNetworks) + { + var splitChars = new char[] { ',', ';' }; + var appPort = port <= 0 ? 80 : port; + + // 1. config + if (!string.IsNullOrWhiteSpace(ip)) + { + // it seems that nacos don't return the scheme + // so here use http only. + return new List { new Uri($"http://{ip}:{appPort}") }; + } + + // 1.1. Ip is null && Port has value + if (string.IsNullOrWhiteSpace(ip) && appPort != 80) + { + return new List { new Uri($"http://{GetCurrentIp(preferredNetworks)}:{appPort}") }; + } + + var address = string.Empty; + + // 2. IServerAddressesFeature + if (features != null) + { + var addresses = features.Get(); + var addressCollection = addresses?.Addresses; + + if (addressCollection != null && addressCollection.Any()) + { + var uris = new List(); + foreach (var item in addressCollection) + { + var url = ReplaceAddress(item, preferredNetworks); + uris.Add(new Uri(url)); + } + + return uris; + } + } + + // 3. ASPNETCORE_URLS + address = Environment.GetEnvironmentVariable("ASPNETCORE_URLS"); + if (!string.IsNullOrWhiteSpace(address)) + { + var url = ReplaceAddress(address, preferredNetworks); + + return url.Split(splitChars).Select(x => new Uri(x)); + } + + // 4. --urls + var cmdArgs = Environment.GetCommandLineArgs(); + if (cmdArgs != null && cmdArgs.Any()) + { + var cmd = cmdArgs.FirstOrDefault(x => x.StartsWith("--urls", StringComparison.OrdinalIgnoreCase)); + + if (!string.IsNullOrWhiteSpace(cmd)) + { + address = cmd.Split('=')[1]; + + var url = ReplaceAddress(address, preferredNetworks); + + return url.Split(splitChars).Select(x => new Uri(x)); + } + } + + // 5. current ip address third + address = $"http://{GetCurrentIp(preferredNetworks)}:{appPort}"; + + return new List { new Uri(address) }; + } + + private static string ReplaceAddress(string address, string preferredNetworks) + { + var ip = GetCurrentIp(preferredNetworks); + + if (address.Contains("*")) + { + address = address.Replace("*", ip); + } + else if (address.Contains("+")) + { + address = address.Replace("+", ip); + } + else if (address.Contains("localhost", StringComparison.OrdinalIgnoreCase)) + { + address = address.Replace("localhost", ip, StringComparison.OrdinalIgnoreCase); + } + else if (address.Contains("0.0.0.0", StringComparison.OrdinalIgnoreCase)) + { + address = address.Replace("0.0.0.0", ip, StringComparison.OrdinalIgnoreCase); + } + + return address; + } + + private static string GetCurrentIp(string preferredNetworks) + { + var instanceIp = "127.0.0.1"; + + try + { + // 获取可用网卡 + var nics = NetworkInterface.GetAllNetworkInterfaces()?.Where(network => network.OperationalStatus == OperationalStatus.Up); + + // 获取所有可用网卡IP信息 + var ipCollection = nics?.Select(x => x.GetIPProperties())?.SelectMany(x => x.UnicastAddresses); + + foreach (var ipadd in ipCollection) + { + if (!IPAddress.IsLoopback(ipadd.Address) && ipadd.Address.AddressFamily == AddressFamily.InterNetwork) + { + if (string.IsNullOrEmpty(preferredNetworks)) + { + instanceIp = ipadd.Address.ToString(); + break; + } + + if (!ipadd.Address.ToString().StartsWith(preferredNetworks)) continue; + instanceIp = ipadd.Address.ToString(); + break; + } + } + } + catch + { + // ignored + } + + return instanceIp; + } + } +} + diff --git a/Ocelot.Provider.Nacos/NacosClient/V2/NacosAspNetOptions.cs b/Ocelot.Provider.Nacos/NacosClient/V2/NacosAspNetOptions.cs new file mode 100644 index 00000000..12903962 --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosClient/V2/NacosAspNetOptions.cs @@ -0,0 +1,96 @@ +using Nacos.V2; +using Nacos.V2.Common; +using System.Collections.Generic; + +namespace Ocelot.Provider.Nacos.NacosClient.V2 +{ + public class NacosAspNetOptions : NacosSdkOptions + { + /// + /// the name of the service. + /// + public string ServiceName { get; set; } + + /// + /// the name of the group. + /// + public string GroupName { get; set; } = Constants.DEFAULT_GROUP; + + /// + /// the name of the cluster. + /// + /// The name of the cluster. + public string ClusterName { get; set; } = Constants.DEFAULT_CLUSTER_NAME; + + /// + /// the ip of this instance + /// + public string Ip { get; set; } + + /// + /// Select an IP that matches the prefix as the service registration IP + /// like the config of spring.cloud.inetutils.preferred-networks + /// + public string PreferredNetworks { get; set; } + + /// + /// the port of this instance + /// + public int Port { get; set; } + + /// + /// the weight of this instance. + /// + public double Weight { get; set; } = 100; + + /// + /// if you just want to subscribe, but don't want to register your service, set it to false. + /// + public bool RegisterEnabled { get; set; } = true; + + /// + /// the metadata of this instance + /// + public Dictionary Metadata { get; set; } = new Dictionary(); + + /// + /// If instance is enabled to accept request. The default value is true. + /// + public bool InstanceEnabled { get; set; } = true; + + /// + /// If instance is ephemeral.The default value is true. + /// + public bool Ephemeral { get; set; } = true; + + /// + /// whether your service is a https service. + /// + public bool Secure { get; set; } = false; + + /// + /// Load Balance Strategy + /// + public string LBStrategy { get; set; } = LBStrategyName.WeightRandom.ToString(); + + public NacosSdkOptions BuildSdkOptions() + { + return new NacosSdkOptions + { + AccessKey = this.AccessKey, + ConfigUseRpc = this.ConfigUseRpc, + ContextPath = this.ContextPath, + DefaultTimeOut = this.DefaultTimeOut, + EndPoint = this.EndPoint, + ListenInterval = this.ListenInterval, + Namespace = this.Namespace, + NamingLoadCacheAtStart = this.NamingLoadCacheAtStart, + NamingUseRpc = this.NamingUseRpc, + Password = this.Password, + SecretKey = this.SecretKey, + ServerAddresses = this.ServerAddresses, + UserName = this.UserName, + }; + } + } +} diff --git a/Ocelot.Provider.Nacos/NacosClient/V2/RegSvcBgTask.cs b/Ocelot.Provider.Nacos/NacosClient/V2/RegSvcBgTask.cs new file mode 100644 index 00000000..63709af1 --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosClient/V2/RegSvcBgTask.cs @@ -0,0 +1,127 @@ +using Microsoft.AspNetCore.Hosting.Server; +using Microsoft.AspNetCore.Http.Features; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Nacos.V2; +using Nacos.V2.Naming.Core; +using Nacos.V2.Naming.Dtos; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace Ocelot.Provider.Nacos.NacosClient.V2 +{ + public class RegSvcBgTask + { + private static readonly string MetadataNetVersion = "DOTNET_VERSION"; + private static readonly string MetadataHostOs = "HOST_OS"; + private static readonly string MetadataSecure = "secure"; + + private readonly ILogger _logger; + private readonly INacosNamingService _svc; + private readonly IFeatureCollection _features; + private NacosAspNetOptions _options; + + private IEnumerable uris = null; + + public RegSvcBgTask( + ILoggerFactory loggerFactory, + INacosNamingService svc, + IServer server, + IOptionsMonitor optionsAccs) + { + _logger = loggerFactory.CreateLogger(); + _svc = svc; + _options = optionsAccs.CurrentValue; + _features = server.Features; + } + + public async Task StartAsync() + { + if (!_options.RegisterEnabled) + { + _logger.LogInformation("setting RegisterEnabled to false, will not register to nacos"); + return; + } + + uris = UriTool.GetUri(_features, _options.Ip, _options.Port, _options.PreferredNetworks); + + var metadata = new Dictionary() + { + { PreservedMetadataKeys.REGISTER_SOURCE, $"ASPNET_CORE" }, + { MetadataNetVersion, Environment.Version.ToString() }, + { MetadataHostOs, Environment.OSVersion.ToString() }, + }; + + if (_options.Secure) metadata[MetadataSecure] = "true"; + + foreach (var item in _options.Metadata) + { + if (!metadata.ContainsKey(item.Key)) + { + metadata.TryAdd(item.Key, item.Value); + } + } + + foreach (var uri in uris) + { + for (int i = 0; i < 3; i++) + { + try + { + var instance = new Instance + { + Ephemeral = _options.Ephemeral, + ServiceName = _options.ServiceName, + ClusterName = _options.ClusterName, + Enabled = _options.InstanceEnabled, + Healthy = true, + Ip = uri.Host, + Port = uri.Port, + Weight = _options.Weight, + Metadata = metadata, + InstanceId = "" + }; + + _logger.LogInformation("register instance to nacos server, 【{0}】", instance); + + await _svc.RegisterInstance(_options.ServiceName, _options.GroupName, instance); + break; + } + catch (Exception ex) + { + _logger.LogError(ex, "register instance error, count = {0}", i + 1); + } + } + } + } + + public async Task StopAsync() + { + if (_options.RegisterEnabled) + { + _logger.LogWarning("deregister instance from nacos server, serviceName={0}", _options.ServiceName); + + foreach (var uri in uris) + { + for (int i = 0; i < 3; i++) + { + try + { + _logger.LogWarning("begin to remove instance"); + await _svc.DeregisterInstance(_options.ServiceName, _options.GroupName, uri.Host, uri.Port, _options.ClusterName); + _logger.LogWarning("removed instance"); + break; + } + catch (Exception ex) + { + _logger.LogError(ex, "deregister instance error, count = {0}", i + 1); + } + } + } + } + } + } +} diff --git a/Ocelot.Provider.Nacos/NacosClient/V2/ServiceCollectionExtensions.cs b/Ocelot.Provider.Nacos/NacosClient/V2/ServiceCollectionExtensions.cs new file mode 100644 index 00000000..43abb7e6 --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosClient/V2/ServiceCollectionExtensions.cs @@ -0,0 +1,59 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Nacos.V2.DependencyInjection; +using System; +using System.Threading.Tasks; + +namespace Ocelot.Provider.Nacos.NacosClient.V2 +{ + public static class ServiceCollectionExtensions + { + /// + /// Add Nacos AspNet. This will register and de-register instance automatically. + /// Mainly for nacos server 2.x + /// + /// services. + /// configuration + /// IServiceCollection + public static IServiceCollection AddNacosAspNet(this IServiceCollection services, IConfiguration configuration) + { + services.Configure(configuration.GetSection("nacos")); + services.AddNacosV2Naming(configuration); + services.AddSingleton(); + + return services; + } + + /// + /// Add Nacos AspNet. This will register and de-register instance automatically. + /// Mainly for nacos server 2.x + /// + /// services + /// optionsAccs + /// IServiceCollection + public static IServiceCollection AddNacosAspNet(this IServiceCollection services, Action optionsAccs) + { + services.Configure(optionsAccs); + + var options = new NacosAspNetOptions(); + optionsAccs.Invoke(options); + services.AddNacosV2Naming(x => options.BuildSdkOptions()); + services.AddSingleton(); + + return services; + } + + + public static async Task UseNacosAspNet(this IApplicationBuilder app, IHostApplicationLifetime lifetime) + { + RegSvcBgTask regSvcBgTask = app.ApplicationServices.GetRequiredService(); + await regSvcBgTask.StartAsync(); + lifetime.ApplicationStopping.Register(async () => { + await regSvcBgTask.StopAsync(); + }); + return app; + } + } +} diff --git a/Ocelot.Provider.Nacos/NacosMiddlewareConfigurationProvider.cs b/Ocelot.Provider.Nacos/NacosMiddlewareConfigurationProvider.cs new file mode 100644 index 00000000..f5f78641 --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosMiddlewareConfigurationProvider.cs @@ -0,0 +1,34 @@ +using System; +using System.Threading.Tasks; +using Ocelot.Configuration; +using Ocelot.Configuration.Repository; +using Ocelot.Middleware; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Ocelot.Provider.Nacos.NacosClient.V2; + +namespace Ocelot.Provider.Nacos +{ + public class NacosMiddlewareConfigurationProvider + { + public static OcelotMiddlewareConfigurationDelegate Get = builder => + { + var internalConfigRepo = builder.ApplicationServices.GetService(); + var config = internalConfigRepo.Get(); + + var hostLifetime = builder.ApplicationServices.GetService(); + + if (UsingNacosServiceDiscoveryProvider(config.Data)) + { + builder.UseNacosAspNet(hostLifetime).GetAwaiter().GetResult(); + } + + return Task.CompletedTask; + }; + + private static bool UsingNacosServiceDiscoveryProvider(IInternalConfiguration configuration) + { + return configuration?.ServiceProviderConfiguration != null && configuration.ServiceProviderConfiguration.Type?.ToLower() == "nacos"; + } + } +} diff --git a/Ocelot.Provider.Nacos/NacosProviderFactory.cs b/Ocelot.Provider.Nacos/NacosProviderFactory.cs new file mode 100644 index 00000000..dc3dfb11 --- /dev/null +++ b/Ocelot.Provider.Nacos/NacosProviderFactory.cs @@ -0,0 +1,23 @@ +using System; +using Ocelot.ServiceDiscovery; +using Microsoft.Extensions.DependencyInjection; +using Nacos.V2; +using Ocelot.Provider.Nacos.NacosClient.V2; +using Microsoft.Extensions.Options; + +namespace Ocelot.Provider.Nacos +{ + public static class NacosProviderFactory + { + public static ServiceDiscoveryFinderDelegate Get = (provider, config, route) => + { + var client = provider.GetService(); + if (config.Type?.ToLower() == "nacos" && client != null) + { + var option = provider.GetService>(); + return new Nacos(route.ServiceName, client, option); + } + return null; + }; + } +} diff --git a/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj b/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj new file mode 100644 index 00000000..a8568d92 --- /dev/null +++ b/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj @@ -0,0 +1,21 @@ + + + + net5.0 + softlgl + softlgl + softlgl + https://github.com/softlgl/Ocelot.Provider.Nacos + Ocelot.Provider.Nacos + Repo for Nacos integration with Ocelot + 1.2.1 + + + + + + + + + + diff --git a/Ocelot.Provider.Nacos/OcelotBuilderExtensions.cs b/Ocelot.Provider.Nacos/OcelotBuilderExtensions.cs new file mode 100644 index 00000000..93b176de --- /dev/null +++ b/Ocelot.Provider.Nacos/OcelotBuilderExtensions.cs @@ -0,0 +1,20 @@ +using System.Linq; +using Microsoft.Extensions.DependencyInjection; +using Ocelot.DependencyInjection; +using Ocelot.Middleware; +using Ocelot.Provider.Nacos.NacosClient.V2; +using Ocelot.ServiceDiscovery; + +namespace Ocelot.Provider.Nacos +{ + public static class OcelotBuilderExtensions + { + public static IOcelotBuilder AddNacosDiscovery(this IOcelotBuilder builder) + { + builder.Services.AddNacosAspNet(builder.Configuration); + builder.Services.AddSingleton(NacosProviderFactory.Get); + builder.Services.AddSingleton(NacosMiddlewareConfigurationProvider.Get); + return builder; + } + } +} From 3467e4115219afa97a9a35f85fda0aec906b6574 Mon Sep 17 00:00:00 2001 From: boboyunz <31433611@qq.com> Date: Tue, 15 Feb 2022 13:20:09 +0800 Subject: [PATCH 083/382] boboyunz-fix bug --- .../Extensions/CustomSwaggerSetup.cs | 6 +++--- Blog.Core.Gateway/Helper/JwtTokenAuth.cs | 18 ++++-------------- Blog.Core.Gateway/index.html | 16 +--------------- 3 files changed, 8 insertions(+), 32 deletions(-) diff --git a/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs b/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs index f0fc4abd..92956ff1 100644 --- a/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs +++ b/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs @@ -5,7 +5,7 @@ using System; using System.Collections.Generic; using System.IO; - +using System.Reflection; namespace Blog.Core.Gateway.Extensions { public static class CustomSwaggerSetup @@ -49,7 +49,7 @@ public static void UseCustomSwaggerMildd(this IApplicationBuilder app) if (app == null) throw new ArgumentNullException(nameof(app)); var apis = new List { "blog-svc" }; - app.UseSwagger(); + app.UseMvc().UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint($"/swagger/v1/swagger.json", $"Blog.Core.Gateway-v1"); @@ -57,7 +57,7 @@ public static void UseCustomSwaggerMildd(this IApplicationBuilder app) apis.ForEach(m => { options.SwaggerEndpoint($"/swagger/apiswg/{m}/swagger.json", m); - //options.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("Blog.Core.ApiGateway.index.html"); + options.IndexStream = () => app.GetType().GetTypeInfo().Assembly.GetManifestResourceStream("Blog.Core.ApiGateway.index.html"); }); options.RoutePrefix = ""; diff --git a/Blog.Core.Gateway/Helper/JwtTokenAuth.cs b/Blog.Core.Gateway/Helper/JwtTokenAuth.cs index 7c7d5469..a2ced430 100644 --- a/Blog.Core.Gateway/Helper/JwtTokenAuth.cs +++ b/Blog.Core.Gateway/Helper/JwtTokenAuth.cs @@ -1,25 +1,15 @@ -using Microsoft.AspNetCore.Http; -using System; +using System; +using System.Net; using System.Linq; -using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; +using System.Text.RegularExpressions; using Microsoft.AspNetCore.Authentication; -using Microsoft.Extensions.Configuration; +using Microsoft.AspNetCore.Http; using Blog.Core.Common; using Blog.Core.Common.Helper; -using Blog.Core.AuthHelper; -using System.Text.RegularExpressions; -using System.Net; -using Ocelot.Configuration.Repository; -using Microsoft.Extensions.DependencyInjection; -using Ocelot.Configuration.Creator; -using Ocelot.Configuration.File; using Nacos.V2; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using Newtonsoft.Json.Serialization; -using Newtonsoft.Json.Converters; namespace Blog.Core.AuthHelper { ///
    diff --git a/Blog.Core.Gateway/index.html b/Blog.Core.Gateway/index.html index eec5fe65..9a6d0cd3 100644 --- a/Blog.Core.Gateway/index.html +++ b/Blog.Core.Gateway/index.html @@ -80,7 +80,7 @@
    @@ -116,20 +116,6 @@ // Apply OAuth config ui.initOAuth(oauthConfigObject); - //setTimeout(function () { - // // $(".link img").attr("src", "./logo/favicon-32x32.png"); - - // $('#swagger-ui').after("
    "); - // //docExpansion = none; - - // //debugger - // //$(".opblock-tag-section").removeClass("is-open") - // //$(".opblock-tag-section .opblock-tag").attr("data-is-open", "false"); - // //$(".opblock-tag-section .no-margin").hide(); - - //}, 10000); - - } From 85097ab5aaeae31d6fb101920d80270fc9ef1b91 Mon Sep 17 00:00:00 2001 From: boboyunz <31433611@qq.com> Date: Tue, 15 Feb 2022 13:25:30 +0800 Subject: [PATCH 084/382] boboyunz -- fix --- Blog.Core.Gateway/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Gateway/index.html b/Blog.Core.Gateway/index.html index 9a6d0cd3..9d9cbcfa 100644 --- a/Blog.Core.Gateway/index.html +++ b/Blog.Core.Gateway/index.html @@ -80,7 +80,7 @@
    From e39d7b5a233933918d486d6740d78e0c7f03774e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 15 Feb 2022 14:18:33 +0800 Subject: [PATCH 085/382] fix: remove some warnings --- Blog.Core.Common/Helper/DynamicLinqFactory.cs | 20 +++---- Blog.Core.Gateway/Blog.Core.Gateway.xml | 30 ++++------- .../Extensions/CustomOcelotSetup.cs | 1 - ...uth.cs => CustomJwtTokenAuthMiddleware.cs} | 54 ++++--------------- .../Helper/OcelotConfigurationTask.cs | 11 ++-- Blog.Core.Gateway/Startup.cs | 4 +- 6 files changed, 39 insertions(+), 81 deletions(-) rename Blog.Core.Gateway/Helper/{JwtTokenAuth.cs => CustomJwtTokenAuthMiddleware.cs} (86%) diff --git a/Blog.Core.Common/Helper/DynamicLinqFactory.cs b/Blog.Core.Common/Helper/DynamicLinqFactory.cs index d2af794c..17003f89 100644 --- a/Blog.Core.Common/Helper/DynamicLinqFactory.cs +++ b/Blog.Core.Common/Helper/DynamicLinqFactory.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore.Http; -using RestSharp.Extensions; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -319,9 +318,9 @@ private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string Se } return $"{baseUrl}{apiurl}"; } - catch (System.Exception ee) + catch (Exception e) { - + Console.WriteLine(e.Message); } return ""; } @@ -345,9 +344,9 @@ public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService return await result.Content.ReadAsStringAsync(); } - catch (System.Exception ee) + catch (Exception e) { - + Console.WriteLine(e.Message); } return ""; @@ -366,9 +365,9 @@ public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingSer return await result.Content.ReadAsStringAsync();//.GetAwaiter().GetResult(); } - catch (System.Exception ee) + catch (Exception e) { - + Console.WriteLine(e.Message); } return ""; } @@ -388,9 +387,9 @@ public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingSer } - catch (System.Exception ee) + catch (Exception e) { - + Console.WriteLine(e.Message); } return ""; } @@ -412,9 +411,10 @@ public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingSer return await result.Content.ReadAsStringAsync();//.GetAwaiter().GetResult(); } - catch (System.Exception ee) + catch (Exception e) { //InfluxdbHelper.GetInstance().AddLog("Cof_NaocePostFile.Err", ee); + Console.WriteLine(e.Message); } return ""; } diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.xml b/Blog.Core.Gateway/Blog.Core.Gateway.xml index 0082bb1d..41507d7a 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.xml +++ b/Blog.Core.Gateway/Blog.Core.Gateway.xml @@ -4,51 +4,40 @@ Blog.Core.Gateway - + 中间件 原做为自定义授权中间件 先做检查 header token的使用 - - - 配置数据 - - - + 验证方案提供对象 - + 请求上下文 - - - - - - - - + 网关授权 - + 返回相应 + - + 判断是否在白名单内,支持通配符 **** @@ -74,10 +63,13 @@ - 重载方法 + + + + diff --git a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs index f0373ca1..f04df2a5 100644 --- a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs +++ b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.DependencyInjection; using Ocelot.DependencyInjection; using Ocelot.Middleware; -using Ocelot.Provider.Consul; using Ocelot.Provider.Nacos; using Ocelot.Provider.Polly; using System; diff --git a/Blog.Core.Gateway/Helper/JwtTokenAuth.cs b/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs similarity index 86% rename from Blog.Core.Gateway/Helper/JwtTokenAuth.cs rename to Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs index a2ced430..6c7d048e 100644 --- a/Blog.Core.Gateway/Helper/JwtTokenAuth.cs +++ b/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs @@ -10,6 +10,7 @@ using Blog.Core.Common.Helper; using Nacos.V2; using Newtonsoft.Json.Linq; + namespace Blog.Core.AuthHelper { /// @@ -17,17 +18,11 @@ namespace Blog.Core.AuthHelper /// 原做为自定义授权中间件 /// 先做检查 header token的使用 /// - public class JwtTokenAuth + public class CustomJwtTokenAuthMiddleware { - - /// - /// 配置数据 - /// - private readonly Appsettings Appsettings; private readonly ICaching _cache; private readonly INacosNamingService NacosServClient; - /// /// 验证方案提供对象 @@ -38,43 +33,16 @@ public class JwtTokenAuth /// 请求上下文 /// private readonly RequestDelegate _next; - /// - /// - /// - /// - /// - - - + - public JwtTokenAuth(INacosNamingService serv, RequestDelegate next, IAuthenticationSchemeProvider schemes, Appsettings appset,ICaching cache) + public CustomJwtTokenAuthMiddleware(INacosNamingService serv, RequestDelegate next, IAuthenticationSchemeProvider schemes, Appsettings appset,ICaching cache) { NacosServClient = serv; _cache = cache; _next = next; - Appsettings = appset; - Schemes = schemes; - - List Permissions = _cache.Cof_AsyncGetICaching>("Permissions", GetPermitionData, 10).GetAwaiter().GetResult(); - - } - - - private void PreProceed(HttpContext next) - { - //Console.WriteLine($"{DateTime.Now} middleware invoke preproceed"); - //... } - private void PostProceed(HttpContext next) - { - //Console.WriteLine($"{DateTime.Now} middleware invoke postproceed"); - //.... - } - - - /// /// 网关授权 @@ -171,9 +139,9 @@ private async Task> GetPermitionData() if(perJt["response"]!=null) return perJt["response"].ToObject>(); return perJt["data"].ToObject>(); } - catch (Exception ee) + catch (Exception e) { - + Console.WriteLine(e.Message); } return null; @@ -184,8 +152,9 @@ private async Task> GetPermitionData() /// /// /// + /// /// - private async Task SendResponse(HttpContext context, string message, System.Net.HttpStatusCode code) + private async Task SendResponse(HttpContext context, string message, HttpStatusCode code) { context.Response.StatusCode = (int)code; context.Response.ContentType = "text/plain"; @@ -199,7 +168,7 @@ private async Task SendResponse(HttpContext context, string message, System.Net. /// public bool CheckWhiteList(string url) { - List WhiteList = _cache.Cof_GetICaching>("WhiteList", () => Appsettings.app("WhiteList"), 10); + List WhiteList = _cache.Cof_GetICaching>("WhiteList", () => Appsettings.app("WhiteList"), 10); if (!WhiteList.Cof_CheckAvailable()) return false; foreach (var Urlitem in WhiteList) @@ -220,7 +189,7 @@ public bool CheckWhiteList(string url) public bool CheckBlackList(string url) { - List BlackList = _cache.Cof_GetICaching>("BlackList", () => Appsettings.app("BlackList"), 10); + List BlackList = _cache.Cof_GetICaching>("BlackList", () => Appsettings.app("BlackList"), 10); if (!BlackList.Cof_CheckAvailable()) return false; foreach (var Urlitem in BlackList) @@ -238,10 +207,9 @@ public bool CheckBlackList(string url) return false; } - } - public class urlobj + public class Urlobj { public string url { get; set; } } diff --git a/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs b/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs index 5fc14d38..5bb26398 100644 --- a/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs +++ b/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs @@ -8,10 +8,7 @@ using Blog.Core.Common.Helper; using Ocelot.Configuration.Repository; using Ocelot.Configuration.Creator; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using Newtonsoft.Json.Serialization; -using Newtonsoft.Json.Converters; using Ocelot.Configuration.File; using Blog.Core.Common; @@ -34,13 +31,15 @@ public class OcelotConfigurationTask : BackgroundService private string AppConfig = ""; private string AppConfigGroup = ""; - - + /// - /// 重载方法 + /// /// + /// /// /// + /// + /// public OcelotConfigurationTask(INacosNamingService serv, INacosConfigService configClient, IServiceProvider serviceProvider, IInternalConfigurationRepository _internalConfigurationRepo, IInternalConfigurationCreator _internalConfigurationCreator) { _configClient = configClient; diff --git a/Blog.Core.Gateway/Startup.cs b/Blog.Core.Gateway/Startup.cs index b4ef01b9..23c5caa0 100644 --- a/Blog.Core.Gateway/Startup.cs +++ b/Blog.Core.Gateway/Startup.cs @@ -2,7 +2,6 @@ using Blog.Core.Common; using Blog.Core.Extensions; using Blog.Core.Gateway.Extensions; -using Blog.Core.Middlewares; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -78,7 +77,8 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { endpoints.MapControllers(); }); - app.UseMiddleware(); + + app.UseMiddleware(); app.UseCustomOcelotMildd().Wait(); } From 2d898944837f92f4b06d37592818f6db483b5836 Mon Sep 17 00:00:00 2001 From: boboyunz <31433611@qq.com> Date: Tue, 15 Feb 2022 17:00:45 +0800 Subject: [PATCH 086/382] boboyunz- fix some alarm --- Blog.Core.Common/Helper/DynamicLinqFactory.cs | 11 ++++---- Blog.Core.Gateway/Blog.Core.Gateway.xml | 27 ++++++++++++------- .../Extensions/CustomOcelotSetup.cs | 1 - Blog.Core.Gateway/Helper/JwtTokenAuth.cs | 18 ++++++------- .../Helper/OcelotConfigurationTask.cs | 10 +++---- Blog.Core.Gateway/Startup.cs | 3 +-- Blog.Core.Services/PayServices.cs | 25 +++++------------ 7 files changed, 44 insertions(+), 51 deletions(-) diff --git a/Blog.Core.Common/Helper/DynamicLinqFactory.cs b/Blog.Core.Common/Helper/DynamicLinqFactory.cs index d2af794c..0e2407c1 100644 --- a/Blog.Core.Common/Helper/DynamicLinqFactory.cs +++ b/Blog.Core.Common/Helper/DynamicLinqFactory.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore.Http; -using RestSharp.Extensions; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -321,7 +320,7 @@ private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string Se } catch (System.Exception ee) { - + string message = ee.Message; } return ""; } @@ -347,7 +346,7 @@ public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService } catch (System.Exception ee) { - + string message = ee.Message; } return ""; @@ -368,7 +367,7 @@ public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingSer } catch (System.Exception ee) { - + string message = ee.Message; } return ""; } @@ -390,7 +389,7 @@ public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingSer } catch (System.Exception ee) { - + string message = ee.Message; } return ""; } @@ -414,7 +413,7 @@ public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingSer } catch (System.Exception ee) { - //InfluxdbHelper.GetInstance().AddLog("Cof_NaocePostFile.Err", ee); + string message = ee.Message; } return ""; } diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.xml b/Blog.Core.Gateway/Blog.Core.Gateway.xml index 0082bb1d..23fb1207 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.xml +++ b/Blog.Core.Gateway/Blog.Core.Gateway.xml @@ -4,51 +4,55 @@ Blog.Core.Gateway - + 中间件 原做为自定义授权中间件 先做检查 header token的使用 - + 配置数据 - + 验证方案提供对象 - + 请求上下文 - + - + 构造函数 + nacos句柄 - + + + - + 网关授权 - + 返回相应 + - + 判断是否在白名单内,支持通配符 **** @@ -76,8 +80,11 @@ 重载方法 + + + diff --git a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs index f0373ca1..f04df2a5 100644 --- a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs +++ b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.DependencyInjection; using Ocelot.DependencyInjection; using Ocelot.Middleware; -using Ocelot.Provider.Consul; using Ocelot.Provider.Nacos; using Ocelot.Provider.Polly; using System; diff --git a/Blog.Core.Gateway/Helper/JwtTokenAuth.cs b/Blog.Core.Gateway/Helper/JwtTokenAuth.cs index a2ced430..cb899822 100644 --- a/Blog.Core.Gateway/Helper/JwtTokenAuth.cs +++ b/Blog.Core.Gateway/Helper/JwtTokenAuth.cs @@ -17,7 +17,7 @@ namespace Blog.Core.AuthHelper /// 原做为自定义授权中间件 /// 先做检查 header token的使用 /// - public class JwtTokenAuth + public class JwtTokenAuthNew { /// @@ -39,15 +39,14 @@ public class JwtTokenAuth /// private readonly RequestDelegate _next; /// - /// + /// 构造函数 /// + /// nacos句柄 /// - /// - - - - - public JwtTokenAuth(INacosNamingService serv, RequestDelegate next, IAuthenticationSchemeProvider schemes, Appsettings appset,ICaching cache) + /// + /// + /// + public JwtTokenAuthNew(INacosNamingService serv, RequestDelegate next, IAuthenticationSchemeProvider schemes, Appsettings appset,ICaching cache) { NacosServClient = serv; _cache = cache; @@ -173,7 +172,7 @@ private async Task> GetPermitionData() } catch (Exception ee) { - + string message = ee.Message; } return null; @@ -184,6 +183,7 @@ private async Task> GetPermitionData() /// /// /// + /// /// private async Task SendResponse(HttpContext context, string message, System.Net.HttpStatusCode code) { diff --git a/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs b/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs index 5fc14d38..7e172f66 100644 --- a/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs +++ b/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs @@ -8,10 +8,7 @@ using Blog.Core.Common.Helper; using Ocelot.Configuration.Repository; using Ocelot.Configuration.Creator; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using Newtonsoft.Json.Serialization; -using Newtonsoft.Json.Converters; using Ocelot.Configuration.File; using Blog.Core.Common; @@ -34,13 +31,16 @@ public class OcelotConfigurationTask : BackgroundService private string AppConfig = ""; private string AppConfigGroup = ""; - - + + /// /// 重载方法 /// + /// /// /// + /// + /// public OcelotConfigurationTask(INacosNamingService serv, INacosConfigService configClient, IServiceProvider serviceProvider, IInternalConfigurationRepository _internalConfigurationRepo, IInternalConfigurationCreator _internalConfigurationCreator) { _configClient = configClient; diff --git a/Blog.Core.Gateway/Startup.cs b/Blog.Core.Gateway/Startup.cs index b4ef01b9..3d81dd72 100644 --- a/Blog.Core.Gateway/Startup.cs +++ b/Blog.Core.Gateway/Startup.cs @@ -2,7 +2,6 @@ using Blog.Core.Common; using Blog.Core.Extensions; using Blog.Core.Gateway.Extensions; -using Blog.Core.Middlewares; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -78,7 +77,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { endpoints.MapControllers(); }); - app.UseMiddleware(); + app.UseMiddleware(); app.UseCustomOcelotMildd().Wait(); } diff --git a/Blog.Core.Services/PayServices.cs b/Blog.Core.Services/PayServices.cs index ed5b6a55..2a4c42cd 100644 --- a/Blog.Core.Services/PayServices.cs +++ b/Blog.Core.Services/PayServices.cs @@ -11,7 +11,7 @@ using System; using System.Collections.Generic; using System.IO; -using System.Net; +using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -213,26 +213,13 @@ public async Task> PayRefund(PayRefundN _logger.LogInformation("请求地址:" + sUrl); _logger.LogInformation("请求报文:" + sRequestMsg); - HttpWebRequest request = (System.Net.HttpWebRequest)HttpWebRequest.Create(sUrl); - request.Method = "POST"; - request.ContentType = "application/x-www-form-urlencoded"; - request.KeepAlive = false; - request.Connection = ""; - - //外联平台使用GB18030编码,这里进行转码处理 + HttpClient request = new HttpClient(); byte[] byteRquest = Encoding.GetEncoding("GB18030").GetBytes(sRequestMsg); - request.ContentLength = byteRquest.Length; - - //发送请求 - Stream writerStream = request.GetRequestStream(); - await writerStream.WriteAsync(byteRquest, 0, byteRquest.Length); - writerStream.Flush(); - writerStream.Close(); + ByteArrayContent bytemsg = new ByteArrayContent(byteRquest); + HttpResponseMessage resulthd = await request.PostAsync(sUrl, bytemsg); + Stream result = await resulthd.Content.ReadAsStreamAsync(); - //接收请求 - HttpWebResponse response = (HttpWebResponse)request.GetResponse(); - Stream result = response.GetResponseStream(); StreamReader readerResult = new StreamReader(result, System.Text.Encoding.GetEncoding("GB18030")); string sResult = await readerResult.ReadToEndAsync(); _logger.LogInformation("响应报文:" + sResult); @@ -257,6 +244,7 @@ public async Task> PayRefund(PayRefundN messageModel.response.AMOUNT = Xmlresult.TX_INFO?.AMOUNT; messageModel.response.PAY_AMOUNT = Xmlresult.TX_INFO?.PAY_AMOUNT; messageModel.response.ORDER_NUM = Xmlresult.TX_INFO?.ORDER_NUM; + request.Dispose(); } catch (Exception ex) { @@ -270,6 +258,7 @@ public async Task> PayRefund(PayRefundN { _logger.LogInformation($"返回数据->{JsonHelper.GetJSON>(messageModel)}"); _logger.LogInformation("退款结束"); + } return messageModel; From 0dccc110a85aae7d6460f9852289073490e049c9 Mon Sep 17 00:00:00 2001 From: wuare Date: Wed, 16 Feb 2022 15:36:25 +0800 Subject: [PATCH 087/382] Update README.md --- .docs/contents/Contribution/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.docs/contents/Contribution/README.md b/.docs/contents/Contribution/README.md index 0d30f24b..017c99b6 100644 --- a/.docs/contents/Contribution/README.md +++ b/.docs/contents/Contribution/README.md @@ -137,6 +137,7 @@ |127|何**玖|6.66|| |128|A**g|10|| |129|高**广|20|| +|130|吴**杰|0.01|| From 0f96b68fba8ac3c4ec9503a80bcd30a44f8c52b6 Mon Sep 17 00:00:00 2001 From: biubiue Date: Wed, 16 Feb 2022 15:42:17 +0800 Subject: [PATCH 088/382] docs: update contribution member --- .docs/contents/Contribution/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docs/contents/Contribution/README.md b/.docs/contents/Contribution/README.md index 017c99b6..a29822b4 100644 --- a/.docs/contents/Contribution/README.md +++ b/.docs/contents/Contribution/README.md @@ -138,6 +138,6 @@ |128|A**g|10|| |129|高**广|20|| |130|吴**杰|0.01|| - +|131|刘**标|0.01|| From 4584e939dcae26d3e921e2441f4ed059df256333 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 16 Feb 2022 18:46:22 +0800 Subject: [PATCH 089/382] Update CCBPayUtil.cs --- Blog.Core.Common/Helper/CCBPayUtil.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Common/Helper/CCBPayUtil.cs b/Blog.Core.Common/Helper/CCBPayUtil.cs index ca753918..59ac0dde 100644 --- a/Blog.Core.Common/Helper/CCBPayUtil.cs +++ b/Blog.Core.Common/Helper/CCBPayUtil.cs @@ -481,7 +481,7 @@ internal enum CRYPT_STRING_FLAGS : uint } // Token: 0x0200000B RID: 11 - internal struct CRYPT_OBJID_BLOB + internal class CRYPT_OBJID_BLOB { // Token: 0x04000028 RID: 40 internal uint cbData = default; @@ -491,7 +491,7 @@ internal struct CRYPT_OBJID_BLOB } // Token: 0x0200000C RID: 12 - internal struct CRYPT_ALGORITHM_IDENTIFIER + internal class CRYPT_ALGORITHM_IDENTIFIER { // Token: 0x0400002A RID: 42 internal IntPtr pszObjId = default; @@ -501,7 +501,7 @@ internal struct CRYPT_ALGORITHM_IDENTIFIER } // Token: 0x0200000D RID: 13 - private struct CRYPT_BIT_BLOB + private class CRYPT_BIT_BLOB { // Token: 0x0400002C RID: 44 internal uint cbData = default; @@ -514,7 +514,7 @@ private struct CRYPT_BIT_BLOB } // Token: 0x0200000E RID: 14 - private struct CERT_PUBLIC_KEY_INFO + private class CERT_PUBLIC_KEY_INFO { // Token: 0x0400002F RID: 47 internal RSACryptoServiceProviderExtension.CRYPT_ALGORITHM_IDENTIFIER Algorithm = default; From e26bd65b28f1b2ce0577069dee4361b84d33d6a8 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 18 Feb 2022 16:07:24 +0800 Subject: [PATCH 090/382] Fixed #244 bug --- Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs b/Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs index 4c9553f7..24a74f7f 100644 --- a/Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/UiFilesZipSetup.cs @@ -17,7 +17,7 @@ public static void AddUiFilesZipSetup(this IServiceCollection services, IWebHost string wwwrootFolderPath = Path.Combine(_env.ContentRootPath, "wwwroot"); string zipUiItemFiles = Path.Combine(wwwrootFolderPath, "ui.zip"); - if (!File.Exists(Path.Combine(wwwrootFolderPath, "index.html"))) + if (!File.Exists(Path.Combine(wwwrootFolderPath, "ui", "index.html"))) { ZipFile.ExtractToDirectory(zipUiItemFiles, wwwrootFolderPath); } From ab4dbf9a0ce90ec3391d5a047747d9ffc5b4aed4 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 18 Feb 2022 16:22:24 +0800 Subject: [PATCH 091/382] Fixed #245 bug. --- Blog.Core.Extensions/ServiceExtensions/MemoryCacheSetup.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Extensions/ServiceExtensions/MemoryCacheSetup.cs b/Blog.Core.Extensions/ServiceExtensions/MemoryCacheSetup.cs index 20ced266..0e489681 100644 --- a/Blog.Core.Extensions/ServiceExtensions/MemoryCacheSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/MemoryCacheSetup.cs @@ -1,6 +1,7 @@ using Blog.Core.Common; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using System; namespace Blog.Core.Extensions @@ -17,7 +18,8 @@ public static void AddMemoryCacheSetup(this IServiceCollection services) services.AddScoped(); services.AddSingleton(factory => { - var cache = new MemoryCache(new MemoryCacheOptions()); + var value = factory.GetRequiredService>(); + var cache = new MemoryCache(value); return cache; }); } From 10fd4fbf808b63ddb9c67dbc6c338e864f2a6ca3 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 21 Feb 2022 10:47:17 +0800 Subject: [PATCH 092/382] Fixed #246 Bug --- CreateYourProject.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CreateYourProject.bat b/CreateYourProject.bat index 1e1fe8dd..6bee0420 100644 --- a/CreateYourProject.bat +++ b/CreateYourProject.bat @@ -3,7 +3,7 @@ echo "if u install template error,pls connect QQ:3143422472" color 3 -dotnet new -i Blog.Core.Webapi.Template::2.6.1 +dotnet new -i Blog.Core.Webapi.Template::2.6.2 set /p OP=Please set your project name(for example:BlogMicService): From c0b6a75c79f5f9f6423bf72222840105a41ad093 Mon Sep 17 00:00:00 2001 From: Linlccc <1610450962@qq.com> Date: Wed, 23 Feb 2022 18:14:26 +0800 Subject: [PATCH 093/382] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=A5=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E6=96=B9=E5=BC=8F=E8=BE=93=E5=87=BA=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Startup.cs | 3 +- .../Helper/{ => Console}/ConsoleHelper.cs | 43 ++- .../Helper/Console/Table/ColumnShowFormat.cs | 39 +++ .../Helper/Console/Table/ConsoleTable.cs | 330 ++++++++++++++++++ .../Helper/Console/Table/DrawTableInfo.cs | 35 ++ .../Helper/Console/Table/TableExtension.cs | 151 ++++++++ .../Helper/Console/Table/TableStyle.cs | 57 +++ .../RabbitMQPersistent/EventBusRabbitMQ.cs | 2 +- .../BlogQueryIntegrationEventHandler.cs | 2 +- .../NacosConfig/NacosListenNamingTask.cs | 3 +- .../ServiceExtensions/AppConfigSetup.cs | 94 +++++ .../HostedService/Job1TimedService.cs | 2 +- .../HostedService/Job2TimedService.cs | 2 +- 13 files changed, 735 insertions(+), 28 deletions(-) rename Blog.Core.Common/Helper/{ => Console}/ConsoleHelper.cs (60%) create mode 100644 Blog.Core.Common/Helper/Console/Table/ColumnShowFormat.cs create mode 100644 Blog.Core.Common/Helper/Console/Table/ConsoleTable.cs create mode 100644 Blog.Core.Common/Helper/Console/Table/DrawTableInfo.cs create mode 100644 Blog.Core.Common/Helper/Console/Table/TableExtension.cs create mode 100644 Blog.Core.Common/Helper/Console/Table/TableStyle.cs diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index 4148297f..bc3d779f 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -64,7 +64,8 @@ public void ConfigureServices(IServiceCollection services) services.AddSwaggerSetup(); services.AddJobSetup(); services.AddHttpContextSetup(); - services.AddAppConfigSetup(Env); + //services.AddAppConfigSetup(Env); + services.AddAppTableConfigSetup(Env);//表格打印配置 services.AddHttpApi(); services.AddRedisInitMqSetup(); diff --git a/Blog.Core.Common/Helper/ConsoleHelper.cs b/Blog.Core.Common/Helper/Console/ConsoleHelper.cs similarity index 60% rename from Blog.Core.Common/Helper/ConsoleHelper.cs rename to Blog.Core.Common/Helper/Console/ConsoleHelper.cs index f0faef52..036c4769 100644 --- a/Blog.Core.Common/Helper/ConsoleHelper.cs +++ b/Blog.Core.Common/Helper/Console/ConsoleHelper.cs @@ -1,15 +1,25 @@ using System; -namespace Blog.Core.Common.Helper +namespace Blog.Core.Common { public static class ConsoleHelper { + private static readonly object _objLock = new(); + + /// + /// 在控制台输出 + /// + /// 文本 + /// 前颜色 public static void WriteColorLine(string str, ConsoleColor color) { - ConsoleColor currentForeColor = Console.ForegroundColor; - Console.ForegroundColor = color; - Console.WriteLine(str); - Console.ForegroundColor = currentForeColor; + lock (_objLock) + { + ConsoleColor currentForeColor = Console.ForegroundColor; + Console.ForegroundColor = color; + Console.WriteLine(str); + Console.ForegroundColor = currentForeColor; + } } /// @@ -17,38 +27,27 @@ public static void WriteColorLine(string str, ConsoleColor color) /// /// 待打印的字符串 /// 想要打印的颜色 - public static void WriteErrorLine(this string str, ConsoleColor color = ConsoleColor.Red) - { - WriteColorLine(str, color); - } + public static void WriteErrorLine(this string str, ConsoleColor color = ConsoleColor.Red)=> WriteColorLine(str, color); /// /// 打印警告信息 /// /// 待打印的字符串 /// 想要打印的颜色 - public static void WriteWarningLine(this string str, ConsoleColor color = ConsoleColor.Yellow) - { - WriteColorLine(str, color); - } + public static void WriteWarningLine(this string str, ConsoleColor color = ConsoleColor.Yellow)=> WriteColorLine(str, color); + /// /// 打印正常信息 /// /// 待打印的字符串 /// 想要打印的颜色 - public static void WriteInfoLine(this string str, ConsoleColor color = ConsoleColor.White) - { - WriteColorLine(str, color); - } + public static void WriteInfoLine(this string str, ConsoleColor color = ConsoleColor.White)=> WriteColorLine(str, color); + /// /// 打印成功的信息 /// /// 待打印的字符串 /// 想要打印的颜色 - public static void WriteSuccessLine(this string str, ConsoleColor color = ConsoleColor.Green) - { - WriteColorLine(str, color); - } - + public static void WriteSuccessLine(this string str, ConsoleColor color = ConsoleColor.Green)=> WriteColorLine(str, color); } } diff --git a/Blog.Core.Common/Helper/Console/Table/ColumnShowFormat.cs b/Blog.Core.Common/Helper/Console/Table/ColumnShowFormat.cs new file mode 100644 index 00000000..04070253 --- /dev/null +++ b/Blog.Core.Common/Helper/Console/Table/ColumnShowFormat.cs @@ -0,0 +1,39 @@ +namespace System +{ + /// + /// 列显示格式信息 + /// + public class ColumnShowFormat + { + public ColumnShowFormat(int index, int strLength, Alignment alignment) + { + Index = index; + StrLength = strLength; + Alignment = alignment; + } + + /// + /// 索引,第几列数据 + /// + public int Index { get; set; } + + /// + /// 对其方式 + /// + public Alignment Alignment { get; set; } + + /// + /// 一列字符串长度 + /// + public int StrLength { get; set; } + } + + /// + /// 对其方式 + /// + public enum Alignment + { + Left, + Right + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/Console/Table/ConsoleTable.cs b/Blog.Core.Common/Helper/Console/Table/ConsoleTable.cs new file mode 100644 index 00000000..b99a6683 --- /dev/null +++ b/Blog.Core.Common/Helper/Console/Table/ConsoleTable.cs @@ -0,0 +1,330 @@ +using Blog.Core.Common; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace System +{ + public class ConsoleTable + { + #region 属性 + + /// + /// 表格头部字符串 + /// + public string TitleString { get; set; } + + /// + /// 表格的列 + /// + public IList Columns + { + get + { + if (_columns == null) _columns = new List(); + return _columns; + } + set + { + _columns = value; + _finalColumnWides = new List(); + } + } + + /// + /// 行 + /// + public List Rows { get; set; } = new List(); + + /// + /// 列宽 + /// + public List ColumnWides { get; set; } = new List(); + + /// + /// 空白字符数量 + /// + public int ColumnBlankNum { get; set; } = 4; + + /// + /// 对其方式 + /// + public Alignment Alignment { get; set; } = Alignment.Left; + + /// + /// 是否显示行数 + /// + public bool EnableCount { get; set; } = false; + + /// + /// 表格显示样式 + /// 每次设置样子后就会重置 StyleInfo + /// + public TableStyle TableStyle + { + get + { + return _tableStyle; + } + set + { + if (_tableStyle == value) return; + _tableStyle = value; + _formatInfo = null; + } + } + + #endregion 属性 + + #region 私有信息 + private IList _columns; + private TableStyle _tableStyle; + private StyleInfo _formatInfo; + private List _columnShowFormats = new List(); + private List _finalColumnWides = new List(); + + /// + /// 通过 Format 获得到表格显示样式 + /// + private StyleInfo FormatInfo + { + get + { + if (_formatInfo == null) + _formatInfo = _tableStyle.GetFormatInfo();//得到样式信息 + return _formatInfo; + } + set + { + _formatInfo = value; + } + } + + /// + /// 每一列的宽度 + /// + private List FinalColumnWides + { + get + { + if (_finalColumnWides is null || _finalColumnWides.Count < 1) + { + // 得到每一列最大的宽度 + List _columnWides = Columns.GetColumnWides(Rows); + // 替换用户输入长度 + ColumnWides ??= new List(); + for (int i = 0; i < ColumnWides.Count; i++) _columnWides[i] = ColumnWides[i]; + _finalColumnWides = _columnWides; + } + return _finalColumnWides; + } + } + + /// + /// 每一列显示的基本信息 + /// + private List ColumnShowFormats + { + get + { + if (_columnShowFormats.Count == 0) + { + for (int i = 0; i < Columns.Count; i++) _columnShowFormats.Add(new ColumnShowFormat(i, FinalColumnWides[i], Alignment)); + } + return _columnShowFormats; + } + } + + #endregion 私有信息 + + #region 配置数据 + + /// + /// 添加列 + /// + /// 列明 + /// 列的宽 + /// + public ConsoleTable AddColumn(string columnName, int columnWide = 0) + { + Columns.Add(columnName); + columnWide = columnWide == 0 ? columnName.Length : columnWide; + _finalColumnWides.Add(columnWide); + return this; + } + + /// + /// 添加行 + /// + /// 该行数据 + /// + public ConsoleTable AddRow(params string[] values) + { + _ = values ?? throw new ArgumentNullException(nameof(values)); + + Rows.Add(values); + return this; + } + + /// + /// 加载 List 对象的数据 + /// + /// + /// + /// + public static ConsoleTable From(IEnumerable values) + { + ConsoleTable table = new(); + + List columns = GetColumns().Where(c => !string.IsNullOrWhiteSpace(c)).ToList(); + columns.ForEach(c => + { + table.AddColumn(c); + }); + + values.ToList().ForEach(value => + { + table.AddRow(columns.Select(c => GetColumnValue(value, c)).ToArray()); + }); + + return table; + } + + #endregion 配置数据 + + /// + /// 获取表格字符串 + /// + /// + public override string ToString() + { + StringBuilder builder = new(); + + builder.AppendLine(GetHeader()); + builder.AppendLine(GetExistData()); + builder.AppendLine(GetEnd()); + + return builder.ToString(); + } + + /// + /// 绘制表格 + /// + /// 样式 + /// title颜色 + public void Writer(ConsoleColor color = ConsoleColor.White) + { + ConsoleHelper.WriteColorLine(GetHeader(), color); + ConsoleHelper.WriteInfoLine(GetExistData()); + ConsoleHelper.WriteColorLine(GetEnd(), color); + } + + #region 帮助方法 + + /// + /// 获取完成头 + /// + /// + public string GetHeader() + { + // 创建顶部和底部分隔线 + string top_DownDividerdivider = FinalColumnWides.GetTopAndDwon(FormatInfo.AngleStr, ColumnBlankNum); + // 创建分隔线 + string divider = FinalColumnWides.GetDivider(FormatInfo.AngleStr, ColumnBlankNum); + // 获取标题字符串 + string tilte = FinalColumnWides.GetTitleStr(TitleString, ColumnBlankNum, FormatInfo.DelimiterStr); + // 得到头部字符串 + string headers = ColumnShowFormats.FillFormatTostring(Columns.ToArray(), FormatInfo.DelimiterStr, ColumnBlankNum); + + //绘制表格头 + StringBuilder top = new(); + if (FormatInfo.IsShowTop_Down_DataBorder) top.AppendLine(top_DownDividerdivider); + if (!string.IsNullOrWhiteSpace(tilte)) + { + top.AppendLine(tilte); + top.AppendLine(divider); + } + top.AppendLine(headers); + top.AppendLine(divider); + return top.ToString().Trim(); + } + + /// + /// 获取现有数据 + /// + /// + public string GetExistData() + { + // 创建分隔线 + string divider = FinalColumnWides.GetDivider(FormatInfo.AngleStr, ColumnBlankNum); + // 得到每行数据的字符串 + List rowStrs = Rows.Select(row => ColumnShowFormats.FillFormatTostring(row, FormatInfo.DelimiterStr, ColumnBlankNum)).ToList(); + StringBuilder data = new(); + for (int i = 0; i < rowStrs.Count; i++) + { + if (FormatInfo.IsShowTop_Down_DataBorder && i != 0) data.AppendLine(divider); + data.AppendLine(rowStrs[i]); + } + return data.ToString().Trim(); + } + + /// + /// 获取新行数据 + /// + /// + /// + public string GetNewRow(string[] row) + { + if (row is null) return ""; + + Rows.Add(row); + //内容 + StringBuilder data = new(); + if (Rows.Count > 1) data.AppendLine(FinalColumnWides.GetDivider(FormatInfo.AngleStr, ColumnBlankNum)); + data.AppendLine(ColumnShowFormats.FillFormatTostring(row, FormatInfo.DelimiterStr, ColumnBlankNum)); + return data.ToString().Trim(); + } + + /// + /// 获取底 + /// + /// + public string GetEnd() + { + StringBuilder down = new(); + if (FormatInfo.IsShowTop_Down_DataBorder) down.AppendLine(FinalColumnWides.GetTopAndDwon(FormatInfo.AngleStr, ColumnBlankNum)); + if (EnableCount) down.AppendLine($" Count: {Rows.Count}"); + return down.ToString().Trim(); + } + + /// + /// 获取列名 + /// + /// + /// + private static IEnumerable GetColumns() + { + return typeof(T).GetProperties().Select(x => x.Name).ToArray(); + } + + /// + /// 获取列值 + /// + /// 类型 + /// 数据 + /// 列名 + /// + private static string GetColumnValue(T obj, string column) + { + if (obj == null) return null; + + JObject o = obj as JObject ?? (JObject)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(obj)); + + return o.GetValue(column).ToString(); + } + + #endregion 帮助方法 + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/Console/Table/DrawTableInfo.cs b/Blog.Core.Common/Helper/Console/Table/DrawTableInfo.cs new file mode 100644 index 00000000..850f4ea8 --- /dev/null +++ b/Blog.Core.Common/Helper/Console/Table/DrawTableInfo.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; + +namespace System +{ + /// + /// 绘制表格需要的信息 + /// + public class DrawTableInfo + { + /// + /// 顶部和底部字符串分隔线 + /// + public string Top_DownDivider { get; set; } + + /// + /// 分隔线 + /// + public string Divider { get; set; } + + /// + /// 标题 + /// + public string Title { get; set; } + + /// + /// 头部 + /// + public string Header { get; set; } + + /// + /// 数据 + /// + public List Data { get; set; } + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/Console/Table/TableExtension.cs b/Blog.Core.Common/Helper/Console/Table/TableExtension.cs new file mode 100644 index 00000000..6e26a718 --- /dev/null +++ b/Blog.Core.Common/Helper/Console/Table/TableExtension.cs @@ -0,0 +1,151 @@ +using Blog.Core; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; + +namespace System +{ + public static class TableExtension + { + /// + /// 按照现有数据计算每列最大宽度 + /// + /// 列信息 + /// 现有行数据 + /// 每一列显示宽度 + public static List GetColumnWides(this IList columns, IList rows) + { + List columnLengths = columns.Select((t, i) => + rows.Select(x => x[i])//得到所有行当前列的数据 + .Union(new[] { columns[i] })//连接当前列标题 + .Where(x => x != null) + .Select(x => x.ObjToString().FullHalfLength())//得到该列每一行的字符串长度(计算中文占用两格) + .Max())//到该列中长度最大的以列 + .ToList(); + return columnLengths; + } + + /// + /// 将填充格式转成字符串 + /// 表头和数据行会用到 + /// + /// 一行的显示格式信息 + /// 一行要显示的数据 + /// 间隔符 + /// 每列留白数 + /// + public static string FillFormatTostring(this List format, string[] objs, string delimiterStr, int columnBlankNum) + { + string formatStr = string.Empty; + format.ForEach(f => + { + string ali = f.Alignment == Alignment.Right ? "" : "-"; + string val = objs[f.Index].ObjToString(); + if (val.Length > f.StrLength) + { + //val = val[0..f.StrLength]; + //val = val[0..(val.Length - val.GetChineseText().Length)]; + objs[f.Index] = "...";//标记超出长度 + } + + if (!string.IsNullOrWhiteSpace(formatStr)) formatStr += $"{"".PadLeft(columnBlankNum, ' ')}"; + int alignmentStrLength = Math.Max(f.StrLength - objs[f.Index].ObjToString().GetChineseText().Length, 0);//对其填充空格数量 + formatStr += $"{delimiterStr}{"".PadLeft(columnBlankNum, ' ')}{{{f.Index},{ali}{alignmentStrLength}}}"; + }); + formatStr += $"{"".PadLeft(columnBlankNum, ' ')}{delimiterStr}"; + return string.Format(formatStr, objs); + } + + /// + /// 获取title 字符串 + /// + /// > + /// 标题字符串信息 + /// 列两端留白数 + /// 每列之间分割字符串 + /// + public static string GetTitleStr(this List columnWides, string titleStr, int columnBlankNum, string delimiterStr) + { + if (string.IsNullOrWhiteSpace(titleStr)) return ""; + //一行的宽度 + int rowWide = columnWides.Sum() + columnWides.Count * 2 * columnBlankNum + columnWides.Count + 1; + int blankNum = (rowWide - titleStr.FullHalfLength()) / 2 - 1; + string tilte = $"{delimiterStr}{"".PadLeft(blankNum, ' ')}{titleStr}{"".PadLeft(blankNum, ' ')}{delimiterStr}"; + if (tilte.FullHalfLength() != rowWide) tilte = tilte.Replace($" {delimiterStr}", $" {delimiterStr}"); + return tilte; + } + + /// + /// 获取每行之间的分割行字符串 + /// + /// 列宽信息 + /// 每列之间分割字符串 + /// 列两端留白数 + /// + public static string GetDivider(this List columnWides, string angleStr, int columnBlankNum) + { + string divider = ""; + columnWides.ForEach(i => + { + divider += $"{angleStr}{"".PadRight(i + columnBlankNum * 2, '-')}"; + }); + divider += angleStr; + return divider; + } + + /// + /// 获取头部和底部字符串 + /// + /// 列宽信息 + /// 每列之间分割字符串 + /// 列两端留白数 + /// + public static string GetTopAndDwon(this List columnWides, string angleStr, int columnBlankNum) + { + string top_DownDividerdivider = ""; + columnWides.ForEach(i => + { + if (string.IsNullOrWhiteSpace(top_DownDividerdivider)) top_DownDividerdivider += $"{angleStr}{"".PadRight(i + columnBlankNum * 2, '-')}"; + else top_DownDividerdivider += $"{"".PadRight(i + columnBlankNum * 2 + 1, '-')}"; + }); + top_DownDividerdivider += angleStr; + return top_DownDividerdivider; + } + + /// + /// 获取表格显示样式 + /// + /// + /// + public static StyleInfo GetFormatInfo(this TableStyle format) + { + return format switch + { + TableStyle.Default => new StyleInfo("|", true, "-"), + TableStyle.MarkDown => new StyleInfo("|", false, "|"), + TableStyle.Alternative => new StyleInfo("|", true, "+"), + TableStyle.Minimal => new StyleInfo("", false, "-"), + _ => new StyleInfo(), + }; + } + + /// + /// 获取文本长度,区分全角半角 + /// 全角算两个字符 + /// + /// + public static int FullHalfLength(this string text) + { + return Regex.Replace(text, "[^\x00-\xff]", "**").Length; + //可使用以下方法,不过要看在不同编码中字节数 + //return Encoding.Default.GetByteCount(text); + } + + /// + /// 获取中文文本 + /// + /// + /// + public static string GetChineseText(this string text) => Regex.Replace(text, "[\x00-\xff]", ""); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/Console/Table/TableStyle.cs b/Blog.Core.Common/Helper/Console/Table/TableStyle.cs new file mode 100644 index 00000000..20a662d4 --- /dev/null +++ b/Blog.Core.Common/Helper/Console/Table/TableStyle.cs @@ -0,0 +1,57 @@ +namespace System +{ + /// + /// 表格显示样式 + /// + public enum TableStyle + { + /// + /// 默认格式的表格 + /// + Default = 0, + + /// + /// Markdwon格式的表格 + /// + MarkDown = 1, + + /// + /// 交替格式的表格 + /// + Alternative = 2, + + /// + /// 最简格式的表格 + /// + Minimal = 3 + } + + /// + /// 表格显示样式信息 + /// 通过 Format 获取到的 + /// + public class StyleInfo + { + public StyleInfo(string delimiterStr = "|", bool isShowTop_Down_DataBorder = true, string angleStr = "-") + { + DelimiterStr = delimiterStr; + IsShowTop_Down_DataBorder = isShowTop_Down_DataBorder; + AngleStr = angleStr; + } + + /// + /// 每一列数据之间的间隔字符串 + /// + public string DelimiterStr { get; set; } + + /// + /// 是否显示顶部,底部,和每一行数据之间的横向边框 + /// + public bool IsShowTop_Down_DataBorder { get; set; } + + /// + /// 边角字符串 + /// + public string AngleStr { get; set; } + } +} \ No newline at end of file diff --git a/Blog.Core.EventBus/RabbitMQPersistent/EventBusRabbitMQ.cs b/Blog.Core.EventBus/RabbitMQPersistent/EventBusRabbitMQ.cs index 5eddad7d..7438ddd4 100644 --- a/Blog.Core.EventBus/RabbitMQPersistent/EventBusRabbitMQ.cs +++ b/Blog.Core.EventBus/RabbitMQPersistent/EventBusRabbitMQ.cs @@ -1,6 +1,6 @@ using Autofac; using Blog.Core.Common.Extensions; -using Blog.Core.Common.Helper; +using Blog.Core.Common; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Linq; diff --git a/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs index 5d1a2d8b..4e6384c2 100644 --- a/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs +++ b/Blog.Core.Extensions/EventHandling/BlogQueryIntegrationEventHandler.cs @@ -1,4 +1,4 @@ -using Blog.Core.Common.Helper; +using Blog.Core.Common; using Blog.Core.EventBus.EventHandling; using Blog.Core.IServices; using Microsoft.Extensions.Logging; diff --git a/Blog.Core.Extensions/NacosConfig/NacosListenNamingTask.cs b/Blog.Core.Extensions/NacosConfig/NacosListenNamingTask.cs index 60657bb5..3215703d 100644 --- a/Blog.Core.Extensions/NacosConfig/NacosListenNamingTask.cs +++ b/Blog.Core.Extensions/NacosConfig/NacosListenNamingTask.cs @@ -1,4 +1,5 @@ -using Blog.Core.Common.Helper; +using Blog.Core.Common; +using Blog.Core.Common.Helper; using Microsoft.Extensions.Hosting; using Nacos.V2; using System; diff --git a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs index c3d15f54..31ae3497 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs @@ -1,9 +1,11 @@ using Blog.Core.Common; using Blog.Core.Common.Helper; +using Blog.Core.Common.LogHelper; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; +using System.Collections.Generic; using System.Text; namespace Blog.Core.Extensions @@ -213,5 +215,97 @@ public static void AddAppConfigSetup(this IServiceCollection services, IHostEnvi } } + + public static void AddAppTableConfigSetup(this IServiceCollection services, IHostEnvironment env) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + if (Appsettings.app(new string[] { "Startup", "AppConfigAlert", "Enabled" }).ObjToBool()) + { + + if (env.IsDevelopment()) + { + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + Console.OutputEncoding = Encoding.GetEncoding("GB2312"); + } + + #region 程序配置 + List configInfos = new() + { + new string[] { "当前环境", Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") }, + new string[] { "当前的授权方案", Permissions.IsUseIds4 ? "Ids4" : "JWT" }, + new string[] { "CORS跨域", Appsettings.app("Startup", "Cors", "EnableAllIPs") }, + new string[] { "RabbitMQ消息列队", Appsettings.app("RabbitMQ", "Enabled") }, + new string[] { "事件总线(必须开启消息列队)", Appsettings.app("EventBus", "Enabled") }, + new string[] { "redis消息队列", Appsettings.app("Startup", "RedisMq", "Enabled") }, + new string[] { "是否多库", Appsettings.app("MutiDBEnabled" ) }, + new string[] { "读写分离", Appsettings.app("CQRSEnabled") }, + }; + + new ConsoleTable() + { + TitleString = "Blog.Core 配置集", + Columns = new string[] { "配置名称", "配置信息/是否启动" }, + Rows = configInfos, + EnableCount = false, + Alignment = Alignment.Left, + ColumnBlankNum = 4, + TableStyle = TableStyle.Alternative + }.Writer(ConsoleColor.Blue); + Console.WriteLine(); + #endregion 程序配置 + + #region AOP + List aopInfos = new() +{ + new string[] { "Redis缓存AOP", Appsettings.app("AppSettings", "RedisCachingAOP", "Enabled") }, + new string[] { "内存缓存AOP", Appsettings.app("AppSettings", "MemoryCachingAOP", "Enabled") }, + new string[] { "服务日志AOP", Appsettings.app("AppSettings", "LogAOP", "Enabled" ) }, + new string[] { "事务AOP", Appsettings.app("AppSettings", "TranAOP", "Enabled" ) }, + new string[] { "Sql执行AOP", Appsettings.app("AppSettings", "SqlAOP", "OutToLogFile", "Enabled" ) }, + new string[] { "Sql执行AOP控制台输出", Appsettings.app("AppSettings", "SqlAOP", "OutToConsole", "Enabled" ) }, + }; + + new ConsoleTable + { + TitleString = "AOP", + Columns = new string[] { "配置名称", "配置信息/是否启动" }, + Rows = aopInfos, + EnableCount = false, + Alignment = Alignment.Left, + ColumnBlankNum = 7, + TableStyle = TableStyle.Alternative + }.Writer(ConsoleColor.Blue); + Console.WriteLine(); + #endregion AOP + + #region 中间件 + List MiddlewareInfos = new() + { + new string[] { "请求纪录中间件", Appsettings.app("Middleware", "RecordAccessLogs", "Enabled") }, + new string[] { "IP记录中间件", Appsettings.app("Middleware", "IPLog", "Enabled" ) }, + new string[] { "请求响应日志中间件", Appsettings.app("Middleware", "RequestResponseLog", "Enabled" ) }, + new string[] { "SingnalR实时发送请求数据中间件", Appsettings.app("Middleware", "SignalR", "Enabled" ) }, + new string[] { "IP限流中间件", Appsettings.app("Middleware", "IpRateLimit", "Enabled") }, + new string[] { "性能分析中间件", Appsettings.app("Startup", "MiniProfiler", "Enabled") }, + new string[] { "Consul注册服务", Appsettings.app("Middleware", "Consul", "Enabled") }, + }; + + new ConsoleTable + { + TitleString = "中间件", + Columns = new string[] { "配置名称", "配置信息/是否启动" }, + Rows = MiddlewareInfos, + EnableCount = false, + Alignment = Alignment.Left, + ColumnBlankNum = 3, + TableStyle = TableStyle.Alternative + }.Writer(ConsoleColor.Blue); + Console.WriteLine(); + #endregion 中间件 + + } + + } } } diff --git a/Blog.Core.Tasks/HostedService/Job1TimedService.cs b/Blog.Core.Tasks/HostedService/Job1TimedService.cs index 64032a49..9777affc 100644 --- a/Blog.Core.Tasks/HostedService/Job1TimedService.cs +++ b/Blog.Core.Tasks/HostedService/Job1TimedService.cs @@ -1,4 +1,4 @@ -using Blog.Core.Common.Helper; +using Blog.Core.Common; using Blog.Core.IServices; using Microsoft.Extensions.Hosting; using System; diff --git a/Blog.Core.Tasks/HostedService/Job2TimedService.cs b/Blog.Core.Tasks/HostedService/Job2TimedService.cs index 94cd27a0..ee7f2c5c 100644 --- a/Blog.Core.Tasks/HostedService/Job2TimedService.cs +++ b/Blog.Core.Tasks/HostedService/Job2TimedService.cs @@ -1,4 +1,4 @@ -using Blog.Core.Common.Helper; +using Blog.Core.Common; using Microsoft.Extensions.Hosting; using System; using System.Threading; From 3ba865704a5863881f88df606b6ffa48c81663ef Mon Sep 17 00:00:00 2001 From: Linlccc <1610450962@qq.com> Date: Sat, 26 Feb 2022 14:39:05 +0800 Subject: [PATCH 094/382] =?UTF-8?q?=E9=98=B2=E6=AD=A2=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=E5=86=85=EF=BC=8C=E5=BC=82=E6=AD=A5=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E4=BA=8B=E5=8A=A1=E8=AF=AF=E8=A7=A6=E9=9D=9E=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E7=BA=BF=E7=A8=8B=E4=BA=8B=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Repository/UnitOfWork/UnitOfWork.cs | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs b/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs index dffd0f61..b026caea 100644 --- a/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs +++ b/Blog.Core.Repository/UnitOfWork/UnitOfWork.cs @@ -8,9 +8,12 @@ public class UnitOfWork : IUnitOfWork { private readonly ISqlSugarClient _sqlSugarClient; + private int _tranCount { get; set; } + public UnitOfWork(ISqlSugarClient sqlSugarClient) { _sqlSugarClient = sqlSugarClient; + _tranCount = 0; } /// @@ -25,25 +28,40 @@ public SqlSugarScope GetDbClient() public void BeginTran() { - GetDbClient().BeginTran(); + lock (this) + { + _tranCount++; + GetDbClient().BeginTran(); + } } public void CommitTran() { - try + lock (this) { - GetDbClient().CommitTran(); // - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - GetDbClient().RollbackTran(); + _tranCount--; + if (_tranCount == 0) + { + try + { + GetDbClient().CommitTran(); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + GetDbClient().RollbackTran(); + } + } } } public void RollbackTran() { - GetDbClient().RollbackTran(); + lock (this) + { + _tranCount--; + GetDbClient().RollbackTran(); + } } } From d166b02cd58b206d567555178c57524b438c79dd Mon Sep 17 00:00:00 2001 From: __Leo__ Date: Fri, 4 Mar 2022 15:31:33 +0800 Subject: [PATCH 095/382] Optimize PageModel --- .../Controllers/BaseApiController.cs | 21 ++------ Blog.Core.Model/PageModel.cs | 49 +++++++++++++++++-- Blog.Core.Repository/BASE/BaseRepository.cs | 11 ++--- 3 files changed, 55 insertions(+), 26 deletions(-) diff --git a/Blog.Core.Api/Controllers/BaseApiController.cs b/Blog.Core.Api/Controllers/BaseApiController.cs index 00c59158..5a374ded 100644 --- a/Blog.Core.Api/Controllers/BaseApiController.cs +++ b/Blog.Core.Api/Controllers/BaseApiController.cs @@ -16,7 +16,7 @@ public MessageModel Success(T data, string msg = "成功") response = data, }; } - // [NonAction] + // [NonAction] //public MessageModel Success(T data, string msg = "成功",bool success = true) //{ // return new MessageModel() @@ -59,20 +59,15 @@ public MessageModel Failed(string msg = "失败", int status = 500) }; } [NonAction] - public MessageModel> SuccessPage(int page, int dataCount, List data, int pageCount, string msg = "获取成功") + public MessageModel> SuccessPage(int page, int dataCount, int pageSize, List data, int pageCount, string msg = "获取成功") { return new MessageModel>() { success = true, msg = msg, - response = new PageModel() - { - page = page, - dataCount = dataCount, - data = data, - pageCount = pageCount, - } + response = new PageModel(page, dataCount, pageSize, data) + }; } [NonAction] @@ -83,13 +78,7 @@ public MessageModel> SuccessPage(PageModel pageModel, string { success = true, msg = msg, - response = new PageModel() - { - page = pageModel.page, - dataCount = pageModel.dataCount, - data = pageModel.data, - pageCount = pageModel.pageCount, - } + response = pageModel }; } } diff --git a/Blog.Core.Model/PageModel.cs b/Blog.Core.Model/PageModel.cs index 45a3798e..f6872b66 100644 --- a/Blog.Core.Model/PageModel.cs +++ b/Blog.Core.Model/PageModel.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +using AutoMapper; +using System; +using System.Collections.Generic; namespace Blog.Core.Model { @@ -14,7 +16,7 @@ public class PageModel /// /// 总页数 /// - public int pageCount { get; set; } = 6; + public int pageCount => (int)Math.Ceiling((decimal)dataCount / PageSize); /// /// 数据总数 /// @@ -22,12 +24,53 @@ public class PageModel /// /// 每页大小 /// - public int PageSize { set; get; } + public int PageSize { set; get; } = 20; /// /// 返回数据 /// public List data { get; set; } + public PageModel() { } + + public PageModel(int page, int dataCount, int pageSize, List data) + { + this.page = page; + this.dataCount = dataCount; + PageSize = pageSize; + this.data = data; + } + + public PageModel ConvertTo() + { + return new PageModel(page, dataCount, PageSize, default); + } + + + public PageModel ConvertTo(IMapper mapper) + { + var model = ConvertTo(); + + if (data != null) + { + model.data = mapper.Map>(data); + } + + return model; + } + + + public PageModel ConvertTo(IMapper mapper, Action options) + { + var model = ConvertTo(); + if (data != null) + { + model.data = mapper.Map>(data, options); + } + + return model; + + } + } } diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 381801d7..cd088930 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -97,7 +97,7 @@ public async Task Add(TEntity entity) //return (int)i; var insert = _db.Insertable(entity); - + //这里你可以返回TEntity,这样的话就可以获取id值,无论主键是什么类型 //var return3 = await insert.ExecuteReturnEntityAsync(); @@ -453,8 +453,7 @@ public async Task> QueryPage(Expression> .WhereIF(whereExpression != null, whereExpression) .ToPageListAsync(intPageIndex, intPageSize, totalCount); - int pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intPageSize.ObjToDecimal())).ObjToInt(); - return new PageModel() { dataCount = totalCount, pageCount = pageCount, page = intPageIndex, PageSize = intPageSize, data = list }; + return new PageModel(intPageIndex, totalCount, intPageSize, list); } @@ -510,8 +509,7 @@ public async Task> QueryTabsPage( .OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds) .WhereIF(whereExpression != null, whereExpression) .ToPageListAsync(intPageIndex, intPageSize, totalCount); - int pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intPageSize.ObjToDecimal())).ObjToInt(); - return new PageModel() { dataCount = totalCount, pageCount = pageCount, page = intPageIndex, PageSize = intPageSize, data = list }; + return new PageModel(intPageIndex, totalCount, intPageSize, list); } /// @@ -543,8 +541,7 @@ public async Task> QueryTabsPage( .OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds) .WhereIF(whereExpression != null, whereExpression) .ToPageListAsync(intPageIndex, intPageSize, totalCount); - int pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intPageSize.ObjToDecimal())).ObjToInt(); - return new PageModel() { dataCount = totalCount, pageCount = pageCount, page = intPageIndex, PageSize = intPageSize, data = list }; + return new PageModel(intPageIndex, totalCount, intPageSize, list); } //var exp = Expressionable.Create() From 113c8fd94a344dfd0f4950870c3ef8406e8bb04e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 4 Mar 2022 21:49:07 +0800 Subject: [PATCH 096/382] Fixed #251 bug --- Blog.Core.Common/Blog.Core.Common.csproj | 4 ---- Blog.Core.Model/Blog.Core.Model.csproj | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 1fb4ba6c..1887b4eb 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -27,10 +27,6 @@ - - - - diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index ed0fb852..e97f4e95 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -16,6 +16,8 @@ + + From ca11b2a627494d34f0bd739d66cd68df61bad250 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 8 Mar 2022 11:40:26 +0800 Subject: [PATCH 097/382] fix: update package version --- Blog.Core.Api/Blog.Core.xml | 6 ++++++ Blog.Core.Api/Controllers/LoginController.cs | 17 ++++++++++++++--- CreateYourProject.bat | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 32ac8c50..4c062d5f 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -239,6 +239,12 @@ + + + weixin登录 + + + 接口管理 diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index 55c20827..52a7a8b7 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -14,7 +14,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; - + namespace Blog.Core.Controllers { @@ -62,11 +62,11 @@ public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServic [Route("Token")] public async Task> GetJwtStr(string name, string pass) { - + string jwtStr = string.Empty; bool suc = false; //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 - + var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass)); if (user != null) { @@ -285,6 +285,17 @@ public dynamic SwgLogin([FromBody] SwaggerLoginRequest loginRequest) return new { result = false }; } + + /// + /// weixin登录 + /// + /// + [HttpGet] + [Route("wxLogin")] + public dynamic WxLogin(string g = "", string token = "") + { + return new { g, token }; + } } public class SwaggerLoginRequest diff --git a/CreateYourProject.bat b/CreateYourProject.bat index 6bee0420..c15c6efb 100644 --- a/CreateYourProject.bat +++ b/CreateYourProject.bat @@ -3,7 +3,7 @@ echo "if u install template error,pls connect QQ:3143422472" color 3 -dotnet new -i Blog.Core.Webapi.Template::2.6.2 +dotnet new -i Blog.Core.Webapi.Template::2.6.3 set /p OP=Please set your project name(for example:BlogMicService): From c06e3f16b0650cfddaed30b4974cf7aac86259b6 Mon Sep 17 00:00:00 2001 From: KimiDing Date: Wed, 9 Mar 2022 17:59:49 +0800 Subject: [PATCH 098/382] =?UTF-8?q?Http=20Polly=E9=9B=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.xml | 2 +- Blog.Core.Api/Controllers/ValuesController.cs | 25 +- Blog.Core.Api/Startup.cs | 1 + Blog.Core.Common/HttpPolly/HttpPollyHelper.cs | 354 ++++++++++++++++++ .../HttpPolly/IHttpPollyHelper.cs | 19 + .../Blog.Core.Extensions.csproj | 1 + .../ServiceExtensions/HttpPollySetup.cs | 56 +++ Blog.Core.Model/HttpEnum.cs | 10 + 8 files changed, 466 insertions(+), 2 deletions(-) create mode 100644 Blog.Core.Common/HttpPolly/HttpPollyHelper.cs create mode 100644 Blog.Core.Common/HttpPolly/IHttpPollyHelper.cs create mode 100644 Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs create mode 100644 Blog.Core.Model/HttpEnum.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 4c062d5f..a2fa3a8e 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -722,7 +722,7 @@ Values控制器 - + ValuesController diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index bdc83da9..9f53ed82 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -1,6 +1,7 @@ using AutoMapper; using Blog.Core.Common; using Blog.Core.Common.HttpContextUser; +using Blog.Core.Common.HttpPolly; using Blog.Core.Common.HttpRestSharp; using Blog.Core.Common.WebApiClients.HttpApis; using Blog.Core.EventBus; @@ -44,6 +45,7 @@ public class ValuesController : ControllerBase private readonly IBlogApi _blogApi; private readonly IDoubanApi _doubanApi; readonly IBlogArticleServices _blogArticleServices; + private readonly IHttpPollyHelper _httpPollyHelper; /// /// ValuesController @@ -64,7 +66,8 @@ public ValuesController(IBlogArticleServices blogArticleServices , IRoleModulePermissionServices roleModulePermissionServices , IUser user, IPasswordLibServices passwordLibServices , IBlogApi blogApi - , IDoubanApi doubanApi) + , IDoubanApi doubanApi + , IHttpPollyHelper httpPollyHelper) { // 测试 Authorize 和 mapper _mapper = mapper; @@ -82,6 +85,8 @@ public ValuesController(IBlogArticleServices blogArticleServices _blogArticleServices = blogArticleServices; // 测试redis消息队列 _blogArticleServices = blogArticleServices; + // httpPolly + _httpPollyHelper = httpPollyHelper; } [HttpGet] @@ -390,6 +395,24 @@ public async Task GetConfigByAppllo(string key) return await Task.FromResult(Appsettings.app(key)); } #endregion + + #region HttpPolly + [HttpPost] + [AllowAnonymous] + public async Task HttpPollyPost() + { + var response = await _httpPollyHelper.PostAsync(HttpEnum.LocalHost, "/api/ElasticDemo/EsSearchTest", "{\"from\": 0,\"size\": 10,\"word\": \"非那雄安\"}"); + + return response; + } + + [HttpGet] + [AllowAnonymous] + public async Task HttpPollyGet() + { + return await _httpPollyHelper.GetAsync(HttpEnum.LocalHost, "/api/ElasticDemo/GetDetailInfo?esid=3130&esindex=chinacodex"); + } + #endregion } public class ClaimDto { diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index bc3d779f..1166fc4e 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -97,6 +97,7 @@ public void ConfigureServices(IServiceCollection services) services.AddDistributedMemoryCache(); services.AddSession(); + services.AddHttpPollySetup(); services.AddControllers(o => { diff --git a/Blog.Core.Common/HttpPolly/HttpPollyHelper.cs b/Blog.Core.Common/HttpPolly/HttpPollyHelper.cs new file mode 100644 index 00000000..f1a1e84c --- /dev/null +++ b/Blog.Core.Common/HttpPolly/HttpPollyHelper.cs @@ -0,0 +1,354 @@ +using Blog.Core.Model; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Common.HttpPolly +{ + public class HttpPollyHelper : IHttpPollyHelper + { + private readonly IHttpClientFactory _clientFactory; + + public HttpPollyHelper(IHttpClientFactory httpClientFactory) + { + _clientFactory = httpClientFactory; + } + + public async Task PostAsync(HttpEnum httpEnum, string url, R request, Dictionary headers = null) + { + try + { + var client = _clientFactory.CreateClient(httpEnum.ToString()); + if (headers != null) + { + foreach (var header in headers) + { + if (!client.DefaultRequestHeaders.Contains(header.Key)) + { + client.DefaultRequestHeaders.Add(header.Key, header.Value); + } + } + } + + var stringContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); + var response = await client.PostAsync(url, stringContent); + + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + string result = await response.Content.ReadAsStringAsync(); + return JsonConvert.DeserializeObject(result); + } + else + { + throw new Exception($"Http Error StatusCode:{response.StatusCode}"); + } + } + catch (Exception) + { + + throw; + } + + } + + public async Task PostAsync(HttpEnum httpEnum, string url, string request, Dictionary headers = null) + { + try + { + var client = _clientFactory.CreateClient(httpEnum.ToString()); + if (headers != null) + { + foreach (var header in headers) + { + if (!client.DefaultRequestHeaders.Contains(header.Key)) + { + client.DefaultRequestHeaders.Add(header.Key, header.Value); + } + } + } + + var stringContent = new StringContent(request, Encoding.UTF8, "application/json"); + var response = await client.PostAsync(url, stringContent); + + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + string result = await response.Content.ReadAsStringAsync(); + return JsonConvert.DeserializeObject(result); + } + else + { + throw new Exception($"Http Error StatusCode:{response.StatusCode}"); + } + + } + catch (Exception) + { + + throw; + } + + } + + public async Task PostAsync(HttpEnum httpEnum, string url, R request, Dictionary headers = null) + { + try + { + var client = _clientFactory.CreateClient(httpEnum.ToString()); + if (headers != null) + { + foreach (var header in headers) + { + if (!client.DefaultRequestHeaders.Contains(header.Key)) + { + client.DefaultRequestHeaders.Add(header.Key, header.Value); + } + } + } + + var stringContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); + var response = await client.PostAsync(url, stringContent); + + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + return await response.Content.ReadAsStringAsync(); + } + else + { + throw new Exception($"Http Error StatusCode:{response.StatusCode}"); + } + } + catch (Exception) + { + + throw; + } + + } + + public async Task PostAsync(HttpEnum httpEnum, string url, string request, Dictionary headers = null) + { + try + { + var client = _clientFactory.CreateClient(httpEnum.ToString()); + if (headers != null) + { + foreach (var header in headers) + { + if (!client.DefaultRequestHeaders.Contains(header.Key)) + { + client.DefaultRequestHeaders.Add(header.Key, header.Value); + } + } + } + + var stringContent = new StringContent(request, Encoding.UTF8, "application/json"); + var response = await client.PostAsync(url, stringContent); + + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + return await response.Content.ReadAsStringAsync(); + } + else + { + throw new Exception($"Http Error StatusCode:{response.StatusCode}"); + } + + } + catch (Exception) + { + + throw; + } + + } + + public async Task GetAsync(HttpEnum httpEnum, string url, Dictionary headers = null) + { + try + { + var client = _clientFactory.CreateClient(httpEnum.ToString()); + if (headers != null) + { + foreach (var header in headers) + { + if (!client.DefaultRequestHeaders.Contains(header.Key)) + { + client.DefaultRequestHeaders.Add(header.Key, header.Value); + } + } + } + + var response = await client.GetAsync(url); + + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + string result = await response.Content.ReadAsStringAsync(); + return JsonConvert.DeserializeObject(result); + } + else + { + throw new Exception($"Http Error StatusCode:{response.StatusCode}"); + } + + } + catch (Exception) + { + + throw; + } + + } + + public async Task GetAsync(HttpEnum httpEnum, string url, Dictionary headers = null) + { + try + { + var client = _clientFactory.CreateClient(httpEnum.ToString()); + if (headers != null) + { + foreach (var header in headers) + { + if (!client.DefaultRequestHeaders.Contains(header.Key)) + { + client.DefaultRequestHeaders.Add(header.Key, header.Value); + } + } + } + + var response = await client.GetAsync(url); + + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + return await response.Content.ReadAsStringAsync(); ; + } + else + { + throw new Exception($"Http Error StatusCode:{response.StatusCode}"); + } + + } + catch (Exception) + { + + throw; + } + + } + + public async Task PutAsync(HttpEnum httpEnum, string url, R request, Dictionary headers = null) + { + try + { + var client = _clientFactory.CreateClient(httpEnum.ToString()); + if (headers != null) + { + foreach (var header in headers) + { + if (!client.DefaultRequestHeaders.Contains(header.Key)) + { + client.DefaultRequestHeaders.Add(header.Key, header.Value); + } + } + } + + var stringContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); + var response = await client.PutAsync(url, stringContent); + + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + string result = await response.Content.ReadAsStringAsync(); + return JsonConvert.DeserializeObject(result); + } + else + { + throw new Exception($"Http Error StatusCode:{response.StatusCode}"); + } + + } + catch (Exception) + { + + throw; + } + + } + + public async Task PutAsync(HttpEnum httpEnum, string url, string request, Dictionary headers = null) + { + try + { + var client = _clientFactory.CreateClient(httpEnum.ToString()); + if (headers != null) + { + foreach (var header in headers) + { + if (!client.DefaultRequestHeaders.Contains(header.Key)) + { + client.DefaultRequestHeaders.Add(header.Key, header.Value); + } + } + } + + var stringContent = new StringContent(request, Encoding.UTF8, "application/json"); + var response = await client.PutAsync(url, stringContent); + + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + string result = await response.Content.ReadAsStringAsync(); + return JsonConvert.DeserializeObject(result); + } + else + { + throw new Exception($"Http Error StatusCode:{response.StatusCode}"); + } + + } + catch (Exception) + { + + throw; + } + + } + + public async Task DeleteAsync(HttpEnum httpEnum, string url, Dictionary headers = null) + { + try + { + var client = _clientFactory.CreateClient(httpEnum.ToString()); + if (headers != null) + { + foreach (var header in headers) + { + if (!client.DefaultRequestHeaders.Contains(header.Key)) + { + client.DefaultRequestHeaders.Add(header.Key, header.Value); + } + } + } + + var response = await client.DeleteAsync(url); + + if (response.StatusCode == System.Net.HttpStatusCode.OK) + { + string result = await response.Content.ReadAsStringAsync(); + return JsonConvert.DeserializeObject(result); + } + else + { + throw new Exception($"Http Error StatusCode:{response.StatusCode}"); + } + + } + catch (Exception) + { + + throw; + } + + } + } +} diff --git a/Blog.Core.Common/HttpPolly/IHttpPollyHelper.cs b/Blog.Core.Common/HttpPolly/IHttpPollyHelper.cs new file mode 100644 index 00000000..a3c8b3f6 --- /dev/null +++ b/Blog.Core.Common/HttpPolly/IHttpPollyHelper.cs @@ -0,0 +1,19 @@ +using Blog.Core.Model; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Common.HttpPolly +{ + public interface IHttpPollyHelper + { + Task PostAsync(HttpEnum httpEnum, string url, R request, Dictionary headers = null); + Task PostAsync(HttpEnum httpEnum, string url, string request, Dictionary headers = null); + Task PostAsync(HttpEnum httpEnum, string url, string request, Dictionary headers = null); + Task PostAsync(HttpEnum httpEnum, string url, R request, Dictionary headers = null); + Task GetAsync(HttpEnum httpEnum, string url, Dictionary headers = null); + Task GetAsync(HttpEnum httpEnum, string url, Dictionary headers = null); + Task PutAsync(HttpEnum httpEnum, string url, R request, Dictionary headers = null); + Task PutAsync(HttpEnum httpEnum, string url, string request, Dictionary headers = null); + Task DeleteAsync(HttpEnum httpEnum, string url, Dictionary headers = null); + } +} diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 626abbf3..4adc30df 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -15,6 +15,7 @@ + diff --git a/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs b/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs new file mode 100644 index 00000000..e8e3929f --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs @@ -0,0 +1,56 @@ +using Blog.Core.Common.HttpPolly; +using Blog.Core.Model; +using Microsoft.Extensions.DependencyInjection; +using Polly; +using Polly.Extensions.Http; +using Polly.Timeout; +using System; +using System.Net.Http; + +namespace Blog.Core.Extensions +{ + /// + /// Cors 启动服务 + /// + public static class HttpPollySetup + { + public static void AddHttpPollySetup(this IServiceCollection services) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + #region Polly策略 + var retryPolicy = HttpPolicyExtensions + .HandleTransientHttpError() + .Or() // 若超时则抛出此异常 + .WaitAndRetryAsync(new[] + { + TimeSpan.FromSeconds(1), + TimeSpan.FromSeconds(5), + TimeSpan.FromSeconds(10) + }); + + // 为每个重试定义超时策略 + var timeoutPolicy = Policy.TimeoutAsync(10); + #endregion + + services.AddHttpClient(HttpEnum.Common.ToString(), c => + { + c.DefaultRequestHeaders.Add("Accept", "application/json"); + }) + .AddPolicyHandler(retryPolicy) + // 将超时策略放在重试策略之内,每次重试会应用此超时策略 + .AddPolicyHandler(timeoutPolicy); + + services.AddHttpClient(HttpEnum.LocalHost.ToString(), c => + { + c.BaseAddress = new Uri("http://www.localhost.com"); + c.DefaultRequestHeaders.Add("Accept", "application/json"); + }) + .AddPolicyHandler(retryPolicy) + // 将超时策略放在重试策略之内,每次重试会应用此超时策略 + .AddPolicyHandler(timeoutPolicy); + + services.AddSingleton(); + } + } +} diff --git a/Blog.Core.Model/HttpEnum.cs b/Blog.Core.Model/HttpEnum.cs new file mode 100644 index 00000000..05e25582 --- /dev/null +++ b/Blog.Core.Model/HttpEnum.cs @@ -0,0 +1,10 @@ +using System; + +namespace Blog.Core.Model +{ + public enum HttpEnum + { + Common, + LocalHost + } +} From ce13a5466d39c391a9c9ece195489879d09a3d2c Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Thu, 10 Mar 2022 14:52:17 +0800 Subject: [PATCH 099/382] Update README.md --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 6a58321f..2b3e7185 100644 --- a/README.md +++ b/README.md @@ -115,14 +115,12 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x ## 贡献者们 -Thanks goes to these wonderful people ([✨](https://github.com/anjoy8/Blog.Core/graphs/contributors)):(排名暂时按提交顺序) - - -| [
    anjoy8](https://github.com/anjoy8)
    💻📖 💡 | [
    hudingwen](https://github.com/hudingwen)
    💻 👀 | [
    binyly ](https://github.com/binyly)
    💻 👀 📖 👍 | [
    wuare ](https://github.com/wuare)
    💻😀 | [
    skang0401 ](https://github.com/skang0401)
    📖| [
    Jamnine](https://github.com/Jamnine)
    💻 🌍| -| :---: | :---: | :---: | :---: | :---: | :---: | -|[
    aion1998 ](https://github.com/aion1998)
    👍|[
    RLei123 ](https://github.com/RLei123)
    😄|[
    cluyun ](https://github.com/cluyun)
    🍬|[
    blue20171027 ](https://github.com/blue20171027)
    ✈|[
    anewboyz ](https://github.com/anewboyz)
    💻|[
    jxd728 ](https://github.com/jxd728)
    🌍| -|[
    wmchuang ](https://github.com/wmchuang)
    🍟|[
    liuzhenyulive ](https://github.com/liuzhenyulive)
    💻|[
    JsonBy ](https://github.com/JsonBy)
    💻 💡 🤔|[
    hsxian ](https://github.com/hsxian)
    🎉|[
    cuno92 ](https://github.com/cuno92)
    📖|[
    317447880 ](https://github.com/317447880)
    💻| -|[
    Shuisen ](https://github.com/Shuisen)
    💻|[
    www5255977 ](https://github.com/www5255977)
    🌍|[
    867824092 ](https://github.com/867824092)
    🍳| +Thanks goes to these wonderful people ([✨](https://github.com/anjoy8/Blog.Core/graphs/contributors)):(排名暂时按提交顺序) + + + + + This project follows the [all-contributors](https://github.com/anjoy8/Blog.Core/graphs/contributors) specification. From 39ecd79804492043e3ecc4836ea5d34edb28d1be Mon Sep 17 00:00:00 2001 From: __Leo__ Date: Fri, 11 Mar 2022 13:25:29 +0800 Subject: [PATCH 100/382] Enable description of enum in swagger --- Blog.Core.Api/Startup.cs | 3 +++ Blog.Core.Extensions/Blog.Core.Extensions.csproj | 1 + Blog.Core.Extensions/ServiceExtensions/SwaggerSetup.cs | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index bc3d779f..f7c9231e 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -18,6 +18,7 @@ using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; using System.IdentityModel.Tokens.Jwt; using System.Reflection; @@ -125,6 +126,8 @@ public void ConfigureServices(IServiceCollection services) //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; //设置本地时间而非UTC时间 options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; + //添加Enum转string + options.SerializerSettings.Converters.Add(new StringEnumConverter()); }); services.Replace(ServiceDescriptor.Transient()); diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 626abbf3..47307d63 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -27,6 +27,7 @@ + diff --git a/Blog.Core.Extensions/ServiceExtensions/SwaggerSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SwaggerSetup.cs index e563b335..0acb131c 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SwaggerSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SwaggerSetup.cs @@ -45,7 +45,7 @@ public static void AddSwaggerSetup(this IServiceCollection services) c.OrderActionsBy(o => o.RelativePath); }); - + c.UseInlineDefinitionsForEnums(); try { //这个就是刚刚配置的xml文件名 @@ -106,6 +106,7 @@ public static void AddSwaggerSetup(this IServiceCollection services) }); + services.AddSwaggerGenNewtonsoftSupport(); } } From 9f77e70772af8d7fd2e3807cabadcea1b1821999 Mon Sep 17 00:00:00 2001 From: __Leo__ Date: Fri, 11 Mar 2022 15:01:06 +0800 Subject: [PATCH 101/382] Add enum demo to #254 --- Blog.Core.Api/Blog.Core.Model.xml | 5 ++++ Blog.Core.Api/Controllers/ValuesController.cs | 4 ++++ Blog.Core.Model/ViewModels/EnumDemoDto.cs | 23 +++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 Blog.Core.Model/ViewModels/EnumDemoDto.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 2a49c502..2d8c7661 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -1689,6 +1689,11 @@
    + + + Type Description balabala + + 留言信息展示类 diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 9f53ed82..e42efca7 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -413,6 +413,10 @@ public async Task HttpPollyGet() return await _httpPollyHelper.GetAsync(HttpEnum.LocalHost, "/api/ElasticDemo/GetDetailInfo?esid=3130&esindex=chinacodex"); } #endregion + + [HttpPost] + [AllowAnonymous] + public string TestEnum(EnumDemoDto dto)=>dto.Type.ToString(); } public class ClaimDto { diff --git a/Blog.Core.Model/ViewModels/EnumDemoDto.cs b/Blog.Core.Model/ViewModels/EnumDemoDto.cs new file mode 100644 index 00000000..ae6ffbdd --- /dev/null +++ b/Blog.Core.Model/ViewModels/EnumDemoDto.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Model.ViewModels +{ + public class EnumDemoDto + { + public int Id { get; set; } + /// + /// Type Description balabala + /// + public EnumType Type { get; set; } + } + + + public enum EnumType + { + foo, bar, baz + } +} From e3ca4540750cb7f8c2a4faf667e021df022ad109 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 11 Mar 2022 16:38:18 +0800 Subject: [PATCH 102/382] :feet: add param --- Blog.Core.Api/Controllers/ValuesController.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index e42efca7..d214ca07 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -59,6 +59,7 @@ public class ValuesController : ControllerBase /// /// /// + /// public ValuesController(IBlogArticleServices blogArticleServices , IMapper mapper , IAdvertisementServices advertisementServices From 945ce5faa16ac57e23e4f223d0aaab91a861a211 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 11 Mar 2022 18:18:40 +0800 Subject: [PATCH 103/382] Fixed #256 bug --- Blog.Core.Api/connectionstrings.json | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 Blog.Core.Api/connectionstrings.json diff --git a/Blog.Core.Api/connectionstrings.json b/Blog.Core.Api/connectionstrings.json deleted file mode 100644 index 5f941362..00000000 --- a/Blog.Core.Api/connectionstrings.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "connectionstrings": { - "sqlserver": "Server=xxx.picp;Database=blogcorets;User Id=;Password=;", - "oracle": "oracle-connectionstring", - "postgresql": "Server=log4net.database.test;Port=5432;Database=log4net;User ID=;Pooling=true;Password=;", - "mysql": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=;Pwd=", - "mysqlOLD": "Server=log4net.database.test;Port=3306;Database=log4net;Uid=;Pwd=;allow user variables=true;SslMode=Required;maxpoolsize=100;Convert Zero Datetime=true;CharSet=utf8;CheckParameters=false;" - } -} From cf457503aee5dca30d8a3f99dea93cde8c4a9dbe Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 11 Mar 2022 18:55:36 +0800 Subject: [PATCH 104/382] Update CreateYourProject.bat --- CreateYourProject.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CreateYourProject.bat b/CreateYourProject.bat index c15c6efb..9f8dcc22 100644 --- a/CreateYourProject.bat +++ b/CreateYourProject.bat @@ -3,7 +3,7 @@ echo "if u install template error,pls connect QQ:3143422472" color 3 -dotnet new -i Blog.Core.Webapi.Template::2.6.3 +dotnet new -i Blog.Core.Webapi.Template set /p OP=Please set your project name(for example:BlogMicService): From 1093a7b76aa66f39b60aa1f6948413731d7f0ddf Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 14 Mar 2022 15:15:05 +0800 Subject: [PATCH 105/382] fix: format the code. #236 --- Blog.Core.Api/Blog.Core.Model.xml | 8 +- Blog.Core.Api/Blog.Core.xml | 1 + .../Blog.Core.ConsoleApp.csproj | 8 - Blog.Core.ConsoleApp/Program.cs | 12 -- Blog.Core.IServices/BASE/IBaseServices.cs | 26 +-- Blog.Core.Model/PaginationModel.cs | 14 +- Blog.Core.Repository/BASE/BaseRepository.cs | 199 ++++++++---------- Blog.Core.Repository/BASE/IBaseRepository.cs | 64 +++--- Blog.Core.Services/BASE/BaseServices.cs | 116 +++++----- Blog.Core.sln | 7 - 10 files changed, 197 insertions(+), 258 deletions(-) delete mode 100644 Blog.Core.ConsoleApp/Blog.Core.ConsoleApp.csproj delete mode 100644 Blog.Core.ConsoleApp/Program.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 2d8c7661..d6c167e3 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -1514,22 +1514,22 @@ 时间:2020-4-3 20:31:26 - + 当前页 - + 每页大小 - + 排序字段(例如:id desc,time asc) - + 查询条件( 例如:id = 1 and name = 小明) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index a2fa3a8e..eb1ea542 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -735,6 +735,7 @@ + diff --git a/Blog.Core.ConsoleApp/Blog.Core.ConsoleApp.csproj b/Blog.Core.ConsoleApp/Blog.Core.ConsoleApp.csproj deleted file mode 100644 index 41f1d5ad..00000000 --- a/Blog.Core.ConsoleApp/Blog.Core.ConsoleApp.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - - Exe - net6.0 - - - diff --git a/Blog.Core.ConsoleApp/Program.cs b/Blog.Core.ConsoleApp/Program.cs deleted file mode 100644 index 87e5d801..00000000 --- a/Blog.Core.ConsoleApp/Program.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace Blog.Core.ConsoleApp -{ - class Program - { - static void Main(string[] args) - { - Console.WriteLine("Hello World!"); - } - } -} diff --git a/Blog.Core.IServices/BASE/IBaseServices.cs b/Blog.Core.IServices/BASE/IBaseServices.cs index dbc242c1..27daae98 100644 --- a/Blog.Core.IServices/BASE/IBaseServices.cs +++ b/Blog.Core.IServices/BASE/IBaseServices.cs @@ -26,32 +26,32 @@ public interface IBaseServices where TEntity : class Task DeleteByIds(object[] ids); Task Update(TEntity model); - Task Update(TEntity entity, string strWhere); + Task Update(TEntity entity, string where); Task Update(object operateAnonymousObjects); - Task Update(TEntity entity, List lstColumns = null, List lstIgnoreColumns = null, string strWhere = ""); + Task Update(TEntity entity, List lstColumns = null, List lstIgnoreColumns = null, string where = ""); Task> Query(); - Task> Query(string strWhere); + Task> Query(string where); Task> Query(Expression> whereExpression); - Task> Query(Expression> whereExpression, string strOrderByFileds); + Task> Query(Expression> whereExpression, string orderByFields); Task> Query(Expression> expression); - Task> Query(Expression> expression, Expression> whereExpression,string strOrderByFileds); + Task> Query(Expression> expression, Expression> whereExpression, string orderByFields); Task> Query(Expression> whereExpression, Expression> orderByExpression, bool isAsc = true); - Task> Query(string strWhere, string strOrderByFileds); - Task> QuerySql(string strSql, SugarParameter[] parameters = null); - Task QueryTable(string strSql, SugarParameter[] parameters = null); + Task> Query(string where, string orderByFields); + Task> QuerySql(string sql, SugarParameter[] parameters = null); + Task QueryTable(string sql, SugarParameter[] parameters = null); - Task> Query(Expression> whereExpression, int intTop, string strOrderByFileds); - Task> Query(string strWhere, int intTop, string strOrderByFileds); + Task> Query(Expression> whereExpression, int top, string orderByFields); + Task> Query(string where, int top, string orderByFields); Task> Query( - Expression> whereExpression, int intPageIndex, int intPageSize, string strOrderByFileds); - Task> Query(string strWhere, int intPageIndex, int intPageSize, string strOrderByFileds); + Expression> whereExpression, int pageIndex, int pageSize, string orderByFields); + Task> Query(string where, int pageIndex, int pageSize, string orderByFields); - Task> QueryPage(Expression> whereExpression, int intPageIndex = 1, int intPageSize = 20, string strOrderByFileds = null); + Task> QueryPage(Expression> whereExpression, int pageIndex = 1, int pageSize = 20, string orderByFields = null); Task> QueryMuch( Expression> joinExpression, diff --git a/Blog.Core.Model/PaginationModel.cs b/Blog.Core.Model/PaginationModel.cs index 3afee0b2..f79b3316 100644 --- a/Blog.Core.Model/PaginationModel.cs +++ b/Blog.Core.Model/PaginationModel.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Blog.Core.Model +namespace Blog.Core.Model { /// /// 所需分页参数 @@ -14,18 +10,18 @@ public class PaginationModel /// /// 当前页 /// - public int intPageIndex { get; set; } = 1; + public int PageIndex { get; set; } = 1; /// /// 每页大小 /// - public int intPageSize { get; set; } = 10; + public int PageSize { get; set; } = 10; /// /// 排序字段(例如:id desc,time asc) /// - public string strOrderByFileds { get; set; } + public string OrderByFileds { get; set; } /// /// 查询条件( 例如:id = 1 and name = 小明) /// - public string conditions { get; set; } + public string Conditions { get; set; } } } diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index cd088930..bb83b4c5 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -16,7 +16,7 @@ namespace Blog.Core.Repository.Base public class BaseRepository : IBaseRepository where TEntity : class, new() { private readonly IUnitOfWork _unitOfWork; - private SqlSugarScope _dbBase; + private readonly SqlSugarScope _dbBase; private ISqlSugarClient _db { @@ -42,10 +42,7 @@ private ISqlSugarClient _db } } - public ISqlSugarClient Db - { - get { return _db; } - } + public ISqlSugarClient Db => _db; public BaseRepository(IUnitOfWork unitOfWork) { @@ -148,16 +145,14 @@ public async Task Update(TEntity entity) return await _db.Updateable(entity).ExecuteCommandHasChangeAsync(); } - public async Task Update(TEntity entity, string strWhere) + public async Task Update(TEntity entity, string where) { - //return await Task.Run(() => _db.Updateable(entity).Where(strWhere).ExecuteCommand() > 0); - return await _db.Updateable(entity).Where(strWhere).ExecuteCommandHasChangeAsync(); + return await _db.Updateable(entity).Where(where).ExecuteCommandHasChangeAsync(); } - public async Task Update(string strSql, SugarParameter[] parameters = null) + public async Task Update(string sql, SugarParameter[] parameters = null) { - //return await Task.Run(() => _db.Ado.ExecuteCommand(strSql, parameters) > 0); - return await _db.Ado.ExecuteCommandAsync(strSql, parameters) > 0; + return await _db.Ado.ExecuteCommandAsync(sql, parameters) > 0; } public async Task Update(object operateAnonymousObjects) @@ -169,24 +164,9 @@ public async Task Update( TEntity entity, List lstColumns = null, List lstIgnoreColumns = null, - string strWhere = "" + string where = "" ) { - //IUpdateable up = await Task.Run(() => _db.Updateable(entity)); - //if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0) - //{ - // up = await Task.Run(() => up.IgnoreColumns(it => lstIgnoreColumns.Contains(it))); - //} - //if (lstColumns != null && lstColumns.Count > 0) - //{ - // up = await Task.Run(() => up.UpdateColumns(it => lstColumns.Contains(it))); - //} - //if (!string.IsNullOrEmpty(strWhere)) - //{ - // up = await Task.Run(() => up.Where(strWhere)); - //} - //return await Task.Run(() => up.ExecuteCommand()) > 0; - IUpdateable up = _db.Updateable(entity); if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0) { @@ -196,9 +176,9 @@ public async Task Update( { up = up.UpdateColumns(lstColumns.ToArray()); } - if (!string.IsNullOrEmpty(strWhere)) + if (!string.IsNullOrEmpty(where)) { - up = up.Where(strWhere); + up = up.Where(where); } return await up.ExecuteCommandHasChangeAsync(); } @@ -210,8 +190,6 @@ public async Task Update( /// public async Task Delete(TEntity entity) { - //var i = await Task.Run(() => _db.Deleteable(entity).ExecuteCommand()); - //return i > 0; return await _db.Deleteable(entity).ExecuteCommandHasChangeAsync(); } @@ -222,8 +200,6 @@ public async Task Delete(TEntity entity) /// public async Task DeleteById(object id) { - //var i = await Task.Run(() => _db.Deleteable(id).ExecuteCommand()); - //return i > 0; return await _db.Deleteable(id).ExecuteCommandHasChangeAsync(); } @@ -234,8 +210,6 @@ public async Task DeleteById(object id) /// public async Task DeleteByIds(object[] ids) { - //var i = await Task.Run(() => _db.Deleteable().In(ids).ExecuteCommand()); - //return i > 0; return await _db.Deleteable().In(ids).ExecuteCommandHasChangeAsync(); } @@ -255,12 +229,11 @@ public async Task> Query() /// 功能描述:查询数据列表 /// 作  者:Blog.Core /// - /// 条件 + /// 条件 /// 数据列表 - public async Task> Query(string strWhere) + public async Task> Query(string where) { - //return await Task.Run(() => _db.Queryable().WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).ToList()); - return await _db.Queryable().WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).ToListAsync(); + return await _db.Queryable().WhereIF(!string.IsNullOrEmpty(where), where).ToListAsync(); } /// @@ -293,11 +266,11 @@ public async Task> Query(Expression /// 过滤条件 /// 查询实体条件 - /// 排序条件 + /// 排序条件 /// - public async Task> Query(Expression> expression, Expression> whereExpression, string strOrderByFileds) + public async Task> Query(Expression> expression, Expression> whereExpression, string orderByFields) { - return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression).Select(expression).ToListAsync(); + return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields).WhereIF(whereExpression != null, whereExpression).Select(expression).ToListAsync(); } /// @@ -305,12 +278,11 @@ public async Task> Query(Expression /// 条件表达式 - /// 排序字段,如name asc,age desc + /// 排序字段,如name asc,age desc /// 数据列表 - public async Task> Query(Expression> whereExpression, string strOrderByFileds) + public async Task> Query(Expression> whereExpression, string orderByFields) { - //return await Task.Run(() => _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression).ToList()); - return await _db.Queryable().WhereIF(whereExpression != null, whereExpression).OrderByIF(strOrderByFileds != null, strOrderByFileds).ToListAsync(); + return await _db.Queryable().WhereIF(whereExpression != null, whereExpression).OrderByIF(orderByFields != null, orderByFields).ToListAsync(); } /// /// 功能描述:查询一个列表 @@ -329,13 +301,12 @@ public async Task> Query(Expression> whereExpr /// 功能描述:查询一个列表 /// 作  者:Blog.Core /// - /// 条件 - /// 排序字段,如name asc,age desc + /// 条件 + /// 排序字段,如name asc,age desc /// 数据列表 - public async Task> Query(string strWhere, string strOrderByFileds) + public async Task> Query(string where, string orderByFields) { - //return await Task.Run(() => _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).ToList()); - return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).ToListAsync(); + return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields).WhereIF(!string.IsNullOrEmpty(where), where).ToListAsync(); } @@ -344,55 +315,53 @@ public async Task> Query(string strWhere, string strOrderByFileds) /// 作  者:Blog.Core /// /// 条件表达式 - /// 前N条 - /// 排序字段,如name asc,age desc + /// 前N条 + /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( Expression> whereExpression, - int intTop, - string strOrderByFileds) + int top, + string orderByFields) { - //return await Task.Run(() => _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression).Take(intTop).ToList()); - return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression).Take(intTop).ToListAsync(); + return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields).WhereIF(whereExpression != null, whereExpression).Take(top).ToListAsync(); } /// /// 功能描述:查询前N条数据 /// 作  者:Blog.Core /// - /// 条件 - /// 前N条 - /// 排序字段,如name asc,age desc + /// 条件 + /// 前N条 + /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( - string strWhere, - int intTop, - string strOrderByFileds) + string where, + int top, + string orderByFields) { - //return await Task.Run(() => _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).Take(intTop).ToList()); - return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).Take(intTop).ToListAsync(); + return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields).WhereIF(!string.IsNullOrEmpty(where), where).Take(top).ToListAsync(); } /// /// 根据sql语句查询 /// - /// 完整的sql语句 + /// 完整的sql语句 /// 参数 /// 泛型集合 - public async Task> QuerySql(string strSql, SugarParameter[] parameters = null) + public async Task> QuerySql(string sql, SugarParameter[] parameters = null) { - return await _db.Ado.SqlQueryAsync(strSql, parameters); + return await _db.Ado.SqlQueryAsync(sql, parameters); } /// /// 根据sql语句查询 /// - /// 完整的sql语句 + /// 完整的sql语句 /// 参数 /// DataTable - public async Task QueryTable(string strSql, SugarParameter[] parameters = null) + public async Task QueryTable(string sql, SugarParameter[] parameters = null) { - return await _db.Ado.GetDataTableAsync(strSql, parameters); + return await _db.Ado.GetDataTableAsync(sql, parameters); } /// @@ -400,38 +369,38 @@ public async Task QueryTable(string strSql, SugarParameter[] paramete /// 作  者:Blog.Core /// /// 条件表达式 - /// 页码(下标0) - /// 页大小 - /// 排序字段,如name asc,age desc + /// 页码(下标0) + /// 页大小 + /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( Expression> whereExpression, - int intPageIndex, - int intPageSize, - string strOrderByFileds) + int pageIndex, + int pageSize, + string orderByFields) { - //return await Task.Run(() => _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression).ToPageList(intPageIndex, intPageSize)); - return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(whereExpression != null, whereExpression).ToPageListAsync(intPageIndex, intPageSize); + return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(whereExpression != null, whereExpression).ToPageListAsync(pageIndex, pageSize); } /// /// 功能描述:分页查询 /// 作  者:Blog.Core /// - /// 条件 - /// 页码(下标0) - /// 页大小 - /// 排序字段,如name asc,age desc + /// 条件 + /// 页码(下标0) + /// 页大小 + /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( - string strWhere, - int intPageIndex, - int intPageSize, + string where, + int pageIndex, + int pageSize, - string strOrderByFileds) + string orderByFields) { - //return await Task.Run(() => _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).ToPageList(intPageIndex, intPageSize)); - return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds).WhereIF(!string.IsNullOrEmpty(strWhere), strWhere).ToPageListAsync(intPageIndex, intPageSize); + return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(!string.IsNullOrEmpty(where), where).ToPageListAsync(pageIndex, pageSize); } @@ -440,20 +409,20 @@ public async Task> Query( /// 分页查询[使用版本,其他分页未测试] /// /// 条件表达式 - /// 页码(下标0) - /// 页大小 - /// 排序字段,如name asc,age desc + /// 页码(下标0) + /// 页大小 + /// 排序字段,如name asc,age desc /// - public async Task> QueryPage(Expression> whereExpression, int intPageIndex = 1, int intPageSize = 20, string strOrderByFileds = null) + public async Task> QueryPage(Expression> whereExpression, int pageIndex = 1, int pageSize = 20, string orderByFields = null) { RefAsync totalCount = 0; var list = await _db.Queryable() - .OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds) + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) .WhereIF(whereExpression != null, whereExpression) - .ToPageListAsync(intPageIndex, intPageSize, totalCount); + .ToPageListAsync(pageIndex, pageSize, totalCount); - return new PageModel(intPageIndex, totalCount, intPageSize, list); + return new PageModel(pageIndex, totalCount, pageSize, list); } @@ -490,26 +459,26 @@ public async Task> QueryMuch( /// 关联表达式 /// 返回表达式 /// 查询表达式 - /// 页码 - /// 页大小 - /// 排序字段 + /// 页码 + /// 页大小 + /// 排序字段 /// public async Task> QueryTabsPage( Expression> joinExpression, Expression> selectExpression, Expression> whereExpression, - int intPageIndex = 1, - int intPageSize = 20, - string strOrderByFileds = null) + int pageIndex = 1, + int pageSize = 20, + string orderByFields = null) { RefAsync totalCount = 0; var list = await _db.Queryable(joinExpression) .Select(selectExpression) - .OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds) + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) .WhereIF(whereExpression != null, whereExpression) - .ToPageListAsync(intPageIndex, intPageSize, totalCount); - return new PageModel(intPageIndex, totalCount, intPageSize, list); + .ToPageListAsync(pageIndex, pageSize, totalCount); + return new PageModel(pageIndex, totalCount, pageSize, list); } /// @@ -521,27 +490,27 @@ public async Task> QueryTabsPage( /// 关联表达式 /// 返回表达式 /// 查询表达式 - /// 页码 - /// 页大小 - /// 排序字段 + /// group表达式 + /// 页码 + /// 页大小 + /// 排序字段 /// public async Task> QueryTabsPage( Expression> joinExpression, Expression> selectExpression, Expression> whereExpression, Expression> groupExpression, - int intPageIndex = 1, - int intPageSize = 20, - string strOrderByFileds = null) + int pageIndex = 1, + int pageSize = 20, + string orderByFields = null) { - RefAsync totalCount = 0; var list = await _db.Queryable(joinExpression).GroupBy(groupExpression) .Select(selectExpression) - .OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds) + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) .WhereIF(whereExpression != null, whereExpression) - .ToPageListAsync(intPageIndex, intPageSize, totalCount); - return new PageModel(intPageIndex, totalCount, intPageSize, list); + .ToPageListAsync(pageIndex, pageSize, totalCount); + return new PageModel(pageIndex, totalCount, pageSize, list); } //var exp = Expressionable.Create() diff --git a/Blog.Core.Repository/BASE/IBaseRepository.cs b/Blog.Core.Repository/BASE/IBaseRepository.cs index 1d74d9af..29783505 100644 --- a/Blog.Core.Repository/BASE/IBaseRepository.cs +++ b/Blog.Core.Repository/BASE/IBaseRepository.cs @@ -74,9 +74,9 @@ public interface IBaseRepository where TEntity : class /// 根据model,更新,带where条件 /// /// - /// + /// /// - Task Update(TEntity entity, string strWhere); + Task Update(TEntity entity, string where); Task Update(object operateAnonymousObjects); /// @@ -85,9 +85,9 @@ public interface IBaseRepository where TEntity : class /// /// /// - /// + /// /// - Task Update(TEntity entity, List lstColumns = null, List lstIgnoreColumns = null, string strWhere = ""); + Task Update(TEntity entity, List lstColumns = null, List lstIgnoreColumns = null, string where = ""); /// /// 查询 @@ -98,9 +98,9 @@ public interface IBaseRepository where TEntity : class /// /// 带sql where查询 /// - /// + /// /// - Task> Query(string strWhere); + Task> Query(string where); /// /// 根据表达式查询 @@ -123,31 +123,31 @@ public interface IBaseRepository where TEntity : class /// /// /// - /// + /// /// - Task> Query(Expression> expression, Expression> whereExpression, string strOrderByFileds); - Task> Query(Expression> whereExpression, string strOrderByFileds); + Task> Query(Expression> expression, Expression> whereExpression, string orderByFields); + Task> Query(Expression> whereExpression, string orderByFields); Task> Query(Expression> whereExpression, Expression> orderByExpression, bool isAsc = true); - Task> Query(string strWhere, string strOrderByFileds); + Task> Query(string where, string orderByFields); - Task> Query(Expression> whereExpression, int intTop, string strOrderByFileds); - Task> Query(string strWhere, int intTop, string strOrderByFileds); - Task> QuerySql(string strSql, SugarParameter[] parameters = null); - Task QueryTable(string strSql, SugarParameter[] parameters = null); + Task> Query(Expression> whereExpression, int intTop, string orderByFields); + Task> Query(string where, int intTop, string orderByFields); + Task> QuerySql(string sql, SugarParameter[] parameters = null); + Task QueryTable(string sql, SugarParameter[] parameters = null); Task> Query( - Expression> whereExpression, int intPageIndex, int intPageSize, string strOrderByFileds); - Task> Query(string strWhere, int intPageIndex, int intPageSize, string strOrderByFileds); + Expression> whereExpression, int pageIndex, int pageSize, string orderByFields); + Task> Query(string where, int pageIndex, int pageSize, string orderByFields); /// /// 根据表达式,排序字段,分页查询 /// /// - /// - /// - /// + /// + /// + /// /// - Task> QueryPage(Expression> whereExpression, int intPageIndex = 1, int intPageSize = 20, string strOrderByFileds = null); + Task> QueryPage(Expression> whereExpression, int pageIndex = 1, int pageSize = 20, string orderByFields = null); /// /// 三表联查 @@ -174,17 +174,17 @@ Task> QueryMuch( /// /// /// - /// - /// - /// + /// + /// + /// /// Task> QueryTabsPage( Expression> joinExpression, Expression> selectExpression, Expression> whereExpression, - int intPageIndex = 1, - int intPageSize = 20, - string strOrderByFileds = null); + int pageIndex = 1, + int pageSize = 20, + string orderByFields = null); /// /// 两表联合查询-分页-分组 @@ -196,17 +196,17 @@ Task> QueryTabsPage( /// /// /// - /// - /// - /// + /// + /// + /// /// Task> QueryTabsPage( Expression> joinExpression, Expression> selectExpression, Expression> whereExpression, Expression> groupExpression, - int intPageIndex = 1, - int intPageSize = 20, - string strOrderByFileds = null); + int pageIndex = 1, + int pageSize = 20, + string orderByFields = null); } } diff --git a/Blog.Core.Services/BASE/BaseServices.cs b/Blog.Core.Services/BASE/BaseServices.cs index d110b587..5db1efeb 100644 --- a/Blog.Core.Services/BASE/BaseServices.cs +++ b/Blog.Core.Services/BASE/BaseServices.cs @@ -72,9 +72,9 @@ public async Task Update(TEntity entity) { return await BaseDal.Update(entity); } - public async Task Update(TEntity entity, string strWhere) + public async Task Update(TEntity entity, string where) { - return await BaseDal.Update(entity, strWhere); + return await BaseDal.Update(entity, where); } public async Task Update(object operateAnonymousObjects) { @@ -85,10 +85,10 @@ public async Task Update( TEntity entity, List lstColumns = null, List lstIgnoreColumns = null, - string strWhere = "" + string where = "" ) { - return await BaseDal.Update(entity, lstColumns, lstIgnoreColumns, strWhere); + return await BaseDal.Update(entity, lstColumns, lstIgnoreColumns, where); } @@ -138,11 +138,11 @@ public async Task> Query() /// 功能描述:查询数据列表 /// 作  者:AZLinli.Blog.Core /// - /// 条件 + /// 条件 /// 数据列表 - public async Task> Query(string strWhere) + public async Task> Query(string where) { - return await BaseDal.Query(strWhere); + return await BaseDal.Query(where); } /// @@ -175,11 +175,11 @@ public async Task> Query(Expression /// 过滤条件 /// 查询实体条件 - /// 排序条件 + /// 排序条件 /// - public async Task> Query(Expression> expression, Expression> whereExpression,string strOrderByFileds) + public async Task> Query(Expression> expression, Expression> whereExpression,string orderByFileds) { - return await BaseDal.Query(expression, whereExpression, strOrderByFileds); + return await BaseDal.Query(expression, whereExpression, orderByFileds); } /// @@ -194,44 +194,44 @@ public async Task> Query(Expression> whereExpr return await BaseDal.Query(whereExpression, orderByExpression, isAsc); } - public async Task> Query(Expression> whereExpression, string strOrderByFileds) + public async Task> Query(Expression> whereExpression, string orderByFileds) { - return await BaseDal.Query(whereExpression, strOrderByFileds); + return await BaseDal.Query(whereExpression, orderByFileds); } /// /// 功能描述:查询一个列表 /// 作  者:AZLinli.Blog.Core /// - /// 条件 - /// 排序字段,如name asc,age desc + /// 条件 + /// 排序字段,如name asc,age desc /// 数据列表 - public async Task> Query(string strWhere, string strOrderByFileds) + public async Task> Query(string where, string orderByFileds) { - return await BaseDal.Query(strWhere, strOrderByFileds); + return await BaseDal.Query(where, orderByFileds); } /// /// 根据sql语句查询 /// - /// 完整的sql语句 + /// 完整的sql语句 /// 参数 /// 泛型集合 - public async Task> QuerySql(string strSql, SugarParameter[] parameters = null) + public async Task> QuerySql(string sql, SugarParameter[] parameters = null) { - return await BaseDal.QuerySql(strSql, parameters); + return await BaseDal.QuerySql(sql, parameters); } /// /// 根据sql语句查询 /// - /// 完整的sql语句 + /// 完整的sql语句 /// 参数 /// DataTable - public async Task QueryTable(string strSql, SugarParameter[] parameters = null) + public async Task QueryTable(string sql, SugarParameter[] parameters = null) { - return await BaseDal.QueryTable(strSql, parameters); + return await BaseDal.QueryTable(sql, parameters); } /// @@ -239,28 +239,28 @@ public async Task QueryTable(string strSql, SugarParameter[] paramete /// 作  者:AZLinli.Blog.Core /// /// 条件表达式 - /// 前N条 - /// 排序字段,如name asc,age desc + /// 前N条 + /// 排序字段,如name asc,age desc /// 数据列表 - public async Task> Query(Expression> whereExpression, int intTop, string strOrderByFileds) + public async Task> Query(Expression> whereExpression, int top, string orderByFileds) { - return await BaseDal.Query(whereExpression, intTop, strOrderByFileds); + return await BaseDal.Query(whereExpression, top, orderByFileds); } /// /// 功能描述:查询前N条数据 /// 作  者:AZLinli.Blog.Core /// - /// 条件 - /// 前N条 - /// 排序字段,如name asc,age desc + /// 条件 + /// 前N条 + /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( - string strWhere, - int intTop, - string strOrderByFileds) + string where, + int top, + string orderByFileds) { - return await BaseDal.Query(strWhere, intTop, strOrderByFileds); + return await BaseDal.Query(where, top, orderByFileds); } /// @@ -268,50 +268,50 @@ public async Task> Query( /// 作  者:AZLinli.Blog.Core /// /// 条件表达式 - /// 页码(下标0) - /// 页大小 - /// 排序字段,如name asc,age desc + /// 页码(下标0) + /// 页大小 + /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( Expression> whereExpression, - int intPageIndex, - int intPageSize, - string strOrderByFileds) + int pageIndex, + int pageSize, + string orderByFileds) { return await BaseDal.Query( whereExpression, - intPageIndex, - intPageSize, - strOrderByFileds); + pageIndex, + pageSize, + orderByFileds); } /// /// 功能描述:分页查询 /// 作  者:AZLinli.Blog.Core /// - /// 条件 - /// 页码(下标0) - /// 页大小 - /// 排序字段,如name asc,age desc + /// 条件 + /// 页码(下标0) + /// 页大小 + /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( - string strWhere, - int intPageIndex, - int intPageSize, - string strOrderByFileds) + string where, + int pageIndex, + int pageSize, + string orderByFileds) { return await BaseDal.Query( - strWhere, - intPageIndex, - intPageSize, - strOrderByFileds); + where, + pageIndex, + pageSize, + orderByFileds); } public async Task> QueryPage(Expression> whereExpression, - int intPageIndex = 1, int intPageSize = 20, string strOrderByFileds = null) + int pageIndex = 1, int pageSize = 20, string orderByFileds = null) { return await BaseDal.QueryPage(whereExpression, - intPageIndex, intPageSize, strOrderByFileds); + pageIndex, pageSize, orderByFileds); } public async Task> QueryMuch(Expression> joinExpression, Expression> selectExpression, Expression> whereLambda = null) where T : class, new() @@ -320,8 +320,8 @@ public async Task> QueryPage(Expression> } public async Task> QueryPage(PaginationModel pagination) { - var express = DynamicLinqFactory.CreateLambda(pagination.conditions); - return await QueryPage(express, pagination.intPageIndex, pagination.intPageSize, pagination.strOrderByFileds); + var express = DynamicLinqFactory.CreateLambda(pagination.Conditions); + return await QueryPage(express, pagination.PageIndex, pagination.PageSize, pagination.OrderByFileds); } } diff --git a/Blog.Core.sln b/Blog.Core.sln index 1d40c8a8..c8f61505 100644 --- a/Blog.Core.sln +++ b/Blog.Core.sln @@ -51,8 +51,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EventBus", "EventBus", "{A5 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.EventBus", "Blog.Core.EventBus\Blog.Core.EventBus.csproj", "{17C9E9DC-E926-4C90-9025-3DAC55D7EDA3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.ConsoleApp", "Blog.Core.ConsoleApp\Blog.Core.ConsoleApp.csproj", "{0B3265A9-6716-4D28-8648-C64D5E692ACA}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.Gateway", "Blog.Core.Gateway\Blog.Core.Gateway.csproj", "{A11C0DF2-1E13-4EED-BA49-44A57136B189}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.Serilog.Es", "Blog.Core.Serilog.Es\Blog.Core.Serilog.Es.csproj", "{52AFAB53-D1CA-4014-8B63-3550FDCDA6E1}" @@ -109,10 +107,6 @@ Global {17C9E9DC-E926-4C90-9025-3DAC55D7EDA3}.Debug|Any CPU.Build.0 = Debug|Any CPU {17C9E9DC-E926-4C90-9025-3DAC55D7EDA3}.Release|Any CPU.ActiveCfg = Release|Any CPU {17C9E9DC-E926-4C90-9025-3DAC55D7EDA3}.Release|Any CPU.Build.0 = Release|Any CPU - {0B3265A9-6716-4D28-8648-C64D5E692ACA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0B3265A9-6716-4D28-8648-C64D5E692ACA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0B3265A9-6716-4D28-8648-C64D5E692ACA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0B3265A9-6716-4D28-8648-C64D5E692ACA}.Release|Any CPU.Build.0 = Release|Any CPU {A11C0DF2-1E13-4EED-BA49-44A57136B189}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A11C0DF2-1E13-4EED-BA49-44A57136B189}.Debug|Any CPU.Build.0 = Debug|Any CPU {A11C0DF2-1E13-4EED-BA49-44A57136B189}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -133,7 +127,6 @@ Global {300A8113-8033-4184-BE28-FC48D8349CD0} = {EDA8901E-541E-4ADC-B71E-59697D5F9549} {52D318A2-F44E-4CB7-8DD4-483357D4333F} = {047A9723-9AAC-42E3-8C69-B3835F15FF96} {17C9E9DC-E926-4C90-9025-3DAC55D7EDA3} = {A592C96A-4E44-4F2A-AC21-30683AF6C493} - {0B3265A9-6716-4D28-8648-C64D5E692ACA} = {047A9723-9AAC-42E3-8C69-B3835F15FF96} {A11C0DF2-1E13-4EED-BA49-44A57136B189} = {E2BD7D4D-9ED5-41CD-8401-C3FB26F203BB} {6463FB13-5F01-4A1D-8B62-A454FB3812EB} = {E2BD7D4D-9ED5-41CD-8401-C3FB26F203BB} EndGlobalSection From 43a21517a7d182d1877ae8428a6ac2671bb38128 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 14 Mar 2022 16:05:54 +0800 Subject: [PATCH 106/382] fix: rename the middlewares . #236 --- .../Controllers/MonitorController.cs | 2 +- Blog.Core.Api/Startup.cs | 26 +++++++++--------- Blog.Core.Api/skyapm.json | 2 +- ...vicesMildd.cs => AllServicesMiddleware.cs} | 17 ++++++------ ...assAuthMidd.cs => ByPassAuthMiddleware.cs} | 10 +++---- .../{ConsulMildd.cs => ConsulMiddleware.cs} | 10 +++---- ...rMidd.cs => ExceptionHandlerMiddleware.cs} | 20 +++++++------- .../{IpLimitMildd.cs => IpLimitMiddleware.cs} | 14 +++++----- .../{IPLogMildd.cs => IpLogMiddleware.cs} | 15 ++++++----- ...TokenAuth.cs => JwtTokenAuthMiddleware.cs} | 10 +++---- .../Middlewares/MiddlewareHelpers.cs | 27 +++++++++---------- ...ilerMildd.cs => MiniProfilerMiddleware.cs} | 14 +++++----- ...artzJobMildd.cs => QuartzJobMiddleware.cs} | 20 +++++++------- ...Mildd.cs => RecordAccessLogsMiddleware.cs} | 24 ++++++++--------- ...spLogMildd.cs => RequRespLogMiddleware.cs} | 26 +++++++++--------- ...SeedDataMildd.cs => SeedDataMiddleware.cs} | 14 +++++----- ...RSendMildd.cs => SignalRSendMiddleware.cs} | 12 ++++----- ...rAuthMildd.cs => SwaggerAuthMiddleware.cs} | 16 +++++------ .../{SwaggerMildd.cs => SwaggerMiddleware.cs} | 24 ++++++++--------- README.md | 4 +++ 20 files changed, 154 insertions(+), 153 deletions(-) rename Blog.Core.Extensions/Middlewares/{AllServicesMildd.cs => AllServicesMiddleware.cs} (87%) rename Blog.Core.Extensions/Middlewares/{ByPassAuthMidd.cs => ByPassAuthMiddleware.cs} (95%) rename Blog.Core.Extensions/Middlewares/{ConsulMildd.cs => ConsulMiddleware.cs} (87%) rename Blog.Core.Extensions/Middlewares/{ExceptionHandlerMidd.cs => ExceptionHandlerMiddleware.cs} (81%) rename Blog.Core.Extensions/Middlewares/{IpLimitMildd.cs => IpLimitMiddleware.cs} (60%) rename Blog.Core.Extensions/Middlewares/{IPLogMildd.cs => IpLogMiddleware.cs} (93%) rename Blog.Core.Extensions/Middlewares/{JwtTokenAuth.cs => JwtTokenAuthMiddleware.cs} (92%) rename Blog.Core.Extensions/Middlewares/{MiniProfilerMildd.cs => MiniProfilerMiddleware.cs} (61%) rename Blog.Core.Extensions/Middlewares/{QuartzJobMildd.cs => QuartzJobMiddleware.cs} (64%) rename Blog.Core.Extensions/Middlewares/{RecordAccessLogsMildd.cs => RecordAccessLogsMiddleware.cs} (92%) rename Blog.Core.Extensions/Middlewares/{RequRespLogMildd.cs => RequRespLogMiddleware.cs} (86%) rename Blog.Core.Extensions/Middlewares/{SeedDataMildd.cs => SeedDataMiddleware.cs} (62%) rename Blog.Core.Extensions/Middlewares/{SignalRSendMildd.cs => SignalRSendMiddleware.cs} (79%) rename Blog.Core.Extensions/Middlewares/{SwaggerAuthMildd.cs => SwaggerAuthMiddleware.cs} (87%) rename Blog.Core.Extensions/Middlewares/{SwaggerMildd.cs => SwaggerMiddleware.cs} (76%) diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index db170fb0..f725d4e3 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -3,7 +3,6 @@ using Blog.Core.Common.LogHelper; using Blog.Core.Hubs; using Blog.Core.IServices; -using Blog.Core.Middlewares; using Blog.Core.Model; using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; @@ -20,6 +19,7 @@ using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; +using Blog.Core.Extensions.Middlewares; namespace Blog.Core.Controllers { diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index 2e0d6a08..ea815687 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -6,7 +6,6 @@ using Blog.Core.Filter; using Blog.Core.Hubs; using Blog.Core.IServices; -using Blog.Core.Middlewares; using Blog.Core.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -23,6 +22,7 @@ using System.IdentityModel.Tokens.Jwt; using System.Reflection; using System.Text; +using Blog.Core.Extensions.Middlewares; namespace Blog.Core { @@ -149,17 +149,17 @@ public void ConfigureContainer(ContainerBuilder builder) public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContext myContext, ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, IHostApplicationLifetime lifetime) { // Ip限流,尽量放管道外层 - app.UseIpLimitMildd(); + app.UseIpLimitMiddle(); // 记录请求与返回数据 - app.UseReuestResponseLog(); + app.UseRequestResponseLogMiddle(); // 用户访问记录(必须放到外层,不然如果遇到异常,会报错,因为不能返回流) - app.UseRecordAccessLogsMildd(); + app.UseRecordAccessLogsMiddle(); // signalr - app.UseSignalRSendMildd(); + app.UseSignalRSendMiddle(); // 记录ip请求 - app.UseIPLogMildd(); + app.UseIpLogMiddle(); // 查看注入的所有服务 - app.UseAllServicesMildd(_services); + app.UseAllServicesMiddle(_services); if (env.IsDevelopment()) { @@ -177,7 +177,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex app.UseSession(); app.UseSwaggerAuthorized(); // 封装Swagger展示 - app.UseSwaggerMildd(() => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("Blog.Core.Api.index.html")); + app.UseSwaggerMiddle(() => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("Blog.Core.Api.index.html")); // ↓↓↓↓↓↓ 注意下边这些中间件的顺序,很重要 ↓↓↓↓↓↓ @@ -203,14 +203,14 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex // 测试用户,用来通过鉴权 if (Configuration.GetValue("AppSettings:UseLoadTest")) { - app.UseMiddleware(); + app.UseMiddleware(); } // 先开启认证 app.UseAuthentication(); // 然后是授权中间件 app.UseAuthorization(); //开启性能分析 - app.UseMiniProfilerMildd(); + app.UseMiniProfilerMiddleware(); // 开启异常中间件,要放到最后 //app.UseExceptionHandlerMidd(); @@ -225,11 +225,11 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex }); // 生成种子数据 - app.UseSeedDataMildd(myContext, Env.WebRootPath); + app.UseSeedDataMiddle(myContext, Env.WebRootPath); // 开启QuartzNetJob调度服务 - app.UseQuartzJobMildd(tasksQzServices, schedulerCenter); + app.UseQuartzJobMiddleware(tasksQzServices, schedulerCenter); // 服务注册 - app.UseConsulMildd(Configuration, lifetime); + app.UseConsulMiddle(Configuration, lifetime); // 事件总线,订阅服务 app.ConfigureEventBus(); diff --git a/Blog.Core.Api/skyapm.json b/Blog.Core.Api/skyapm.json index 357eb12d..cd5ed0ee 100644 --- a/Blog.Core.Api/skyapm.json +++ b/Blog.Core.Api/skyapm.json @@ -11,7 +11,7 @@ }, "Logging": { "Level": "Information", - "FilePath": "logs/skyapm-{Date}.log" + "FilePath": "Log/skyapm-{Date}.log" }, "Transport": { "Interval": 3000, diff --git a/Blog.Core.Extensions/Middlewares/AllServicesMildd.cs b/Blog.Core.Extensions/Middlewares/AllServicesMiddleware.cs similarity index 87% rename from Blog.Core.Extensions/Middlewares/AllServicesMildd.cs rename to Blog.Core.Extensions/Middlewares/AllServicesMiddleware.cs index e92211e5..2346967c 100644 --- a/Blog.Core.Extensions/Middlewares/AllServicesMildd.cs +++ b/Blog.Core.Extensions/Middlewares/AllServicesMiddleware.cs @@ -1,19 +1,18 @@ -using Autofac.Extensions.DependencyInjection; +using System; +using System.Linq; +using Autofac.Extensions.DependencyInjection; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; -using System; -using System.IO; -using System.Linq; -namespace Blog.Core.Extensions +namespace Blog.Core.Extensions.Middlewares { /// /// 查看所有注入的服务 /// - public static class AllServicesMildd + public static class AllServicesMiddleware { - public static void UseAllServicesMildd(this IApplicationBuilder app, IServiceCollection _services) + public static void UseAllServicesMiddle(this IApplicationBuilder app, IServiceCollection _services) { if (app == null) throw new ArgumentNullException(nameof(app)); @@ -21,7 +20,7 @@ public static void UseAllServicesMildd(this IApplicationBuilder app, IServiceCol //tsDIAutofac.AddRange(Assembly.LoadFrom(Path.Combine(AppContext.BaseDirectory, "Blog.Core.Services.dll")).GetTypes().ToList()); //tsDIAutofac.AddRange(Assembly.LoadFrom(Path.Combine(AppContext.BaseDirectory, "Blog.Core.Repository.dll")).GetTypes().ToList()); - var autofacContaniers = (app.ApplicationServices.GetAutofacRoot())?.ComponentRegistry?.Registrations; + var autofacContainers = (app.ApplicationServices.GetAutofacRoot())?.ComponentRegistry?.Registrations; app.Map("/allservices", builder => builder.Run(async context => @@ -39,7 +38,7 @@ public static void UseAllServicesMildd(this IApplicationBuilder app, IServiceCol await context.Response.WriteAsync($"{svc.ImplementationType?.Name}"); await context.Response.WriteAsync(""); } - foreach (var item in autofacContaniers.ToList()) + foreach (var item in autofacContainers.ToList()) { var interfaceType = item.Services; foreach (var typeArray in interfaceType) diff --git a/Blog.Core.Extensions/Middlewares/ByPassAuthMidd.cs b/Blog.Core.Extensions/Middlewares/ByPassAuthMiddleware.cs similarity index 95% rename from Blog.Core.Extensions/Middlewares/ByPassAuthMidd.cs rename to Blog.Core.Extensions/Middlewares/ByPassAuthMiddleware.cs index d9a36089..c1f1f4a5 100644 --- a/Blog.Core.Extensions/Middlewares/ByPassAuthMidd.cs +++ b/Blog.Core.Extensions/Middlewares/ByPassAuthMiddleware.cs @@ -1,22 +1,22 @@ -using Microsoft.AspNetCore.Http; -using System; +using System; using System.Security.Claims; using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; -namespace Blog.Core.Middlewares +namespace Blog.Core.Extensions.Middlewares { /// /// 测试用户,用来通过鉴权 /// JWT:?userid=8&rolename=AdminTest /// - public class ByPassAuthMidd + public class ByPassAuthMiddleware { private readonly RequestDelegate _next; // 定义变量:当前用户Id,会常驻内存。 private string _currentUserId; // 同理定义:当前角色名 private string _currentRoleName; - public ByPassAuthMidd(RequestDelegate next) + public ByPassAuthMiddleware(RequestDelegate next) { _next = next; _currentUserId = null; diff --git a/Blog.Core.Extensions/Middlewares/ConsulMildd.cs b/Blog.Core.Extensions/Middlewares/ConsulMiddleware.cs similarity index 87% rename from Blog.Core.Extensions/Middlewares/ConsulMildd.cs rename to Blog.Core.Extensions/Middlewares/ConsulMiddleware.cs index 428c778b..c1aae8cc 100644 --- a/Blog.Core.Extensions/Middlewares/ConsulMildd.cs +++ b/Blog.Core.Extensions/Middlewares/ConsulMiddleware.cs @@ -1,17 +1,17 @@ -using Consul; +using System; +using Consul; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; -using System; -namespace Blog.Core.Extensions +namespace Blog.Core.Extensions.Middlewares { /// /// Consul 注册服务 /// - public static class ConsulMildd + public static class ConsulMiddleware { - public static IApplicationBuilder UseConsulMildd(this IApplicationBuilder app, IConfiguration configuration, IHostApplicationLifetime lifetime) + public static IApplicationBuilder UseConsulMiddle(this IApplicationBuilder app, IConfiguration configuration, IHostApplicationLifetime lifetime) { if (configuration["Middleware:Consul:Enabled"].ObjToBool()) { diff --git a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMidd.cs b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs similarity index 81% rename from Blog.Core.Extensions/Middlewares/ExceptionHandlerMidd.cs rename to Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs index 056bc6c2..85d96e9b 100644 --- a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMidd.cs +++ b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs @@ -1,19 +1,19 @@ -using Blog.Core.Model; -using Microsoft.AspNetCore.Http; -using Newtonsoft.Json; -using System; +using System; using System.Net; using System.Threading.Tasks; +using Blog.Core.Model; +using Microsoft.AspNetCore.Http; +using Newtonsoft.Json; -namespace Blog.Core.Middlewares +namespace Blog.Core.Extensions.Middlewares { - public class ExceptionHandlerMidd + public class ExceptionHandlerMiddleware { private readonly RequestDelegate _next; - private static readonly log4net.ILog log = - log4net.LogManager.GetLogger(typeof(ExceptionHandlerMidd)); + private static readonly log4net.ILog Log = + log4net.LogManager.GetLogger(typeof(ExceptionHandlerMiddleware)); - public ExceptionHandlerMidd(RequestDelegate next) + public ExceptionHandlerMiddleware(RequestDelegate next) { _next = next; } @@ -34,7 +34,7 @@ private async Task HandleExceptionAsync(HttpContext context, Exception e) { if (e == null) return; - log.Error(e.GetBaseException().ToString()); + Log.Error(e.GetBaseException().ToString()); await WriteExceptionAsync(context, e).ConfigureAwait(false); } diff --git a/Blog.Core.Extensions/Middlewares/IpLimitMildd.cs b/Blog.Core.Extensions/Middlewares/IpLimitMiddleware.cs similarity index 60% rename from Blog.Core.Extensions/Middlewares/IpLimitMildd.cs rename to Blog.Core.Extensions/Middlewares/IpLimitMiddleware.cs index 591bfb16..1a1ab344 100644 --- a/Blog.Core.Extensions/Middlewares/IpLimitMildd.cs +++ b/Blog.Core.Extensions/Middlewares/IpLimitMiddleware.cs @@ -1,18 +1,18 @@ -using AspNetCoreRateLimit; +using System; +using AspNetCoreRateLimit; using Blog.Core.Common; using log4net; using Microsoft.AspNetCore.Builder; -using System; -namespace Blog.Core.Extensions +namespace Blog.Core.Extensions.Middlewares { /// /// ip 限流 /// - public static class IpLimitMildd + public static class IpLimitMiddleware { - private static readonly ILog log = LogManager.GetLogger(typeof(IpLimitMildd)); - public static void UseIpLimitMildd(this IApplicationBuilder app) + private static readonly ILog Log = LogManager.GetLogger(typeof(IpLimitMiddleware)); + public static void UseIpLimitMiddle(this IApplicationBuilder app) { if (app == null) throw new ArgumentNullException(nameof(app)); @@ -25,7 +25,7 @@ public static void UseIpLimitMildd(this IApplicationBuilder app) } catch (Exception e) { - log.Error($"Error occured limiting ip rate.\n{e.Message}"); + Log.Error($"Error occured limiting ip rate.\n{e.Message}"); throw; } } diff --git a/Blog.Core.Extensions/Middlewares/IPLogMildd.cs b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs similarity index 93% rename from Blog.Core.Extensions/Middlewares/IPLogMildd.cs rename to Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs index eda2e369..39b258cd 100644 --- a/Blog.Core.Extensions/Middlewares/IPLogMildd.cs +++ b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs @@ -1,31 +1,31 @@ -using Blog.Core.Common; +using System; +using System.Threading.Tasks; +using Blog.Core.Common; using Blog.Core.Common.LogHelper; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Newtonsoft.Json; -using System; -using System.Threading.Tasks; -namespace Blog.Core.Middlewares +namespace Blog.Core.Extensions.Middlewares { /// /// 中间件 /// 记录IP请求数据 /// - public class IPLogMildd + public class IpLogMiddleware { /// /// /// private readonly RequestDelegate _next; private readonly IWebHostEnvironment _environment; - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(IPLogMildd)); + private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(typeof(IpLogMiddleware)); /// /// /// /// - public IPLogMildd(RequestDelegate next, IWebHostEnvironment environment) + public IpLogMiddleware(RequestDelegate next, IWebHostEnvironment environment) { _next = next; _environment = environment; @@ -83,6 +83,7 @@ public async Task InvokeAsync(HttpContext context) } catch (Exception) { + // ignored } } else diff --git a/Blog.Core.Extensions/Middlewares/JwtTokenAuth.cs b/Blog.Core.Extensions/Middlewares/JwtTokenAuthMiddleware.cs similarity index 92% rename from Blog.Core.Extensions/Middlewares/JwtTokenAuth.cs rename to Blog.Core.Extensions/Middlewares/JwtTokenAuthMiddleware.cs index 931ad8cb..76786f87 100644 --- a/Blog.Core.Extensions/Middlewares/JwtTokenAuth.cs +++ b/Blog.Core.Extensions/Middlewares/JwtTokenAuthMiddleware.cs @@ -1,16 +1,16 @@ -using Microsoft.AspNetCore.Http; -using System; +using System; using System.Threading.Tasks; using Blog.Core.AuthHelper.OverWrite; +using Microsoft.AspNetCore.Http; -namespace Blog.Core.AuthHelper +namespace Blog.Core.Extensions.Middlewares { /// /// 中间件 /// 原做为自定义授权中间件 /// 先做检查 header token的使用 /// - public class JwtTokenAuth + public class JwtTokenAuthMiddleware { /// /// @@ -20,7 +20,7 @@ public class JwtTokenAuth /// /// /// - public JwtTokenAuth(RequestDelegate next) + public JwtTokenAuthMiddleware(RequestDelegate next) { _next = next; } diff --git a/Blog.Core.Extensions/Middlewares/MiddlewareHelpers.cs b/Blog.Core.Extensions/Middlewares/MiddlewareHelpers.cs index 07069a4b..fa5c3835 100644 --- a/Blog.Core.Extensions/Middlewares/MiddlewareHelpers.cs +++ b/Blog.Core.Extensions/Middlewares/MiddlewareHelpers.cs @@ -1,7 +1,6 @@ -using Blog.Core.AuthHelper; -using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Builder; -namespace Blog.Core.Middlewares +namespace Blog.Core.Extensions.Middlewares { public static class MiddlewareHelpers { @@ -12,7 +11,7 @@ public static class MiddlewareHelpers /// public static IApplicationBuilder UseJwtTokenAuth(this IApplicationBuilder app) { - return app.UseMiddleware(); + return app.UseMiddleware(); } /// @@ -20,9 +19,9 @@ public static IApplicationBuilder UseJwtTokenAuth(this IApplicationBuilder app) /// /// /// - public static IApplicationBuilder UseReuestResponseLog(this IApplicationBuilder app) + public static IApplicationBuilder UseRequestResponseLogMiddle(this IApplicationBuilder app) { - return app.UseMiddleware(); + return app.UseMiddleware(); } /// @@ -30,9 +29,9 @@ public static IApplicationBuilder UseReuestResponseLog(this IApplicationBuilder /// /// /// - public static IApplicationBuilder UseSignalRSendMildd(this IApplicationBuilder app) + public static IApplicationBuilder UseSignalRSendMiddle(this IApplicationBuilder app) { - return app.UseMiddleware(); + return app.UseMiddleware(); } /// @@ -40,9 +39,9 @@ public static IApplicationBuilder UseSignalRSendMildd(this IApplicationBuilder a /// /// /// - public static IApplicationBuilder UseExceptionHandlerMidd(this IApplicationBuilder app) + public static IApplicationBuilder UseExceptionHandlerMiddle(this IApplicationBuilder app) { - return app.UseMiddleware(); + return app.UseMiddleware(); } /// @@ -50,9 +49,9 @@ public static IApplicationBuilder UseExceptionHandlerMidd(this IApplicationBuild /// /// /// - public static IApplicationBuilder UseIPLogMildd(this IApplicationBuilder app) + public static IApplicationBuilder UseIpLogMiddle(this IApplicationBuilder app) { - return app.UseMiddleware(); + return app.UseMiddleware(); } /// @@ -60,9 +59,9 @@ public static IApplicationBuilder UseIPLogMildd(this IApplicationBuilder app) /// /// /// - public static IApplicationBuilder UseRecordAccessLogsMildd(this IApplicationBuilder app) + public static IApplicationBuilder UseRecordAccessLogsMiddle(this IApplicationBuilder app) { - return app.UseMiddleware(); + return app.UseMiddleware(); } } } diff --git a/Blog.Core.Extensions/Middlewares/MiniProfilerMildd.cs b/Blog.Core.Extensions/Middlewares/MiniProfilerMiddleware.cs similarity index 61% rename from Blog.Core.Extensions/Middlewares/MiniProfilerMildd.cs rename to Blog.Core.Extensions/Middlewares/MiniProfilerMiddleware.cs index 74030daf..e4d50ec8 100644 --- a/Blog.Core.Extensions/Middlewares/MiniProfilerMildd.cs +++ b/Blog.Core.Extensions/Middlewares/MiniProfilerMiddleware.cs @@ -1,17 +1,17 @@ -using Blog.Core.Common; +using System; +using Blog.Core.Common; using log4net; using Microsoft.AspNetCore.Builder; -using System; -namespace Blog.Core.Extensions +namespace Blog.Core.Extensions.Middlewares { /// /// MiniProfiler性能分析 /// - public static class MiniProfilerMildd + public static class MiniProfilerMiddleware { - private static readonly ILog log = LogManager.GetLogger(typeof(MiniProfilerMildd)); - public static void UseMiniProfilerMildd(this IApplicationBuilder app) + private static readonly ILog Log = LogManager.GetLogger(typeof(MiniProfilerMiddleware)); + public static void UseMiniProfilerMiddleware(this IApplicationBuilder app) { if (app == null) throw new ArgumentNullException(nameof(app)); @@ -26,7 +26,7 @@ public static void UseMiniProfilerMildd(this IApplicationBuilder app) } catch (Exception e) { - log.Error($"An error was reported when starting the MiniProfilerMildd.\n{e.Message}"); + Log.Error($"An error was reported when starting the MiniProfilerMildd.\n{e.Message}"); throw; } } diff --git a/Blog.Core.Extensions/Middlewares/QuartzJobMildd.cs b/Blog.Core.Extensions/Middlewares/QuartzJobMiddleware.cs similarity index 64% rename from Blog.Core.Extensions/Middlewares/QuartzJobMildd.cs rename to Blog.Core.Extensions/Middlewares/QuartzJobMiddleware.cs index a64fdb2b..af269e80 100644 --- a/Blog.Core.Extensions/Middlewares/QuartzJobMildd.cs +++ b/Blog.Core.Extensions/Middlewares/QuartzJobMiddleware.cs @@ -1,19 +1,19 @@ -using Blog.Core.Common; +using System; +using Blog.Core.Common; using Blog.Core.IServices; using Blog.Core.Tasks; using log4net; using Microsoft.AspNetCore.Builder; -using System; -namespace Blog.Core.Extensions +namespace Blog.Core.Extensions.Middlewares { /// /// Quartz 启动服务 /// - public static class QuartzJobMildd + public static class QuartzJobMiddleware { - private static readonly ILog log = LogManager.GetLogger(typeof(QuartzJobMildd)); - public static void UseQuartzJobMildd(this IApplicationBuilder app, ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter) + private static readonly ILog Log = LogManager.GetLogger(typeof(QuartzJobMiddleware)); + public static void UseQuartzJobMiddleware(this IApplicationBuilder app, ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter) { if (app == null) throw new ArgumentNullException(nameof(app)); @@ -27,14 +27,14 @@ public static void UseQuartzJobMildd(this IApplicationBuilder app, ITasksQzServi { if (item.IsStart) { - var ResuleModel = schedulerCenter.AddScheduleJobAsync(item).Result; - if (ResuleModel.success) + var result = schedulerCenter.AddScheduleJobAsync(item).Result; + if (result.success) { Console.WriteLine($"QuartzNetJob{item.Name}启动成功!"); } else { - Console.WriteLine($"QuartzNetJob{item.Name}启动失败!错误信息:{ResuleModel.msg}"); + Console.WriteLine($"QuartzNetJob{item.Name}启动失败!错误信息:{result.msg}"); } } } @@ -43,7 +43,7 @@ public static void UseQuartzJobMildd(this IApplicationBuilder app, ITasksQzServi } catch (Exception e) { - log.Error($"An error was reported when starting the job service.\n{e.Message}"); + Log.Error($"An error was reported when starting the job service.\n{e.Message}"); throw; } } diff --git a/Blog.Core.Extensions/Middlewares/RecordAccessLogsMildd.cs b/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs similarity index 92% rename from Blog.Core.Extensions/Middlewares/RecordAccessLogsMildd.cs rename to Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs index 4174a459..9785a3fc 100644 --- a/Blog.Core.Extensions/Middlewares/RecordAccessLogsMildd.cs +++ b/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs @@ -1,4 +1,10 @@ -using Blog.Core.Common; +using System; +using System.Diagnostics; +using System.IO; +using System.Text; +using System.Threading.Tasks; +using System.Web; +using Blog.Core.Common; using Blog.Core.Common.Helper; using Blog.Core.Common.HttpContextUser; using Blog.Core.Common.LogHelper; @@ -6,27 +12,21 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Newtonsoft.Json; -using System; -using System.Diagnostics; -using System.IO; -using System.Text; -using System.Threading.Tasks; -using System.Web; -namespace Blog.Core.Middlewares +namespace Blog.Core.Extensions.Middlewares { /// /// 中间件 /// 记录用户方访问数据 /// - public class RecordAccessLogsMildd + public class RecordAccessLogsMiddleware { /// /// /// private readonly RequestDelegate _next; private readonly IUser _user; - private readonly ILogger _logger; + private readonly ILogger _logger; private readonly IWebHostEnvironment _environment; private Stopwatch _stopwatch; @@ -34,7 +34,7 @@ public class RecordAccessLogsMildd /// /// /// - public RecordAccessLogsMildd(RequestDelegate next, IUser user, ILogger logger, IWebHostEnvironment environment) + public RecordAccessLogsMiddleware(RequestDelegate next, IUser user, ILogger logger, IWebHostEnvironment environment) { _next = next; _user = user; @@ -60,7 +60,7 @@ public async Task InvokeAsync(HttpContext context) userAccessModel.API = api; userAccessModel.User = _user.Name; - userAccessModel.IP = IPLogMildd.GetClientIP(context); + userAccessModel.IP = IpLogMiddleware.GetClientIP(context); userAccessModel.BeginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); userAccessModel.RequestMethod = request.Method; userAccessModel.Agent = request.Headers["User-Agent"].ObjToString(); diff --git a/Blog.Core.Extensions/Middlewares/RequRespLogMildd.cs b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs similarity index 86% rename from Blog.Core.Extensions/Middlewares/RequRespLogMildd.cs rename to Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs index fa5a5e31..e69e7476 100644 --- a/Blog.Core.Extensions/Middlewares/RequRespLogMildd.cs +++ b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs @@ -1,31 +1,31 @@ -using Blog.Core.Common; -using Blog.Core.Common.LogHelper; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Logging; -using System; +using System; using System.IO; using System.Text.RegularExpressions; using System.Threading.Tasks; +using Blog.Core.Common; +using Blog.Core.Common.LogHelper; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Logging; -namespace Blog.Core.Middlewares +namespace Blog.Core.Extensions.Middlewares { /// /// 中间件 /// 记录请求和响应数据 /// - public class RequRespLogMildd + public class RequRespLogMiddleware { /// /// /// private readonly RequestDelegate _next; - private readonly ILogger _logger; + private readonly ILogger _logger; /// /// /// /// - public RequRespLogMildd(RequestDelegate next, ILogger logger) + public RequRespLogMiddleware(RequestDelegate next, ILogger logger) { _next = next; _logger = logger; @@ -105,20 +105,20 @@ private async Task RequestDataLog(HttpContext context) private void ResponseDataLog(HttpResponse response, MemoryStream ms) { ms.Position = 0; - var ResponseBody = new StreamReader(ms).ReadToEnd(); + var responseBody = new StreamReader(ms).ReadToEnd(); // 去除 Html var reg = "<[^>]+>"; - var isHtml = Regex.IsMatch(ResponseBody, reg); + var isHtml = Regex.IsMatch(responseBody, reg); - if (!string.IsNullOrEmpty(ResponseBody)) + if (!string.IsNullOrEmpty(responseBody)) { //Parallel.For(0, 1, e => //{ // LogLock.OutSql2Log("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); //}); - SerilogServer.WriteLog("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); + SerilogServer.WriteLog("RequestResponseLog", new string[] { "Response Data:", responseBody }); } } } diff --git a/Blog.Core.Extensions/Middlewares/SeedDataMildd.cs b/Blog.Core.Extensions/Middlewares/SeedDataMiddleware.cs similarity index 62% rename from Blog.Core.Extensions/Middlewares/SeedDataMildd.cs rename to Blog.Core.Extensions/Middlewares/SeedDataMiddleware.cs index 0c64bc8e..34af1a87 100644 --- a/Blog.Core.Extensions/Middlewares/SeedDataMildd.cs +++ b/Blog.Core.Extensions/Middlewares/SeedDataMiddleware.cs @@ -1,18 +1,18 @@ -using Blog.Core.Common; +using System; +using Blog.Core.Common; using Blog.Core.Common.Seed; using log4net; using Microsoft.AspNetCore.Builder; -using System; -namespace Blog.Core.Extensions +namespace Blog.Core.Extensions.Middlewares { /// /// 生成种子数据中间件服务 /// - public static class SeedDataMildd + public static class SeedDataMiddleware { - private static readonly ILog log = LogManager.GetLogger(typeof(SeedDataMildd)); - public static void UseSeedDataMildd(this IApplicationBuilder app, MyContext myContext, string webRootPath) + private static readonly ILog Log = LogManager.GetLogger(typeof(SeedDataMiddleware)); + public static void UseSeedDataMiddle(this IApplicationBuilder app, MyContext myContext, string webRootPath) { if (app == null) throw new ArgumentNullException(nameof(app)); @@ -25,7 +25,7 @@ public static void UseSeedDataMildd(this IApplicationBuilder app, MyContext myCo } catch (Exception e) { - log.Error($"Error occured seeding the Database.\n{e.Message}"); + Log.Error($"Error occured seeding the Database.\n{e.Message}"); throw; } } diff --git a/Blog.Core.Extensions/Middlewares/SignalRSendMildd.cs b/Blog.Core.Extensions/Middlewares/SignalRSendMiddleware.cs similarity index 79% rename from Blog.Core.Extensions/Middlewares/SignalRSendMildd.cs rename to Blog.Core.Extensions/Middlewares/SignalRSendMiddleware.cs index 9a02404d..ed96f430 100644 --- a/Blog.Core.Extensions/Middlewares/SignalRSendMildd.cs +++ b/Blog.Core.Extensions/Middlewares/SignalRSendMiddleware.cs @@ -1,17 +1,17 @@ -using Microsoft.AspNetCore.Http; -using System.Threading.Tasks; +using System.Threading.Tasks; +using Blog.Core.Common; using Blog.Core.Common.LogHelper; using Blog.Core.Hubs; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.SignalR; -using Blog.Core.Common; -namespace Blog.Core.Middlewares +namespace Blog.Core.Extensions.Middlewares { /// /// 中间件 /// SignalR发送数据 /// - public class SignalRSendMildd + public class SignalRSendMiddleware { /// /// @@ -24,7 +24,7 @@ public class SignalRSendMildd /// /// /// - public SignalRSendMildd(RequestDelegate next, IHubContext hubContext) + public SignalRSendMiddleware(RequestDelegate next, IHubContext hubContext) { _next = next; _hubContext = hubContext; diff --git a/Blog.Core.Extensions/Middlewares/SwaggerAuthMildd.cs b/Blog.Core.Extensions/Middlewares/SwaggerAuthMiddleware.cs similarity index 87% rename from Blog.Core.Extensions/Middlewares/SwaggerAuthMildd.cs rename to Blog.Core.Extensions/Middlewares/SwaggerAuthMiddleware.cs index 2aace753..1438588c 100644 --- a/Blog.Core.Extensions/Middlewares/SwaggerAuthMildd.cs +++ b/Blog.Core.Extensions/Middlewares/SwaggerAuthMiddleware.cs @@ -1,18 +1,16 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using System; -using System.Net; -using System.Text; +using System.Net; using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; -namespace Blog.Core.Middlewares +namespace Blog.Core.Extensions.Middlewares { - public class SwaggerAuthMildd + public class SwaggerAuthMiddleware { private readonly RequestDelegate next; - public SwaggerAuthMildd(RequestDelegate next) + public SwaggerAuthMiddleware(RequestDelegate next) { this.next = next; } @@ -72,7 +70,7 @@ public static class SwaggerAuthorizeExtensions { public static IApplicationBuilder UseSwaggerAuthorized(this IApplicationBuilder builder) { - return builder.UseMiddleware(); + return builder.UseMiddleware(); } } } diff --git a/Blog.Core.Extensions/Middlewares/SwaggerMildd.cs b/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs similarity index 76% rename from Blog.Core.Extensions/Middlewares/SwaggerMildd.cs rename to Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs index a7409458..5188237a 100644 --- a/Blog.Core.Extensions/Middlewares/SwaggerMildd.cs +++ b/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs @@ -1,20 +1,20 @@ -using Blog.Core.Common; -using log4net; -using Microsoft.AspNetCore.Builder; -using System; +using System; using System.IO; using System.Linq; +using Blog.Core.Common; +using log4net; +using Microsoft.AspNetCore.Builder; using static Blog.Core.Extensions.CustomApiVersion; -namespace Blog.Core.Extensions +namespace Blog.Core.Extensions.Middlewares { /// /// Swagger中间件 /// - public static class SwaggerMildd + public static class SwaggerMiddleware { - private static readonly ILog log = LogManager.GetLogger(typeof(SwaggerMildd)); - public static void UseSwaggerMildd(this IApplicationBuilder app, Func streamHtml) + private static readonly ILog Log = LogManager.GetLogger(typeof(SwaggerMiddleware)); + public static void UseSwaggerMiddle(this IApplicationBuilder app, Func streamHtml) { if (app == null) throw new ArgumentNullException(nameof(app)); @@ -22,19 +22,19 @@ public static void UseSwaggerMildd(this IApplicationBuilder app, Func st app.UseSwaggerUI(c => { //根据版本名称倒序 遍历展示 - var ApiName = Appsettings.app(new string[] { "Startup", "ApiName" }); + var apiName = Appsettings.app(new string[] { "Startup", "ApiName" }); typeof(ApiVersions).GetEnumNames().OrderByDescending(e => e).ToList().ForEach(version => { - c.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"{ApiName} {version}"); + c.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"{apiName} {version}"); }); - c.SwaggerEndpoint($"https://petstore.swagger.io/v2/swagger.json", $"{ApiName} pet"); + c.SwaggerEndpoint($"https://petstore.swagger.io/v2/swagger.json", $"{apiName} pet"); // 将swagger首页,设置成我们自定义的页面,记得这个字符串的写法:{项目名.index.html} if (streamHtml.Invoke() == null) { var msg = "index.html的属性,必须设置为嵌入的资源"; - log.Error(msg); + Log.Error(msg); throw new Exception(msg); } c.IndexStream = streamHtml; diff --git a/README.md b/README.md index 2b3e7185..3341ae5d 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,10 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 可配合 Ids4 实现认证中心; +### 自定义(中间件/服务)启动图 +![系统架构图](https://img.neters.club/github/load-tool.png) + +   ## 给个星星! ⭐️ From 2bbc4279e5f982fdca4dfdea0b3238c78abed2cc Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Mon, 14 Mar 2022 16:43:06 +0800 Subject: [PATCH 107/382] Update README.md --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3341ae5d..b73c7c83 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x +   #### Dokcer 快速启动 @@ -55,6 +56,14 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x -it -p 9291:9291 laozhangisphi/apkimg ``` + +  + +## 给个星星! ⭐️ +如果你喜欢这个项目或者它帮助你, 请给 Star~ +如果你的项目中借鉴了本项目,请稍微说明下[https://github.com/anjoy8/Blog.Core/issues/75](https://github.com/anjoy8/Blog.Core/issues/75),开源不易✨。 + + ### 功能与进度 @@ -113,9 +122,6 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x   -## 给个星星! ⭐️ -如果你喜欢这个项目或者它帮助你, 请给 Star~ -如果你的项目中借鉴了本项目,请稍微说明下[https://github.com/anjoy8/Blog.Core/issues/75](https://github.com/anjoy8/Blog.Core/issues/75),开源不易✨。 ## 贡献者们 From 7c43929729b5408c77a04b3ad88e4b01c3ad5790 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 15 Mar 2022 10:52:55 +0800 Subject: [PATCH 108/382] fix: format the code. #232 --- Blog.Core.Api/Blog.Core.Api.csproj | 2 +- Blog.Core.Api/Blog.Core.Model.xml | 28 +- Blog.Core.Api/Blog.Core.xml | 4 +- Blog.Core.Api/Controllers/LoginController.cs | 8 +- Blog.Core.Api/Controllers/UserController.cs | 32 +- .../Controllers/UserRoleController.cs | 4 +- .../BlogCore.Data.json/sysUserInfo.tsv | 1170 ++++++++--------- Blog.Core.Common/Seed/DBSeed.cs | 6 +- Blog.Core.IServices/IsysUserInfoServices.cs | 4 +- Blog.Core.Model/Models/OperateLog.cs | 2 +- .../Models/RootTkey/sysUserInfoRoot.cs | 4 +- Blog.Core.Model/Models/sysUserInfo.cs | 58 +- Blog.Core.Services/sysUserInfoServices.cs | 18 +- 13 files changed, 669 insertions(+), 671 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index b5725edd..a9499b1a 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -64,7 +64,7 @@ - + diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index d6c167e3..6aef9cdb 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -691,57 +691,57 @@ 修改时间 - + 用户信息表 - + 登录账号 - + 登录密码 - + 真实姓名 - + 状态 - + 备注 - + 创建时间 - + 更新时间 - + - 最后登录时间 + 最后异常时间 - + 错误次数 - + 登录账号 @@ -1445,12 +1445,12 @@ 泛型主键Tkey - + 用户信息表 - + uID 泛型主键Tkey diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index eb1ea542..ad1d8a9e 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -660,14 +660,14 @@ 令牌 - + 添加一个用户 - + 更新用户与角色 diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index 52a7a8b7..63ab1430 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -152,14 +152,14 @@ public async Task> GetJwtToken3(string name = " pass = MD5Helper.MD5Encrypt32(pass); - var user = await _sysUserInfoServices.Query(d => d.uLoginName == name && d.uLoginPWD == pass && d.tdIsDelete == false); + var user = await _sysUserInfoServices.Query(d => d.LoginName == name && d.LoginPWD == pass && d.IsDeleted == false); if (user.Count > 0) { var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(name, pass); //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 var claims = new List { new Claim(ClaimTypes.Name, name), - new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().uID.ToString()), + new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().Id.ToString()), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); @@ -209,10 +209,10 @@ public async Task> RefreshToken(string token = var user = await _sysUserInfoServices.QueryById(tokenModel.Uid); if (user != null) { - var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(user.uLoginName, user.uLoginPWD); + var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(user.LoginName, user.LoginPWD); //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 var claims = new List { - new Claim(ClaimTypes.Name, user.uLoginName), + new Claim(ClaimTypes.Name, user.LoginName), new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index fa37fd1a..2e233550 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -57,7 +57,7 @@ public UserController(IUnitOfWork unitOfWork, ISysUserInfoServices sysUserInfoSe /// // GET: api/User [HttpGet] - public async Task>> Get(int page = 1, string key = "") + public async Task>> Get(int page = 1, string key = "") { if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { @@ -66,7 +66,7 @@ public async Task>> Get(int page = 1, string int intPageSize = 50; - var data = await _sysUserInfoServices.QueryPage(a => a.tdIsDelete != true && a.uStatus >= 0 && ((a.uLoginName != null && a.uLoginName.Contains(key)) || (a.uRealName != null && a.uRealName.Contains(key))), page, intPageSize, " uID desc "); + var data = await _sysUserInfoServices.QueryPage(a => a.IsDeleted != true && a.Status >= 0 && ((a.LoginName != null && a.LoginName.Contains(key)) || (a.RealName != null && a.RealName.Contains(key))), page, intPageSize, " uID desc "); #region MyRegion @@ -78,7 +78,7 @@ public async Task>> Get(int page = 1, string var sysUserInfos = data.data; foreach (var item in sysUserInfos) { - var currentUserRoles = allUserRoles.Where(d => d.UserId == item.uID).Select(d => d.RoleId).ToList(); + var currentUserRoles = allUserRoles.Where(d => d.UserId == item.Id).Select(d => d.RoleId).ToList(); item.RIDs = currentUserRoles; item.RoleNames = allRoles.Where(d => currentUserRoles.Contains(d.Id)).Select(d => d.Name).ToList(); } @@ -87,7 +87,7 @@ public async Task>> Get(int page = 1, string #endregion - return new MessageModel>() + return new MessageModel>() { msg = "获取成功", success = data.dataCount >= 0, @@ -114,9 +114,9 @@ public string Get(string id) /// [HttpGet] [AllowAnonymous] - public async Task> GetInfoByToken(string token) + public async Task> GetInfoByToken(string token) { - var data = new MessageModel(); + var data = new MessageModel(); if (!string.IsNullOrEmpty(token)) { var tokenModel = JwtHelper.SerializeJwt(token); @@ -142,12 +142,12 @@ public async Task> GetInfoByToken(string token) /// // POST: api/User [HttpPost] - public async Task> Post([FromBody] sysUserInfo sysUserInfo) + public async Task> Post([FromBody] SysUserInfo sysUserInfo) { var data = new MessageModel(); - sysUserInfo.uLoginPWD = MD5Helper.MD5Encrypt32(sysUserInfo.uLoginPWD); - sysUserInfo.uRemark = _user.Name; + sysUserInfo.LoginPWD = MD5Helper.MD5Encrypt32(sysUserInfo.LoginPWD); + sysUserInfo.Remark = _user.Name; var id = await _sysUserInfoServices.Add(sysUserInfo); data.success = id > 0; @@ -167,7 +167,7 @@ public async Task> Post([FromBody] sysUserInfo sysUserInfo) /// // PUT: api/User/5 [HttpPut] - public async Task> Put([FromBody] sysUserInfo sysUserInfo) + public async Task> Put([FromBody] SysUserInfo sysUserInfo) { // 这里使用事务处理 @@ -176,12 +176,12 @@ public async Task> Put([FromBody] sysUserInfo sysUserInfo) { _unitOfWork.BeginTran(); - if (sysUserInfo != null && sysUserInfo.uID > 0) + if (sysUserInfo != null && sysUserInfo.Id > 0) { if (sysUserInfo.RIDs.Count > 0) { // 无论 Update Or Add , 先删除当前用户的全部 U_R 关系 - var usreroles = (await _userRoleServices.Query(d => d.UserId == sysUserInfo.uID)).Select(d => d.Id.ToString()).ToArray(); + var usreroles = (await _userRoleServices.Query(d => d.UserId == sysUserInfo.Id)).Select(d => d.Id.ToString()).ToArray(); if (usreroles.Count() > 0) { var isAllDeleted = await _userRoleServices.DeleteByIds(usreroles); @@ -191,7 +191,7 @@ public async Task> Put([FromBody] sysUserInfo sysUserInfo) var userRolsAdd = new List(); sysUserInfo.RIDs.ForEach(rid => { - userRolsAdd.Add(new UserRole(sysUserInfo.uID, rid)); + userRolsAdd.Add(new UserRole(sysUserInfo.Id, rid)); }); await _userRoleServices.Add(userRolsAdd); @@ -205,7 +205,7 @@ public async Task> Put([FromBody] sysUserInfo sysUserInfo) if (data.success) { data.msg = "更新成功"; - data.response = sysUserInfo?.uID.ObjToString(); + data.response = sysUserInfo?.Id.ObjToString(); } } } @@ -231,12 +231,12 @@ public async Task> Delete(int id) if (id > 0) { var userDetail = await _sysUserInfoServices.QueryById(id); - userDetail.tdIsDelete = true; + userDetail.IsDeleted = true; data.success = await _sysUserInfoServices.Update(userDetail); if (data.success) { data.msg = "删除成功"; - data.response = userDetail?.uID.ObjToString(); + data.response = userDetail?.Id.ObjToString(); } } diff --git a/Blog.Core.Api/Controllers/UserRoleController.cs b/Blog.Core.Api/Controllers/UserRoleController.cs index 5225fbdc..d36fef55 100644 --- a/Blog.Core.Api/Controllers/UserRoleController.cs +++ b/Blog.Core.Api/Controllers/UserRoleController.cs @@ -42,9 +42,9 @@ public UserRoleController(ISysUserInfoServices sysUserInfoServices, IUserRoleSer /// /// [HttpGet] - public async Task> AddUser(string loginName, string loginPwd) + public async Task> AddUser(string loginName, string loginPwd) { - return new MessageModel() + return new MessageModel() { success = true, msg = "添加成功", diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/sysUserInfo.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/sysUserInfo.tsv index cdd73aee..4eb742bd 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/sysUserInfo.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/sysUserInfo.tsv @@ -1,704 +1,704 @@ [ { "Id": 1, - "uLoginName": "laozhang", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "老张", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": "老张的哲学", - "sex": 1, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 0 + "LoginName": "laozhang", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "老张", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": "老张的哲学", + "Sex": 1, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 0 }, { "Id": 2, - "uLoginName": "laoli", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "laoli", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 1, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 0 + "LoginName": "laoli", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "laoli", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 1, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 0 }, { "Id": 3, - "uLoginName": "user", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "userli", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": "广告", - "sex": 1, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 0 + "LoginName": "user", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "userli", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": "广告", + "Sex": 1, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 0 }, { "Id": 4, - "uLoginName": "admins", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 0 + "LoginName": "admins", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 0 }, { "Id": 5, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 6, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 7, - "uLoginName": "tibug", - "uLoginPWD": "BB1C0516F0F4469549CD4A95833A78E5", - "uRealName": "提bug账号", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 1, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 0 + "LoginName": "tibug", + "LoginPWD": "BB1C0516F0F4469549CD4A95833A78E5", + "RealName": "提bug账号", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 1, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 0 }, { "Id": 8, - "uLoginName": "test", - "uLoginPWD": "098F6BCD4621D373CADE4E832627B4F6", - "uRealName": "后台测试1号", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": "测试是", - "sex": 1, - "age": 3, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 0 + "LoginName": "test", + "LoginPWD": "098F6BCD4621D373CADE4E832627B4F6", + "RealName": "后台测试1号", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": "测试是", + "Sex": 1, + "Age": 3, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 0 }, { "Id": 9, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 10, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 11, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 12, - "uLoginName": "blogadmin", - "uLoginPWD": "3FACF26687DAB7254848976256EDB56F", - "uRealName": "后台总管理员", - "uStatus": 0, - "uRemark": "t15", - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 1, - "age": 10, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 0 + "LoginName": "blogadmin", + "LoginPWD": "3FACF26687DAB7254848976256EDB56F", + "RealName": "后台总管理员", + "Status": 0, + "Remark": "t15", + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 1, + "Age": 10, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 0 }, { "Id": 13, - "uLoginName": "test2", - "uLoginPWD": "AD0234829205B9033196BA818F7A872B", - "uRealName": "后台测试2号", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 12, - "birth": "\/Date(1546272000000+0800)\/", - "addr": "北京市", - "tdIsDelete": 0 + "LoginName": "test2", + "LoginPWD": "AD0234829205B9033196BA818F7A872B", + "RealName": "后台测试2号", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 12, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": "北京市", + "IsDeleted": 0 }, { "Id": 14, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 15, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 16, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 17, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 18, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 19, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 20, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 21, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 22, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 23, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 24, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 25, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 26, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 27, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 28, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 29, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 30, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 31, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 32, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 33, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 34, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 35, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 36, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 37, - "uLoginName": "xx", - "uLoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", - "uRealName": "admins", - "uStatus": 0, - "uRemark": null, - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 0, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "xx", + "LoginPWD": "2AEFC34200A294A3CC7DB81B43A81873", + "RealName": "admins", + "Status": 0, + "Remark": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 0, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 38, - "uLoginName": "99", - "uLoginPWD": "AC627AB1CCBDB62EC96E702F7F6425B", - "uRealName": "99", - "uStatus": 0, - "uRemark": "blogadmin", - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": -1, - "age": 0, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 1 + "LoginName": "99", + "LoginPWD": "AC627AB1CCBDB62EC96E702F7F6425B", + "RealName": "99", + "Status": 0, + "Remark": "blogadmin", + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": -1, + "Age": 0, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 1 }, { "Id": 39, - "uLoginName": "Kawhi", - "uLoginPWD": "96FEE3FD714358658BFB881A4E1642BE", - "uRealName": "Kawhi 测试员", - "uStatus": 0, - "uRemark": "blogadmin", - "uCreateTime": "\/Date(1546272000000+0800)\/", - "uUpdateTime": "\/Date(1546272000000+0800)\/", - "uLastErrTime": "\/Date(1546272000000+0800)\/", - "uErrorCount": 0, - "name": null, - "sex": 1, - "age": 18, - "birth": "\/Date(1546272000000+0800)\/", - "addr": null, - "tdIsDelete": 0 + "LoginName": "Kawhi", + "LoginPWD": "96FEE3FD714358658BFB881A4E1642BE", + "RealName": "Kawhi 测试员", + "Status": 0, + "Remark": "blogadmin", + "CreateTime": "\/Date(1546272000000+0800)\/", + "UpdateTime": "\/Date(1546272000000+0800)\/", + "LastErrorTime": "\/Date(1546272000000+0800)\/", + "ErrorCount": 0, + "Name": null, + "Sex": 1, + "Age": 18, + "Birth": "\/Date(1546272000000+0800)\/", + "Address": null, + "IsDeleted": 0 } ] diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 1d00bbc7..11fcdae5 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -253,11 +253,11 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) #region sysUserInfo - if (!await myContext.Db.Queryable().AnyAsync()) + if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "sysUserInfo"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "sysUserInfo"), Encoding.UTF8), setting); - myContext.GetEntityDB().InsertRange(data); + myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:sysUserInfo created success!"); } else diff --git a/Blog.Core.IServices/IsysUserInfoServices.cs b/Blog.Core.IServices/IsysUserInfoServices.cs index f46cba0b..a2db873f 100644 --- a/Blog.Core.IServices/IsysUserInfoServices.cs +++ b/Blog.Core.IServices/IsysUserInfoServices.cs @@ -9,9 +9,9 @@ namespace Blog.Core.IServices /// /// sysUserInfoServices /// - public interface ISysUserInfoServices :IBaseServices + public interface ISysUserInfoServices :IBaseServices { - Task SaveUserInfo(string loginName, string loginPwd); + Task SaveUserInfo(string loginName, string loginPwd); Task GetUserRoleNameStr(string loginName, string loginPwd); } } diff --git a/Blog.Core.Model/Models/OperateLog.cs b/Blog.Core.Model/Models/OperateLog.cs index 5d9cfe16..4086781c 100644 --- a/Blog.Core.Model/Models/OperateLog.cs +++ b/Blog.Core.Model/Models/OperateLog.cs @@ -55,6 +55,6 @@ public class OperateLog : RootEntityTkey public int UserId { get; set; } [SugarColumn(IsIgnore = true)] - public virtual sysUserInfo User { get; set; } + public virtual SysUserInfo User { get; set; } } } diff --git a/Blog.Core.Model/Models/RootTkey/sysUserInfoRoot.cs b/Blog.Core.Model/Models/RootTkey/sysUserInfoRoot.cs index 5605374d..1c09f188 100644 --- a/Blog.Core.Model/Models/RootTkey/sysUserInfoRoot.cs +++ b/Blog.Core.Model/Models/RootTkey/sysUserInfoRoot.cs @@ -7,14 +7,14 @@ namespace Blog.Core.Model /// /// 用户信息表 /// - public class sysUserInfoRoot where Tkey : IEquatable + public class SysUserInfoRoot where Tkey : IEquatable { /// /// uID /// 泛型主键Tkey /// [SugarColumn(IsNullable = false, IsPrimaryKey = true)] - public Tkey uID { get; set; } + public Tkey Id { get; set; } [SugarColumn(IsIgnore = true)] public List RIDs { get; set; } diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index ef51c745..d8ffeee3 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -8,90 +8,88 @@ namespace Blog.Core.Model.Models /// 用户信息表 /// [SugarTable("SysUserInfo")] - public class sysUserInfo : sysUserInfoRoot + public class SysUserInfo : SysUserInfoRoot { - public sysUserInfo() { } + public SysUserInfo() { } - public sysUserInfo(string loginName, string loginPWD) + public SysUserInfo(string loginName, string loginPWD) { - uLoginName = loginName; - uLoginPWD = loginPWD; - uRealName = uLoginName; - uStatus = 0; - uCreateTime = DateTime.Now; - uUpdateTime = DateTime.Now; - uLastErrTime = DateTime.Now; - uErrorCount = 0; - name = ""; - + LoginName = loginName; + LoginPWD = loginPWD; + RealName = LoginName; + Status = 0; + CreateTime = DateTime.Now; + UpdateTime = DateTime.Now; + LastErrorTime = DateTime.Now; + ErrorCount = 0; + Name = ""; } /// /// 登录账号 /// [SugarColumn(Length = 200, IsNullable = true)] - public string uLoginName { get; set; } + public string LoginName { get; set; } /// /// 登录密码 /// [SugarColumn(Length = 200, IsNullable = true)] - public string uLoginPWD { get; set; } + public string LoginPWD { get; set; } /// /// 真实姓名 /// [SugarColumn(Length = 200, IsNullable = true)] - public string uRealName { get; set; } + public string RealName { get; set; } /// /// 状态 /// - public int uStatus { get; set; } + public int Status { get; set; } /// /// 备注 /// [SugarColumn(Length = 2000, IsNullable = true)] - public string uRemark { get; set; } + public string Remark { get; set; } /// /// 创建时间 /// - public System.DateTime uCreateTime { get; set; } = DateTime.Now; + public DateTime CreateTime { get; set; } = DateTime.Now; /// /// 更新时间 /// - public System.DateTime uUpdateTime { get; set; } = DateTime.Now; + public DateTime UpdateTime { get; set; } = DateTime.Now; /// - ///最后登录时间 + ///最后异常时间 /// - public DateTime uLastErrTime { get; set; } = DateTime.Now; + public DateTime LastErrorTime { get; set; } = DateTime.Now; /// ///错误次数 /// - public int uErrorCount { get; set; } - + public int ErrorCount { get; set; } /// /// 登录账号 /// [SugarColumn(Length = 200, IsNullable = true)] - public string name { get; set; } + public string Name { get; set; } // 性别 [SugarColumn(IsNullable = true)] - public int sex { get; set; } = 0; + public int Sex { get; set; } = 0; // 年龄 [SugarColumn(IsNullable = true)] - public int age { get; set; } + public int Age { get; set; } // 生日 [SugarColumn(IsNullable = true)] - public DateTime birth { get; set; } = DateTime.Now; + public DateTime Birth { get; set; } = DateTime.Now; // 地址 [SugarColumn(Length = 200, IsNullable = true)] - public string addr { get; set; } + public string Address { get; set; } [SugarColumn(IsNullable = true)] - public bool tdIsDelete { get; set; } + public bool IsDeleted { get; set; } [SugarColumn(IsIgnore = true)] diff --git a/Blog.Core.Services/sysUserInfoServices.cs b/Blog.Core.Services/sysUserInfoServices.cs index 3d5521d2..f536cf7a 100644 --- a/Blog.Core.Services/sysUserInfoServices.cs +++ b/Blog.Core.Services/sysUserInfoServices.cs @@ -10,13 +10,13 @@ namespace Blog.Core.FrameWork.Services /// /// sysUserInfoServices /// - public class SysUserInfoServices : BaseServices, ISysUserInfoServices + public class SysUserInfoServices : BaseServices, ISysUserInfoServices { - private readonly IBaseRepository _dal; + private readonly IBaseRepository _dal; private readonly IBaseRepository _userRoleRepository; private readonly IBaseRepository _roleRepository; - public SysUserInfoServices(IBaseRepository dal, IBaseRepository userRoleRepository, IBaseRepository roleRepository) + public SysUserInfoServices(IBaseRepository dal, IBaseRepository userRoleRepository, IBaseRepository roleRepository) { this._dal = dal; _userRoleRepository = userRoleRepository; @@ -29,11 +29,11 @@ public SysUserInfoServices(IBaseRepository dal, IBaseRepository /// /// - public async Task SaveUserInfo(string loginName, string loginPwd) + public async Task SaveUserInfo(string loginName, string loginPwd) { - sysUserInfo sysUserInfo = new sysUserInfo(loginName, loginPwd); - sysUserInfo model = new sysUserInfo(); - var userList = await base.Query(a => a.uLoginName == sysUserInfo.uLoginName && a.uLoginPWD == sysUserInfo.uLoginPWD); + SysUserInfo sysUserInfo = new SysUserInfo(loginName, loginPwd); + SysUserInfo model = new SysUserInfo(); + var userList = await base.Query(a => a.LoginName == sysUserInfo.LoginName && a.LoginPWD == sysUserInfo.LoginPWD); if (userList.Count > 0) { model = userList.FirstOrDefault(); @@ -57,11 +57,11 @@ public async Task SaveUserInfo(string loginName, string loginPwd) public async Task GetUserRoleNameStr(string loginName, string loginPwd) { string roleName = ""; - var user = (await base.Query(a => a.uLoginName == loginName && a.uLoginPWD == loginPwd)).FirstOrDefault(); + var user = (await base.Query(a => a.LoginName == loginName && a.LoginPWD == loginPwd)).FirstOrDefault(); var roleList = await _roleRepository.Query(a => a.IsDeleted == false); if (user != null) { - var userRoles = await _userRoleRepository.Query(ur => ur.UserId == user.uID); + var userRoles = await _userRoleRepository.Query(ur => ur.UserId == user.Id); if (userRoles.Count > 0) { var arr = userRoles.Select(ur => ur.RoleId.ObjToString()).ToList(); From cb2016c2bb53237bb0c59ecb62f53be4fee0eeda Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 15 Mar 2022 15:12:21 +0800 Subject: [PATCH 109/382] fix: format the code. #232 --- Blog.Core.Api/Blog.Core.Model.xml | 2 +- Blog.Core.Api/Controllers/UserController.cs | 2 +- Blog.Core.Model/Models/RootTkey/sysUserInfoRoot.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 6aef9cdb..af88da3e 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -1452,7 +1452,7 @@ - uID + Id 泛型主键Tkey diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 2e233550..803ae276 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -66,7 +66,7 @@ public async Task>> Get(int page = 1, string int intPageSize = 50; - var data = await _sysUserInfoServices.QueryPage(a => a.IsDeleted != true && a.Status >= 0 && ((a.LoginName != null && a.LoginName.Contains(key)) || (a.RealName != null && a.RealName.Contains(key))), page, intPageSize, " uID desc "); + var data = await _sysUserInfoServices.QueryPage(a => a.IsDeleted != true && a.Status >= 0 && ((a.LoginName != null && a.LoginName.Contains(key)) || (a.RealName != null && a.RealName.Contains(key))), page, intPageSize, " Id desc "); #region MyRegion diff --git a/Blog.Core.Model/Models/RootTkey/sysUserInfoRoot.cs b/Blog.Core.Model/Models/RootTkey/sysUserInfoRoot.cs index 1c09f188..60531b1c 100644 --- a/Blog.Core.Model/Models/RootTkey/sysUserInfoRoot.cs +++ b/Blog.Core.Model/Models/RootTkey/sysUserInfoRoot.cs @@ -10,7 +10,7 @@ namespace Blog.Core.Model public class SysUserInfoRoot where Tkey : IEquatable { /// - /// uID + /// Id /// 泛型主键Tkey /// [SugarColumn(IsNullable = false, IsPrimaryKey = true)] From 6fa0b153b0b1688f0d72767a91d92c9f5d28e156 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 15 Mar 2022 18:25:27 +0800 Subject: [PATCH 110/382] fix: try to use dto in user manage --- Blog.Core.Api/Blog.Core.xml | 10 ++-- Blog.Core.Api/Controllers/UserController.cs | 46 ++++++++++--------- .../Controllers/UserRoleController.cs | 26 +++++++---- .../AutoMapper/CustomProfile.cs | 37 +++++++++++++++ Blog.Core.Model/ViewModels/SysUserInfoDto.cs | 27 +++++++++++ 5 files changed, 110 insertions(+), 36 deletions(-) create mode 100644 Blog.Core.Model/ViewModels/SysUserInfoDto.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index ad1d8a9e..44e2e1e3 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -633,7 +633,7 @@ 用户管理 - + 构造函数 @@ -642,6 +642,7 @@ + @@ -660,14 +661,14 @@ 令牌 - + 添加一个用户 - + 更新用户与角色 @@ -686,12 +687,13 @@ 用户角色关系 - + 构造函数 + diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 803ae276..3da0310c 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using AutoMapper; using Blog.Core.AuthHelper.OverWrite; using Blog.Core.Common.Helper; using Blog.Core.Common.HttpContextUser; @@ -9,6 +10,7 @@ using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; @@ -21,13 +23,14 @@ namespace Blog.Core.Controllers [Route("api/[controller]/[action]")] [ApiController] [Authorize(Permissions.Name)] - public class UserController : ControllerBase + public class UserController : BaseApiController { private readonly IUnitOfWork _unitOfWork; readonly ISysUserInfoServices _sysUserInfoServices; readonly IUserRoleServices _userRoleServices; readonly IRoleServices _roleServices; private readonly IUser _user; + private readonly IMapper _mapper; private readonly ILogger _logger; /// @@ -38,14 +41,18 @@ public class UserController : ControllerBase /// /// /// + /// /// - public UserController(IUnitOfWork unitOfWork, ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, IRoleServices roleServices, IUser user, ILogger logger) + public UserController(IUnitOfWork unitOfWork, ISysUserInfoServices sysUserInfoServices, + IUserRoleServices userRoleServices, IRoleServices roleServices, + IUser user, IMapper mapper, ILogger logger) { _unitOfWork = unitOfWork; _sysUserInfoServices = sysUserInfoServices; _userRoleServices = userRoleServices; _roleServices = roleServices; _user = user; + _mapper = mapper; _logger = logger; } @@ -57,7 +64,7 @@ public UserController(IUnitOfWork unitOfWork, ISysUserInfoServices sysUserInfoSe /// // GET: api/User [HttpGet] - public async Task>> Get(int page = 1, string key = "") + public async Task>> Get(int page = 1, string key = "") { if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { @@ -87,12 +94,7 @@ public async Task>> Get(int page = 1, string #endregion - return new MessageModel>() - { - msg = "获取成功", - success = data.dataCount >= 0, - response = data - }; + return SuccessPage(data.page, data.dataCount, data.PageSize, _mapper.Map>(sysUserInfos), data.pageCount); } @@ -114,9 +116,9 @@ public string Get(string id) /// [HttpGet] [AllowAnonymous] - public async Task> GetInfoByToken(string token) + public async Task> GetInfoByToken(string token) { - var data = new MessageModel(); + var data = new MessageModel(); if (!string.IsNullOrEmpty(token)) { var tokenModel = JwtHelper.SerializeJwt(token); @@ -125,7 +127,7 @@ public async Task> GetInfoByToken(string token) var userinfo = await _sysUserInfoServices.QueryById(tokenModel.Uid); if (userinfo != null) { - data.response = userinfo; + data.response = _mapper.Map(userinfo); data.success = true; data.msg = "获取成功"; } @@ -142,14 +144,14 @@ public async Task> GetInfoByToken(string token) /// // POST: api/User [HttpPost] - public async Task> Post([FromBody] SysUserInfo sysUserInfo) + public async Task> Post([FromBody] SysUserInfoDto sysUserInfo) { var data = new MessageModel(); - sysUserInfo.LoginPWD = MD5Helper.MD5Encrypt32(sysUserInfo.LoginPWD); - sysUserInfo.Remark = _user.Name; + sysUserInfo.uLoginPWD = MD5Helper.MD5Encrypt32(sysUserInfo.uLoginPWD); + sysUserInfo.uRemark = _user.Name; - var id = await _sysUserInfoServices.Add(sysUserInfo); + var id = await _sysUserInfoServices.Add(_mapper.Map(sysUserInfo)); data.success = id > 0; if (data.success) { @@ -167,7 +169,7 @@ public async Task> Post([FromBody] SysUserInfo sysUserInfo) /// // PUT: api/User/5 [HttpPut] - public async Task> Put([FromBody] SysUserInfo sysUserInfo) + public async Task> Put([FromBody] SysUserInfoDto sysUserInfo) { // 这里使用事务处理 @@ -176,12 +178,12 @@ public async Task> Put([FromBody] SysUserInfo sysUserInfo) { _unitOfWork.BeginTran(); - if (sysUserInfo != null && sysUserInfo.Id > 0) + if (sysUserInfo != null && sysUserInfo.uID > 0) { if (sysUserInfo.RIDs.Count > 0) { // 无论 Update Or Add , 先删除当前用户的全部 U_R 关系 - var usreroles = (await _userRoleServices.Query(d => d.UserId == sysUserInfo.Id)).Select(d => d.Id.ToString()).ToArray(); + var usreroles = (await _userRoleServices.Query(d => d.UserId == sysUserInfo.uID)).Select(d => d.Id.ToString()).ToArray(); if (usreroles.Count() > 0) { var isAllDeleted = await _userRoleServices.DeleteByIds(usreroles); @@ -191,21 +193,21 @@ public async Task> Put([FromBody] SysUserInfo sysUserInfo) var userRolsAdd = new List(); sysUserInfo.RIDs.ForEach(rid => { - userRolsAdd.Add(new UserRole(sysUserInfo.Id, rid)); + userRolsAdd.Add(new UserRole(sysUserInfo.uID, rid)); }); await _userRoleServices.Add(userRolsAdd); } - data.success = await _sysUserInfoServices.Update(sysUserInfo); + data.success = await _sysUserInfoServices.Update(_mapper.Map(sysUserInfo)); _unitOfWork.CommitTran(); if (data.success) { data.msg = "更新成功"; - data.response = sysUserInfo?.Id.ObjToString(); + data.response = sysUserInfo?.uID.ObjToString(); } } } diff --git a/Blog.Core.Api/Controllers/UserRoleController.cs b/Blog.Core.Api/Controllers/UserRoleController.cs index d36fef55..d14d6a73 100644 --- a/Blog.Core.Api/Controllers/UserRoleController.cs +++ b/Blog.Core.Api/Controllers/UserRoleController.cs @@ -1,7 +1,9 @@ using System.Threading.Tasks; +using AutoMapper; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -16,21 +18,24 @@ namespace Blog.Core.Controllers [Authorize(Permissions.Name)] public class UserRoleController : Controller { - readonly ISysUserInfoServices _sysUserInfoServices; - readonly IUserRoleServices _userRoleServices; - readonly IRoleServices _roleServices; + private readonly ISysUserInfoServices _sysUserInfoServices; + private readonly IUserRoleServices _userRoleServices; + private readonly IRoleServices _roleServices; + private readonly IMapper _mapper; /// /// 构造函数 /// /// /// + /// /// - public UserRoleController(ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, IRoleServices roleServices) + public UserRoleController(ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, IMapper mapper, IRoleServices roleServices) { - this._sysUserInfoServices = sysUserInfoServices; - this._userRoleServices = userRoleServices; - this._roleServices = roleServices; + _sysUserInfoServices = sysUserInfoServices; + _userRoleServices = userRoleServices; + _roleServices = roleServices; + _mapper = mapper; } @@ -42,13 +47,14 @@ public UserRoleController(ISysUserInfoServices sysUserInfoServices, IUserRoleSer /// /// [HttpGet] - public async Task> AddUser(string loginName, string loginPwd) + public async Task> AddUser(string loginName, string loginPwd) { - return new MessageModel() + var userInfo = await _sysUserInfoServices.SaveUserInfo(loginName, loginPwd); + return new MessageModel() { success = true, msg = "添加成功", - response = await _sysUserInfoServices.SaveUserInfo(loginName, loginPwd) + response = _mapper.Map(userInfo) }; } diff --git a/Blog.Core.Extensions/AutoMapper/CustomProfile.cs b/Blog.Core.Extensions/AutoMapper/CustomProfile.cs index 9e1957ff..7b05f079 100644 --- a/Blog.Core.Extensions/AutoMapper/CustomProfile.cs +++ b/Blog.Core.Extensions/AutoMapper/CustomProfile.cs @@ -13,6 +13,43 @@ public CustomProfile() { CreateMap(); CreateMap(); + + CreateMap() + .ForMember(a => a.uID, o => o.MapFrom(d => d.Id)) + .ForMember(a => a.RIDs, o => o.MapFrom(d => d.RIDs)) + .ForMember(a => a.addr, o => o.MapFrom(d => d.Address)) + .ForMember(a => a.age, o => o.MapFrom(d => d.Age)) + .ForMember(a => a.birth, o => o.MapFrom(d => d.Birth)) + .ForMember(a => a.uStatus, o => o.MapFrom(d => d.Status)) + .ForMember(a => a.uUpdateTime, o => o.MapFrom(d => d.UpdateTime)) + .ForMember(a => a.uCreateTime, o => o.MapFrom(d => d.CreateTime)) + .ForMember(a => a.uErrorCount, o => o.MapFrom(d => d.ErrorCount)) + .ForMember(a => a.uLastErrTime, o => o.MapFrom(d => d.LastErrorTime)) + .ForMember(a => a.uLoginName, o => o.MapFrom(d => d.LoginName)) + .ForMember(a => a.uLoginPWD, o => o.MapFrom(d => d.LoginPWD)) + .ForMember(a => a.uRemark, o => o.MapFrom(d => d.Remark)) + .ForMember(a => a.uRealName, o => o.MapFrom(d => d.RealName)) + .ForMember(a => a.name, o => o.MapFrom(d => d.Name)) + .ForMember(a => a.tdIsDelete, o => o.MapFrom(d => d.IsDeleted)) + .ForMember(a => a.RoleNames, o => o.MapFrom(d => d.RoleNames)); + CreateMap() + .ForMember(a => a.Id, o => o.MapFrom(d => d.uID)) + .ForMember(a => a.Address, o => o.MapFrom(d => d.addr)) + .ForMember(a => a.RIDs, o => o.MapFrom(d => d.RIDs)) + .ForMember(a => a.Age, o => o.MapFrom(d => d.age)) + .ForMember(a => a.Birth, o => o.MapFrom(d => d.birth)) + .ForMember(a => a.Status, o => o.MapFrom(d => d.uStatus)) + .ForMember(a => a.UpdateTime, o => o.MapFrom(d => d.uUpdateTime)) + .ForMember(a => a.CreateTime, o => o.MapFrom(d => d.uCreateTime)) + .ForMember(a => a.ErrorCount, o => o.MapFrom(d => d.uErrorCount)) + .ForMember(a => a.LastErrorTime, o => o.MapFrom(d => d.uLastErrTime)) + .ForMember(a => a.LoginName, o => o.MapFrom(d => d.uLoginName)) + .ForMember(a => a.LoginPWD, o => o.MapFrom(d => d.uLoginPWD)) + .ForMember(a => a.Remark, o => o.MapFrom(d => d.uRemark)) + .ForMember(a => a.RealName, o => o.MapFrom(d => d.uRealName)) + .ForMember(a => a.Name, o => o.MapFrom(d => d.name)) + .ForMember(a => a.IsDeleted, o => o.MapFrom(d => d.tdIsDelete)) + .ForMember(a => a.RoleNames, o => o.MapFrom(d => d.RoleNames)); } } } diff --git a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs new file mode 100644 index 00000000..6e538b91 --- /dev/null +++ b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; + +namespace Blog.Core.Model.ViewModels +{ + public class SysUserInfoDto + { + public int uID { get; set; } + public string uLoginName { get; set; } + public string uLoginPWD { get; set; } + public string uRealName { get; set; } + public int uStatus { get; set; } + public string uRemark { get; set; } + public System.DateTime uCreateTime { get; set; } = DateTime.Now; + public System.DateTime uUpdateTime { get; set; } = DateTime.Now; + public DateTime uLastErrTime { get; set; } = DateTime.Now; + public int uErrorCount { get; set; } + public string name { get; set; } + public int sex { get; set; } = 0; + public int age { get; set; } + public DateTime birth { get; set; } = DateTime.Now; + public string addr { get; set; } + public bool tdIsDelete { get; set; } + public List RoleNames { get; set; } + public List RIDs { get; set; } + } +} From 33975b33470a44ee8f2d0c2c8072f505fe786f98 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 15 Mar 2022 19:30:58 +0800 Subject: [PATCH 111/382] fix: dot root add Tkey --- .../ViewModels/RootTKey/SysUserInfoDtoRoot.cs | 13 +++++++++++++ Blog.Core.Model/ViewModels/SysUserInfoDto.cs | 4 +--- 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 Blog.Core.Model/ViewModels/RootTKey/SysUserInfoDtoRoot.cs diff --git a/Blog.Core.Model/ViewModels/RootTKey/SysUserInfoDtoRoot.cs b/Blog.Core.Model/ViewModels/RootTKey/SysUserInfoDtoRoot.cs new file mode 100644 index 00000000..bcccb8e7 --- /dev/null +++ b/Blog.Core.Model/ViewModels/RootTKey/SysUserInfoDtoRoot.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; + +namespace Blog.Core.Model.ViewModels +{ + public class SysUserInfoDtoRoot where Tkey : IEquatable + { + public Tkey uID { get; set; } + + public List RIDs { get; set; } + + } +} diff --git a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs index 6e538b91..9a9e8325 100644 --- a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs +++ b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs @@ -3,9 +3,8 @@ namespace Blog.Core.Model.ViewModels { - public class SysUserInfoDto + public class SysUserInfoDto : SysUserInfoDtoRoot { - public int uID { get; set; } public string uLoginName { get; set; } public string uLoginPWD { get; set; } public string uRealName { get; set; } @@ -22,6 +21,5 @@ public class SysUserInfoDto public string addr { get; set; } public bool tdIsDelete { get; set; } public List RoleNames { get; set; } - public List RIDs { get; set; } } } From f3bfaae3f456a71b37bd547fa8ec0ecefe6f6988 Mon Sep 17 00:00:00 2001 From: __Leo__ Date: Mon, 21 Mar 2022 12:13:00 +0800 Subject: [PATCH 112/382] remove ModulePermission --- Blog.Core.Api/Blog.Core.Model.xml | 56 ------------------- Blog.Core.Api/Controllers/UserController.cs | 2 +- .../IModulePermissionServices.cs | 9 --- Blog.Core.Model/Models/ModulePermission.cs | 52 ----------------- .../Models/RootTkey/ModulePermissionRoot.cs | 21 ------- .../ModulePermissionServices.cs | 23 -------- 6 files changed, 1 insertion(+), 162 deletions(-) delete mode 100644 Blog.Core.IServices/IModulePermissionServices.cs delete mode 100644 Blog.Core.Model/Models/ModulePermission.cs delete mode 100644 Blog.Core.Model/Models/RootTkey/ModulePermissionRoot.cs delete mode 100644 Blog.Core.Services/ModulePermissionServices.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index af88da3e..3b4fd36f 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -306,46 +306,6 @@ - - - 菜单与按钮关系表 - - - - - 获取或设置是否禁用,逻辑上的删除,非物理删除 - - - - - 创建ID - - - - - 创建者 - - - - - 创建时间 - - - - - 修改ID - - - - - 修改者 - - - - - 修改时间 - - 接口API地址信息表 @@ -1376,22 +1336,6 @@ ID - - - 菜单与按钮关系表 - 父类 - - - - - 菜单ID - - - - - 按钮ID - - 接口API地址信息表 diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 3da0310c..d26146d1 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -94,7 +94,7 @@ public async Task>> Get(int page = 1, str #endregion - return SuccessPage(data.page, data.dataCount, data.PageSize, _mapper.Map>(sysUserInfos), data.pageCount); + return Success(data.ConvertTo(_mapper)); } diff --git a/Blog.Core.IServices/IModulePermissionServices.cs b/Blog.Core.IServices/IModulePermissionServices.cs deleted file mode 100644 index a0adcb07..00000000 --- a/Blog.Core.IServices/IModulePermissionServices.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Blog.Core.IServices.BASE; -using Blog.Core.Model.Models; - -namespace Blog.Core.IServices -{ - public partial interface IModulePermissionServices : IBaseServices - { - } -} \ No newline at end of file diff --git a/Blog.Core.Model/Models/ModulePermission.cs b/Blog.Core.Model/Models/ModulePermission.cs deleted file mode 100644 index 74252009..00000000 --- a/Blog.Core.Model/Models/ModulePermission.cs +++ /dev/null @@ -1,52 +0,0 @@ -using SqlSugar; -using System; - -namespace Blog.Core.Model.Models -{ - /// - /// 菜单与按钮关系表 - /// - public class ModulePermission : ModulePermissionRoot - { - - /// - ///获取或设置是否禁用,逻辑上的删除,非物理删除 - /// - [SugarColumn(IsNullable = true)] - public bool? IsDeleted { get; set; } - - /// - /// 创建ID - /// - [SugarColumn(IsNullable = true)] - public int? CreateId { get; set; } - /// - /// 创建者 - /// - [SugarColumn(Length = 50, IsNullable = true)] - public string CreateBy { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(IsNullable = true)] - public DateTime? CreateTime { get; set; } - /// - /// 修改ID - /// - [SugarColumn(IsNullable = true)] - public int? ModifyId { get; set; } - /// - /// 修改者 - /// - [SugarColumn(Length = 50, IsNullable = true)] - public string ModifyBy { get; set; } - /// - ///修改时间 - /// - [SugarColumn(IsNullable = true)] - public DateTime? ModifyTime { get; set; } - - //public virtual Module Module { get; set; } - //public virtual Permission Permission { get; set; } - } -} diff --git a/Blog.Core.Model/Models/RootTkey/ModulePermissionRoot.cs b/Blog.Core.Model/Models/RootTkey/ModulePermissionRoot.cs deleted file mode 100644 index 86873f69..00000000 --- a/Blog.Core.Model/Models/RootTkey/ModulePermissionRoot.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; - -namespace Blog.Core.Model -{ - /// - /// 菜单与按钮关系表 - /// 父类 - /// - public class ModulePermissionRoot : RootEntityTkey where Tkey : IEquatable - { - /// - /// 菜单ID - /// - public Tkey ModuleId { get; set; } - /// - /// 按钮ID - /// - public Tkey PermissionId { get; set; } - - } -} diff --git a/Blog.Core.Services/ModulePermissionServices.cs b/Blog.Core.Services/ModulePermissionServices.cs deleted file mode 100644 index cf80e492..00000000 --- a/Blog.Core.Services/ModulePermissionServices.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Blog.Core.Services.BASE; -using Blog.Core.Model.Models; -using Blog.Core.IRepository; -using Blog.Core.IServices; -using Blog.Core.IRepository.Base; - -namespace Blog.Core.Services -{ - /// - /// ModulePermissionServices - /// - public class ModulePermissionServices : BaseServices, IModulePermissionServices - { - - IBaseRepository _dal; - public ModulePermissionServices(IBaseRepository dal) - { - this._dal = dal; - base.BaseDal = dal; - } - - } -} From 23a08dbd351e7c4165a82dee8469403910759a8a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 23 Mar 2022 17:08:15 +0800 Subject: [PATCH 113/382] fix: add department api --- Blog.Core.Api/Blog.Core.Model.xml | 87 +++++++++++++++++ .../Controllers/DepartmentController.cs | 97 +++++++++++++++++++ Blog.Core.IServices/IDepartmentServices.cs | 12 +++ Blog.Core.Model/Models/Department.cs | 77 +++++++++++++++ Blog.Core.Services/DepartmentServices.cs | 20 ++++ 5 files changed, 293 insertions(+) create mode 100644 Blog.Core.Api/Controllers/DepartmentController.cs create mode 100644 Blog.Core.IServices/IDepartmentServices.cs create mode 100644 Blog.Core.Model/Models/Department.cs create mode 100644 Blog.Core.Services/DepartmentServices.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 3b4fd36f..6eb3c6a1 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -271,6 +271,93 @@ 逻辑删除 + + + 部门表 + + + + + Desc:部门Code + Nullable:True + + + + + Desc:父部门Code + Nullable:True + + + + + Desc:部门关系编码 + Default: + Nullable:True + + + + + Desc:部门名称 + Default: + Nullable:True + + + + + Desc:负责人 + Default: + Nullable:True + + + + + Desc:排序 + Default: + Nullable:True + + + + + Desc:部门状态(0正常 1停用) + Default:0 + Nullable:True + + + + + Desc:删除标志(0代表存在 2代表删除) + Default:0 + Nullable:True + + + + + Desc:创建者 + Default: + Nullable:True + + + + + Desc:创建时间 + Default: + Nullable:True + + + + + Desc:更新者 + Default: + Nullable:True + + + + + Desc:更新时间 + Default: + Nullable:True + + 博客ID diff --git a/Blog.Core.Api/Controllers/DepartmentController.cs b/Blog.Core.Api/Controllers/DepartmentController.cs new file mode 100644 index 00000000..efa4c16f --- /dev/null +++ b/Blog.Core.Api/Controllers/DepartmentController.cs @@ -0,0 +1,97 @@ +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Linq.Expressions; +using System.Threading.Tasks; + +namespace Blog.Core.Api.Controllers +{ + [Route("api/[controller]/[action]")] + [ApiController] + [Authorize(Permissions.Name)] + public class DepartmentController : ControllerBase + { + private readonly IDepartmentServices _departmentServices; + + public DepartmentController(IDepartmentServices departmentServices) + { + _departmentServices = departmentServices; + } + + [HttpGet] + public async Task>> Get(int page = 1, string key = "",int intPageSize = 50) + { + if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) + { + key = ""; + } + + Expression> whereExpression = a => true; + + return new MessageModel>() + { + msg = "获取成功", + success = true, + response = await _departmentServices.QueryPage(whereExpression, page, intPageSize) + }; + + } + + [HttpGet("{id}")] + public async Task> Get(string id) + { + return new MessageModel() + { + msg = "获取成功", + success = true, + response = await _departmentServices.QueryById(id) + }; + } + + [HttpPost] + public async Task> Post([FromBody] Department request) + { + var data = new MessageModel(); + + var id = await _departmentServices.Add(request); + if (data.success) + { + data.response = id.ObjToString(); + data.msg = "添加成功"; + } + + return data; + } + + [HttpPut] + public async Task> Put([FromBody] Department request) + { + var data = new MessageModel(); + data.success = await _departmentServices.Update(request); + if (data.success) + { + data.msg = "更新成功"; + data.response = request?.Id.ObjToString(); + } + + return data; + } + + [HttpDelete("{id}")] + public async Task> Delete(string id) + { + var data = new MessageModel(); + data.success = await _departmentServices.DeleteById(id); + if (data.success) + { + data.msg = "删除成功"; + data.response = id; + } + + return data; + } + } +} \ No newline at end of file diff --git a/Blog.Core.IServices/IDepartmentServices.cs b/Blog.Core.IServices/IDepartmentServices.cs new file mode 100644 index 00000000..fdd650d7 --- /dev/null +++ b/Blog.Core.IServices/IDepartmentServices.cs @@ -0,0 +1,12 @@ +using Blog.Core.IServices.BASE; +using Blog.Core.Model.Models; + +namespace Blog.Core.IServices +{ + /// + /// IDepartmentServices + /// + public interface IDepartmentServices : IBaseServices + { + } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/Department.cs b/Blog.Core.Model/Models/Department.cs new file mode 100644 index 00000000..e9cd2143 --- /dev/null +++ b/Blog.Core.Model/Models/Department.cs @@ -0,0 +1,77 @@ +using System; + + +namespace Blog.Core.Model.Models +{ + /// + /// 部门表 + /// + public class Department : RootEntityTkey + { + /// + /// Desc:父部门 + /// Nullable:True + /// + public long PId { get; set; } + /// + /// Desc:部门关系编码 + /// Default: + /// Nullable:True + /// + public string CodeRelationship { get; set; } + /// + /// Desc:部门名称 + /// Default: + /// Nullable:True + /// + public string DepartName { get; set; } + /// + /// Desc:负责人 + /// Default: + /// Nullable:True + /// + public string Leader { get; set; } + /// + /// Desc:排序 + /// Default: + /// Nullable:True + /// + public int? OrderNum { get; set; } = 0; + /// + /// Desc:部门状态(0正常 1停用) + /// Default:0 + /// Nullable:True + /// + public bool Status { get; set; } + /// + /// Desc:删除标志(0代表存在 2代表删除) + /// Default:0 + /// Nullable:True + /// + public bool IsDeleted { get; set; } = false; + /// + /// Desc:创建者 + /// Default: + /// Nullable:True + /// + public string CreateBy { get; set; } + /// + /// Desc:创建时间 + /// Default: + /// Nullable:True + /// + public DateTime? CreateTime { get; set; } + /// + /// Desc:更新者 + /// Default: + /// Nullable:True + /// + public string ModifyBy { get; set; } + /// + /// Desc:更新时间 + /// Default: + /// Nullable:True + /// + public DateTime? ModifyTime { get; set; } + } +} \ No newline at end of file diff --git a/Blog.Core.Services/DepartmentServices.cs b/Blog.Core.Services/DepartmentServices.cs new file mode 100644 index 00000000..a6f1eed5 --- /dev/null +++ b/Blog.Core.Services/DepartmentServices.cs @@ -0,0 +1,20 @@ +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Blog.Core.Services.BASE; +using Blog.Core.IRepository.Base; + +namespace Blog.Core.Services +{ + /// + /// DepartmentServices + /// + public class DepartmentServices : BaseServices, IDepartmentServices + { + private readonly IBaseRepository _dal; + public DepartmentServices(IBaseRepository dal) + { + this._dal = dal; + base.BaseDal = dal; + } + } +} \ No newline at end of file From 2d58445a5952eb581c33b71c11cbf5c0b5fd54d0 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 23 Mar 2022 17:52:03 +0800 Subject: [PATCH 114/382] Update Blog.Core.Model.xml --- Blog.Core.Api/Blog.Core.Model.xml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 6eb3c6a1..f43cb30e 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -276,15 +276,9 @@ 部门表 - + - Desc:部门Code - Nullable:True - - - - - Desc:父部门Code + Desc:父部门 Nullable:True From 55e9aa90c1f01637812d900bfced810699a8530d Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 23 Mar 2022 20:15:12 +0800 Subject: [PATCH 115/382] Update ModuleController.cs --- Blog.Core.Api/Controllers/ModuleController.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Api/Controllers/ModuleController.cs b/Blog.Core.Api/Controllers/ModuleController.cs index c160e0da..334a8ea4 100644 --- a/Blog.Core.Api/Controllers/ModuleController.cs +++ b/Blog.Core.Api/Controllers/ModuleController.cs @@ -47,7 +47,17 @@ public async Task>> Get(int page = 1, string key Expression> whereExpression = a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key)); - var data = await _moduleServices.QueryPage(whereExpression, page, intPageSize, " Id desc "); + PageModel data = new PageModel(); + + if (page == -1) + { + var modules = await _moduleServices.Query(whereExpression, " Id desc "); + data.data = modules; + } + else + { + data = await _moduleServices.QueryPage(whereExpression, page, intPageSize, " Id desc "); + } return Success(data, "获取成功"); From 3bbb4bb882a1c9049527c48a51e6d9b54c9dd87f Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 23 Mar 2022 20:23:16 +0800 Subject: [PATCH 116/382] add department table seed data #260 --- .../wwwroot/BlogCore.Data.json/Modules.tsv | 84 ++++++++ .../wwwroot/BlogCore.Data.json/Permission.tsv | 186 ++++++++++++++++++ .../RoleModulePermission.tsv | 77 ++++++++ 3 files changed, 347 insertions(+) diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv index 9acf2b3c..9c82d93b 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv @@ -1407,5 +1407,89 @@ "ModifyBy": null, "ModifyTime": "2020-04-06 00:00:00", "ParentId": 0 + }, + { + "IsDeleted": false, + "Name": "获取部门数据", + "LinkUrl": "/api/department/get", + "OrderSort": 0, + "IsMenu": false, + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "ParentId": 0, + "Id": 65 + }, + { + "IsDeleted": false, + "Name": "获取部门数据树表格", + "LinkUrl": "/api/permission/GetTreeTable", + "OrderSort": 0, + "IsMenu": false, + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "ParentId": 0, + "Id": 66 + }, + { + "IsDeleted": false, + "Name": "删除部门", + "LinkUrl": "/api/department/delete", + "OrderSort": 0, + "IsMenu": false, + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "ParentId": 0, + "Id": 67 + }, + { + "IsDeleted": false, + "Name": "更新部门", + "LinkUrl": "/api/department/put", + "OrderSort": 0, + "IsMenu": false, + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "ParentId": 0, + "Id": 68 + }, + { + "IsDeleted": false, + "Name": "添加部门", + "LinkUrl": "/api/department/post", + "OrderSort": 0, + "IsMenu": false, + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "ParentId": 0, + "Id": 69 + }, + { + "IsDeleted": false, + "Name": "获取部门树", + "LinkUrl": "/api/department/getDepartmentTree", + "OrderSort": 0, + "IsMenu": false, + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "ParentId": 0, + "Id": 70 } ] diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv index 81984e1b..05375d34 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv @@ -2344,5 +2344,191 @@ "IsDeleted": 0, "Pid": 95, "Mid": 0 + }, + { + "Code": "-", + "Name": "部门权限管理", + "IsButton": false, + "IsHide": false, + "IskeepAlive": false, + "OrderSort": -10, + "Icon": "fa-address-book", + "Description": "", + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "IsDeleted": false, + "PnameArr": [ + + ], + "PCodeArr": [ + + ], + "hasChildren": true, + "Pid": 0, + "Mid": 0, + "Id": 114 + }, + { + "Code": "/Department/Department", + "Name": "部门管理", + "IsButton": false, + "IsHide": false, + "IskeepAlive": false, + "OrderSort": 0, + "Icon": "", + "Description": "", + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "IsDeleted": false, + "PnameArr": [ + + ], + "PCodeArr": [ + + ], + "hasChildren": true, + "Pid": 114, + "Mid": 66, + "Id": 115 + }, + { + "Code": " ", + "Name": "查询", + "IsButton": true, + "IsHide": false, + "IskeepAlive": false, + "Func": "handleQuery", + "OrderSort": 0, + "Icon": "", + "Description": "", + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "IsDeleted": false, + "PnameArr": [ + + ], + "PCodeArr": [ + + ], + "hasChildren": true, + "Pid": 115, + "Mid": 66, + "Id": 116 + }, + { + "Code": " ", + "Name": "新增", + "IsButton": true, + "IsHide": false, + "IskeepAlive": false, + "Func": "handleAdd", + "OrderSort": 0, + "Icon": "", + "Description": "", + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "IsDeleted": false, + "PnameArr": [ + + ], + "PCodeArr": [ + + ], + "hasChildren": true, + "Pid": 115, + "Mid": 69, + "Id": 117 + }, + { + "Code": " ", + "Name": "编辑", + "IsButton": true, + "IsHide": false, + "IskeepAlive": false, + "Func": "handleEdit", + "OrderSort": 0, + "Icon": "", + "Description": "", + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "IsDeleted": false, + "PnameArr": [ + + ], + "PCodeArr": [ + + ], + "hasChildren": true, + "Pid": 115, + "Mid": 68, + "Id": 118 + }, + { + "Code": " ", + "Name": "删除", + "IsButton": true, + "IsHide": false, + "IskeepAlive": false, + "Func": "handleDel", + "OrderSort": 0, + "Icon": "", + "Description": "", + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "IsDeleted": false, + "PnameArr": [ + + ], + "PCodeArr": [ + + ], + "hasChildren": true, + "Pid": 115, + "Mid": 67, + "Id": 119 + }, + { + "Code": " ", + "Name": "部门树", + "IsButton": true, + "IsHide": true, + "IskeepAlive": false, + "OrderSort": 0, + "Icon": "", + "Description": "", + "Enabled": true, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 00:00:00", + "ModifyTime": "2022-03-23 00:00:00", + "IsDeleted": false, + "PnameArr": [ + + ], + "PCodeArr": [ + + ], + "hasChildren": true, + "Pid": 115, + "Mid": 70, + "Id": 120 } ] diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv index 4307f6ee..48d5c2c1 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv @@ -1558,5 +1558,82 @@ "ModifyBy": null, "ModifyTime": "\/Date(1546272000000+0800)\/", "Id": 157 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyTime": "2022-03-23 19:21:58", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 114, + "Id": 121 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyTime": "2022-03-23 19:21:58", + "RoleId": 4, + "ModuleId": 66, + "PermissionId": 115, + "Id": 122 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyTime": "2022-03-23 19:21:58", + "RoleId": 4, + "ModuleId": 66, + "PermissionId": 116, + "Id": 123 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyTime": "2022-03-23 19:21:58", + "RoleId": 4, + "ModuleId": 69, + "PermissionId": 117, + "Id": 124 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyTime": "2022-03-23 19:21:58", + "RoleId": 4, + "ModuleId": 68, + "PermissionId": 118, + "Id": 125 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyTime": "2022-03-23 19:21:58", + "RoleId": 4, + "ModuleId": 67, + "PermissionId": 119, + "Id": 126 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyTime": "2022-03-23 19:21:58", + "RoleId": 4, + "ModuleId": 70, + "PermissionId": 120, + "Id": 127 } ] From ddd9769973aa005f462abf3dc5e78652dacbdc2c Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 24 Mar 2022 17:50:08 +0800 Subject: [PATCH 117/382] fix: sort permission.tsv #260 --- Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv index 05375d34..37896ab0 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv @@ -5,7 +5,7 @@ "IsButton": 0, "Pid": 0, "Mid": 0, - "OrderSort": 0, + "OrderSort": -90, "Icon": "fa-home", "Description": "33", "Enabled": 1, @@ -25,7 +25,7 @@ "IsButton": 0, "Pid": 0, "Mid": 0, - "OrderSort": 0, + "OrderSort": -80, "Icon": "fa-users", "Description": "11", "Enabled": 1, From ca9103fa9bd4aeca1199215edc9c241c5dc16c3e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 25 Mar 2022 23:27:42 +0800 Subject: [PATCH 118/382] fix: set department tree #261 --- Blog.Core.Api/Blog.Core.Model.xml | 20 +- Blog.Core.Api/Blog.Core.xml | 15 ++ .../Controllers/DepartmentController.cs | 209 +++++++++++++----- Blog.Core.Common/Helper/RecursionHelper.cs | 35 +++ Blog.Core.Common/Seed/FrameSeed.cs | 1 + Blog.Core.Model/Models/Department.cs | 26 ++- .../Models/RootTkey/DepartmentRoot.cs | 20 ++ 7 files changed, 247 insertions(+), 79 deletions(-) create mode 100644 Blog.Core.Model/Models/RootTkey/DepartmentRoot.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index f43cb30e..41ab4514 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -276,12 +276,6 @@ 部门表 - - - Desc:父部门 - Nullable:True - - Desc:部门关系编码 @@ -289,7 +283,7 @@ Nullable:True - + Desc:部门名称 Default: @@ -303,7 +297,7 @@ Nullable:True - + Desc:排序 Default: @@ -1417,6 +1411,16 @@ ID + + + 部门表 + + + + + 上一级(0表示无上一级) + + 接口API地址信息表 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 44e2e1e3..730ddfd4 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1155,6 +1155,21 @@ + + + 查询树形 Table + + 父节点 + 关键字 + + + + + 获取部门树 + + + + 服务管理 diff --git a/Blog.Core.Api/Controllers/DepartmentController.cs b/Blog.Core.Api/Controllers/DepartmentController.cs index efa4c16f..d865ea88 100644 --- a/Blog.Core.Api/Controllers/DepartmentController.cs +++ b/Blog.Core.Api/Controllers/DepartmentController.cs @@ -1,97 +1,184 @@ -using Blog.Core.IServices; +using Blog.Core.Common.Helper; +using Blog.Core.Controllers; +using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; +using System.Collections.Generic; +using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; namespace Blog.Core.Api.Controllers { - [Route("api/[controller]/[action]")] - [ApiController] + [Route("api/[controller]/[action]")] + [ApiController] [Authorize(Permissions.Name)] - public class DepartmentController : ControllerBase + public class DepartmentController : BaseApiController { - private readonly IDepartmentServices _departmentServices; - - public DepartmentController(IDepartmentServices departmentServices) + private readonly IDepartmentServices _departmentServices; + + public DepartmentController(IDepartmentServices departmentServices) + { + _departmentServices = departmentServices; + } + + [HttpGet] + public async Task>> Get(int page = 1, string key = "", int intPageSize = 50) + { + if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { - _departmentServices = departmentServices; + key = ""; } - - [HttpGet] - public async Task>> Get(int page = 1, string key = "",int intPageSize = 50) + + Expression> whereExpression = a => true; + + return new MessageModel>() { - if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) - { - key = ""; - } - - Expression> whereExpression = a => true; - - return new MessageModel>() - { - msg = "获取成功", - success = true, - response = await _departmentServices.QueryPage(whereExpression, page, intPageSize) - }; + msg = "获取成功", + success = true, + response = await _departmentServices.QueryPage(whereExpression, page, intPageSize) + }; + } + + [HttpGet("{id}")] + public async Task> Get(string id) + { + return new MessageModel() + { + msg = "获取成功", + success = true, + response = await _departmentServices.QueryById(id) + }; + } + + /// + /// 查询树形 Table + /// + /// 父节点 + /// 关键字 + /// + [HttpGet] + [AllowAnonymous] + public async Task>> GetTreeTable(long f = 0, string key = "") + { + List departments = new List(); + var departmentList = await _departmentServices.Query(d => d.IsDeleted == false); + if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) + { + key = ""; } - [HttpGet("{id}")] - public async Task> Get(string id) + if (key != "") { - return new MessageModel() - { - msg = "获取成功", - success = true, - response = await _departmentServices.QueryById(id) - }; + departments = departmentList.Where(a => a.Name.Contains(key)).OrderBy(a => a.OrderSort).ToList(); + } + else + { + departments = departmentList.Where(a => a.Pid == f).OrderBy(a => a.OrderSort).ToList(); } - [HttpPost] - public async Task> Post([FromBody] Department request) + foreach (var item in departments) { - var data = new MessageModel(); + List pidarr = new() { }; + var parent = departmentList.FirstOrDefault(d => d.Id == item.Pid); - var id = await _departmentServices.Add(request); - if (data.success) + while (parent != null) { - data.response = id.ObjToString(); - data.msg = "添加成功"; - } + pidarr.Add(parent.Id); + parent = departmentList.FirstOrDefault(d => d.Id == parent.Pid); + } - return data; + pidarr.Reverse(); + pidarr.Insert(0, 0); + item.PidArr = pidarr; + + item.hasChildren = departmentList.Where(d => d.Pid == item.Id).Any(); } - [HttpPut] - public async Task> Put([FromBody] Department request) + + return Success(departments, "获取成功"); + } + + /// + /// 获取部门树 + /// + /// + /// + [HttpGet] + public async Task> GetDepartmentTree(int pid = 0) + { + var departments = await _departmentServices.Query(d => d.IsDeleted == false); + var departmentTrees = (from child in departments + where child.IsDeleted == false + orderby child.Id + select new DepartmentTree + { + value = child.Id, + label = child.Name, + Pid = child.Pid, + order = child.OrderSort, + }).ToList(); + DepartmentTree rootRoot = new DepartmentTree { - var data = new MessageModel(); - data.success = await _departmentServices.Update(request); - if (data.success) - { - data.msg = "更新成功"; - data.response = request?.Id.ObjToString(); - } + value = 0, + Pid = 0, + label = "根节点" + }; + + departmentTrees = departmentTrees.OrderBy(d => d.order).ToList(); + + + RecursionHelper.LoopToAppendChildren(departmentTrees, rootRoot, pid); + + return Success(rootRoot, "获取成功"); + } + + [HttpPost] + public async Task> Post([FromBody] Department request) + { + var data = new MessageModel(); - return data; + var id = await _departmentServices.Add(request); + data.success = id > 0; + if (data.success) + { + data.response = id.ObjToString(); + data.msg = "添加成功"; } - [HttpDelete("{id}")] - public async Task> Delete(string id) + return data; + } + + [HttpPut] + public async Task> Put([FromBody] Department request) + { + var data = new MessageModel(); + data.success = await _departmentServices.Update(request); + if (data.success) { - var data = new MessageModel(); - data.success = await _departmentServices.DeleteById(id); - if (data.success) - { - data.msg = "删除成功"; - data.response = id; - } + data.msg = "更新成功"; + data.response = request?.Id.ObjToString(); + } + + return data; + } - return data; + [HttpDelete("{id}")] + public async Task> Delete(string id) + { + var data = new MessageModel(); + data.success = await _departmentServices.DeleteById(id); + if (data.success) + { + data.msg = "删除成功"; + data.response = id; } + + return data; + } } } \ No newline at end of file diff --git a/Blog.Core.Common/Helper/RecursionHelper.cs b/Blog.Core.Common/Helper/RecursionHelper.cs index 508b03df..3de28d18 100644 --- a/Blog.Core.Common/Helper/RecursionHelper.cs +++ b/Blog.Core.Common/Helper/RecursionHelper.cs @@ -52,6 +52,30 @@ public static void LoopToAppendChildren(List all, PermissionTree LoopToAppendChildren(all, subItem, pid, needbtn); } } + public static void LoopToAppendChildren(List all, DepartmentTree curItem, int pid) + { + + var subItems = all.Where(ee => ee.Pid == curItem.value).ToList(); + + if (subItems.Count > 0) + { + curItem.children = new List(); + curItem.children.AddRange(subItems); + } + else + { + curItem.children = null; + } + + foreach (var subItem in subItems) + { + if (subItem.value == pid && pid > 0) + { + //subItem.disabled = true;//禁用当前节点 + } + LoopToAppendChildren(all, subItem, pid); + } + } @@ -102,6 +126,17 @@ public class PermissionTree public List children { get; set; } public List btns { get; set; } } + + public class DepartmentTree + { + public long value { get; set; } + public long Pid { get; set; } + public string label { get; set; } + public int order { get; set; } + public bool disabled { get; set; } + public List children { get; set; } + } + public class NavigationBar { public int id { get; set; } diff --git a/Blog.Core.Common/Seed/FrameSeed.cs b/Blog.Core.Common/Seed/FrameSeed.cs index ddd273c1..89e60ded 100644 --- a/Blog.Core.Common/Seed/FrameSeed.cs +++ b/Blog.Core.Common/Seed/FrameSeed.cs @@ -194,6 +194,7 @@ public async Task> Post([FromBody] {ClassName} request) var data = new MessageModel(); var id = await _{ClassName}Services.Add(request); + data.success = id > 0; if (data.success) { data.response = id.ObjToString(); diff --git a/Blog.Core.Model/Models/Department.cs b/Blog.Core.Model/Models/Department.cs index e9cd2143..3583bcff 100644 --- a/Blog.Core.Model/Models/Department.cs +++ b/Blog.Core.Model/Models/Department.cs @@ -1,4 +1,5 @@ -using System; +using SqlSugar; +using System; namespace Blog.Core.Model.Models @@ -6,13 +7,8 @@ namespace Blog.Core.Model.Models /// /// 部门表 /// - public class Department : RootEntityTkey + public class Department : DepartmentRoot { - /// - /// Desc:父部门 - /// Nullable:True - /// - public long PId { get; set; } /// /// Desc:部门关系编码 /// Default: @@ -24,25 +20,26 @@ public class Department : RootEntityTkey /// Default: /// Nullable:True /// - public string DepartName { get; set; } + public string Name { get; set; } /// /// Desc:负责人 /// Default: /// Nullable:True /// + [SugarColumn(IsNullable = true)] public string Leader { get; set; } /// /// Desc:排序 /// Default: /// Nullable:True /// - public int? OrderNum { get; set; } = 0; + public int OrderSort { get; set; } = 0; /// /// Desc:部门状态(0正常 1停用) /// Default:0 /// Nullable:True /// - public bool Status { get; set; } + public bool Status { get; set; } = false; /// /// Desc:删除标志(0代表存在 2代表删除) /// Default:0 @@ -54,24 +51,33 @@ public class Department : RootEntityTkey /// Default: /// Nullable:True /// + [SugarColumn(IsNullable = true)] public string CreateBy { get; set; } /// /// Desc:创建时间 /// Default: /// Nullable:True /// + [SugarColumn(IsNullable = true)] public DateTime? CreateTime { get; set; } /// /// Desc:更新者 /// Default: /// Nullable:True /// + [SugarColumn(IsNullable = true)] public string ModifyBy { get; set; } /// /// Desc:更新时间 /// Default: /// Nullable:True /// + [SugarColumn(IsNullable = true)] public DateTime? ModifyTime { get; set; } + + + + [SugarColumn(IsIgnore = true)] + public bool hasChildren { get; set; } = true; } } \ No newline at end of file diff --git a/Blog.Core.Model/Models/RootTkey/DepartmentRoot.cs b/Blog.Core.Model/Models/RootTkey/DepartmentRoot.cs new file mode 100644 index 00000000..ab10c9f8 --- /dev/null +++ b/Blog.Core.Model/Models/RootTkey/DepartmentRoot.cs @@ -0,0 +1,20 @@ +using SqlSugar; +using System; +using System.Collections.Generic; + +namespace Blog.Core.Model +{ + /// + /// 部门表 + /// + public class DepartmentRoot : RootEntityTkey where Tkey : IEquatable + { + /// + /// 上一级(0表示无上一级) + /// + public Tkey Pid { get; set; } + + [SugarColumn(IsIgnore = true)] + public List PidArr { get; set; } + } +} From b21c5ca017830a1772996a7129df803abd84740a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 1 Apr 2022 15:05:22 +0800 Subject: [PATCH 119/382] fix: change seed logic #260 about. --- .../Controllers/DbFirst/MigrateController.cs | 95 +++++++++++++++---- Blog.Core.Model/Models/Permission.cs | 6 ++ 2 files changed, 83 insertions(+), 18 deletions(-) diff --git a/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs b/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs index 730a9e8d..e4a23600 100644 --- a/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs +++ b/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs @@ -8,6 +8,7 @@ using Microsoft.Extensions.Hosting; using Newtonsoft.Json; using System; +using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; @@ -45,6 +46,58 @@ public MigrateController(IUnitOfWork unitOfWork, _env = env; } + private void InitPermissionTree(List permissions, List all, List apis) + { + foreach (var item in permissions) + { + item.Children = all.Where(d => d.Pid == item.Id).ToList(); + item.Module = apis.FirstOrDefault(d => d.Id == item.Mid); + InitPermissionTree(item.Children, all, apis); + } + } + + private async Task SavePermissionTreeAsync(List permissions, List pms, int permissionId = 0) + { + var parendId = permissionId; + + foreach (var item in permissions) + { + PM pm = new PM(); + // 保留原始主键id + pm.PidOld = item.Id; + pm.MidOld = (item.Module?.Id).ObjToInt(); + + var mid = 0; + // 接口 + if (item.Module != null) + { + var moduleModel = (await _moduleServices.Query(d => d.LinkUrl == item.Module.LinkUrl)).FirstOrDefault(); + if (moduleModel != null) + { + mid = moduleModel.Id; + } + else + { + mid = await _moduleServices.Add(item.Module); + } + pm.MidNew = mid; + Console.WriteLine($"Moudle Added:{item.Module.Name}"); + } + // 菜单 + if (item != null) + { + item.Pid = parendId; + item.Mid = mid; + permissionId = await _permissionServices.Add(item); + pm.PidNew = permissionId; + Console.WriteLine($"Permission Added:{item.Name}"); + } + pms.Add(pm); + + await SavePermissionTreeAsync(item.Children, pms, permissionId); + } + } + /// /// 获取权限部分Map数据(从库) /// 迁移到新库(主库) @@ -58,14 +111,24 @@ public async Task> DataMigrateFromOld2New() { try { - // 获取权限集合数据 + var apiList = await _moduleServices.Query(d => d.IsDeleted == false); + var permissionsList = await _permissionServices.Query(d => d.IsDeleted == false); + var permissions = permissionsList.Where(d => d.Pid == 0).ToList(); var rmps = await _roleModulePermissionServices.GetRMPMaps(); + List pms = new List(); + // 当然,你可以做个where查询 - //rmps = rmps.Where(d => d.ModuleId > 88).ToList(); + rmps = rmps.Where(d => d.PermissionId >= 114).ToList(); + + InitPermissionTree(permissions, permissionsList, apiList); + + permissions = permissions.Where(d => d.Id >= 114).ToList(); // 开启事务,保证数据一致性 _unitOfWork.BeginTran(); + await SavePermissionTreeAsync(permissions, pms); + var rid = 0; var pid = 0; var mid = 0; @@ -89,22 +152,10 @@ public async Task> DataMigrateFromOld2New() } } - // 菜单 - if (item.Permission != null) - { - pid = await _permissionServices.Add(item.Permission); - Console.WriteLine($"Permission Added:{item.Permission.Name}"); - } - - // 接口 - if (item.Module != null) - { - mid = await _moduleServices.Add(item.Module); - Console.WriteLine($"Module Added:{item.Module.LinkUrl}"); - } - + pid = (pms.FirstOrDefault(d => d.PidOld == item.PermissionId)?.PidNew).ObjToInt(); + mid = (pms.FirstOrDefault(d => d.MidOld == item.ModuleId)?.MidNew).ObjToInt(); // 关系 - if (rid > 0 && pid > 0 && mid > 0) + if (rid > 0 && pid > 0) { rpmid = await _roleModulePermissionServices.Add(new RoleModulePermission() { @@ -152,7 +203,7 @@ public async Task> SaveData2TsvAsync() var data = new MessageModel() { success = true, msg = "" }; if (_env.IsDevelopment()) { - + JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat @@ -189,4 +240,12 @@ public async Task> SaveData2TsvAsync() } } + + public class PM + { + public int PidOld { get; set; } + public int MidOld { get; set; } + public int PidNew { get; set; } + public int MidNew { get; set; } + } } diff --git a/Blog.Core.Model/Models/Permission.cs b/Blog.Core.Model/Models/Permission.cs index a8240d1c..c650cb5e 100644 --- a/Blog.Core.Model/Models/Permission.cs +++ b/Blog.Core.Model/Models/Permission.cs @@ -113,6 +113,12 @@ public Permission() [SugarColumn(IsIgnore = true)] public bool hasChildren { get; set; } = true; + [SugarColumn(IsIgnore = true)] + public List Children { get; set; } = new List(); + + [SugarColumn(IsIgnore = true)] + public Modules Module { get; set; } + //public virtual ICollection ModulePermission { get; set; } //public virtual ICollection RoleModulePermission { get; set; } } From 455ae0bfbe8ce25cabf4a2e21cd63ced6bbbe34f Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 1 Apr 2022 17:23:03 +0800 Subject: [PATCH 120/382] fix: produce department data --- .../Controllers/DepartmentController.cs | 37 ++++++++++++++++++- .../wwwroot/BlogCore.Data.json/Department.tsv | 1 + Blog.Core.Common/Seed/DBSeed.cs | 14 +++++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 Blog.Core.Api/wwwroot/BlogCore.Data.json/Department.tsv diff --git a/Blog.Core.Api/Controllers/DepartmentController.cs b/Blog.Core.Api/Controllers/DepartmentController.cs index d865ea88..9ae0ebae 100644 --- a/Blog.Core.Api/Controllers/DepartmentController.cs +++ b/Blog.Core.Api/Controllers/DepartmentController.cs @@ -4,11 +4,16 @@ using Blog.Core.Model; using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Hosting; +using Newtonsoft.Json; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Linq.Expressions; +using System.Text; using System.Threading.Tasks; namespace Blog.Core.Api.Controllers @@ -19,10 +24,12 @@ namespace Blog.Core.Api.Controllers public class DepartmentController : BaseApiController { private readonly IDepartmentServices _departmentServices; + private readonly IWebHostEnvironment _env; - public DepartmentController(IDepartmentServices departmentServices) + public DepartmentController(IDepartmentServices departmentServices, IWebHostEnvironment env) { _departmentServices = departmentServices; + _env = env; } [HttpGet] @@ -180,5 +187,33 @@ public async Task> Delete(string id) return data; } + + [HttpGet] + [AllowAnonymous] + public async Task> SaveData2Tsv() + { + var data = new MessageModel() { success = true, msg = "" }; + if (_env.IsDevelopment()) + { + + JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings + { + DateFormatHandling = DateFormatHandling.MicrosoftDateFormat + }; + + var rolesJson = JsonConvert.SerializeObject(await _departmentServices.Query(d => d.IsDeleted == false), microsoftDateFormatSettings); + FileHelper.WriteFile(Path.Combine(_env.WebRootPath, "BlogCore.Data.json", "Department_New.tsv"), rolesJson, Encoding.UTF8); + + data.success = true; + data.msg = "生成成功!"; + } + else + { + data.success = false; + data.msg = "当前不处于开发模式,代码生成不可用!"; + } + + return data; + } } } \ No newline at end of file diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Department.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Department.tsv new file mode 100644 index 00000000..dfb887b1 --- /dev/null +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Department.tsv @@ -0,0 +1 @@ +[{"CodeRelationship":"0,","Name":"BCVP开发社区","Leader":"老张的哲学","OrderSort":0,"Status":true,"IsDeleted":false,"CreateBy":"老张的哲学","CreateTime":"2022-04-01 15:47:25","ModifyTime":"2022-04-01 15:47:25","hasChildren":true,"Pid":0,"Id":1},{"CodeRelationship":"0,","Name":"DDD思想社区组织","Leader":"DDD","OrderSort":0,"Status":true,"IsDeleted":false,"CreateBy":"老张的哲学","CreateTime":"2022-04-01 15:48:08","ModifyTime":"2022-04-01 15:48:08","hasChildren":true,"Pid":0,"Id":2},{"CodeRelationship":"0,1,","Name":"BCVP-北京分部","Leader":"北京","OrderSort":0,"Status":true,"IsDeleted":false,"CreateBy":"老张的哲学","CreateTime":"2022-04-01 15:48:41","ModifyTime":"2022-04-01 15:48:41","hasChildren":true,"Pid":1,"Id":3},{"CodeRelationship":"0,1,","Name":"BCVP-上海分部","Leader":"上海","OrderSort":0,"Status":true,"IsDeleted":false,"CreateBy":"老张的哲学","CreateTime":"2022-04-01 15:49:27","ModifyTime":"2022-04-01 15:49:27","hasChildren":true,"Pid":1,"Id":4},{"CodeRelationship":"0,1,","Name":"BCVP-广州分部","Leader":"广州","OrderSort":0,"Status":true,"IsDeleted":false,"CreateBy":"老张的哲学","CreateTime":"2022-04-01 15:50:23","ModifyTime":"2022-04-01 15:50:44","hasChildren":true,"Pid":1,"Id":5},{"CodeRelationship":"0,1,3,","Name":"前端小组(1群)","Leader":"--","OrderSort":0,"Status":true,"IsDeleted":false,"CreateBy":"老张的哲学","CreateTime":"2022-04-01 15:51:43","ModifyTime":"2022-04-01 15:51:43","hasChildren":true,"Pid":3,"Id":6},{"CodeRelationship":"0,1,4,","Name":"后端小组(2群)","Leader":"--","OrderSort":0,"Status":true,"IsDeleted":false,"CreateBy":"老张的哲学","CreateTime":"2022-04-01 15:58:13","ModifyTime":"2022-04-01 15:58:13","hasChildren":true,"Pid":4,"Id":7},{"CodeRelationship":"0,","Name":"VUE学习联盟","Leader":"vue","OrderSort":0,"Status":true,"IsDeleted":false,"CreateBy":"老张的哲学","CreateTime":"2022-04-01 16:14:21","ModifyTime":"2022-04-01 16:14:21","hasChildren":true,"Pid":0,"Id":8},{"CodeRelationship":"0,8,","Name":"ES指导(1组)","Leader":"es","OrderSort":0,"Status":true,"IsDeleted":false,"CreateBy":"老张的哲学","CreateTime":"2022-04-01 16:14:47","ModifyTime":"2022-04-01 16:15:00","hasChildren":true,"Pid":8,"Id":9}] \ No newline at end of file diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 11fcdae5..a3fa7e00 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -281,6 +281,20 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) } #endregion + #region Department + if (!await myContext.Db.Queryable().AnyAsync()) + { + var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Department"), Encoding.UTF8), setting); + + myContext.GetEntityDB().InsertRange(data); + Console.WriteLine("Table:Department created success!"); + } + else + { + Console.WriteLine("Table:Department already exists..."); + } + #endregion + ConsoleHelper.WriteSuccessLine($"Done seeding database!"); } From f8c569ebd7ea8293de483a7a941eca6d683f1c00 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 1 Apr 2022 17:42:55 +0800 Subject: [PATCH 121/382] fix: update ui.zip --- .../wwwroot/BlogCore.Data.json/Permission.tsv | 2 +- Blog.Core.Api/wwwroot/ui.zip | Bin 5244445 -> 5263957 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv index 37896ab0..d96fbc8a 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv @@ -25,7 +25,7 @@ "IsButton": 0, "Pid": 0, "Mid": 0, - "OrderSort": -80, + "OrderSort": 0, "Icon": "fa-users", "Description": "11", "Enabled": 1, diff --git a/Blog.Core.Api/wwwroot/ui.zip b/Blog.Core.Api/wwwroot/ui.zip index 025010ddf356f964de80fd344811ac9d2c590838..0e968aa0a8c8dc3e4e3f8baf3f53f7e27e28b695 100644 GIT binary patch delta 431536 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 @vFcT|;s=vyUc?D4^ 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%0Da+<>jA4SJXTDqv|2V3tc8sNscG+Q(5 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 tyL~Fa-BjdLTW}95B@xwv+(s{{bd=H4Xp( From 9fda8ff78b0564c758b8abaceda995d46f82620b Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 4 Apr 2022 19:07:26 +0800 Subject: [PATCH 122/382] fix: change test project data --- Blog.Core.Tests/WMBlog.db | Bin 192512 -> 200704 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Blog.Core.Tests/WMBlog.db b/Blog.Core.Tests/WMBlog.db index 6b7702ff555d8d591666d1fd9b8c27f96e976123..044a620194889190494c7d17ebbab62233f460e8 100644 GIT binary patch delta 11832 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 SO3?)F(;repa|Xc~@;?DET5$jX delta 5037 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 From 18f012ca16181bf6785dd9e2d5b816aaa038b1aa Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 4 Apr 2022 20:00:17 +0800 Subject: [PATCH 123/382] fix: program.cs for 6.0 --- Blog.Core.Api/Blog.Core.Api.csproj | 2 +- Blog.Core.Api/Blog.Core.xml | 6 - Blog.Core.Api/Program.cs | 250 +++++++++++++----- Blog.Core.Common/Helper/JsonConfigUtils.cs | 46 ---- .../ServiceExtensions/NacosSetup.cs | 3 - .../DependencyInjection/DI_Test.cs | 2 +- 6 files changed, 181 insertions(+), 128 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index a9499b1a..9c221839 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -5,7 +5,7 @@ Exe net6.0 - + enable OutOfProcess Linux true diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 730ddfd4..0c743f75 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1274,11 +1274,5 @@ 全局路由前缀公约

    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%0DADvCo`a)t}AcY4OIqi#BH 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 VF9GSHNhsI@E$>eyv+0a}tJ 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 UyK#ZL@ab;bpWOOFz_q-L8Jog&X%XPf_i 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 delta 412313 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̱xCH9)`xo%&`wkm=oSjLLq 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%0DO+x|Z(M7A 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%0A45B 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

    - - - 根据环境变量定向配置文件名称 - - - diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 9e416297..1e55871b 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -1,74 +1,182 @@ -using Autofac.Extensions.DependencyInjection; +using Autofac; +using Autofac.Extensions.DependencyInjection; +using Blog.Core; +using Blog.Core.Common; +using Blog.Core.Common.LogHelper; +using Blog.Core.Common.Seed; +using Blog.Core.Extensions; using Blog.Core.Extensions.Apollo; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using System; -using System.IO; - -namespace Blog.Core +using Blog.Core.Extensions.Middlewares; +using Blog.Core.Filter; +using Blog.Core.Hubs; +using Blog.Core.IServices; +using Blog.Core.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Controllers; +using Microsoft.AspNetCore.Server.Kestrel.Core; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Serialization; +using System.IdentityModel.Tokens.Jwt; +using System.Reflection; +using System.Text; + +var builder = WebApplication.CreateBuilder(args); + +// 1、配置host与容器 +builder.Host +.UseServiceProviderFactory(new AutofacServiceProviderFactory()) +.ConfigureContainer(builder => +{ + builder.RegisterModule(new AutofacModuleRegister()); + builder.RegisterModule(); +}) +.ConfigureLogging((hostingContext, builder) => { - public class Program - { - public static void Main(string[] args) - { - //初始化默认主机Builder - Host.CreateDefaultBuilder(args) - .UseServiceProviderFactory(new AutofacServiceProviderFactory()) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder - .UseStartup() - .ConfigureAppConfiguration((hostingContext, config) => - { - config.Sources.Clear(); - config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false) - //.AddJsonFile($"appsettings{ GetAppSettingsConfigName() }json", optional: true, reloadOnChange: false) - ; - //接入Apollo配置中心 - config.AddConfigurationApollo("appsettings.apollo.json"); - }) - .UseUrls("http://*:9291") - .ConfigureLogging((hostingContext, builder) => - { - // 1.过滤掉系统默认的一些日志 - builder.AddFilter("System", LogLevel.Error); - builder.AddFilter("Microsoft", LogLevel.Error); - - // 2.也可以在appsettings.json中配置,LogLevel节点 - - // 3.统一设置 - builder.SetMinimumLevel(LogLevel.Error); - - // 默认log4net.confg - builder.AddLog4Net(Path.Combine(Directory.GetCurrentDirectory(), "Log4net.config")); - }) - ; - }) - // 生成承载 web 应用程序的 Microsoft.AspNetCore.Hosting.IWebHost。Build是WebHostBuilder最终的目的,将返回一个构造的WebHost,最终生成宿主。 - .Build() - // 运行 web 应用程序并阻止调用线程, 直到主机关闭。 - // ※※※※ 有异常,查看 Log 文件夹下的异常日志 ※※※※ - .Run(); - } - - - /// - /// 根据环境变量定向配置文件名称 - /// - /// - private static string GetAppSettingsConfigName() - { - if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != null - && Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != "") - { - return $".{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}."; - } - else - { - return "."; - } - } - } + builder.AddFilter("System", LogLevel.Error); + builder.AddFilter("Microsoft", LogLevel.Error); + builder.SetMinimumLevel(LogLevel.Error); + builder.AddLog4Net(Path.Combine(Directory.GetCurrentDirectory(), "Log4net.config")); +}) +.ConfigureAppConfiguration((hostingContext, config) => +{ + config.Sources.Clear(); + config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false); + config.AddConfigurationApollo("appsettings.apollo.json"); +}); + + +// 2、配置服务 +builder.Services.AddSingleton(new Appsettings(builder.Configuration)); +builder.Services.AddSingleton(new LogLock(builder.Environment.ContentRootPath)); +builder.Services.AddUiFilesZipSetup(builder.Environment); + +Permissions.IsUseIds4 = Appsettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool(); +RoutePrefix.Name = Appsettings.app(new string[] { "AppSettings", "SvcName" }).ObjToString(); + +JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); + +builder.Services.AddMemoryCacheSetup(); +builder.Services.AddRedisCacheSetup(); +builder.Services.AddSqlsugarSetup(); +builder.Services.AddDbSetup(); +builder.Services.AddAutoMapperSetup(); +builder.Services.AddCorsSetup(); +builder.Services.AddMiniProfilerSetup(); +builder.Services.AddSwaggerSetup(); +builder.Services.AddJobSetup(); +builder.Services.AddHttpContextSetup(); +builder.Services.AddAppTableConfigSetup(builder.Environment); +builder.Services.AddHttpApi(); +builder.Services.AddRedisInitMqSetup(); +builder.Services.AddRabbitMQSetup(); +builder.Services.AddKafkaSetup(builder.Configuration); +builder.Services.AddEventBusSetup(); +builder.Services.AddNacosSetup(builder.Configuration); + +builder.Services.AddAuthorizationSetup(); +if (Permissions.IsUseIds4) +{ + builder.Services.AddAuthentication_Ids4Setup(); +} +else +{ + builder.Services.AddAuthentication_JWTSetup(); } + +builder.Services.AddIpPolicyRateLimitSetup(builder.Configuration); +builder.Services.AddSignalR().AddNewtonsoftJsonProtocol(); +builder.Services.AddScoped(); +builder.Services.Configure(x => x.AllowSynchronousIO = true) + .Configure(x => x.AllowSynchronousIO = true); + +builder.Services.AddDistributedMemoryCache(); +builder.Services.AddSession(); +builder.Services.AddHttpPollySetup(); +builder.Services.AddControllers(o => +{ + o.Filters.Add(typeof(GlobalExceptionsFilter)); + //o.Conventions.Insert(0, new GlobalRouteAuthorizeConvention()); + o.Conventions.Insert(0, new GlobalRoutePrefixFilter(new RouteAttribute(RoutePrefix.Name))); +}) +.AddNewtonsoftJson(options => +{ + options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; + options.SerializerSettings.ContractResolver = new DefaultContractResolver(); + options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; + //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; + options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; + options.SerializerSettings.Converters.Add(new StringEnumConverter()); +}); +builder.Services.AddEndpointsApiExplorer(); + +builder.Services.Replace(ServiceDescriptor.Transient()); +Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + + +// 3、配置中间件 +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.UseDeveloperExceptionPage(); +} +else +{ + app.UseExceptionHandler("/Error"); + //app.UseHsts(); +} + +app.UseIpLimitMiddle(); +app.UseRequestResponseLogMiddle(); +app.UseRecordAccessLogsMiddle(); +app.UseSignalRSendMiddle(); +app.UseIpLogMiddle(); +app.UseAllServicesMiddle(builder.Services); + +app.UseSession(); +app.UseSwaggerAuthorized(); +app.UseSwaggerMiddle(() => Assembly.GetExecutingAssembly().GetManifestResourceStream("Blog.Core.Api.index.html")); + +app.UseCors(Appsettings.app(new string[] { "Startup", "Cors", "PolicyName" })); +DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions(); +defaultFilesOptions.DefaultFileNames.Clear(); +defaultFilesOptions.DefaultFileNames.Add("index.html"); +app.UseDefaultFiles(defaultFilesOptions); +app.UseStaticFiles(); +app.UseCookiePolicy(); +app.UseStatusCodePages(); +app.UseRouting(); + +if (builder.Configuration.GetValue("AppSettings:UseLoadTest")) +{ + app.UseMiddleware(); +} +app.UseAuthentication(); +app.UseAuthorization(); +app.UseMiniProfilerMiddleware(); +//app.UseExceptionHandlerMidd(); + +app.UseEndpoints(endpoints => +{ + endpoints.MapControllerRoute( + name: "default", + pattern: "{controller=Home}/{action=Index}/{id?}"); + + endpoints.MapHub("/api2/chatHub"); +}); + + +var scope = app.Services.GetRequiredService().CreateScope(); +var myContext = scope.ServiceProvider.GetRequiredService(); +var tasksQzServices = scope.ServiceProvider.GetRequiredService(); +var schedulerCenter = scope.ServiceProvider.GetRequiredService(); +var lifetime = scope.ServiceProvider.GetRequiredService(); +app.UseSeedDataMiddle(myContext, builder.Environment.WebRootPath); +app.UseQuartzJobMiddleware(tasksQzServices, schedulerCenter); +app.UseConsulMiddle(builder.Configuration, lifetime); +app.ConfigureEventBus(); + +// 4、运行 +app.Run(); diff --git a/Blog.Core.Common/Helper/JsonConfigUtils.cs b/Blog.Core.Common/Helper/JsonConfigUtils.cs index 38ceb46e..3986a698 100644 --- a/Blog.Core.Common/Helper/JsonConfigUtils.cs +++ b/Blog.Core.Common/Helper/JsonConfigUtils.cs @@ -63,52 +63,6 @@ public static string GetJson(string jsonPath, string key) } } - - /// - /// 配置文件管理器 - /// - public interface IConfigurationManager - { - T GetAppConfig(string key, T defaultValue = default(T)); - } - - /// - /// 配置读取 根据环境变量 - /// - public class ConfigurationManager : IConfigurationManager - { - private readonly IConfigurationRoot config; - - public ConfigurationManager(IConfigurationRoot _config) - { - config = _config; - } - - public T GetAppConfig(string key, T defaultValue = default(T)) - { - T value = default(T); - try - { - var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); - var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json", true, false) - .AddJsonFile($"appsettings.{env}.json", true, false) - .AddEnvironmentVariables(); - - var configuration = builder.Build(); - value = (T)Convert.ChangeType(configuration[key], typeof(T)); - if (value == null) - value = defaultValue; - } - catch (Exception) - { - value = defaultValue; - } - - return value; - } - } - - #region Nacos 配置清单 public class JsonConfigSettings { diff --git a/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs b/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs index cf1ee933..c8863323 100644 --- a/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/NacosSetup.cs @@ -5,7 +5,6 @@ using Microsoft.Extensions.DependencyInjection; using Nacos.V2.DependencyInjection; using System; -using ConfigurationManager = Blog.Core.Common.Helper.ConfigurationManager; namespace Blog.Core.Extensions { @@ -48,9 +47,7 @@ public static void AddNacosSetup(this IServiceCollection services, IConfiguratio services.AddHostedService();//增加配置文件监听事件 } - services.AddSingleton(new ConfigurationManager((ConfigurationRoot)Configuration)); services.AddSingleton(Configuration); - } } } diff --git a/Blog.Core.Tests/DependencyInjection/DI_Test.cs b/Blog.Core.Tests/DependencyInjection/DI_Test.cs index 23e46bf6..fe12e2fe 100644 --- a/Blog.Core.Tests/DependencyInjection/DI_Test.cs +++ b/Blog.Core.Tests/DependencyInjection/DI_Test.cs @@ -110,7 +110,7 @@ public IContainer DICollections() // 属性注入 var controllerBaseType = typeof(ControllerBase); - builder.RegisterAssemblyTypes(typeof(Program).Assembly) + builder.RegisterAssemblyTypes(typeof(Startup).Assembly) .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType) .PropertiesAutowired(); From 3772aa643ad32f14e1983cf856ea316e41d543bd Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Mon, 4 Apr 2022 21:03:23 +0800 Subject: [PATCH 124/382] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b73c7c83..93c37844 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 新增 - Apollo 配置; - [x] 新增 Kafka 消息队列,并配合实现EventBus ✨; - [x] 新增 微信公众号管理,并集成到Blog.Admin后台 ✨; -- [ ] 计划 - 数据部门权限; +- [x] 新增 - 数据部门权限; 微服务模块: - [x] 可配合 Docker 实现容器化; From 93361ce67df07dfefac2d747b42e5fa44df41b84 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 7 Apr 2022 19:39:18 +0800 Subject: [PATCH 125/382] fix: GetNavigationBarPro --- Blog.Core.Api/Blog.Core.xml | 7 ++ .../Controllers/PermissionController.cs | 83 +++++++++++++- .../wwwroot/BlogCore.Data.json/Modules.tsv | 22 ++++ .../wwwroot/BlogCore.Data.json/Permission.tsv | 26 ++++- .../RoleModulePermission.tsv | 13 +++ Blog.Core.Common/Blog.Core.Common.csproj | 1 + Blog.Core.Common/Helper/PingYinHelper.cs | 108 ++++++++++++++++++ Blog.Core.Common/Helper/RecursionHelper.cs | 23 ++++ 8 files changed, 274 insertions(+), 9 deletions(-) create mode 100644 Blog.Core.Common/Helper/PingYinHelper.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 0c743f75..add15ba1 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -414,6 +414,13 @@ + + + 获取路由树【PRO】 + + + + 通过角色获取菜单【无权限】 diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 316f20ba..01121063 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Blog.Core.AuthHelper; +using Blog.Core.AuthHelper; using Blog.Core.AuthHelper.OverWrite; using Blog.Core.Common.Helper; using Blog.Core.Common.HttpContextUser; @@ -10,7 +6,6 @@ using Blog.Core.Model; using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace Blog.Core.Controllers @@ -442,6 +437,82 @@ orderby child.Id return data; } + /// + /// 获取路由树【PRO】 + /// + /// + /// + [HttpGet] + public async Task>> GetNavigationBarPro(int uid) + { + var data = new MessageModel>(); + + var uidInHttpcontext1 = 0; + var roleIds = new List(); + // ids4和jwt切换 + if (Permissions.IsUseIds4) + { + // ids4 + uidInHttpcontext1 = (from item in _httpContext.HttpContext.User.Claims + where item.Type == "sub" + select item.Value).FirstOrDefault().ObjToInt(); + roleIds = (from item in _httpContext.HttpContext.User.Claims + where item.Type == "role" + select item.Value.ObjToInt()).ToList(); + } + else + { + // jwt + uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToInt(); + roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToInt()).Distinct().ToList(); + } + + if (uid > 0 && uid == uidInHttpcontext1) + { + if (roleIds.Any()) + { + var pids = (await _roleModulePermissionServices.Query(d => d.IsDeleted == false && roleIds.Contains(d.RoleId))) + .Select(d => d.PermissionId.ObjToInt()).Distinct(); + if (pids.Any()) + { + var rolePermissionMoudles = (await _permissionServices.Query(d => pids.Contains(d.Id) && d.IsButton == false)).OrderBy(c => c.OrderSort); + var permissionTrees = (from item in rolePermissionMoudles + where item.IsDeleted == false + orderby item.Id + select new NavigationBarPro + { + id = item.Id, + name = item.Name, + parentId = item.Pid, + order = item.OrderSort, + path = item.Code == "-" ? item.Name.GetTotalPingYin().FirstOrDefault() : (item.Code == "/" ? "/dashboard/workplace" : item.Code), + component = item.Pid == 0 ? (item.Code == "/" ? "dashboard/Workplace" : "RouteView") : item.Code?.TrimStart('/'), + iconCls = item.Icon, + Func = item.Func, + IsHide = item.IsHide.ObjToBool(), + IsButton = item.IsButton.ObjToBool(), + meta = new NavigationBarMetaPro + { + show = true, + title = item.Name, + icon = "user"//item.Icon + } + }).ToList(); + + permissionTrees = permissionTrees.OrderBy(d => d.order).ToList(); + + data.success = true; + if (data.success) + { + data.response = permissionTrees; + data.msg = "获取成功"; + } + } + } + } + return data; + } + /// /// 通过角色获取菜单【无权限】 /// diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv index 9c82d93b..a906c91b 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv @@ -1491,5 +1491,27 @@ "ModifyTime": "2022-03-23 00:00:00", "ParentId": 0, "Id": 70 + }, + { + "IsDeleted": 0, + "ParentId": null, + "Name": "Get导航条Pro", + "LinkUrl": "\/api\/permission\/GetNavigationBarPro", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 23, + "CreateBy": "后台总管理员", + "CreateTime": "\/Date(1546272000000+0800)\/", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "\/Date(1546272000000+0800)\/", + "Id": 71 } ] diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv index d96fbc8a..67eb6975 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv @@ -140,10 +140,10 @@ "IsHide": 0 }, { - "Code": "\/Thanks", - "Name": "致谢页", + "Code": "\/System\/BasicSetting", + "Name": "个人设置", "IsButton": 0, - "Pid": 0, + "Pid": 68, "Mid": 0, "OrderSort": 5, "Icon": "fa-star ", @@ -2530,5 +2530,25 @@ "Pid": 115, "Mid": 70, "Id": 120 + }, + { + "Code": " ", + "Name": "左侧导航Pro", + "IsButton": 1, + "Pid": 7, + "Mid": 71, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 23, + "CreateBy": "后台总管理员", + "CreateTime": "\/Date(1546272000000+0800)\/", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "\/Date(1546272000000+0800)\/", + "IsDeleted": 0, + "Id": 121, + "IsHide": 1 } ] diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv index 48d5c2c1..a16c2eab 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv @@ -1635,5 +1635,18 @@ "ModuleId": 70, "PermissionId": 120, "Id": 127 + }, + { + "IsDeleted": 0, + "RoleId": 4, + "ModuleId": 71, + "PermissionId": 121, + "CreateId": null, + "CreateBy": null, + "CreateTime": "\/Date(1546272000000+0800)\/", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "\/Date(1546272000000+0800)\/", + "Id": 128 } ] diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 1887b4eb..d5943cc2 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -15,6 +15,7 @@ + diff --git a/Blog.Core.Common/Helper/PingYinHelper.cs b/Blog.Core.Common/Helper/PingYinHelper.cs new file mode 100644 index 00000000..5bf1c1e4 --- /dev/null +++ b/Blog.Core.Common/Helper/PingYinHelper.cs @@ -0,0 +1,108 @@ +using Microsoft.International.Converters.PinYinConverter; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; + +namespace Blog.Core.Common.Helper +{ + /// + /// 汉字转换拼音 + /// + public static class PingYinUtil + { + private static Dictionary> GetTotalPingYinDictionary(string text) + { + var chs = text.ToCharArray(); + + //记录每个汉字的全拼 + Dictionary> totalPingYinList = new Dictionary>(); + + for (int i = 0; i < chs.Length; i++) + { + var pinyinList = new List(); + + //是否是有效的汉字 + if (ChineseChar.IsValidChar(chs[i])) + { + ChineseChar cc = new ChineseChar(chs[i]); + pinyinList = cc.Pinyins.Where(p => !string.IsNullOrWhiteSpace(p)).ToList(); + } + else + { + pinyinList.Add(chs[i].ToString()); + } + + //去除声调,转小写 + pinyinList = pinyinList.ConvertAll(p => Regex.Replace(p, @"\d", "").ToLower()); + + //去重 + pinyinList = pinyinList.Where(p => !string.IsNullOrWhiteSpace(p)).Distinct().ToList(); + if (pinyinList.Any()) + { + totalPingYinList[i] = pinyinList; + } + } + + return totalPingYinList; + } + /// + /// 获取汉语拼音全拼 + /// + /// The string. + /// + public static List GetTotalPingYin(this string text) + { + var result = new List(); + foreach (var pys in GetTotalPingYinDictionary(text)) + { + var items = pys.Value; + if (result.Count <= 0) + { + result = items; + } + else + { + //全拼循环匹配 + var newTotalPingYinList = new List(); + foreach (var totalPingYin in result) + { + newTotalPingYinList.AddRange(items.Select(item => totalPingYin + item)); + } + newTotalPingYinList = newTotalPingYinList.Distinct().ToList(); + result = newTotalPingYinList; + } + } + return result; + } + + /// + /// 获取汉语拼音首字母 + /// + /// + /// + public static List GetFirstPingYin(this string text) + { + var result = new List(); + foreach (var pys in GetTotalPingYinDictionary(text)) + { + var items = pys.Value; + if (result.Count <= 0) + { + result = items.ConvertAll(p => p.Substring(0, 1)).Distinct().ToList(); + } + else + { + //首字母循环匹配 + var newFirstPingYinList = new List(); + foreach (var firstPingYin in result) + { + newFirstPingYinList.AddRange(items.Select(item => firstPingYin + item.Substring(0, 1))); + } + newFirstPingYinList = newFirstPingYinList.Distinct().ToList(); + result = newFirstPingYinList; + } + } + return result; + } + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/RecursionHelper.cs b/Blog.Core.Common/Helper/RecursionHelper.cs index 3de28d18..9b27a37d 100644 --- a/Blog.Core.Common/Helper/RecursionHelper.cs +++ b/Blog.Core.Common/Helper/RecursionHelper.cs @@ -161,4 +161,27 @@ public class NavigationBarMeta } + + + public class NavigationBarPro + { + public int id { get; set; } + public int parentId { get; set; } + public int order { get; set; } + public string name { get; set; } + public bool IsHide { get; set; } = false; + public bool IsButton { get; set; } = false; + public string path { get; set; } + public string component { get; set; } + public string Func { get; set; } + public string iconCls { get; set; } + public NavigationBarMetaPro meta { get; set; } + } + + public class NavigationBarMetaPro + { + public string title { get; set; } + public string icon { get; set; } + public bool show { get; set; } = false; + } } From 3ade35f4ddccfff6be89e2aadbe74182e67761be Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 10 Apr 2022 08:45:56 +0800 Subject: [PATCH 126/382] fix: department set --- Blog.Core.Api/Blog.Core.Model.xml | 46 ++++++++++++ Blog.Core.Api/Blog.Core.xml | 2 +- Blog.Core.Api/Controllers/UserController.cs | 31 +++++++- Blog.Core.Api/Program.cs | 4 +- Blog.Core.Api/Program.five.cs | 75 +++++++++++++++++++ .../CustomEnums/AuthorityScopeEnum.cs | 30 ++++++++ Blog.Core.Model/Models/Role.cs | 11 +++ Blog.Core.Model/Models/sysUserInfo.cs | 9 +++ Blog.Core.Model/ViewModels/SysUserInfoDto.cs | 3 + 9 files changed, 207 insertions(+), 4 deletions(-) create mode 100644 Blog.Core.Api/Program.five.cs create mode 100644 Blog.Core.Model/CustomEnums/AuthorityScopeEnum.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 41ab4514..8437e227 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -4,6 +4,36 @@ Blog.Core.Model + + + 无任何权限 + + + + + 自定义权限 + + + + + 本部门 + + + + + 本部门及以下 + + + + + 仅自己 + + + + + 所有 + + 以下model 来自ids4项目,多库模式,为了调取ids4数据 @@ -651,6 +681,17 @@ 排序 + + + 自定义权限的部门ids + + + + + 权限范围 + -1 无任何权限;1 自定义权限;2 本部门;3 本部门及以下;4 仅自己;9 全部; + + 是否激活 @@ -751,6 +792,11 @@ 状态 + + + 部门 + + 备注 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index add15ba1..27a3c815 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -640,7 +640,7 @@ 用户管理 - + 构造函数 diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index d26146d1..9d713026 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -29,9 +29,11 @@ public class UserController : BaseApiController readonly ISysUserInfoServices _sysUserInfoServices; readonly IUserRoleServices _userRoleServices; readonly IRoleServices _roleServices; + private readonly IDepartmentServices _departmentServices; private readonly IUser _user; private readonly IMapper _mapper; private readonly ILogger _logger; + private string fullName; /// /// 构造函数 @@ -44,13 +46,16 @@ public class UserController : BaseApiController /// /// public UserController(IUnitOfWork unitOfWork, ISysUserInfoServices sysUserInfoServices, - IUserRoleServices userRoleServices, IRoleServices roleServices, + IUserRoleServices userRoleServices, + IRoleServices roleServices, + IDepartmentServices departmentServices, IUser user, IMapper mapper, ILogger logger) { _unitOfWork = unitOfWork; _sysUserInfoServices = sysUserInfoServices; _userRoleServices = userRoleServices; _roleServices = roleServices; + _departmentServices = departmentServices; _user = user; _mapper = mapper; _logger = logger; @@ -81,6 +86,7 @@ public async Task>> Get(int page = 1, str // 这里可以封装到多表查询,此处简单处理 var allUserRoles = await _userRoleServices.Query(d => d.IsDeleted == false); var allRoles = await _roleServices.Query(d => d.IsDeleted == false); + var allDepartments = await _departmentServices.Query(d => d.IsDeleted == false); var sysUserInfos = data.data; foreach (var item in sysUserInfos) @@ -88,6 +94,12 @@ public async Task>> Get(int page = 1, str var currentUserRoles = allUserRoles.Where(d => d.UserId == item.Id).Select(d => d.RoleId).ToList(); item.RIDs = currentUserRoles; item.RoleNames = allRoles.Where(d => currentUserRoles.Contains(d.Id)).Select(d => d.Name).ToList(); + List dids = new List(); + fullName = ""; + var departmentName = GetFullDepartmentName(allDepartments, item.DepartmentId, dids); + item.DepartmentName = departmentName; + dids.Insert(0, 0); + item.Dids = dids; } data.data = sysUserInfos; @@ -98,6 +110,21 @@ public async Task>> Get(int page = 1, str } + private string GetFullDepartmentName(List departments, int departmentId, List dids) + { + var departmentModel = departments.FirstOrDefault(d => d.Id == departmentId); + if (departmentModel == null) + { + return fullName; + } + + fullName = $"{departmentModel.Name}/{fullName}"; + dids.Insert(0, departmentModel.Id); + GetFullDepartmentName(departments, departmentModel.Pid, dids); + + return fullName; + } + // GET: api/User/5 [HttpGet("{id}")] [AllowAnonymous] @@ -127,7 +154,7 @@ public async Task> GetInfoByToken(string token) var userinfo = await _sysUserInfoServices.QueryById(tokenModel.Uid); if (userinfo != null) { - data.response = _mapper.Map(userinfo); + data.response = _mapper.Map(userinfo); data.success = true; data.msg = "获取成功"; } diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 1e55871b..f9dda121 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -1,4 +1,6 @@ -using Autofac; + +// 以下为asp.net 6.0的写法,如果用5.0,请看Program.five.cs文件 +using Autofac; using Autofac.Extensions.DependencyInjection; using Blog.Core; using Blog.Core.Common; diff --git a/Blog.Core.Api/Program.five.cs b/Blog.Core.Api/Program.five.cs new file mode 100644 index 00000000..900c9495 --- /dev/null +++ b/Blog.Core.Api/Program.five.cs @@ -0,0 +1,75 @@ +//using Autofac.Extensions.DependencyInjection; +//using Blog.Core.Extensions.Apollo; +//using Microsoft.AspNetCore.Hosting; +//using Microsoft.Extensions.Configuration; +//using Microsoft.Extensions.Hosting; +//using Microsoft.Extensions.Logging; +//using System; +//using System.IO; + +// 这是asp.net5.0的写法,如果用5.0,请用本文件代码替换Program.cs代码 +//namespace Blog.Core +//{ +// public class Program +// { +// public static void Main(string[] args) +// { +// //初始化默认主机Builder +// Host.CreateDefaultBuilder(args) +// .UseServiceProviderFactory(new AutofacServiceProviderFactory()) +// .ConfigureWebHostDefaults(webBuilder => +// { +// webBuilder +// .UseStartup() +// .ConfigureAppConfiguration((hostingContext, config) => +// { +// config.Sources.Clear(); +// config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false) +// //.AddJsonFile($"appsettings{ GetAppSettingsConfigName() }json", optional: true, reloadOnChange: false) +// ; +// //接入Apollo配置中心 +// config.AddConfigurationApollo("appsettings.apollo.json"); +// }) +// .UseUrls("http://*:9291") +// .ConfigureLogging((hostingContext, builder) => +// { +// // 1.过滤掉系统默认的一些日志 +// builder.AddFilter("System", LogLevel.Error); +// builder.AddFilter("Microsoft", LogLevel.Error); + +// // 2.也可以在appsettings.json中配置,LogLevel节点 + +// // 3.统一设置 +// builder.SetMinimumLevel(LogLevel.Error); + +// // 默认log4net.confg +// builder.AddLog4Net(Path.Combine(Directory.GetCurrentDirectory(), "Log4net.config")); +// }) +// ; +// }) +// // 生成承载 web 应用程序的 Microsoft.AspNetCore.Hosting.IWebHost。Build是WebHostBuilder最终的目的,将返回一个构造的WebHost,最终生成宿主。 +// .Build() +// // 运行 web 应用程序并阻止调用线程, 直到主机关闭。 +// // ※※※※ 有异常,查看 Log 文件夹下的异常日志 ※※※※ +// .Run(); +// } + + +// /// +// /// 根据环境变量定向配置文件名称 +// /// +// /// +// private static string GetAppSettingsConfigName() +// { +// if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != null +// && Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") != "") +// { +// return $".{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}."; +// } +// else +// { +// return "."; +// } +// } +// } +//} diff --git a/Blog.Core.Model/CustomEnums/AuthorityScopeEnum.cs b/Blog.Core.Model/CustomEnums/AuthorityScopeEnum.cs new file mode 100644 index 00000000..422b2c56 --- /dev/null +++ b/Blog.Core.Model/CustomEnums/AuthorityScopeEnum.cs @@ -0,0 +1,30 @@ +namespace Blog.Core.Model +{ + public enum AuthorityScopeEnum + { + /// + /// 无任何权限 + /// + NONE = -1, + /// + /// 自定义权限 + /// + Custom = 1, + /// + /// 本部门 + /// + MyDepart = 2, + /// + /// 本部门及以下 + /// + MyDepartAndDown = 3, + /// + /// 仅自己 + /// + OnlySelf = 4, + /// + /// 所有 + /// + ALL = 9 + } +} diff --git a/Blog.Core.Model/Models/Role.cs b/Blog.Core.Model/Models/Role.cs index 0d537837..e34ccdd9 100644 --- a/Blog.Core.Model/Models/Role.cs +++ b/Blog.Core.Model/Models/Role.cs @@ -46,6 +46,17 @@ public Role(string name) /// public int OrderSort { get; set; } /// + /// 自定义权限的部门ids + /// + [SugarColumn(Length = 500, IsNullable = true)] + public string Dids { get; set; } + /// + /// 权限范围 + /// -1 无任何权限;1 自定义权限;2 本部门;3 本部门及以下;4 仅自己;9 全部; + /// + [SugarColumn(IsNullable = true)] + public int AuthorityScope { get; set; } = -1; + /// /// 是否激活 /// public bool Enabled { get; set; } diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index d8ffeee3..5b4b8b84 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -45,6 +45,11 @@ public SysUserInfo(string loginName, string loginPWD) /// public int Status { get; set; } /// + /// 部门 + /// + [SugarColumn(IsNullable = true)] + public int DepartmentId { get; set; } = -1; + /// /// 备注 /// [SugarColumn(Length = 2000, IsNullable = true)] @@ -94,6 +99,10 @@ public SysUserInfo(string loginName, string loginPWD) [SugarColumn(IsIgnore = true)] public List RoleNames { get; set; } + [SugarColumn(IsIgnore = true)] + public List Dids { get; set; } + [SugarColumn(IsIgnore = true)] + public string DepartmentName { get; set; } } } diff --git a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs index 9a9e8325..33d84161 100644 --- a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs +++ b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs @@ -9,6 +9,7 @@ public class SysUserInfoDto : SysUserInfoDtoRoot public string uLoginPWD { get; set; } public string uRealName { get; set; } public int uStatus { get; set; } + public int DepartmentId { get; set; } public string uRemark { get; set; } public System.DateTime uCreateTime { get; set; } = DateTime.Now; public System.DateTime uUpdateTime { get; set; } = DateTime.Now; @@ -21,5 +22,7 @@ public class SysUserInfoDto : SysUserInfoDtoRoot public string addr { get; set; } public bool tdIsDelete { get; set; } public List RoleNames { get; set; } + public List Dids { get; set; } + public string DepartmentName { get; set; } } } From 7c0755657665628c2caaefaf6acd580234cfce36 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 10 Apr 2022 08:58:52 +0800 Subject: [PATCH 127/382] Fixed #265 bug. --- Blog.Core.Api/Controllers/UserController.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 9d713026..61e2214d 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -207,16 +207,20 @@ public async Task> Put([FromBody] SysUserInfoDto sysUserInf if (sysUserInfo != null && sysUserInfo.uID > 0) { - if (sysUserInfo.RIDs.Count > 0) + // 无论 Update Or Add , 先删除当前用户的全部 U_R 关系 + var usreroles = (await _userRoleServices.Query(d => d.UserId == sysUserInfo.uID)).Select(d => d.Id.ToString()).ToArray(); + if (usreroles.Any()) { - // 无论 Update Or Add , 先删除当前用户的全部 U_R 关系 - var usreroles = (await _userRoleServices.Query(d => d.UserId == sysUserInfo.uID)).Select(d => d.Id.ToString()).ToArray(); - if (usreroles.Count() > 0) + var isAllDeleted = await _userRoleServices.DeleteByIds(usreroles); + if (!isAllDeleted) { - var isAllDeleted = await _userRoleServices.DeleteByIds(usreroles); + return Failed("服务器更新异常"); } + } - // 然后再执行添加操作 + // 然后再执行添加操作 + if (sysUserInfo.RIDs.Count > 0) + { var userRolsAdd = new List(); sysUserInfo.RIDs.ForEach(rid => { From 6d188c37f45c71e1835b969238cb3d4b515cb218 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 10 Apr 2022 11:16:43 +0800 Subject: [PATCH 128/382] Update UserController.cs --- Blog.Core.Api/Controllers/UserController.cs | 23 +++++++++------------ 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 61e2214d..e42a5359 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -33,7 +33,6 @@ public class UserController : BaseApiController private readonly IUser _user; private readonly IMapper _mapper; private readonly ILogger _logger; - private string fullName; /// /// 构造函数 @@ -94,12 +93,9 @@ public async Task>> Get(int page = 1, str var currentUserRoles = allUserRoles.Where(d => d.UserId == item.Id).Select(d => d.RoleId).ToList(); item.RIDs = currentUserRoles; item.RoleNames = allRoles.Where(d => currentUserRoles.Contains(d.Id)).Select(d => d.Name).ToList(); - List dids = new List(); - fullName = ""; - var departmentName = GetFullDepartmentName(allDepartments, item.DepartmentId, dids); - item.DepartmentName = departmentName; - dids.Insert(0, 0); - item.Dids = dids; + var departmentNameAndIds = GetFullDepartmentName(allDepartments, item.DepartmentId); + item.DepartmentName = departmentNameAndIds.Item1; + item.Dids = departmentNameAndIds.Item2; } data.data = sysUserInfos; @@ -110,19 +106,20 @@ public async Task>> Get(int page = 1, str } - private string GetFullDepartmentName(List departments, int departmentId, List dids) + private (string, List) GetFullDepartmentName(List departments, int departmentId) { var departmentModel = departments.FirstOrDefault(d => d.Id == departmentId); if (departmentModel == null) { - return fullName; + return ("", new List()); } - fullName = $"{departmentModel.Name}/{fullName}"; - dids.Insert(0, departmentModel.Id); - GetFullDepartmentName(departments, departmentModel.Pid, dids); + var pids = departmentModel.CodeRelationship?.TrimEnd(',').Split(',').Select(d => d.ObjToInt()).ToList(); + pids.Add(departmentModel.Id); + var pnams = departments.Where(d => pids.Contains(d.Id)).ToList().Select(d => d.Name).ToArray(); + var fullName = string.Join("/", pnams); - return fullName; + return (fullName, pids); } // GET: api/User/5 From 7d52cd3556d8f6de29c2d8f08f73a94f760da86e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 10 Apr 2022 14:30:45 +0800 Subject: [PATCH 129/382] fix: update ui.zip --- Blog.Core.Api/appsettings.json | 3 ++- Blog.Core.Api/wwwroot/ui.zip | Bin 5263957 -> 5271315 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 92d39d4d..23ab9c65 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -5,13 +5,14 @@ "Default": "Information", //加入Default否则log4net本地写入不了日志 "Blog.Core.AuthHelper.ApiResponseHandler": "Error" }, - "IncludeScopes": false, "Debug": { + "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "Console": { + "IncludeScopes": false, "LogLevel": { "Default": "Warning", "Microsoft.Hosting.Lifetime": "Debug" diff --git a/Blog.Core.Api/wwwroot/ui.zip b/Blog.Core.Api/wwwroot/ui.zip index 0e968aa0a8c8dc3e4e3f8baf3f53f7e27e28b695..c6bc7dbd760e47d8b45c381d6519694b3483de4d 100644 GIT binary patch delta 162912 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 =B(m7r zCg_hUGqy3jYGE;U9Y=0d8P$Vu7f-%u7W7rl*HulwH|FvTRrg@u!!tEA}W8z42 zL4brMIR@X|r^L!twf2B&>GghEQsOH7qX<6ros*S_WE{{OzN8Sm*|K7pETQKgOTp{) z(9W=Yb^&qs9}I>}3|#CS&Zel#^C3vAqZ|zNQ0ZMVSg74;P0C&kiGQObMiSr4tfmzc zQb#?BP9c4YGv!rw(y~{JWeX&_rD>F9^wTbewMf`%qowO7qy|PrTq|a|oU{?eMhRMh z=aThm{R3Ydt}$y5Z#wuWW!5w;UN_-fYrAPTo*tm_WM!P#7X}e-l$uY< zk^MCo;Yzv1L>ewK>Is_d!F0hd58(AfaRr%OWp|ahyrhDAaSmnru5u5Ibfbb5pWeu9 zbMcB_qOl1-e$=bo9^_EKt=JX^k@jM1s+T;2BC8Q(2b_jo+F^O7UF}zrG2sF2CumnE zHRPsOCN`3_9eMN5lHN=L+?lYo2usS%CDCK;3!k)aebIB=VY#%Lfyes&(3>~8 z!vempuC&1%Bg3B75pRzJGrb=KXuvTpZSS@tBTj869cs?k$(qtJHnoJEd`z!yMDw8n#XTgx^@!;eXX&@RA;6pIB|910w+8#kn2q zSjB1(3PD>rF28bGD^eGFTo78Hxa_x@GnP11w_-FHls=ngh_9AGUy=d!i2;}{qv$Vi zUurtDt3<+w)h79x!gydG-Z>!d|8yhMZj6h$a&&-1 z2%!ggm=s}t=>!au5T_V!;p|8fJY(>Q@1YGT@DA~z!8Mfd+4#r?Pjz5 z6q@8#`4}-}SYE!m73qRUDFTAx02lVt+fp zDFG@v5h-D_vXy^d7(@h<)O;eT1fsaV1|!TVx0px-M@BwDvpoh~h1Z4RaZ#~E#3}jh z28<~q$H%g&8FbN!09qjVAq68qH>6UmT*;{h35H(<-=fK|dRStuTt;9Zzx1Jd$YeA> zMz6p5k=SK0TV#lY2)=$JnxD0*C4Z-8vBcm_7o+ZYmeK{PO=PJ$9!Aij%We~EgN{@! zvstl^L~21j7dp6Q;o-T?kz#oaIphpjmPLytz#&^*sz>B>sLem0cwo=?;Y=n=o)kxvL&!>!n5#;KS3%U}A zJ~TujVF>>N@D2Sl=>V#xCx6<$KyTO!O9gr+Sf;eZ+-9kiVM$w#9W#Qln4jOAqv|>; zSnmUWTtGf z7&jE7L`S2TdKljeD##*3M>7I}GK6kxXJ#_%)(?-AHm5Ob|aQ zw+jx|RWpF6dsNj|!!z7@ipkM;b>umX-0Y95oa+As#(?Gj7r*~$83P}d086_`gM(-N zvz}8n=ejXOOqE`Ykht1EE(2gFdct|F@j|I;mkvX&hxbgvf~X6Or^6cT?&>O7gTd@a zWYFcozNJM_s~3OtQ-Aa6vxr)V3V`JsB>dM|!W0YkAKdosT>YkV^^9Ws5(|oci6>!7 zrP3z(Q7C#aYVDT4JvzhQhFEy`uzl{@(w&p-2Vec|(fOhFnYWgI_u1mZ&z5doTeyFs z^UbxtJvz&W{%7ktP^a7D49%xuU1w@q$g%|+v4hQ;dDN~?VSjkGe+=V1FwcKB(EAgU zJq&cMsKiP^9j!n@DMWvbDI!gcgU#FkqZ`o+FqD^^0RGF1D1AQi`s*vc~ZFFJp{9;^ZUD<-@h4w`^x@p&C)cKEP1VFUtneGY-i83 z?sFUu?@~uv3FSjGE1=JBtYT~fQr=4YklnNM0Cc2jEuK9CMrx#qUp9g6vrhByj$l=` zvX0=4zWGu6!slSdMw;1e)tu(sFQGGyrVTbpAAh}RU%HJF?eg8_%il*S1ek-FMbYl` zFjampHjP{?7st=%_-PDtEHrmFZt&+W+fx`;_Y_t!Q@4!d+t>etM>zZLM*FSvohyG{ zeDDMWcb5q&rEw=f0n0*L!=qBeRtbF*Zbm25XRHi*FXS{Z|8RW`6(fF)u+S~A2kfv7 z`hOD1cP-C@QFLWs`+3^>9q4WdRRHoH&d}Ska+TeXx)&4G@}PJ){t9_?W?b^Ym&QFj z*8aj3IN>RcyV`voY0STS5#+?n^I_t_^Z}<~jO7h9vpvFtIK%?2Ip=76(#^TB14`030{`5p2s6Gv(UbJ9}pp@>8 z8{rI&_Q*<~$euk7tM7VY;g z;In@}Fcu#?`8y-VNyZ`s#bC$c-s$jq+SqKHvZCG*frmCzkY__aoa0VAvl%?uU#Y?u z&vB}r-B1u#%lk(b*ef~X__7%MtMfpXrNa#La8B7OIZe98TQFMq%mgaGP2oq`HJ}Uw z%`0pt3xYXIT~w?=-lEof;;CmWL~{Hn1bKgyC}k*SnyQ)o)PEf9ym;k)`_y-AVV&3x zGhMrEZ5ax!*B9=efVDWRPT9g8>|N?TD;!6pP#=0N30Am5r^~(VD>q{n=_)r!D|UQ_ zZFY7xTdLzzy)K3W%T-P1C_W*TvE58#+Rim{L-}>1BO5o4WT(Aa^%wXan_bQfXV!mZ zA`>ae3V*e2CUgSCaV-3v4*k{*mOrq=$OTXSw0z<-;Xb11FXXRD#sd7eED6|iVtAy9 zxZW2%a|MGvcNdX|u4gq|gM}3X*#R)14jna!hze0$O@+bXF5J$|FPFc*ZVZJ-$1tSb zKNRL?uCyOMU|iq%%iBx0Kj^&k$M%1jyX}u}7&~Cih)ZnTONbg@Oui!yD?@F#7itSn zZgt-Ofye#4cYE>uZ<*zU@uu&8wQ&EOanK|>9Wro|+5D%tJo&V9?)uZlaV*=DyM>q0XkU7#eesULXSbNwi{E^MdwMs&#P1XUmX*UE ze0T@u1@ul>rB568p6rjvJve{Qkdt*2yNQ8Ja`E=U!!Lo#& z3qO1oD!_P*hgg5={prp3NbIw`KQsckw|eRV#%X^0$K?}eSroPQ@6NZ+d;hkFez^ROPw;`vqv*$h=%PTA2lHlU+>RAzqJ`vJ>s@u!B>S8>~HF~_j8h&?- zX7j|_O>!Q2om@XZ!#rrb5XP`>xmKE&8t_k`KfO20#H)d-;U9kVJLdJ;-!MbH=kv9}kV<|Z@$6EN8S*-XUNx5v z-xiF6hX(a|bbO#-QMPMV-KBLe6v10xY6)$FzS}s|TA8@%ph~#tcyO-nTs_gg{zrV>HyX2-MW4sD z=#fZncx1XZaOYx=1~egq)duv`U^g~`lo~muWTuqQc(CIgGNu?YnIAS8H-_@~78U!s z*%%AIWx=O6EZBd|W}Q5_n_>;7^a;S@1_F*hAf0rgj6h-L=8_z>@QO>Dw3ynhDt}N!k+glZojhuc`CnhXyQ; ztwzqsTKsP2nTeREV{zRO&x-Sex-JZj`5?=- z3j!AGkRnK;!#q*A(hA13T`v1CypiiY$g`?dyWxM@ZWlB%J_Y~5=#$Y<=;@MzPCsVJ zMSU#Vmr)rzsl3W`_bu-Ak?pz@Fb=|skqKlF}C9$#Ga~OK|2jxh( z=lQV#zX~1{5JD@ioVMTch|%uHY!j4d!06#=)(Z%*B|>Rf4hqg=nx2m4OB+k;`T-`M z(9%I0S!a$^*7pSsY|c3?tjg%v(7IATuwZ|Y*=V3@(V{k5te7KRz-cHY$la4jI>Ly` zJ!ul9gFno@NTBVu-*B%U_h7cDlo!W7Q3%51&j->_lHhnglc#x2vo7YPiK~h1$OhN2 zOxMbQU8hc$rdhUIu&fic6QLZBsw5^xHzWlqc@TR*p5>CM=v2!Jak#`A2~=BTm)Czs zB?%gGx~!5EMJj277^ySrOQ+CDS`|rOy$r8}WO91FeZ(q@mS{-FqBdo$;qsI~*yqez7h_IEWLy0l#A*}qFN=}UKjreJSeIX_K zXWRS7CF{;iDRL>sG!02o-1F9<+_gvZK0C+;<=Vlu?16YZS_A7h|G_DAn_$l5Ol=(3 zdYkCS^f>&^K2vI1rf2P}T6o%><&-FA(zU9U>}2Wq@yY2;-19V9N~g;9Olp7dnCW>< zw{UD?tzDj2TbNi2M3`7RKR+ z!!gj*@aTN^npJ1YL2*(w8?Jv+j~4m<_3gNL{Fxn|mNI4G0@jEOUeG;^+hcl8lUOcC+(v}0rqeP5p1=em_&|)?RXj-0&ZbK*AK!5(gpg4U*og5n8Kw^d+(ezX1WzO<@ z2*RgAU`a4B_tYbj&9htMI3D=H10l-t62xgCt#Ja3D?BjcwbuZD-?T zW82=sP@u^w*PVO zd%`avhK(2J>uW}vTk9t7gHAK=`Ramh(UheoQGh|jVbwgcTwy=nk5x3r;is2C%Gcpi zu3vAiJr+gk=MNx}h;x2X_DzI-&RDqXYbsF9dd8xHl_-wgBeRl8ueOMa9L(j|Py{ae z=~;oz1>z*fXSEmRPyjEGj5?9>Be+HRijun|3|1g zRfhglELI({{3V%9r?!-jyhu_-Of2$vUXtiS#MOpcy_TvBzbdu9EIrv@=oO@rD*X5W z9L+ef!8iXu@>ZC&bTY<o>`Jq5u+O6UnOxMl>=E(I_6Q&>3$jR7T4KE z7DH^O(!kIl`?W>936UhcnT4G#7ddVv8Ys@1mE7}K+97ha2#C*o#gnT|jW)7{TBBsH zz`qe=P=pTJXhI6>(3or16E7hj<(O-s0Wd$Y+bdtq_te_W5^!SY5vTV-sDD}!*Nzn; zHze##_^jd&b_@qGyb3ZK7=}(W)tY_yG3G1ySlFx$BKCp z*XYagU;irHr6CO|Uk+bWa!CTNFCu?0{?J z7mzPH*czS9`<++qN6fK&rP1jA!k4segou@KWc}=5s0!EdS>Xgt#flq$n*HqGUnB`D z!JJl5_*@bRGsN^wB+!%`>lxbB57ysbYQf?BCmu_DuSvBKYeMw8SA^U=c6P!>?XYmk z#2MgfTpuKk{;ib#Wfj?Du`bqTuQd2LT?WKqTyALqkF0S4mhlQ#p~<2ujA2GQV$2+( z2xoUnfBbR!9!m)V?z})Tdj&uoN}lc zg5s`t7S2#8e{|6y`KoBDz_7wPQT)Rv?oig9Q;@PH!M?)}Te+#oghe1C1oo**W&(f0 ztcr4fT6~!yf%#Zi_@N{@%@=^b&8X0FODx9S^aoa4z%lDyvjkWM}qNCyLbl#I1Vtbe{iOWQeQs_zyJM4Xv zAS8^gO7`8ac{AVO{1Y7%M)mK5cf)i&nHPtar^nriQP>QDCX&4;opZ(RHxdEwC=su_ zD`f+R{j8+D4?0m)mfi^`_iILn8@(27`oxSA6><5V!XCo>_lP8hT@@{rS{ne{RRT(X zl*n_R(`urTf$+FmHwZz?nq*wuwaq?S3X6^9Ry)FPh|40UI^(|ldTHH~deMPRtTZ>D zRQS9tS2oQ*79b0oh$i)xduNg=$z#it(brWF9xa~W?76lBLmr(Giug|AcYq*Q zPB*QJ*V6^E<2CVs;(rCTNL0-+3Ei=XE;KV zD9g8}&$V$i!8so0 z$uaJ1p6IsuRhR?v_&eavfGOA^q)AU2fK=-!iWS=3mkhpterOmpv7}ep-4KQBD)u0J z37E(B`N?Kir_RC#5LTrkzTxe+MOU2XyMntsMqY|G^O|~D-2R19B%rB__QN}CSpccB zi{XPXh5n>#0=eC}A_y#HX45xbEhC)zwv;Y*&h7~^$b`&5;-Al8~FW`yw?9S zoMn>*V_yLATAcEP-C)3R`UNRTzdVmod|%Ma{5j?4f6bA88a_D& zp#{2p@|gT+@OdJ zad(CW-eH)V0imjX22>gR3?H zp-o$k8b3+$sv>P@E=3<(WYx5&DkKI*(L35lywMyg5Nv;(Z;5i!(uYpr9{2%KTrkz?)_jhX{lvO4I)2fVecz7)4kezY%DTNxJ$& zAP@SasVKG4GCxhBfI~N+cb?BC52ux2SE)Tod#d@PEWi`l5BJPcxkU0t+23T2b$wk0 zKjd!@u#%8wlSCia=rPPZ@aq#l`GAI2z0-*4Ak8A zRqT3}CFiLHX3?~sP8zpH4=K>?9 zuU>-u!!cRK1_ip*fBc>>#iE&NWYXfL!$>Wb07N%FkrjQnn8qp^nX=)p6I*fSs=o|F8n~W8g~!BaTqUImIyr}k;Y+9&tql*VFa;i4;`9v&A&^* zf+5MMQr>4ppI~%B6|ZjdvTi?F$W9qg1>ikvTM_EBcUbuC!LQJq{MBlvNa54Yh}2hT zrUF2<9Mjchj#SW{D?nV_Dd{Kqyh0GdV!LJfK?~^;EtaRcWwkA`N2|{7C^=%*jgX%x zcoN1eXz4{0@M&Q%DjO@xLUG)l(=S)7hik8X(cVE`J8)z#IdK{Bz9G`I?^_EF;9^rlOg{8wE=6&ia?;1Gd4v5_u-Bzk)M%l#t%SXJ)gj{JI{AlH`HCT+F@ICS3 zXTkyq?zT!x{&=quC$}vKvMb)UJ^)OZ;vudS(xNy+N9#i|2ostvRuMt1roq6%r!pcR zqV)DT4-&%U>97a)MCv*(!!U_3^rG>BQT*xh!^yx#P^nV0v0e=bA4p}I_eklv!Kf(;*2g6OhsI02ALKgAp>b|;b zI!#TqR`BQKz$vFzMES|X1Mm;3P@kiNfINauxycG$2<$29mzv>uRjASURfUOZ2GWizZm4#9i-PBw+F!wgrQOE8oy^DZIwLjA5QbPw-8A4Y_BFuAICBWP>x* z_}((;DWoSw3F3Hd71N{PzMCVAlGX|B66CnZgs~7>iZd>LLrsE@f>-jO!^|u}9Hz!c z%Ouh*fIv&EY2kT&0}>QB8s>Y0FrJdi*-}hq(n+kTpp%^^9z_6pRuHRGa#i9~=gtFg zj;^#N`jTZ9W($qlfiylz@ca}k_kGYeO(IoyqbwiJ4x4&6MN(W<91c-7ZHAdGIkZgJQX)R>@7NeL9(1w_3QKp{z$DyrCyR#TxFW^fnp%@wA9qN;tXi=w$OYLHAKXxXz?j17|p}_>kC$Cnb_{TX~^Xccu*N zL*HOxnRPQ>gYfyY^}0W{%CWBA!SYrEY|w5CLb%Sqr+fIb!{c_W(*!!~=&&(DpcyCh zZA*cZ5{!z@;16``4kkJ2?*D{oc&Txcu?TNMAc_bAdn|=^Vi}Dg<&#U{!A+u3` zYk9|gaJAMm-HPZgj5}h&nk5;sL7|TIU|V*CPP_ zLma5KTC;ktL{6=Fmz?AKmovLtjV`BjF&N7d$%wxnXs7D0ehI_>7QjcS9XRFiadVk@xdB}&FBSzDu9s;`7CWDUGjo<6oWopfaz7Va4 z{wA}@`$f0u;P{UXb{oUa$q3`80i|3SfG5(I+z36-H4b%?TgUHnaW^@(zj$B2aH=hK zS&amZ7$Q?D+xu}fbt?E2`c*0tnb`QFdW-q($vy7Uk?0zv72w_axT%N8y(Fv?NoUQJ z7GQUHlrbB2Aby72eT)qxW5t&#@V9^tH^1)+84PsySP?PV+i-;r|FG|Ii%<{)lGBS7 zD7Xalo8$O$d)EBkAQk^k6U!=-Wy;8v_Bd?4nC*l$D2p10JPA_JKw%{Khq}jWAy}eF zMFI&WE$v~0?bu9(7o>H1R8AB;H$-zcuf)t7-IKwt%4S2EG6)3TGLktMun+MfgiT7q z$KA1mPX~|Ul2VXzRKS>R83s&N;g#h={=d8 zM4!&ZQE#f*82;>hyDootMm~^AjxK((Wxb9`@R|LVVXbe61ULrvK**?cct6HF zGB#c2+5vL;1ebd9tu2E&WblPF?y3DJa~E@SkA_Xmn~A)OTe>z|ezw=Z?NV{M7{A*#E_8${?ZC)3JMeC0#ADk5#lUUwnr49QnzR}#6*3Y9U z%gb3PwC|3FzBA8HT!Fyb&)3~0mhN$Cq5r3?x<1&`OflKb`NadX&v$alPm!1F0sV6e zXhg{m>C>sgDIxxsJldV^@JYXt$bA^kBZ>cC-O2WJg!_E01^A-6BK?5_oI<3fKB3ZU zeE-RP+#G#r#Rz!Ld|V@h_Wa>KoKiz(9pR~>7m;K&#g(~CbiW$?|e*7rF&reJ=vWwdtecD zLJF*Oi@OnTKvl*VuzP}U!E^z?eLp|uhz*AsK+T@_O@TZtG4D?(k)VG#L$CkBhr*sX zdgq#KA+8`2vUI|7eOjQc{SID>*9^bDxLoLR+xy2{EcIFs|1=c*Y9f!)Mn7l}`X5*) zN5jr(2~?!F6=J@YDMmxV*=H<6T`fM)#IyI}8UyI$uN7i{cZFW+=nNKt|MSS!zkwM! zzbuv%9dJ13uVH@Q!B9*L13+Xu-cBy_U;SxKDJjOwz2RfGOxuJCL9v`iuY6divfX%2e>;a}?9LYOL~N3iu<>3v?6WM1037-aC3+jb-{c3SV-z zr3}NTf3kxG4O>4D_FeG1!Yrx{eN)6G*>!3a64>~v{cydW+r5WAy9SX!l@CbdPIKC4 zL-_}}MtiPCjop)aHgpX2t(RPrmmrIU1c!O|d%hsX^%dn2rjcN?ZXo*30{O=v;x&S4 z6fpHF%#i!EZfPfx0=W;JxV@-v#%Tk6v~;fIoFnv7=KF7AE-}_AK^4n;BBd#^Kpm4( z@ZsC4CK1R+IxLSB$ThZ-bCA>XYS2SaWVVMNG$5BKwZYhDU`@i%eJ%caH-G~(=QnyY z5c|cNm*866E07kk+inq9Ajoo~s> zDFKxb%7*RlB^;%L8nQ=oe}^uM%|X`aj2+cwLj9d`*wA$ydbb#@x7wj@u#+N#IdP4V zndlyHx7dtp7Gx146%s>+HB%L{5;Cv26;g!xn!XCjkHANt4=ytpaysC3^a77AfsESH zR`tpf61#K~-eoRpLmzAeE%SY=C9{+Ml_C6uEmDI~xr%iWeWLx5e_JB&H8*Z=-LM(S zg8)UsRDcX!a|uhz&k@cNJSY+kBh^F+q$J9Dsk{`U`Zh##&hb5F5jxh%VD!((trp?{ zKOnLz0S?XQ`SiA)3sUmeO}xR^!p4TtYVv%;xUC%w6^QJg`$V3oa+Q6eKlm^uDRDRu zc}^X>=Ftu5uEY24dlYm@n%XCd`tx?@=C!6!=;MZ!M9G_!1QCn42R^}ZXP92B!Y4Xb zA9w`CG0KJ~X6SOQ@qJe~+b!f4fgW{792-&d5Dj7{&#KncHfBK#Skl4-NNkSQQ!6k_ zn-p64Svj1X@yT{@(N|E6A@5Fg-5kNRj829hdy~KgdVkv+w#Qi%lw1nNv8ckX$#&lM zE%0+MM_(O=IkFYn_`czgJW=V+b;Vq@v$Lrt5jRm5pCj(y-XgDBen7M<*%^T#Z?BRr zZ{u)`*mQP34a1jVFl9>vAN#fO&v66HU9fz}7{!Kp@7uoLjT(cm>`6#$UU%{3s1@0Y ze$Z8q|B-y15Y#G=bqT)It?ih|{{igv_wXY6A|@N-W8bJBmo|9RrS3ANTti?8Zc@^M zzfYznyf0lQ==s7X!(Vj2-Ivg^y4+nvlAo_gxU)&14r=vrc}YtFblRNJe++9BR@}Kw;(`rZCv1K7u6-@SKIg1R?B~;CQCq#N1=5Sx2G)(F2>T3fN zhg~tZZXs)mFn%NbLYPNiq<0I9T?XByjkf9yiLRlTiQ z%G+`&)pVhk@+b8J-cBdm&Bt1_5)5L0B3_1mE4uUGd1w+qSHf8}M-T4*jDTljlPl}M zPlA^>{5<89L9C0RY5Y>s)USbUA65&H^x*Apnfa*vJ#rQ@%k}wE9bEZCsYHEf!yC5q zuo*#->avDgjxjx~V9EUMVBs7of#2N3vZu;N=-cMw^0)*SFlsUeGgj?+YnsamiNiri zT*8otejdQWkMf#vEQCmzBGQ&tPjLRJh?rQUWc?XbyJT1y09iJO5bhz;zEx2^&+3r! zk75&I#ZkjvyPBe2$7`!v#cSkI7%7c2jWni@$X&J-98I3s#L~xE5znL!y`C}Y_j-eM zd7{!P+)4}~z^*Ts-eM;Vp*5QHN@*V=!e}Jg-mJfbxr0P z@^McU+Ii!+(#q(Czs~j3xL&h%+Rb*1c6KGV)M<&zjwK@C&T$1K`#Gq_`o(xB)3lR{CqPxo$Bb4&i%=f>Sz#9#dk$P zK#xKWtH*hX4X;U$-_W*((Tr#DpEDA-OwyP-u?x*t67Zmy@xByV*bAQubwP$ z{jxOnRvi&2km&V(C-^2ZZSj7&OgnM9h;=n9;FNe*70IyoXGCURhiD8K$#>C}wijYg zR!iMcTVom?$-M9mUJWbEGJ~mnJ*_M{e6X7X0*zkRxMbdMPqE8;yP%g&F6g9cMlH&1 zB;Z{tq83oT-(AAbV_cV^;(Nb!9`+aDqVJQfSFCCSxV~fs#l2vKFkbu2buKv7%$9%E z04XNwHLEm&kSE7^SyH0xDZ8!2Z(y#anHW^ZJr^K8WRUc+glpkiTL#!NHx$s5a zzzY*XXtNFr*-7S{xe*y8iJX^luqP}=r?Tw0=vnZS<`+a&S00ZW;Y7B7gOdD_fHZ0& zMOgPl(1Y}!t`>!khkP#F$^zTHcfmo{0~pmQLE;93h_PlEJqTXF0Bxpmb4vKY$Og5P zRK*>hX8*u)(7h*Ta<_#Zwo?DclZl&s!`qKv!4Gk$uJVd3x6Pb*A2YYg(MgCrS7;0d zO@_bT*Q1%J>H|v5tZFxHpsFN#_U#yHutL?DQpPM?8K-|Aw%T&1+UB;;emn%L0u*86 zjEA;`GR_J#e_|wR$!XrmPze9@1<_**51K;$;L!^-g;u4On~$dG|INoZ?!+T&w2NJ? z%B@X-xd#ntxItOq4dv=-a!ysAmnA-*dxA6L_;)}+#(vc8C*d18RmoPrQSbc(|8EvN zDrc$z4=~-Pg}iN6*(#XBeE(Yl9AJ%BhPe3<3NeCC0Xf9fW-(C>m;2?Z&wo~SaBB4O z=@~=M3(r$=Z#Mj)c#TEzi%L2`(!}hu)cxy-JC9^DMa0p0j^(!|S*F~`-QzWabMD+SvCP1YBb#E*; zmsuw-pgKEmeBOE*wsU-Lcq4g}#oi=o{sWH;H4n5>g^NtM-Gw(vIus{&MPf85=_Nx)VypGMauz{&q8oG0 zPkmUk^i9=p6ao9hW()od0-h`3|8St0@*#?a?8W((gdTykNd{^d^=;r@wqBfhj`Nw znCVp2_1X#SFpK(3e$I(oH-M&6-C1}Ot4 z5C9jE{SXIXxkv)(`oLu1y#K*7LMPj(4!j1NQ>YoTnMjHkp3k~UC2`^)2+`Z59v!Wi zqO%C@OS}DuJD$xX0m$!;livpOu#nSF*R$uQ9QkO3YX8aJ}Ntn z8!>l(l&AmNL3f(T?=ybD2%8=bJEX1aHDvxf5jR6ai~jcfofi|2fwE`Z(=A}$d^t(S zZod)nfw%f|9Qqsk+K?8cxLcXiRnL}xl?m7TBVMWa(}8v8C2;Lgi@^d{SeMOp_H*oW$RI~FWo_*TUKC6YI3F})IjABT^SLnQuh7#xUWz-dmg?}}ZB>?SM3rKp8MUATSA7dD<24uFyc;$e zzT0-?>y0HK0MHY%hgrj_oR&7y_xWXDe|X$H(R09#-;gdoT?#*UY594AD}(2G5fX4T zcd}C#^gOYgzc+9-eN6gfyO+Nwem7mW^SlQgwhjNj$`_ZDHbO<)o$QB%K!Bev%#;tR z0OlWX)K6=Tv%II#=H@e&&g-z$wa3}v)#>naIQwwn8Yu9+YhAHR8@?7@+Z#C;?(-LN z(7D29_{1Bwefp+%&I27GgMc7ni3)yfj7NJt;aq+hq^pL0^^?fzD)Rc1JNyTZ=S6xJ zo0*6P7mv*KrfCEEFsJ>_mh)bs&=bJz7$Dg<*cToyzU=4jgpQE(+CQj+ga5R`2yC|n z>^;R@0Jps(;LJt&Poh#+`F-&}tG?JXq#$HcrY2?OZMX?mCHpp1EqUZ)k zU|IUEA-}C;sjcQyG#^OzJO{p~QG79^`HmUUkjOKj%D}`6QQGwasQ1j2NJqqe7Ed;t z0JwtCL1rIGKiWu~1C->R?UW;tY+gYq+o~9jd7q2z77WWoeU|$+A@YhAsW$s=MBn2& z{0Ef6_vFx;U7Ft_Eagj|phA7N)rj^n^NWjc|8R8Uz=5-tQF-^qU^y5lU{zY^uYy<- z^UVjuHfv;CfNphfBqhMhbVa-CiGuKg09E}~&Z4kyVIQkmiOXysf9r${E758!?(dy6 z3>_`+!<7wUr{#N?t@2sl?uf`v8_+*9%U3_w%vADn?u1sZW}M8I*Nq-La~VJ_SRIon zE7~%`nm(kvt0~J;u6(P1aWSv42ZS0Vj^=?3FB5VzGiH06UL!{Eim2!=PamN70Jg#( z+3}+g$q*8J#sX7Wdfk!obDzo_R}o|NsY|+vDP5K2mbu9QUjEj^bA_il)#8}Qirg+( zc5fvf9VEPu3KZ#ho9=#~DD!Lt?jv^pH&Pml${s{U6;Dl$5AC1oTV22tsbepXD`N01 z9GMyvE>p9)>lD%>NEd{V*$O`jaPeGc`Vk2D5jB!6sL7V-{P3$EWX3Fo1qny;grUoE zEhBTGUfVI{&eX<0_!G~tojZ{_yNHt-vffRK<_J6Q%>MW#?Lst>3rDu!aBW6SfjOWufg;#B zszX&N#VaU5{_;4YgS;P+GlFExd z98Y#D;arDYMQTSz1=XZeFW6qx#+UlTg_KN&dm6@F)xw2jKhx4M(7)E{87K0BXYIVe z5G?^38wFZpS9|BrN+lU1I7~>`ZSqqeLhtAM6(7A}cwb`gjv=biX=voEB68|&@tBpl z1TunBmuoyuD8R+_U7Of^=H7H>+KpAvcO?rPYxh%v*Kv6jCkRR~0>9iSCVJ?KD|yR7 zqtcTbhj~x}w&QoFP&3n=?%F{#{-SgT!MLJ^x#z&2ow|hXbdnTF2mCj7%=1kxbN$Aq z+4});aq;IgS~}1Tg+MN_A7xgO&kYd&cya<}w()7$k|P0r3@Q&S9^T>)E7KqUcIe| zdi)9%Z4M`A5lsudwqH*|Egc^9zK_{+6sG;&s;x_FSsb1i{Qq*)#~Q{sUg^&jTB(rs za?}CJc>s?ws5Lggs*R{yL(b5kT$;B=k3*rlV3|h%W8NI{FhH9c&ec>Xg1VQWVsM}_ zl5s|eG5Tgji?xtJpuJm&TxmPM!|yHJEpWqs_FOCk@G9$!j&48L7;pr>Fa0&}vH zP`{_H(~m;2<_(H`?q?ges1NxB&6*tzqV}K5uY6RH#bRMrE2xCa4*{vF z+59oBsMZ4%k9qY&ngo2g=UJM;`_qVLMCSx`k>ED$Y>z{!Nfhj*gQaSEcj~>(6n?}C z(u%9F>arv$)_CUXNK|QpT|X8%kA_n{l@&vRc`-(0&Cua?aeK_BLi>z^diRPb1pBj? zBLK7;C43dVq_~OtOFpO$4Z2>ZzmgNR+#y+_#j4uyaav(gX9$Ys+8zfD7Tj*9IHlzN z5_}?5Dsh!*Z%3A;3R&zWUm?v-bIz6|9XsQybtijvWpp0hwk7kPFC@Jz6|p&n6;MUDjXs)H2M3g@6yhHP#d{;U%pu}e-^XG! z4L5n)j*`I>dwdT53i7M^;cCJ2H-ruW(+y*{Pns~M0t=9YW9{l4X2oGp^)nlH`xMku z6pxq+iWb!Y%ZjWzpkg4$Mjta&Asl#GGbGY5pP*G7;_-rZlWjN7dJ5@402vrOaQ}p- zp(w5d^Fiec9?ZJ>yKF2EfxJ^oT{Nd;uEcXGt{$fPi~FYLvVpK*ok7VwU)J2~WY!Jd z%!jxReflB%vlnIU5G)9kzw5sE=K#$!B%aV`DIOh;ADMmJM8(i~b?2?qwk zLaenx3d32b4oGsW!tts6>H7${F+{C<46ZMh30`Lu`EPOm^K(DpcK`Rcf3 z3*6E12=w@55`Ygp+v%@rOh+Tmr(_ihAiumCsYX~<7G6r$E8da1N3ip>3HgU-0+AIW#eZ1ux9j#a{>|K%<^AQ7<>SbjhbsDh^ zh3PE4b%G#WWmFE!Ao6q!{N;b$`pAZ;<%@-T_Ve`2)(XB+M~xo)xL@ie-PqLJIum}% z^SwL`dVO5o>iQ$9@rlf%_3cQUfbMKfIKjyM*RzVZ;;uB2yq#gsdiSf_(c$?!eox=O zCvhShYeW=smvWiyvfd!U>z{FNq)De_hE+e|$h6!XI%bq%FT}dO1B2&K${n#x;{Hjq z&qMot@BHVP+}DvpJayC=sV8I%M>@rJ!8({cNW*DfPFE-N(7C?re(!RKOux3=n2r%$ zC^|ur;y~hMt?~p3Y~cf(J2wS<`H1)gj|B;%b7Q0xV+R#uqjF=Ab7DdjrH8j=?auCC zyf6g_BXeW^klc>oSdS^a-mJq{C+sfU;G7q3SbahvZP0E1h7i;;!1Eye`5AI_09JH_ z2&)@AuC#-Obh)<&V=wLz@#3lY6qtTrMe+g<-kQtuuQq2l6{w5*We<>YPHu z8rcQXI_A$eFE%$XzI9*^AV-@x!Q{dvP>w$(SN_6nONii2napbsb@w$>0QRh1GidZM z3#&z%5N&Pq1LSh`0{)Jfa0){=8?nb>Ux%heQ5fP|x3Zr9#!{Et3245e*9x07ij7E2 z5b#CS$Vx%qhw+4J(h|$=xT){H@lYGT{m9{+(sl}L3u$$S^eM@ zs98ay`6yIq?AnA*=C_Xnq`>d$kn;x*(@ zyK05Y;r2YgbJ57smQ&49X%S;ub|ZKx7{6XtmQSI;XD-jZ`xutu;f9=n(l5Bk=j-Tz zoP&I};v^oENkXAiVvTviu?!kf(@SwgW~0d$x=d22S!Zy850HZ3k@POwvj;KU!@;p; zB6^tPTf#T+5^mN6m9)3lObSsu{xzqONE&RlB3?Va@uGj_y|U^{CVxy_F+04Ksn9^| zT;_MN#U`>DLbPvk!b@dQB-Z`9ii=Vt76c1}P90YyCIoczA=_r?4hp*8GGwg3hnqrk zXe6(0{XW~m5c>fsr6mH&#Av(5eif7)g*?RYy?^771%Z-qqbAv}#HG?}2iDtnA97xZ zspRi~Vc8(#nUzVq`XO2zs66UH^zia{pu^ucTfr7|IAdIWS*V~YSNSAr^oe>kFa`+} zByaJm+(-b2Rn~|C7aGdVG(fa~CLyX~s(ZDPXtUg2pgM{8gqyo7fDq=2atJ{Y_B)R< zOLIsYX~lHTPDe~X)`x|jFF>0y0)LOnP@p4bjG5ION(Y zD`!pbhJwp!4QxlxAio&+u8(;zr|kW0ux|=YPxwOvZ$$JzViR z8F*F^xF8@L0jaY!#F(k%V#=s34bUWMxc|jbBqfpgUpDE~B-beai_Jrl@xN^7_(*QS z|7#-=BB2HQ56O#=a6lsd|IFjRA#Y?sK|mf-Nq>JuzLHQzYiX1uQTyLmIB62p|BXF~ zCc#DhFPR#%#=lW)ARw`SQc3qo&{LVEl(Ad*a!FFySpPp@*k;Xi95M(<0yPK-$=8c_ zvu3t&Wj3{PbFgLP;AUfGWo2PuV&&rIV&&oGNi|9$#Q-obH#O%Px2u+p+qJ2$ONimL zwWCJj2N@*c_OC9wk|FjXVRtDaTkX*(%7PlLqQM|LodfbVFt~0k9}H@Q518+=(n%#% z+D|2w8#ji2hu(S_EWUyvQR4GOYlt1cB_7_i_TLncT^cr2#B?Blnd8c*S za{ZdBOfu7n)Q;ysZwCqb_3A4YLAZs59W~et)M(lNd zfiNDmPTKo8vc_ok>dw7$8&`mGIX($t+-N#_?F6RJ{fFz4YqQ$JJr}&BrFrPhP@NgZfDDI*kw#f{(DmLsKpW*lmo~z{ zTq%ZaqypzipEdTUV&6k!2t|4q3_C$A9S6*f6v{4@QslsfCC#S8P^HMkG?V5ex0fXI zA>*IQ@-&k66Q~1ZhO7M#{37Tk=sIqSXa5+?IUJog*9Ku=nMsn&BZLOI^Pj?}>h1~M zVC%40B72<)FxHE-dS>A3U@f2hk!=*B99A%~&kt-z!&sAET?cFIzWHNqLE3lZw*l}t z_h{7WSs1AVGWu6JbI`I0MTB%LnWB?!*z<;hv+C7#3PH{F8W{ebaXK`*AT?+2Ihs7z zqCn^MwLhG7wG~Qp;}idfi4O*&rLgDMr!40)C@RNGzRCu3t#O>2h|s6`o6S6cM=2@$-xbhXjol;*D;z_#K9w`cx${^ zqgRG#NkyDgw($)~p`&o`b{%#2pIBU)F>~-6HI^Z>KV79z#3%5ju}|&yzPFpvdD5_H zEqV^>Um1~L&x1SXR0s3HJ%s#{){EUK4^+f`>1w`0r?3N5(KZ zKSrycB`cxVG8$%`1N5Cq^O+UaB~hgN#5I>eNG`uN&pK6yJN;^HTfp)eDdwpVT6kkLAsfY*5cbAeLK+aWvp3euU@A#XXpTuZZ7;TnrdO~ zMSH*E5gGV~Zfnx-MUI}#Mm#_UdJ>GPd(tw{9gjV(1M|uw@8_G?tG}t`Pumm=G7xGw z_INwINY^*Oo^cv@>HE8v`-!X#FR%LE&sF{UMj-G&g+FF|cP|i2C0mS2`4)Wu!ra(c zzCngFWPKI)-6bg(L&Xr_^eVdUoLobx%h2CodO-$W^CAdfJe9S; z&F>E`f}>N1(@DtznL&`wb)r#-1o(H|P}kB=GX63S03t&;J7`4|XOc=~E_z4{?Qc(W zn7|AE%p1cuGLtGJqFb63mLR?@w0cNqq~o_xtf&x{KtXLL1_g@^?;5|Cr(4IKu;xfr zObv62Q0qNSso@RT6s$N$1`CqxWqlgV0kPid1cePQ2 z;23z#AcbGfqYc7uFaHV+6TE~Kb!~CDS&&|v7_x)vzsW-%RnF+s$CVKmSd);O6US)| z$7%n%vPHolGZ)DyBMVBV%h-e(m+%Btfy(e*>qVso4|JV91-vXLz1+#Nt$wEiBx^yAtTJYmS*Yu zWN=mq=}o?VYs#NwS|$t2w6fi5P%QAP(=+u#j^mz1WZd7q^eIquI-A~TJw&Gp8A39l za6C)@fQDfwPz~!+b?SkqlB=EH6D|@xJ&8HkAG)ddIPIGMK0n=o5~nV$?E=DS-FUz{{`8+<)zUcHZMUN&j%yc&o)37yUL+(<`b5d(|xKb@E~HHUgY} z0GeCPM+5^JW-4+X^Y#W8q0fkleLvp&)TWF`5N2B*s=(%qteAu%5w?{UaJwTBjub+7 zl8Q#1T*wFJ{2pqiV^-6E>c zNO2#Z)mh|{-T#yRe0rN#$`yPcX|^vY1&)ojPdgeml3I(`8^;635sQop#vt5ND?^*NLY9@U(HyEY$t6^QtNQg1BM=_YuK^U7eaBX$?yMPv?_9 z#=q^thbh4cnvYooQM6Re!b^1@?Gsg_I4JJT^E9tk&jwBe6s6p@eAnog3sY`WjSLSj zdc$2O?j~m*3<8~2*Vs5tqmZPB$l|SJc?{yragb_XL|IGxnn(gDJ!_i}P#Ev9MAo@m zl7gr4>k00QDlU>8`;+9Nksp!X)yc+UIh;2UUiNuhymk_ODxm+kQP zrF7rfMJt8crd2{5I%dd`IYoF4yjG;^9?Y8u_sgI}TE*#%p) zfnC-1k_rGH9mv{|KlYJ|{(z{aW~%MJD_Fg~eYshz0Pm-kN*^Z;kATyCOHb#=b=VSd zr^owd%MPGluwZ@;2>ab6S}GA6`hN0H=L+~fgi$XEzrGU-KP#elp^AaN*RNTV^$Fv- zmyO$)hnC3M&S_{~)DKdP@tGRg*jnpNBrxq`CrF1g6-DUaBFULn^sXFSQ+!(oQN&EQ zq%*Cs`j_)?h@C?>c2bWJ_?g=tG83XG6i|FG=4&F&8+_mg6pN)wjPlqofM6h6?A|MF zzP?@N^a`j!6Pa{DL%^t_I#y&FgGXx_K%%+2Vt_NO8N)F%*EtPZSc5i(xoP^GFnCF` z85;1YqgGvsbE&Hr&(2yEok~HMQd4VjXFO3+XH>{BHNmB@$7~1xYWaxuLg&w}qzilB z?&Aq86S-3ddWD!FuJ`lkauD9b8JP~PsctdnbLlv$WRvy|olwqP+FmVUL|bB+A%|Q} z&h`o$nDz4mQ`QH#s}SUjn4hQAviQPYvP+}yA=Og$!b)ROB3_8Zo311)P6n1flFoI5 z#=Unqas#3^-MS?nskIs^4ez@WLN#o%N=|hP#92jNs@7k*_P zz7HD27nt}{0Dq1^b|6B0?i1qXWg!NOCGKLp?IY_ujxU$X2oi!!%wrBIR<=;S??^M4bl`fK3N!b`QOetBx@z2?+=08vwmcAVzSusKr| zd$u-wR82FJE^#wGHf?V47ip2@+k4Emh>DUziXAia=6}rl0x&k*n5n-z;G5;cT0UVE zouQ(IdDyq!4QU6=T75`jcESpu*>h1^Z{$~XFX!x}$9nhzAqA68U#;SFTE^(u=N4SF z2I&y%(h2-}Mu)*J9Y&ZYRjLEj8D)Y$tn{XawYuW2voRW)QAOA0!l@b3qTd{wm75xI zZ;s|>w0{(FIl3xezDH#PodB>X%J0nN4ht{sd&4&{{G{U+Ae(j}pS zWgC*|xjlRT*p;@WHsyMpI*;FZR6+i}w+_-QOya$-$NPI(Qlx&6?S1|0-X?fldH&*S zqtW=%h?AF$q#+UlwZ502q#-+hn?cLlUh_{@{OktD=gsqpa5HZi9IU;l2tE+M z$it{H@$!$xeoQvZ4n(y-uhhv=aI*Ke{k<4iBV>8;;Bg-KIS_JPA?2pQa}lP2>q0LI z@eO5wHf(FXtgM&7hnGq46vn{>S|iK2RhQ8C#E^s5(tCXjlov&PFAvv$vKCl|#sL23 zvk+N-is4bj6(t{5z{f4^gOu|$jHk33=TDLtNv$Nh)M|JX^!^DlWX1dCTlPD16HlpP|vty3zD}YKSdOcCCA45&P8{X0BcsR83CKHB*C_2G)eiZr(*2irU5nfz0F8wIfD;&sqG=H4U`ZZ+mnw|Trx{G2mUPZ z7mo?58y)Qd5 zY2?d$43N@e9^=r`OQ&Ic5Cu;Jmhg>XMG9y$2gEz(AJPLpAmR`W^vXw%l>6xun#CjO zO(qSzf`3ugqV4t&ZKdO~1#bx=9hy(7XZ=A$a?ylt=BMF*Dt9906QLwJWpc1 z1Czbwxq#@R&GyCSh{j|m?6@v*;}!X=dLsc0vTu!{9<1P%`7D`WDM%urp=i3S zXjR&O>w|Y?C3Rdw10`{C0h0YuNt1TEC}kqr6~R3Mm*r7T3d(GvU8%>idE6>((>&xo zmSJvy3w8jW!Lh@mSzq5$R=Vt-vlk|{YYswB>tXOzI@>_E|n zJ~^?48N&j7tD}9%528pHUQhr4B6AG+%cKB*inwnDard8wQ$JaP%Zc)IyN_E%kP9$x zB`Y1nT=yv?wyJ^J#^h#Oq6;h+Y&#k#Lr6cvr6i$ zE_GIyI?Svkl}?XydMhKnpCH1wMFH7D*UvJ*QJ#8!?yjN&Vxc<;K?hht1u4n|&f&IP zfac)IZ36pSG;q00r7HgYg68%D^afcFg^$wAT=Kb_B+IYMeYcjaV5qhi9H{<((SAoe z3__49cO=PtSR$(qcg5M^uH2&5FCHn*O(T_uqZG30kR2VF{vjCt-z@(t%~Ja4-!N#b zRuD+wWWIOg7?!c`81Qf3GK@gsbGSb=)Y_!>)NGesFQ$d<(Cp|g`^_}CJur-0V_z9Y zVeTg;kh8JhP+LzM$--3I*dOVC4&I$-T+_3+--B+2Bx#CaTv6Mh(JOjh^3n%r4v0XT zp4NW1B*ROoyG!f))Nx7AvGjBehk0pNybNji9X&~S!;&ZRMaz4#1MWtY+VvTgK(R?5 zLn8hlG7jj8Gw-Q~vV-G2g1rnL4DGQM2qb{3C3u2BYczv>KV3JQOQZ zZ*W!-TASze;$75t{LI4K(DOTRt+bv{`%0`-*QU~1tTip&M7jFZbbyvchIL|bfP3Wc znIM#zsdSbYUzjk#URlt8(=ien?X7kvfl)le$~D^#shQEsctj-#RvFqTrh=ua&C>{& z0};2hJi`byGetMcNQcHqX5n*0b8XrKrs0|?&!VmevNU@~M|SsR3v>+Zxuofj)PCTl zPRZ=B2EfajJl8c&yF_d#7V!);n_Ws%pKl2}75{);1S(+3F6osRLgUEB6uOQvLdI^G zJFik2M;7*<36Z&$m*cDHk4Hnw4}&4#%%3+A+xdI5-@IIR%$mEQ7@CpB1OtQ&L^ zO<9#5t=I#3*>RnzP;|i`i>)^seGtQ{Lt%_6lzYPvA0UeD{Y6`?gdav1PB}Dddd?}| zc?Fw68zaD3_1J};tAF7_SQhWMN~(I}F*0fq$T;>YT8cnlDzUqR5fnNEn4Cvs%>y}v z()*BMA7t!)i`==%z{M?Lr?MT;YKAjq4;Ep>$i@y%Xc%x$)PPCD5>H4EX%~DV!WXJv z?l>IqCNSoUqd;$$*F9-8+*7_m9%g2JXWWOqBjlhhu@SY6$$!!&=dWTaHbXOIYbABm zOqk~k)f>>}of-zkb)MNmH1(!rHtC3zI{ab4;su~~5Uh*?usC5c;w>?r%~FmH%fad# zFx>)%L#ytNXp=&lx3vw4X8iIa``2S7Q&!Ur{ooSoJ+ zyro;NCXJSy7k{Wv_Chs0w?z-5(psIG0*@FxWDTICnO$p64$BwUVgCJEhCyKrWCKMQ5-K2?=w zBve0>tF|g`2NxY`pQ{o>M%X6Cs+w-vj@T&6Hcg<)U=|M(y)R; zLRA#|x=y4AKVO+el2cc4E$%zR^WlTBv^jn;!m2PnR zo=KcR5g$sET~;?t<;<%5q{TcPTUE3;&{`3WUwP-XMWP>BVgt_mD1T93 zQyPQ7KmtsBtdON6r7>Iyo_9YGoW%++s~9)Gq^?)H3JgRfYga1jk@G$NjCQO)sGX%Q zi&;vR7)Rso2Z{<{Nc-R!=eGDGgiJBlI|k&+q4Cy6wqDzKR71WlY}P?7iqAXL1-t|- z1O!~}I^r^U$%jB$nsnK@@;1feQ-AdK8J+E>atD3LQk|j+tdC9bqwVc2Dra39F1j@x z^^gO_r&a2>=+@16A(fGB1nBX7JhRrf=vESbz{uw=y9DQ;AvV$eXDmI17nnZbLglTx z7LsREeZY!Tm`dN$7kuq8zpl@1@Kr^@If2@&x;c}4RulX30_7LheJkd6!*CL90k@W6=xMle!=^bx z(A#vSn_eLo&sWAV1NyGw<(a9R^1umKWjUKAtAr^n5-JO}zd1R&D(`87`%kM>c=y0BKag8tM*Qing zYiC!us87P3FdvKBmQS?hf>}x>P;hQzY#&?1w46&gUdUDBF(a*o$NVnc^R9a+bWF%OR4a)F6E$4vZ zrufP^e~EzzyE5hu4Z(^loZ6MIacgrR`S7WQVzWL;;4_ocXMevu^cH_yf8Eq(6=;Jl zsrvL5)!Vu?*8By+A3GjEcJowp|M}ZO(0^#EVdEQ7pPF+%%r8W{xFG5v<|oq*5st6v zV?&{VyEtA-j&O8v(G@Edke;D}+U?)f{#2>heCmo|ICITAZ#p`tX^Ewztt#^J4y_EZ z_|6?QO|_*;TUhGSQFMPZ=OaYagvJ+mQ?7Dy+)+d>J6zI-eToI3`i&@hCuC*^+fI{C zm2X%}(w&YPwRsR%(cTV6i!Mit!BMYV+#|y@Ng)G@UJhSMAa=ix=-M-KnX9TN+WL5na^-|4|4L6ZV#kVw<&*}^ay0fit6Dpw7U~L zmW*)hx=#U%I3Lp{6v1ZvVJ#V{Je$HslUC7R=f^D+;r|BBZ?J(Spm`viXmf!C7PsVqDc$ z@R#Ma66V z3#!}(qRI)CaUYnEVxm{R?aN632^Z+y^XbrM{Abm{m&KYhb5GgVwuIJ*?3&=FySd=#^VTD_ar zBivt?gc^V5?hLZXs9(;Qy`w?DuDZV|XGHI2jA+I!&lniCL@XS%zO$GE!+9FB^+0_c zz9nEcUgEtoI9-o|5`JB9Lk`@cGM(EQ@eS=GQ=PVtYe7ATMr_w1{yb$#FXOoCi%kAS z!Na=EeS_K$zD5`_3!N*6I*F`%`{hxPep?~A^?83tGv_yy-sKo2IX&Tz9%T^yy(mu0 zcu{l%MS|)x(Is!W8u2vT_?g=&f1Gd~xgp!0aQ3nH@DDGdVDIbRJZt!~B3>MvoE%aenCzgNixiho+Th?-F_1B;~bNNp_4+0oD@bIVlo^0@Y+-Usr zU;o|S^EbC~T=!L$h$7sHhXcV>j(rp)t5ZAGjAgr)(`kob6c9L&XM+F-2a4oSm{FW@ zE7?{gyYY`S_QY=ON!mt^+ws_nN2o)hpT$5;j!M%fDTzPN1PV*7(aIE zF>&hDW2r-@E<0!q7;rY;84cJferF6A_&MLL@2jJl;-vJ?89#%i05`|u?Kr5{$DMy4 zJ>hReI%ekURxOX$goT#jES{-y#=}okP|!BawPclA81&Ww9HOTW{AlRKjwS z0KKz?hYnj6#!qj@tW73?*VTVx!+w|ThU+g!W46Atv9ZrUtRW|)9d8GMh;&RDl7>sx z2fok{z`I&f>u$)8s|`m`cXs?Z=%Y^U@?}#-?Wm7~Lt+G!nO|Pj0mT?X$FQpI8gSKX z_ha6bp{7E(+JSr4X%AStKMuj@QscA-U3N}3=nAmjkPU5^=Ki4DcOchBzT5xOUn>s zd#s~1xddZ?gPMe@?#O>~76dJyJ3c^*gpl9_9NrN%+_uQU%@B~(IdR@O`S`ev<6=VJ z<03x8MI7)R=PAM@qzU~i`s3cd-fqsz;l64x_zuh|Ie|uWpLfJB4|Ba_VAEqh1PsI+ zdNOMx90$zk4ziI@5UW6EZAFdN3|tWdJQ^c{f<&DduW(ZgHPL@7)Pr_)uvQpf0<97l zMF$aGk3}@}P>#=IPO#G~T5-7qu-5Tvw79s&>5sdf$uB4uj!s9*G}l^ z+(<%4;>cB_Q6^}340kph*W&H46NO|Y1dbSY9?gT6p*B*0<6(_UMge96ainQ;0O4cS zXsmp6@0*NPx$}R`4QHP3P4PlN#02#So;Tq?l#`foyp=K5JVZ+S?%i&Z#<%HpbAm^9 zx~aO~n$K+$=#gA*p&YWZ{~sPVxwqi5a_gX#ljjdp<0r9i7&+%6{7urpMNaowNLgJo zk_H(d?*6Kz-A$P7Gsnqy*trjd9<(NVPD_U3No2sutS*18CG}$L?CM~RT8TqzIVhxr z2ozJTX8ioDv2reW%GMe42G`RisIxFwTvWd%sopZ6l9zDI$7w>q&PtufkMy*F2UjqL zR*(zkT)ec^L>*Y6ADd11?VHhvcut3MC?b)6v2*$I#myDL$;A#XJrLEZw~D{Qeyua? zSG@x*a8ZBIs*H!j{yH*)v1(csj{+G52Q7+Z)T#uJPbLX|d(_PkSRd|DMynzKyV0c# zP^S+wSFp`S0sY|^3TRa}Lp+m=_?ToQ5JBVwD}hzLkZJP|X>K}zn#s81`=c=@y{i(K6R z9)o{fxQiJus{aHeuq>odu6P)wCT3ehn3ISQNER(@Jof!l!^0czPp`lI9jT!R$t5&S z3()1wrJ_lAFRf8U4xi`DbYY(+fIVEJ-)q1;?!cQ$vi_3G0GZcV4MxYP};ZMZ%2QF ztomgP4gUnMOb^uNxGQA1c(Aslekm(7y>b1)m21?;c*BKGqN!4F!YT;us%?yhJ1})R zpvZ5*0jX6$a!o?Mxt@#%7bJu4v16BD{51iakT~%|6&?=ion%7gC(6(#RY(jy{4`9x z#-=d&0KuI_t?Of}gCJFwFGJBeZkd0H&OC|DMsi%CvSvF6m25dk8zl~3C)~6*gtfrG ziFn~+2FN4l5$9?lMOUK9JZ580W8f)V7&sI{GLmFq2_6h2!x5sHj1YecHyL28 zxP*^9p5{KxsXG101yvoIJxSdQN|4S66iR_wnqqW;c^nQcD@^qCfQdncVTWzX!QwRc zQ%=P|N)4U#j(nBcM6NwI3l^7Jxou8u$|MOEGNt7zie1#oZU1>jL_jBax(4 zZGKU%AP)|>$HFF)`D;ruLPdX|97EmeT;B?Hu<@8h32n~K_e3MPJ0mob&7qQka3Y#5 zJ%Fg*^obYpu-bZXV0tQ($s=m65-Im+@?`?n=9F-BSb(;@$sL=MSQQu)n{r5GhHt~9 zOVd;i4GS>x9TuvG{A^WHHq81U8&Yt)QFpuIT`X#K2|zYO;kj^7$eEfJEtWk9|_m zZ@GVFsVAV;(vda4xr9CA zIXFSPqQW?PcN6k4sAUzYf(0un(b;Gx(B>tjY zl@)E#6ajA%V7<|Bi&cHU&i_}p3sh6U2f_({CW^<;w>O}38^MxsuuCPK>&6~~9)?&+ z>cl9qy&d6Sbwz)#Pd@}V6Zc}ku)AdBh`Eihr0hT!52`f1)3-D$y)u;R2e`(b$`{kc zgLFFOp{pGLmY0_sbpy6!&80yq7Z>|qZYJ;M`S~)cdBC?PSYb>*E~wu7`h)4M_o`*E zK|aOA_~bICJ6wTXr1(f*JYZG%)y^0`WEcRFKJ&r2K&yZFVF#L6Q!TOI^TlpPgbx^B zBC}DYNbv;{K-DS8#s~EWS;>R3*9RXnF8!kxGrugg@b?9U;y8+;OBMq2AaVRf$asrZ zB(03tdOSV_jr{_by}b@HPJgZvn9=(S!JgsWs;HN0!TyWDWa#ojnAG(ER@RKxG$kPJ z60o#fy)J*21ykwL73;^YwY9}91b%~x4X*Xkm)3E*64ioht3q8BObm{En;sYL! zLt{yEX(c+P5LTka#e5`u5D6WnCX})oWrvG2tbU~eZDKC8pV9$lP;X!=U~wB8pXvcjs{8QN&Y!P!Y2RyUwd(c5Uwt{f@y_Az-#WbZKhvx49)9$PG>lwJb#f|~ zax)#*$ICxxhl9(Srwhgu)JJmG=p7NaG`_qtM7%L7!ZoiHaqP-FIg%V`d2jaNn-(D$ zMcHeGriJdF;QJEtK=AqxsPcih=|qeV)=qzvaoHV2o?FDkjQ$?8DYnMW3lCmsQ+lDr zjiKK4rQ1@Z$sQd7(ubJT3KCwwbp`p$P)Rk$3lN$J^T#c|6xmq;0W_)*=L^t;MI1Bg9+j@VT zta2H*_vDXWS&3#z@ob!mtmFw|E)|ona+IFrHnA>ETs#mp<6oE+m~p`pDe&+VI_l+wK{ zDAHcp(SE*N$9;ThcTVlbUdpjg@}Yn2-Q;G|W<~fomGKRQ|#F|pTafKd`Ft0 zCtu8#r5Av3S{2?AT9rc9(#T95mMKFzChj+LN@XShaS>p8y=U zrZBV6eRQV?pQAcPR-BA;RD^%6_S2*LBJLI}7=rcZ2x==IrM{}jt$3rfC*#9axGFfT zmZ1nuE(6Q>yk)AQKacJQ>(6)Pt!BzNn&&zf$)hO&KDr%y`?J~gPiMdVeD=;~v#U3! zul;Tg<1U{gss%nJwtfzfc?MQ|9zr&c+(F31m&&26f_a%ac)CFHP)mQU)I3Nf=I{st ze>lHlE+OX$DV>;|2Jt&wX%9orSi@gs$}3*cY@yYPx{HgRdQCPC<1zkKJ?%By>e|H0 z6`gbNV$svz-9Z6!RvRCqK<*C9I^|6l)2aMYTPN9RQYbNgODxEXcA4;B zxemx!$qf)VtZ#6PYps7;dI6zGycAG%P2L7{ad_zZIHhhjxkPM}Wuhgq#d3bc<1APf z@@R59^fw;BivptO^tHD~%Y<-En;hTrAy>kDRKlA1;YUtE{NMRA_HLb_wMb-H&-zmt( z2Nh3pa_{!7*}H#VOmDt1yY&hGdH?DcJU0(rIJR^%HWSuG{(d+iI}+XFaRhk3vJ1P! zKT>r=tMtXyR1NjS>8+c^^#n)>OKKjNxzN9?dI)L{9P2uqNH&LIRAy?zn8Bh9PF6q+FTkfW+}*4R#m7DnW#r9gp2=31 z9KQht*3pc*x!$ch+D6Lsiynp)Gfc`hkV8#&pOdyx1f1w_(9}6d7Ozjix1u#{y&!bV zMau{L!=oMqKXu}`kPZHywR0<;c^{HLv*Vam)X9JFjjvXc;agFiYsdzL#8H(;G-$Hr zrJ^OUloBR0tSVor~VRoJP;1&-w0? zsl8UO(j;jb730{4v*|H?m%PXK3j%>`h2?$^8)L=+8@_9VPMWl%0Uk-RZ#<^G{BjdK zo+5v#wfh^r-u`3~)zZO;!y*UBJnn{IFL?e@IjD8{!e zXOzwa)o9QgRwr_UzStj_A$PD~pmUoC*t0jTJ$UQWs?pedyLNlSvL{>BH=Bi8F`s!>%% zp#hT}@RUGWsv4RMB^_uq>kAW=csL5!_Anw1*7MXUx&~=-x=53(&ktIf)bS`Z9z}l` zbOZK-aJ_f3*DIqFYz{AlqlYDvKDJ}h>Gi`ssEtv{ZWM3#+xr1!8aeHLv@sx_;(&<` zuIIl5WktPxdF(A<(1ki-Z9N?ChN;~HaVun5nHJKN7qIo=c+-w752l)E;-KOa zOFzt(sZjMZu*}y^#2BOuGtKa9)B-;P(oU_IiBqL`T*@r8xG;YF##SU9ykaMp>^eZa z%u|rk?~4~jYZ!%XhP-AloDXePBg$Ygl!d5x6>$h=YuM$-S6Y?Yf;uxpML~bo4%n@F z2c||L9nlO&FgC>FdgrCse2}=f|>)rj$^R|??>x(8XfZC zOE_D~W$e;UXe;K-nIxk&+@`(o3x1vN;_)F5^N-UQ&aLn9etWRdd?`K-9V2~|2g*`u zC;lSiZ$rk3+7`rukfOHJlqY}5jz`^Qx7U8`=NsImK8z1wvw`ja7k*CERUs;SBnz6a=|f(FI%F?vT*WK%22K?}s|O#%Bvvr($qa+D?xg1|Ri@ydR|&(?py#rmr9e4$1D z#fumzp7#1A^3z&J_RIv6XJGJnaKnD=FZ)lh3n~Egp2zl~BrX&Q3eyf7_Tmdq{p6{Czta&SW&&ys(VlU`;T ziIYnYlyMARrfq3eG?_;NmN*1_@fX;h)(Ee9Z3)TdMt0jDBg`|TimfF zzq8pMogF(%Zo%482g8Mfp^%&3;XTvhwoAl1-(>o6h zu?h3vMGRy+H^FW`L2S7rF}Iu0N@(nJmP$}J^V#^@Az* ziyADiMmak|Bp!MlOjfT^v;$jO3-VLuu^0FxHiP7XZ|9ViK$hJVwhq&Qmvc)^h@97n zaMM7QuAyM(rqb1^Q2QK_jZK{Z@5x7`uw_(4bl-m?(uj2$vd_*%W4@P|_{ac$SWJdo z21AAdP7lt;%1L4qqWGz;abW09cJLgozhu#`sORAHV%WpWEwbY{jGrQ1dI1UyoFA*U z3f`@&sQD*x3wL81@=2<#q`_Uo#E*YmU030>M;kl%-rAM-l30V+M{zoMeFr3B!a$13 zrLceGseJREjTOt(A$8dRR)X`Sh5Q$CkbDv(UIpT4H>yNq5f|Of#8qEdP;lsb^#~tN z&1!-D#cW~zB_IqIRD;Q84IDWPqF>wY?`%W^z8=75ipi3|V>OsuJ=d!>a+d~>l9*p6 z%K|Cf#(Z;A{x#-nTh9;U@iUT}9Q zYIE&eeRJH#dH=tkg50VcAl!rQD87iepq#|AC(2lHD<WtmivFnZ-$Eh8=$;5WsG_e!MpT;Dmzx);YJi7~Efx9D5mOOQ*l}046FV8-2 z`#isWfsCUd^5dfpIbwgkk?TGE^)!w~r0dKto=iGj(;8*z!02>{H^`!=8=E`3{?3)F zjCARkT)DdK6T6>99uMNkV3bqW9Fr_%D=AL`kCXPHo2(>`YY?xu;}Mg__+k)o+ zpSSw09x>bSw9(q^6Vo6ma}#esXp2@U)5shrjAu#IDJoz%IRbw(_#jA;{$U*WD^167 z_vDl9c6hffJFdv0RmX|6N<)7$XFt{(QNP~HH))iGq2oB&UZZ7aR)EFR?i8dTS9%-0Sz{IU+1c6H z&h4}1_q^ObSGPTQw)!-}x83IM74eqho9i-o1M%Rw+3SNHLAJz_nxvWIQ_u0OQ4;f* zACDLvI+xwc2edDLjT}_FZwyVa#}E~X1F#k&=GvOEI+}k>kgZ*|1x``0ox8wFzk@E* z+w{<7hAsz>F}u!ci%NpS$;3DMrsMP{69U5pWYvKhN&;d|P179vj;;!+2-iUatpriZ z-N<8cf5oSXlcEWO!mk{ztg-5@ttD$~%<^LBkYpZ@6R7sr)`C4|$Hr(6<;x6cvkE0v z8fS^eY#e{h&I|*5wlb2bH%X94C_R*!HaDrehrHPySbf^=$BBUq_Z;0hk=}|wnFQcb zjE;e=esGW_ZZBl^YLgx?ZqMp5>#**Wrg|M{14|t~MaMY+ch5{ZaGLD{D`e3DAN={C zZT5_V&R~7LYqq_L0(`1j-0>({$?dsdrGygc83cc2K-;=o+h{#i3S({Vwst;4JlXYG zKlj(>mE9&hNAqKgbd=f9l73M_OS)`m31w*UE1?CutcKP>828*T?-dy#C|t#p(8{8~ zi+$D(^>8CEX@dQSoqpFDQ9{7^M=*1B z!svgBv0h@*%rt3#eSNC9!x`1z!;$Qvj8t2#o$VPXU>3VIiW4s4&Q`0pjqb9&+q}Ar zyJ%jI1x!qH${l81@)G89_Grk4EQ0P(^i;~izV(zhndB3FMe2cBy^QlXdOS!uPW$pL zpBBwMV2*_iFAfPE!_?-1_Xvod+Jwh(*mHjqLS^YbKZZ#;CL`DPL6ePM477&CCe6_; zGNmr(NotSNksH|?o6{-nNWw7hhd^0X2T>SAIJKuV0-}fPi3s{+y@`5=5hnm!phA*JFb?^jTt)yYKz(?#KUl^24`Ip84U)yB~i7 zt3&Xm&>joNv>}3tEn{WLvO zos_c8j1=Ri*|E*7zy}ezbv^xB;4=uVPcg%^Wn)ROln^78y~?e}fcj+8XhDb<&lZm# zkB?aLh?_!ZnM|MP8)V={e#k&l3?g2$6#dNjSg4>$^*H_UKr>~ z626YQLy{n;Fcq+WXrOCCK#1HSGtI705h`j!JlRr0Ac<2ra4?s8u8(06C(KsMlTXdv z9Uq>?NW~`K%)QcgxjUO2#)VC60#>0A*GH+{A*DqC1`Zh?#6GAoXS(Kll7@ena+-ID z*Gmjs75S7Mu@9jPMaBRgNRY8{b!SI_j3;{EWga)u4sl7>G$NYNm_owG*;)QDA+W_G zB$ZlEJ=KRW=Hy~phZ!SnF8V_tQ~?E`k-(#sK%xg6Ij$9?lS#FS@<4`|U=Jfdn@n1l z@wIiC+YBPc+8STQG)moV-&=nsQlW!hZEecLW<`)Clr7!Ot1W3k0lLK#W=mCu*v_Pv zjn456e~=DAJx{j2WL`c%J(6Si)3|Y?;rpbW^RSXi8F<4n*g64BCu3LvEnLU~?w5Jn zU0*jrg-x=~@^HweN{3^B6n~kqPo>4cz1_+-O4D^dNsG5SaRk0w~`C-8}|e{WZvE0J}>60H?6&je64?al{9Px!$U` z^y@8=|5<`ZMKjgt7>UWcL7l|c0EVWsG=?)w1yRP?oR(?54{yNhuiw2ZIp)@rIWr38<)%#1LtSf;J>Cg;@lMhX{Naf&h=m@|*DyC9(v# zskTZV5pN|>6)Hezoek^Qt)xMy;(Dt|YT8@SRlu~O+trJ^AqcWbc9Xdws+-Wz?EwNN zr~mX{XK#PMUr++14?Zo{-eg&tkH-f=R3Uoy>K{)2_>+?tfBYbHZ^j`*s%b&??%V%x z_qqRAK$E6kJYxQS81ociWoC2)rY62zJ`mcEDxkhdECAObDMI!xMqG^8xqDDx_3M5W z<08C;>@dZjOUQSPK^oyWL#qaP?)J&Q|McGX-?@MH$~zCDz7+i6)n9u3^p&^f5&tT-djMIoeVE}{=?G^(`t9lMI}g_pI=X@N zxz@y$61s=tVvnSm=Rqhcmqe8KK`Qv?i5sPX!0|+`J~R)RrF8o1e?9r&188~ni#um8 zy+eP@b@F7iqW%zEE=hM13rqLHRr;a@_}ryq!Mx(#x5YN0T=0ac!W;T(53&Fzzng3r zAF@I;@YoOU{p|}U&;IP*t8XIDiqVk^VZoK*ZCnY_eF*fB022(sWsDBp<2Zw2T=mlx z=*<$k60uugFoJK5H250`vs+EdV-9OOW{H2_3uCri@2Z%chh<%pe&B|&ZtZ}h2c3QN z^4*XB9+FUy2Ix|d=>32{29Eq~Swe{y#wlxH>_@#chOrOpe|xp1c*#aSqH#rlRGe*w znpkMnwj=5TF4&ZqrBun1wQ4f6A(OCv*{bj!$xBI{5;5x7oKm3?bFImFF)3~oOhg^YtXN!;(x?%?EnSOvvJTDt_O)6m7!k|H# zAA|rMR5Dk4cVlnByr=iYDkwb0Qz5V;g!gYk3OT@G29S^vvN(`hDCE-aA~dqtU6jJ~ z4a^ItheBYbniE*P#EpX_&PLF95!(RbmgZUjzJ*L*qv60mPSH(~BMLb$%4EG+{zKF>s0tt7~$@Pos;!%7GU!o`1_Y4{nI4mMGR zu%4*C)-iQ?h*diinTyc?Bx)1lg_lo%`>Zyr<^%Qo2!^T+5~Vb?1EL?J&2mtzaUi{?uZ_b&Q3*hnT%kQ83{HHoR23>0sJ|H@-5}OB(Yr`#Ym>D`1KdII( zK*p-k3@}#Z=i_44=zo727ArQEM#Y6}=YZlFnoEa@&k++BOf3tEOG(c`#IsbFmi6Sl zXU=|hrz+@Q{MEH{LHU{|`X#AAsh1TmpX< zW|$UA3!L z?ZbW6-D_Qaa6j(0kVl%uUf9dG16C6?B!OFs@*(`1c#7kds=F>n}{U5mwQ9$2>84>%F=uYDffA?CeGwX@SAt=_`>-d zzUKF%E(`53V1Z?vv?%ro=^+){o3F5_%*=s4X|`EtK^!vh!0iOS{|j2oT?9r?~c znc(vwLeoFsgPA^F7*$F)PQG@c7UsU(+}i`jD{EOxe1&Lico zRB48Cm>9laxsSg@$8tI6DMn7Hb+<`GcHqY{`ri8#^VE;T2wW^sF_2ZIQ>-waWRWb+ za9ii7LyxjZ?jVoVsPFzhi{uo1u;ee-0Ngakilfn4DLKE^Q)}zd=e3C^VNl~c@w>mU zTqV{^J^UEeMIHWJ=} z4L7!4XTUJ1Lj$!UYrI*TgVsyaTp%NHO`+(!Tz8Rn1m@bov9c~ZRasxcktr0n(d+5& zL!X}B?|ZgTkqq}%AVg4se2i(Qtn>(m85`~zUcddqrq-3lMr0DYCR;6L0bYNWS^sU) z8Rv7CW452F8HH67VC3`1NLzAwc;SQBm(l8Xqx-a>94Iq3_qv0Z=BJZZLR>goN-$VE zT-bstHD2HYx!a1G`f_QWG5_t{k>BvT_!d1kr-|uN+ZGX7mV-1ZIi*wLr6x@g5mVdB zq^8j_-((xKP{~;+8`jGr2Qcw%v8d?TT@e50fNBg3JCI>r(g*Aai?e&}81AV9tQ%o^ z)^G2_9#4-v$RP?2-EFRZ^c66-+Lz9GGEZI8-sf&yWO6XQx27dVhMYR?5pL+fMtFvA zHt5?PSX(+EIo%|~6{-UlA~S?O8sBT@?FvBu5LNl#4>rIqYq+jM0tW1>W}aG*=_i+2 zmFyUvLCmN*M~%6i?-#C@G6ZH*>?iO>ZY_YtwT%4&eR*Mp($--iTc&BGJ0X5HRZch7 zSoZ}IQ1`$CWgyN1ZZAI+{f1C>b+KY}vl4B}o~OQ2KZj@y{k_Ua;M*X5{D}J2i$%vu z{I7lMly~YHy5MPd4Q-R^YBW9CIsGy!8`>mT4eg;Pq8;1(+)rCBW1|_{%k`VTC^Hy; z&Z9pa-XUs1g`0P~-a1sj=3r{;@aJyr9XeJ$!!W-&|8JA6&ko;Pf*S~Ez4SUn4e z_eQiI|J$7pWA@n-Yo-Up#BEcT+~&9&LVw1(E@_n5Q(iCfM#z?CakiIJYn3ky@%>)h zpT^10pRUKge20{N`A<|kMFoNzLB(&?b$C=vBCSs2lUsliyKKlW9+xHkmmN!7GDwr; zZJ>G(K%Ux16yXxFF+U<>UthQ*=6Qwo`&b2K0r}2{rMV-5lM-6T1IHUM9RY&*8`E=! zHqyrs@id9kE;1)pNcHN{Z=ZYq4y-rC!7akUN=s~g^@u@C1VpTvt(o42Ev6plB_ncM zU<$03eE@(58mT^l8?VWGa3TcV>0(h}oI5V$EmMQ^3#tc5ftG$2HF@Ai{Hh_CO16HR z%smi)HlmEVc2-1b0-)Rl zb{}l4YzZVdlCMfY0Y4L0P(g%hBqkUptp_x5)4;Drt_IYuyN^?ELV-Bn{|@9B?hOm* zASr$3a&VRE3cX*!bCfa({Y!9QFf<$!BF+Q1{pR(WX+$I%;41xK6$EP$z!N1QU5{Ec zM1}t5@yfiJi#6&^GePNC>~#`8$XbL$uL12coT3QP*uIldR(rS&Lf)!< z_s2{%yzaHm&jt~fBTW*N~~YzMz9hpJ@xEdDD5 z%*5-TJ6om`Q4J@o&#Hhn6N0*`874Up{XtUL2mHW)&a#I|<`Z-n>R}7G1BZDUIFi8;NvdzJ_v!i;s@{+grHD>i zB?YcRz)%8OQ|3F^1Xt`B*H+Pe$@uxlVFN%iT)sO{mA-5k=i%UWE5woFF&~@%BCM|hN4sGsL{W(D1qBDa z_2C_8rF9|pY=r6*glW!F3+fAfQsPlC+DD=GkUSqgt<3`x;VI~%nWU0#idmylv*tco zVqEr18cd!Jp_DdzFPnEuCsN8sL$WZA8&?`W1mmortXDD6QvwYA8c#NfW5zirukdjS z*A>?ks_TZX_kX$#4bkF1S49RmghqRkvm zHh^VP1?M}T-Bj%d3K3_JbK!(H17Z`=^*)PP{HFvZs;h`S{Fe7hP`U$L3Os?*cd5%5 z8+|MgfIh|K7X}zpC^M~0lRj+Jo~p=~gB=UL^xn}#7rYbH$=zEIdG>WS-C`>@E1)fOcj7q3y4)x2NEwq5$f z$);RkYG{!iKGd`fqs`OuiHk4oJ(Ns3DL$q9KWay=4Zu8Fq^MK60)e?76@SxBY!Y|| zDLYV;&;p~!Xq586aEl{0BM|y+eVV;ZDL)(eUd|{TW6huuwQQ4&rzq?N&X_~}Vwmpw zL?Fw~)+ua#Ykp+IkAZ^nB9XyI@-25C|4>W)PY#6TNM7Sa`$_cP6C;cS?L#udR>Lv= zi*}YS58xZ9Ds2>cLDQs+C0nLM3rEK%(r0^q9@qc_do@cI2u`Vwyi>_!lqKuqbr}rA z*LZL`4S8XE^?)21YlOX4E#?|&`l|OT0V?>FrkkU>%BZTE8JpWecX@_>&H-#ZmU$ZG z_xu?&I)Sg4?Gk}dxb3K%xT>d_b$mSSpY0TSCIFLDxxTi;=s0)t(}QQ%Xuz#6%9 z&T#F&Dh!@2C(l;3yj?6;B;c>Uo7!J;-qQ@)IM3DczwWUFFdkEjo#0lv+FSt=!zVf% zqa|aZ(OV$uloG7^L4Dkt682RA&p2|lpcN=M?opBcxn7rCR6^t$M!Pnj>ygR@Lrah6Ihx;Zp{m5 zw&WJ;-tl+Y{Ak;<&QJyp3mrLu>baF*ZDrWvY^tcSM3*_nY6w$lv&glq_f8)nTlhn5 z|0WVS?U=E;*dJJ15anmFr?!){KAA_6ECACIdci7;y(!;a+A6R~LmYgGZ(?w;VJ4?-aX9YrJ3lkhToA@7$xFIR#!Kt?L!uk)@nf?AGqM%`Xm(KfylGPd!h} zL0r|sEZM?kl;c14A=?%`&UJiDe93u8+m<;+yiIZqja}9{yy$G^BCFk)27p8Xk1kW% z>pfETkFKOJ1Gf9;V@5k6J@^wE6*(9vrKCfww+$|BTNwi4eBFaLv%W2wlUblM{2l9h zGrgKS?qlz62C@nJ0VC&E=-@Xe=&WEAg)Y=X8d@zO1EgWiO!9 zo1d-qbBHH210yWsG*aG;Yuv+7l}}_L{mWUM5M=21YES>6kRk>KeSRm zgTPU+H#k4s{v|jX>&?t9%KHml)HLy=yVfxlReZl5;p_^A7Duqt-B*sMsIOfBg3zjr z8gOE_Z@?Li9#Rw`8=z$AElu)MD8*lv`x&CN-?BLDefe7@(~*gFT|c=+R0eej0~-e) z6{x(---KhJTrtj%8K4Y_N+1|Lzd;Q=y6yqjXp~bRyaHuza}Rv#WgM}wXn~p%s;IPa zht5yGVldBGhvE-wUQwjaNblq4sff3J_DN?$IfNMLtp(b!28 z?ZO8$2JMQ*Dohb04X~7M-*j6bg>@IXvKRUr>$q(dWfa0Kt{id8MrmG`9Lg7RDueM_z&1dn9Db+$l#j zw1MhfY{4An?2BA+U;YxZ<_|}11aJ=G-)65Qhtj zGlZpDzC=|`P~ofM$$K+PS9hfZzqrRB?qdl8%PmP+P9mU?$2uXi(zrSYl!|nV1qunx zk{lfV8BFEz0D2!~7j1%6gl_T5p|MEfHYa;2XCr24-p{wT}h-Ev8fU>U<@l=fg2tA4~8MH=*P>#`3zJdHd%B90emE%yJt;<2=(ds3w&=@329U>->WiqIX~Q2uOg-eJ#i$o~c^>Sk#q+5n zV(Dbm)TU8(y_(zv-DP=STZLm^r@umdmlNh~(AQ4Xq{+yT&hG78gdH{=Ab1vhZNa`4(Hok{&8jAgTI zfksh+V&fa_6ZX}jgoJ+^Jv6->eW(7#d4FtO-yOxcs>fVXA_NzW1shu z3WujPhp%C?N4<6_`%t^i>1Mt>3qXeaIMwvzcZc*sEcS{-{aqvVL9bUCBt{yi&%!e< zKjx`nnysFX2H5R%>UBPstm8%LN+|G=Ct(L%sxFH!^#c(c4P8UP9?VGZUU*Q2jE0^L zZ*6317&>En-C2eY{P{%)g!qecl9S~{-KhG`uP!RciUE6JchER1Jaj8O9l(6cyAJ3C zg}=|`#b-_rxrw9j;1T*w5!*gFUxf{4K7lb+9tXF9g%9|#!(g6%u;MOePa3SiQn2Yh z*S3eN486)CuS91lp>4Y;hTc+*%0cNo3EN8W-1qMBVa6+w+gL&Hje3N~1==7@oC|6Q z*Y`YQ0CEp&_>1b>9lYZD0)U!$QqaZ7lJInRmBGIFrS<%1gRYh1wfyn^*5;wfB#i*0 z;^ZZP?X}f;gTZ=!RE^w0hP)-!B8_R(4&>#&Q8AnTs0Iv^JyC=3j1O}6gBrCXifJ~8>%B5N#u?*;cYcS=N!1Tx-FpN6^^nRt9I=AK!%sCa|$Er5b( zl}ByfZ;(>AJN*t<2cS;BX_O)0*s|jjmvi~hu5(+^G}lD@PIM{RtmIH4pmDQ?EBl^M zaPb)YGnAJvQD=Q6^d1*ozeWTW`&b|Sox{sdAKEPYch7%Nw{uUGo~u>)XZQSz!K(u9 zwqkM0@$7Ljxp(m-PC&Zh-_Kt8 zc~S*)k)^FC#P)_0R!H8AApux?4d{njXU=$1&c8D6hzd>-Culw=TvSu2LggyWar#xc z*BHC*MnwSffN;zt?b?pht{@YGY#sL2GQtYv6>ytuH%Bo%7^$(SLDAV4#b#&OY<=w_s>A?V9U z0sY3E0^*ylMe@d1p3*aHaKAwD7xsFQVF|O$ml~rIKq@y6=p}mpN%C)-f$?PE0$o70 z`vID-;yESgTlv*iv3iPbac>W?@|h~`lortee5q?JYxa!j3TU6%dx4z`T?8YR^jot9z55hWN3o@<9{nT21?oA!I(zviP7UjCU}+En5=6|)EHsS`fD6sYC~sKjwrg6jXBec}*2y zZ2<#^z?@GOr0d`A>Oc`Cg3J%uh6k?>;y8vq~W^H`6c87pM_|o@q`?as!`P{N+8W^`VR*Ay5g`{r1;FUd-0l#Qm;x8iLH>>|2vLgz|H+=!=IQx4- zVm?J>>dy@E(S90X4tjOqRQ&_cp(kufuRBR+ASNr1}x6vc40r5x7x&k+r6YL|&BDR=x)Q^-Q%jl~x}CSm7BXbetmFw|V@8u&OvkarZ8XsoOSbU|NST( z+U=EdR~1y!@l6GE{CeQ}k`5>e6-}3Y6FE10#FUA=DltW4Aj6?e(2tFIkhPtWee)&c z(gW<}iz@H;L7rS<-sIIffAS(5+<`$T*myAY=~>Xn2WOI0nUz=1*tqttBACs07NSIY z5gV5)`Bkq@yDI&b^N5D6-g8xu#-C9{|2MnMZNl?nAQT2D^o1km+Y|@cG;6^T_$3Y* zf=|_rjQX`&uj*Op&9;|(j+Swyz_aQxq`*?R3C!9}M3H@`;L+zSmvop1kCQtnaOKdPy%i6DKG*bg4Ioyh6p@BZT#Ag<&JPHWwi${gojo>y z$Kn8PU~rT)!l_Wy=V+L3Z=)gx5V9)nmzH_I=@1{DR^-}#5y2R1$p9KhR&AE3s6aKl zpvE)HsY>ZZKZk$47`V6I*v>O0i2+pWswbd_i1dS`Uh4GMAy5cxz0F zK&nlFA>(61aH7C&Y#FTR*FxgXewRs5cKiagb#!0@X_G>jfo*~XYFYQAkfCZP3;Y$4 z1yW?+zVsPJj?%F|^JNl1__Px7eYeh$XdPu?K+u7rVix4K#Xz%#0za8DI|Zr<+i;my z#rC0zv<>}%JF%T93}@~FA;{HfCdf?(?OL!gj4txRHQfNmCF(FDCfyswIeg4IgMS5F z9!=N@rDnFI82eALv8a)QhAfQFlZ{8`TT3YAVXzCw(o>yB3XQDep4#l@& zz%eMRM8e7hz^8$guvgsS+r^&L>inbgoSh5UKttH7f3qLbsme!jn2`*a4pyha9UsNQ z#}Q|YfK-O$hSm~HdOSmGfou2yVITv9*Qj0JlpdW{L?i4#0z+p9yj||!JEAX(!wXDN z2u)Ekyho4Gj7U^6zR@4N#Ud9;Mn#PZMN8mYqbGx2o-o#7ibv919aWhhW1 zNVFEN!XfDdlhjUNTYFaXnUgHwzt-;T4)+GR!zIO<-$qOpLSKvBA$BUf>a(&bTq&pB zFp`;)I$TC^QW;w6awB*c1UbMz`R*|V5A1e;UqXstHa871r zIbGeBJnadEq*YtN+-8+CW-oog1fTyo!HWZ+WN^47O5s4U zrA&}LewO}%nLACbZN3V(n=LJj5_#AYeyX{gPN!(q`^`=`6Y9c5?@jQNX#qSY!yty& zw~-jI!tAX(;BqL^y}Cokz;-Q*S#A1<+E~kJz|GbfV$x(*^^z9-sF?b_Q7vc}oHv!{ zbXpZ5OqG$3{pWE>kzO7U)fbvsbXap+W0WyEcCFT^L_lwzz|T%-QGERAXUm<^Z4zq2 zs5!=iC)mc5&Klg5(V&)Bd9}h!rK{7chktoO#m9>=_*?32+X@?aK4+ECyn7$Cm!l&XOT z*;zbwWleGimPPIe3xvlg3(=8--GNLo^f@#hpHeE|%o%jm4c;ck0z{ARmpI%4!1~8g zf^PqJ$IBCd(TB0e?cutA%kKd{@U6YUV9RI!Vzm{s4e)RkrqKNIdCBVtKstJ`)(0-# z$44q5G`g{R2fev`gB>U`&*UivlOqVprx4);+#k$-+&&ouxPR>SpM4!o;R3$?#4!rC z;+~Xu1{KD#%8Gn-&(d8`I+swRCQ@6~3wQC?1p)yy>no#{uNSqP8z2%2Wzrvt#!-U< z2&i?MkD(lU=DRcPNW?fQvD9#psUX#{NANU=6~-#JTkc47&{dSb5I{zXwD8|`=$;J% z8eb-BHVykWKF&CG8}v56A9#bs#qoc!oY&EA6xy;*8u79pl2Vu5d1}e-3@|{R^XyLG9Cu`DShnigdSvfKA=fqD6zh(3Ea`s-%up zz9@HVLE505GLDAD+%=kBTM-u&WKL)Jt?&S33%i#2pZvnkzoE4;S}I8zy=C@+q0&BI zYa7J-AmZ_tu)UofC;EcjbF^L{Yg9>pDRCB6g&L1y_!c1_ zo|G>x;4*6(@nQ^!GgHat_4M$8C!PWR%^g54juyI#H^ptdmJ2nqr_AUbf?K_^;0{sR zn2^!LA^Plt;iLY=T3@+7gWG4QQTp%gCOS@`66wR6b1W}p?X+)B5Bexv4Kv-mTpLqAFk*y9wi>JB z!*&5acy1U%ke34m7h2@GU*E4=L3UiLDO$+?2d<2i%S;z*Z% zcSzf)BHhP3CpFO(WhZ7MHHLP;%TjUN3r0a>GC?BU(oBFKl+#&~-63<&)4xG*@%RZG zYoOp`u)`cY*Ue{2ojBZmCs*kE9mGN02#W@R?5?AyH&KhZ~mPv9V)qO6zb=X?A{dxt*rnZPQr!mgol?MS~p9DP}7%@3~_kH zflf#h5If-gEdhdA5rWzt3lCg>N#Swr;RH~28d7G^e_q6)aR|*X9!kfu&L34& zA1Qg+#jM;8Wh=|?`>O+xSzFa+dv}#d)GZJa*q%N+E}s!-uH>6fTzRgRLCpM)5|bOLOE)msdTRzq_5 z5g%E??suZA2NhP7bxtp>kjgf_8HZ z&E{ceBabFW_c?R<+QRjKEcj*+?Cd>x_WlZeK>;3 z5jiqm74Lq!bx7N#o{Zp6AyWoui?4HXRVGsO3_Yp-<`t>pSVi-1zkx*u+Ts;;T^Y_R z>MHHvT;>`kq1k^v--y0l9t8^5Es?0WpL47%1GL*>NeJ$vl@B;;X! zTV{^BjOI1?L9}AbE;j1B%dL+oITlqV^i>86JfKpBrs@De&{5?=;Gufh#GC-{pLe}% z!6i(0{c*tj!Oy09k5||o?{{i_8Qb0YT!7>>{4oMx!Nkow(53)*4={({8S|Rb?VK0s3MA@8_#4mf^(jbxp^$BWCqh3)3`z z;X*USCAP}5gGLndwShhIabwZt^~&YL;HUpa{9O5eb6?v4(eL zPR#pEJ0KlY@KU|=4BL=FLE zdm8dvs2u3&KvU)OeMasBCM&?pztWH!?wd~0lz(}Oqo~$hD5BONmLQGHXSR5_`%tu5 z4Mx{N3mKf%YqBJKtj^Rh+I?O1o5A`+hsocBi^bXi4#>KOC=ErRX^&CVChYV-=7;e! zL_~1zWlG^|ZC{wW`uzhZE!nAB`pf{$sX?YzY?SK5_4_PoB_1Pp_!}Lgiq}pJ{Lqll z(3*_P7iJ|6s1AJ?bBAx`XV7gi8m?P9ISI3jLBi}k`Wcf9XR41IW4eq2q+22Z@2j&3 zeH1-nm|;?A{Yve&d!9Vu807DPUulb=*7#aXoCGT`2 zVn@s1z8ERsiAG!kbC%~*WoesDN{4Z7x-@&!(hVcq_WPLY)eV~E^Q9^*eK*NlRNGJg zZZUDaRFp2fvh1nStJTmlE&KlGtTM$os9H1NOZ^|znjE1^WHIyG7{T4olRrl!Nsje( zdXcr;S!ob9C6)1Y%YiV*6DoizM%y5i_8jF(dIUY}%5f{%V78ptfMSDmL-3KAoAM$> zPm)`j0au&>dwpNq0TdyOEr&`X`TjmPq%esRvD*#GUe1PRO;|Mezb$R6@iw4c+BIvN z-RI=1xXaQEr0rvIRHj-qo?Cr1RTNuYT^k)g9F^0$+LN^#1RReV z?mk5)1z;?#HVB;eKIkTlfQecnSt!C&;JOL=PB3r>%Ig1uww+)|bfAlJv2IHqCsxg5m{GFN{`-+|Fi6!>lCLk);rX#Fm=TmZ+4z+_`S{`;JP+H}B@0 zE5>299DLG@Z^dbJ8>nBL*GGZD-(*XKULld8Cn;CO20^K_w zcb2-2efE9|o?>{N;O5sBDvfzc!I1K&D2KcppVEc|Fj$iEnshda0=R6tF~ia|&jvIl zgit`_gh*PR>fwN0Y%y~|s{$YO(v)xy5auB2ehezh&RQ%W{RCtP>K^gwQUFiTq3+WZ6&Uo^lmwq!e%vy4O zn3s1ngNLq%OY2MS?<{QlX;9uC*{^13I*ki-JWYY9l9cI}uEpNJ7oT37GN&D&$fRJ| zme5f|OxYjUC@gHS*Di3nBGpQ}$GtJD?^l(qeb>N?gkE`wTg!mY2oy#Bdb-bb6`fQ* z`YcevCS(9MS@iYFGYmZwj&@8^zz7T4V^qN`^q8tkV5fyDFnw7G?^Iuh1F8CcMr1kr z`Yh%F!RZL?f?!e!LWT#p?5V40g{RP~T0tW_pOJZAG77806UIK*72s4ARS|}5%|DSp zDbLFkBSx~A`M^}uVpCsCMw)rTSYD8l7M-GI;lzOX&eYQ6rRCblL-j{Qp?x{2(aqth zqJP7^N>eW;?qG2qG2;}22&(Q+<)zaJqEf>Sv2xl}`pfx+ssne|Cf+?7Hv&wG3du>y z>fbo2Y0?5J=*OJqC(`iocrBAbe`oJKYptH9Er76{2k`xAksMtPM)rdhZc|s0 z4fNfD#lw3+suCe=bmOQKtOjW0a)nBWQ#?Kml=wAhX)(#)EOjF-J+q|DMnQrlC9dC*k~`jik5e-lY4;Jf1%@4^6@ zrXq!eM$cvL%|_}->lijhIh*#LK`|-i$ieVQtow8|l&RuwN|jxdMi z3!qjy_djD7$z*i{2eTA;ekoQ7xj_J4_Esy&5JeZ$xtyt3z+P7L>W~WVWlAReWlokE zL}$&YlPu}bi=T8ai`j1Y_1WUZ^gdIgckkS$@^_!##*s?zuf)b3aIv;^8jdFmSx+C6YXH z=Xh&pjS2pr9Ev_!{2bmkiy0Hs_!|dR*nP4BA!DHak)0m4&++&0Z*4ie0=YBIA)7I7 zf|umr#=L)q>dUbYG1~BBa;E{CW?fm_94*}&^{g(QY1_Ig9`v{QB@UPoN~%A|?)p=N zl!F+a>f2;xeNWl-*S@Sx(|xMZ^}7!z2&msuJ4H%ezqr3ihqUB5!mOdAGyLxcpADzgqxnRc9P~rETZG zAY)>{4xz@S#A60tp;K7{jE}h8cYe%xP1g0h5d#UnPYV;=6KDZN1680gt1=;cv$L(M zkuTGeBn(yh;$ft5<}I4a&_557UCZi|fr+6sha@YIqm3u6e_|=)6q`q#8yDo|$a9=e z$E~aIrf0FOTL>>oq4NL((q$o4E=nxPExT!|9tNH4Y2sj7X<-pYh5cC6;Ss9Z;fd;5 zUKf%B%-QVRRzXg^cW;Dy`iq&cAR*K9d`x6QD7mIEQy@TFd{9GB4-Gx-PnV8uyI(c> zoal;|iR0KF5(PNbwng4}&}au?#X%6OcsuW z*ql&E>?o5_DQ?sW5_6I{-j_sQ#*C29&@>6N#vF7vIkmCl)s$G7Ue1rr)f${`TJAZr~$% zQgor{5Np9T~eL>1Q`Eo5!;9PZhp1W|8%#r|?5V$)Hd zGuWYfusVU26E1F8z%Et`iq!IgkR+g7deby2mF0YeWOxlug7SDx34BN$sQL9e1YyS^ zoP16HFBbso%^OOcF2YwVetzk2UND$f@CS~r?0QXL-RGNCqs=V8-m0w)&z))1Vdj{1 z^$v|;mG5`L868C#tob`rG4?Dnj*78#oQhoxR^IPfK99C-o#8o2n8eK+tWRN|!1v`P62wzEr3x zJFf;L>F*28HNkokq|6b?v&2lSX^tp-NhIvQZzsQ3C00fAzD&-c>uLwIlR{I*eCL=H zHv7GwM^809cLI_yGyDCYVo59hz>G~QcW>M9b{6+rpv>u|P$2MLSJ>Ka(!S9Qq= z{HCd;d>FaG3i2Dvkp(uc2&S)J_momTi`R!$+>D(a6EBOrG75&F?ouL)_}Iq#RD%iK z8!2an_QUda64*3O#*C~i^6E|v&%Yk)zzzX0fx)_BB|9qHWWTq8Na=TJ!mFof?@SD@ z{8C~F2_0^7Nu{VSV=$vxDFl#vXRs_&nb)}dQ& zdw$6heDSJ`(x6vvI=@;h{*~d3Aald@;CTK$C`)P23f~Mv!D9{Gq26>w|0jJN29FM~ zgFrx*OULU)6V$|quBRW9@f&PMw6<%yu^ipp^~$Z6fFiAZn4ryZK!s}+Z12LXeFUnz z)jlD~{#Vko^rO4z=f@8tDRhMIo$kj{>UHHU0^yaTB&?6kA^a-*)(oPkkE{p8NZz>S8QeX$0pJ2 z`^;(qAGC4g zfq13?u{!oJrG9^J+_LejxnMOsaNe!UX8vII%DxgO6(Acb#FYMM(&ps{EiNAM1lKXWG?c^=_Lx`7sp?}NDLriW=0%@YB}=iDIXLv9ho{u!x4Q9> zb=_NTd@inUHoaSIMf5e)-}br2y}((us$esuRC>4b%p(Zp;?&D2xoH zjc+jCK@((+=>lvI;M_!aPrCj3mTW+kVRCDnxiR?szVF6hYP?L%G7Sa?`s`$sL?pUJ zg-glGklj)>VR){r;JUWih)S#64yT*p@Dpw#%f zW4KR~{t-9aem`ct9J8vW!A*oX%JDf{euhraaA^-GLCTl=KhcoE6c^J|afA{ZyR2MF zYFt%z$BI07cbi1exU@;ny#8{)!Nh~lZ||~y%toxJ#gvDz{!vTRmGV{W4^*@N9tLxI z9M~OvX(g|A@I>NGT3IyiR_nK3zb&i6!Y>lnm`3|SxF4e}p>vZG+ z#HNjncKty9pOk027cTK{Bv1?2=yrZOVqNC{RE|FJC)|H3+lDxe`adPTOuUc#pQ8Uu zoUQqvnv^6-$NW#38j{F~{im8rNZ3dJry?$_N&j84_6uwB3`6*TFKRoanQ-<0ux-Z~ z@e|~D#4IKz<{T`>9RH)X>H0h3j%EG)2!yens(RM!XQz@+8DvaNkW&J(Db`A@gGQ-s z$l~)d7)e#`4c}n=^RxbVs+2F{F$}Eyn%U0!W0~)50C*_B;?BRmZ5=1Lgp<2`_Y~d5 zO>ATC_F}VXRkufq;4fPt(O`V8U*njwTd#GEPvXE&W<8zV5W5}CN9XRVV8T&W#ZTrk zlQl-;(h$q;w)lmHRW1Ukoh=tvyEuI4WVHaz$M@SgHPLRzE_PC&Q+H0+=AAIb0k8x*y<0{C%s{_+?u)^ zPG#5Fb9#MKo-8MX5OOx{=0IP230O7HtTQoB4BS};i0r!Y(m4$v$>M`R)f_Xa&9;mA zkQ6ZvsIR!5_#B$Ro^)A{HI~7bqkG{IJ!f@gL23dW$2|?;h#iljqA9=r^8Wy3K$^ev zji_Dz%2uftyRKmv)>f^dTbhH#;92WZ z58uw$&!6FMA-mv&4;bwmr_IwlbRd4Z z28!KQ`YPz7kAlPwSc4IDWkp%;jz-AVdA0#Yk+Pkbz|x?FCevBB&}8~%1Qw&VjpYUv z1pA|rtqfGd7>q^)x^u{~0X393L>;TDI<$?vD1;zP0~NI7cwuCE7Ju`*OEwLR5LM`; zc4b6T8_VX(O0crRG|Pt%g4l}u0IKbk6=#d-zS7;o@mUJAS%wlV^y9!{I`*bpiUKxU z=t<2t36O{@ER?Bwq*8MWdDCOi`ncKk0|goG8F}MGdQ0|bFx&n7gIY9i!gtXfE@1qTaW6nrct!w02fk+iEi| z2*9Q}jT8>7eWhuvg~R*uHP};&?BM<1z(<2@FVy4M9T{Ty~Q_<5nH?-){}tMwb!-#@_|c%@amb^z$VuwN#Z3 zR#(T8JM^f*7WSm~Wu#g+tuqfvE2b8JnM!NO88sF#?!`1Rn0Cqvm>IE4F6%Q7s6f%R zkhxv$nl&0Fet*1VV$R_d2*s!p`M%pR144&p6a}F^?8H&zdyhL|q%$ph8B^cWhp6hu zBnMEPe+B1DW8oxDe0{8DUM9Y!8JR~6_4`sbBlhCdQJ&E z_{n<@UVkqovQ}S|$^~%atIRcV2w~3|q!bVCzHoT&_mk)Ta`>0~DcuE$KF&;0*z$b52BQmcsUuBZ7||EOn*sCe|dXy>)q)a&re^ynUZRtz-Vas z17>f#eiVX1T#J>~5KLAlkQ&U`g^s&kA;ZaVpRlk~GLA?Cqt`_DTO^Dv3tSEyz($h; z@etbyIp0xWdZEKrK=`m|3%cJ`Fw!VRD!@H7fdLRzZL96^xUDWEgbO@~J?Z3ZW^(h_ zlYjg7rmuha;PpE&G(UjE7J*YTO+06xq-F)SO+!!thXaes|B7!r-Tgw>(_i12zV^ZV zuCq^$>AFoDN%zn(^eUp&1;`Vjo&{jZOE@q+eQiDSY7v9W{+#GWs>aqiT7z7`qld&U zGHAPwbsd8_;(@EI@9(lyb7cDb#}9t`@_*#!Zy)^XcK|9AMhE7O8so!Cdm#=G#^T-knBp;B(n#!JQz1m ze@UySbxOD;*SK{OjM{@6kbPs9g}GK&@x9nX&52k)6K^4WPj0<*`1=nC&BgcZ zW5*lBQT8D*Wlw%^{w-L(X%(;HV3br-+IYELBXdi8R7Jhfj8g^M)wMEIhuX z*SUj}4U&;D%^z?(#x)Z8n13uF)VJo2TMY4^9s7|WgQ15vKZHA-2%aRDVsX1N|ioE|aj`hPZ`)4Kb(Mgww% zEdL}Ri5={w2e^d$?>rR>F)ggZM5=RDC>tO+EDEzC#gj^G^1^SAKK=CI?w>SGL;AW< z4_Zp@k){cv00;%L0c-IimV<>nS;)d9cciansEE*Qmpze!zvH0?V4n;SPF{X(`r*x7 zQkjiE2Z7T!gMBd{27jUH1rd(vaU95{2=T>s-03?J6z6!DzI^N89*3i)d@u*~0Y;y^ z{hK`MGi^JM!TvVTS0pwI^Od@rW1etI^ev7w}oI{I_7yOuYX8wVM9DI$UE8C7DaXG z@Qwj>6`G3=@+-%52`>vlx^!^!5M7bl-vQnKKA=k^z7U>E^*0aB6{-C{L~|un@fCqN zpn5Va2Olg3(`lehVRznXSRhq{}w)N z$jO$|&!3szxu0x{E!W3XRvfJ6IPDT8{7E5g_bsOTa$ z$DF-jeQ7?B6y+!s77FE1S|Ez2VVTFZ36_cEjZc?6 zfu(>Uk$)BVM4{+sD3#1d< zJ9stZ(J3WByP&emHbq2}S0|s$jhjz&o&r-*+!nb++Nu($TGV5nlIO*QVPSaI01QC< z4u3(vYBB=OP(E%KPD_+osqo-&9(YkMm>OW{CBC9EUpy!C5N||9?kFqLYGmAA1bj4) z*OFT_BYrqaJH?MY1$~7azV-gm`@a)gct^M2IePzt$)~SQZoR$*Q$a|-hrffllT7q` zX5jJT6J@TE>Eb|};*i+TvGoYllvl`32Y*Ly&KS8gL?^t|j}jY<@UT~L;JQ*Sp;A_I z^BKN4B?Fx@Oe3Bc;`HV%0ICq{#JL8!Tg_ov^&3gHAMVKZEC_svj0h47mW!sNY8Gyh z=A{B;g|w^Or1AIY-Dd@7hyVTWFjYT#>&5A-A533*|BFwaC8b^yeP4pawXnkRXn$1x z%wE$>a5-Wq-a1Ky#tm@T`Ig24dG)wln$Nip z0U%9rXpXC_UeVXAIJCN2o+*~}6@QiW#R@~^0V-RgJx-9P0@lsU5RdLTxT0EMC&H<8 zIc$mf0Ys}WK6x`AuVzN5qG30a1Ipa6vSn>~n6NBv2**Mv+Ecy*AFV=n5O%V>XgoBH z&Pkkh`TV|z54R(6b`jkd_5#~kL`p^~=H z_&N#TyBu^>)SSw*$!{gDpDZo#G=OHGPG^q|(|O}h79y&)4+zNon{B@kgJg0}O<(q{ zLTad(y*b0|%^W=a@@8-5oqs1!5^64ofN5C7Y}5&7A!CI5hs;3V-G1VGfWd;0DdJ*= z=K6s8wQhh%U!)?N z_B#Ass}ugNHoGZ0xONRDLd+l+8E_lnUYE8TGt!J&=^4|u(bd?E0YH~bxD~OcTG@A)y-!qL?H8*} zlmB>b^8Uxw{UWh!@_o~tw-lc?C~sM(6}fGbYp#-)GtHCA?jV$QPx$;>b8HwQz^3p! zj?IcYAT!skmwzL^#xok#8VI!TS&RI~{XG_3Fu})EaVPAFu0n*P!m#na)x(>IxUs8l zr3>TfdE5Mn+I)V`?m`rnzvaPbTuo5r5;zKKEx&nCSPMU9SzBJAcrvldISbRNPQ1NRUXiBxEy=NjwcewKz4<;uQBwrzozzGN9*QB>(^rL}*>?uC62&kq{k zR8Q}q9Dj3wi!>7+mO?RxsAec^l@L|Nu=IwUY1EtMx1y%Gx~hT*>tvNB;gF4`42L@` z;`vHkYkG8_&rb8|m$RzuDi=|HI9gGG*eWrU)(=A(J7Vi3x*JYbGZzONRt6X z(g8^+4OQbe(ZDfiU=UJ_&;X1TkYQ`B4PeXQCVycXsbv^OFdE@yEBuMUJG&4)ZG7J% zL=TeXQv|8{P(06GKn1uy8hL<~5*X(c0+ZNk22ZtmX7EU))KwLHBV+_zUs3?!YaqMF zfUAFl@$m_skiXjGO|O)jUh%!C2Y|a#ZfTcW@+H~|!M(JZY_yNWL|v~;;yZpEgjE{- z3V&0M2cTg_%dp&Xo56I&F0|x#BsqR5Nm(vVNku!TXeM7yD?hN+RWNIQ=~Yq!1tv6y ziS>F$x?0^hzgees%qJn3boj00vt|gEJrp+reVF?Mt+35E_TaZEb!gAhA=+f7ItVx& zz!29{z42a~A zq+o`HC-zbBX;Wg$t>+`sQeWtsfTr^#?&u=6bO-px=n^~l- zM2^J0@x~_jc6w7(0qoXt+UnNwGE9o(HCO}G2$^w=*Mpk>aQgH=E{R*gSIofxqBYaM zUVYpsUd7keIvsX)%{;3;6@q~c{t8e_0|XQR000O8W^;;Ez#$kH7dZd`3F-gec&Le!h>2JfzZnUPXrvB4N)?DCzMAY_n1 zMj(*H=KJ$=woD0wm#VINJ7%ULEK->#&%P<8`e$L`$4L-P3V$B&7m{cm_xz;r=YJKJ z{?pX!js7eai+>a+QQz;5qy9YflVUH5{ezdJf2i;MuNzw7AUYw5oNtzq}v6%b+adB~evAORHyMBex z(Ru0O7xsOqlmC43p8T*F&nIax_76}+FUgTnRrK`Y_tK)5B*9?vj(&R4cp6QBSW>); zf1>coi&-tb?H3+Mh0QRit87W-bhYwcsSL2@8& z20Q2>eZBe-T9Ur0ykY4bb6ym>a|Hd59tgGBF6FCoiOlp&tin?fI5P zMke|<$QnX5Z>|w0G5mac4!r?#^36=yUg8rAQ5xyrbUkH}59xXYSJk||b=6(>f7*RO zDAYl4>*A1qo`Vj`pJkGQPHc>HwT9o3zhSqxAK{$!A% zJ<_PIhhBf-O?p17R%@tX-LVBJ3n4%AFzif%9(Yv&ZKOvQ{Grtd4seiwfCLBK#Tc)+ z{aY{g!B5@L#}t6G=rY~J4^gpRf11X~;?q1$qe(qT5F$df=m6#Uq?ZPC+Xs{M(18#d zeHO`i%WEEiKY?Wv2915hoTT7yy>_}L)hvTPi3}m*p%jTvWQW0E7{XtA(3{7=eR>c_ zOGFVZ4_L)dQOqKR-YedRk%yj<#=d_5#+V|O-Y^LJup1G2iOTLkNS_2af9MUp$-w6+ zfRGzaG`|WP6i?q0E8;;&i@1OUiGaOm>i64Wlp+J&xt?O)3m7k6I;Thp5_FG)H1;M* zfXvX21zsrfq8Kcgl8ii7WU#w{G@C?mD(=Orji?_yuk|V^SwVy$s$}X-GKzhX7Uc|s z-UyY6u5#;-BgzBMpv#nGe_BU#98A4|e~<*PxCo&`VF{Y)hrVdUC@u|BVrda10W;_K zgR~3`-kX_T7$yDz>K>^dKmsI$^C_myKeL_R`~^EEK#*?H^PW6n_}jNd4tGKHf1tf7 z#*~@^xRrZvo<;{)142I~5*(A$(Cg_aNWgUP6HT>65Jw%Hi?du8f45<}fyjpl9g)3h6cMY}Hv)|aek!i|*8f(a6i z1{N9tB=V)M2~|k^f1E?;3OtL*PPQKe~CsR1t-`G6QyYhyeU?Z zbm()2O~6uA?YdaNj|^&uB8VoB3z+<|LXqBu&WA^#Fcr31|X>9}!`(fuGBE6MG0yEGcdY9SH3WBS<)H zsPn9adCkG=t?z~6;@@IOk3QE|N&#jL1~aiG_%Bt+0)_E- zOu~RVy+kJ$?C^k)W30^~b5Bv!4N3RafV>%6ooMODiu*F^_?p-n=+>fO(#!{9e)E}b zmYuqvZz3PSZVFA)u2rtPw{FG#f$gN@maR_xu6twM-MP2dnb0Uoff}^}wQ>}t+?&~J zaRq3dfALyiuaVXWRFhEqr8_nVy3}8B8pO(uK;KHZF!W+8W%Ole>mGf|uyEIaEkhnk z-k{N%2UTc469Eh+;5Ks8_JI@y1_qL8(TR`b(2OuWbS2cf0XdA*#f;g#^OLlD4|=pA zD|fB_IGA+vk1t(%AneKmVOJgq=@&Ikv4j}Af87VyzOmF*x7N66-rl)Rx6yPub+=pU zc5|5l6Gef-Hz$6QiJutplT7L)FLjca8XiasXl#=ud(ksKQ;i{QgDT*$sxYcruC-sY z;NQM$S-!$+Yrkcwg-zpu?U<>R?czAF%X+HvYFj*RTGp+#uPkeB??*PEtKht)Hm(&! ze+!@$Yrm~0m^wq$>Dt(Dz_db?1Y%j2G_KL=C0(n$^$~_mLg3KV-M=zucq>g`(f(_i zsM56~GgnrPd2upcTD1L+t|YwW$`$#d?G2%T)CiN4hsXq)*!0sPf5!@WCa`mxoh@`Cbdy*oZQ+_F$VN&X+c|39 z%4S=GE5!DiZkG0IHaS!!x@jMpIjeVsV^w5tdN|Ei1~xBE6sgxg&k!x_3%c>X=PB;7 zFgJAl0bDDsC)BcULfifFYleG3Fe@hmshY}ZK5?7i%ds08s!B*uk7&&HB#5I;@Hv-KJFw7Ft zq16^BytWCpLNovj_Y4?{rXI=C935q$-V+iS7&ucU@FyBS^46MRwv}_hYEGVdj?*hb z))I?&7MiVMq{+j(!cN9N_%1psfA~_x;4?zw%F-6RHLHz`-7t4vrZmnh96x@=KfednPasrXllHcvT|@?p|zJNAxv_=gJ{Fxs_^*g!bfTs@$@mi4N> zSP@1n#mh#<|BW?)Alo8(Q{zgv61_ksjC8?2ONF+vR(vNlL&BF6U)h>T{;OnJ(Z%$K zfspPlE9Cl0lPob%ku}D;f59Npn3aiW#SzHcj`K_fq6_{RZQNBb1~IMHD2*ZKG{Z4K z7@hr*qo%?Sdl!O~?3|ucs(0R;&7h6pBUCVYyH%3FoF}6UGVo?3Hm5Nm+9y zl;y#!=x+pgmcV@4Z@%jf+mgHb$V6-cokV+uLP-$_6<`e!ob}&#z&L|htC8j6k5Q<|D z8wDa3I(f?wcT=H{63*3wNn74bnP3{&-!mCndt$eUtxp>`A0Y@gBo_210CeFLbNP2> zZ{!sy1DNefe+)5oj2@D_9>$z=B~5^^n1#va4!7I6oVj$TPL78M+&I8blq#jH&@@W{)+_9ST3ZbWA%7MMzUj>@`dHommT9 zq0_Uhe1e-W#mFU!Gmf+uH)C@nW{{^@4d4fBkdO%WWDkZrYVV7yOP=ghRqw zexsSO)=a{EUg~aaVRmZRO5}BQ#@>6E3A6r0m>D}xUYZ`pU2fONKp)xe>DeaPMv4F)Y-6%IvY>=$Vox9S>%mDgcs%@>m+C&Tt{vJ$s1 zYleMw^<4{ore&@gIMvH!4&1MIIlE<+0$OrWf6-_6hfMW|xIe#_@WqFWxr+H=WW;W9 z;!=)0$@o^tkwUWi><($6`|PQS{h62j9>dJY zF#j+ypdZV8WFlATKN0#7OWV0ot1-p#_LSB(#ZoEv)RAw3#!6@04pOwt*e83&ZqA4I ze?&T1=)7cn@`>5n&dNDg`YTi84mUfUmX&2~5A(y0Yycd9k_mKD);~ztio^iR74@ooP8s8~?UuM>r&`3;T^~ zM!Q2&??HZ2Qu=f&TJ!RUwq9!eyZj9NpU*6#F>9A&Z7}$X~aSQ3I4uD=U-@@zrEEdZMHgxfB(x` zo!@Pmh)nbUpxJ>kJkZU~8RxK=E8|~lc9v!GDs}zkW@lX{G^b=^NvCg`9S9ipGQ+lp zxLMZJvS|rx{Ic&sh*@&pjW1lzQDtS!(iK#%vhKChDP;43rB~RBwDf!;W5!A{;%kbc zF_^LjI8<=xu;9o@`(Gq%f0%QO#Li@? zWy70{e>YRXk6#nkMdv3Q)`0pWZjDm*kI;O$ZJvpq5L7t64`C zf_r7S*=2?zEbs?u`PYe9MY|IRibdnOHGFu8O$<$0e zWFKr?5&8$ZVw}pcK2EQ4e<)yKZd+AcZdj*z(zoxCUgt=^nkgiG`Bl>EEz(d%piCUv zNV{ZPM^4@Z>r49a$(-6Ob*LY%wZg;p@3ig0&J@nqH?PRaG)0cw*UJpEvKIV)e9X3? z$0%i;R$03$Z(g*R3#CIIh>X141@J>3pZ}8*<2s=V_}$72{|vb7eLgadV(?R}&zXK&C0CVG?Mwm=d7PU_ZoRUu z@O5;@S~)1x(#e~k$U>Fa4Gzm$geg83Xz9s8gClrkqbY>1M+{*Z;}$ksY_ht1op)ht zo$>cQ(8jQ1K+l4&f63PyI%s^V1BqFhA9LIE!YGcf7@)qvNQJY@Ti&LZdF7o|!BWb6 z<7Be_Lh0^HVJ;B4E0}F|LoPPZ?o~;|mn!eA9V-H-$N*io}#x{LF zNB;rDvBp*S4J&vzs^pEjYP@e$(x{yH0Qwg1+hdMiaieRkfB9pOe4Z{c`}1m62}X?m z)y)d>n!WM0oGaLbf9YlpFyeN5Sbg6EK8^yEZOkk#uvu4#L|8$FPgqHDBX5QTi=UFO ztU^98oR#_D1xbYbO{P|a2-UVGwl%DM)h3Yekj!Zn?@p?Dn|x=RSlTCAmZ(uQdsNF+ z{bQyG&6KJBf8TlPr1mov`i?n!Tb9dN;jVnzj*tvz?Eh<;erTazb~WUZSF-OJ;H==<=E#TvKqpvcXGl4vLkC!LImh5*)sJH#se`HJ6@c z<&xS`jxp`biP(8osNW9G+~JWkPQ~&%cgDD0S#6P%e>KR*yi%t!{aM}SN?nnUwoaIX z(+%8-Lj{LFOO^9X{plfXXktdYHlICy=-NJ}yXuA-&^6Z1*RB7xwB6XEvFC0~k#|<} z9&*Mt?{UjWvU6Ls5A!otG!a#v=+NUD8A9H1DoQEi09MZ9!CtA6}zG%`&W1Y zPi$l7f7P)L8|aIrhJ3;%>F%0bp~OAu;q|uLPdTz??ryhlYKPhB_foWvU7dv7jSuMZ ze$QF;+$Bq#NTL0z%ioKKf5qipad{4tE3;q8m%n3qRz+szd%TaLgI1biRVLjK(s=bO z3`GQF#;&r&C!f27tULa~l-A8s%1b3)YLH{ye`(EZMVpt4whllh+)1^i$Hm6vo@O3| zH|7)ZJiRjy!lWm7OGU@TB0t0n9V-j~9 zq-b>x(n@Z6BS@tVySX}hA>O3st#nq06JHQuFyy3$%n%pSFl3_r*~YsL+(T@9x}QU zJ{SZ$A(VV0Oe-O~%PZ%FS(5;G6Ns;dBYXTHpa1t%bMinc9N4j=!^~hx5tHiEXVl;z zb^1A?r`a-%ImoF;MbEw91X`?+S^{Pbe^ZL`#hV|9iGflR`86Q9!^Z?tNs#y>TX3fIto7GG(DzI#jFXZeEx=RO#cDu zOuoXbW*nDnImVZ~u%x?3l58a(4%0#1tT|a%HY`}h~fv$8maG|KwFop6W_ z%5;7uu}dX%^8We>GFmIv2@Mj_e;*){mNw6>=bRg+cyNFj1qGR~z&pPdl~np#(PzWf z5o_sQON;+IEx9_f9oNzKL0d|o(7DF=;&-`cwAIs8|ruD z0a8wnKX?)woVxF%YCKAYu%G7W6dg#7h$wj!m#1MB;XNMjG|&A6e;4HNAzE1@eYA>3 z>3d_0+9S8l-AkRH;%huS9~-V78z9(`L)^`Myk$9Otvk2mxbJ>yiSry<7M^4QKZj(rs1eT}UnawXV;#QWe}eGy84~F#(elhm1L^&4 z3!98JJjx%MIc>Daw{OwMEzZam&kT(mJhn*2^Az!(h4GmuaSGTI7@>JON6+ewk!~HO z+Dqd3GoI|Hen2&-tMVivBgE9P`O_rh6?QN#oMssr9y-1-ELY#q$VK6P;P->%=#lQD zH9$8M^`q<`f14{*pqyuvV!lAX)rkWmHL5;EKgMZl#}-a!=-IxItDcY~K?hZGKgPI* zmJf^D{87zL;=?GNFg-&?6`kebs=;txQ*^#LPO?FZ6kVa=r3lz4$^8=wQU0h4K{GOb zQbEi|aEzhEJat+@EJPs23E~VxoEkbI6c<(=f0~DRe`;uC_8?Cz^6wFL#dslybjVl6 z$_hW|eVUf=ePrtSdq{-C_kp9shmIXI6nk*tEKlqhKKgf&ewPEy4=7H-#DUZ(SrPe+5rX}g8(kRd zp?&I8MBB|dnCN-!wFjHA-ISjmz zlH8;QC##dyl~Uc4>C3#LClb2&sa*bishZ`qajEnm1FAG;4y4Yvra*O;GY6Jam}LW~ z$(AttLP>NmSfFE%xhMY=4CNdlT$m6s#3UI#B zSPBdId}HR|gSoj%V}5x$SE=QLnZ?q;eFORb3SoRT$w0Nvg!?Gtc}}X-Qr)qZ!I=G!rJ|98c|vry>KNLYI~39InRmvmS)NGDjACB_wjd zHmfVMh%L-v=Df6I8y1krTQgF>1nA{@f086v5aR$K_!XVdNDe-n-%B}_hR-5tpIVN7 zq+Q1AOQ)@-fT?fLVa4(SuX(vt{W>%pPbc+aqRT{SjdmCTab-`^0PK^k@TlY`@k160ld`of2hj=X9%j*VeDRSFUX^b?eb-tN2SUF8V9Wel$sxy zFad=Pp&UD@^b}AvTUrQtDZ@wwbB#oj-b|_Ll`w&t$CFd4mc0=hetctLK2`p=~hLk8R#DG#>eWk(3=2XsMXS8OO%@Flsr2D8Rn5-rF*Uauq zEhX7di3pE)OHwlwqAS)nrd)z~&;}(5MctSE>=U?h?DzmKVuEf{V0d4Qa4Cil=?DUe zossk6Wc#>;c2VQcFpG~ce~Sye;xY;`F{w%aiuHJD&73#?Vz8zr488+#iccUB<EbvML8z@MWiN+wSVi<`z zpjnt#A4i3GQ&B5{QuMK5I^$Ky^iWNXbE$fVy~<#kIe?=MCn^UHe@rnxVwx>4mWW2w z7ugy3KFDj$^fXyIVWqQ@goVV7Q`V$3QSn&rY|zMtOTkPfAT1%<2)lE89<)p$>i{-t zS>}uaj3$_MaWjDMF|%YVZ{PbSrM0v3&5AS0_oh6!z+!^B4bPj}@5)JxINnMb8y+H+ z-Fdg0xUrXBHzVxYf9a;-?wQXW$Iz}^ZXq0Uu-}EpP3|qYtgIc3evviGcK88TJwO>O!Q6Zae3a* zM0JX0iJ^@eWRgY#-K0_xKR>Fh{PB#^b=JNioiRCRl2AQxe?a|eI;*8hJ@=u_$8AEv z8W=hC)JEARzt&aW&MQ3eL-$9xff=j<%oTr)#8lxaJ6e&+J!^Yep(lJhfo z^gvisnF;*W;FOlB%sOS{F04-)DY++m3W!M;G&8j-f|xnF1&~?PY^F1aJXpw5;#9z{ z(|8vq)-jEDe_>K4BA)EYh=krywvyGQv|I{4VmI>nrZa&``i)3*&16q=DpL<;p_IA> z6h<;|q?__L1HqF${e6A^4e%K?YD^F=hC)fgGn4U2!l^Z2o|L)5sbHi`MVvHTgJAA( z;}?)Ay1=hcqO*xZ`MM|bi5I+-{0e5uNG%Q(#;=suf0PsACL9;t=%nM&nVoc8Ls*H& z0po-@by-e8Y|01fP#To#lt!m{d#DdM>xe)M9vrvHJW8=`7HEtQbcqp#$-#N+XCK~r z^Fs&kKwp=L-E_}RCmYvZ+PePN*7N_``qvGotM2;Y9MTT^ z!LEvSe~Xwi&pTK*fBSLk)ekn`esS~lD-QO4Vt&TRXipM(e%YT`hjj%IB7ZBio2?e4 zI`pYQdR@9;ioCfPAtl%xtkfJ+2Rb+FbQdhtNxmI6f3~jtzIEgJ=9{10dh=7NQrY{(I(9So z+hUF@5=vxF|6NS3&L-|o@b5p}eB+ZHDbwvcq--kFuc!mMfGFdg0{|op7qnKy;%f*1 z!N9$S5@XvHtG;;dseAe60w_lVOL|l8_Q-ZC!-uaF5Cbz_YG8;6aOA}=ZoP1|b>&aD zf8P2Fh{2Q^#!_jnQZ2FZU3V-Ky%T}Rs-wlROcTE+fhxi9t-zkX1cYb6yS~ILc1gZJ z0bmaGWhVJ03W7}fuIP`m0Wq&ya3-Kk+4C(f;)@uFq^+B8Y=89{(IMWgAkaE*X2>A- zqHksZU^=~$6xy$8z*@QP`F#!P^%&emf3AaRpm#YG)(zLe0ZnJ*YaR;P!P>un1$?Yn z#QRs8w!`5-2>rl(LRkkcu@52vO%WyX9RA4Vlr`<$(k1pWFd4Q3Pp@HcI?dv11kCwy z4PWckSGNB82}_G@B@IlK>e6z<#A3bAg4)z(XHhnj*_=bHJ1`kvi(xg&c*jD63!jQAF;`8jJfIkfPQIImMmo`U*kco8#SXrxw2wH;!8dVXofE@$<9HUU7}US z#*Oz=nN;iQ=UX>^-TLIKZ*IQ4`NkI;UwyrC?U${8{*h;J>&819*Ph*c=l$)E-?P+8 zWY!FACOpsG%%jVl-OOo>yVQ1mf8%C^=DLgdw!Nf?N43}D&Ukmj9OdJ+Wr?P{8zyZ2 z>VI0-ui6|i9KUu2Fvv2J8>}O9c$C_^jlZo*!=8@WsKYG zHZ=>qc_ZRlf6{htJ#6Y)@BJ~x zt+(G3wx?dbjk=vvZ$s{|YFxAtm)-_Q_UHv%l0z@5JN4(yx2k>b+<8G&DyIyA}7_@ZxvDfvz2Pg9$tN z>ybXXX2rMVu1iY0fAiK2R4!@Jq6E*Ez!UO`6y6z%u`fA3-Q-oNNZ1{{7UFK`f2 ztHUdAZom7X*;^p4p=5#Q74T9XkkW-btY=jbe>1PDRS-eZi4V{q54$(!#Yy88-4>*M zXHt~+-ulkmgcd;oMZUz=nKnFoDIQ2hfaIgc}I(YAWmfM$O99ifL>?`Z~BY!);|fET56~l z%nIdoYRTVebfRwOk(nV2aU-)M7j_s~60*G>nXZXi%s3MrP;`V>z}N>Q<6eBk1wFE& z5hCI6e~k^eNvv27G9tpPdYGIWs5HVI9B#=o3hXjAdcuZ3Yz9cscwK@VdUf1{J&hO@ zQH+g=um|AU@0fT8XGAKXqR6Jqs-%F5q6)IGCS6!qismSIB9y}z7!6mC$DVeW$jGE~ zbj8-|FW>sZd(OPG!>y6i*=tL18(r^2 z-vJkr#YnfOm}Q#P)*rVpR&zQ_HJYE{vsDv@U79%jwr&lKEw$q)$dgvvn}{(pbOaN_ zKXK6MStl|@aUR10K}{WPZ<5pjv9@QC?3KjXM?M|()RAaW9Eduw01f*-vbsg%?DKH9 ze+QlqgY656FU_ySklx;9nD<3y;(CIG{=eSM#7ZicV}fx z9!JJFhDp@AOcjPkh8DQhF=I12aiKey#=RT6?Vh?`EU77F^JBQdCysFglsK4FhT9db zcBg_ud75Nbu4F5y7>xtR=wYMVMsmVFe@L`poLvllqJEI0e1#Ju&avD%HcqOFJD&}@ zt(_gOI0)-N>f+f3Mn~|eXdFViFvcmQ+nP@XtfSJHKFs}o7e|(H1EXo)XB-^HFA&N7 zT~CaCfVkUfs7PzwJ+X<4L{*q&h8>eVyfVj6FPXNFOkDhJP%0|>hETxHCG zu5mqA_oiM$>P4Ikv&Vj`3I{N2J9b;m>;E{fH3oYJcIq~rR{L`P4*L`T89r@)4gxL>tyci%iL)v)4k|*A@BN_@^jb6w7tCe zyY6qv#Z(vAZ9GhUL4JoEOe`_4ubo>FD&m|=^t-Z1_v6cr%7QmruPu6$J-J+-|Br=v zj7pvC88l$mxtqD5aV%IW)f?zsoUI4JSzK%xuB_83xULt)C{>X{U`eDbe}bIKn>LB1 zr3(J%P={@gstb6}X#=Zzu|feQXKKqNT4v+3;yT}Ig0`$y1v9+jq0@lXAd+E9 z6QvS>0b&G)DsCFzDW1SVe+AkZJ#i}a^7+kQz2Ca}XW&1_DQLKmEU6&g>~&rByZQCA zo1bEQs>i`Yq*E;dOz5o-p4i5+Cex4-&z>-qPckZFJvW^J-(dSMy$a&yX>9Jb6I;AcMpoR#gDe!BJ3 zFFHVOPOHPA*FV{O<)i5Eoso}}?aB8%<(|3~Y8dwD_>%VMT4aeNtQ=_JY+YhN*rAW9 zI9{b4jm+$2)UZz)f1P(`ktK%l@@1Yd#LJhqN6~J~{rA78bXojyq)Uw68F(Af;3|~9 zNL7NICCcS@B4tj6$tlZMHi>Nx@;3?0$)`+daYMoUmC{1m5L0F*|P?p?C5B=T=wSY3yX_|FtWo+W`+&~>6RI~rDTRtatE2Ad)Y%~#Kcg<%RV|M zj?{}9MlrS=f7I9fxGr#8;bQLiXsCSt|AkQi=Kd{0`vuojxc2P!yDzi(|K{d%j@{%#0Bju8>$SR5 zE5>Wfe=aIClP8WG?5BLL^+g|cHt&A4{n1~TlI@S*-~Q;6)|aohUVZZjdNLI9j?P+7 z#u=?3Xth+YavnHy0!&CD7g3>TFOnLny-4E6TsvL`{0mg5BV|kc@#CHd>@2wW!TBbQ zgq>4x;7!o(gN-+~Z5tcgwr$)0U}M|H#&$NgZQI^h=l#BOb*@g;OjTdZ-PBZ1clGmo z^kL!{If_{%Ze7vZL_m)fOfz2=T;X`c*WC4P0f~~XL3FA@%cPM6vY8L&;>;t9hw;kl zwCxDVT0tsNaaSC;rD&ARe_)$dI}{<-qfvXhI_LZ9Sirue3nqb)G)Go_c=i#C2(`(O zx74iJ-(Z&Kl7`rKK7`Ks8`XN4`EIqLP!Ze7G#uk-d7UbynQNyY)jtH{)E*CIlC~Q# zKunBDd|9C~($icmxEXat$qzYn=7wLD<={|dfK8O?7*>qD{v{oK*u&Kpjs>qE!%6p4 zN`D=T#^XvBb}?^(R70vY?ewwuD#l5H^IEF83zs)bOvfm;uW1KX*_5v}U5!l3pZA+B zhelM7>(=`3*z9|*N-~;WKOf@G-V44IK+nVZSF#9l621S0We(Qfh5@2^b9Zm{9Qxmq zTfa99eDZU3r6bE(PavAnxEKEY`1lvHL{*0Ufhu-IRkhAigo&A)rz(Ud59>O{h8P$P z2y)7U^Qc~#S_M-yI66$^WDnQsfIOXJhw!GLqTeMTnKyKpmNNvM zqkbA*xv}Sez8h}7&;dFTYQ!&IX?6Z{Y4m%2yW+uc-}5SfqoRXc6bMNj3NM7ucxR?D z136jI@RV3zCeeB=GaViS%rEa^(P>;Qa*|tous+Y$CC;E7S{bAzB){=_(a`S!3;g64 zrhe0x&M&Ddpm1U6<%PW?X+(LK;VZ%l;X3BE5JbtE*No7E18G9?qWGU5g37k<`%QJ$ zjQ!U!ZJ5}Vg9eFd#c0^NGrDY{lyZ>es5L)^J_a(JlY6X<+p`4V&Jw-Z%eBCee&Qk; zhd}>ZzFJXgM|D%C1hTs;YAmVfxc)w4LBxwRG8vYtd-WhKC45$ertpR@g8Jb0ZR_>=lPO+;6_l(fW(M)LP(cWBK9=0ipydnZNi2$E!g|_S&5>lxz`OC zUHN`U9p;DZ42)pNm+Bgy$Ln7W-{t)cillT{T=_v-k$NB6qy5h#pS^EzzplT=k!|&X zxvF$53w5m1(A6|lueo~c!{0|YcNM1;^s4?Sr-tS?xqk}*d9_NzvuTQA1Z@-!44$&L zV&NYPzdsK+1U3iPJ}@g0yD`+X9*kI$cX_H@U=Lf&(NafS0>kpE)^X*C69Ei zN~VsX_9KKLtWE}JABcb>=jaYG0_PsrFLqX6_%1GjLO`vBG3&9V$KU2)eMcwn0~LI;=fmw{NW;GC zy{Gl-mSA^q1l7RT{ox9;)&Ke7OgyCslvuHf!vRiUh+hMvNRZz5B@#= z2g>WNO`#Mf$iD0L{>ebVQqRxs;*UX-ep|iMXBsXif8(zf0+Xb*r|$O@v4g`CboiVA zVdBQ@wFy|Py6zf`#L)#zuYLw2$gMwMuYJM^2NPb7Q@)n;Uj>yFZBrVERuMT`ULzyb zK=SYVEpB+KBLEFmB&5(W}+$0%*APbH!$F!oES=$<0 zzKpD0G;a;L9rWVrMAbZ@>)FwC5SKCL0=d^MsKWP8t~1M1L|;km>qiLm80GDJozH>q zrSAy*n)a>a7tsxEpPGN@9b8zSKDQ#Y3~n7Le=!By;M@1yd)<6(3SJ92;6)E4ou<8~ zv25eGqOYY#$n;5v&*V}OcA+?f$8C2aoCYCfmx!yEwhq~5YPseG{LqQr;QheD4t8q1E~g4H5ke9s{W1z+=%$se=1iH7ck~+5Y$Cu;k^phq!(m%*ObYf z0C9iWu=qZWFW)a$XDEO?R2gUkvUrX`=)V<4GYFUG58c#y=AUQWmkMt=o$~($< z#$ok$-}^fY!AFlkZk&_*@U=l^cCl26J?-HrQkFyoJabTB#JFk$(`>nd8A3|jDN-+L zK}kz52L2h`hh>fs;M?b8T|ypjy4olg3i z{Xf9BC8>PdmHq6oYdPmH|EUWZnlPDP}D;HFTIT$pQ0D} zf1?iuib~M`jVhQZ41WA?^pl;!`~RMc_(kD}3j7b#t%K@bpaBB}ru zK+?ao9^pI-4^S|o@*?BT1A)Y7-zYz?r?r#ERz^02kJ%`M^}_%UiOH_70Ww&L;sd&x zT-kN}1)P$xUdz^qUy=hC&Gt8&PuMqjr1(4(Iwz}I#?SM!=>BLp*|6i2%u=Y`so|?0 z5LVZXp7ieNLRbeD;ZlBdom+aC8wVb6y_G*%zNR6F#$PU=|P^_1TwSPXt{)av`ZX-@F z!;oLdrP^|x!POVc(4s3<%oAopfZ+?;n3S0WTQN*o^%f{T_U8S&5!wSB-5&iuY8H|U zs&$wZ(MK<0fpfY>X~B&+foh4D8j0`on-N@cAbb8Uk0sNILQ_lYQ_Hivd+XEm`u@l3 zgWI|rtoQFbC7jOej;vyZ$>Y9W#5QE^-2Dz2zXiO3MBzUh1g@5z{%!R}z>o2LKUx^y zG+YrJE&lab7)V;Pj`{){g2z1{6Vm2YOEf$j(0{5XI21Tei!~nk;7s`QAQC*J3zx&$ zdJg-py*;Ik^?^HCSt|64#B9W8%idse7@6Uqm3gvkHi|8ky8Y44u}ZYFYDCnh9L-XC z+5spy)r@sud{^1)I#;pP0D5!_u^VqQw%y49b_^@&{{D$%|nl z5>;d>f_KEvI2sjZVq?z?P~lOgzagO)^enm#+l~_B#(l@9-E5=8fT|aV7o={6t@k<| zX9UdNSaBF)gQYHZ3tnnAl8v%VNSp1D5zY@qe5`jicAcvx6A=U5FY?<=@D~s8Y~}af zzM|LDyY7?`35!LZx(nx7F>k#@oMz=;OB8N~(n1#zH3}5NVk7J*MS`F!`mF_|QibeTaR*JUVyy5{|Qj5%W@{NZ`#f~CICVtdW6rCl4B zh3vVG?e1kQ@q^y>L)~n1dG#E;Ke_IuhR%nR?f4E$O{FRsvNk8vb>gYZs^c^zKc|f` z@0E%&S^Fo!;rvrFypPqsBK412KPD@C|G@r7e4pies9B}+0#Y+&xlU)sYl}0*#_~k_ z@=%~$Kz_U?3V6x0GzOO329hT={2eC_7L|chbSW{km%Y_nI&yWCL^x& zLXzUOL6aas0m4WT0uR}KZG}OTeE%#S@IguxA{0R*lkdgNPLJ1HhDw5IXdamfQbLOl z#}KQHp;*{*pEC`G76@N+TE|u;m@2AI%7-lyKAl_Fw7|u^8-{G%goYd}2WShiGWjHZ=mGE#YqAi6z$i+3Vq?c8dYZB*q-kbRM_N;TaV=^u&TN7!FBk0 z@`kH$9eujw-*s0XoLx8mvX)5I!xslO$EFwVfhaQRCOzeNH&zY|z4|ZUVQ;wuE{!G} z3yC1Sfc9)#lJX+T1sDpuv2?N-k}mjpYR;C>)tPp>jZba;yTl+Wd|(k68v^DCh8fjE z0r_k9?^M&JS(LKb{i(qD$KG=&r8Eey4)ES1vpcd;XGd15P~5f5pkOeZtG++d{#dex zLgMFCIHmi}@lzRKj;vWCAkxzTC;>Oqg8Tj0fDxNmk0v-SiX>4NcBn|)d9x#hPZ`P5 z+VJ&sHnL;X4whJbywizoQD^XRL!*X3Yh*iG6#;Eq5mCZGwF*P8Y+oMqOMDm;UPZ2) z=WJuH8)eeu+)6TD+mc*Jct7Q*X#U1bH%n_-t79I<;wBZ5>(3ha{0}g?|62dyh4~Z4 zfUw%te{er}ZVJ+4FQPGRPB888r1K(NQ|SyOC*!yzWVoy9tFz=5bfepMV#Vbt|L_-B zT_0%?qK=t7Sfl?E(Hn%ta2p81*t3xzrdJ#&9qXi3hUpY0-sw4x0A7hP#{`uj1EFZ( zh)LGw`)Q+3&-X}C8b8+vBK8!;awjrDtf)@AZ&tQ{3usCR{d*!)C9O5Ze8h7XQNRbSI1iWkNt5LGh zg;QrcOgBz&q=QjhCs52~^ukuBi~qzt?V&rw{}kdCu;Mk&y)MEVBmSs$Ka!q$kYqhD zqF1s(Vjl_kL^tF?A8@wpBZ8}w5KHQ70TtDx%;JR$^Q|!Bf|R^VqmDyV|C8n;Z^NtS+C!(dA*(^hFDPvP;{qex^oDtXdWLEqQY!o$0)v~m>^#Ix z$2IZ*OOR_v(qI_;lb+`I-RdiGmUCuj0qr-j@hgk?-*{;?HxSk2l0fR>@VjGogL{wz zq_epwc1_y=)4c_7JlsQHMSuL8gX&1!Xe^R9;P2u&dOIm>!8oYMy*vRjOlPnz##QtH z5WlZAF2?1hL!p}@w?%*l>1^@!=VhxztH0MtR9aN=G8**Ru&D79UOCB7RCii>NO_BT z?)gg&@ZIsfANIWS=7_ywAy1)(F$o$aVs*OE&K;}ob2NR0c2` zemKT9^{drDnA-0@VAjj_uME|U8!|UN$5pT$2}VC?I);pV)*ScAl&V(}h0RsM^3jy` zF^N39?}r^fRKj*5lj8;dzUNr`uk+KVv=IkC!26s27BR)^$0cQZ$#^62j^Q??uBO& z-~2qE`Y-$VNS68U7kz?Q-uXJgR6UOX6`?4c;VAl1{h7%!c356?L{Hu#4~en7n_8A& z#im*=i-)E4&P~cWj$@z`yd}!RwQNc4110It=3UMgN`EKIR7kq2C~~3<Viy7^ zL-aN7eD<^!xKQGb_^fI(r!f-wlzkexps&y=vl(vkfIWL^J& zh~o~i(|{094v{pmC5b&~bq}(LYeG|+U#Kxzy%KMJo*3|dy*fyfr7^biPK-y@8t0T4 zYj#9R{zeA_$?FTQx-E3d%9Clf zfs>9gc#MNZnP8vuvk)A5bF*tZ#=fiq>E~ZaYMkyv%&AoN}fZhmRHpS6` zn?ASRj2zM)vPPO>6B#B$T*<>#=|>b4ueo^`ASeUkRjxR( zIqi$s_Vn>d!=M5JE{Y7JFK7`UY*$DNnwct48E)skrP9u)84dyxgw}#k+vW9fHU&na z^Ao&r0=6O!rHSlOOX#j2u*wbo$VZmYO?p-;iTdgMv3}vvom^I@(h^6$d+{u0c1+VwxZz?!8GIo5jE>2b_v zEOT^fKR`)+_(&wM%J+!UsA_2O`$v7Z2a-*F;nxn*vPteUWk53v&^w;ojMF`y<3|0r zVpgY*@B8-Sjz$3K2;jtE>-Z_IG$%sDxy$eJ$ zMf96~k2e3!@fH@cDzxTMC1HO8>G+!Ilcl)6Q$+Sve;W3#fjt4=-KVqb+$DGo^~b9V zhL(3PDk@(6LA#_bz>lA;N5{26cXJaKWrz_YLP$yptkvng&Kq`I z21?H$3I@&^Y=s0;z7xIrr>d>0Q~W7Uv=d0^$qZ#PA?+oY3e2kC(<}R*sk%Q_}0U3;h~WQ9B%;svWd_bnJTo7^FoQG;yA41Kz7D1nXU2 z%;S!73~_%vEiA^hhZ%W8BZN*)=DMKg6AeE269!vxN}BvdTU5FNWmBD;BJoJ+Wjh%q zFnAI~I&b>E6OrXUA5J_>0{K2dgS8AX&P*Ps|3%=Q%N_Ie=3lMLY8n@1qkc4@@AN5y z$(JOHUwd5(+>=S``NKQ6>Otj6 z52$uAJb&jpOP^p31eXqF=QMd+1PZ3s*)U?kdyiuRO4eFN=u5PB^GQFYoG@_l_)AKl zz+L>@L|s*R$8&e&j)H$lB5~Cf0bwQnm8Ry1c`PEd^feC#iYxPD ze(cBr=0}C^$@;<3W*^g5im#JRL{45{9CqUs!qFZ?#;0jfLRq?fX;J-6g8^ZUgzS=v z#0$Sk=_Xwby)C#*^Rc^Qu=9Bi>e=4U_g^PxtUgc)G5nJWIJkZ{0IMn2tUL0B|~kkoxWbHEi;7Uw`@9%{BvTvp;wpo27~DvPZiq6p@D{>moYm-8Zb2*ksA zvA!yjt!C;9`=M&6J3zjQcB{HC3ewvRM6*T)mMZ(>a!8 zHp#v9&=TYqZOD-dN*2~4Zi3aT7c)QUGy;n~HXTc!r^)PHt#PVF#{+&ow+qhQ1+~nY8 z7ZJ!n?Ayz+g~!+J_8lDI*6YVaXV2^XMXf%c_u27Qs{=Sed8oeR%O7J&2Ht68Uv-nu z|K1?T(mB4JjZ~MM{6W3g+znCeiNG$S#*7cC%JwPazu|2W@a)0}I_F_P`JM14YJC-> zZGY2grFAdD^Sb_LkqPd#>z9Kh+(i5X?X|Zzb=~Vzp%-JF$-S$>KqK|Lp%nNW7X;_O zoLv)9ajI023TQ_mkTqCa_-T}yh|!o<)m0P^&wXkT{JNlq*9jaFXc~Mbav@xKl!Vkk za8xv3B-lPx6`4g5rwT|w7y&IHUr5uim53dJ)D%g{1fF`W&P+uTvYs+NgSbNQ05qNi zd2DVLEeC8X27;b>Zx3{PxFpF&ry?n|DS{Tflpel<9@7jpEit1Y!m2{dxdFwMRs(Wa zouO`K7q>lM#7nxq1^f0&x4AxZS@-R295#MxvAegMf$3Z%*w+?NLOcdtW;z}Y6(273 z)*A9|kAMLAe>&@`bQ(G&ePSRWq(*zmrz_;g=N zhag!;GaGWcJNy+IB?^v?uR}0+Kj8!(#%QG4&P-x+!ZFmew6we|)V;nuPPio-nIb&C zc&#r@r4r{Q8eWK~cW4A=nXaBbm7vztX*MARp6mM|}-(YJ+ zMPctd65lc%S*HBuyK8ZghEZi=1maT}c@8@7+-po53lwWLy(dhbW0{;<@f=|=R{`0S zP!?f3l@7S)4oSQ`d_3QJhyVTm+1!nlp$e%cL;E(p^cIfCL>=;q`&5ui`%Hxu1+E8_ zEYqult*}fhoQ?GJ_}=f>u#T*-X1Y8v{-Q7`Fa&w#GFoyy7D>iB>IYMUiW+z~bi$gv zoxS#^j9qt(dX@t25*nD>?C=cPGS3|Y;5M#&cMLky^m5{y8XBK_kCuS5M3OSb@+O@p z^nu|pS7tv$e;(rf&NaALw%(i9%jBq0Hk8$+1ZhkHgpI(X*dUcI%uf~;KGso8;;gRl z%0^B7Y(eC4pHDhY?LDXRwBpef2o=BZ4{p=~DzY18|KZE3$Z+38$slhoa>^gzd#(%^z|onKYb9}WLH=L7xRXx`w$yeCEzypJ7(HLCJd+-ySZQ+Lw(5VsSare z_vJQM1Grol9}nlT7w8bf5J)FxL_9@y&ct1jax~QMSUi)O!yNUCzx)P&p9H2y_0-`R zF>CN$XdiOQ|5Fs5lRJZ`f~$(hy+>*fhcvAwn_|6{KHqB|W6d%OV#+K9HRGa$RZo_} z9`DFC6&j3eX9VtfBN+Q-Ke7vrD@Ml}oH@pK97oslrbY*So?+|^_x*GK2c z#vp6?g_;d@c^=!}(pfZ8TP?y8_%iSC-2dq#iTG`YLT#wyOt+;XykFfpGmHLfPy;J- zko=;Em5AH$jn^<%n4>+-P1w?=pU`g19l3EfIVUlVXbC6?wLEP^5wwyPYFM%^LVzapM&UK@--*_&l>CtP)fGRVggLBG z>d!zy#yGY+i$?Bs8@V`oc|z~J;Y^Z=rf?{V9?Y;Arq(v|j_GfG)GwYzauSP1*GQnG zKdOj2bSejlKmK0>?&kps;y+U~Bnc+;Bek}lE{ec1$ZunJ#aJ#mS+=;hWGU$PCW^?c z2pj3vq*_zuU(&~@HsWdy$~P<&ryCR<4q2z&@IAJ!OnqpSN%bZMS{1+Uymi5HmWx*$ zwsg6YKF3U1XicKtJMj-QGC3Ngaka{0s+5J*HU4L%bJJ4De3F{8*B%hD{O6s@Q-sEQ z1jq*bJ?yd6@Px78>dc@1t%0%Ui#*rk>!4kn+x>{ z@hpjh{aPawcZImk!+-Q>pL!3qjXOd{Q?%s$^?1D`W365aA;3ZVXLVYi@Vr_6C? zmBP%TiumW_CgZ(noQf=3uZ??2kX6`5k*sj`jTCM&eIh1{K9k-yWwz4l%yTi8HSjla zO0xnt{<&=_^Y~PrZHqRCi?xBGG4qAzipd8Pw=todGdYuky$E!vEZK^q(sH(#EU@O) z1cm#5m~Ge%_?C6vYAoYbnTE1YN{gXk6RA~hjxJix3NknOGfGyeDi&V zB5C#1$*p!A=AhM8t1~oJ>&GIhGBDE}k41`1HM>{+qdj$bv}t@DevM}T_p)tE(bR7~ zT>&ZeapOeMHc;ta>iX`O09Nol3$7AT4Rpl?G8%QKu{s2<@qVTs@RXY_gu;Q;n5w|k zlxa6~F^Z`vd{U8L3YrtS2;3Rydz^b4@xJ}f>3H-7s{nJ0*7+lvU@=!X3V@95BHw9} z_czJ`_XBmoUm2yLOCU{-VnZQ3#rN(pCA;sg;5y${Wu=>X&Am%Puik2pnOsE` zN}U*|zX0@Z=s&bQ(ih^&)nn#<-1We(iP$4e_?g0QoLDo6$e!TgUga5%VWCP$C(jS_ zR+-r%XNbk}K;FxD<&Bl2yCgrQpy^A3IFa{;A6*-M1UeOSLo1ER5CB3|Xk{O{p(4D* z((SZ!eO#zXVT@5+*pDl?n#VEwf0M-RBFTCea~K5BW|r*9X6WuFW~lS?%RiTT7$$;6 zuo`T&nr_sDd_>Iq8oGlFaA+!>Ot8P$3F*-59ki-%@;_m{HH5lgd1ikG6rwbEm;XuA zg|^yKozy0;6^D8}K>YHJDiDF*fn--)LU@bLkYwOOvCcqOvT7j=3@dNfp!X}Yp^ELR+deYXv zeVbx3=tZm};p=5Z73&A3jl}+~%xPanlu2K-+bz~g(b^b5!x!-VZf?eC@3_Ro9|v9Kr^QyS(xzYsD}y6>*<3;IPyd|!iim~YJD;yRg^l9voc9i^ zBk6);8VZCnR|asei?~P5!J~Fw`K7rI{}TQVw!v13*l4wxo*_OozHE>=1#!J7&QK<% z%U;X;8Md3`nTv4_hH5Ge7m*mAnjIrZR&T_B%z>d7VXXiAx)Doba%;pJ$~5mVS|e$W zw~{fs8|HAUMssV&P)*gb&4`fMA9wXiJR@p)3L#x>9vcA1dr_7vunC;eS*0b(TWvmc zrAt=s(-~8!7)_6TENrTN?W{v)H-1UEjJ%|&JVle22TTNcaxvUfw4AR9Nhb~(0-0TC zVfNLCGV~1@hQL}ABe7hdrC<~GCclgb=B>8zSXe+3hEao5D$za_k$fl)G}m!yZ6cm< zrbm2FlL1XU0^zF$e^_Fr@(L>pVr{PK1R*p+=6ti=8{BBVaRuU#Lkx=$y6z&xlOnu$ zZd6rnbO>>k zM5Nz%o=>7*psSp=U2CPMncxuJg^*#Q{7PJHdVqjtBb7xn;G0?mde3JlO;Fnso#;;# z9`?_#Z1E)aWdMfC*455MlBpF_9>%v>L{|8{{zu163;BUJW%43VK|6A2Po5m(BB#_% zTdJt&VvOrEh1i=K4oJ?2a-U~n-fWGsJ_ExoiNH*v8cLsy26cy3R=6`fXm&xPe%jLL zB*2aCP%*vHuI`Yr>rIh^E+A!ro9v%4{RH8llu5p<}E7l0x7*oc(% zox;eF{n;1YoNo@oSMxDeTr;4P<#veGMB9S`IVSn6Z`&^5+7g1>*j-!ScW~6cDZJD83D6aVVBpI$sOC*vRVMek zmV-xLm2t)sx$Zvm)AVMqw5|iWfG(?fy((x70Oe5%V>vOW<1fK_2Y3?6vgntTPKPM` zzmSIWH{C%N-CnD6OKQH`F@|hus7lw6vD);Gp58>9oycA|83u3-eDQHY%55D+Doz5wl^n%-bZIB3&uf z@$Q+Db^D57*BP`ig;f@+O$dgP4Aot|=Vh)at9kgnRdpLP8VUofQ8AUan}ANT?$g`$ z4BgrEUVr+ZbTopZqbsr2z$H3UDp9()Ugr6{iUHZ&SSZ8Cjd0uuN#q&29O@7lWh|U3 zbggOGi+C*#aTvS4{mVM`&}F^pfU5 zK7u8LQmW$==^}QYk@8CMF2?BCHsxhconKhBGGDK+CiVg9*2@(SgVg z+1W+iw5j>E#ik~h6-9=&@#3_l74MvnLK3k75JsRQK} z36dRYb6i9VK2ZTSpeQ<7R}sNh4^NMsJXV-om+CV)@OZ4mC@W{oY(zzOSg=thKr~q> zAwOF1ua9JQ%OTFYnue|;1vkx2z>BVTV@QbP@`%pKsQ+(s&qoHmu0i0 zukJQr*WbOYdd{htn}+EZJZn9=a5=Ap-|$tize0a+!anep_z*gdOi3yT`O<-Oi97nb zi|C-Df8AgeKd3!gTU0}LPmp~uw0kg?=)S=!y-}!qrz!~!{D0D{sObkh*&Pz~xP%mk z$E_Sy-5{uiMc8(;Al`;rf+xCbXjXrW+JyIPUW1$kq|KZPz$u1)NSI!ZBvwQ;Y zTT1;k(AJ*jS;u>N2&wnJ+t{{B>5pA3|BRNsBRF;t%&2)#wfI}ZGi?5nPSOlhwK5 zw7Ekw`n|HQffh#~OMz>hFC zq&Ou0j!G!j>x9g^97Pi-CU^MoT$3*qgW=r+ZJ@)7OsCrUF6fLrtt93<_XNYn{PPAn z>!uOgDx$m5m?B=S9m2c0h3;cq;5%&mO-oW2WvS!AE4iy~y=jS@vi94wnx+6)lE)N1 z@ce~LIWfrlhA4X$uVIvZr-ez)KqS1$li0aQsy%(rEzQ6`FGKH|Hg5Uea5iY?t9-5; z9&76Lal>BkSLu6mm^w)lR_Sf?4K@|*%8b5FC)pk0|bIpH|=O2o~o z>g*kEgpIhV&__eKLI1xJF8QZ-L!~-1U^O$I%1v|-z_*T<-CSAoPxs6CjxGqZhGB%! zvX-yA;_ol?llNG*?VJAd?x+i!f?}A357yJ6?Mt-IH`{Im9Dez$m#|-(=gMX8f?vAh z@oQ%?C$bM!Znv~7yIKop4kaRq)A;R1z8Kbdn+-N&TqgCHyHw*@FSwa?3#d?jhUy&f#&PNnnQNS~Dh0>*2}bSKmbNjC}o&mgek&dpV`e7OK}F zB^2VsvJ?GdWCiAW9M2`O!@fOK7Qs|@MjK*6PFKUvmxyk?*fu(eoJ63$Px=diK>_-$ ze5g4(L|_8>M3BdUeM5i_W>L}kY8BI5o~Hz-p#x`16w?$35MM^5CE&2Yd)*Nsm+JI)u|3MuwY zVNb8y-=cbF-EjZl-_FjigME6Xf!)glWwbS}x2J_6O4e}x1WVRHvYLBX`@;i)qtA`F zrkD(i(WCWeQr)Jl*9rY$-T}w9hwOaT%5dFFZ$)Ba@LdC5Pvqj;cQ8y(ubI5kaFv7? z;ZoO-%hYq4bri6VRj&4gn#Xal{!Ljk1Lk}3wl<@e7ekS2fHh-5KDES{muJ9{m**Gi z(9KT>oi#!JYDeJUGLXrEZPA<|#a}vh`@QNjzs;3+ z@g<#r%(Z1aBc{Y_F6xveVx5{y6Zl&L?9(Bn#jfrh>khXWS2^3$sLKcIc5#f2Vg#lkIo#1<@0^74U-^~r_h zO+p2NGIe|@N`{_U+>}LvHQF^7Oxa5R)Wb(VLjYpxA?6sZljy=OW80%F3$!$L^av8S z4gFZA6T`alGLA!maOB6Jq1rJA#wf*fh~Tme-aMRnMhc7ZmXGPYhVTM-jw;B?IXYpM z7QJvYE727zoQ>W_tR+y6RqbZP6(afhhR&J|62)At}o5UCF z7{wW=rgZ(flNK%Yj`JDRpmJ+R8`60iKff!XOZDVCvPUXz%r~^QHh}+fsx!m^!c=~W zIy(!w)xHkLU3AyF>hNPY8q9PAfnZ{X=yS%!1@5qSVgJcjKPE%Rg?;b|4R4|o2cS#R ze$tz%4$8~6HzE7#vKdo<&y{)A8>0Q`Hk7O@Yj-HKq8pZ?LRm)fhS9^4GRojTSjg@l z5mTjW|0H=2&?elZM0!P+ecKKYW`7p8?VNzz*k-|r+ibm0>=HHCN{p18x<_*JzKHl` zRYlw%vH-C`Zu%%w7PM2W(eUNk1knCyYexec;Tz9kA2Wy^UO>*C{SjFxSX=-_M zcV#*WkJ=DnRQ{(&x|3X#n3szg$mSUA-sWLP8VlGiW%NP1uf^DmDTW>YWQ|G^^|kL? zuF^2rjiTO4$i-z7(GmR%<-N-YV!&~S?=XezvwxrC@8QHOp9o}nU>)oF*(>EVJ?2t8 z-9d6s%=bd)oQ=3TQ6)O*nLAkknmE`1@dn-a1%Im*o4Z+fJI09?hmnuA2(%Q9GY$Pp ztjEIx`fy6I_2BQ;Md;z8382;N8}3w8#&1;}0QZQC2vhOK#P4ee|BVK31k1VG68WOh zXgSgR>6os2q|s#ss6UK7%U!GJDJ!qX|EhKawZG6&cjVNlDLxDziB@&iy`*~it2YLW zWi*gU+FNtr#PBfoHG3EUy@EWe;vyC zclSvyMr&uQ^{fLI8JvbR9t3zI&dT(}0Wm#<>nbzCMydEfl@_%KJp+7()H1z?!wK=8 zs&p$(qBJtfrw7F}Lg$ow;Goy&Vpp3_4cA2eKdp@R!sJrVNOqft!x!Q(+U-H6p`K#X zs2^&JnRS(03AO2g)+7Rf>3Y#^M6Y^wetn~^NYocvXWM&f=z}acsF%m0^v`|fb2p(YW6!bvq_u!# zGJCJ-?XJW{#uKL%(!T~zUQroG`pneTgQ8>tz8l?{ghQtbofb|34WTU5C9Yo{bhJAr zL)=>Vq4!z$v;Gu%py`G=r<9kFGY#f_%8$ypzJ)8826?%Zw8fPn$#PAH0=0WRd ztoBAj6Rr^R-O3%#y8LNqrjOLxGwLIaOX|y_#xF|N17G0=k~fB2vOa2GqKHynm4gDC z%c==tGo{E&iF?Y*;^IJqp@&1kJvd1>xWpgdCNm5f-ppE@$%oIP-_93|pcac{866+m z1Me1N4(&zRm*yy|&t<+RH5haAUFF1=@0}AP^zSbu_mc>5ZD>?-`OpYCuhCOHVSO&b zw%m~v`ILMvZTmHJN60$ek9?UTXAK9G*NHVrI6qwZ8DgtPKBzQ+Jm57f1!Vz)k+c-Z z)2!E$m6M%yO_dkb)Pd2GKv0rxPd+jO z@bq(Lu)V1Jz{Q}7;h67#oM!{*iZ50_`k-(eW5c*Oudou&oDWl&%`aZKO=reIVI0{L z2dh~=T2mnSx`hJ;#G8&UUZ`d78oyK8FXJ?!yvo#^Gp+=Gs#QO_kQ85;of?Z}sh!cu zM5^6_z2HW1XOFO8*i1#-QDvMV5E>uEfbEl|o`x*Aufh+-&5u`DzQ&BZ=oQU~^>Nei zqnge1&}>qqbdUsr=Fc)%l{IjOrQb+=fae zjo(M{EsN?JBT!j5GkIUA?B=+06S*8Aph+3?!nwwWve>|ZWcA61(AZc}o_QSC#YXZd zxK3VV*6B1d;p)-hCy2OF2Y_yNhLhNB6T1kZyw!*j4JQ}Hdia3EH$5&39WF;^S#t)e z7C5J{oc#%&VTZm+d-ghej$q3?IN0SDb)q=VhpzC(S;`@?wZqV6t#mH?wo;e*dnytu^b%FukkUUr6YJ8 z@tSGH!6+)v<~H$TjAhYKUAs)-CmH&Q0vOJF{gPCy^LUBK8-Awc+9((abr9f*5O^#5 z180xnE|kqDDewD7@7Wg?54!@3zzhW-`U%iCf9`s&$|naBH4y_(!!B+8TFf+P z7k4iJ?`Id4rJ#d6Mu@VM6WuhnTtPH$486>oJW|~-UM9*bj#(}*Ih=5kn@bzF5WjFq ztb8`%Z)B=jE~}3VZ()!-Pki56q~dCMK1I&D(M@B_zrKbx6j%r2A2N@y|H7y?<)f$) zh{U#CJt@X71n~5=)SI?>JfUHkoF{^<_=X!<&ASH(xc3~S1=Kdn>}r8MOXz~@HIf2N zI3^_w8VGjuUm^*r0Ph**p7Fm7x>I*AiBS1g>30C`uSvF&Vki9|P$DHz8cx!MtzOEK z72Hc-twPdCqc|NILC`n?pL-uV&?X_W3rfS>sfa^GwsC$d97Ccn2nXwA%lTnaY$Q+v z1{jHv?(sR=uXT;Rxjl`99&OuOyo!1FiZ^3B>V-tVPN6P_-{|%UQ}_XIS(KnAWdSOb zlV5dD3mm=uTlN4y=w*cMb?l&+p%r!y7aY#`@bz-`EuzFk3l+DG(U{uz&@683b|9Gm z07+5Gke&o^WdmMz9L_}#Oi9xE0&VRxWY@aSq&aws)flF9zV16zlVg%{J-8Ct`r_A8 zLUX9cXP8Iql1G$mP*(g@Zo6n!tyGe?FB$8*e4%$8xx}|J!NFuUo`Yg4e&SVz_WU-H zeMHZC+@(Ue{17RZiFn!D^a^(6qCgQXkrmUbo$u>qzS{1H}(nAbQoYB<=uik$UgDrXn`v zZ8O>l_xg^@WCi+fPUJ6#_vwm@W#jt{cx`FImJDWj-<1Sj3h;+aD41A2*OrSay=&98 z`4VPW)Yquuy`zj`KMQ%IER+VSY|JjGYVXxPt%5Gf3KWDW(>TXP zr&nR9$*a^En!J0NfhxbOS^6$;MPmP*$vK8hySYzwQ>upc#de(#26g)$M!Zm2P%31j zD)*2T+n<_+t;H;z5-_E)U zv=*Y!D?#a4TI1?Jv(`B3c}u2B4{opZ%+a00>gzazqJ1;h+S>XFPzOIB`&vGC+4X0N z8?7$51w$B!XsphqaR}=zrc{GgySC%UWpaLY^*Tv*!v-x-a$6at`7%_Q1lWuD!a$)x z&+n@P(JRymo-7T{DbLVg5SN&0uTb7PEewGQIN_Od0xo^XFt1@_*Y``WL)9&m z8~7XLV_14%_bHI0n=k1TFdh~$H-(Z0sF*5)#XVk4*HC4!e+xu)7ou;^o`NdbcICjb zJ$UgVrxg=s=e75K2jiv&#hUR7tLUEnn0HO_5=o*Lf0wfH5efYi7lWl!08J754 z)2qS@92}tpAM!*pPV5^65X6m8P&1ro3ol@atA4h}f;@C~liMwfOjB^$H`~=Uy~Oz# zBsQ~xf+D7aeCvJ)f?jm((V?m+V!~s;&Pmnw*e+6zQOQ0Y&^S?8#wD{u#0g@4OJ1zX zbZoCW+&l!8*HnXa`B5n+)cU0lQjyh=k7}C#mhfCkx^=Z%Kz>a;tmJBMXbjK_i~aow z{6e07)-yJ$xt4g;s|m;PwwXasoC%t;Spu`A8_$i-^;EL0O3-}j!5|#|;JKh4N^2$ki$q`dW=ZorK(pFEx2A z=WW}}G`0)zY%ys3kgf=4emwTw#$}-P>l2$ew0%!r1bbZKwY4j@)-Ty-ecR{a+{&NP zjFy*$ywstLGVMItCKwH;Q@zLKr;6tw->t}8w9lInD!jbwoA{6l#zFa1DTJHmU!(JL z?}KQ_i}!_MXIsmM8W+rtPy*e;Tt3Zy|?#6ZWx zi7zZ%EFgtpyAKlQMl~Ww2PUbfdF~)P+o%v!OC+qubb&*gD=zr>QLYu7`-U@R;1yO+ zmyrxK>}x$i23}6P$gilEOP20-weK(EYYy+P_7IlDu7@dN2%Esd=V56QQ5VH*v~OC& zT1tg2&D{5AvEFgO@*$WP8fG0n4e@s+Lv`M9@X(#2(fyY8Zd?C3PIPTUMPAUF)TaPi zhLGr@9dxG-qHN1gI0lMILUp=+pYW|1j9a=q?1siiK}@^fT>CZ}f6SK0FPA9#vmp^! zpvtG2>Q5I;+SlPW2(e)cxyxD!#VXd$eickoSp8xf_vO3Avbcn7ug1Fa#gdGjhWsjSjpT`*kJ5cLRG=@K7xy7Qc} zUeVqaw;nVd)r~cDwxy8kOhany$G$S0T?V-6rXBGeKig!P3ykg9+02mv;}|<%PJAFu zL6A+r6ySZb2Q!2$=pG%()N_{4BFo3EET3BXs+?*ND&;frro`0~7Mc_iV~Kjld`*Ni zr|(p23&isDJ=*uDHEehL6r;Z9&yDU*9Y^oh7%V{)w;NM!H{goG$(*0`qs4oS1QphHh6gsQo=~dYa{BikNt7}*d>$gk?Zj-~3!`u6Ub%KI;@ zbC_=%NF6;3-Vz8DpM+gGQq=~VxMcC9i(ap<)lh)0Hfx@b`u_aM2D%C7yT5r-lv9m1 z#QFWZMwEZWl8``>NW?62&4#$P(cRaIQPIoqpj3+6yJ5>E7}kr`pKT)72V3)D>PA+D z&PZHSy|L~rMlwe^p-99YFfw>k(CkKi?~n~>Dg&>aoNXs&4t)V~0A@$g>*QXgNqYG% zBc-jfS~Jm$N}F_dj9yl^xnV(e7J)d0{1vg5tXrZjp>)@L{TYlncNDKNl|umEL;^uN z=u7y>jknOWGJOqB|4^32f{&bm8+V>LxT4PIoQb?mNk6t{j9i47xrXdkewQBV zv37MaZR}PrYz&c^v5X^1Q*`-)2^2zA-Oklly$OlWug3uty5*Wi@C}DKaPedC zCyC$Ozwgu$uVCvto)a(Fh{)}dAMP4H!{_JU6tZX$uqE`29o?RwHR4QD=n^jEd@)qO zpk%v>anbz6DON|sP=Wc`&J5QLGJNn<23ey;m1c6RHM6B&7WVhrBo*a6i=JR#TUZd+ z7g1Ea)THAG5zYPO)q;`n5;BMOpVKI!b?q~n*yD_ACGcd{?ve}#HKN&}&hWCI!)i<0 z3q^;hs<7{fNCMlIi!vF`OBPw}SqKiryc#t0uh2iiDhQ?Ceoens@fm!rkiYkuz$mO% z*DPG|%}w7qxro=Ym}l(?<`Nv;)loc1-$40bj}}oWp20;5;oJfa?a8vS>_hpZJSVF{ z*Ukiw4^jNtt;j^PC4Q`5(Bb^kl+B!`R2V9#!)GSId>j_;`h}Wnr-ow(KZAU;L7CL8 z$+D{GjtGh$9sIp&O7Ti2KKxwS<@l@%AhUyMQ^<80*$gq&n=-K6JLMtBr3K}^8U;_m0Ejhr4`LIOkUFpir^WGpBvDTN?kAi4zv8IVBMc+^jV-nOcsv zo?c9wM&@~sD^cQf+%C~5CVyIRzBn!Y{!S`<$YM}+>?L$R6QW4aK#&}rA6odbthq_< zoputtAL}!@acGS9Smzhq)N!D03SAhpB8GO3oUKbM8u?1QSQ`ZH%Ztpj@_T_Wn&$f_ zfnm!DGY0a63>L?om+j^J0zyyM6*Q3TCAD6dTN0#4sUdU*{4&NJ795OLDwoMbPf7mMR+;^W8aKDHm zRK_Y@cXFKYqER|TJEOKB`m})7ywr%q+XcHajA!DYIyu3e$ge0_JQ6%}G3QnhkH2dA zR8p?ryMly(1{~b4+^Yn-P4)Q9Iu|-BqVv15tsBOe@buJ0^bNUQGY zZ(f}Yb6H$7Gd?|1tD1rJM-96?y)57EASdSlt76odZn(J$c7!2-6cufucwWt*xYrIp zYpk@E)96$^U)4!mJ54JnW2H zs=MJQf2x>tlN3}jAqYmy&>pX)i#~f!6)|+Um~K_KdOf$fEUzOwyZ4x_h!Cun%QXpe z-unU7;)iET{FgKL=NzF)<~m^m(nbXdj__N1=PYEUh;ZAmTcO=Zhyrq=RkYn0337y5 z6L=$ERQrgUCCN;s_jn>tJFca3pg!BY6e5#ZCYLkKW1gooIRqs)A#d~Q47;j-81^!K zQ!G=zM`i8dQOhEXWuRlju`>({of4<+{6ff+xc)jSvOO$uSO>M?4RN^Rk6LxSbcHky z)^8W1?!6zrn@|b#$s|V49hCIs&7?~gj&@&M7!f%g=GtpR33j5+hy_YGFb=HxY}YtsJjNT3vOs2G95rKw^blh7GB?U_+qPa zLq5sJnp8w)gNobu5PLB2Bt{CQ&aWYUw+1xVaI|#$1k5sV!DYUK!EL^T%zdg*AvAYD zyO7^sbQZ9%z1&rkdT2D$;9hrsUGcM4PsLx(rTXhZ!MqV@@(GzV0fCp8H*5cn@~ABz zmKN}?D);71LTf>BKVd}WK+unOuSvKJSAH6}#`wMBs4~>Q@0txnu#GN9FJC0nZyFZr zv3ugolfXq%H~aNHpYN&k{TYJol3~{SGo-mja5U~t?{jZX!k)_}NZB3MMYE8I8QoU3HH8WBDZ#1|-XtocYit?%&~)#YMH`lnUcxx~%awpk zs0wJiOX};R<~aH`Ki^hRQP7?C$h$vqX=V{L~nD3JG% zWM-Ltol(CR?p+mz9tv_s6jEi^LdrgtNdq!u(8CplQF|qN=LviOw%4|EXdsZ%YhBXB zY(^6aD!cYZr?Esxf97|VF#{s5O>MuP+t#w`F}V9NH#vFdPSbCPH%mnQGu=+rP9vbq z(H{gw!-($=qd9{hsU7mJtHV{CQO>Lj>Ntk7bT|Pe(CEHDFO!M5rlSn8U%VoDbzqzF z+!>B`voD%`FLk0*){CJy23)3D6oK207!wALV zybe0Zy|ZKjBdxVcO6Bsv53|NlOO+8327|&*Jgac}2Bk|yZlJUut|OSa!FzuDGxTiqHK%*h6I7&^VKEqr__$xvV0xmC8exQI!R zqKi~eF;!NlcomJgY$9`eI4ZP3Mk_gQDSem{f*I7RQMuW0j9xMZ(s5Y}mJ3tDrBkMXik#S_?aF~UTwSKD&+tOILbz2Di8=?T z;Fr?)mR;d%3B-fu!}|BR;c~j+Q;F(9WM-;1#UF%2sfswK%w9QN4$S&QT}JEKB)!c- zm^wHUyTiZ;aNtgzgUeE$(7l*p5s&mKOyvvJmfoi7Y ze*znCzEz{jnSXQQZ`ObNjh!mHTLvLO$qF>wdnqBZRMir4alUhpPB{ zmR}PQC+2NXFm#N%tiB_9i!i+vh&0QeYnqb$M^0H!r+l8NvW@Wqk?P4bmt+~|O}SS> z*($P*0gc%+g3HjxuhD%=N)@84tkF9wwVL7XuKq)HDn+WY+O(sP(yySP)7|;C(b2K- z38EmY8?>b4rtUg!m`Jq+z$SO78%{igRY?svT+m7mNyN)M)po}`hBP3BAezAka1M}9?)gA9v&1`_j?CjR}vhZ$~ zlQBVkCY+xbYSAm~7H$={Aj}xZgMuL;Y{cMY(?QhdS#&mj%xwuX*9hQQND^aRvFIlvnq2V99Bk?$kHW=bamRpCS%=eTy1r}gSq1# zxwP|Gt0*az2(d5mLwXh0Ym$5V2-C>lEC!{V-rY{j=8{Mq;jl%`f%-;2wuFSeND~e@ zf@92_N}lcJf}CL@ zl@Kb=EC6e4>gy-Xf;Ajlr?sYg$^Bi-(-fKhykGN8E8551HsB0HI}sMIenX; zU2xorILB*8xriAk5)gt{r$H%skvp;0m2~(maqr|8%?PyNct+wt51ZI`>r`Z22RnC3 z6$XoZ&x{18c27$P_{46eJrBJFibHe7vdh<;U87FmG$!*ei<%e$qzS%)&CPI&FXu5| zf9#<|c~OB?z$zKzrkEjLl{1A?S>mYCck82ei@0=HXfAl{>IeEHpk(TK8f+Q+vRqEM z;O!DOH9~-Fm=b7Y=312s8Mh^Fr18sNpM{*<hP9<^X1jXMkT9r zhkQ@SDy;#M-d>7thT1wtxJk~Ub)a<4oj87^c)WwJo8=j29YeKivQ6>w1q`>JHPhco zIIk|k!Q?mA^DBdv5?kmS*y1TSonFsR=&%>{!$CPrr|O!-#^bS>YRBGk@m&vdqTifB zIo&f?;PhD(FH&F&-5!wwgWs_bkiv{Qpp?m{C}&9|gR7Jz~Sy?C@Z zbdB`PN9ej#GhTQ`Ypir3PWV;!q;n%z3(drw8TI({{C<5xul0y^U8%K+xXY5$ zI?Zhit}$>6>b)_eO1p_ea^0LAiN9xWNcq8`dZGuQBu&@r15w~NjJyO4saUM=~*DKqXI;-D8gB^h+_f0?3S*^m-4kK6f`Q$coXx?wiTew^-O`P)HZ z3ym^pD=P;FpfZewchan+$Y=vAY7tq7$i_24Tq~0)_u$;jmF+@gSxc#}!kX;FxsH2# zmW+ah--O9=_oYT|j4{jX{SeDT*BMvio(OV&y=$fg(X4zqL;JiB-L~jN*nBY=;d6V; z1^G5$aaI!QdP$%|9nysaGFoWWJa&@Q(~o#>1kRe|6&G+q!Ti?hPLIArx)w?1P%a?R3d66BVGY(7TP1o zU(-!yOf9MM_QZoHtZK2-v(`$;~sem60CC9-MrZIhEnp4D_y5p2{6% z!eO=L{;{fZ?1hAR428Z^qe<|qjheel(Ea+)-rig`1h8nLM*;)fim~f#xKa>d z^Ewx8a;$A2iBT!YHN1uCy2*lUN++wIY^t!~mOkxg z=#tC+5XVuK@6WT|{pSs?ya)5M4LN(PPN$cph4F~al}&# zD3PzeGDX98#h3LQjb-E04Ydc@d$d|d;Jcrk^*fn|AS`mHaJ1BDzhGxPXuS~t@BHZV z5WjIgz#mcObdfre^*O?Z&w5vleom9ue?xUO#AE4nr*PjIP1=eF`?mUn3s#2O;L|Qq z((X)Z(&DG1`CQ5Km%aEP?-tOEBsvqE1tA-r?R%w_{XLT;SS7*`d{^_QKjp06yz~kd zFmZWOJgNCv-ELP2i*cl&5w8g2WiMN`dwcI6RB=ty_xc{?>5}v;bT5m2S-p~IKROP6kig% z`3xm7m`juu%;-U1+7DwF0XpA_!ZYP=OvEDppeGXRx(owM>E{YKH zbbr1lEqdgLE@zXWQncx{?P&zv~>r`xHt#19Pb zFA9kE6J{56W#rn+uI_CE{86-wxx$fl4(ab#hM9d|7fXp!O{eVD3E3?#Cu+OLNf0-? zQI**oo_3A!BEHAko_!$9GxtzTm49g4SA9NyMa%FC;S z1Qff-OI)t4w1W;xJ8Lz}fJ)-$@c!@KW$(jL2FK1a-?7JsnM8xqScGrKa;c(m)@8`= zK74Yzv}~8WWA{#FdLyTr2UT=1fv1-Ie&t^HJz-EbMJr~}`hXwRu1SS^Bx|GI?YZbI z|FxCVTKHX8LWg5p4J^2|=5S>i5pQ07wO3#`yjsecovwn{7=e4!h{c5!69G~aC9gO4 zGC0qs{30u^3d-_>#P#$&H1q<2_9WD-j zM#bt^S>lp)4*Af6#nkfck_04r=ATqqe_p`9dd@%T^DJa*rw#*MQls}t&`1qBL*YWOfGlar1!>85*WNN-P$ra-5l%R-z-=` zb&|^6*q)jZLvGFHpC^HMHPU)sgRvcf-rC;R2OAvN&m)lBdEncG@|gl+IFRninWEpZ z&o{cM2QO>6fj)dNUE4iYw`(st?BgS{HC1OI3YNnlH;b3g=d3E^B>ymzZq8rxy@;3* z1pR#Q;|X}@7(U7Ak}53{fk^0UxX&=D@CUB$Z0K(%gf_z7p5)bUUJ46>&&u&@HcsQe zmz&aD(>xJQ=E=uIf5`Z%L*!BP=VU!~)`YRzeH(Umtz9M3mR$PDib zsJji3YDe3mnNv&S6BUeY`1{N+)aA(4l~+tt-g%gVj@j+b`l_&)Y@Z=fBXDiXW-k>R zY|y!HrGMvu<=Cvkq7$Vy5a@Q5J{JELyS5QqyRfU&BRji)AZKr8c6tBrdNlPnD)d*F z54GGcjp#c#AFS3m`t;wG-VNT0uTs7AOwLh1R@ZKLLdggGYG^XkbpoE z0x1ZjA&`MU76Lg4lL>k3k3jFL4%`tfz;3VI5{{t*x8@*nh3n)=jP;pYU<(w zRD^=Y1>izz03iZ?`Jjdrj#WSd0Np4605#<7uLJ6#g1$NiIGY#9{?I)w->>%z5J9g0 z7~TIExcq-!GW*A<{l|b604hCrsS5xF9*k%KAoqjOD*$}{U=RudRUQm$L7>Ki(Jlzo zdN7ED{+w|V0%|^-fm|{PcuffSF#OEYh!w*$9}UbOh%J134e|1o(Y5 zzkkC2?=P4T3-5^RPYtBU@sPId?GJbf0Az4L0r39#{Emmf|N6Xia(ZgUYhh+?!N(8T zO5ia?5C*0iR0UW=1V|(J|C;@(sr0z1mQ%clJS6f8kkC{9tG6%UDiI(X#jmTp^sC)(NqXRW5g^w?qm6;-c~?{bK%40?Qvg_1^bgbQ=pk)74FIqd`Iw0t zoGJQ;Dd4^+${8|?t{{N)`f&X24hMYv50fTyU;-{IL^wqJuYyv)j^B+s!D3>6n1pbG zFft&4r@(&9LVv3jp{o_L%7eyz~!KO5v8%D~O)^zcg)uIiCGt5+qPA zCx>XN`b!fS40`rQliKzzX#k`V6C_rY53>Ieehwc0hbd)D-0s(~XfQw4R1c;Q|HEXc zA>@pN0EsxsV0|5bL4`=9L0!OO?X!7uP%nPh5^eUt>Ekgnu$pA+eSv5Egq_WzIW zzcS88Nv$?~$b>`?e|+I=Bj9!!AORl_pQ)J%H|NX$$ZVhN$UI~O0Dzvu$9e)+9-IaL zpYwn9-on>F90Cb@>0e<-0b|Mj89}v7@^(@V005)waW7*}z>qH%a6Tlw>Mgn24#*;A zX8gYk`E5M~S3#&A8dd(dYu18f#LmA0$O^uf1#&&ig|%Z2ivq|ZuF?5Frr)`&Cm#Gv z{y*jd1MT~6J#7FW*Wh5 zZ7=P?S@{1s|JU3|W?;E>h2$<-$j#v2y-Rl^fqGp3 z@&DM0>HcC9|7)|P{~9juiP`Hm$Wnd-S*eu2_#nq`fn~PfEam@LHCj}7!U2#BI@kAj zw2HlddHh~A7>>rDOdx}W{nubQK-QMZfAC&T(J-Pz#wrGq4gP)aK(G4c@tc=8jR8Fg zGE};d*i$~J{YS6iNAU80@#cQ)1P4N97pcr+UhbA(9=~}LP$R7-AsbH_Xg=n>90vP6 z{|~({-_;EgOG55-OpjMN^2RTZ-@Mqo2)QcuwY0Gwh#b<2-|4K{awZjd*H{^iPc~=1Bzoiey?>S_y3N}&&ay;bc zKQBD|gZ#h0K&BpmRs~$C3M71Z6ELU>B!N~^0dK1UDSp3MP=lQCQUNol0U6;N)qs%p F{{xTNKH&fW delta 155134 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 z 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 Date: Mon, 11 Apr 2022 11:53:44 +0800 Subject: [PATCH 130/382] Fixed #263 bug --- Blog.Core.Publish.Linux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Publish.Linux.sh b/Blog.Core.Publish.Linux.sh index f3c3f98d..882a62ad 100644 --- a/Blog.Core.Publish.Linux.sh +++ b/Blog.Core.Publish.Linux.sh @@ -1,5 +1,5 @@ git pull; -rm -rf .PublishFiles; +find .PublishFiles/ -type f -and ! -path '*/wwwroot/images/*' ! -name 'appsettings.*' |xargs rm -rf dotnet build; dotnet publish -o /home/Blog.Core/Blog.Core.Api/bin/Debug/net6.0; cp -r /home/Blog.Core/Blog.Core.Api/bin/Debug/net6.0 .PublishFiles; From 9a013d502f2b375849ccfc7dc08718ed71b55c9e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 11 Apr 2022 14:44:38 +0800 Subject: [PATCH 131/382] Fixed #263 bug --- Blog.Core.Publish.Linux.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Publish.Linux.sh b/Blog.Core.Publish.Linux.sh index 882a62ad..05eb8103 100644 --- a/Blog.Core.Publish.Linux.sh +++ b/Blog.Core.Publish.Linux.sh @@ -1,6 +1,8 @@ git pull; find .PublishFiles/ -type f -and ! -path '*/wwwroot/images/*' ! -name 'appsettings.*' |xargs rm -rf dotnet build; -dotnet publish -o /home/Blog.Core/Blog.Core.Api/bin/Debug/net6.0; -cp -r /home/Blog.Core/Blog.Core.Api/bin/Debug/net6.0 .PublishFiles; +rm -rf /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles; +dotnet publish -o /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles; +# cp -r /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles ./; +awk 'BEGIN { cmd="cp -ri /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles ./"; print "n" |cmd; }' echo "Successfully!!!! ^ please see the file .PublishFiles"; \ No newline at end of file From 6f6ed915d7b8da466705dc1adfd428fc2855299f Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 11 Apr 2022 15:58:45 +0800 Subject: [PATCH 132/382] fix: update test project data --- .../Service_Test/BlogArticleService_Should.cs | 2 ++ Blog.Core.Tests/WMBlog.db | Bin 200704 -> 200704 bytes 2 files changed, 2 insertions(+) diff --git a/Blog.Core.Tests/Service_Test/BlogArticleService_Should.cs b/Blog.Core.Tests/Service_Test/BlogArticleService_Should.cs index 00073c6c..df16d174 100644 --- a/Blog.Core.Tests/Service_Test/BlogArticleService_Should.cs +++ b/Blog.Core.Tests/Service_Test/BlogArticleService_Should.cs @@ -60,6 +60,8 @@ public async void Add_Blog_Test() [Fact] public async void Delete_Blog_Test() { + Add_Blog_Test(); + var deleteModel = (await blogArticleServices.Query(d => d.btitle == "xuint test title")).FirstOrDefault(); Assert.NotNull(deleteModel); diff --git a/Blog.Core.Tests/WMBlog.db b/Blog.Core.Tests/WMBlog.db index 044a620194889190494c7d17ebbab62233f460e8..4931b9674dbdfa61661ba06a34e3c55254029529 100644 GIT binary patch delta 3383 zcmeH}Yfuwc6vywqyU9MXyEi;Sh?tP@kXnR@ii`!O!f0s~MFn3KYNJGmRYFNnaC9Uc zMXT+Mx@xQsDpu=^S{xfS4)rb5`s#;{)3KxD`)#XZKlmD|>0Q9b$Y!SB`o&B>?EL=c z+;i`_XV0F7jY7jlVVN7+c2zIHj3EX9AmTtf*6Cv>0{j49!)Ndb+=4gbmADbtVi%qm zh|p(a`D6Roe3ORCL}T1DoFm-jwKJTfoHa9D9*@gi1sYhIGC)N#OB7{;ucUe%qT*nu zgQpfbFK#X;u|-I%nGR9Uj-zVyD;Zs;aoY zZ`<|O*4r%yZyjin59}BMhkOTrh%yOvKuetm+%@K@HkUdtel4scyg=E~}@yvGDloz_DD35^&ZPTfI zkr62V!|qhuu61TB`T~E8CHo1tLVcjIIJRtRm8B05LVHJRrs(97gk}zD10SD?$nl| z)X4e^78sI0Z_Z1Zrd3KLSt${ip_E8o`Ak<;iPPh~xo7F^ovUuOG~Zg**kK!2q9IFn zmQ&}e{n9oh!_C?JC$thEnY{e+PZ!N7Wb|KPs4TvOBG_nG;>KPwlekL3jzR>Ql(_O| zmrR{7u?Q-b9h>Q_*Ny-;ziGMCu=d49i1Uw^u|Bm{I4|Vsn)v&C3D?S5SvPZ#NzyLS zJkX4z_tOc~Vssysz*cAljmv$7yw7Ng1Q8=lER>Ht=uhJP-Co8SV^x?@g~g~ag9?jQ zVNoh9QiVmRFue-HDopCm(#1$%9Fa!Od*$(9a$eh$3NBrU1o0y>2wV2#13Ki*$Rv2E zY_F~ur238(zgDVcxL3%KJ zhJ)}^82Yw{s67Ta+6F|6aE)KfyO`t5D(xxSru~96dxrK?S;!6({k9Sq9W2N~We6tu zw+uq#VM6fPAVg_{kBi||1o;4L2*vNMhO~YwJs4S8Bs~JyCp{vo+?9s;*a8D!Q;U^d z0~WAdZ#P@u^xoLH|Muc-H#anos&U&L)h>JW%W1(*EW zACg?0;ZrK>4FIQdWPBh4#EV2gXuT2q{`$eKo$2U0C}IkNleeQSNj!zq0S@9SoK6<8 zVk*}MWZR$FsGvSrbqTG}4`>8B*E;IkPV^r-k^fu>^|90gJWV<+^%K_! z&xLZ`Niue?=KkTPu*ccnOg*W(u?+7^OHq1TDhvHh3`Lr&@=2}WdiEk6b9e-yg)F6v wdxVbkA7?4j$dkJ_Q)7|}OH^SAD$J(BtST&Cg;`XXS%vjfVR0&~$D6G5Utn(n0{{R3 delta 3110 zcmeIzdu$X%7y$5@*}L1B+ufVn_O5qFxwh8_CARjg1%b4*Jp{tTQm_?y#88A93iN@; z8>+pCpc1srwk((sTP;YW(82+SVgiaFM5H`wcqEo8DJ?M?Vq$1)pw0reG0uM`{>A40 z+24FS-|Wpd-_|tBHH~s@B}_h8wTX%`E&zaH5BF2a?w$weU3!aNq338T-Axqj+9f&uoJ|_V~hdx0s>RA0mx=|{^BJIE0zU&w;b+m`}j`N z5$(&CiJ!pz(H{0%BB}?NjoY1-sU7wrfkz#poq3Kt;QGB3@4*$P}J?x(ShylIU_e z;pQw&ID1L!5}Wn*DKI^J>s$kxps);Hu^rGubP=`N!nP8nU#VA$6^Gm**UQDSL+X&~ zrDDlp?XcEci>(gQLF!2{ao`U8K6Z)i?0?@TIwpG+K-6f0q04yb(Z;2HaCH=3HCzGM zQ%JP$uV&~!?Lq25yU-Ly~pswyKYcNiOt9vpl&Gs|E#*Ygh! z2K7sY$gk$QS=OQGL3Z&uhR;quJNO*U=O{j_e75tM^4Z2`h0ijdB|cmEO!$m>j7vqf zJHAw+z58RF7HSM6FR~b0oI(i9G`2XfxV)^QxHP!(_K~f{MT6^bMJWF8U@)J$H={2gtSAZCJSei$bRJ1O*vb4M> ze7xuQM~`!`s04N(*kglH4|Ck!dEidXheJV!x~M&^TJDw$q!#M~>ucl!c@A$8uZj7V zy%xK9t*Og2MQ9V;s0Q}Jnc!Gm=nWEbdQ_kmc(7J`H%q@h;Rm`D4W21P*fMnG+C|-&HA?%R0Mr`tccb# zK$j!uMRWm0;uQ2VGO^ffeP9Yq&_xBgBjYDRw;4Jkv!}w@(8L;fwjK&VKl^T=sV=V< zMp~x90NPUm8;@2&_>7C}23QmTJ*{k1rdvO=t|9wHfh=YX{1=PvGa)}rjLb5j6$mEj zr!44Y=!>v*2$rMy$dq7#Gz4gf1+Srcs1m(Btpduo?+T z!)0j!piOjw?UrqmZG>`I3CNvtwHzybAuV8Q&66Sv_MzR$7*V#|2(4iDDvea!L_6%G zjsaR^``qSHo*ew4f_FYS_z&Coe>nL1jRBM%*8u1e+eO=0rBT6hm2^$Yx9+vt$y(fn zpBEcg9j*{bC@t0KBxzWGOBC|7i=AVP-l?lt@Ze!1SeKfvVm%8B8G}P@#*j0G*T9^~ fTutI?B3FG}P2g%gSL3+q Date: Mon, 11 Apr 2022 16:19:36 +0800 Subject: [PATCH 133/382] Update appsettings.json --- .../RoleModulePermission.tsv | 44 +++++++ Blog.Core.Tests/appsettings.json | 114 ++++++++++++++++-- 2 files changed, 145 insertions(+), 13 deletions(-) diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv index a16c2eab..ef19ade1 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv @@ -1648,5 +1648,49 @@ "ModifyBy": null, "ModifyTime": "\/Date(1546272000000+0800)\/", "Id": 128 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-04-11 16:08:48", + "ModifyTime": "2022-04-11 00:00:00", + "RoleId": 6, + "ModuleId": 0, + "PermissionId": 114, + "Id": 129 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-04-11 16:08:48", + "ModifyTime": "2022-04-11 00:00:00", + "RoleId": 6, + "ModuleId": 66, + "PermissionId": 115, + "Id": 130 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-04-11 16:08:49", + "ModifyTime": "2022-04-11 00:00:00", + "RoleId": 6, + "ModuleId": 70, + "PermissionId": 120, + "Id": 131 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-04-11 16:08:49", + "ModifyTime": "2022-04-11 00:00:00", + "RoleId": 6, + "ModuleId": 66, + "PermissionId": 116, + "Id": 132 } ] diff --git a/Blog.Core.Tests/appsettings.json b/Blog.Core.Tests/appsettings.json index 95a95f16..23ab9c65 100644 --- a/Blog.Core.Tests/appsettings.json +++ b/Blog.Core.Tests/appsettings.json @@ -1,12 +1,18 @@ { + "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 "Logging": { - "IncludeScopes": false, + "LogLevel": { + "Default": "Information", //加入Default否则log4net本地写入不了日志 + "Blog.Core.AuthHelper.ApiResponseHandler": "Error" + }, "Debug": { + "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "Console": { + "IncludeScopes": false, "LogLevel": { "Default": "Warning", "Microsoft.Hosting.Lifetime": "Debug" @@ -18,7 +24,25 @@ }, "AllowedHosts": "*", "Redis": { - "ConnectionString": "127.0.0.1:6319" + "ConnectionString": "127.0.0.1:6319,password=admin" + }, + "RabbitMQ": { + "Enabled": false, + "Connection": "118.25.251.13", + "UserName": "", + "Password": "!", + "RetryCount": 3 + }, + "Kafka": { + "Enabled": false, + "Servers": "localhost:9092", + "Topic": "blog", + "GroupId": "blog-consumer", + "NumPartitions": 3 //主题分区数量 + }, + "EventBus": { + "Enabled": false, + "SubscriptionClientName": "Blog.Core" }, "AppSettings": { "RedisCachingAOP": { @@ -34,18 +58,23 @@ "Enabled": false }, "SqlAOP": { - "Enabled": false, + "Enabled": true, "OutToLogFile": { "Enabled": false }, "OutToConsole": { - "Enabled": false + "Enabled": true } }, + "LogToDb": { + "Enabled": true + }, "Date": "2018-08-28", "SeedDBEnabled": true, //只生成表结构 "SeedDBDataEnabled": true, //生成表,并初始化数据 - "Author": "Blog.Core" + "Author": "Blog.Core", + "SvcName": "", // /svc/blog + "UseLoadTest": false }, // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; @@ -63,7 +92,9 @@ SqlServer = 1, Sqlite = 2, Oracle = 3, - PostgreSQL = 4 + PostgreSQL = 4, + Dm = 5,//达梦 + Kdbndp = 6,//人大金仓 */ { "ConnId": "WMBLOG_SQLITE", @@ -100,15 +131,28 @@ "DBType": 0, "Enabled": true, "HitRate": 20, - "Connection": "server=.;Database=ddd;Uid=root;Pwd=123456;Port=10060;Allow User Variables=True;" + "Connection": "server=.;Database=blogcore001;Uid=root;Pwd=123456;Port=3096;Allow User Variables=True;" }, { "ConnId": "WMBLOG_ORACLE", "DBType": 3, "Enabled": false, "HitRate": 10, - "Connection": "Provider=OraOLEDB.Oracle; Data Source=WMBlogDB; User Id=sss; Password=789;", - "OracleConnection_other1": "User ID=sss;Password=789;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.65)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME = orcl)))" + "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" + }, + { + "ConnId": "WMBLOG_DM", + "DBType": 5, + "Enabled": false, + "HitRate": 10, + "Connection": "PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA;" + }, + { + "ConnId": "WMBLOG_KDBNDP", + "DBType": 6, + "Enabled": true, + "HitRate": 10, + "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" } ], "Audience": { @@ -117,10 +161,14 @@ "Issuer": "Blog.Core", "Audience": "wr" }, + "Mongo": { + "ConnectionString": "mongodb://nosql.data", + "Database": "BlogCoreDb" + }, "Startup": { "Cors": { "PolicyName": "CorsIpAccess", //策略名称 - "EnableAllIPs": false, //是否应用所有的IP + "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 "IPs": "http://127.0.0.1:2364,http://localhost:2364" @@ -131,11 +179,17 @@ "ApiName": "Blog.Core", "IdentityServer4": { "Enabled": false, // 这里默认是false,表示使用jwt,如果设置为true,则表示系统使用Ids4模式 - "AuthorizationUrl": "https://ids.neters.club", // 认证中心域名 + "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 "ApiName": "blog.core.api" // 资源服务器 }, "RedisMq": { - "Enabled": false + "Enabled": false //redis 消息队列 + }, + "MiniProfiler": { + "Enabled": false //性能分析开启 + }, + "Nacos": { + "Enabled": false //Nacos注册中心 } }, "Middleware": { @@ -146,7 +200,8 @@ "Enabled": true }, "RecordAccessLogs": { - "Enabled": true + "Enabled": true, + "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," }, "SignalR": { "Enabled": false @@ -169,6 +224,11 @@ "IpWhitelist": [], //白名单 "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], + "QuotaExceededResponse": { + "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", + "ContentType": "application/json", + "StatusCode": 429 + }, "HttpStatusCode": 429, //返回状态码 "GeneralRules": [ //api规则,结尾一定要带* { @@ -200,5 +260,33 @@ "ServicePort": "9291", "ServiceHealthCheck": "/healthcheck", "ConsulAddress": "http://localhost:8500" + }, + "PayInfo": { //建行聚合支付信息 + "MERCHANTID": "", //商户号 + "POSID": "", //柜台号 + "BRANCHID": "", //分行号 + "pubKey": "", //公钥 + "USER_ID": "", //操作员号 + "PASSWORD": "", //密码 + "OutAddress": "http://127.0.0.1:12345" //外联地址 + }, + "nacos": { + "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 + "DefaultTimeOut": 15000, // 默认超时时间 + "Namespace": "public", // 命名空间 + "ListenInterval": 10000, // 监听的频率 + "ServiceName": "blog.Core.Api", // 服务名 + "Port": "9291", // 服务端口号 + "RegisterEnabled": true // 是否直接注册nacos + }, + "LogFiedOutPutConfigs": { + "tcpAddressHost": "", // 输出elk的tcp连接地址 + "tcpAddressPort": 0, // 输出elk的tcp端口号 + "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 + { + "FiedName": "applicationName", + "FiedValue": "Blog.Core.Api" + } + ] } } From 07ed57413659ebf70b682218800fbf2b08bf20ca Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 12 Apr 2022 17:43:41 +0800 Subject: [PATCH 134/382] fix: change department delete api --- Blog.Core.Api/Controllers/DepartmentController.cs | 11 +++++++---- Blog.Core.Common/Seed/FrameSeed.cs | 10 ++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Blog.Core.Api/Controllers/DepartmentController.cs b/Blog.Core.Api/Controllers/DepartmentController.cs index 9ae0ebae..1674883f 100644 --- a/Blog.Core.Api/Controllers/DepartmentController.cs +++ b/Blog.Core.Api/Controllers/DepartmentController.cs @@ -174,16 +174,19 @@ public async Task> Put([FromBody] Department request) return data; } - [HttpDelete("{id}")] - public async Task> Delete(string id) + [HttpDelete] + public async Task> Delete(int id) { var data = new MessageModel(); - data.success = await _departmentServices.DeleteById(id); + var model = await _departmentServices.QueryById(id); + model.IsDeleted = true; + data.success = await _departmentServices.Update(model); if (data.success) { data.msg = "删除成功"; - data.response = id; + data.response = model?.Id.ObjToString(); } + return data; } diff --git a/Blog.Core.Common/Seed/FrameSeed.cs b/Blog.Core.Common/Seed/FrameSeed.cs index 89e60ded..9e1fd145 100644 --- a/Blog.Core.Common/Seed/FrameSeed.cs +++ b/Blog.Core.Common/Seed/FrameSeed.cs @@ -218,15 +218,17 @@ public async Task> Put([FromBody] {ClassName} request) return data; } - [HttpDelete(""{id}"")] - public async Task> Delete(string id) + [HttpDelete] + public async Task> Delete(int id) { var data = new MessageModel(); - data.success = await _{ClassName}Services.DeleteById(id); + var model = await _{ClassName}Services.QueryById(id); + model.IsDeleted = true; + data.success = await _departmentServices.Update(model); if (data.success) { data.msg = ""删除成功""; - data.response = id; + data.response = model?.Id.ObjToString(); } return data; From 5bb9cc236bfc210680ba035547b717cfb827b901 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Wed, 13 Apr 2022 09:45:53 +0800 Subject: [PATCH 135/382] Create codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 70 +++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 00000000..3df0ef21 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,70 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ master ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ master ] + schedule: + - cron: '32 13 * * 2' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'csharp', 'javascript' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Learn more about CodeQL language support at https://git.io/codeql-language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 From 141187d1120c32640e65acd2f8101d2ed40241cb Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 14 Apr 2022 09:13:23 +0800 Subject: [PATCH 136/382] Update MigrateController.cs --- .../Controllers/DbFirst/MigrateController.cs | 147 +++++++++++------- 1 file changed, 89 insertions(+), 58 deletions(-) diff --git a/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs b/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs index e4a23600..a04f2552 100644 --- a/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs +++ b/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs @@ -46,57 +46,6 @@ public MigrateController(IUnitOfWork unitOfWork, _env = env; } - private void InitPermissionTree(List permissions, List all, List apis) - { - foreach (var item in permissions) - { - item.Children = all.Where(d => d.Pid == item.Id).ToList(); - item.Module = apis.FirstOrDefault(d => d.Id == item.Mid); - InitPermissionTree(item.Children, all, apis); - } - } - - private async Task SavePermissionTreeAsync(List permissions, List pms, int permissionId = 0) - { - var parendId = permissionId; - - foreach (var item in permissions) - { - PM pm = new PM(); - // 保留原始主键id - pm.PidOld = item.Id; - pm.MidOld = (item.Module?.Id).ObjToInt(); - - var mid = 0; - // 接口 - if (item.Module != null) - { - var moduleModel = (await _moduleServices.Query(d => d.LinkUrl == item.Module.LinkUrl)).FirstOrDefault(); - if (moduleModel != null) - { - mid = moduleModel.Id; - } - else - { - mid = await _moduleServices.Add(item.Module); - } - pm.MidNew = mid; - Console.WriteLine($"Moudle Added:{item.Module.Name}"); - } - // 菜单 - if (item != null) - { - item.Pid = parendId; - item.Mid = mid; - permissionId = await _permissionServices.Add(item); - pm.PidNew = permissionId; - Console.WriteLine($"Permission Added:{item.Name}"); - } - pms.Add(pm); - - await SavePermissionTreeAsync(item.Children, pms, permissionId); - } - } /// /// 获取权限部分Map数据(从库) @@ -107,26 +56,33 @@ private async Task SavePermissionTreeAsync(List permissions, List> DataMigrateFromOld2New() { var data = new MessageModel() { success = true, msg = "" }; + var filterPermissionId = 122; if (_env.IsDevelopment()) { try { var apiList = await _moduleServices.Query(d => d.IsDeleted == false); - var permissionsList = await _permissionServices.Query(d => d.IsDeleted == false); - var permissions = permissionsList.Where(d => d.Pid == 0).ToList(); + var permissionsAllList = await _permissionServices.Query(d => d.IsDeleted == false); + var permissions = permissionsAllList.Where(d => d.Pid == 0).ToList(); var rmps = await _roleModulePermissionServices.GetRMPMaps(); - List pms = new List(); + List pms = new(); // 当然,你可以做个where查询 - rmps = rmps.Where(d => d.PermissionId >= 114).ToList(); + rmps = rmps.Where(d => d.PermissionId >= filterPermissionId).ToList(); - InitPermissionTree(permissions, permissionsList, apiList); + InitPermissionTree(permissions, permissionsAllList, apiList); - permissions = permissions.Where(d => d.Id >= 114).ToList(); + var actionPermissionIds = permissionsAllList.Where(d => d.Id >= filterPermissionId).Select(d => d.Id).ToList(); + List filterPermissionIds = new(); + FilterPermissionTree(permissionsAllList, actionPermissionIds, filterPermissionIds); + permissions = permissions.Where(d => filterPermissionIds.Contains(d.Id)).ToList(); // 开启事务,保证数据一致性 _unitOfWork.BeginTran(); + // 注意信息的完整性,不要重复添加,确保主库没有要添加的数据 + + // 1、保持菜单和接口 await SavePermissionTreeAsync(permissions, pms); var rid = 0; @@ -134,7 +90,7 @@ public async Task> DataMigrateFromOld2New() var mid = 0; var rpmid = 0; - // 注意信息的完整性,不要重复添加,确保主库没有要添加的数据 + // 2、保存关系表 foreach (var item in rmps) { // 角色信息,防止重复添加,做了判断 @@ -239,6 +195,81 @@ public async Task> SaveData2TsvAsync() return data; } + private void InitPermissionTree(List permissionsTree, List all, List apis) + { + foreach (var item in permissionsTree) + { + item.Children = all.Where(d => d.Pid == item.Id).ToList(); + item.Module = apis.FirstOrDefault(d => d.Id == item.Mid); + InitPermissionTree(item.Children, all, apis); + } + } + + private void FilterPermissionTree(List permissionsAll, List actionPermissionId, List filterPermissionIds) + { + actionPermissionId = actionPermissionId.Distinct().ToList(); + var doneIds = permissionsAll.Where(d => actionPermissionId.Contains(d.Id) && d.Pid == 0).Select(d => d.Id).ToList(); + filterPermissionIds.AddRange(doneIds); + + var hasDoIds = permissionsAll.Where(d => actionPermissionId.Contains(d.Id) && d.Pid != 0).Select(d => d.Pid).ToList(); + if (hasDoIds.Any()) + { + FilterPermissionTree(permissionsAll, hasDoIds, filterPermissionIds); + } + } + + private async Task SavePermissionTreeAsync(List permissionsTree, List pms, int permissionId = 0) + { + var parendId = permissionId; + + foreach (var item in permissionsTree) + { + PM pm = new PM(); + // 保留原始主键id + pm.PidOld = item.Id; + pm.MidOld = (item.Module?.Id).ObjToInt(); + + var mid = 0; + // 接口 + if (item.Module != null) + { + var moduleModel = (await _moduleServices.Query(d => d.LinkUrl == item.Module.LinkUrl)).FirstOrDefault(); + if (moduleModel != null) + { + mid = moduleModel.Id; + } + else + { + mid = await _moduleServices.Add(item.Module); + } + pm.MidNew = mid; + Console.WriteLine($"Moudle Added:{item.Module.Name}"); + } + // 菜单 + if (item != null) + { + var permissionModel = (await _permissionServices.Query(d => d.Name == item.Name && d.Pid == item.Pid && d.Mid == item.Mid)).FirstOrDefault(); + item.Pid = parendId; + item.Mid = mid; + if (permissionModel != null) + { + permissionId = permissionModel.Id; + } + else + { + permissionId = await _permissionServices.Add(item); + } + + pm.PidNew = permissionId; + Console.WriteLine($"Permission Added:{item.Name}"); + } + pms.Add(pm); + + await SavePermissionTreeAsync(item.Children, pms, permissionId); + } + } + + } public class PM From 361beb135dceb012b4c93511defddac3d69c7ecf Mon Sep 17 00:00:00 2001 From: "Nine.Designmini" Date: Thu, 14 Apr 2022 16:52:35 +0800 Subject: [PATCH 137/382] =?UTF-8?q?[1]=20AOP=E6=97=A5=E5=BF=97=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E5=8C=96=EF=BC=8CApiLogAopInfo=20[2]=20=E5=AF=B9?= =?UTF-8?q?=E4=BA=8E=E8=AE=B0=E5=BD=95=E6=95=B0=E6=8D=AE=E5=BA=93=E7=9A=84?= =?UTF-8?q?=E8=AF=9D=E8=AE=B0=E5=BD=95=E4=B8=BAjson=EF=BC=8C=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E5=8F=AF=E4=BB=A5=E6=96=B9=E4=BE=BF=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=8C=96=E8=BF=9B=E6=95=B0=E6=8D=AE=E8=A1=A8?= =?UTF-8?q?=EF=BC=8C=E5=AF=B9=E4=BA=8E=E4=BD=BF=E7=94=A8=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5=E8=BF=98=E6=98=AF=E5=92=8C=E4=BB=A5?= =?UTF-8?q?=E5=89=8D=E4=B8=80=E6=A0=B7=E4=B8=AD=E6=96=87=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E6=9B=B4=E6=B8=85=E6=99=B0=EF=BC=8C=E5=A2=9E=E5=8A=A0=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=93=8D=E5=BA=94=E9=97=B4=E9=9A=94=E6=97=B6=E9=97=B4?= =?UTF-8?q?=EF=BC=8C=E8=AF=B7=E6=B1=82=E6=97=B6=E9=97=B4=EF=BC=8C=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E6=97=B6=E9=97=B4=20[3]=20log4Net=E6=8F=92=E5=85=A5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BF=AE=E5=A4=8D=20=E9=95=BF?= =?UTF-8?q?=E5=BA=A6=E4=B8=8D=E5=A4=9F=E5=AF=BC=E8=87=B4=E4=B8=8D=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=20=E5=8E=9F=E5=9B=A0=EF=BC=9A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=E4=B8=8D=E5=A4=9F=E5=AF=BC=E8=87=B4=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=95=B0=E6=8D=AE=E6=B2=A1=E8=AE=B0=E5=BD=95=20?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=9A=E4=BF=AE=E6=94=B9=E4=B8=89=E4=B8=AA?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=99=A8=E5=AD=97=E6=AE=B5=EF=BC=88message?= =?UTF-8?q?=E5=92=8Cexception=EF=BC=89=E9=95=BF=E5=BA=A6=E4=B8=BA999999?= =?UTF-8?q?=EF=BC=9B=E4=BB=A3=E7=A0=81=EF=BC=9A=EF=BC=8C=E6=95=B0=E6=8D=AE=E5=BA=93=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BAtext=20[4]=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=BB=BA=E8=A1=A8=E8=84=9A=E6=9C=AC?= =?UTF-8?q?,=E4=BD=BF=E7=94=A8text=E7=B1=BB=E5=9E=8B=20[5]=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=99=BB=E5=BD=95=E9=A6=96=E9=A1=B5=20[6]=20=E5=8F=91?= =?UTF-8?q?=E9=80=81=E6=97=A5=E5=BF=97=E4=BC=9A=E5=A2=9E=E5=A4=A7=E5=86=85?= =?UTF-8?q?=E5=AD=98=E6=B6=88=E8=80=97=E5=AF=BC=E8=87=B4=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E5=BE=88=E6=85=A2=EF=BC=8C=E6=B7=BB=E5=8A=A0=E4=B8=8A=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=BC=80=E5=85=B3SignalrSendLog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/MonitorController.cs | 7 +- Blog.Core.Api/Filter/GlobalExceptionFilter.cs | 8 +- Blog.Core.Api/Log4net.config | 231 ++++++++++++------ Blog.Core.Api/appsettings.json | 3 + Blog.Core.Api/wwwroot/css/site.css | 71 ++++++ Blog.Core.Api/wwwroot/css/style.css | 132 ++++++++++ Blog.Core.Api/wwwroot/js/anime.min.js | 33 +++ Blog.Core.Api/wwwroot/js/site.js | 4 + Blog.Core.Api/wwwroot/swg-login.html | 109 +++++++-- Blog.Core.Common/Hubs/ChatHub.cs | 10 +- Blog.Core.Common/LogHelper/LogLock.cs | 44 +++- Blog.Core.Common/LogHelper/RequestInfo.cs | 49 ++++ Blog.Core.Extensions/AOP/BlogLogAOP.cs | 103 ++++++-- 13 files changed, 672 insertions(+), 132 deletions(-) create mode 100644 Blog.Core.Api/wwwroot/css/site.css create mode 100644 Blog.Core.Api/wwwroot/css/style.css create mode 100644 Blog.Core.Api/wwwroot/js/anime.min.js create mode 100644 Blog.Core.Api/wwwroot/js/site.js diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index f725d4e3..ba7194c4 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -69,9 +69,10 @@ public MessageModel Server() [HttpGet] public MessageModel> Get() { - - _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); - + if (!Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) + { + _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); + } return Success>(null, "执行成功"); } diff --git a/Blog.Core.Api/Filter/GlobalExceptionFilter.cs b/Blog.Core.Api/Filter/GlobalExceptionFilter.cs index 4a39efc2..f51795d2 100644 --- a/Blog.Core.Api/Filter/GlobalExceptionFilter.cs +++ b/Blog.Core.Api/Filter/GlobalExceptionFilter.cs @@ -1,4 +1,5 @@ -using Blog.Core.Common.Helper; +using Blog.Core.Common; +using Blog.Core.Common.Helper; using Blog.Core.Common.LogHelper; using Blog.Core.Hubs; using Blog.Core.Model; @@ -55,8 +56,11 @@ public void OnException(ExceptionContext context) //采用log4net 进行错误日志记录 _loggerHelper.LogError(json.msg + WriteLog(json.msg, context.Exception)); + if (!Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) + { + _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); + } - _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); } diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config index ab6106de..1e65e805 100644 --- a/Blog.Core.Api/Log4net.config +++ b/Blog.Core.Api/Log4net.config @@ -204,14 +204,15 @@ + - + - + @@ -253,7 +254,7 @@ - + @@ -261,7 +262,7 @@ - + @@ -274,9 +275,9 @@ - + - + @@ -318,7 +319,7 @@ - + @@ -326,7 +327,7 @@ - + @@ -339,9 +340,9 @@ - + - + @@ -383,7 +384,7 @@ - + @@ -391,7 +392,7 @@ - + @@ -435,77 +436,153 @@ Source Server : Nine 何拾玖 Source Server Type : SQL Server - Source Server Version : 14001000 - Source Host : fangding.picp - Source Catalog : WitCloud_pdman + Source Server Version : 15004198 + Source Host : Nine.Design.Jamnine + Source Catalog : NineDesignApiByAntD Source Schema : dbo Target Server Type : SQL Server Target Server Version : 14001000 File Encoding : 65001 - Date: 15/10/2021 14:54:44 + Date: 12/04/2022 15:14:23 */ -CREATE TABLE GblLogError( - Id INT NOT NULL IDENTITY(1,1) , - Date DATETIME NOT NULL , - Thread VARCHAR(255) NOT NULL , - Level VARCHAR(50) NOT NULL , - Logger VARCHAR(255) NOT NULL , - Message VARCHAR(4000) NOT NULL , - Exception VARCHAR(2000) , - CONSTRAINT PK_GblLogError PRIMARY KEY CLUSTERED (Id ASC ) ON [PRIMARY] -) ;; - -EXECUTE sp_addextendedproperty N'MS_Description', '错误日志记录表', N'user', N'dbo', N'table', N'GblLogError', NULL, NULL;; -EXECUTE sp_addextendedproperty N'MS_Description', 'ID', N'user', N'dbo', N'table', N'GblLogError', N'column', N'Id';; -EXECUTE sp_addextendedproperty N'MS_Description', '时间', N'user', N'dbo', N'table', N'GblLogError', N'column', N'Date';; -EXECUTE sp_addextendedproperty N'MS_Description', '线程', N'user', N'dbo', N'table', N'GblLogError', N'column', N'Thread';; -EXECUTE sp_addextendedproperty N'MS_Description', '等级', N'user', N'dbo', N'table', N'GblLogError', N'column', N'Level';; -EXECUTE sp_addextendedproperty N'MS_Description', '记录器', N'user', N'dbo', N'table', N'GblLogError', N'column', N'Logger';; -EXECUTE sp_addextendedproperty N'MS_Description', '错误信息', N'user', N'dbo', N'table', N'GblLogError', N'column', N'Message';; -EXECUTE sp_addextendedproperty N'MS_Description', '异常', N'user', N'dbo', N'table', N'GblLogError', N'column', N'Exception';; - -CREATE TABLE GblLogDebug( - Id INT NOT NULL IDENTITY(1,1) , - Date DATETIME NOT NULL , - Thread VARCHAR(255) NOT NULL , - Level VARCHAR(50) NOT NULL , - Logger VARCHAR(255) NOT NULL , - Message VARCHAR(4000) NOT NULL , - Exception VARCHAR(2000) , - CONSTRAINT PK_GblLogDebug PRIMARY KEY CLUSTERED (Id ASC ) ON [PRIMARY] -) ;; - -EXECUTE sp_addextendedproperty N'MS_Description', '调试日志记录表', N'user', N'dbo', N'table', N'GblLogDebug', NULL, NULL;; -EXECUTE sp_addextendedproperty N'MS_Description', 'ID', N'user', N'dbo', N'table', N'GblLogDebug', N'column', N'Id';; -EXECUTE sp_addextendedproperty N'MS_Description', '时间', N'user', N'dbo', N'table', N'GblLogDebug', N'column', N'Date';; -EXECUTE sp_addextendedproperty N'MS_Description', '线程', N'user', N'dbo', N'table', N'GblLogDebug', N'column', N'Thread';; -EXECUTE sp_addextendedproperty N'MS_Description', '等级', N'user', N'dbo', N'table', N'GblLogDebug', N'column', N'Level';; -EXECUTE sp_addextendedproperty N'MS_Description', '记录器', N'user', N'dbo', N'table', N'GblLogDebug', N'column', N'Logger';; -EXECUTE sp_addextendedproperty N'MS_Description', '错误信息', N'user', N'dbo', N'table', N'GblLogDebug', N'column', N'Message';; -EXECUTE sp_addextendedproperty N'MS_Description', '异常', N'user', N'dbo', N'table', N'GblLogDebug', N'column', N'Exception';; - -CREATE TABLE GblLogInfo( - Id INT NOT NULL IDENTITY(1,1) , - Date DATETIME NOT NULL , - Thread VARCHAR(255) NOT NULL , - Level VARCHAR(50) NOT NULL , - Logger VARCHAR(255) NOT NULL , - Message VARCHAR(4000) NOT NULL , - Exception VARCHAR(2000) , - CONSTRAINT PK_GblLogInfo PRIMARY KEY CLUSTERED (Id ASC ) ON [PRIMARY] -) ;; - -EXECUTE sp_addextendedproperty N'MS_Description', '信息日志记录表', N'user', N'dbo', N'table', N'GblLogInfo', NULL, NULL;; -EXECUTE sp_addextendedproperty N'MS_Description', 'ID', N'user', N'dbo', N'table', N'GblLogInfo', N'column', N'Id';; -EXECUTE sp_addextendedproperty N'MS_Description', '时间', N'user', N'dbo', N'table', N'GblLogInfo', N'column', N'Date';; -EXECUTE sp_addextendedproperty N'MS_Description', '线程', N'user', N'dbo', N'table', N'GblLogInfo', N'column', N'Thread';; -EXECUTE sp_addextendedproperty N'MS_Description', '等级', N'user', N'dbo', N'table', N'GblLogInfo', N'column', N'Level';; -EXECUTE sp_addextendedproperty N'MS_Description', '记录器', N'user', N'dbo', N'table', N'GblLogInfo', N'column', N'Logger';; -EXECUTE sp_addextendedproperty N'MS_Description', '错误信息', N'user', N'dbo', N'table', N'GblLogInfo', N'column', N'Message';; -EXECUTE sp_addextendedproperty N'MS_Description', '异常', N'user', N'dbo', N'table', N'GblLogInfo', N'column', N'Exception';; - - +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[GblLogDebug]') AND type IN ('U')) + DROP TABLE [dbo].[GblLogDebug] +GO + +CREATE TABLE [dbo].[GblLogDebug] ( + [Id] int IDENTITY(1,1) NOT NULL, + [Date] datetime NOT NULL, + [Thread] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Level] varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Logger] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Message] text COLLATE Chinese_PRC_CI_AS NOT NULL, + [Exception] text COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[GblLogDebug] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty'MS_Description', N'ID','SCHEMA', N'dbo','TABLE', N'GblLogDebug','COLUMN', N'Id' +GO +EXEC sp_addextendedproperty'MS_Description', N'时间','SCHEMA', N'dbo','TABLE', N'GblLogDebug','COLUMN', N'Date' +GO +EXEC sp_addextendedproperty'MS_Description', N'线程','SCHEMA', N'dbo','TABLE', N'GblLogDebug','COLUMN', N'Thread' +GO +EXEC sp_addextendedproperty'MS_Description', N'等级','SCHEMA', N'dbo','TABLE', N'GblLogDebug','COLUMN', N'Level' +GO +EXEC sp_addextendedproperty'MS_Description', N'记录器','SCHEMA', N'dbo','TABLE', N'GblLogDebug','COLUMN', N'Logger' +GO +EXEC sp_addextendedproperty'MS_Description', N'错误信息','SCHEMA', N'dbo','TABLE', N'GblLogDebug','COLUMN', N'Message' +GO +EXEC sp_addextendedproperty'MS_Description', N'异常','SCHEMA', N'dbo','TABLE', N'GblLogDebug','COLUMN', N'Exception' +GO +EXEC sp_addextendedproperty'MS_Description', N'调试日志记录表','SCHEMA', N'dbo','TABLE', N'GblLogDebug' +GO +DBCC CHECKIDENT ('[dbo].[GblLogDebug]', RESEED, 1) +GO +ALTER TABLE [dbo].[GblLogDebug] ADD CONSTRAINT [PK_GblLogDebug] PRIMARY KEY CLUSTERED ([Id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[GblLogError]') AND type IN ('U')) + DROP TABLE [dbo].[GblLogError] +GO + +CREATE TABLE [dbo].[GblLogError] ( + [Id] int IDENTITY(1,1) NOT NULL, + [Date] datetime NOT NULL, + [Thread] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Level] varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Logger] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Message] text COLLATE Chinese_PRC_CI_AS NOT NULL, + [Exception] text COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[GblLogError] SET (LOCK_ESCALATION = TABLE) +GO +EXEC sp_addextendedproperty'MS_Description', N'ID','SCHEMA', N'dbo','TABLE', N'GblLogError','COLUMN', N'Id' +GO +EXEC sp_addextendedproperty'MS_Description', N'时间','SCHEMA', N'dbo','TABLE', N'GblLogError','COLUMN', N'Date' +GO +EXEC sp_addextendedproperty'MS_Description', N'线程','SCHEMA', N'dbo','TABLE', N'GblLogError','COLUMN', N'Thread' +GO +EXEC sp_addextendedproperty'MS_Description', N'等级','SCHEMA', N'dbo','TABLE', N'GblLogError','COLUMN', N'Level' +GO +EXEC sp_addextendedproperty'MS_Description', N'记录器','SCHEMA', N'dbo','TABLE', N'GblLogError','COLUMN', N'Logger' +GO +EXEC sp_addextendedproperty'MS_Description', N'错误信息','SCHEMA', N'dbo','TABLE', N'GblLogError','COLUMN', N'Message' +GO +EXEC sp_addextendedproperty'MS_Description', N'异常','SCHEMA', N'dbo','TABLE', N'GblLogError','COLUMN', N'Exception' +GO +EXEC sp_addextendedproperty'MS_Description', N'错误日志记录表','SCHEMA', N'dbo','TABLE', N'GblLogError' +GO +DBCC CHECKIDENT ('[dbo].[GblLogError]', RESEED, 1) +GO +ALTER TABLE [dbo].[GblLogError] ADD CONSTRAINT [PK_GblLogError] PRIMARY KEY CLUSTERED ([Id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[GblLogInfo]') AND type IN ('U')) + DROP TABLE [dbo].[GblLogInfo] +GO + +CREATE TABLE [dbo].[GblLogInfo] ( + [Id] int IDENTITY(1,1) NOT NULL, + [Date] datetime NOT NULL, + [Thread] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Level] varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Logger] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [Message] text COLLATE Chinese_PRC_CI_AS NOT NULL, + [Exception] text COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[GblLogInfo] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty'MS_Description', N'ID','SCHEMA', N'dbo','TABLE', N'GblLogInfo','COLUMN', N'Id' +GO +EXEC sp_addextendedproperty'MS_Description', N'时间','SCHEMA', N'dbo','TABLE', N'GblLogInfo','COLUMN', N'Date' +GO +EXEC sp_addextendedproperty'MS_Description', N'线程','SCHEMA', N'dbo','TABLE', N'GblLogInfo','COLUMN', N'Thread' +GO +EXEC sp_addextendedproperty'MS_Description', N'等级','SCHEMA', N'dbo','TABLE', N'GblLogInfo','COLUMN', N'Level' +GO +EXEC sp_addextendedproperty'MS_Description', N'记录器','SCHEMA', N'dbo','TABLE', N'GblLogInfo','COLUMN', N'Logger' +GO +EXEC sp_addextendedproperty'MS_Description', N'错误信息','SCHEMA', N'dbo','TABLE', N'GblLogInfo','COLUMN', N'Message' +GO +EXEC sp_addextendedproperty'MS_Description', N'异常','SCHEMA', N'dbo','TABLE', N'GblLogInfo','COLUMN', N'Exception' +GO +EXEC sp_addextendedproperty'MS_Description', N'信息日志记录表','SCHEMA', N'dbo','TABLE', N'GblLogInfo' +GO + +DBCC CHECKIDENT ('[dbo].[GblLogInfo]', RESEED, 1) +GO + +ALTER TABLE [dbo].[GblLogInfo] ADD CONSTRAINT [PK_GblLogInfo] PRIMARY KEY CLUSTERED ([Id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + +--> + + + \ No newline at end of file diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 23ab9c65..58da11e0 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -206,6 +206,9 @@ "SignalR": { "Enabled": false }, + "SignalRSendLog": { + "Enabled": false + }, "QuartzNetJob": { "Enabled": true }, diff --git a/Blog.Core.Api/wwwroot/css/site.css b/Blog.Core.Api/wwwroot/css/site.css new file mode 100644 index 00000000..e679a8ea --- /dev/null +++ b/Blog.Core.Api/wwwroot/css/site.css @@ -0,0 +1,71 @@ +/* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification +for details on configuring this project to bundle and minify static web assets. */ + +a.navbar-brand { + white-space: normal; + text-align: center; + word-break: break-all; +} + +/* Provide sufficient contrast against white background */ +a { + color: #0366d6; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.nav-pills .nav-link.active, .nav-pills .show > .nav-link { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +/* Sticky footer styles +-------------------------------------------------- */ +html { + font-size: 14px; +} +@media (min-width: 768px) { + html { + font-size: 16px; + } +} + +.border-top { + border-top: 1px solid #e5e5e5; +} +.border-bottom { + border-bottom: 1px solid #e5e5e5; +} + +.box-shadow { + box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); +} + +button.accept-policy { + font-size: 1rem; + line-height: inherit; +} + +/* Sticky footer styles +-------------------------------------------------- */ +html { + position: relative; + min-height: 100%; +} + +body { + /* Margin bottom by footer height */ + margin-bottom: 60px; +} +.footer { + position: absolute; + bottom: 0; + width: 100%; + white-space: nowrap; + line-height: 60px; /* Vertically center the text there */ +} diff --git a/Blog.Core.Api/wwwroot/css/style.css b/Blog.Core.Api/wwwroot/css/style.css new file mode 100644 index 00000000..f8fe18dd --- /dev/null +++ b/Blog.Core.Api/wwwroot/css/style.css @@ -0,0 +1,132 @@ +@charset "utf-8"; +::selection { + background: #2D2F36; +} +::-webkit-selection { + background: #2D2F36; +} +::-moz-selection { + background: #2D2F36; +} +body { + background: white; + font-family: 'Inter UI', sans-serif; + margin: 0; + padding: 20px; +} +.page { + background: #e2e2e5; + display: flex; + flex-direction: column; + height: calc(100% - 40px); + position: absolute; + place-content: center; + width: calc(100% - 40px); +} +@media (max-width: 767px) { + .page { + height: auto; + margin-bottom: 20px; + padding-bottom: 20px; + } +} +.container { + display: flex; + height: 320px; + margin: 0 auto; + width: 640px; +} +@media (max-width: 767px) { + .container { + flex-direction: column; + height: 630px; + width: 320px; + } +} +.left { + background: white; + height: calc(100% - 40px); + top: 20px; + position: relative; + width: 50%; +} +@media (max-width: 767px) { + .left { + height: 100%; + left: 20px; + width: calc(100% - 40px); + max-height: 270px; + } +} +.login { + font-size: 33px; + font-weight: 900; + margin: 50px 40px 40px; +} +.eula { + color: #999; + font-size: 14px; + line-height: 1.5; + margin: 40px; +} +.right { + background: #474A59; + box-shadow: 0px 0px 40px 16px rgba(0,0,0,0.22); + color: #F1F1F2; + position: relative; + width: 50%; +} +@media (max-width: 767px) { + .right { + flex-shrink: 0; + height: 100%; + width: 100%; + max-height: 350px; + } +} +svg { + position: absolute; + width: 320px; +} +path { + fill: none; + stroke: url(#linearGradient);; + stroke-width: 4; + stroke-dasharray: 240 1386; +} +.form { + margin: 40px; + position: absolute; +} +label { + color: #c2c2c5; + display: block; + font-size: 14px; + height: 16px; + margin-top: 20px; + margin-bottom: 5px; +} +input { + background: transparent; + border: 0; + color: #f2f2f2; + font-size: 20px; + height: 30px; + line-height: 30px; + outline: none !important; + width: 100%; +} +input::-moz-focus-inner { + border: 0; +} +#submit { + color: #707075; + margin-top: 40px; + transition: color 300ms; +} +#submit:focus { + color: #f2f2f2; +} +#submit:active { + color: #d0d0d2; +} \ No newline at end of file diff --git a/Blog.Core.Api/wwwroot/js/anime.min.js b/Blog.Core.Api/wwwroot/js/anime.min.js new file mode 100644 index 00000000..c3993246 --- /dev/null +++ b/Blog.Core.Api/wwwroot/js/anime.min.js @@ -0,0 +1,33 @@ +/* + 2017 Julian Garnier + Released under the MIT license +*/ +var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(e,r,p){if(p.get||p.set)throw new TypeError("ES3 does not support getters and setters.");e!=Array.prototype&&e!=Object.prototype&&(e[r]=p.value)};$jscomp.getGlobal=function(e){return"undefined"!=typeof window&&window===e?e:"undefined"!=typeof global&&null!=global?global:e};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_"; +$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(e){return $jscomp.SYMBOL_PREFIX+(e||"")+$jscomp.symbolCounter_++}; +$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var e=$jscomp.global.Symbol.iterator;e||(e=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[e]&&$jscomp.defineProperty(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(e){var r=0;return $jscomp.iteratorPrototype(function(){return rb&&(b+=1);1b?c:b<2/3?a+(c-a)*(2/3-b)*6:a}var d=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(a)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(a);a=parseInt(d[1])/360;var b=parseInt(d[2])/100,f=parseInt(d[3])/100,d=d[4]||1;if(0==b)f=b=a=f;else{var n=.5>f?f*(1+b):f+b-f*b,k=2*f-n,f=c(k,n,a+1/3),b=c(k,n,a);a=c(k,n,a-1/3)}return"rgba("+ +255*f+","+255*b+","+255*a+","+d+")"}function y(a){if(a=/([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a))return a[2]}function V(a){if(-1=g.currentTime)for(var G=0;G=w||!k)g.began||(g.began=!0,f("begin")),f("run");if(q>n&&q=k&&r!==k||!k)b(k),x||e();f("update");a>=k&&(g.remaining?(t=h,"alternate"===g.direction&&(g.reversed=!g.reversed)):(g.pause(),g.completed||(g.completed=!0,f("complete"),"Promise"in window&&(p(),m=c()))),l=0)}a=void 0===a?{}:a;var h,t,l=0,p=null,m=c(),g=fa(a);g.reset=function(){var a=g.direction,c=g.loop;g.currentTime= +0;g.progress=0;g.paused=!0;g.began=!1;g.completed=!1;g.reversed="reverse"===a;g.remaining="alternate"===a&&1===c?2:c;b(0);for(a=g.children.length;a--;)g.children[a].reset()};g.tick=function(a){h=a;t||(t=h);k((l+h-t)*q.speed)};g.seek=function(a){k(d(a))};g.pause=function(){var a=v.indexOf(g);-1=c&&0<=b&&1>=b){var e=new Float32Array(11);if(c!==d||b!==f)for(var k=0;11>k;++k)e[k]=a(.1*k,c,b);return function(k){if(c===d&&b===f)return k;if(0===k)return 0;if(1===k)return 1;for(var h=0,l=1;10!==l&&e[l]<=k;++l)h+=.1;--l;var l=h+(k-e[l])/(e[l+1]-e[l])*.1,n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(.001<=n){for(h=0;4>h;++h){n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(0===n)break;var m=a(l,c,b)-k,l=l-m/n}k=l}else if(0=== +n)k=l;else{var l=h,h=h+.1,g=0;do m=l+(h-l)/2,n=a(m,c,b)-k,0++g);k=m}return a(k,d,f)}}}}(),Q=function(){function a(a,b){return 0===a||1===a?a:-Math.pow(2,10*(a-1))*Math.sin(2*(a-1-b/(2*Math.PI)*Math.asin(1))*Math.PI/b)}var c="Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "),d={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],a],Out:[[.25, +.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(b,c){return 1-a(1-b,c)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(b,c){return.5>b?a(2*b,c)/2:1-a(-2*b+2,c)/2}]},b={linear:A(.25,.25,.75,.75)},f={},e;for(e in d)f.type=e,d[f.type].forEach(function(a){return function(d,f){b["ease"+a.type+c[f]]=h.fnc(d)? +d:A.apply($jscomp$this,d)}}(f)),f={type:f.type};return b}(),ha={css:function(a,c,d){return a.style[c]=d},attribute:function(a,c,d){return a.setAttribute(c,d)},object:function(a,c,d){return a[c]=d},transform:function(a,c,d,b,f){b[f]||(b[f]=[]);b[f].push(c+"("+d+")")}},v=[],B=0,ia=function(){function a(){B=requestAnimationFrame(c)}function c(c){var b=v.length;if(b){for(var d=0;db&&(c.duration=d.duration);c.children.push(d)});c.seek(0);c.reset();c.autoplay&&c.restart();return c};return c};q.random=function(a,c){return Math.floor(Math.random()*(c-a+1))+a};return q}); \ No newline at end of file diff --git a/Blog.Core.Api/wwwroot/js/site.js b/Blog.Core.Api/wwwroot/js/site.js new file mode 100644 index 00000000..ac49c186 --- /dev/null +++ b/Blog.Core.Api/wwwroot/js/site.js @@ -0,0 +1,4 @@ +// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification +// for details on configuring this project to bundle and minify static web assets. + +// Write your JavaScript code. diff --git a/Blog.Core.Api/wwwroot/swg-login.html b/Blog.Core.Api/wwwroot/swg-login.html index fdd32fda..ee133d27 100644 --- a/Blog.Core.Api/wwwroot/swg-login.html +++ b/Blog.Core.Api/wwwroot/swg-login.html @@ -2,25 +2,106 @@ - 默认首页 - - + 登录 - 接口文档 + + + -
    -
    -

    用户名:admin,密码:admin

    - -
    - -
    - +
    +
    +
    +
    + + +
    欢迎使用!
    +
    用户名:admin,密码:admin
    +
    +
    + + + + + + + + + +
    + + + + + +
    +
    +
    + + \ No newline at end of file diff --git a/Blog.Core.Common/Hubs/ChatHub.cs b/Blog.Core.Common/Hubs/ChatHub.cs index 1033ccb6..1e1ea55a 100644 --- a/Blog.Core.Common/Hubs/ChatHub.cs +++ b/Blog.Core.Common/Hubs/ChatHub.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Blog.Core.Common; using Blog.Core.Common.LogHelper; using Microsoft.AspNetCore.SignalR; @@ -72,7 +73,7 @@ public override Task OnDisconnectedAsync(System.Exception ex) public async Task SendMessage(string user, string message) { - await Clients.All.ReceiveMessage( user, message); + await Clients.All.ReceiveMessage(user, message); } //定于一个通讯管道,用来管理我们和客户端的连接 @@ -80,7 +81,12 @@ public async Task SendMessage(string user, string message) public async Task GetLatestCount(string random) { //2、服务端主动向客户端发送数据,名字千万不能错 - await Clients.All.ReceiveUpdate(LogLock.GetLogData()); + if (!Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) + { + await Clients.All.ReceiveUpdate(LogLock.GetLogData()); + } + + //3、客户端再通过 ReceiveUpdate ,来接收 diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index 0a55df53..5cd7668c 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -53,7 +53,38 @@ public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHe } //string logFilePath = Path.Combine(path, $@"{filename}.log"); var logFilePath = FileHelper.GetAvailableFileWithPrefixOrderSize(folderPath, prefix); - + switch (prefix) + { + case "AOPLog": + ApiLogAopInfo apiLogAopInfo = JsonConvert.DeserializeObject(dataParas[0]); + //记录被拦截方法信息的日志信息 + var dataIntercept = "" + + $"【操作时间】:{apiLogAopInfo.RequestTime}\r\n" + + $"【当前操作用户】:{ apiLogAopInfo.OpUserName} \r\n" + + $"【当前执行方法】:{ apiLogAopInfo.RequestMethodName} \r\n" + + $"【携带的参数有】: {apiLogAopInfo.RequestParamsName} \r\n" + + $"【携带的参数JSON】: {apiLogAopInfo.RequestParamsData} \r\n" + + $"【响应时间】:{apiLogAopInfo.ResponseIntervalTime}\r\n" + + $"【执行完成时间】:{apiLogAopInfo.ResponseTime}\r\n" + + $"【执行完成结果】:{apiLogAopInfo.ResponseJsonData}\r\n"; + dataParas = new string[] { dataIntercept }; + break; + case "AOPLogEx": + ApiLogAopExInfo apiLogAopExInfo = JsonConvert.DeserializeObject(dataParas[0]); + var dataInterceptEx = "" + + $"【操作时间】:{apiLogAopExInfo.ApiLogAopInfo.RequestTime}\r\n" + + $"【当前操作用户】:{ apiLogAopExInfo.ApiLogAopInfo.OpUserName} \r\n" + + $"【当前执行方法】:{ apiLogAopExInfo.ApiLogAopInfo.RequestMethodName} \r\n" + + $"【携带的参数有】: {apiLogAopExInfo.ApiLogAopInfo.RequestParamsName} \r\n" + + $"【携带的参数JSON】: {apiLogAopExInfo.ApiLogAopInfo.RequestParamsData} \r\n" + + $"【响应时间】:{apiLogAopExInfo.ApiLogAopInfo.ResponseIntervalTime}\r\n" + + $"【执行完成时间】:{apiLogAopExInfo.ApiLogAopInfo.ResponseTime}\r\n" + + $"【执行完成结果】:{apiLogAopExInfo.ApiLogAopInfo.ResponseJsonData}\r\n" + + $"【执行完成异常信息】:方法中出现异常:{apiLogAopExInfo.ExMessage}\r\n" + + $"【执行完成异常】:方法中出现异常:{apiLogAopExInfo.InnerException}\r\n"; + dataParas = new string[] { dataInterceptEx }; + break; + } var now = DateTime.Now; string logContent = String.Join("\r\n", dataParas); if (IsHeader) @@ -97,14 +128,10 @@ public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHe public static void OutSql2LogToDB(string prefix, string[] dataParas, bool IsHeader = true) { - string logContent = String.Join("\r\n", dataParas); + string logContent = String.Join("", dataParas); if (IsHeader) { - logContent = ( - "--------------------------------\r\n" + - DateTime.Now + "|\r\n" + - String.Join("\r\n", dataParas) + "\r\n" - ); + logContent = (String.Join("", dataParas)); } switch (prefix) { @@ -123,6 +150,9 @@ public static void OutSql2LogToDB(string prefix, string[] dataParas, bool IsHead case "SqlLog": log.Info(logContent); break; + case "RequestResponseLog": + log.Debug(logContent); + break; default: break; } diff --git a/Blog.Core.Common/LogHelper/RequestInfo.cs b/Blog.Core.Common/LogHelper/RequestInfo.cs index 9e4aac27..c5973f89 100644 --- a/Blog.Core.Common/LogHelper/RequestInfo.cs +++ b/Blog.Core.Common/LogHelper/RequestInfo.cs @@ -39,4 +39,53 @@ public class RequestInfo public string Week { get; set; } } + + public class ApiLogAopInfo + { + /// + /// 请求时间 + /// + public string RequestTime { get; set; } = string.Empty; + /// + /// 操作人员 + /// + public string OpUserName { get; set; } = string.Empty; + /// + /// 请求方法名 + /// + public string RequestMethodName { get; set; } = string.Empty; + /// + /// 请求参数名 + /// + public string RequestParamsName { get; set; } = string.Empty; + /// + /// 请求参数数据JSON + /// + public string RequestParamsData { get; set; } = string.Empty; + /// + /// 请求响应间隔时间 + /// + public string ResponseIntervalTime { get; set; } = string.Empty; + /// + /// 响应时间 + /// + public string ResponseTime { get; set; } = string.Empty; + /// + /// 响应结果 + /// + public string ResponseJsonData { get; set; } = string.Empty; + } + + public class ApiLogAopExInfo + { + public ApiLogAopInfo ApiLogAopInfo { get; set; } + /// + /// 异常 + /// + public string InnerException { get; set; } = string.Empty; + /// + /// 异常信息 + /// + public string ExMessage { get; set; } = string.Empty; + } } diff --git a/Blog.Core.Extensions/AOP/BlogLogAOP.cs b/Blog.Core.Extensions/AOP/BlogLogAOP.cs index e7153c78..46d1d1c9 100644 --- a/Blog.Core.Extensions/AOP/BlogLogAOP.cs +++ b/Blog.Core.Extensions/AOP/BlogLogAOP.cs @@ -1,4 +1,5 @@ -using Blog.Core.Common.LogHelper; +using Blog.Core.Common; +using Blog.Core.Common.LogHelper; using Blog.Core.Hubs; using Castle.DynamicProxy; using Microsoft.AspNetCore.Http; @@ -34,12 +35,33 @@ public BlogLogAOP(IHubContext hubContext, IHttpContextAccessor accessor public void Intercept(IInvocation invocation) { string UserName = _accessor.HttpContext?.User?.Identity?.Name; + string json; + try + { + json = JsonConvert.SerializeObject(invocation.Arguments); + } + catch (Exception ex) + { + json = "无法序列化,可能是兰姆达表达式等原因造成,按照框架优化代码" + ex.ToString(); + } + DateTime startTime = DateTime.Now; + ApiLogAopInfo apiLogAopInfo = new ApiLogAopInfo + { + RequestTime = startTime.ToString("yyyy-MM-dd hh:mm:ss fff"), + OpUserName = UserName, + RequestMethodName = invocation.Method.Name, + RequestParamsName = string.Join(", ", invocation.Arguments.Select(a => (a ?? "").ToString()).ToArray()), + ResponseJsonData = json + }; + + //测试异常记录 + //Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")); //记录被拦截方法信息的日志信息 - var dataIntercept = "" + - $"【当前操作用户】:{ UserName} \r\n" + - $"【当前执行方法】:{ invocation.Method.Name} \r\n" + - $"【携带的参数有】: {string.Join(", ", invocation.Arguments.Select(a => (a ?? "").ToString()).ToArray())} \r\n"; + //var dataIntercept = "" + + // $"【当前操作用户】:{ UserName} \r\n" + + // $"【当前执行方法】:{ invocation.Method.Name} \r\n" + + // $"【携带的参数有】: {string.Join(", ", invocation.Arguments.Select(a => (a ?? "").ToString()).ToArray())} \r\n"; try { @@ -58,10 +80,10 @@ public void Intercept(IInvocation invocation) { invocation.ReturnValue = InternalAsyncHelper.AwaitTaskWithPostActionAndFinally( (Task)invocation.ReturnValue, - async () => await SuccessAction(invocation, dataIntercept),/*成功时执行*/ + async () => await SuccessAction(invocation, apiLogAopInfo, startTime),/*成功时执行*/ ex => { - LogEx(ex, dataIntercept); + LogEx(ex, apiLogAopInfo); }); } //Task @@ -71,10 +93,10 @@ public void Intercept(IInvocation invocation) invocation.Method.ReturnType.GenericTypeArguments[0], invocation.ReturnValue, //async () => await SuccessAction(invocation, dataIntercept),/*成功时执行*/ - async (o) => await SuccessAction(invocation, dataIntercept, o),/*成功时执行*/ + async (o) => await SuccessAction(invocation, apiLogAopInfo, startTime, o),/*成功时执行*/ ex => { - LogEx(ex, dataIntercept); + LogEx(ex, apiLogAopInfo); }); } #endregion @@ -85,35 +107,54 @@ public void Intercept(IInvocation invocation) //var type = invocation.Method.ReturnType; //var resultProperty = type.GetProperty("Result"); - //dataIntercept += ($"【执行完成结果】:{JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue))}"); + //DateTime endTime = DateTime.Now; + //string ResponseTime = (endTime - startTime).Milliseconds.ToString(); + //apiLogAopInfo.ResponseTime = endTime.ToString("yyyy-MM-dd hh:mm:ss fff"); + //apiLogAopInfo.ResponseIntervalTime = ResponseTime + "ms"; + //apiLogAopInfo.ResponseJsonData = JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue)); + + ////dataIntercept += ($"【响应时间】:{ResponseTime}ms\r\n"); + ////dataIntercept += ($"【执行完成时间】:{endTime.ToString("yyyy-MM-dd hh:mm:ss fff")}\r\n"); + ////dataIntercept += ($"【执行完成结果】:{JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue))}\r\n"); //Parallel.For(0, 1, e => //{ - // LogLock.OutSql2Log("AOPLog", new string[] { dataIntercept }); + // //LogLock.OutLogAOP("AOPLog", new string[] { dataIntercept }); + // LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); //}); #endregion } else - {// 同步1 - - dataIntercept += ($"【执行完成结果】:{invocation.ReturnValue}"); + { + // 同步1 + string jsonResult; + try + { + jsonResult = JsonConvert.SerializeObject(invocation.ReturnValue); + } + catch (Exception ex) + { + jsonResult = "无法序列化,可能是兰姆达表达式等原因造成,按照框架优化代码" + ex.ToString(); + } + apiLogAopInfo.ResponseJsonData = jsonResult; Parallel.For(0, 1, e => { - LogLock.OutSql2Log("AOPLog", new string[] { dataIntercept }); + LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); }); } } catch (Exception ex)// 同步2 { - LogEx(ex, dataIntercept); - + LogEx(ex, apiLogAopInfo); + } + if (!Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) + { + _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); } - - _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); } - private async Task SuccessAction(IInvocation invocation, string dataIntercept, object o = null) + private async Task SuccessAction(IInvocation invocation, ApiLogAopInfo apiLogAopInfo, DateTime startTime, object o = null) { //invocation.ReturnValue = o; //var type = invocation.Method.ReturnType; @@ -127,32 +168,40 @@ private async Task SuccessAction(IInvocation invocation, string dataIntercept, o //{ // dataIntercept += ($"【执行完成结果】:{invocation.ReturnValue}"); //} - - dataIntercept += ($"【执行完成结果】:{JsonConvert.SerializeObject(o)}"); + DateTime endTime = DateTime.Now; + string ResponseTime = (endTime - startTime).Milliseconds.ToString(); + apiLogAopInfo.ResponseTime = endTime.ToString("yyyy-MM-dd hh:mm:ss fff"); + apiLogAopInfo.ResponseIntervalTime = ResponseTime + "ms"; + apiLogAopInfo.ResponseJsonData = JsonConvert.SerializeObject(o); await Task.Run(() => { Parallel.For(0, 1, e => { - LogLock.OutSql2Log("AOPLog", new string[] { dataIntercept }); + LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); }); }); } - private void LogEx(Exception ex, string dataIntercept) + private void LogEx(Exception ex, ApiLogAopInfo apiLogAopInfo) { if (ex != null) { //执行的 service 中,收录异常 MiniProfiler.Current.CustomTiming("Errors:", ex.Message); //执行的 service 中,捕获异常 - dataIntercept += ($"【执行完成结果】:方法中出现异常:{ex.Message + ex.InnerException}\r\n"); - + //dataIntercept += ($"【执行完成结果】:方法中出现异常:{ex.Message + ex.InnerException}\r\n"); + ApiLogAopExInfo apiLogAopExInfo = new ApiLogAopExInfo + { + ExMessage = ex.Message, + InnerException = ex.InnerException.ToString(), + ApiLogAopInfo = apiLogAopInfo + }; // 异常日志里有详细的堆栈信息 Parallel.For(0, 1, e => { - LogLock.OutSql2Log("AOPLog", new string[] { dataIntercept }); + LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopExInfo) }); }); } } From a5e7f74a699081e4b54bd2e9d71953cf8c92f758 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E6=8B=BE=E7=8E=96?= Date: Fri, 15 Apr 2022 11:45:24 +0800 Subject: [PATCH 138/382] Update MonitorController.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改发送signalR逻辑,粗心大意写错逻辑判断if (Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) --- Blog.Core.Api/Controllers/MonitorController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index ba7194c4..1ad278ab 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -69,7 +69,7 @@ public MessageModel Server() [HttpGet] public MessageModel> Get() { - if (!Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) + if (Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) { _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); } From 895b788660110223628750286b65c278a82b3b8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E6=8B=BE=E7=8E=96?= Date: Fri, 15 Apr 2022 11:45:58 +0800 Subject: [PATCH 139/382] Update GlobalExceptionFilter.cs if (Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) --- Blog.Core.Api/Filter/GlobalExceptionFilter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/Filter/GlobalExceptionFilter.cs b/Blog.Core.Api/Filter/GlobalExceptionFilter.cs index f51795d2..9abd32fc 100644 --- a/Blog.Core.Api/Filter/GlobalExceptionFilter.cs +++ b/Blog.Core.Api/Filter/GlobalExceptionFilter.cs @@ -56,7 +56,7 @@ public void OnException(ExceptionContext context) //采用log4net 进行错误日志记录 _loggerHelper.LogError(json.msg + WriteLog(json.msg, context.Exception)); - if (!Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) + if (Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) { _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); } From d9aa83e46290840b24030b9f222d12f4909920a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E6=8B=BE=E7=8E=96?= Date: Fri, 15 Apr 2022 11:46:52 +0800 Subject: [PATCH 140/382] Update ChatHub.cs if (Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) --- Blog.Core.Common/Hubs/ChatHub.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Common/Hubs/ChatHub.cs b/Blog.Core.Common/Hubs/ChatHub.cs index 1e1ea55a..09a08c7d 100644 --- a/Blog.Core.Common/Hubs/ChatHub.cs +++ b/Blog.Core.Common/Hubs/ChatHub.cs @@ -81,7 +81,7 @@ public async Task SendMessage(string user, string message) public async Task GetLatestCount(string random) { //2、服务端主动向客户端发送数据,名字千万不能错 - if (!Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) + if (Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) { await Clients.All.ReceiveUpdate(LogLock.GetLogData()); } From 9bee0c65970c4037f65ea66d1085c9d1b81022d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E6=8B=BE=E7=8E=96?= Date: Fri, 15 Apr 2022 11:47:44 +0800 Subject: [PATCH 141/382] Update BlogLogAOP.cs if (Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) --- Blog.Core.Extensions/AOP/BlogLogAOP.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Extensions/AOP/BlogLogAOP.cs b/Blog.Core.Extensions/AOP/BlogLogAOP.cs index 46d1d1c9..a9c38bb1 100644 --- a/Blog.Core.Extensions/AOP/BlogLogAOP.cs +++ b/Blog.Core.Extensions/AOP/BlogLogAOP.cs @@ -148,7 +148,7 @@ public void Intercept(IInvocation invocation) { LogEx(ex, apiLogAopInfo); } - if (!Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) + if (Appsettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) { _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); } From f798b0c6f4c06f2141e08047a0c4319973ac4ab4 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 18 Apr 2022 11:33:04 +0800 Subject: [PATCH 142/382] fix: add fluent validator demo --- Blog.Core.Api/Blog.Core.Api.csproj | 2 + Blog.Core.Api/Blog.Core.xml | 7 +++ Blog.Core.Api/Controllers/ValuesController.cs | 13 ++++++ Blog.Core.Api/Filter/UserRegisterVo.cs | 44 +++++++++++++++++++ Blog.Core.Api/Program.cs | 9 ++++ 5 files changed, 75 insertions(+) create mode 100644 Blog.Core.Api/Filter/UserRegisterVo.cs diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 9c221839..bb20ce43 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -52,6 +52,8 @@ + + diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 27a3c815..f4b35058 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -837,6 +837,13 @@
    + + + 测试Fulent做参数校验 + + + + Put方法 diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index d214ca07..0a2e4f18 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -356,6 +356,19 @@ public async Task WebApiClientGetAsync() return await _blogApi.DetailNuxtNoPerAsync(id); } + /// + /// 测试Fulent做参数校验 + /// + /// + /// + [HttpPost] + [AllowAnonymous] + public async Task FluentVaTest([FromBody] UserRegisterVo param) + { + await Task.CompletedTask; + return "Okay"; + } + /// /// Put方法 /// diff --git a/Blog.Core.Api/Filter/UserRegisterVo.cs b/Blog.Core.Api/Filter/UserRegisterVo.cs new file mode 100644 index 00000000..67b707e3 --- /dev/null +++ b/Blog.Core.Api/Filter/UserRegisterVo.cs @@ -0,0 +1,44 @@ +using FluentValidation; +using System.Text.RegularExpressions; + +namespace Blog.Core.Filter +{ + public class UserRegisterVo + { + public string WxUid { get; set; } + + public string Telphone { get; set; } + + public string NickName { get; set; } + + public string SourceType { get; set; } + + } + + public class UserRegisterVoValidator : AbstractValidator + { + public UserRegisterVoValidator() + { + When(x => !string.IsNullOrEmpty(x.NickName) || !string.IsNullOrEmpty(x.Telphone), () => + { + RuleFor(x => x.NickName).Must(e => IsLegalName(e)).WithMessage("请填写合法的姓名,必须是汉字和字母"); + RuleFor(x => x.Telphone).Must(e => IsLegalPhone(e)).WithMessage("请填写正确的手机号码"); + }); + + } + + public static bool IsLegalName(string username) + { + //判断用户名是否合法 + const string pattern = "(^([A-Za-z]|[\u4E00-\u9FA5]){1,10}$)"; + return (!string.IsNullOrEmpty(username) && Regex.IsMatch(username, pattern)); + } + public static bool IsLegalPhone(string phone) + { + //判断手机号 + const string pattern = "(^1\\d{10}$)"; + return (!string.IsNullOrEmpty(phone) && Regex.IsMatch(phone, pattern)); + } + } + +} \ No newline at end of file diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index f9dda121..285025c6 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -13,6 +13,7 @@ using Blog.Core.Hubs; using Blog.Core.IServices; using Blog.Core.Tasks; +using FluentValidation.AspNetCore; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; @@ -110,7 +111,15 @@ //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; options.SerializerSettings.Converters.Add(new StringEnumConverter()); +}) +.AddFluentValidation(config => +{ + //程序集方式添加验证 + config.RegisterValidatorsFromAssemblyContaining(typeof(UserRegisterVoValidator)); + //是否与MvcValidation共存 + config.DisableDataAnnotationsValidation = true; }); + builder.Services.AddEndpointsApiExplorer(); builder.Services.Replace(ServiceDescriptor.Transient()); From 2bc4fbf2972cc53c5b9a322b046b8da0fe192a6f Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 20 Apr 2022 18:14:27 +0800 Subject: [PATCH 143/382] Fixex #271 bug --- Blog.Core.Api/Controllers/ValuesController.cs | 16 +++-- .../ServiceExtensions/HttpRuntimeCache.cs | 67 +++++++++++++++++++ .../ServiceExtensions/SqlsugarSetup.cs | 6 ++ Blog.Core.Repository/BASE/BaseRepository.cs | 2 +- 4 files changed, 83 insertions(+), 8 deletions(-) create mode 100644 Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 0a2e4f18..155d6d19 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -14,13 +14,8 @@ using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Configuration; -using System; -using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using System.Linq; using System.Linq.Expressions; -using System.Threading.Tasks; namespace Blog.Core.Controllers { @@ -106,6 +101,13 @@ public MessageModel> MyClaims() }; } + [HttpGet] + [AllowAnonymous] + public async Task TestSqlsugarWithCache() + { + return await _blogArticleServices.QueryById("1", true); + } + /// /// Get方法 /// @@ -425,12 +427,12 @@ public async Task HttpPollyPost() public async Task HttpPollyGet() { return await _httpPollyHelper.GetAsync(HttpEnum.LocalHost, "/api/ElasticDemo/GetDetailInfo?esid=3130&esindex=chinacodex"); - } + } #endregion [HttpPost] [AllowAnonymous] - public string TestEnum(EnumDemoDto dto)=>dto.Type.ToString(); + public string TestEnum(EnumDemoDto dto) => dto.Type.ToString(); } public class ClaimDto { diff --git a/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs b/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs new file mode 100644 index 00000000..b9b4d7b3 --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs @@ -0,0 +1,67 @@ +using Microsoft.Extensions.Caching.Memory; +using SqlSugar; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; + +namespace Blog.Core.Extensions +{ + /// + /// 实现SqlSugar的ICacheService接口 + /// + public class SqlSugarMemoryCacheService : ICacheService + { + protected IMemoryCache _memoryCache; + public SqlSugarMemoryCacheService(IMemoryCache memoryCache) + { + _memoryCache = memoryCache; + } + public void Add(string key, V value) + { + _memoryCache.Set(key, value); + } + public void Add(string key, V value, int cacheDurationInSeconds) + { + _memoryCache.Set(key, value, DateTimeOffset.Now.AddSeconds(cacheDurationInSeconds)); + } + public bool ContainsKey(string key) + { + return _memoryCache.TryGetValue(key, out _); + } + + public V Get(string key) + { + return _memoryCache.Get(key); + } + + public IEnumerable GetAllKey() + { + const BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic; + var entries = _memoryCache.GetType().GetField("_entries", flags).GetValue(_memoryCache); + var cacheItems = entries as IDictionary; + var keys = new List(); + if (cacheItems == null) return keys; + foreach (DictionaryEntry cacheItem in cacheItems) + { + keys.Add(cacheItem.Key.ToString()); + } + return keys; + } + + public V GetOrCreate(string cacheKey, Func create, int cacheDurationInSeconds = int.MaxValue) + { + if (!_memoryCache.TryGetValue(cacheKey, out V value)) + { + value = create(); + _memoryCache.Set(cacheKey, value, DateTime.Now.AddSeconds(cacheDurationInSeconds)); + } + return value; + } + + public void Remove(string key) + { + _memoryCache.Remove(key); + } + } +} diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 8dd04c30..18498ac0 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -2,6 +2,7 @@ using Blog.Core.Common.DB; using Blog.Core.Common.Helper; using Blog.Core.Common.LogHelper; +using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection; using SqlSugar; using StackExchange.Profiling; @@ -16,6 +17,8 @@ namespace Blog.Core.Extensions /// public static class SqlsugarSetup { + private static readonly MemoryCache Cache = new MemoryCache(new MemoryCacheOptions()); + public static void AddSqlsugarSetup(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); @@ -26,6 +29,8 @@ public static void AddSqlsugarSetup(this IServiceCollection services) // 把多个连接对象注入服务,这里必须采用Scope,因为有事务操作 services.AddScoped(o => { + var memoryCache = o.GetRequiredService(); + // 连接字符串 var listConfig = new List(); // 从库 @@ -81,6 +86,7 @@ public static void AddSqlsugarSetup(this IServiceCollection services) // 自定义特性 ConfigureExternalServices = new ConfigureExternalServices() { + DataInfoCacheService = new SqlSugarMemoryCacheService(memoryCache), EntityService = (property, column) => { if (column.IsPrimarykey && property.PropertyType == typeof(int)) diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index bb83b4c5..0af39b85 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -67,7 +67,7 @@ public async Task QueryById(object objId) public async Task QueryById(object objId, bool blnUseCache = false) { //return await Task.Run(() => _db.Queryable().WithCacheIF(blnUseCache).InSingle(objId)); - return await _db.Queryable().WithCacheIF(blnUseCache).In(objId).SingleAsync(); + return await _db.Queryable().WithCacheIF(blnUseCache, 10).In(objId).SingleAsync(); } /// From 4e07c20e40b3a10b9dc6c28db6445aaff8405e54 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 21 Apr 2022 13:19:30 +0800 Subject: [PATCH 144/382] Update UserRegisterVo.cs --- Blog.Core.Api/Filter/UserRegisterVo.cs | 27 ++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Filter/UserRegisterVo.cs b/Blog.Core.Api/Filter/UserRegisterVo.cs index 67b707e3..163a39e3 100644 --- a/Blog.Core.Api/Filter/UserRegisterVo.cs +++ b/Blog.Core.Api/Filter/UserRegisterVo.cs @@ -12,17 +12,29 @@ public class UserRegisterVo public string NickName { get; set; } public string SourceType { get; set; } + public IEnumerable Cars { get; set; } } + public class CarInfo + { + public int CarCount { get; set; } + public int CarSize { get; set; } + } + public class UserRegisterVoValidator : AbstractValidator { public UserRegisterVoValidator() { When(x => !string.IsNullOrEmpty(x.NickName) || !string.IsNullOrEmpty(x.Telphone), () => { - RuleFor(x => x.NickName).Must(e => IsLegalName(e)).WithMessage("请填写合法的姓名,必须是汉字和字母"); - RuleFor(x => x.Telphone).Must(e => IsLegalPhone(e)).WithMessage("请填写正确的手机号码"); + RuleFor(x => x.NickName) + .Must(e => IsLegalName(e)).WithMessage("请填写合法的姓名,必须是汉字和字母"); + RuleFor(x => x.Telphone) + .Must(e => IsLegalPhone(e)).WithMessage("请填写正确的手机号码"); + RuleFor(x => x.Cars) + .NotNull().NotEmpty().WithMessage("车辆信息不正确"); + RuleForEach(x => x.Cars).SetValidator(new CarInfoValidator()); }); } @@ -40,5 +52,16 @@ public static bool IsLegalPhone(string phone) return (!string.IsNullOrEmpty(phone) && Regex.IsMatch(phone, pattern)); } } + public class CarInfoValidator : AbstractValidator + { + public CarInfoValidator() + { + RuleFor(x => x.CarCount) + .GreaterThanOrEqualTo(0).WithMessage("车辆数量必须大于等于0") + .LessThanOrEqualTo(500).WithMessage($"存在车型数量已达上限"); + RuleFor(x => x.CarSize) + .IsInEnum().WithMessage("车型不正确"); + } + } } \ No newline at end of file From 4caf3cdfa1be10b68a08f8c29c95de52e4beb988 Mon Sep 17 00:00:00 2001 From: weiguang3100 Date: Mon, 25 Apr 2022 11:31:25 +0800 Subject: [PATCH 145/382] =?UTF-8?q?=E4=BF=AE=E6=94=B9DeleteById(object=20i?= =?UTF-8?q?d)=20=E4=BD=8E=E7=89=88=E6=9C=AC=E6=8A=A5=E9=94=99=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Repository/BASE/BaseRepository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 0af39b85..9ac75731 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -200,7 +200,7 @@ public async Task Delete(TEntity entity) /// public async Task DeleteById(object id) { - return await _db.Deleteable(id).ExecuteCommandHasChangeAsync(); + return await _db.Deleteable().In(id).ExecuteCommandHasChangeAsync(); } /// From 45de851fd3295e7e774060a8fae97827ab447857 Mon Sep 17 00:00:00 2001 From: __Leo__ Date: Wed, 27 Apr 2022 15:50:13 +0800 Subject: [PATCH 146/382] use model binding in InsertPicture --- Blog.Core.Api/Blog.Core.xml | 6 +- Blog.Core.Api/Controllers/ImgController.cs | 71 ++++++++------------- Blog.Core.Model/Blog.Core.Model.csproj | 1 + Blog.Core.Model/ViewModels/UploadFileDto.cs | 25 ++++++++ 4 files changed, 55 insertions(+), 48 deletions(-) create mode 100644 Blog.Core.Model/ViewModels/UploadFileDto.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index f4b35058..b796db32 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -160,12 +160,12 @@ - + - 上传图片,多文件,可以使用 postman 测试, - 如果是单文件,可以 参数写 IFormFile file1 + 上传图片,多文件 + diff --git a/Blog.Core.Api/Controllers/ImgController.cs b/Blog.Core.Api/Controllers/ImgController.cs index 716db28e..2f52b54b 100644 --- a/Blog.Core.Api/Controllers/ImgController.cs +++ b/Blog.Core.Api/Controllers/ImgController.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Threading.Tasks; using Blog.Core.Model; +using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; @@ -16,7 +17,7 @@ namespace Blog.Core.Controllers [Route("api/[controller]")] [ApiController] [Authorize] - public class ImgController : Controller + public class ImgController : BaseApiController { // GET: api/Download /// @@ -42,71 +43,51 @@ public FileStreamResult DownImg([FromServices] IWebHostEnvironment environment) } /// - /// 上传图片,多文件,可以使用 postman 测试, - /// 如果是单文件,可以 参数写 IFormFile file1 + /// 上传图片,多文件 /// /// + /// /// [HttpPost] [Route("/images/Upload/Pic")] - public async Task> InsertPicture([FromServices] IWebHostEnvironment environment) + public async Task> InsertPicture([FromServices] IWebHostEnvironment environment, [FromForm]UploadFileDto dto) { - var data = new MessageModel(); - string path = string.Empty; - string foldername = "images"; - IFormFileCollection files = null; - - - // 获取提交的文件 - files = Request.Form.Files; - // 获取附带的数据 - var max_ver = Request.Form["max_ver"].ObjToString(); - - - if (files == null || !files.Any()) { data.msg = "请选择上传的文件。"; return data; } + + if (dto.Files == null || !dto.Files.Any()) return Failed("请选择上传的文件。"); //格式限制 var allowType = new string[] { "image/jpg", "image/png", "image/jpeg" }; + + var allowedFile = dto.Files.Where(c => allowType.Contains(c.ContentType)); + if (!allowedFile.Any()) return Failed("图片格式错误"); + if (allowedFile.Sum(c => c.Length) > 1024 * 1024 * 4) return Failed("图片过大"); + string foldername = "images"; string folderpath = Path.Combine(environment.WebRootPath, foldername); if (!Directory.Exists(folderpath)) { Directory.CreateDirectory(folderpath); } - - if (files.Any(c => allowType.Contains(c.ContentType))) + foreach (var file in allowedFile) { - if (files.Sum(c => c.Length) <= 1024 * 1024 * 4) - { - //foreach (var file in files) - var file = files.FirstOrDefault(); - string strpath = Path.Combine(foldername, DateTime.Now.ToString("MMddHHmmss") + Path.GetFileName(file.FileName)); - path = Path.Combine(environment.WebRootPath, strpath); - - using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) - { - await file.CopyToAsync(stream); - } - - data = new MessageModel() - { - response = strpath, - msg = "上传成功", - success = true, - }; - return data; - } - else + string strpath = Path.Combine(foldername, DateTime.Now.ToString("MMddHHmmss") + Path.GetFileName(file.FileName)); + var path = Path.Combine(environment.WebRootPath, strpath); + + using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { - data.msg = "图片过大"; - return data; + await file.CopyToAsync(stream); } } - else + var excludeFiles = dto.Files.Except(allowedFile); + + if (excludeFiles.Any()) { - data.msg = "图片格式错误"; - return data; + var infoMsg = $"{string.Join('、', excludeFiles.Select(c => c.FileName))} 图片格式错误"; + return Success(null, infoMsg); } + + return Success(null, "上传成功"); + } diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index e97f4e95..72dd7025 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -15,6 +15,7 @@ + diff --git a/Blog.Core.Model/ViewModels/UploadFileDto.cs b/Blog.Core.Model/ViewModels/UploadFileDto.cs new file mode 100644 index 00000000..fc2b3cf7 --- /dev/null +++ b/Blog.Core.Model/ViewModels/UploadFileDto.cs @@ -0,0 +1,25 @@ +using Microsoft.AspNetCore.Http; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Model.ViewModels +{ + public class UploadFileDto + { + //多文件 + [Required] + public IFormFileCollection Files { get; set; } + + //单文件 + //public IFormFile File { get; set; } + + //其他数据 + public string Foo { get; set; } + + + } +} From d021ddda8348d851ffde7f5b5c5f526b1d598e93 Mon Sep 17 00:00:00 2001 From: __Leo__ Date: Thu, 5 May 2022 09:59:08 +0800 Subject: [PATCH 147/382] Using DI in ImgController --- Blog.Core.Api/Blog.Core.xml | 6 ++-- Blog.Core.Api/Controllers/ImgController.cs | 33 +++++++++++----------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index b796db32..3292c434 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -153,18 +153,16 @@ 图片管理 - + 下载图片(支持中文字符) - - + 上传图片,多文件 - diff --git a/Blog.Core.Api/Controllers/ImgController.cs b/Blog.Core.Api/Controllers/ImgController.cs index 2f52b54b..11d9d209 100644 --- a/Blog.Core.Api/Controllers/ImgController.cs +++ b/Blog.Core.Api/Controllers/ImgController.cs @@ -1,12 +1,6 @@ -using System; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Blog.Core.Model; +using Blog.Core.Model; using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace Blog.Core.Controllers @@ -19,18 +13,26 @@ namespace Blog.Core.Controllers [Authorize] public class ImgController : BaseApiController { + + private readonly IWebHostEnvironment _env; + + public ImgController(IWebHostEnvironment webHostEnvironment) + { + _env = webHostEnvironment; + } + + // GET: api/Download /// /// 下载图片(支持中文字符) /// - /// /// [HttpGet] [Route("/images/Down/Pic")] - public FileStreamResult DownImg([FromServices] IWebHostEnvironment environment) + public FileStreamResult DownImg() { string foldername = ""; - string filepath = Path.Combine(environment.WebRootPath, foldername, "测试下载中文名称的图片.png"); + string filepath = Path.Combine(_env.WebRootPath, foldername, "测试下载中文名称的图片.png"); var stream = System.IO.File.OpenRead(filepath); string fileExt = ".jpg"; // 这里可以写一个获取文件扩展名的方法,获取扩展名 //获取文件的ContentType @@ -45,12 +47,11 @@ public FileStreamResult DownImg([FromServices] IWebHostEnvironment environment) /// /// 上传图片,多文件 /// - /// /// /// [HttpPost] [Route("/images/Upload/Pic")] - public async Task> InsertPicture([FromServices] IWebHostEnvironment environment, [FromForm]UploadFileDto dto) + public async Task> InsertPicture([FromForm]UploadFileDto dto) { if (dto.Files == null || !dto.Files.Any()) return Failed("请选择上传的文件。"); @@ -62,7 +63,7 @@ public async Task> InsertPicture([FromServices] IWebHostEnv if (allowedFile.Sum(c => c.Length) > 1024 * 1024 * 4) return Failed("图片过大"); string foldername = "images"; - string folderpath = Path.Combine(environment.WebRootPath, foldername); + string folderpath = Path.Combine(_env.WebRootPath, foldername); if (!Directory.Exists(folderpath)) { Directory.CreateDirectory(folderpath); @@ -70,7 +71,7 @@ public async Task> InsertPicture([FromServices] IWebHostEnv foreach (var file in allowedFile) { string strpath = Path.Combine(foldername, DateTime.Now.ToString("MMddHHmmss") + Path.GetFileName(file.FileName)); - var path = Path.Combine(environment.WebRootPath, strpath); + var path = Path.Combine(_env.WebRootPath, strpath); using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { @@ -95,14 +96,14 @@ public async Task> InsertPicture([FromServices] IWebHostEnv [HttpGet] [Route("/images/Down/Bmd")] [AllowAnonymous] - public FileStreamResult DownBmd([FromServices] IWebHostEnvironment environment, string filename) + public FileStreamResult DownBmd(string filename) { if (string.IsNullOrEmpty(filename)) { return null; } // 前端 blob 接收,具体查看前端admin代码 - string filepath = Path.Combine(environment.WebRootPath, Path.GetFileName(filename)); + string filepath = Path.Combine(_env.WebRootPath, Path.GetFileName(filename)); if (System.IO.File.Exists(filepath)) { var stream = System.IO.File.OpenRead(filepath); From 4a942dd4e426459dabb5aa5d2d87b0d9604b653c Mon Sep 17 00:00:00 2001 From: KimiDing Date: Mon, 6 Jun 2022 12:10:17 +0800 Subject: [PATCH 148/382] =?UTF-8?q?MongoRepository=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MongoRepository/IMongoBaseRepository.cs | 5 +- .../MongoRepository/MongoBaseRepository.cs | 16 +++++ .../DependencyInjection/DI_Test.cs | 2 + .../MongoRepository_Base_Should.cs | 60 +++++++++++++++++++ 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 Blog.Core.Tests/Repository_Test/MongoRepository_Base_Should.cs diff --git a/Blog.Core.Repository/MongoRepository/IMongoBaseRepository.cs b/Blog.Core.Repository/MongoRepository/IMongoBaseRepository.cs index 28278d39..627ffff7 100644 --- a/Blog.Core.Repository/MongoRepository/IMongoBaseRepository.cs +++ b/Blog.Core.Repository/MongoRepository/IMongoBaseRepository.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using MongoDB.Driver; +using System.Collections.Generic; using System.Threading.Tasks; namespace Blog.Core.Repository.MongoRepository @@ -9,5 +10,7 @@ public interface IMongoBaseRepository where TEntity : class Task AddAsync(TEntity entity); Task GetAsync(int Id); Task> GetListAsync(); + Task GetByObjectIdAsync(string Id); + Task> GetListFilterAsync(FilterDefinition filter); } } diff --git a/Blog.Core.Repository/MongoRepository/MongoBaseRepository.cs b/Blog.Core.Repository/MongoRepository/MongoBaseRepository.cs index 20899f71..feca1f51 100644 --- a/Blog.Core.Repository/MongoRepository/MongoBaseRepository.cs +++ b/Blog.Core.Repository/MongoRepository/MongoBaseRepository.cs @@ -31,11 +31,27 @@ public async Task GetAsync(int Id) .FirstOrDefaultAsync(); } + public async Task GetByObjectIdAsync(string Id) + { + var filter = Builders.Filter.Eq("_id", ObjectId.Parse(Id)); + + return await _context.Db.GetCollection(typeof(TEntity).Name) + .Find(filter) + .FirstOrDefaultAsync(); + } + public async Task> GetListAsync() { return await _context.Db.GetCollection(typeof(TEntity).Name) .Find(new BsonDocument()) .ToListAsync(); } + + public async Task> GetListFilterAsync(FilterDefinition filter) + { + + return await _context.Db.GetCollection(typeof(TEntity).Name) + .Find(filter).ToListAsync(); + } } } diff --git a/Blog.Core.Tests/DependencyInjection/DI_Test.cs b/Blog.Core.Tests/DependencyInjection/DI_Test.cs index fe12e2fe..3bab74e3 100644 --- a/Blog.Core.Tests/DependencyInjection/DI_Test.cs +++ b/Blog.Core.Tests/DependencyInjection/DI_Test.cs @@ -11,6 +11,7 @@ using Blog.Core.Extensions; using Blog.Core.IRepository.Base; using Blog.Core.Repository.Base; +using Blog.Core.Repository.MongoRepository; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.Extensions.DependencyInjection; @@ -107,6 +108,7 @@ public IContainer DICollections() //指定已扫描程序集中的类型注册为提供所有其实现的接口。 builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IBaseRepository<>)).InstancePerDependency();//注册仓储 + builder.RegisterGeneric(typeof(MongoBaseRepository<>)).As(typeof(IMongoBaseRepository<>)).InstancePerDependency();//注册仓储 // 属性注入 var controllerBaseType = typeof(ControllerBase); diff --git a/Blog.Core.Tests/Repository_Test/MongoRepository_Base_Should.cs b/Blog.Core.Tests/Repository_Test/MongoRepository_Base_Should.cs new file mode 100644 index 00000000..678125c3 --- /dev/null +++ b/Blog.Core.Tests/Repository_Test/MongoRepository_Base_Should.cs @@ -0,0 +1,60 @@ +using Blog.Core.Model.Models; +using Xunit; +using System; +using System.Linq; +using Autofac; +using Blog.Core.IRepository.Base; +using Blog.Core.Repository.MongoRepository; +using MongoDB.Bson.Serialization.Attributes; +using MongoDB.Bson; +using MongoDB.Driver; + +namespace Blog.Core.Tests +{ + public class MongoRepository_Base_Should + { + public class MongoTest + { + [BsonId] + public ObjectId id { get; set; } + public string name { get; set; } + public bool isDel { get; set; } + public DateTime time { get; set; } + } + + private IMongoBaseRepository baseRepository; + DI_Test dI_Test = new DI_Test(); + + public MongoRepository_Base_Should() + { + + var container = dI_Test.DICollections(); + + baseRepository = container.Resolve>(); + } + + + [Fact] + public async void Add_Test() + { + await baseRepository.AddAsync(new MongoTest { isDel = false, name = "test", time = DateTime.UtcNow }); + } + + [Fact] + public async void GetObjectId_Test() + { + var data = await baseRepository.GetByObjectIdAsync("612b9b0be677976fa0f0cfa2"); + + Assert.NotNull(data); + } + + + [Fact] + public async void GetListFilter_Test() + { + var data = await baseRepository.GetListFilterAsync(new FilterDefinitionBuilder().Gte("time", DateTime.Parse("2022-06-01"))); + + Assert.NotNull(data); + } + } +} From 78b68aaaf23adf1486bfa295229804ddb911f48c Mon Sep 17 00:00:00 2001 From: zhanganzhong <3143422472@qq.com> Date: Thu, 23 Jun 2022 15:37:21 +0800 Subject: [PATCH 149/382] fix: bump newtonsoft --- Blog.Core.Api/Blog.Core.Api.csproj | 2 +- Blog.Core.Api/Blog.Core.xml | 1 + Blog.Core.Api/Controllers/UserController.cs | 1 + Blog.Core.EventBus/Blog.Core.EventBus.csproj | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index bb20ce43..95c91140 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -6,7 +6,7 @@ net6.0 enable - OutOfProcess + Linux true diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 3292c434..4d68aaad 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -646,6 +646,7 @@ + diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index e42a5359..e100b884 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -41,6 +41,7 @@ public class UserController : BaseApiController /// /// /// + /// /// /// /// diff --git a/Blog.Core.EventBus/Blog.Core.EventBus.csproj b/Blog.Core.EventBus/Blog.Core.EventBus.csproj index c61cc131..a8a478ab 100644 --- a/Blog.Core.EventBus/Blog.Core.EventBus.csproj +++ b/Blog.Core.EventBus/Blog.Core.EventBus.csproj @@ -12,7 +12,7 @@ - + From 6caf37a63fc784a81e1435644822b6fbb1e142f6 Mon Sep 17 00:00:00 2001 From: zhanganzhong <3143422472@qq.com> Date: Thu, 30 Jun 2022 14:10:16 +0800 Subject: [PATCH 150/382] Update Log4net.config --- Blog.Core.Api/Log4net.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config index 1e65e805..a576a246 100644 --- a/Blog.Core.Api/Log4net.config +++ b/Blog.Core.Api/Log4net.config @@ -412,8 +412,8 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -421,9 +498,10 @@ --> - + + diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 4fd3243b..e7338230 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -52,23 +52,29 @@ "Enabled": true }, "LogAOP": { - "Enabled": false + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + } }, "TranAOP": { "Enabled": true }, "SqlAOP": { "Enabled": true, - "OutToLogFile": { + "LogToFile": { "Enabled": false }, - "OutToConsole": { + "LogToDB": { + "Enabled": false + }, + "LogToConsole": { "Enabled": true } }, - "LogToDb": { - "Enabled": true - }, "Date": "2018-08-28", "SeedDBEnabled": true, //只生成表结构 "SeedDBDataEnabled": true, //生成表,并初始化数据 @@ -194,13 +200,31 @@ }, "Middleware": { "RequestResponseLog": { - "Enabled": false + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + } }, "IPLog": { - "Enabled": true + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + } }, "RecordAccessLogs": { "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + }, "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," }, "SignalR": { diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index 404eb7be..ecff315a 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -23,17 +23,56 @@ public LogLock(string contentPath) _contentRoot = contentPath; } - public static void OutSql2Log(string prefix, string[] dataParas, bool IsHeader = true, bool isWrt = false) + public static void OutLogAOP(string prefix, string[] dataParas, bool IsHeader = true, bool isWrt = false) { - - if (AppSettings.app(new string[] { "AppSettings", "LogToDb", "Enabled" }).ObjToBool()) + string AppSetingNodeName = "AppSettings"; + string AppSetingName = "LogAOP"; + switch (prefix) { - OutSql2LogToDB(prefix, dataParas, IsHeader); + case "AOPLog": + AppSetingName = "LogAOP"; + break; + case "AOPLogEx": + AppSetingName = "LogAOP"; + break; + case "RequestIpInfoLog": + AppSetingNodeName = "Middleware"; + AppSetingName = "IPLog"; + break; + case "RecordAccessLogs": + AppSetingNodeName = "Middleware"; + AppSetingName = "RecordAccessLogs"; + break; + case "SqlLog": + AppSetingName = "SqlAOP"; + break; + case "RequestResponseLog": + AppSetingNodeName = "Middleware"; + AppSetingName = "RequestResponseLog"; + break; + default: + break; } - else + if (AppSettings.app(new string[] { AppSetingNodeName, AppSetingName, "Enabled" }).ObjToBool()) { - OutSql2LogToFile(prefix, dataParas, IsHeader, isWrt); + if (AppSettings.app(new string[] { AppSetingNodeName, AppSetingName, "LogToDB", "Enabled" }).ObjToBool()) + { + OutSql2LogToDB(prefix, dataParas, IsHeader); + } + if (AppSettings.app(new string[] { AppSetingNodeName, AppSetingName, "LogToFile", "Enabled" }).ObjToBool()) + { + OutSql2LogToFile(prefix, dataParas, IsHeader); + } } + + //if (AppSettings.app(new string[] { "AppSettings", "LogFile", "Enabled" }).ObjToBool()) + //{ + // OutSql2LogFile(prefix, dataParas, IsHeader); + //} + //else + //{ + // OutSql2Log(prefix, dataParas, IsHeader); + //} } public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHeader = true, bool isWrt = false) @@ -56,7 +95,7 @@ public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHe switch (prefix) { case "AOPLog": - ApiLogAopInfo apiLogAopInfo = JsonConvert.DeserializeObject(dataParas[0]); + AOPLogInfo apiLogAopInfo = JsonConvert.DeserializeObject(dataParas[1]); //记录被拦截方法信息的日志信息 var dataIntercept = "" + $"【操作时间】:{apiLogAopInfo.RequestTime}\r\n" + @@ -70,7 +109,7 @@ public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHe dataParas = new string[] { dataIntercept }; break; case "AOPLogEx": - ApiLogAopExInfo apiLogAopExInfo = JsonConvert.DeserializeObject(dataParas[0]); + AOPLogExInfo apiLogAopExInfo = JsonConvert.DeserializeObject(dataParas[1]); var dataInterceptEx = "" + $"【操作时间】:{apiLogAopExInfo.ApiLogAopInfo.RequestTime}\r\n" + $"【当前操作用户】:{ apiLogAopExInfo.ApiLogAopInfo.OpUserName} \r\n" + @@ -95,6 +134,12 @@ public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHe String.Join("\r\n", dataParas) + "\r\n" ); } + else + { + logContent = ( + dataParas[1] + ",\r\n" + ); + } //if (logContent.IsNotEmptyOrNull() && logContent.Length > 500) //{ @@ -127,6 +172,13 @@ public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHe } public static void OutSql2LogToDB(string prefix, string[] dataParas, bool IsHeader = true) { + log4net.LogicalThreadContext.Properties["LogType"] = prefix; + if (dataParas.Length >= 2) + { + log4net.LogicalThreadContext.Properties["DataType"] = dataParas[0]; + } + + dataParas = dataParas.Skip(1).ToArray(); string logContent = String.Join("", dataParas); if (IsHeader) @@ -135,6 +187,7 @@ public static void OutSql2LogToDB(string prefix, string[] dataParas, bool IsHead } switch (prefix) { + //DEBUG | INFO | WARN | ERROR | FATAL case "AOPLog": log.Info(logContent); break; diff --git a/Blog.Core.Common/LogHelper/RequestInfo.cs b/Blog.Core.Common/LogHelper/RequestInfo.cs index c5973f89..02160475 100644 --- a/Blog.Core.Common/LogHelper/RequestInfo.cs +++ b/Blog.Core.Common/LogHelper/RequestInfo.cs @@ -40,7 +40,7 @@ public class RequestInfo } - public class ApiLogAopInfo + public class AOPLogInfo { /// /// 请求时间 @@ -76,9 +76,9 @@ public class ApiLogAopInfo public string ResponseJsonData { get; set; } = string.Empty; } - public class ApiLogAopExInfo + public class AOPLogExInfo { - public ApiLogAopInfo ApiLogAopInfo { get; set; } + public AOPLogInfo ApiLogAopInfo { get; set; } /// /// 异常 /// @@ -88,4 +88,22 @@ public class ApiLogAopExInfo /// public string ExMessage { get; set; } = string.Empty; } + + public class RequestLogInfo + { + /// + /// 请求地址 + /// + public string Path { get; set; } + + /// + /// 请求参数 + /// + public string QueryString { get; set; } + + /// + /// Body参数 + /// + public string BodyData { get; set; } + } } diff --git a/Blog.Core.Extensions/AOP/BlogLogAOP.cs b/Blog.Core.Extensions/AOP/BlogLogAOP.cs index 86344c96..18868f43 100644 --- a/Blog.Core.Extensions/AOP/BlogLogAOP.cs +++ b/Blog.Core.Extensions/AOP/BlogLogAOP.cs @@ -45,7 +45,7 @@ public void Intercept(IInvocation invocation) json = "无法序列化,可能是兰姆达表达式等原因造成,按照框架优化代码" + ex.ToString(); } DateTime startTime = DateTime.Now; - ApiLogAopInfo apiLogAopInfo = new ApiLogAopInfo + AOPLogInfo apiLogAopInfo = new AOPLogInfo { RequestTime = startTime.ToString("yyyy-MM-dd hh:mm:ss fff"), OpUserName = UserName, @@ -103,7 +103,7 @@ public void Intercept(IInvocation invocation) // 如果方案一不行,试试这个方案 - #region 方案二 + //#region 方案二 //var type = invocation.Method.ReturnType; //var resultProperty = type.GetProperty("Result"); @@ -120,10 +120,10 @@ public void Intercept(IInvocation invocation) //Parallel.For(0, 1, e => //{ // //LogLock.OutLogAOP("AOPLog", new string[] { dataIntercept }); - // LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); + // LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString() + " - ResponseJsonDataType:" + type, JsonConvert.SerializeObject(apiLogAopInfo) }); //}); - #endregion + //#endregion } else { @@ -137,10 +137,19 @@ public void Intercept(IInvocation invocation) { jsonResult = "无法序列化,可能是兰姆达表达式等原因造成,按照框架优化代码" + ex.ToString(); } + var type = invocation.Method.ReturnType; + var resultProperty = type.GetProperty("Result"); + DateTime endTime = DateTime.Now; + string ResponseTime = (endTime - startTime).Milliseconds.ToString(); + apiLogAopInfo.ResponseTime = endTime.ToString("yyyy-MM-dd hh:mm:ss fff"); + apiLogAopInfo.ResponseIntervalTime = ResponseTime + "ms"; + //apiLogAopInfo.ResponseJsonData = JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue)); apiLogAopInfo.ResponseJsonData = jsonResult; + //dataIntercept += ($"【执行完成结果】:{jsonResult}"); Parallel.For(0, 1, e => { - LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); + //LogLock.OutLogAOP("AOPLog", new string[] { dataIntercept }); + LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); }); } } @@ -154,7 +163,7 @@ public void Intercept(IInvocation invocation) } } - private async Task SuccessAction(IInvocation invocation, ApiLogAopInfo apiLogAopInfo, DateTime startTime, object o = null) + private async Task SuccessAction(IInvocation invocation, AOPLogInfo apiLogAopInfo, DateTime startTime, object o = null) { //invocation.ReturnValue = o; //var type = invocation.Method.ReturnType; @@ -179,12 +188,13 @@ await Task.Run(() => { Parallel.For(0, 1, e => { - LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); + //LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); + LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); }); }); } - private void LogEx(Exception ex, ApiLogAopInfo apiLogAopInfo) + private void LogEx(Exception ex, AOPLogInfo dataIntercept) { if (ex != null) { @@ -192,16 +202,18 @@ private void LogEx(Exception ex, ApiLogAopInfo apiLogAopInfo) MiniProfiler.Current.CustomTiming("Errors:", ex.Message); //执行的 service 中,捕获异常 //dataIntercept += ($"【执行完成结果】:方法中出现异常:{ex.Message + ex.InnerException}\r\n"); - ApiLogAopExInfo apiLogAopExInfo = new ApiLogAopExInfo + AOPLogExInfo apiLogAopExInfo = new AOPLogExInfo { ExMessage = ex.Message, - InnerException = ex.InnerException.ToString(), - ApiLogAopInfo = apiLogAopInfo + InnerException = "InnerException-内部异常:\r\n" + (ex.InnerException == null ? "" : ex.InnerException.InnerException.ToString()) + ("\r\nStackTrace-堆栈跟踪:\r\n") + (ex.StackTrace == null ? "" : ex.StackTrace.ToString()), + ApiLogAopInfo = dataIntercept }; // 异常日志里有详细的堆栈信息 Parallel.For(0, 1, e => { - LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopExInfo) }); + //LogLock.OutLogAOP("AOPLogEx", new string[] { dataIntercept }); + LogLock.OutLogAOP("AOPLogEx", new string[] { apiLogAopExInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopExInfo) }); + }); } } diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index abb3736a..aca15b55 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -20,6 +20,7 @@ + diff --git a/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs index dd2930fb..2710e8a5 100644 --- a/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs @@ -44,6 +44,7 @@ public async Task InvokeAsync(HttpContext context) { // 存储请求数据 var request = context.Request; + var requestInfo = JsonConvert.SerializeObject(new RequestInfo() { Ip = GetClientIP(context), @@ -58,7 +59,8 @@ public async Task InvokeAsync(HttpContext context) // 自定义log输出 Parallel.For(0, 1, e => { - LogLock.OutSql2Log("RequestIpInfoLog", new string[] { requestInfo + "," }, false); + //LogLock.OutSql2Log("RequestIpInfoLog", new string[] { requestInfo + "," }, false); + LogLock.OutLogAOP("RequestIpInfoLog", new string[] { requestInfo.GetType().ToString(), requestInfo }, false); }); //try diff --git a/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs b/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs index eb2e75f4..d2f5e0e5 100644 --- a/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs @@ -106,15 +106,13 @@ public async Task InvokeAsync(HttpContext context) // 自定义log输出 var requestInfo = JsonConvert.SerializeObject(userAccessModel); - //Parallel.For(0, 1, e => - //{ - // LogLock.OutSql2Log("RecordAccessLogs", new string[] { requestInfo + "," }, false); - //}); - - var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RecordAccessLogs"); - SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false); - - + Parallel.For(0, 1, e => + { + //LogLock.OutSql2Log("RecordAccessLogs", new string[] { requestInfo + "," }, false); + LogLock.OutLogAOP("RecordAccessLogs", new string[] { userAccessModel.GetType().ToString(), requestInfo }, false); + }); + //var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RecordAccessLogs"); + //SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false); return Task.CompletedTask; }); diff --git a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs index 4ecde84c..c9281d83 100644 --- a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs @@ -6,6 +6,8 @@ using Blog.Core.Common.LogHelper; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; +using Newtonsoft.Json; +using Ubiety.Dns.Core.Common; namespace Blog.Core.Extensions.Middlewares { @@ -86,17 +88,24 @@ private async Task RequestDataLog(HttpContext context) { var request = context.Request; var sr = new StreamReader(request.Body); - - var content = $" QueryData:{request.Path + request.QueryString}\r\n BodyData:{await sr.ReadToEndAsync()}"; + RequestLogInfo requestResponse = new RequestLogInfo() + { + Path = request.Path, + QueryString = request.QueryString.ToString(), + BodyData = await sr.ReadToEndAsync() + }; + var content = JsonConvert.SerializeObject(requestResponse); + //var content = $" QueryData:{request.Path + request.QueryString}\r\n BodyData:{await sr.ReadToEndAsync()}"; if (!string.IsNullOrEmpty(content)) { - //Parallel.For(0, 1, e => - //{ - // LogLock.OutSql2Log("RequestResponseLog", new string[] { "Request Data:", content }); + Parallel.For(0, 1, e => + { + //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Request Data:", content }); + LogLock.OutLogAOP("RequestResponseLog", new string[] { "Request Data - RequestJsonDataType:" + requestResponse.GetType().ToString(), content }); - //}); - SerilogServer.WriteLog("RequestResponseLog", new string[] { "Request Data:", content }); + }); + //SerilogServer.WriteLog("RequestResponseLog", new string[] { "Request Data:", content }); request.Body.Position = 0; } @@ -113,12 +122,13 @@ private void ResponseDataLog(HttpResponse response, MemoryStream ms) if (!string.IsNullOrEmpty(responseBody)) { - //Parallel.For(0, 1, e => - //{ - // LogLock.OutSql2Log("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); + Parallel.For(0, 1, e => + { + //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); + LogLock.OutLogAOP("RequestResponseLog", new string[] { "Response Data - ResponseJsonDataType:" + responseBody.GetType().ToString(), responseBody }); - //}); - SerilogServer.WriteLog("RequestResponseLog", new string[] { "Response Data:", responseBody }); + }); + //SerilogServer.WriteLog("RequestResponseLog", new string[] { "Response Data:", responseBody }); } } } diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index cec466a7..2102f580 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -66,7 +66,8 @@ public static void AddSqlsugarSetup(this IServiceCollection services) Parallel.For(0, 1, e => { MiniProfiler.Current.CustomTiming("SQL:", GetParas(p) + "【SQL语句】:" + sql); - LogLock.OutSql2Log("SqlLog", new string[] { GetParas(p), "【SQL语句】:" + sql }); + //LogLock.OutSql2Log("SqlLog", new string[] { GetParas(p), "【SQL语句】:" + sql }); + LogLock.OutLogAOP("SqlLog", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); }); } diff --git a/Blog.Core.Model/Models/GblLogAudit.cs b/Blog.Core.Model/Models/GblLogAudit.cs new file mode 100644 index 00000000..8b620684 --- /dev/null +++ b/Blog.Core.Model/Models/GblLogAudit.cs @@ -0,0 +1,64 @@ +using SqlSugar; +using System; + +namespace Blog.Core.Model.Models +{ + /// + /// 用户团队表 + /// + [SugarTable("GblLogAudit", TableDescription = "日志审计")] + public class GblLogAudit + { + /// + ///ID + /// + [SugarColumn(ColumnDescription = "ID", IsNullable = false, IsPrimaryKey = false, IsIdentity = true)] + public int Id { get; set; } + + /// + ///时间 + /// + [SugarColumn(ColumnDescription = "时间", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "datetime")] + public DateTime Date { get; set; } = DateTime.Now; + + /// + ///线程 + /// + [SugarColumn(ColumnDescription = "线程", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + public string Thread { get; set; } + + /// + ///等级 + /// + [SugarColumn(ColumnDescription = "等级", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + public string Level { get; set; } + /// + ///记录器 + /// + [SugarColumn(ColumnDescription = "记录器", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + public string Logger { get; set; } + /// + ///日志类型 + /// + [SugarColumn(ColumnDescription = "日志类型", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + public string LogType { get; set; } + /// + ///数据类型 + /// + [SugarColumn(ColumnDescription = "数据类型", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + public string DataType { get; set; } + + /// + ///错误信息 + /// + [SugarColumn(ColumnDescription = "错误信息", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "text")] + public string Message { get; set; } + + /// + ///异常 + /// + [SugarColumn(ColumnDescription = "异常", IsNullable = true, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "text")] + public string Exception { get; set; } + + } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/TopicDetail.cs b/Blog.Core.Model/Models/TopicDetail.cs index f2f19a3f..87e16ebf 100644 --- a/Blog.Core.Model/Models/TopicDetail.cs +++ b/Blog.Core.Model/Models/TopicDetail.cs @@ -19,7 +19,7 @@ public TopicDetail() [SugarColumn(Length = 200, IsNullable = true)] public string tdName { get; set; } - [SugarColumn(Length = 2000, IsNullable = true)] + [SugarColumn(Length = 6000, IsNullable = true)] public string tdContent { get; set; } [SugarColumn(Length = 2000, IsNullable = true)] diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index 5f433cf6..8aafb164 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -36,6 +36,8 @@ public SysUserInfo(string loginName, string loginPWD) //[SugarColumn(IsNullable = false, ColumnDescription = "登录账号", IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "nvarchar", Length = 50)] //ColumnDescription 表字段备注, 已在MSSQL测试,配合 [SugarTable("SysUserInfo", "用户表")]//('数据库表名','数据库表备注') //可以完整生成 表备注和各个字段的中文备注 + //2022/10/11 + //测试mssql 发现 不写ColumnDescription,写好注释在mssql下也能生成表字段备注 public string LoginName { get; set; } /// diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index 225266b6..b4420153 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -93,7 +93,7 @@ await _accessTrendLogServices.Add(new AccessTrendLog() Parallel.For(0, 1, e => { - LogLock.OutSql2Log("ACCESSTRENDLOG", new string[] { JsonConvert.SerializeObject(activeUserVMs) }, false, true); + LogLock.OutLogAOP("ACCESSTRENDLOG", new string[] { activeUserVMs.GetType().ToString(), JsonConvert.SerializeObject(activeUserVMs) }, false, true); }); } From be0472c598fce09e8e95bd5f576810284c17c10b Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 13 Nov 2022 12:30:15 +0800 Subject: [PATCH 185/382] fix: make some change --- Blog.Core.Api/Blog.Core.Model.xml | 50 +++++++++++++++++++++++++++ Blog.Core.Api/appsettings.json | 8 ++--- Blog.Core.Model/Models/GblLogAudit.cs | 2 +- 3 files changed, 55 insertions(+), 5 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 48c8b1e6..3bbf8fe6 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -376,6 +376,56 @@ Nullable:True + + + 用户团队表 + + + + + ID + + + + + 时间 + + + + + 线程 + + + + + 等级 + + + + + 记录器 + + + + + 日志类型 + + + + + 数据类型 + + + + + 错误信息 + + + + + 异常 + + 博客ID diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index e7338230..e46aef2d 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -52,7 +52,7 @@ "Enabled": true }, "LogAOP": { - "Enabled": true, + "Enabled": false, "LogToFile": { "Enabled": true }, @@ -64,7 +64,7 @@ "Enabled": true }, "SqlAOP": { - "Enabled": true, + "Enabled": false, "LogToFile": { "Enabled": false }, @@ -200,7 +200,7 @@ }, "Middleware": { "RequestResponseLog": { - "Enabled": true, + "Enabled": false, "LogToFile": { "Enabled": true }, @@ -218,7 +218,7 @@ } }, "RecordAccessLogs": { - "Enabled": true, + "Enabled": false, "LogToFile": { "Enabled": true }, diff --git a/Blog.Core.Model/Models/GblLogAudit.cs b/Blog.Core.Model/Models/GblLogAudit.cs index 8b620684..1ee9ba95 100644 --- a/Blog.Core.Model/Models/GblLogAudit.cs +++ b/Blog.Core.Model/Models/GblLogAudit.cs @@ -12,7 +12,7 @@ public class GblLogAudit /// ///ID /// - [SugarColumn(ColumnDescription = "ID", IsNullable = false, IsPrimaryKey = false, IsIdentity = true)] + [SugarColumn(ColumnDescription = "ID", IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } /// From 64a628fa62a74f34df5cb419afb038ad0df83923 Mon Sep 17 00:00:00 2001 From: Nine Date: Wed, 23 Nov 2022 14:05:04 +0800 Subject: [PATCH 186/382] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95=E4=B8=BA?= =?UTF-8?q?SQLite=E7=BB=93=E6=9E=84=E5=8C=96=E6=97=A5=E5=BF=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=EF=BC=8CLogAOP=EF=BC=8CRecordAccessLogs=EF=BC=8CIPLog?= =?UTF-8?q?=EF=BC=8CRequestResponseLog=EF=BC=8C=E9=BB=98=E8=AE=A4=E8=AE=B0?= =?UTF-8?q?=E5=BD=95sqlite=E6=95=B0=E6=8D=AE=E5=BA=93=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=96=87=E4=BB=B6=EF=BC=8CSqlAOP=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=8F=AA=E5=9C=A8=E6=8E=A7=E5=88=B6=E5=8F=B0=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=EF=BC=8C=E4=B8=8D=E8=AE=B0=E5=BD=95=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E5=92=8C=E6=96=87=E4=BB=B6=202.=E8=AE=BE=E7=BD=AEswag?= =?UTF-8?q?ger=E6=89=93=E5=BC=80=E9=BB=98=E8=AE=A4=E6=8A=98=E5=8F=A0?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=8E=A5=E5=8F=A3=E9=87=8F=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=90=8E=EF=BC=8C=E6=9F=A5=E6=89=BE=E5=8F=98=E5=BE=97?= =?UTF-8?q?=E9=BA=BB=E7=83=A6=EF=BC=8C=E8=87=AA=E5=8A=A8=E6=8A=98=E5=8F=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Api.csproj | 3 + Blog.Core.Api/Log4net.config | 601 +----------------- Blog.Core.Api/appsettings.json | 14 +- .../Middlewares/SwaggerMiddleware.cs | 2 + 4 files changed, 23 insertions(+), 597 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index fd45bf7d..38575a55 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -49,6 +49,8 @@ + + @@ -92,6 +94,7 @@ + diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config index 5275d675..132f47d0 100644 --- a/Blog.Core.Api/Log4net.config +++ b/Blog.Core.Api/Log4net.config @@ -1,417 +1,12 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - + + + @@ -477,190 +72,16 @@ - - + + - - - - - - - - - - - - - + + - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index e46aef2d..381c0671 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -52,9 +52,9 @@ "Enabled": true }, "LogAOP": { - "Enabled": false, + "Enabled": true, "LogToFile": { - "Enabled": true + "Enabled": false }, "LogToDB": { "Enabled": true @@ -200,9 +200,9 @@ }, "Middleware": { "RequestResponseLog": { - "Enabled": false, + "Enabled": true, "LogToFile": { - "Enabled": true + "Enabled": false }, "LogToDB": { "Enabled": true @@ -211,16 +211,16 @@ "IPLog": { "Enabled": true, "LogToFile": { - "Enabled": true + "Enabled": false }, "LogToDB": { "Enabled": true } }, "RecordAccessLogs": { - "Enabled": false, + "Enabled": true, "LogToFile": { - "Enabled": true + "Enabled": false }, "LogToDB": { "Enabled": true diff --git a/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs b/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs index 34dfd04c..099b2576 100644 --- a/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs @@ -4,6 +4,7 @@ using Blog.Core.Common; using log4net; using Microsoft.AspNetCore.Builder; +using Swashbuckle.AspNetCore.SwaggerUI; using static Blog.Core.Extensions.CustomApiVersion; namespace Blog.Core.Extensions.Middlewares @@ -38,6 +39,7 @@ public static void UseSwaggerMiddle(this IApplicationBuilder app, Func s throw new Exception(msg); } c.IndexStream = streamHtml; + c.DocExpansion(DocExpansion.None); //->修改界面打开时自动折叠 if (Permissions.IsUseIds4) { From ab3a2c7b82a30a1664be4e7546d653833cdffca5 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Wed, 23 Nov 2022 22:25:17 +0800 Subject: [PATCH 187/382] Update README.md --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 229a36fc..ef68b193 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 优化权限处理器,解决多实例分布式下,权限不同步问题(必须配置Redis); - [x] 增加在线用户查看功能,并实现强制用户下线功能(必须配置Redis); - [x] 增加用户黑名单功能(必须配置Redis); -- [ ] 打算增加岗位功能(单独建表),配合部门使用,目前是字符串(设计中,未完全实现); +- [x] 增加岗位功能(单独建表),配合部门使用; - [ ] 后期优化站内通知功能,其实目前已经有SignalR来实现消息推送了,可以直接用; - [ ] 前端`Blog.Admin.Pro`使用`AntDesignVue`框架(设计中,未完全实现); - [x] 铁粉奖励:如果参与上述功能和其他付费功能开发,可半价获取商业授权; @@ -78,7 +78,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 支持自由切换多种数据库,MySql/SqlServer/Sqlite/Oracle/Postgresql/达梦/人大金仓; - [x] 实现项目启动,自动生成种子数据 ✨; - [x] 实现数据库主键类型配置化,什么类型都可以自定义 ✨; -- [x] 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等; +- [x] 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等,并自动持久化到数据库表🎶; - [x] 支持项目事务处理(若要分布式,用cap即可)✨; - [x] 设计4种 AOP 切面编程,功能涵盖:日志、缓存、审计、事务 ✨; - [x] 支持 T4 代码模板,自动生成每层代码; @@ -121,6 +121,10 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 可配合 Ids4 实现认证中心; +### 自定义全部日志记录图 +![系统架构图](https://img.neters.club/github/log5.png) + + ### 自定义(中间件/服务)启动图 ![系统架构图](https://img.neters.club/github/load-tool.png) From aeae9bc362acf89ce60a888efd2374575afd61d0 Mon Sep 17 00:00:00 2001 From: Nine Date: Thu, 24 Nov 2022 14:12:19 +0800 Subject: [PATCH 188/382] =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=AE=A1=E8=AE=A1?= =?UTF-8?q?=E5=8A=A0=E5=85=A5TraceId=EF=BC=8C=E9=93=BE=E8=B7=AFID=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E6=9F=A5=E8=AF=A2=E6=95=B4=E4=B8=AA=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=89=80=E6=9C=89=E7=9B=B8=E5=85=B3=E6=97=A5=E5=BF=97=EF=BC=8C?= =?UTF-8?q?HttpContext.TraceIdentifier=20=E5=B1=9E=E6=80=A7=EF=BC=88?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=88=96=E8=AE=BE=E7=BD=AE=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E6=A0=87=E8=AF=86=E7=AC=A6=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E5=9C=A8=E8=B7=9F=E8=B8=AA=E6=97=A5=E5=BF=97=E4=B8=AD?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA=E6=AD=A4=E8=AF=B7=E6=B1=82=E3=80=82=EF=BC=89?= =?UTF-8?q?=20=E7=9B=AE=E5=89=8Dsql=E6=89=93=E5=8D=B0=E7=9A=84=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=8A=A0=E5=85=A5=E5=92=8C=E8=AE=A1=E5=88=92=E8=B0=83?= =?UTF-8?q?=E5=BA=A6=E7=9A=84=E6=B2=A1=E6=9C=89=E6=B7=BB=E5=8A=A0TraceId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Model.xml | 5 +++++ Blog.Core.Api/Log4net.config | 10 +++++++++- Blog.Core.Common/LogHelper/LogLock.cs | 11 ++++++----- Blog.Core.Extensions/AOP/BlogLogAOP.cs | 6 +++--- Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs | 2 +- .../Middlewares/RecordAccessLogsMiddleware.cs | 2 +- .../Middlewares/RequRespLogMiddleware.cs | 4 ++-- .../ServiceExtensions/SqlsugarSetup.cs | 2 +- Blog.Core.Model/Models/GblLogAudit.cs | 6 ++++++ .../QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs | 2 +- 10 files changed, 35 insertions(+), 15 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 3bbf8fe6..36975d11 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -386,6 +386,11 @@ ID + + + HttpContext.TraceIdentifier 事件链路ID(获取或设置一个唯一标识符,用于在跟踪日志中表示此请求。) + + 时间 diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config index 132f47d0..3e718044 100644 --- a/Blog.Core.Api/Log4net.config +++ b/Blog.Core.Api/Log4net.config @@ -7,7 +7,7 @@ - + @@ -67,6 +67,14 @@ + + + + + + + + diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index ecff315a..70c5f7f2 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -23,7 +23,7 @@ public LogLock(string contentPath) _contentRoot = contentPath; } - public static void OutLogAOP(string prefix, string[] dataParas, bool IsHeader = true, bool isWrt = false) + public static void OutLogAOP(string prefix, string traceId, string[] dataParas, bool IsHeader = true) { string AppSetingNodeName = "AppSettings"; string AppSetingName = "LogAOP"; @@ -57,11 +57,11 @@ public static void OutLogAOP(string prefix, string[] dataParas, bool IsHeader = { if (AppSettings.app(new string[] { AppSetingNodeName, AppSetingName, "LogToDB", "Enabled" }).ObjToBool()) { - OutSql2LogToDB(prefix, dataParas, IsHeader); + OutSql2LogToDB(prefix, traceId, dataParas, IsHeader); } if (AppSettings.app(new string[] { AppSetingNodeName, AppSetingName, "LogToFile", "Enabled" }).ObjToBool()) { - OutSql2LogToFile(prefix, dataParas, IsHeader); + OutSql2LogToFile(prefix, traceId, dataParas, IsHeader); } } @@ -75,7 +75,7 @@ public static void OutLogAOP(string prefix, string[] dataParas, bool IsHeader = //} } - public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHeader = true, bool isWrt = false) + public static void OutSql2LogToFile(string prefix, string traceId, string[] dataParas, bool IsHeader = true, bool isWrt = false) { try { @@ -170,9 +170,10 @@ public static void OutSql2LogToFile(string prefix, string[] dataParas, bool IsHe LogWriteLock.ExitWriteLock(); } } - public static void OutSql2LogToDB(string prefix, string[] dataParas, bool IsHeader = true) + public static void OutSql2LogToDB(string prefix, string traceId, string[] dataParas, bool IsHeader = true) { log4net.LogicalThreadContext.Properties["LogType"] = prefix; + log4net.LogicalThreadContext.Properties["TraceId"] = traceId; if (dataParas.Length >= 2) { log4net.LogicalThreadContext.Properties["DataType"] = dataParas[0]; diff --git a/Blog.Core.Extensions/AOP/BlogLogAOP.cs b/Blog.Core.Extensions/AOP/BlogLogAOP.cs index 18868f43..29861578 100644 --- a/Blog.Core.Extensions/AOP/BlogLogAOP.cs +++ b/Blog.Core.Extensions/AOP/BlogLogAOP.cs @@ -149,7 +149,7 @@ public void Intercept(IInvocation invocation) Parallel.For(0, 1, e => { //LogLock.OutLogAOP("AOPLog", new string[] { dataIntercept }); - LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); + LogLock.OutLogAOP("AOPLog", _accessor.HttpContext?.TraceIdentifier, new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); }); } } @@ -189,7 +189,7 @@ await Task.Run(() => Parallel.For(0, 1, e => { //LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); - LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); + LogLock.OutLogAOP("AOPLog", _accessor.HttpContext?.TraceIdentifier, new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); }); }); } @@ -212,7 +212,7 @@ private void LogEx(Exception ex, AOPLogInfo dataIntercept) Parallel.For(0, 1, e => { //LogLock.OutLogAOP("AOPLogEx", new string[] { dataIntercept }); - LogLock.OutLogAOP("AOPLogEx", new string[] { apiLogAopExInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopExInfo) }); + LogLock.OutLogAOP("AOPLogEx", _accessor.HttpContext?.TraceIdentifier, new string[] { apiLogAopExInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopExInfo) }); }); } diff --git a/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs index 2710e8a5..b6b91bd5 100644 --- a/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs @@ -60,7 +60,7 @@ public async Task InvokeAsync(HttpContext context) Parallel.For(0, 1, e => { //LogLock.OutSql2Log("RequestIpInfoLog", new string[] { requestInfo + "," }, false); - LogLock.OutLogAOP("RequestIpInfoLog", new string[] { requestInfo.GetType().ToString(), requestInfo }, false); + LogLock.OutLogAOP("RequestIpInfoLog", context.TraceIdentifier, new string[] { requestInfo.GetType().ToString(), requestInfo }, false); }); //try diff --git a/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs b/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs index d2f5e0e5..4e12dd93 100644 --- a/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs @@ -109,7 +109,7 @@ public async Task InvokeAsync(HttpContext context) Parallel.For(0, 1, e => { //LogLock.OutSql2Log("RecordAccessLogs", new string[] { requestInfo + "," }, false); - LogLock.OutLogAOP("RecordAccessLogs", new string[] { userAccessModel.GetType().ToString(), requestInfo }, false); + LogLock.OutLogAOP("RecordAccessLogs", context.TraceIdentifier, new string[] { userAccessModel.GetType().ToString(), requestInfo }, false); }); //var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RecordAccessLogs"); //SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false); diff --git a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs index c9281d83..6ff8d044 100644 --- a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs @@ -102,7 +102,7 @@ private async Task RequestDataLog(HttpContext context) Parallel.For(0, 1, e => { //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Request Data:", content }); - LogLock.OutLogAOP("RequestResponseLog", new string[] { "Request Data - RequestJsonDataType:" + requestResponse.GetType().ToString(), content }); + LogLock.OutLogAOP("RequestResponseLog", context.TraceIdentifier, new string[] { "Request Data - RequestJsonDataType:" + requestResponse.GetType().ToString(), content }); }); //SerilogServer.WriteLog("RequestResponseLog", new string[] { "Request Data:", content }); @@ -125,7 +125,7 @@ private void ResponseDataLog(HttpResponse response, MemoryStream ms) Parallel.For(0, 1, e => { //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); - LogLock.OutLogAOP("RequestResponseLog", new string[] { "Response Data - ResponseJsonDataType:" + responseBody.GetType().ToString(), responseBody }); + LogLock.OutLogAOP("RequestResponseLog", response.HttpContext.TraceIdentifier, new string[] { "Response Data - ResponseJsonDataType:" + responseBody.GetType().ToString(), responseBody }); }); //SerilogServer.WriteLog("RequestResponseLog", new string[] { "Response Data:", responseBody }); diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 2102f580..8148313a 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -67,7 +67,7 @@ public static void AddSqlsugarSetup(this IServiceCollection services) { MiniProfiler.Current.CustomTiming("SQL:", GetParas(p) + "【SQL语句】:" + sql); //LogLock.OutSql2Log("SqlLog", new string[] { GetParas(p), "【SQL语句】:" + sql }); - LogLock.OutLogAOP("SqlLog", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); + LogLock.OutLogAOP("SqlLog","", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); }); } diff --git a/Blog.Core.Model/Models/GblLogAudit.cs b/Blog.Core.Model/Models/GblLogAudit.cs index 1ee9ba95..58e04dd6 100644 --- a/Blog.Core.Model/Models/GblLogAudit.cs +++ b/Blog.Core.Model/Models/GblLogAudit.cs @@ -15,6 +15,12 @@ public class GblLogAudit [SugarColumn(ColumnDescription = "ID", IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } + /// + ///HttpContext.TraceIdentifier 事件链路ID(获取或设置一个唯一标识符,用于在跟踪日志中表示此请求。) + /// + [SugarColumn(ColumnDescription = "事件链路ID", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + public string TraceId { get; set; } + /// ///时间 /// diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index b4420153..743180c3 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -93,7 +93,7 @@ await _accessTrendLogServices.Add(new AccessTrendLog() Parallel.For(0, 1, e => { - LogLock.OutLogAOP("ACCESSTRENDLOG", new string[] { activeUserVMs.GetType().ToString(), JsonConvert.SerializeObject(activeUserVMs) }, false, true); + LogLock.OutLogAOP("ACCESSTRENDLOG","",new string[] { activeUserVMs.GetType().ToString(), JsonConvert.SerializeObject(activeUserVMs) }, false); }); } From 37e355361c41c75a0ef4970eb1ffba0bd119f87c Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 25 Nov 2022 11:40:08 +0800 Subject: [PATCH 189/382] feat:add permission migrate --- .../Controllers/PermissionController.cs | 123 +++++++++++++++++- README.md | 1 + 2 files changed, 123 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 01121063..887b4ee5 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -1,5 +1,6 @@ using Blog.Core.AuthHelper; using Blog.Core.AuthHelper.OverWrite; +using Blog.Core.Common; using Blog.Core.Common.Helper; using Blog.Core.Common.HttpContextUser; using Blog.Core.IServices; @@ -7,6 +8,8 @@ using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; namespace Blog.Core.Controllers { @@ -22,6 +25,7 @@ public class PermissionController : BaseApiController readonly IModuleServices _moduleServices; readonly IRoleModulePermissionServices _roleModulePermissionServices; readonly IUserRoleServices _userRoleServices; + private readonly IHttpClientFactory _httpClientFactory; readonly IHttpContextAccessor _httpContext; readonly IUser _user; private readonly PermissionRequirement _requirement; @@ -33,15 +37,20 @@ public class PermissionController : BaseApiController /// /// /// + /// /// /// /// - public PermissionController(IPermissionServices permissionServices, IModuleServices moduleServices, IRoleModulePermissionServices roleModulePermissionServices, IUserRoleServices userRoleServices, IHttpContextAccessor httpContext, IUser user, PermissionRequirement requirement) + public PermissionController(IPermissionServices permissionServices, IModuleServices moduleServices, + IRoleModulePermissionServices roleModulePermissionServices, IUserRoleServices userRoleServices, + IHttpClientFactory httpClientFactory, + IHttpContextAccessor httpContext, IUser user, PermissionRequirement requirement) { _permissionServices = permissionServices; _moduleServices = moduleServices; _roleModulePermissionServices = roleModulePermissionServices; _userRoleServices = userRoleServices; + this._httpClientFactory = httpClientFactory; _httpContext = httpContext; _user = user; _requirement = requirement; @@ -646,6 +655,118 @@ public async Task> BatchPost([FromBody] List pe return data; } + /// + /// 系统接口菜单同步接口 + /// + /// 接口module的控制器名称 + /// 菜单permission的父id + /// 是否执行迁移到数据 + /// + [HttpGet] + [AllowAnonymous] + public async Task>> MigratePermission(string controllerName = "", int pid = 0, bool isAction = false) + { + var data = new MessageModel>(); + if (controllerName.IsNullOrEmpty()) + { + data.msg = "必须填写要迁移的所属接口的控制器名称"; + return data; + } + + controllerName = controllerName.ToLower(); + + using var client = _httpClientFactory.CreateClient(); + var jsonFileDomain = AppSettings.GetValue("SystemCfg:Domain"); + + if (jsonFileDomain.IsNullOrEmpty()) + { + data.msg = "Swagger.json在线文件域名不能为空"; + return data; + } + + var url = $"{jsonFileDomain}/swagger/V2/swagger.json"; + var response = await client.GetAsync(url); + var body = await response.Content.ReadAsStringAsync(); + + var resultJObj = (JObject)JsonConvert.DeserializeObject(body); + var paths = resultJObj["paths"].ObjToString(); + var pathsJObj = (JObject)JsonConvert.DeserializeObject(paths); + + List permissions = new List(); + foreach (JProperty jProperty in pathsJObj.Properties()) + { + var apiPath = jProperty.Name.ToLower(); + string httpmethod = ""; + if (jProperty.Value.ToString().ToLower().Contains("get")) + { + httpmethod = "get"; + } + else if (jProperty.Value.ToString().ToLower().Contains("post")) + { + httpmethod = "post"; + } + else if (jProperty.Value.ToString().ToLower().Contains("put")) + { + httpmethod = "put"; + } + else if (jProperty.Value.ToString().ToLower().Contains("delete")) + { + httpmethod = "delete"; + } + + var summary = jProperty.Value.SelectToken($"{httpmethod}.summary").ObjToString(); + + permissions.Add(new Permission() + { + Code = " ", + Name = summary, + IsButton = true, + IsHide = false, + Enabled = true, + CreateTime = DateTime.Now, + IsDeleted = false, + Pid = pid, + Module = new Modules() + { + LinkUrl = apiPath ?? "", + Name = summary, + Enabled = true, + CreateTime = DateTime.Now, + ModifyTime = DateTime.Now, + IsDeleted = false, + } + }); + } + + var modulesList = (await _moduleServices.Query(d => d.IsDeleted == false && d.LinkUrl != null)).Select(d => d.LinkUrl.ToLower()).ToList(); + permissions = permissions.Where(d => !modulesList.Contains(d.Module.LinkUrl.ToLower()) && d.Module.LinkUrl.Contains($"/{controllerName}/")).ToList(); + + + if (isAction) + { + foreach (var item in permissions) + { + List modules = await _moduleServices.Query(d => d.LinkUrl != null && d.LinkUrl.ToLower() == item.Module.LinkUrl); + if (!modules.Any()) + { + int mid = await _moduleServices.Add(item.Module); + if (mid > 0) + { + item.Mid = mid; + int permissionid = await _permissionServices.Add(item); + } + + } + } + } + + data.response = permissions; + data.status = 200; + data.success = isAction; + + return data; + } + } public class AssignView diff --git a/README.md b/README.md index ef68b193..7f37ce66 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等,并自动持久化到数据库表🎶; - [x] 支持项目事务处理(若要分布式,用cap即可)✨; - [x] 设计4种 AOP 切面编程,功能涵盖:日志、缓存、审计、事务 ✨; +- [x] 设计并支持按钮级别的RBAC权限控制,同时支持一键同步接口和菜单 🎶; - [x] 支持 T4 代码模板,自动生成每层代码; - [x] 或使用 DbFirst 一键创建自己项目的四层文件(支持多库); - [x] 封装`Blog.Core.Webapi.Template`项目模板,一键重建自己的项目 ✨; From 6ee7eb69ebdcc1b1167e06bade0cfdcfbd6c3396 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 27 Nov 2022 14:36:14 +0800 Subject: [PATCH 190/382] feat:make some change --- Blog.Core.Api/Blog.Core.xml | 16 +++++++++++--- .../Controllers/PermissionController.cs | 17 +++++--------- Blog.Core.Api/appsettings.json | 3 ++- .../wwwroot/BlogCore.Data.json/Modules.tsv | 22 +++++++++++++++++++ .../wwwroot/BlogCore.Data.json/Permission.tsv | 21 ++++++++++++++++++ .../RoleModulePermission.tsv | 11 ++++++++++ .../ServiceExtensions/SqlsugarSetup.cs | 8 +++---- 7 files changed, 78 insertions(+), 20 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index b9c09b8f..b48d95ee 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -361,7 +361,7 @@ 菜单管理 - + 构造函数 @@ -369,6 +369,7 @@ + @@ -420,14 +421,14 @@ - 获取路由树【PRO】 + 获取路由树 - 通过角色获取菜单【无权限】 + 通过角色获取菜单 @@ -453,6 +454,15 @@ + + + 菜单同步 + + 接口module的控制器名称 + 菜单permission的父id + 是否执行迁移到数据 + + 角色管理 diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 887b4ee5..edb9dd8c 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -206,13 +206,6 @@ public async Task>> GetTreeTable(int f = 0, string return Success(permissions, "获取成功"); } - // GET: api/User/5 - [HttpGet("{id}")] - public string Get(string id) - { - return "value"; - } - /// /// 添加一个菜单 /// @@ -447,7 +440,7 @@ orderby child.Id } /// - /// 获取路由树【PRO】 + /// 获取路由树 /// /// /// @@ -523,7 +516,7 @@ orderby item.Id } /// - /// 通过角色获取菜单【无权限】 + /// 通过角色获取菜单 /// /// /// @@ -656,14 +649,13 @@ public async Task> BatchPost([FromBody] List pe } /// - /// 系统接口菜单同步接口 + /// 菜单同步 /// /// 接口module的控制器名称 /// 菜单permission的父id /// 是否执行迁移到数据 /// [HttpGet] - [AllowAnonymous] public async Task>> MigratePermission(string controllerName = "", int pid = 0, bool isAction = false) { var data = new MessageModel>(); @@ -676,7 +668,7 @@ public async Task>> MigratePermission(string contr controllerName = controllerName.ToLower(); using var client = _httpClientFactory.CreateClient(); - var jsonFileDomain = AppSettings.GetValue("SystemCfg:Domain"); + var jsonFileDomain = AppSettings.GetValue("Startup:Domain"); if (jsonFileDomain.IsNullOrEmpty()) { @@ -726,6 +718,7 @@ public async Task>> MigratePermission(string contr CreateTime = DateTime.Now, IsDeleted = false, Pid = pid, + MName = apiPath ?? "", Module = new Modules() { LinkUrl = apiPath ?? "", diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 381c0671..2adeb137 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -64,7 +64,7 @@ "Enabled": true }, "SqlAOP": { - "Enabled": false, + "Enabled": true, "LogToFile": { "Enabled": false }, @@ -172,6 +172,7 @@ "Database": "BlogCoreDb" }, "Startup": { + "Domain": "http://localhost:9291", "Cors": { "PolicyName": "CorsIpAccess", //策略名称 "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv index a906c91b..2bb130a1 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv @@ -1513,5 +1513,27 @@ "ModifyBy": null, "ModifyTime": "\/Date(1546272000000+0800)\/", "Id": 71 + }, + { + "IsDeleted": 0, + "ParentId": null, + "Name": "菜单同步", + "LinkUrl": "\/api\/permission\/migratepermission", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 23, + "CreateBy": "后台总管理员", + "CreateTime": "\/Date(1546272000000+0800)\/", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "\/Date(1546272000000+0800)\/", + "Id": 72 } ] diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv index 67eb6975..52493a12 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv @@ -2550,5 +2550,26 @@ "IsDeleted": 0, "Id": 121, "IsHide": 1 + }, + { + "Code": " ", + "Name": "菜单同步", + "IsButton": 1, + "Pid": 7, + "Mid": 72, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 23, + "Func": "handleSync", + "CreateBy": "后台总管理员", + "CreateTime": "\/Date(1546272000000+0800)\/", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "\/Date(1546272000000+0800)\/", + "IsDeleted": 0, + "Id": 122, + "IsHide": 0 } ] diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv index ef19ade1..b7923ab4 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv @@ -1692,5 +1692,16 @@ "ModuleId": 66, "PermissionId": 116, "Id": 132 + }, + { + "IsDeleted": false, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-04-11 16:08:49", + "ModifyTime": "2022-04-11 00:00:00", + "RoleId": 4, + "ModuleId": 72, + "PermissionId": 122, + "Id": 133 } ] diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 8148313a..b3eb4bdc 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -61,19 +61,19 @@ public static void AddSqlsugarSetup(this IServiceCollection services) { if (AppSettings.app(new string[] { "AppSettings", "SqlAOP", "Enabled" }).ObjToBool()) { - if (AppSettings.app(new string[] { "AppSettings", "SqlAOP", "OutToLogFile", "Enabled" }).ObjToBool()) + if (AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToFile", "Enabled" }).ObjToBool()) { Parallel.For(0, 1, e => { MiniProfiler.Current.CustomTiming("SQL:", GetParas(p) + "【SQL语句】:" + sql); //LogLock.OutSql2Log("SqlLog", new string[] { GetParas(p), "【SQL语句】:" + sql }); - LogLock.OutLogAOP("SqlLog","", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); + LogLock.OutLogAOP("SqlLog", "", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); }); } - if (AppSettings.app(new string[] { "AppSettings", "SqlAOP", "OutToConsole", "Enabled" }).ObjToBool()) + if (AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToConsole", "Enabled" }).ObjToBool()) { - ConsoleHelper.WriteColorLine(string.Join("\r\n", new string[] { "--------", "【SQL语句】:" + GetWholeSql(p, sql) }), ConsoleColor.DarkCyan); + ConsoleHelper.WriteColorLine(string.Join("\r\n", new string[] { "--------", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")} :" + GetWholeSql(p, sql) }), ConsoleColor.DarkCyan); } } }, From f1fb486adcb232f1b31bc0543de8341139294bc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E6=8B=BE=E7=8E=96?= Date: Sun, 27 Nov 2022 18:48:40 +0800 Subject: [PATCH 191/382] =?UTF-8?q?=E5=A2=9E=E5=8A=A0sqlserver=20=EF=BC=8C?= =?UTF-8?q?mysql=20=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95=E5=99=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Log4net.config | 191 +++++++++++++++++++++++++++++++++-- 1 file changed, 185 insertions(+), 6 deletions(-) diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config index 3e718044..3ce11b6a 100644 --- a/Blog.Core.Api/Log4net.config +++ b/Blog.Core.Api/Log4net.config @@ -1,8 +1,8 @@  - + - + @@ -80,16 +80,195 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + \ No newline at end of file From 3ba534bf119d589d74129cc2e8bfedfe575bc5e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E7=95=85=E7=95=85?= Date: Mon, 12 Dec 2022 12:25:08 +0800 Subject: [PATCH 192/382] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E4=BB=93?= =?UTF-8?q?=E5=82=A8=E5=BC=80=E5=90=AF=E5=A4=9A=E5=BA=93=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=8B=BC=E5=86=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Repository/BASE/BaseRepository.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 9dc1e303..82900689 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -23,10 +23,10 @@ private ISqlSugarClient _db { ISqlSugarClient db = _dbBase; /* 如果要开启多库支持, - * 1、在appsettings.json 中开启MultiDBEnabled节点为true,必填 + * 1、在appsettings.json 中开启MutiDBEnabled节点为true,必填 * 2、设置一个主连接的数据库ID,节点MainDB,对应的连接字符串的Enabled也必须true,必填 */ - if (AppSettings.app(new[] {"MultiDBEnabled"}).ObjToBool()) + if (AppSettings.app(new[] {"MutiDBEnabled"}).ObjToBool()) { //修改使用 model备注字段作为切换数据库条件,使用sqlsugar TenantAttribute存放数据库ConnId //参考 https://www.donet5.com/Home/Doc?typeId=2246 From 4a04ac69468ef181b775b2d882b045edf0d3294b Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 25 Dec 2022 13:33:36 +0800 Subject: [PATCH 193/382] Update PermissionHandler.cs --- .../Policys/PermissionHandler.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs index 0fca02b7..4ed55525 100644 --- a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs +++ b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs @@ -191,16 +191,19 @@ orderby item.Id } //校验签发时间 - var value = httpContext.User.Claims.SingleOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; - if (value != null) + if (!Permissions.IsUseIds4) { - var user = await _userServices.QueryById(_user.ID, true); - if (user.CriticalModifyTime > value.ObjToDate()) + var value = httpContext.User.Claims.SingleOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; + if (value != null) { - _user.MessageModel = new ApiResponse(StatusCode.CODE401, "很抱歉,授权已失效,请重新授权").MessageModel; - context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); - return; - } + var user = await _userServices.QueryById(_user.ID, true); + if (user.CriticalModifyTime > value.ObjToDate()) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "很抱歉,授权已失效,请重新授权").MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } + } } context.Succeed(requirement); From ff03c4a462459b4523cae744b5c3a58004486355 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 17 Jan 2023 17:00:31 +0800 Subject: [PATCH 194/382] feat:update to net 7.0 --- Blog.Core.Api/Blog.Core.Api.csproj | 14 ++++----- Blog.Core.Api/Program.cs | 12 ++------ Blog.Core.Common/Blog.Core.Common.csproj | 20 ++++++------- Blog.Core.Common/Helper/SM/SM4.cs | 1 - Blog.Core.EventBus/Blog.Core.EventBus.csproj | 10 +++---- .../Blog.Core.Extensions.csproj | 30 +++++++++---------- .../Middlewares/RequRespLogMiddleware.cs | 1 - .../ServiceExtensions/HttpRuntimeCache.cs | 3 +- .../Blog.Core.FrameWork.csproj | 2 +- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 10 +++---- .../Blog.Core.IServices.csproj | 2 +- Blog.Core.Model/Blog.Core.Model.csproj | 8 ++--- Blog.Core.Publish.Docker.Jenkins.sh | 2 +- Blog.Core.Publish.bat | 4 +-- .../Blog.Core.Repository.csproj | 8 ++--- .../Blog.Core.Serilog.Es.csproj | 14 ++++----- Blog.Core.Services/Blog.Core.Services.csproj | 2 +- Blog.Core.Tasks/Blog.Core.Tasks.csproj | 4 +-- Blog.Core.Tests/Blog.Core.Tests.csproj | 6 ++-- .../Ocelot.Provider.Nacos.csproj | 12 ++++---- 20 files changed, 78 insertions(+), 87 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 38575a55..9016c427 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -4,7 +4,7 @@ Exe - net6.0 + net7.0 enable Linux @@ -49,13 +49,13 @@ - - + + - - - - + + + + diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index b3bf2387..6f4cf041 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -13,7 +13,6 @@ using Blog.Core.Hubs; using Blog.Core.IServices; using Blog.Core.Tasks; -using FluentValidation.AspNetCore; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; @@ -170,15 +169,8 @@ app.UseMiniProfilerMiddleware(); //app.UseExceptionHandlerMidd(); -app.UseEndpoints(endpoints => -{ - endpoints.MapControllerRoute( - name: "default", - pattern: "{controller=Home}/{action=Index}/{id?}"); - - endpoints.MapHub("/api2/chatHub"); -}); - +app.MapControllers(); +app.MapHub("/api2/chatHub"); var scope = app.Services.GetRequiredService().CreateScope(); var myContext = scope.ServiceProvider.GetRequiredService(); diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 43f65ab9..b3d20137 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 @@ -16,21 +16,21 @@ - - + + - - + + - + - - + + - - + + diff --git a/Blog.Core.Common/Helper/SM/SM4.cs b/Blog.Core.Common/Helper/SM/SM4.cs index 4b1f1996..e0984558 100644 --- a/Blog.Core.Common/Helper/SM/SM4.cs +++ b/Blog.Core.Common/Helper/SM/SM4.cs @@ -207,7 +207,6 @@ public SByte[] sm4_crypt_ecb(SM4_Context ctx, SByte[] input) int length = input.Length; SByte[] bins = new SByte[length]; SByte[] bous = new SByte[length]; - SByte[] output = null; Array.Copy(input, 0, bins, 0, length); diff --git a/Blog.Core.EventBus/Blog.Core.EventBus.csproj b/Blog.Core.EventBus/Blog.Core.EventBus.csproj index 070c0a48..bb75b1b0 100644 --- a/Blog.Core.EventBus/Blog.Core.EventBus.csproj +++ b/Blog.Core.EventBus/Blog.Core.EventBus.csproj @@ -1,20 +1,20 @@ - net6.0 + net7.0 - + - + - + - + diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index aca15b55..3323fd2b 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -1,35 +1,35 @@  - net6.0 + net7.0 - + - - - - - + + + + + - - - - + + + + - - - + + + - + diff --git a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs index 6ff8d044..4c61ed3b 100644 --- a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs @@ -7,7 +7,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Newtonsoft.Json; -using Ubiety.Dns.Core.Common; namespace Blog.Core.Extensions.Middlewares { diff --git a/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs b/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs index b9b4d7b3..ac7713f6 100644 --- a/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs +++ b/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs @@ -38,7 +38,8 @@ public V Get(string key) public IEnumerable GetAllKey() { const BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic; - var entries = _memoryCache.GetType().GetField("_entries", flags).GetValue(_memoryCache); + var coherentState = _memoryCache.GetType().GetField("_coherentState", flags).GetValue(_memoryCache); + var entries = coherentState.GetType().GetField("_entries", flags).GetValue(coherentState); var cacheItems = entries as IDictionary; var keys = new List(); if (cacheItems == null) return keys; diff --git a/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj b/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj index b167521c..4f60a46d 100644 --- a/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj +++ b/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj @@ -1,7 +1,7 @@ - net6.0 + net7.0 diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index 47398520..819eaa36 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 @@ -15,13 +15,13 @@ - - - + + + - + diff --git a/Blog.Core.IServices/Blog.Core.IServices.csproj b/Blog.Core.IServices/Blog.Core.IServices.csproj index 820e1511..8ccfcc2f 100644 --- a/Blog.Core.IServices/Blog.Core.IServices.csproj +++ b/Blog.Core.IServices/Blog.Core.IServices.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index de7e6467..120f3222 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 @@ -16,9 +16,9 @@ - - - + + + diff --git a/Blog.Core.Publish.Docker.Jenkins.sh b/Blog.Core.Publish.Docker.Jenkins.sh index 3c561c67..d82c2d2f 100644 --- a/Blog.Core.Publish.Docker.Jenkins.sh +++ b/Blog.Core.Publish.Docker.Jenkins.sh @@ -4,7 +4,7 @@ cd Blog.Core.Api dotnet publish echo "Successfully!!!! ^ please see the file ." -cd bin/Debug/net6.0/publish/ +cd bin/Debug/net7.0/publish/ #rm -f appsettings.json #\cp -rf /var/jenkins_home/workspace/SecurityConfig/Blog.Core/appsettings.json appsettings.json diff --git a/Blog.Core.Publish.bat b/Blog.Core.Publish.bat index f022508d..cebbbf58 100644 --- a/Blog.Core.Publish.bat +++ b/Blog.Core.Publish.bat @@ -8,11 +8,11 @@ dotnet build cd Blog.Core.Api -dotnet publish -o ..\Blog.Core.Api\bin\Debug\net6.0\ +dotnet publish -o ..\Blog.Core.Api\bin\Debug\net7.0\ md ..\.PublishFiles -xcopy ..\Blog.Core.Api\bin\Debug\net6.0\*.* ..\.PublishFiles\ /s /e +xcopy ..\Blog.Core.Api\bin\Debug\net7.0\*.* ..\.PublishFiles\ /s /e echo "Successfully!!!! ^ please see the file .PublishFiles" diff --git a/Blog.Core.Repository/Blog.Core.Repository.csproj b/Blog.Core.Repository/Blog.Core.Repository.csproj index 5c9764b0..3547007f 100644 --- a/Blog.Core.Repository/Blog.Core.Repository.csproj +++ b/Blog.Core.Repository/Blog.Core.Repository.csproj @@ -1,14 +1,14 @@  - net6.0 + net7.0 - - - + + + diff --git a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj index 5cf82020..d98cfafb 100644 --- a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj +++ b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj @@ -1,17 +1,17 @@ - net6.0 + net7.0 - - - - - - + + + + + + diff --git a/Blog.Core.Services/Blog.Core.Services.csproj b/Blog.Core.Services/Blog.Core.Services.csproj index ae5e969a..fbfa7bbc 100644 --- a/Blog.Core.Services/Blog.Core.Services.csproj +++ b/Blog.Core.Services/Blog.Core.Services.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 diff --git a/Blog.Core.Tasks/Blog.Core.Tasks.csproj b/Blog.Core.Tasks/Blog.Core.Tasks.csproj index 5e173559..968fb795 100644 --- a/Blog.Core.Tasks/Blog.Core.Tasks.csproj +++ b/Blog.Core.Tasks/Blog.Core.Tasks.csproj @@ -1,11 +1,11 @@  - net6.0 + net7.0 - + diff --git a/Blog.Core.Tests/Blog.Core.Tests.csproj b/Blog.Core.Tests/Blog.Core.Tests.csproj index 2ceef163..fd488226 100644 --- a/Blog.Core.Tests/Blog.Core.Tests.csproj +++ b/Blog.Core.Tests/Blog.Core.Tests.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 false false @@ -19,8 +19,8 @@ - - + + all diff --git a/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj b/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj index c713416a..23fd3e3d 100644 --- a/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj +++ b/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 softlgl softlgl https://github.com/softlgl/Ocelot.Provider.Nacos @@ -11,10 +11,10 @@ - - - - - + + + + + From 8d1c0bde1480da0ffe1b1565990bb18c679b86ad Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 17 Jan 2023 19:04:36 +0800 Subject: [PATCH 195/382] Update Dockerfile --- Dockerfile | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 95bdaf92..69a3d132 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,28 +5,32 @@ #如果你想先手动dotnet build成可执行的二进制文件,然后再构建镜像,请看.Api层下的dockerfile。 -FROM mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim AS base +#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. + +FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/sdk:6.0-bullseye-slim AS build +FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build WORKDIR /src COPY ["Blog.Core.Api/Blog.Core.Api.csproj", "Blog.Core.Api/"] COPY ["Blog.Core.Extensions/Blog.Core.Extensions.csproj", "Blog.Core.Extensions/"] -COPY ["Blog.Core.Tasks/Blog.Core.Tasks.csproj", "Blog.Core.Tasks/"] -COPY ["Blog.Core.IServices/Blog.Core.IServices.csproj", "Blog.Core.IServices/"] -COPY ["Blog.Core.Model/Blog.Core.Model.csproj", "Blog.Core.Model/"] +COPY ["Blog.Core.EventBus/Blog.Core.EventBus.csproj", "Blog.Core.EventBus/"] COPY ["Blog.Core.Common/Blog.Core.Common.csproj", "Blog.Core.Common/"] +COPY ["Blog.Core.Model/Blog.Core.Model.csproj", "Blog.Core.Model/"] +COPY ["Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj", "Blog.Core.Serilog.Es/"] +COPY ["Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj", "Ocelot.Provider.Nacos/"] COPY ["Blog.Core.Services/Blog.Core.Services.csproj", "Blog.Core.Services/"] +COPY ["Blog.Core.IServices/Blog.Core.IServices.csproj", "Blog.Core.IServices/"] COPY ["Blog.Core.Repository/Blog.Core.Repository.csproj", "Blog.Core.Repository/"] -COPY ["Blog.Core.EventBus/Blog.Core.EventBus.csproj", "Blog.Core.EventBus/"] +COPY ["Blog.Core.Tasks/Blog.Core.Tasks.csproj", "Blog.Core.Tasks/"] RUN dotnet restore "Blog.Core.Api/Blog.Core.Api.csproj" COPY . . WORKDIR "/src/Blog.Core.Api" RUN dotnet build "Blog.Core.Api.csproj" -c Release -o /app/build FROM build AS publish -RUN dotnet publish "Blog.Core.Api.csproj" -c Release -o /app/publish +RUN dotnet publish "Blog.Core.Api.csproj" -c Release -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app From 2dd3ed1e02bbe34c07e714780f4045a4dc37d8bb Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 17 Jan 2023 19:06:07 +0800 Subject: [PATCH 196/382] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index faa57fc4..2dd1ed9c 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -12,7 +12,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0.x + dotnet-version: 7.0.x - name: Build with dotnet run: dotnet build --configuration Release - name: Build image From 509208737997c6e3d6de193132ca386b635cb042 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 29 Jan 2023 09:39:18 +0800 Subject: [PATCH 197/382] feat: change sqlsugar column to postpresql --- Blog.Core.Model/Models/AccessTrendLog.cs | 2 +- Blog.Core.Model/Models/GblLogAudit.cs | 18 +++++++++--------- Blog.Core.Model/Models/sysUserInfo.cs | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Blog.Core.Model/Models/AccessTrendLog.cs b/Blog.Core.Model/Models/AccessTrendLog.cs index 0bad6836..4a87b13e 100644 --- a/Blog.Core.Model/Models/AccessTrendLog.cs +++ b/Blog.Core.Model/Models/AccessTrendLog.cs @@ -11,7 +11,7 @@ public class AccessTrendLog : RootEntityTkey /// /// 用户 /// - [SugarColumn(Length = 128, IsNullable = true, ColumnDataType = "nvarchar")] + [SugarColumn(Length = 128, IsNullable = true)] public string User { get; set; } /// diff --git a/Blog.Core.Model/Models/GblLogAudit.cs b/Blog.Core.Model/Models/GblLogAudit.cs index 58e04dd6..4b1bd9cd 100644 --- a/Blog.Core.Model/Models/GblLogAudit.cs +++ b/Blog.Core.Model/Models/GblLogAudit.cs @@ -18,52 +18,52 @@ public class GblLogAudit /// ///HttpContext.TraceIdentifier 事件链路ID(获取或设置一个唯一标识符,用于在跟踪日志中表示此请求。) /// - [SugarColumn(ColumnDescription = "事件链路ID", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + [SugarColumn(ColumnDescription = "事件链路ID", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, Length = 255)] public string TraceId { get; set; } /// ///时间 /// - [SugarColumn(ColumnDescription = "时间", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "datetime")] + [SugarColumn(ColumnDescription = "时间", IsNullable = false, IsPrimaryKey = false, IsIdentity = false)] public DateTime Date { get; set; } = DateTime.Now; /// ///线程 /// - [SugarColumn(ColumnDescription = "线程", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + [SugarColumn(ColumnDescription = "线程", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, Length = 255)] public string Thread { get; set; } /// ///等级 /// - [SugarColumn(ColumnDescription = "等级", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + [SugarColumn(ColumnDescription = "等级", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, Length = 255)] public string Level { get; set; } /// ///记录器 /// - [SugarColumn(ColumnDescription = "记录器", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + [SugarColumn(ColumnDescription = "记录器", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, Length = 255)] public string Logger { get; set; } /// ///日志类型 /// - [SugarColumn(ColumnDescription = "日志类型", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + [SugarColumn(ColumnDescription = "日志类型", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, Length = 255)] public string LogType { get; set; } /// ///数据类型 /// - [SugarColumn(ColumnDescription = "数据类型", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "varchar", Length = 255)] + [SugarColumn(ColumnDescription = "数据类型", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, Length = 255)] public string DataType { get; set; } /// ///错误信息 /// - [SugarColumn(ColumnDescription = "错误信息", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "text")] + [SugarColumn(ColumnDescription = "错误信息", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, Length = 5000)] public string Message { get; set; } /// ///异常 /// - [SugarColumn(ColumnDescription = "异常", IsNullable = true, IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "text")] + [SugarColumn(ColumnDescription = "异常", IsNullable = true, IsPrimaryKey = false, IsIdentity = false, Length = 5000)] public string Exception { get; set; } } diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index 8aafb164..c60e4bce 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -33,7 +33,7 @@ public SysUserInfo(string loginName, string loginPWD) /// [SugarColumn(Length = 200, IsNullable = true, ColumnDescription = "登录账号")] //:eg model 根据sqlsugar的完整定义可以如下定义,ColumnDescription可定义表字段备注 - //[SugarColumn(IsNullable = false, ColumnDescription = "登录账号", IsPrimaryKey = false, IsIdentity = false, ColumnDataType = "nvarchar", Length = 50)] + //[SugarColumn(IsNullable = false, ColumnDescription = "登录账号", IsPrimaryKey = false, IsIdentity = false, Length = 50)] //ColumnDescription 表字段备注, 已在MSSQL测试,配合 [SugarTable("SysUserInfo", "用户表")]//('数据库表名','数据库表备注') //可以完整生成 表备注和各个字段的中文备注 //2022/10/11 From a30f18499682fd8e4e2b433a122a8b81cd94451d Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 29 Jan 2023 16:19:30 +0800 Subject: [PATCH 198/382] feat: add authing sso --- Blog.Core.Api/Program.cs | 6 ++- Blog.Core.Api/appsettings.json | 6 +++ Blog.Core.Common/GlobalVar/GlobalVars.cs | 6 +++ .../Blog.Core.Extensions.csproj | 3 +- .../Authentication_AuthingSetup.cs | 53 +++++++++++++++++++ 5 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 Blog.Core.Extensions/ServiceExtensions/Authentication_AuthingSetup.cs diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index b3bf2387..7a9a25c0 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -56,6 +56,7 @@ builder.Services.AddUiFilesZipSetup(builder.Environment); Permissions.IsUseIds4 = AppSettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool(); +Permissions.IsUseAuthing = AppSettings.app(new string[] { "Startup", "Authing", "Enabled" }).ObjToBool(); RoutePrefix.Name = AppSettings.app(new string[] { "AppSettings", "SvcName" }).ObjToString(); JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); @@ -79,9 +80,10 @@ builder.Services.AddNacosSetup(builder.Configuration); builder.Services.AddAuthorizationSetup(); -if (Permissions.IsUseIds4) +if (Permissions.IsUseIds4 || Permissions.IsUseAuthing) { - builder.Services.AddAuthentication_Ids4Setup(); + if (Permissions.IsUseIds4) builder.Services.AddAuthentication_Ids4Setup(); + else if (Permissions.IsUseAuthing) builder.Services.AddAuthentication_AuthingSetup(); } else { diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 2adeb137..d639a62e 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -189,6 +189,12 @@ "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 "ApiName": "blog.core.api" // 资源服务器 }, + "Authing": { + "Enabled": true, + "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", + "Audience": "63d51c4205c2849803be5178", + "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" + }, "RedisMq": { "Enabled": false //redis 消息队列 }, diff --git a/Blog.Core.Common/GlobalVar/GlobalVars.cs b/Blog.Core.Common/GlobalVar/GlobalVars.cs index cb281e26..84dd9e19 100644 --- a/Blog.Core.Common/GlobalVar/GlobalVars.cs +++ b/Blog.Core.Common/GlobalVar/GlobalVars.cs @@ -20,6 +20,12 @@ public static class Permissions /// true:表示启动IDS4 /// false:表示使用JWT public static bool IsUseIds4 = false; + + /// + /// 当前项目是否启用Authing权限方案 + /// true:表示启动 + /// false:表示使用JWT + public static bool IsUseAuthing = false; } /// diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index aca15b55..50969b05 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -11,7 +11,7 @@ - + @@ -20,6 +20,7 @@ + diff --git a/Blog.Core.Extensions/ServiceExtensions/Authentication_AuthingSetup.cs b/Blog.Core.Extensions/ServiceExtensions/Authentication_AuthingSetup.cs new file mode 100644 index 00000000..4c2c68c8 --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/Authentication_AuthingSetup.cs @@ -0,0 +1,53 @@ +using Blog.Core.AuthHelper; +using Blog.Core.Common; +using Blog.Core.Common.HttpContextUser; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.IdentityModel.Tokens; +using NetDevPack.Security.JwtExtensions; +using System; + +namespace Blog.Core.Extensions +{ + /// + /// Authing权限 认证服务 + /// + public static class Authentication_AuthingSetup + { + public static void AddAuthentication_AuthingSetup(this IServiceCollection services) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + var tokenValidationParameters = new TokenValidationParameters + { + ValidIssuer = AppSettings.app(new string[] { "Startup", "Authing", "Issuer" }), + ValidAudience = AppSettings.app(new string[] { "Startup", "Authing", "Audience" }), + ValidAlgorithms = new string[] { "RS256" }, + //ValidateLifetime = true, + //ClockSkew = TimeSpan.FromSeconds(30), + //RequireExpirationTime = true, + }; + + services.AddAuthentication(o => + { + //认证middleware配置 + o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; + o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; + o.DefaultChallengeScheme = nameof(ApiResponseHandler); + o.DefaultForbidScheme = nameof(ApiResponseHandler); + }) + .AddJwtBearer(o => + { + //主要是jwt token参数设置 + o.TokenValidationParameters = tokenValidationParameters; + o.RequireHttpsMetadata = false; + o.SaveToken = false; + o.IncludeErrorDetails = true; + o.SetJwksOptions(new JwkOptions(AppSettings.app(new string[] { "Startup", "Authing", "JwksUri" }), AppSettings.app(new string[] { "Startup", "Authing", "Issuer" }), new TimeSpan(TimeSpan.TicksPerDay))); + }) + .AddScheme(nameof(ApiResponseHandler), o => { }); + + } + } +} From 41fa6122597bb3eb0d2b473adb1bb3f47d1aa4d6 Mon Sep 17 00:00:00 2001 From: Nine Date: Tue, 31 Jan 2023 16:40:28 +0800 Subject: [PATCH 199/382] =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=8C=96=E6=97=A5?= =?UTF-8?q?=E5=BF=97,=E5=A2=9E=E5=8A=A0PostgreSql=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Log4net.config | 90 ++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config index 3ce11b6a..61bd3739 100644 --- a/Blog.Core.Api/Log4net.config +++ b/Blog.Core.Api/Log4net.config @@ -251,6 +251,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -267,6 +354,9 @@ + + + From d0e4ff7757aed635dd240426cc3160e5a68a65f5 Mon Sep 17 00:00:00 2001 From: Geralt_Zhang <40553940+HuiJiOnGit@users.noreply.github.com> Date: Thu, 2 Feb 2023 20:42:46 +0800 Subject: [PATCH 200/382] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=85=AC=E5=85=B1?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=B1=9E=E6=80=A7=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将`TargetFramework`属性迁移到`common.targets`作为方便管理 --- Blog.Core.Api/Blog.Core.Api.csproj | 4 +--- Blog.Core.Common/Blog.Core.Common.csproj | 4 +--- Blog.Core.EventBus/Blog.Core.EventBus.csproj | 4 +--- Blog.Core.Extensions/Blog.Core.Extensions.csproj | 4 +--- Blog.Core.FrameWork/Blog.Core.FrameWork.csproj | 4 +--- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 4 +--- Blog.Core.IServices/Blog.Core.IServices.csproj | 4 +--- Blog.Core.Model/Blog.Core.Model.csproj | 4 +--- Blog.Core.Repository/Blog.Core.Repository.csproj | 4 +--- Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj | 4 +--- Blog.Core.Services/Blog.Core.Services.csproj | 4 +--- Blog.Core.Tasks/Blog.Core.Tasks.csproj | 4 +--- Blog.Core.Tests/Blog.Core.Tests.csproj | 3 +-- Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj | 4 ++-- build/common.targets | 5 +++++ 15 files changed, 20 insertions(+), 40 deletions(-) create mode 100644 build/common.targets diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 9016c427..fcaef62a 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -1,10 +1,8 @@  + - Exe - - net7.0 enable Linux diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index b3d20137..30816b97 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -1,8 +1,6 @@  - - net7.0 - + diff --git a/Blog.Core.EventBus/Blog.Core.EventBus.csproj b/Blog.Core.EventBus/Blog.Core.EventBus.csproj index bb75b1b0..8c50f8e2 100644 --- a/Blog.Core.EventBus/Blog.Core.EventBus.csproj +++ b/Blog.Core.EventBus/Blog.Core.EventBus.csproj @@ -1,8 +1,6 @@ - - net7.0 - + diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 3323fd2b..437841b7 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -1,8 +1,6 @@  - - net7.0 - + diff --git a/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj b/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj index 4f60a46d..51022b3c 100644 --- a/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj +++ b/Blog.Core.FrameWork/Blog.Core.FrameWork.csproj @@ -1,8 +1,6 @@ - - net7.0 - + diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index 819eaa36..ca3a7f72 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -1,8 +1,6 @@  - - net7.0 - + ..\Blog.Core.Gateway\Blog.Core.Gateway.xml diff --git a/Blog.Core.IServices/Blog.Core.IServices.csproj b/Blog.Core.IServices/Blog.Core.IServices.csproj index 8ccfcc2f..20e8e658 100644 --- a/Blog.Core.IServices/Blog.Core.IServices.csproj +++ b/Blog.Core.IServices/Blog.Core.IServices.csproj @@ -1,8 +1,6 @@  - - net7.0 - + diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index 120f3222..3c2ee04a 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -1,8 +1,6 @@  - - net7.0 - + ..\Blog.Core.Api\Blog.Core.Model.xml diff --git a/Blog.Core.Repository/Blog.Core.Repository.csproj b/Blog.Core.Repository/Blog.Core.Repository.csproj index 3547007f..783014e0 100644 --- a/Blog.Core.Repository/Blog.Core.Repository.csproj +++ b/Blog.Core.Repository/Blog.Core.Repository.csproj @@ -1,8 +1,6 @@  - - net7.0 - + diff --git a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj index d98cfafb..cd71cf26 100644 --- a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj +++ b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj @@ -1,8 +1,6 @@ - - net7.0 - + diff --git a/Blog.Core.Services/Blog.Core.Services.csproj b/Blog.Core.Services/Blog.Core.Services.csproj index fbfa7bbc..04437f0c 100644 --- a/Blog.Core.Services/Blog.Core.Services.csproj +++ b/Blog.Core.Services/Blog.Core.Services.csproj @@ -1,8 +1,6 @@  - - net7.0 - + ..\Blog.Core.Api\bin\Debug\ diff --git a/Blog.Core.Tasks/Blog.Core.Tasks.csproj b/Blog.Core.Tasks/Blog.Core.Tasks.csproj index 968fb795..408f379c 100644 --- a/Blog.Core.Tasks/Blog.Core.Tasks.csproj +++ b/Blog.Core.Tasks/Blog.Core.Tasks.csproj @@ -1,8 +1,6 @@  - - net7.0 - + diff --git a/Blog.Core.Tests/Blog.Core.Tests.csproj b/Blog.Core.Tests/Blog.Core.Tests.csproj index fd488226..98eff6fc 100644 --- a/Blog.Core.Tests/Blog.Core.Tests.csproj +++ b/Blog.Core.Tests/Blog.Core.Tests.csproj @@ -1,8 +1,7 @@  + - net7.0 - false false diff --git a/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj b/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj index 23fd3e3d..6bdeb841 100644 --- a/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj +++ b/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj @@ -1,7 +1,7 @@  - + + - net7.0 softlgl softlgl https://github.com/softlgl/Ocelot.Provider.Nacos diff --git a/build/common.targets b/build/common.targets new file mode 100644 index 00000000..bfd5899f --- /dev/null +++ b/build/common.targets @@ -0,0 +1,5 @@ + + + net7.0 + + \ No newline at end of file From 21307c64e6ec9f0b2ab78878db3005bfb1c59f3c Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 3 Feb 2023 14:56:10 +0800 Subject: [PATCH 201/382] Update PermissionController.cs --- .../Controllers/PermissionController.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index edb9dd8c..d3000766 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -649,14 +649,15 @@ public async Task> BatchPost([FromBody] List pe } /// - /// 菜单同步 + /// 系统接口菜单同步接口 /// + /// /// 接口module的控制器名称 /// 菜单permission的父id /// 是否执行迁移到数据 /// [HttpGet] - public async Task>> MigratePermission(string controllerName = "", int pid = 0, bool isAction = false) + public async Task>> MigratePermission(string action = "", string controllerName = "", int pid = 0, bool isAction = false) { var data = new MessageModel>(); if (controllerName.IsNullOrEmpty()) @@ -677,6 +678,7 @@ public async Task>> MigratePermission(string contr } var url = $"{jsonFileDomain}/swagger/V2/swagger.json"; + var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); @@ -688,6 +690,13 @@ public async Task>> MigratePermission(string contr foreach (JProperty jProperty in pathsJObj.Properties()) { var apiPath = jProperty.Name.ToLower(); + if (action.IsNotEmptyOrNull()) + { + if (!apiPath.Contains(action.ToLower())) + { + continue; + } + } string httpmethod = ""; if (jProperty.Value.ToString().ToLower().Contains("get")) { @@ -708,6 +717,12 @@ public async Task>> MigratePermission(string contr var summary = jProperty.Value.SelectToken($"{httpmethod}.summary").ObjToString(); + var subIx = summary.IndexOf("(Auth"); + if (subIx > 0) + { + summary = summary.Substring(0, subIx - 1); + } + permissions.Add(new Permission() { Code = " ", From 9e888246cc25a16da57d04f847c1d1621f122f7b Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 3 Feb 2023 17:08:02 +0800 Subject: [PATCH 202/382] Update appsettings.json --- Blog.Core.Api/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index d639a62e..ea678174 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -190,7 +190,7 @@ "ApiName": "blog.core.api" // 资源服务器 }, "Authing": { - "Enabled": true, + "Enabled": false, "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", "Audience": "63d51c4205c2849803be5178", "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" From bc03131ae0dcc810588662a0ac31ac5a7b04515a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 5 Feb 2023 09:10:24 +0800 Subject: [PATCH 203/382] Update Blog.Core.xml --- Blog.Core.Api/Blog.Core.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index b48d95ee..3321d53a 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -454,10 +454,11 @@ - + - 菜单同步 + 系统接口菜单同步接口 + 接口module的控制器名称 菜单permission的父id 是否执行迁移到数据 From 569e968c82a8a6c087d6ec59e54d7df6a166e91a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 5 Feb 2023 17:25:46 +0800 Subject: [PATCH 204/382] feat: add ExpressionExtensions.cs --- .../Extensions/ExpressionExtensions.cs | 339 ++++++++++++++++++ Blog.Core.Common/Helper/DynamicLinqFactory.cs | 327 +---------------- 2 files changed, 340 insertions(+), 326 deletions(-) create mode 100644 Blog.Core.Common/Extensions/ExpressionExtensions.cs diff --git a/Blog.Core.Common/Extensions/ExpressionExtensions.cs b/Blog.Core.Common/Extensions/ExpressionExtensions.cs new file mode 100644 index 00000000..4e1b066d --- /dev/null +++ b/Blog.Core.Common/Extensions/ExpressionExtensions.cs @@ -0,0 +1,339 @@ +using Microsoft.AspNetCore.Http; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Net.Http.Headers; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Helper +{ + /// + /// Linq扩展 + /// + public static class ExpressionExtensions + { + #region Nacos NamingService + + private static readonly HttpClient httpclient = new HttpClient(); + + private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl) + { + try + { + var instance = serv.SelectOneHealthyInstance(ServiceName, Group).GetAwaiter().GetResult(); + var host = $"{instance.Ip}:{instance.Port}"; + if (instance.Metadata.ContainsKey("endpoint")) host = instance.Metadata["endpoint"]; + + + var baseUrl = instance.Metadata.TryGetValue("secure", out _) + ? $"https://{host}" + : $"http://{host}"; + + if (string.IsNullOrWhiteSpace(baseUrl)) + { + return ""; + } + + return $"{baseUrl}{apiurl}"; + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + return ""; + } + + public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters = null) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + if (Parameters != null && Parameters.Any()) + { + StringBuilder sb = new StringBuilder(); + foreach (var pitem in Parameters) + { + sb.Append($"{pitem.Key}={pitem.Value}&"); + } + + url = $"{url}?{sb.ToString().Trim('&')}"; + } + + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.GetAsync(url); + return await result.Content.ReadAsStringAsync(); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + return ""; + } + + public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + + var content = (Parameters != null && Parameters.Any()) ? new FormUrlEncodedContent(Parameters) : null; + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.PostAsync(url, content); + return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + return ""; + } + + public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, string jSonData) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.PostAsync(url, new StringContent(jSonData, Encoding.UTF8, "application/json")); + return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); + + //httpClient.BaseAddress = new Uri("https://www.testapi.com"); + //httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + //httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + return ""; + } + + public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + + var content = new MultipartFormDataContent(); + foreach (var pitem in Parameters) + { + content.Add(new ByteArrayContent(pitem.Value), "files", pitem.Key); + } + + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.PostAsync(url, content); + return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); + } + catch (Exception e) + { + //InfluxdbHelper.GetInstance().AddLog("Cof_NaocePostFile.Err", ee); + Console.WriteLine(e.Message); + } + + return ""; + } + + #endregion + + #region HttpContext + + /// + /// 返回请求上下文 + /// + /// + /// + /// + /// + /// + public static async Task Cof_SendResponse(this HttpContext context, System.Net.HttpStatusCode code, string message, string ContentType = "text/html;charset=utf-8") + { + context.Response.StatusCode = (int)code; + context.Response.ContentType = ContentType; + await context.Response.WriteAsync(message); + } + + #endregion + + #region ICaching + + /// + /// 从缓存里取数据,如果不存在则执行查询方法, + /// + /// 类型 + /// ICaching + /// 键值 + /// 查询方法 + /// 有效期 单位分钟/param> + /// + public static T Cof_GetICaching(this ICaching cache, string key, Func GetFun, int timeSpanMin) where T : class + { + var obj = cache.Get(key); + obj = GetFun(); + if (obj == null) + { + obj = GetFun(); + cache.Set(key, obj, timeSpanMin); + } + + return obj as T; + } + + /// + /// 异步从缓存里取数据,如果不存在则执行查询方法 + /// + /// 类型 + /// ICaching + /// 键值 + /// 查询方法 + /// 有效期 单位分钟/param> + /// + public static async Task Cof_AsyncGetICaching(this ICaching cache, string key, Func> GetFun, int timeSpanMin) where T : class + { + var obj = cache.Get(key); + if (obj == null) + { + obj = await GetFun(); + cache.Set(key, obj, timeSpanMin); + } + + return obj as T; + } + + #endregion + + #region 常用扩展方法 + + public static bool Cof_CheckAvailable(this IEnumerable Tlist) + { + return Tlist != null && Tlist.Count() > 0; + } + + /// + /// 调用内部方法 + /// + public static Expression Call(this Expression instance, string methodName, params Expression[] arguments) + { + if (instance.Type == typeof(string)) + return Expression.Call(instance, instance.Type.GetMethod(methodName, new Type[] { typeof(string) }), arguments); //修复string contains 出现的问题 Ambiguous match found. + else + return Expression.Call(instance, instance.Type.GetMethod(methodName), arguments); + } + + /// + /// 获取内部成员 + /// + public static Expression Property(this Expression expression, string propertyName) + { + // Todo:左边条件如果是dynamic, + // 则Expression.Property无法获取子内容 + // 报错在这里,由于expression内的对象为Object,所以无法解析到 + // var x = (expression as IQueryable).ElementType; + var exp = Expression.Property(expression, propertyName); + if (exp.Type.IsGenericType && exp.Type.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + return Expression.Convert(exp, exp.Type.GetGenericArguments()[0]); + } + + return exp; + } + + /// + /// 转Lambda + /// + public static Expression ToLambda(this Expression body, + params ParameterExpression[] parameters) + { + return Expression.Lambda(body, parameters); + } + + #endregion + + #region 常用运算符 [ > , >= , == , < , <= , != , || , && ] + + /// + /// && + /// + public static Expression AndAlso(this Expression left, Expression right) + { + return Expression.AndAlso(left, right); + } + + /// + /// || + /// + public static Expression OrElse(this Expression left, Expression right) + { + return Expression.OrElse(left, right); + } + + /// + /// Contains + /// + public static Expression Contains(this Expression left, Expression right) + { + return left.Call("Contains", right); + } + + /// + /// > + /// + public static Expression GreaterThan(this Expression left, Expression right) + { + return Expression.GreaterThan(left, right); + } + + /// + /// >= + /// + public static Expression GreaterThanOrEqual(this Expression left, Expression right) + { + return Expression.GreaterThanOrEqual(left, right); + } + + /// + /// < + /// + public static Expression LessThan(this Expression left, Expression right) + { + return Expression.LessThan(left, right); + } + + /// + /// <= + /// + public static Expression LessThanOrEqual(this Expression left, Expression right) + { + return Expression.LessThanOrEqual(left, right); + } + + /// + /// == + /// + public static Expression Equal(this Expression left, Expression right) + { + return Expression.Equal(left, right); + } + + /// + /// != + /// + public static Expression NotEqual(this Expression left, Expression right) + { + return Expression.NotEqual(left, right); + } + + #endregion + } + +} diff --git a/Blog.Core.Common/Helper/DynamicLinqFactory.cs b/Blog.Core.Common/Helper/DynamicLinqFactory.cs index a12c6bbb..43fdd7e3 100644 --- a/Blog.Core.Common/Helper/DynamicLinqFactory.cs +++ b/Blog.Core.Common/Helper/DynamicLinqFactory.cs @@ -528,332 +528,7 @@ public enum OperationSymbol #endregion - /// - /// Linq扩展 - /// - public static class ExpressionExtensions - { - #region Nacos NamingService - - private static readonly HttpClient httpclient = new HttpClient(); - - private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl) - { - try - { - var instance = serv.SelectOneHealthyInstance(ServiceName, Group).GetAwaiter().GetResult(); - var host = $"{instance.Ip}:{instance.Port}"; - if (instance.Metadata.ContainsKey("endpoint")) host = instance.Metadata["endpoint"]; - - - var baseUrl = instance.Metadata.TryGetValue("secure", out _) - ? $"https://{host}" - : $"http://{host}"; - - if (string.IsNullOrWhiteSpace(baseUrl)) - { - return ""; - } - - return $"{baseUrl}{apiurl}"; - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - - return ""; - } - - public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters = null) - { - try - { - var url = GetServiceUrl(serv, ServiceName, Group, apiurl); - if (string.IsNullOrEmpty(url)) return ""; - if (Parameters != null && Parameters.Any()) - { - StringBuilder sb = new StringBuilder(); - foreach (var pitem in Parameters) - { - sb.Append($"{pitem.Key}={pitem.Value}&"); - } - - url = $"{url}?{sb.ToString().Trim('&')}"; - } - - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.GetAsync(url); - return await result.Content.ReadAsStringAsync(); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - - return ""; - } - - public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) - { - try - { - var url = GetServiceUrl(serv, ServiceName, Group, apiurl); - if (string.IsNullOrEmpty(url)) return ""; - - var content = (Parameters != null && Parameters.Any()) ? new FormUrlEncodedContent(Parameters) : null; - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.PostAsync(url, content); - return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - - return ""; - } - - public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, string jSonData) - { - try - { - var url = GetServiceUrl(serv, ServiceName, Group, apiurl); - if (string.IsNullOrEmpty(url)) return ""; - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.PostAsync(url, new StringContent(jSonData, Encoding.UTF8, "application/json")); - return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); - - //httpClient.BaseAddress = new Uri("https://www.testapi.com"); - //httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - //httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - - return ""; - } - - public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) - { - try - { - var url = GetServiceUrl(serv, ServiceName, Group, apiurl); - if (string.IsNullOrEmpty(url)) return ""; - - var content = new MultipartFormDataContent(); - foreach (var pitem in Parameters) - { - content.Add(new ByteArrayContent(pitem.Value), "files", pitem.Key); - } - - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.PostAsync(url, content); - return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); - } - catch (Exception e) - { - //InfluxdbHelper.GetInstance().AddLog("Cof_NaocePostFile.Err", ee); - Console.WriteLine(e.Message); - } - - return ""; - } - - #endregion - - #region HttpContext - - /// - /// 返回请求上下文 - /// - /// - /// - /// - /// - /// - public static async Task Cof_SendResponse(this HttpContext context, System.Net.HttpStatusCode code, string message, string ContentType = "text/html;charset=utf-8") - { - context.Response.StatusCode = (int)code; - context.Response.ContentType = ContentType; - await context.Response.WriteAsync(message); - } - - #endregion - - #region ICaching - - /// - /// 从缓存里取数据,如果不存在则执行查询方法, - /// - /// 类型 - /// ICaching - /// 键值 - /// 查询方法 - /// 有效期 单位分钟/param> - /// - public static T Cof_GetICaching(this ICaching cache, string key, Func GetFun, int timeSpanMin) where T : class - { - var obj = cache.Get(key); - obj = GetFun(); - if (obj == null) - { - obj = GetFun(); - cache.Set(key, obj, timeSpanMin); - } - - return obj as T; - } - - /// - /// 异步从缓存里取数据,如果不存在则执行查询方法 - /// - /// 类型 - /// ICaching - /// 键值 - /// 查询方法 - /// 有效期 单位分钟/param> - /// - public static async Task Cof_AsyncGetICaching(this ICaching cache, string key, Func> GetFun, int timeSpanMin) where T : class - { - var obj = cache.Get(key); - if (obj == null) - { - obj = await GetFun(); - cache.Set(key, obj, timeSpanMin); - } - - return obj as T; - } - - #endregion - - #region 常用扩展方法 - - public static bool Cof_CheckAvailable(this IEnumerable Tlist) - { - return Tlist != null && Tlist.Count() > 0; - } - - /// - /// 调用内部方法 - /// - public static Expression Call(this Expression instance, string methodName, params Expression[] arguments) - { - if (instance.Type == typeof(string)) - return Expression.Call(instance, instance.Type.GetMethod(methodName, new Type[] { typeof(string) }), arguments); //修复string contains 出现的问题 Ambiguous match found. - else - return Expression.Call(instance, instance.Type.GetMethod(methodName), arguments); - } - - /// - /// 获取内部成员 - /// - public static Expression Property(this Expression expression, string propertyName) - { - // Todo:左边条件如果是dynamic, - // 则Expression.Property无法获取子内容 - // 报错在这里,由于expression内的对象为Object,所以无法解析到 - // var x = (expression as IQueryable).ElementType; - var exp = Expression.Property(expression, propertyName); - if (exp.Type.IsGenericType && exp.Type.GetGenericTypeDefinition() == typeof(Nullable<>)) - { - return Expression.Convert(exp, exp.Type.GetGenericArguments()[0]); - } - - return exp; - } - - /// - /// 转Lambda - /// - public static Expression ToLambda(this Expression body, - params ParameterExpression[] parameters) - { - return Expression.Lambda(body, parameters); - } - - #endregion - - #region 常用运算符 [ > , >= , == , < , <= , != , || , && ] - - /// - /// && - /// - public static Expression AndAlso(this Expression left, Expression right) - { - return Expression.AndAlso(left, right); - } - - /// - /// || - /// - public static Expression OrElse(this Expression left, Expression right) - { - return Expression.OrElse(left, right); - } - - /// - /// Contains - /// - public static Expression Contains(this Expression left, Expression right) - { - return left.Call("Contains", right); - } - - /// - /// > - /// - public static Expression GreaterThan(this Expression left, Expression right) - { - return Expression.GreaterThan(left, right); - } - - /// - /// >= - /// - public static Expression GreaterThanOrEqual(this Expression left, Expression right) - { - return Expression.GreaterThanOrEqual(left, right); - } - - /// - /// < - /// - public static Expression LessThan(this Expression left, Expression right) - { - return Expression.LessThan(left, right); - } - - /// - /// <= - /// - public static Expression LessThanOrEqual(this Expression left, Expression right) - { - return Expression.LessThanOrEqual(left, right); - } - - /// - /// == - /// - public static Expression Equal(this Expression left, Expression right) - { - return Expression.Equal(left, right); - } - - /// - /// != - /// - public static Expression NotEqual(this Expression left, Expression right) - { - return Expression.NotEqual(left, right); - } - - #endregion - } - + /// /// Queryable扩展 /// From d0b3cfe8054cb64b63a184f1cfb036fe9b3fee14 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 5 Feb 2023 18:40:35 +0800 Subject: [PATCH 205/382] feat: add ExpressionExtensions_Nacos.cs --- .../Extensions/ExpressionExtensions.cs | 134 ---------------- .../Extensions/ExpressionExtensions_Nacos.cs | 148 ++++++++++++++++++ 2 files changed, 148 insertions(+), 134 deletions(-) create mode 100644 Blog.Core.Common/Extensions/ExpressionExtensions_Nacos.cs diff --git a/Blog.Core.Common/Extensions/ExpressionExtensions.cs b/Blog.Core.Common/Extensions/ExpressionExtensions.cs index 4e1b066d..7f9e69e5 100644 --- a/Blog.Core.Common/Extensions/ExpressionExtensions.cs +++ b/Blog.Core.Common/Extensions/ExpressionExtensions.cs @@ -3,9 +3,6 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; -using System.Net.Http.Headers; -using System.Net.Http; -using System.Text; using System.Threading.Tasks; namespace Blog.Core.Common.Helper @@ -15,137 +12,6 @@ namespace Blog.Core.Common.Helper /// public static class ExpressionExtensions { - #region Nacos NamingService - - private static readonly HttpClient httpclient = new HttpClient(); - - private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl) - { - try - { - var instance = serv.SelectOneHealthyInstance(ServiceName, Group).GetAwaiter().GetResult(); - var host = $"{instance.Ip}:{instance.Port}"; - if (instance.Metadata.ContainsKey("endpoint")) host = instance.Metadata["endpoint"]; - - - var baseUrl = instance.Metadata.TryGetValue("secure", out _) - ? $"https://{host}" - : $"http://{host}"; - - if (string.IsNullOrWhiteSpace(baseUrl)) - { - return ""; - } - - return $"{baseUrl}{apiurl}"; - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - - return ""; - } - - public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters = null) - { - try - { - var url = GetServiceUrl(serv, ServiceName, Group, apiurl); - if (string.IsNullOrEmpty(url)) return ""; - if (Parameters != null && Parameters.Any()) - { - StringBuilder sb = new StringBuilder(); - foreach (var pitem in Parameters) - { - sb.Append($"{pitem.Key}={pitem.Value}&"); - } - - url = $"{url}?{sb.ToString().Trim('&')}"; - } - - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.GetAsync(url); - return await result.Content.ReadAsStringAsync(); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - - return ""; - } - - public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) - { - try - { - var url = GetServiceUrl(serv, ServiceName, Group, apiurl); - if (string.IsNullOrEmpty(url)) return ""; - - var content = (Parameters != null && Parameters.Any()) ? new FormUrlEncodedContent(Parameters) : null; - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.PostAsync(url, content); - return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - - return ""; - } - - public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, string jSonData) - { - try - { - var url = GetServiceUrl(serv, ServiceName, Group, apiurl); - if (string.IsNullOrEmpty(url)) return ""; - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.PostAsync(url, new StringContent(jSonData, Encoding.UTF8, "application/json")); - return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); - - //httpClient.BaseAddress = new Uri("https://www.testapi.com"); - //httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - //httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - - return ""; - } - - public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) - { - try - { - var url = GetServiceUrl(serv, ServiceName, Group, apiurl); - if (string.IsNullOrEmpty(url)) return ""; - - var content = new MultipartFormDataContent(); - foreach (var pitem in Parameters) - { - content.Add(new ByteArrayContent(pitem.Value), "files", pitem.Key); - } - - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.PostAsync(url, content); - return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); - } - catch (Exception e) - { - //InfluxdbHelper.GetInstance().AddLog("Cof_NaocePostFile.Err", ee); - Console.WriteLine(e.Message); - } - - return ""; - } - - #endregion - #region HttpContext /// diff --git a/Blog.Core.Common/Extensions/ExpressionExtensions_Nacos.cs b/Blog.Core.Common/Extensions/ExpressionExtensions_Nacos.cs new file mode 100644 index 00000000..c187ee6a --- /dev/null +++ b/Blog.Core.Common/Extensions/ExpressionExtensions_Nacos.cs @@ -0,0 +1,148 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Headers; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Helper +{ + /// + /// Linq扩展 + /// + public static class ExpressionExtensions_Nacos + { + #region Nacos NamingService + + private static readonly HttpClient httpclient = new HttpClient(); + + private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl) + { + try + { + var instance = serv.SelectOneHealthyInstance(ServiceName, Group).GetAwaiter().GetResult(); + var host = $"{instance.Ip}:{instance.Port}"; + if (instance.Metadata.ContainsKey("endpoint")) host = instance.Metadata["endpoint"]; + + + var baseUrl = instance.Metadata.TryGetValue("secure", out _) + ? $"https://{host}" + : $"http://{host}"; + + if (string.IsNullOrWhiteSpace(baseUrl)) + { + return ""; + } + + return $"{baseUrl}{apiurl}"; + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + return ""; + } + + public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters = null) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + if (Parameters != null && Parameters.Any()) + { + StringBuilder sb = new StringBuilder(); + foreach (var pitem in Parameters) + { + sb.Append($"{pitem.Key}={pitem.Value}&"); + } + + url = $"{url}?{sb.ToString().Trim('&')}"; + } + + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.GetAsync(url); + return await result.Content.ReadAsStringAsync(); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + return ""; + } + + public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + + var content = (Parameters != null && Parameters.Any()) ? new FormUrlEncodedContent(Parameters) : null; + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.PostAsync(url, content); + return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + return ""; + } + + public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, string jSonData) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.PostAsync(url, new StringContent(jSonData, Encoding.UTF8, "application/json")); + return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); + + //httpClient.BaseAddress = new Uri("https://www.testapi.com"); + //httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + //httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + return ""; + } + + public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) + { + try + { + var url = GetServiceUrl(serv, ServiceName, Group, apiurl); + if (string.IsNullOrEmpty(url)) return ""; + + var content = new MultipartFormDataContent(); + foreach (var pitem in Parameters) + { + content.Add(new ByteArrayContent(pitem.Value), "files", pitem.Key); + } + + httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await httpclient.PostAsync(url, content); + return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); + } + catch (Exception e) + { + //InfluxdbHelper.GetInstance().AddLog("Cof_NaocePostFile.Err", ee); + Console.WriteLine(e.Message); + } + + return ""; + } + + #endregion + } + +} From 316adaa3671dc0384591e26a148e61cf39e494fb Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 5 Feb 2023 21:50:46 +0800 Subject: [PATCH 206/382] feat: add SerilogServer_Es.cs --- .../LogHelper/Seri/SerilogServer.cs | 17 +--- .../LogHelper/Seri/SerilogServer_Es.cs | 89 +++++++++++++++++++ 2 files changed, 91 insertions(+), 15 deletions(-) create mode 100644 Blog.Core.Common/LogHelper/Seri/SerilogServer_Es.cs diff --git a/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs b/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs index 98affb9e..cb5ec0ff 100644 --- a/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs +++ b/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs @@ -1,6 +1,4 @@ using Blog.Core.Common.Helper; -using Blog.Core.Serilog.Es; -using Blog.Core.Serilog.Es.Formatters; using Serilog; using Serilog.Events; using System; @@ -19,23 +17,12 @@ public class SerilogServer public static void WriteLog(string filename, string[] dataParas, bool IsHeader = true, string defaultFolder = "", bool isJudgeJsonFormat = false) { Log.Logger = new LoggerConfiguration() - // TCPSink 集成Serilog 使用tcp的方式向elk 输出log日志 LogstashJsonFormatter 这个是按照自定义格式化输出内容 - .WriteTo.TCPSink(new LogstashJsonFormatter()) .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Error) //.WriteTo.File(Path.Combine($"log/Serilog/{filename}/", ".log"), rollingInterval: RollingInterval.Day, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level}] {Message}{NewLine}{Exception}") .WriteTo.File(Path.Combine("Log", defaultFolder, $"{filename}.log"), - rollingInterval: RollingInterval.Infinite, - outputTemplate: "{Message}{NewLine}{Exception}") - - // 将日志托送到远程ES - // docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d --name ES01 elasticsearch:7.2.0 - //.Enrich.FromLogContext() - //.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://x.xxx.xx.xx:9200/")) - //{ - // AutoRegisterTemplate = true, - //}) - + rollingInterval: RollingInterval.Infinite, + outputTemplate: "{Message}{NewLine}{Exception}") .CreateLogger(); var now = DateTime.Now; diff --git a/Blog.Core.Common/LogHelper/Seri/SerilogServer_Es.cs b/Blog.Core.Common/LogHelper/Seri/SerilogServer_Es.cs new file mode 100644 index 00000000..048d5597 --- /dev/null +++ b/Blog.Core.Common/LogHelper/Seri/SerilogServer_Es.cs @@ -0,0 +1,89 @@ +using Blog.Core.Common.Helper; +using Blog.Core.Serilog.Es; +using Blog.Core.Serilog.Es.Formatters; +using Serilog; +using Serilog.Events; +using System; +using System.IO; + +namespace Blog.Core.Common.LogHelper +{ + public class SerilogServer_Es + { + /// + /// 记录日常日志 + /// + /// + /// + /// + public static void WriteLog(string filename, string[] dataParas, bool IsHeader = true, string defaultFolder = "", bool isJudgeJsonFormat = false) + { + Log.Logger = new LoggerConfiguration() + // TCPSink 集成Serilog 使用tcp的方式向elk 输出log日志 LogstashJsonFormatter 这个是按照自定义格式化输出内容 + .WriteTo.TCPSink(new LogstashJsonFormatter()) + .MinimumLevel.Debug() + .MinimumLevel.Override("Microsoft", LogEventLevel.Error) + //.WriteTo.File(Path.Combine($"log/Serilog/{filename}/", ".log"), rollingInterval: RollingInterval.Day, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level}] {Message}{NewLine}{Exception}") + .WriteTo.File(Path.Combine("Log", defaultFolder, $"{filename}.log"), + rollingInterval: RollingInterval.Infinite, + outputTemplate: "{Message}{NewLine}{Exception}") + + // 将日志托送到远程ES + // docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d --name ES01 elasticsearch:7.2.0 + //.Enrich.FromLogContext() + //.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://x.xxx.xx.xx:9200/")) + //{ + // AutoRegisterTemplate = true, + //}) + + .CreateLogger(); + + var now = DateTime.Now; + string logContent = String.Join("\r\n", dataParas); + var isJsonFormat = true; + if (isJudgeJsonFormat) + { + var judCont = logContent.Substring(0, logContent.LastIndexOf(",")); + isJsonFormat = JsonHelper.IsJson(judCont); + } + + if (isJsonFormat) + { + if (IsHeader) + { + logContent = ( + "--------------------------------\r\n" + + DateTime.Now + "|\r\n" + + String.Join("\r\n", dataParas) + "\r\n" + ); + } + // 展示elk支持输出4种日志级别 + Log.Information(logContent); + //Log.Warning(logContent); + //Log.Error(logContent); + //Log.Debug(logContent); + } + else + { + Console.WriteLine("【JSON格式异常:】"+logContent + now.ObjToString()); + } + Log.CloseAndFlush(); + } + /// + /// 记录异常日志 + /// + /// + /// + /// + public static void WriteErrorLog(string filename, string message, Exception ex) + { + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Debug() + .MinimumLevel.Override("Microsoft", LogEventLevel.Error) + .WriteTo.File(Path.Combine($"log/Error/{filename}/", ".txt"), rollingInterval: RollingInterval.Day) + .CreateLogger(); + Log.Error(ex, message); + Log.CloseAndFlush(); + } + } +} From 04905f07150a84eda6185d591182570c29eadb60 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 5 Feb 2023 22:36:15 +0800 Subject: [PATCH 207/382] feat:JobSetup_HostedService --- Blog.Core.Api/Program.cs | 1 + .../HostedService/Job1TimedService.cs | 2 +- .../HostedService/Job2TimedService.cs | 2 +- .../JobSetup_HostedService.cs | 20 +++++++++++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) rename {Blog.Core.Tasks => Blog.Core.Extensions}/HostedService/Job1TimedService.cs (98%) rename {Blog.Core.Tasks => Blog.Core.Extensions}/HostedService/Job2TimedService.cs (97%) create mode 100644 Blog.Core.Extensions/ServiceExtensions/JobSetup_HostedService.cs diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 7a9a25c0..8ab4b93d 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -70,6 +70,7 @@ builder.Services.AddMiniProfilerSetup(); builder.Services.AddSwaggerSetup(); builder.Services.AddJobSetup(); +//builder.Services.AddJobSetup_HostedService(); builder.Services.AddHttpContextSetup(); builder.Services.AddAppTableConfigSetup(builder.Environment); builder.Services.AddHttpApi(); diff --git a/Blog.Core.Tasks/HostedService/Job1TimedService.cs b/Blog.Core.Extensions/HostedService/Job1TimedService.cs similarity index 98% rename from Blog.Core.Tasks/HostedService/Job1TimedService.cs rename to Blog.Core.Extensions/HostedService/Job1TimedService.cs index 9777affc..bd515194 100644 --- a/Blog.Core.Tasks/HostedService/Job1TimedService.cs +++ b/Blog.Core.Extensions/HostedService/Job1TimedService.cs @@ -5,7 +5,7 @@ using System.Threading; using System.Threading.Tasks; -namespace Blog.Core.Tasks +namespace Blog.Core.Extensions { public class Job1TimedService : IHostedService, IDisposable { diff --git a/Blog.Core.Tasks/HostedService/Job2TimedService.cs b/Blog.Core.Extensions/HostedService/Job2TimedService.cs similarity index 97% rename from Blog.Core.Tasks/HostedService/Job2TimedService.cs rename to Blog.Core.Extensions/HostedService/Job2TimedService.cs index ee7f2c5c..a1d0d88a 100644 --- a/Blog.Core.Tasks/HostedService/Job2TimedService.cs +++ b/Blog.Core.Extensions/HostedService/Job2TimedService.cs @@ -4,7 +4,7 @@ using System.Threading; using System.Threading.Tasks; -namespace Blog.Core.Tasks +namespace Blog.Core.Extensions { public class Job2TimedService : IHostedService, IDisposable { diff --git a/Blog.Core.Extensions/ServiceExtensions/JobSetup_HostedService.cs b/Blog.Core.Extensions/ServiceExtensions/JobSetup_HostedService.cs new file mode 100644 index 00000000..ccf5eb4d --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/JobSetup_HostedService.cs @@ -0,0 +1,20 @@ +using Microsoft.Extensions.DependencyInjection; +using System; + +namespace Blog.Core.Extensions +{ + /// + /// 任务调度 启动服务 + /// + public static class JobSetup_HostedService + { + public static void AddJobSetup_HostedService(this IServiceCollection services) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + services.AddHostedService(); + services.AddHostedService(); + + } + } +} From a21e2055edbedc0bce480b5fa3c2a6c197ac55cf Mon Sep 17 00:00:00 2001 From: "Lemon.NoCry" <773596523@qq.com> Date: Mon, 6 Feb 2023 22:11:56 +0800 Subject: [PATCH 208/382] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20=E5=8D=87=E7=B4=9A?= =?UTF-8?q?SqlSugar=20->=205.1.3.49?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Model/Blog.Core.Model.csproj | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index de7e6467..67bb5ad7 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -16,9 +16,13 @@ - + + + + + From 60653a383ddd3a9f1ba80acb0d6b550742ff6366 Mon Sep 17 00:00:00 2001 From: "Lemon.NoCry" <773596523@qq.com> Date: Tue, 7 Feb 2023 00:00:05 +0800 Subject: [PATCH 209/382] =?UTF-8?q?=E2=9C=A8=E3=80=80=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=A7=8D=E5=AD=90=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B8=B8=E7=94=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Common/App.cs | 19 +++++ Blog.Core.Common/Core/InternalApp.cs | 15 ++++ .../Extensions/AssemblysExtensions.cs | 24 ++++++ .../Extensions/GenericTypeExtensions.cs | 28 +++++- Blog.Core.Common/Helper/UtilConvert.cs | 12 +++ Blog.Core.Common/Seed/DBSeed.cs | 85 +++++++++++++++++-- Blog.Core.Common/Seed/IEntitySeedData.cs | 36 ++++++++ 7 files changed, 211 insertions(+), 8 deletions(-) create mode 100644 Blog.Core.Common/App.cs create mode 100644 Blog.Core.Common/Core/InternalApp.cs create mode 100644 Blog.Core.Common/Extensions/AssemblysExtensions.cs create mode 100644 Blog.Core.Common/Seed/IEntitySeedData.cs diff --git a/Blog.Core.Common/App.cs b/Blog.Core.Common/App.cs new file mode 100644 index 00000000..008aea5d --- /dev/null +++ b/Blog.Core.Common/App.cs @@ -0,0 +1,19 @@ +using Blog.Core.Common.Core; +using Blog.Core.Common.HttpContextUser; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; +using System; + +namespace Blog.Core.Common; + +public class App +{ + public static IServiceProvider RootServices => InternalApp.RootServices ; + + /// + /// 获取请求上下文 + /// + public static HttpContext HttpContext => RootServices?.GetService()?.HttpContext; + + public static IUser User => HttpContext == null ? null : RootServices?.GetService(); +} \ No newline at end of file diff --git a/Blog.Core.Common/Core/InternalApp.cs b/Blog.Core.Common/Core/InternalApp.cs new file mode 100644 index 00000000..b1f94f9d --- /dev/null +++ b/Blog.Core.Common/Core/InternalApp.cs @@ -0,0 +1,15 @@ +using Microsoft.Extensions.Hosting; +using System; + +namespace Blog.Core.Common.Core; + +public static class InternalApp +{ + /// 根服务 + public static IServiceProvider RootServices; + + public static void ConfigureApplication(this IHost app) + { + RootServices = app.Services; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/AssemblysExtensions.cs b/Blog.Core.Common/Extensions/AssemblysExtensions.cs new file mode 100644 index 00000000..06fa943b --- /dev/null +++ b/Blog.Core.Common/Extensions/AssemblysExtensions.cs @@ -0,0 +1,24 @@ +using Microsoft.Extensions.DependencyModel; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Runtime.Loader; + +namespace Blog.Core.Common.Extensions; + +public static class AssemblysExtensions +{ + public static List GetAllAssemblies() + { + var list = new List(); + var deps = DependencyContext.Default; + var libs = deps.CompileLibraries.Where(lib => !lib.Serviceable && lib.Type != "package" && lib.Name.StartsWith("Baiqian")); + foreach (var lib in libs) + { + var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(lib.Name)); + list.Add(assembly); + } + + return list; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/GenericTypeExtensions.cs b/Blog.Core.Common/Extensions/GenericTypeExtensions.cs index 368b6676..c0b6150f 100644 --- a/Blog.Core.Common/Extensions/GenericTypeExtensions.cs +++ b/Blog.Core.Common/Extensions/GenericTypeExtensions.cs @@ -26,5 +26,31 @@ public static string GetGenericTypeName(this object @object) { return @object.GetType().GetGenericTypeName(); } + + /// + /// 判断类型是否实现某个泛型 + /// + /// 类型 + /// 泛型类型 + /// bool + public static bool HasImplementedRawGeneric(this Type type, Type generic) + { + // 检查接口类型 + var isTheRawGenericType = type.GetInterfaces().Any(IsTheRawGenericType); + if (isTheRawGenericType) return true; + + // 检查类型 + while (type != null && type != typeof(object)) + { + isTheRawGenericType = IsTheRawGenericType(type); + if (isTheRawGenericType) return true; + type = type.BaseType; + } + + return false; + + // 判断逻辑 + bool IsTheRawGenericType(Type type) => generic == (type.IsGenericType ? type.GetGenericTypeDefinition() : type); + } } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/UtilConvert.cs b/Blog.Core.Common/Helper/UtilConvert.cs index 282989e3..ea3b7c05 100644 --- a/Blog.Core.Common/Helper/UtilConvert.cs +++ b/Blog.Core.Common/Helper/UtilConvert.cs @@ -43,6 +43,18 @@ public static int ObjToInt(this object thisValue, int errorValue) return errorValue; } + public static long ObjToLong(this object thisValue) + { + long reval = 0; + if (thisValue == null) return 0; + if (thisValue != DBNull.Value && long.TryParse(thisValue.ToString(), out reval)) + { + return reval; + } + + return reval; + } + /// /// /// diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 9afdc30d..adb185f2 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -1,4 +1,5 @@ using Blog.Core.Common.DB; +using Blog.Core.Common.Extensions; using Blog.Core.Common.Helper; using Blog.Core.Model.Models; using Magicodes.ExporterAndImporter.Excel; @@ -96,7 +97,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) var modelTypes = referencedAssemblies .SelectMany(a => a.DefinedTypes) .Select(type => type.AsType()) - .Where(x => x.IsClass && x.Namespace != null && x.Namespace.Equals("Blog.Core.Model.Models")).ToList(); + .Where(x => x.IsClass && x.Namespace is "Blog.Core.Model.Models").ToList(); modelTypes.ForEach(t => { // 这里只支持添加表,不支持删除 @@ -110,8 +111,6 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) ConsoleHelper.WriteSuccessLine($"Tables created successfully!"); Console.WriteLine(); - - if (AppSettings.app(new string[] { "AppSettings", "SeedDBDataEnabled" }).ObjToBool()) { JsonSerializerSettings setting = new JsonSerializerSettings(); @@ -135,6 +134,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) var importer = new ExcelImporter(); #region BlogArticle + if (!await myContext.Db.Queryable().AnyAsync()) { myContext.GetEntityDB().InsertRange(JsonHelper.ParseFormByJson>(FileHelper.ReadFile(string.Format(SeedDataFolder, "BlogArticle"), Encoding.UTF8))); @@ -144,15 +144,14 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:BlogArticle already exists..."); } + #endregion #region Modules + if (!await myContext.Db.Queryable().AnyAsync()) { - - - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Modules"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); @@ -162,10 +161,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:Modules already exists..."); } + #endregion #region Permission + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Permission"), Encoding.UTF8), setting); @@ -177,10 +178,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:Permission already exists..."); } + #endregion #region Role + if (!await myContext.Db.Queryable().AnyAsync()) { //var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Role"), Encoding.UTF8), setting); @@ -195,10 +198,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:Role already exists..."); } + #endregion #region RoleModulePermission + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "RoleModulePermission"), Encoding.UTF8), setting); @@ -210,10 +215,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:RoleModulePermission already exists..."); } + #endregion #region Topic + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Topic"), Encoding.UTF8), setting); @@ -225,10 +232,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:Topic already exists..."); } + #endregion #region TopicDetail + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "TopicDetail"), Encoding.UTF8), setting); @@ -240,10 +249,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:TopicDetail already exists..."); } + #endregion #region UserRole + if (!await myContext.Db.Queryable().AnyAsync()) { //var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "UserRole"), Encoding.UTF8), setting); @@ -258,10 +269,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:UserRole already exists..."); } + #endregion #region sysUserInfo + if (!await myContext.Db.Queryable().AnyAsync()) { //var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "sysUserInfo"), Encoding.UTF8), setting); @@ -276,10 +289,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:sysUserInfo already exists..."); } + #endregion #region TasksQz + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "TasksQz"), Encoding.UTF8), setting); @@ -291,9 +306,11 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:TasksQz already exists..."); } + #endregion #region Department + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Department"), Encoding.UTF8), setting); @@ -305,13 +322,16 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:Department already exists..."); } + #endregion + //种子初始化 + await SeedDataAsync(myContext); + ConsoleHelper.WriteSuccessLine($"Done seeding database!"); } Console.WriteLine(); - } catch (Exception ex) { @@ -321,5 +341,56 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) "3、其他错误:" + ex.Message); } } + + /// + /// 种子初始化数据 + /// + /// + /// + private static async Task SeedDataAsync(MyContext myContext) + { + // 获取所有种子配置-初始化数据 + var seedDataTypes = AssemblysExtensions.GetAllAssemblies().SelectMany(s => s.DefinedTypes) + .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && + u.GetInterfaces().Any(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>)))); + if (!seedDataTypes.Any()) return; + foreach (var seedType in seedDataTypes) + { + dynamic instance = Activator.CreateInstance(seedType); + //初始化数据 + { + var seedData = instance.InitSeedData(); + if (seedData != null && Enumerable.Any(seedData)) + { + var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); + var entity = myContext.Db.EntityMaintenance.GetEntityInfo(entityType); + + if (!await myContext.Db.Queryable(entity.DbTableName, "").AnyAsync()) + { + await myContext.Db.Insertable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + Console.WriteLine($"Table:{entity.DbTableName} init success!"); + } + } + } + + //种子数据 + { + var seedData = instance.SeedData(); + if (seedData != null && Enumerable.Any(seedData)) + { + var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); + var entity = myContext.Db.EntityMaintenance.GetEntityInfo(entityType); + + await myContext.Db.Storageable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + Console.WriteLine($"Table:{entity.DbTableName} seedData success!"); + } + } + + //自定义处理 + { + await instance.CustomizeSeedData(myContext.Db); + } + } + } } } \ No newline at end of file diff --git a/Blog.Core.Common/Seed/IEntitySeedData.cs b/Blog.Core.Common/Seed/IEntitySeedData.cs new file mode 100644 index 00000000..3e2f4859 --- /dev/null +++ b/Blog.Core.Common/Seed/IEntitySeedData.cs @@ -0,0 +1,36 @@ +using SqlSugar; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Seed; + +/// +/// 种子数据 接口 +/// +/// +public interface IEntitySeedData + where T : class, new() +{ + /// + /// 初始化种子数据
    + /// 只要表不存在数据,程序启动就会自动初始化 + ///
    + /// + IEnumerable InitSeedData(); + + /// + /// 种子数据
    + /// 存在不操作、不存在Insert
    + /// 适合系统内置数据,项目开发后续增加内置数据 + ///
    + /// + IEnumerable SeedData(); + + /// + /// 自定义操作
    + /// 以上满不足了,可以自己编写 + ///
    + /// + /// + Task CustomizeSeedData(ISqlSugarClient db); +} \ No newline at end of file From 151e7fc0ab97989c9545e2b1d406d254993edcfc Mon Sep 17 00:00:00 2001 From: "Lemon.NoCry" <773596523@qq.com> Date: Tue, 7 Feb 2023 00:27:55 +0800 Subject: [PATCH 210/382] =?UTF-8?q?=E2=9C=A8=F0=9F=8E=A8=20=E5=A4=9A?= =?UTF-8?q?=E7=A7=9F=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.兼容使用多租户多种方案 2.增加系统租户表、用户增加租户id、新增一张业务表用于租户测试数据 3.TenantByIdController 租户使用 --- Blog.Core.Api/Blog.Core.Api.csproj | 6 +- Blog.Core.Api/Blog.Core.Model.xml | 172 ++++++++++++++++++ Blog.Core.Api/Blog.Core.xml | 17 ++ Blog.Core.Api/Controllers/LoginController.cs | 37 ++-- .../Tenant/TenantByIdController.cs | 49 +++++ Blog.Core.Api/Program.cs | 3 +- .../BlogCore.Data.excel/SysUserInfo.xlsx | Bin 11177 -> 11197 bytes Blog.Core.Common/Blog.Core.Common.csproj | 4 + Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 86 +++++++++ Blog.Core.Common/DB/RepositorySetting.cs | 43 +++++ .../Extensions/AssemblysExtensions.cs | 2 +- .../HttpContextUser/AspNetUser.cs | 6 +- Blog.Core.Common/HttpContextUser/IUser.cs | 3 +- .../Seed/SeedData/BusinessDataSeedData.cs | 79 ++++++++ .../Seed/SeedData/TenantSeedData.cs | 44 +++++ .../Seed/SeedData/UserInfoSeedData.cs | 42 +++++ Blog.Core.EventBus/Blog.Core.EventBus.csproj | 2 +- .../Blog.Core.Extensions.csproj | 2 +- .../Middlewares/RequRespLogMiddleware.cs | 1 - .../ServiceExtensions/SqlsugarSetup.cs | 17 +- Blog.Core.IServices/BASE/IBaseServices.cs | 1 + Blog.Core.Model/Blog.Core.Model.csproj | 2 +- Blog.Core.Model/CustomEnums/TenantTypeEnum.cs | 23 +++ Blog.Core.Model/Models/BusinessTable.cs | 27 +++ Blog.Core.Model/Models/RootTkey/BaseEntity.cs | 86 +++++++++ .../RootTkey/Interface/IDeleteFilter.cs | 9 + .../RootTkey/Interface/ITenantEntity.cs | 15 ++ .../Models/RootTkey/RootEntityTkey.cs | 2 - Blog.Core.Model/Models/SysTenant.cs | 67 +++++++ Blog.Core.Model/Models/sysUserInfo.cs | 10 +- Blog.Core.Services/BASE/BaseServices.cs | 56 +++--- 31 files changed, 854 insertions(+), 59 deletions(-) create mode 100644 Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs create mode 100644 Blog.Core.Common/DB/Aop/SqlsugarAop.cs create mode 100644 Blog.Core.Common/DB/RepositorySetting.cs create mode 100644 Blog.Core.Common/Seed/SeedData/BusinessDataSeedData.cs create mode 100644 Blog.Core.Common/Seed/SeedData/TenantSeedData.cs create mode 100644 Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs create mode 100644 Blog.Core.Model/CustomEnums/TenantTypeEnum.cs create mode 100644 Blog.Core.Model/Models/BusinessTable.cs create mode 100644 Blog.Core.Model/Models/RootTkey/BaseEntity.cs create mode 100644 Blog.Core.Model/Models/RootTkey/Interface/IDeleteFilter.cs create mode 100644 Blog.Core.Model/Models/RootTkey/Interface/ITenantEntity.cs create mode 100644 Blog.Core.Model/Models/SysTenant.cs diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 38575a55..7e17937a 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -26,18 +26,22 @@ + + + + @@ -94,7 +98,7 @@ - + diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 36975d11..f5fd195c 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -34,6 +34,21 @@ 所有
    + + + 租户隔离方案 + + + + + Id隔离 + + + + + 库隔离 + + 以下model 来自ids4项目,多库模式,为了调取ids4数据 @@ -301,6 +316,27 @@ 逻辑删除 + + + 业务数据
    + 多租户 (Id 隔离) +
    +
    + + + 无需手动赋值 + + + + + 名称 + + + + + 金额 + + 部门表 @@ -822,6 +858,137 @@ 修改时间 + + + 雪花Id + + + + + 状态
    + 中立字段,某些表可使用某些表不使用 +
    +
    + + + 中立字段,某些表可使用某些表不使用
    + 逻辑上的删除,非物理删除
    + 例如:单据删除并非直接删除 +
    +
    + + + 中立字段
    + 是否内置数据 +
    +
    + + + 创建ID + + + + + 创建者 + + + + + 创建时间 + + + + + 修改ID + + + + + 更新者 + + + + + 修改日期 + + + + + 数据版本 + + + + + 软删除 过滤器 + + + + + 租户模型接口 + + + + + 租户Id + + + + + 系统租户表
    + 根据TenantType 分为两种方案:
    + 1.按租户字段区分
    + 2.按租户分库
    + +
    + + 注意:
    + 使用租户Id方案,无需配置分库的连接 +
    +
    + + + 名称 + + + + + 租户类型 + + + + + 数据库/租户标识 不可重复
    + 使用Id方案,可无需配置 +
    +
    + + + 主机
    + 使用Id方案,可无需配置 +
    +
    + + + 数据库类型
    + 使用Id方案,可无需配置 +
    +
    + + + 数据库连接
    + 使用Id方案,可无需配置 +
    +
    + + + 状态 + + + + + 备注 + + 用户信息表 @@ -887,6 +1054,11 @@ 登录账号 + + + 租户Id + + 任务计划表 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 3321d53a..8b5b79fd 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1236,6 +1236,23 @@ + + + 多租户测试 + + + + + 获取租户下全部业务数据
    +
    + +
    + + + 新增业务数据 + + + 自定义路由 /api/{version}/[controler]/[action] diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index 25818c13..87f5c0c9 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.IdentityModel.Tokens.Jwt; -using System.Linq; -using System.Security.Claims; -using System.Threading.Tasks; -using Blog.Core.AuthHelper; +using Blog.Core.AuthHelper; using Blog.Core.AuthHelper.OverWrite; using Blog.Core.Common.Helper; using Blog.Core.IServices; @@ -12,8 +6,9 @@ using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; namespace Blog.Core.Controllers @@ -52,6 +47,7 @@ public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServic #region 获取token的第1种方法 + /// /// 获取JWT的方法1 /// @@ -62,7 +58,6 @@ public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServic [Route("Token")] public async Task> GetJwtStr(string name, string pass) { - string jwtStr = string.Empty; bool suc = false; //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 @@ -70,7 +65,6 @@ public async Task> GetJwtStr(string name, string pass) var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass)); if (user != null) { - TokenModelJwt tokenModel = new TokenModelJwt { Uid = 1, Role = user }; jwtStr = JwtHelper.IssueJwt(tokenModel); @@ -119,6 +113,7 @@ public MessageModel GetJwtStrForNuxt(string name, string pass) { jwtStr = "login fail!!!"; } + var result = new { data = new { success = suc, token = jwtStr } @@ -131,8 +126,8 @@ public MessageModel GetJwtStrForNuxt(string name, string pass) response = jwtStr }; } - #endregion + #endregion /// @@ -157,11 +152,14 @@ public async Task> GetJwtToken3(string name = " { var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(name, pass); //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 - var claims = new List { + var claims = new List + { new Claim(ClaimTypes.Name, name), new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().Id.ToString()), + new Claim("TenantId", user.FirstOrDefault().TenantId.ToString()), new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), - new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; + new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) + }; claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); @@ -218,11 +216,13 @@ public async Task> RefreshToken(string token = { var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(user.LoginName, user.LoginPWD); //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 - var claims = new List { - new Claim(ClaimTypes.Name, user.LoginName), - new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), - new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; + var claims = new List + { + new Claim(ClaimTypes.Name, user.LoginName), + new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), + new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) + }; claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); //用户标识 @@ -233,6 +233,7 @@ public async Task> RefreshToken(string token = return Success(refreshToken, "获取成功"); } } + return Failed("认证失败!"); } diff --git a/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs b/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs new file mode 100644 index 00000000..a0271780 --- /dev/null +++ b/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs @@ -0,0 +1,49 @@ +using Blog.Core.Common.HttpContextUser; +using Blog.Core.Controllers; +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Api.Controllers.Tenant; + +/// +/// 多租户测试 +/// +[Produces("application/json")] +[Route("api/Tenant/ById")] +[Authorize] +public class TenantByIdController : BaseApiController +{ + private readonly IBaseServices _services; + private readonly IUser _user; + + public TenantByIdController(IUser user, IBaseServices services) + { + _user = user; + _services = services; + } + + /// + /// 获取租户下全部业务数据
    + ///
    + /// + [HttpGet] + public async Task>> GetAll() + { + var data = await _services.Query(); + return Success(data); + } + + /// + /// 新增业务数据 + /// + /// + [HttpPost] + public async Task Post([FromBody] BusinessTable data) + { + await _services.Db.Insertable(data).ExecuteReturnSnowflakeIdAsync(); + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 8ab4b93d..21bb55c0 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -4,6 +4,7 @@ using Autofac.Extensions.DependencyInjection; using Blog.Core; using Blog.Core.Common; +using Blog.Core.Common.Core; using Blog.Core.Common.LogHelper; using Blog.Core.Common.Seed; using Blog.Core.Extensions; @@ -13,7 +14,6 @@ using Blog.Core.Hubs; using Blog.Core.IServices; using Blog.Core.Tasks; -using FluentValidation.AspNetCore; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; @@ -132,6 +132,7 @@ // 3、配置中间件 var app = builder.Build(); +app.ConfigureApplication(); if (app.Environment.IsDevelopment()) { diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.excel/SysUserInfo.xlsx b/Blog.Core.Api/wwwroot/BlogCore.Data.excel/SysUserInfo.xlsx index 51c0e125ec7a2b31b7d3e932bee4a0cde662b4d0..6a1e4ca6b01b92e1ab3095a7090a48ed41119a21 100644 GIT binary patch delta 4254 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 delta 4220 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 + + + + diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs new file mode 100644 index 00000000..3646625d --- /dev/null +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -0,0 +1,86 @@ +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Models.RootTkey.Interface; +using SqlSugar; +using System; + +namespace Blog.Core.Common.DB.Aop; + +public static class SqlSugarAop +{ + public static void DataExecuting(object oldValue, DataFilterModel entityInfo) + { + if (entityInfo.EntityValue is BaseEntity root) + { + if (root.Id == 0) + { + root.Id = SnowFlakeSingle.Instance.NextId(); + } + } + + if (entityInfo.EntityValue is BaseEntity baseEntity) + { + // 新增操作 + if (entityInfo.OperationType == DataFilterType.InsertByObject) + { + if (baseEntity.CreateTime == DateTime.MinValue) + { + baseEntity.CreateTime = DateTime.Now; + } + } + + if (entityInfo.OperationType == DataFilterType.UpdateByObject) + { + baseEntity.ModifyTime = DateTime.Now; + } + + + if (App.User?.ID > 0) + { + if (baseEntity is ITenantEntity tenant && App.User.TenantId > 0) + { + if (tenant.TenantId == 0) + { + tenant.TenantId = App.User.TenantId; + } + } + + switch (entityInfo.OperationType) + { + case DataFilterType.UpdateByObject: + baseEntity.ModifyId = App.User.ID; + baseEntity.ModifyBy = App.User.Name; + break; + case DataFilterType.InsertByObject: + if (baseEntity.CreateBy.IsNullOrEmpty() || baseEntity.CreateId is null or <= 0) + { + baseEntity.CreateId = App.User.ID; + baseEntity.CreateBy = App.User.Name; + } + + break; + } + } + } + } + + private static string GetWholeSql(SugarParameter[] paramArr, string sql) + { + foreach (var param in paramArr) + { + sql = sql.Replace(param.ParameterName, $@"'{param.Value.ObjToString()}'"); + } + + return sql; + } + + private static string GetParas(SugarParameter[] pars) + { + string key = "【SQL参数】:"; + foreach (var param in pars) + { + key += $"{param.ParameterName}:{param.Value}\n"; + } + + return key; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/RepositorySetting.cs b/Blog.Core.Common/DB/RepositorySetting.cs new file mode 100644 index 00000000..c80ec7f8 --- /dev/null +++ b/Blog.Core.Common/DB/RepositorySetting.cs @@ -0,0 +1,43 @@ +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Models.RootTkey.Interface; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Blog.Core.Common.DB; + +public class RepositorySetting +{ + private static readonly Lazy> AllEntitys = new(() => + { + return typeof(BaseEntity).Assembly + .GetTypes() + .Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(BaseEntity))) + .Where(it => it.FullName != null && it.FullName.StartsWith("Ivytalk.FoodSafety.Model.Models")); + }); + + public static IEnumerable Entitys => AllEntitys.Value; + + /// + /// 配置实体软删除过滤器
    + /// 统一过滤 软删除 无需自己写条件 + ///
    + public static void SetDeletedEntityFilter(SqlSugarScopeProvider db) + { + db.QueryFilter.AddTableFilter(it => it.IsDeleted == false); + } + + /// + /// 配置租户 + /// + public static void SetTenantEntityFilter(SqlSugarScopeProvider db) + { + if (App.User is not { ID: > 0, TenantId: > 0 }) + { + return; + } + + db.QueryFilter.AddTableFilter(it => it.TenantId == App.User.TenantId || it.TenantId == 0); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/AssemblysExtensions.cs b/Blog.Core.Common/Extensions/AssemblysExtensions.cs index 06fa943b..5e5d4349 100644 --- a/Blog.Core.Common/Extensions/AssemblysExtensions.cs +++ b/Blog.Core.Common/Extensions/AssemblysExtensions.cs @@ -12,7 +12,7 @@ public static List GetAllAssemblies() { var list = new List(); var deps = DependencyContext.Default; - var libs = deps.CompileLibraries.Where(lib => !lib.Serviceable && lib.Type != "package" && lib.Name.StartsWith("Baiqian")); + var libs = deps.CompileLibraries.Where(lib => !lib.Serviceable && lib.Type != "package" ); foreach (var lib in libs) { var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(lib.Name)); diff --git a/Blog.Core.Common/HttpContextUser/AspNetUser.cs b/Blog.Core.Common/HttpContextUser/AspNetUser.cs index e4e27d87..b37e4a24 100644 --- a/Blog.Core.Common/HttpContextUser/AspNetUser.cs +++ b/Blog.Core.Common/HttpContextUser/AspNetUser.cs @@ -5,6 +5,7 @@ using Blog.Core.Model; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; +using SqlSugar.Extensions; namespace Blog.Core.Common.HttpContextUser { @@ -40,6 +41,7 @@ private string GetName() } public int ID => GetClaimValueByType("jti").FirstOrDefault().ObjToInt(); + public long TenantId => GetClaimValueByType("TenantId").FirstOrDefault().ObjToLong(); public bool IsAuthenticated() { @@ -87,11 +89,9 @@ public IEnumerable GetClaimsIdentity() public List GetClaimValueByType(string ClaimType) { - return (from item in GetClaimsIdentity() where item.Type == ClaimType select item.Value).ToList(); - } } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/HttpContextUser/IUser.cs b/Blog.Core.Common/HttpContextUser/IUser.cs index beef3b7d..3849bd38 100644 --- a/Blog.Core.Common/HttpContextUser/IUser.cs +++ b/Blog.Core.Common/HttpContextUser/IUser.cs @@ -8,6 +8,7 @@ public interface IUser { string Name { get; } int ID { get; } + long TenantId { get; } bool IsAuthenticated(); IEnumerable GetClaimsIdentity(); List GetClaimValueByType(string ClaimType); @@ -17,4 +18,4 @@ public interface IUser MessageModel MessageModel { get; set; } } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/BusinessDataSeedData.cs b/Blog.Core.Common/Seed/SeedData/BusinessDataSeedData.cs new file mode 100644 index 00000000..361cd725 --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/BusinessDataSeedData.cs @@ -0,0 +1,79 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Blog.Core.Model.Models; +using SqlSugar; + +namespace Blog.Core.Common.Seed.SeedData; + +/// +/// 初始化 业务数据 +/// +public class BusinessDataSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return new[] + { + new BusinessTable() + { + Id = 1, + TenantId = 1000001, + Name = "张三的数据01", + Amount = 150, + IsDeleted = true, + }, + new BusinessTable() + { + Id = 2, + TenantId = 1000001, + Name = "张三的数据02", + Amount = 200, + }, + new BusinessTable() + { + Id = 3, + TenantId = 1000001, + Name = "张三的数据03", + Amount = 250, + }, + new BusinessTable() + { + Id = 4, + TenantId = 1000002, + Name = "李四的数据01", + Amount = 300, + }, + new BusinessTable() + { + Id = 5, + TenantId = 1000002, + Name = "李四的数据02", + Amount = 500, + }, + new BusinessTable() + { + Id = 6, + TenantId = 0, + Name = "公共数据01", + Amount = 16600, + }, + new BusinessTable() + { + Id = 7, + TenantId = 0, + Name = "公共数据02", + Amount = 19800, + }, + }; + } + + public IEnumerable SeedData() + { + return default; + } + + public Task CustomizeSeedData(ISqlSugarClient db) + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs b/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs new file mode 100644 index 00000000..89945547 --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Blog.Core.Model.CustomEnums; +using Blog.Core.Model.Models; +using SqlSugar; + +namespace Blog.Core.Common.Seed.SeedData; + +/// +/// 租户 种子数据 +/// +public class TenantSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return new[] + { + new SysTenant() + { + Id = 1000001, + ConfigId = "Tenant_1", + Name = "张三", + TenantType = TenantTypeEnum.Id + }, + new SysTenant() + { + Id = 1000002, + ConfigId = "Tenant_2", + Name = "李四", + TenantType = TenantTypeEnum.Id + }, + }; + } + + public IEnumerable SeedData() + { + return default; + } + + public Task CustomizeSeedData(ISqlSugarClient db) + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs b/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs new file mode 100644 index 00000000..c00eb798 --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs @@ -0,0 +1,42 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Blog.Core.Model.Models; +using SqlSugar; + +namespace Blog.Core.Common.Seed.SeedData; + +public class UserInfoSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return default; + } + + public IEnumerable SeedData() + { + return new[] + { + new SysUserInfo() + { + Id = 10001, + LoginName = "zhangsan", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "张三", + TenantId = 1000001, //租户Id + }, + new SysUserInfo() + { + Id = 10002, + LoginName = "lisi", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "李四", + TenantId = 1000002, //租户Id + }, + }; + } + + public Task CustomizeSeedData(ISqlSugarClient db) + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.EventBus/Blog.Core.EventBus.csproj b/Blog.Core.EventBus/Blog.Core.EventBus.csproj index 070c0a48..09d4e6a2 100644 --- a/Blog.Core.EventBus/Blog.Core.EventBus.csproj +++ b/Blog.Core.EventBus/Blog.Core.EventBus.csproj @@ -12,7 +12,7 @@ - + diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 50969b05..451d24f1 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -21,7 +21,7 @@ - + diff --git a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs index 6ff8d044..4c61ed3b 100644 --- a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs @@ -7,7 +7,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Newtonsoft.Json; -using Ubiety.Dns.Core.Common; namespace Blog.Core.Extensions.Middlewares { diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index b3eb4bdc..3ecf224a 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using Blog.Core.Common.DB.Aop; namespace Blog.Core.Extensions { @@ -101,7 +102,21 @@ public static void AddSqlsugarSetup(this IServiceCollection services) } ); }); - return new SqlSugarScope(listConfig); + return new SqlSugarScope(listConfig, db => + { + listConfig.ForEach(config => + { + var dbProvider = db.GetConnectionScope((string)config.ConfigId); + + // 数据审计 + dbProvider.Aop.DataExecuting = SqlSugarAop.DataExecuting; + + // 配置实体假删除过滤器 + RepositorySetting.SetDeletedEntityFilter(dbProvider); + // 配置实体数据权限 + RepositorySetting.SetTenantEntityFilter(dbProvider); + }); + }); }); } diff --git a/Blog.Core.IServices/BASE/IBaseServices.cs b/Blog.Core.IServices/BASE/IBaseServices.cs index 27daae98..7856f8bf 100644 --- a/Blog.Core.IServices/BASE/IBaseServices.cs +++ b/Blog.Core.IServices/BASE/IBaseServices.cs @@ -10,6 +10,7 @@ namespace Blog.Core.IServices.BASE { public interface IBaseServices where TEntity : class { + ISqlSugarClient Db { get; } Task QueryById(object objId); Task QueryById(object objId, bool blnUseCache = false); diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index 67bb5ad7..e66c5c5b 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -22,7 +22,7 @@ - + diff --git a/Blog.Core.Model/CustomEnums/TenantTypeEnum.cs b/Blog.Core.Model/CustomEnums/TenantTypeEnum.cs new file mode 100644 index 00000000..a445414b --- /dev/null +++ b/Blog.Core.Model/CustomEnums/TenantTypeEnum.cs @@ -0,0 +1,23 @@ +using System.ComponentModel; + +namespace Blog.Core.Model.CustomEnums; + +/// +/// 租户隔离方案 +/// +public enum TenantTypeEnum +{ + None = 0, + + /// + /// Id隔离 + /// + [Description("Id隔离")] + Id = 1, + + /// + /// 库隔离 + /// + [Description("库隔离")] + Db = 2, +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/BusinessTable.cs b/Blog.Core.Model/Models/BusinessTable.cs new file mode 100644 index 00000000..01a18716 --- /dev/null +++ b/Blog.Core.Model/Models/BusinessTable.cs @@ -0,0 +1,27 @@ +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Models.RootTkey.Interface; + +namespace Blog.Core.Model.Models; + +/// +/// 业务数据
    +/// 多租户 (Id 隔离) +///
    +public class BusinessTable : BaseEntity, ITenantEntity +{ + /// + /// 无需手动赋值 + /// + public long TenantId { get; set; } + + + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 金额 + /// + public decimal Amount { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/RootTkey/BaseEntity.cs b/Blog.Core.Model/Models/RootTkey/BaseEntity.cs new file mode 100644 index 00000000..efbde8fd --- /dev/null +++ b/Blog.Core.Model/Models/RootTkey/BaseEntity.cs @@ -0,0 +1,86 @@ +using Blog.Core.Model.Models.RootTkey.Interface; +using SqlSugar; +using System; + +namespace Blog.Core.Model.Models.RootTkey; + +public class BaseEntity : IDeleteFilter +{ + /// + /// 雪花Id + /// + [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = false)] + public long Id { get; set; } + + #region 数据状态管理 + + /// + /// 状态
    + /// 中立字段,某些表可使用某些表不使用 + ///
    + public bool Enabled { get; set; } = true; + + /// + /// 中立字段,某些表可使用某些表不使用
    + /// 逻辑上的删除,非物理删除
    + /// 例如:单据删除并非直接删除 + ///
    + public bool IsDeleted { get; set; } + + /// + /// 中立字段
    + /// 是否内置数据 + ///
    + public bool IsInternal { get; set; } + + #endregion + + #region 创建 + + /// + /// 创建ID + /// + [SugarColumn(IsNullable = true, IsOnlyIgnoreUpdate = true)] + public long? CreateId { get; set; } + + /// + /// 创建者 + /// + [SugarColumn(IsNullable = true, IsOnlyIgnoreUpdate = true)] + public string CreateBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(IsOnlyIgnoreUpdate = true)] + public DateTime CreateTime { get; set; } = DateTime.Now; + + #endregion + + #region 修改 + + /// + /// 修改ID + /// + [SugarColumn(IsNullable = true)] + public long? ModifyId { get; set; } + + /// + /// 更新者 + /// + [SugarColumn(IsNullable = true)] + public string ModifyBy { get; set; } + + /// + /// 修改日期 + /// + public DateTime? ModifyTime { get; set; } = DateTime.Now; + + /// + /// 数据版本 + /// + [SugarColumn(DefaultValue = "0", IsEnableUpdateVersionValidation = true)] //标识版本字段 + public long Version { get; set; } + + #endregion +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/RootTkey/Interface/IDeleteFilter.cs b/Blog.Core.Model/Models/RootTkey/Interface/IDeleteFilter.cs new file mode 100644 index 00000000..57d421e9 --- /dev/null +++ b/Blog.Core.Model/Models/RootTkey/Interface/IDeleteFilter.cs @@ -0,0 +1,9 @@ +namespace Blog.Core.Model.Models.RootTkey.Interface; + +/// +/// 软删除 过滤器 +/// +public interface IDeleteFilter +{ + public bool IsDeleted { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/RootTkey/Interface/ITenantEntity.cs b/Blog.Core.Model/Models/RootTkey/Interface/ITenantEntity.cs new file mode 100644 index 00000000..350312b8 --- /dev/null +++ b/Blog.Core.Model/Models/RootTkey/Interface/ITenantEntity.cs @@ -0,0 +1,15 @@ +using SqlSugar; + +namespace Blog.Core.Model.Models.RootTkey.Interface; + +/// +/// 租户模型接口 +/// +public interface ITenantEntity +{ + /// + /// 租户Id + /// + [SugarColumn(DefaultValue = "0")] + public long TenantId { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/RootTkey/RootEntityTkey.cs b/Blog.Core.Model/Models/RootTkey/RootEntityTkey.cs index afecdec9..20bdda0d 100644 --- a/Blog.Core.Model/Models/RootTkey/RootEntityTkey.cs +++ b/Blog.Core.Model/Models/RootTkey/RootEntityTkey.cs @@ -11,7 +11,5 @@ public class RootEntityTkey where Tkey : IEquatable ///
    [SugarColumn(IsNullable = false, IsPrimaryKey = true)] public Tkey Id { get; set; } - - } } \ No newline at end of file diff --git a/Blog.Core.Model/Models/SysTenant.cs b/Blog.Core.Model/Models/SysTenant.cs new file mode 100644 index 00000000..7e6f195d --- /dev/null +++ b/Blog.Core.Model/Models/SysTenant.cs @@ -0,0 +1,67 @@ +using Blog.Core.Model.CustomEnums; +using SqlSugar; + +namespace Blog.Core.Model.Models; + +/// +/// 系统租户表
    +/// 根据TenantType 分为两种方案:
    +/// 1.按租户字段区分
    +/// 2.按租户分库
    +/// +///
    +/// +/// 注意:
    +/// 使用租户Id方案,无需配置分库的连接 +///
    +public class SysTenant : RootEntityTkey +{ + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 租户类型 + /// + public TenantTypeEnum TenantType { get; set; } + + /// + /// 数据库/租户标识 不可重复
    + /// 使用Id方案,可无需配置 + ///
    + [SugarColumn(Length = 64)] + public string ConfigId { get; set; } + + /// + /// 主机
    + /// 使用Id方案,可无需配置 + ///
    + [SugarColumn(IsNullable = true)] + public string Host { get; set; } + + /// + /// 数据库类型
    + /// 使用Id方案,可无需配置 + ///
    + [SugarColumn(IsNullable = true)] + public SqlSugar.DbType? DbType { get; set; } + + /// + /// 数据库连接
    + /// 使用Id方案,可无需配置 + ///
    + [SugarColumn(IsNullable = true)] + public string Connection { get; set; } + + /// + /// 状态 + /// + public bool Status { get; set; } = true; + + /// + /// 备注 + /// + [SugarColumn(IsNullable = true)] + public string Remark { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index c60e4bce..366b2291 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -8,7 +8,7 @@ namespace Blog.Core.Model.Models /// 用户信息表 ///
    //[SugarTable("SysUserInfo")] - [SugarTable("SysUserInfo", "用户表")]//('数据库表名','数据库表备注') + [SugarTable("SysUserInfo", "用户表")] //('数据库表名','数据库表备注') public class SysUserInfo : SysUserInfoRoot { public SysUserInfo() @@ -120,6 +120,14 @@ public SysUserInfo(string loginName, string loginPWD) [SugarColumn(IsNullable = true)] public bool IsDeleted { get; set; } + /// + /// 租户Id + /// + [SugarColumn(IsNullable = false,DefaultValue = "0")] + public long TenantId { get; set; } + + [Navigate(NavigateType.OneToOne, nameof(TenantId))] + public SysTenant Tenant { get; set; } [SugarColumn(IsIgnore = true)] public List RoleNames { get; set; } diff --git a/Blog.Core.Services/BASE/BaseServices.cs b/Blog.Core.Services/BASE/BaseServices.cs index ec685be2..f8105165 100644 --- a/Blog.Core.Services/BASE/BaseServices.cs +++ b/Blog.Core.Services/BASE/BaseServices.cs @@ -17,13 +17,17 @@ public BaseServices(IBaseRepository BaseDal = null) { this.BaseDal = BaseDal; } + //public IBaseRepository baseDal = new BaseRepository(); - public IBaseRepository BaseDal { get; set; }//通过在子类的构造函数中注入,这里是基类,不用构造函数 + public IBaseRepository BaseDal { get; set; } //通过在子类的构造函数中注入,这里是基类,不用构造函数 + + public ISqlSugarClient Db => BaseDal.Db; public async Task QueryById(object objId) { return await BaseDal.QueryById(objId); } + /// /// 功能描述:根据ID查询一条数据 /// 作  者:AZLinli.Blog.Core @@ -76,21 +80,23 @@ public async Task Update(TEntity entity) { return await BaseDal.Update(entity); } + public async Task Update(TEntity entity, string where) { return await BaseDal.Update(entity, where); } + public async Task Update(object operateAnonymousObjects) { return await BaseDal.Update(operateAnonymousObjects); } public async Task Update( - TEntity entity, - List lstColumns = null, - List lstIgnoreColumns = null, - string where = "" - ) + TEntity entity, + List lstColumns = null, + List lstIgnoreColumns = null, + string where = "" + ) { return await BaseDal.Update(entity, lstColumns, lstIgnoreColumns, where); } @@ -127,7 +133,6 @@ public async Task DeleteByIds(object[] ids) } - /// /// 功能描述:查询所有数据 /// 作  者:AZLinli.Blog.Core @@ -181,7 +186,7 @@ public async Task> Query(Expression查询实体条件 /// 排序条件 /// - public async Task> Query(Expression> expression, Expression> whereExpression,string orderByFileds) + public async Task> Query(Expression> expression, Expression> whereExpression, string orderByFileds) { return await BaseDal.Query(expression, whereExpression, orderByFileds); } @@ -224,7 +229,6 @@ public async Task> Query(string where, string orderByFileds) public async Task> QuerySql(string sql, SugarParameter[] parameters = null) { return await BaseDal.QuerySql(sql, parameters); - } /// @@ -236,8 +240,8 @@ public async Task> QuerySql(string sql, SugarParameter[] parameter public async Task QueryTable(string sql, SugarParameter[] parameters = null) { return await BaseDal.QueryTable(sql, parameters); - } + /// /// 功能描述:查询前N条数据 /// 作  者:AZLinli.Blog.Core @@ -283,10 +287,10 @@ public async Task> Query( string orderByFileds) { return await BaseDal.Query( - whereExpression, - pageIndex, - pageSize, - orderByFileds); + whereExpression, + pageIndex, + pageSize, + orderByFileds); } /// @@ -299,34 +303,34 @@ public async Task> Query( /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( - string where, - int pageIndex, - int pageSize, - string orderByFileds) + string where, + int pageIndex, + int pageSize, + string orderByFileds) { return await BaseDal.Query( - where, - pageIndex, - pageSize, - orderByFileds); + where, + pageIndex, + pageSize, + orderByFileds); } public async Task> QueryPage(Expression> whereExpression, - int pageIndex = 1, int pageSize = 20, string orderByFileds = null) + int pageIndex = 1, int pageSize = 20, string orderByFileds = null) { return await BaseDal.QueryPage(whereExpression, - pageIndex, pageSize, orderByFileds); + pageIndex, pageSize, orderByFileds); } public async Task> QueryMuch(Expression> joinExpression, Expression> selectExpression, Expression> whereLambda = null) where T : class, new() { return await BaseDal.QueryMuch(joinExpression, selectExpression, whereLambda); } + public async Task> QueryPage(PaginationModel pagination) { var express = DynamicLinqFactory.CreateLambda(pagination.Conditions); return await QueryPage(express, pagination.PageIndex, pagination.PageSize, pagination.OrderByFileds); } } - -} +} \ No newline at end of file From 657e67d164b64996d2ee2ca790f81c3800304b8f Mon Sep 17 00:00:00 2001 From: HuiJiOnGit <40553940+HuiJiOnGit@users.noreply.github.com> Date: Tue, 7 Feb 2023 08:30:39 +0800 Subject: [PATCH 211/382] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9C=A8docke?= =?UTF-8?q?r=E4=B8=AD=E6=97=A0=E6=B3=95=E8=BF=98=E5=8E=9F=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.sln | 1 + Dockerfile | 1 + 2 files changed, 2 insertions(+) diff --git a/Blog.Core.sln b/Blog.Core.sln index c8f61505..c8989b24 100644 --- a/Blog.Core.sln +++ b/Blog.Core.sln @@ -30,6 +30,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionIt Blog.Core.Publish.Docker.sh = Blog.Core.Publish.Docker.sh Blog.Core.Publish.Linux.sh = Blog.Core.Publish.Linux.sh codecov.yml = codecov.yml + build\common.targets = build\common.targets CreateYourProject.bat = CreateYourProject.bat DockerBuild.bat = DockerBuild.bat Dockerfile = Dockerfile diff --git a/Dockerfile b/Dockerfile index 69a3d132..c80e6896 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,7 @@ COPY ["Blog.Core.Services/Blog.Core.Services.csproj", "Blog.Core.Services/"] COPY ["Blog.Core.IServices/Blog.Core.IServices.csproj", "Blog.Core.IServices/"] COPY ["Blog.Core.Repository/Blog.Core.Repository.csproj", "Blog.Core.Repository/"] COPY ["Blog.Core.Tasks/Blog.Core.Tasks.csproj", "Blog.Core.Tasks/"] +COPY ["build", "build/"] RUN dotnet restore "Blog.Core.Api/Blog.Core.Api.csproj" COPY . . WORKDIR "/src/Blog.Core.Api" From 822e2ebd1fe6e4d848ad91f2556158410f8411bd Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 7 Feb 2023 10:39:00 +0800 Subject: [PATCH 212/382] Update DBSeed.cs --- Blog.Core.Common/Seed/DBSeed.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 9afdc30d..9b2c911f 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -291,7 +291,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:TasksQz already exists..."); } - #endregion + #endregion TasksQz #region Department if (!await myContext.Db.Queryable().AnyAsync()) From 552d94beb8d8fe6d1aa6fc002894d19f2444208c Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 11 Feb 2023 23:39:44 +0800 Subject: [PATCH 213/382] Update DBSeed.cs --- Blog.Core.Common/Seed/DBSeed.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 9b2c911f..da313e3c 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -291,7 +291,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:TasksQz already exists..."); } - #endregion TasksQz + #endregion #region Department if (!await myContext.Db.Queryable().AnyAsync()) @@ -322,4 +322,4 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) } } } -} \ No newline at end of file +} From 0228aed85fdd62946bb7bb0f64c1983f5cf0c538 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 12 Feb 2023 00:06:39 +0800 Subject: [PATCH 214/382] Update RepositorySetting.cs --- Blog.Core.Common/DB/RepositorySetting.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Common/DB/RepositorySetting.cs b/Blog.Core.Common/DB/RepositorySetting.cs index c80ec7f8..4f2e67d2 100644 --- a/Blog.Core.Common/DB/RepositorySetting.cs +++ b/Blog.Core.Common/DB/RepositorySetting.cs @@ -14,7 +14,7 @@ public class RepositorySetting return typeof(BaseEntity).Assembly .GetTypes() .Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(BaseEntity))) - .Where(it => it.FullName != null && it.FullName.StartsWith("Ivytalk.FoodSafety.Model.Models")); + .Where(it => it.FullName != null && it.FullName.StartsWith("Blog.Core.Model.Models")); }); public static IEnumerable Entitys => AllEntitys.Value; From d09de26d6ea095c626bdfa623a23d91d1902aae8 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Sun, 12 Feb 2023 22:00:04 +0800 Subject: [PATCH 215/382] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=B8=BB=E5=88=86?= =?UTF-8?q?=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Model.xml | 137 ++++++ Blog.Core.Api/Blog.Core.xml | 160 +++++++ Blog.Core.Api/Controllers/TrojanController.cs | 451 ++++++++++++++++++ Blog.Core.Api/Controllers/WeChatController.cs | 12 + Blog.Core.Api/Dockerfile | 2 +- Blog.Core.IServices/BASE/IBaseServices.cs | 1 + Blog.Core.IServices/ITrojanUsersServices.cs | 14 + Blog.Core.Model/Models/TrojanCusServers.cs | 26 + Blog.Core.Model/Models/TrojanDetails.cs | 63 +++ Blog.Core.Model/Models/TrojanServers.cs | 31 ++ Blog.Core.Model/Models/TrojanUrlServers.cs | 26 + Blog.Core.Model/Models/TrojanUsers.cs | 39 ++ .../ViewModels/TrojanLimitFlowDto.cs | 23 + Blog.Core.Model/ViewModels/TrojanServerDto.cs | 14 + .../ViewModels/TrojanServerSpliceDto.cs | 28 ++ .../ViewModels/TrojanUseDetailDto.cs | 35 ++ Blog.Core.Repository/BASE/BaseRepository.cs | 13 + Blog.Core.Repository/BASE/IBaseRepository.cs | 6 + Blog.Core.Services/BASE/BaseServices.cs | 9 + Blog.Core.Services/TrojanUsersServices.cs | 18 + Blog.Core.Tasks/Blog.Core.Tasks.csproj | 1 + .../HostedService/Job1TimedService.cs | 60 +++ .../HostedService/Job2TimedService.cs | 47 ++ .../QuartzNet/Jobs/Job_Trojan_Quartz.cs | 79 +++ .../QuartzNet/Jobs/Job_URL_Quartz.cs | 51 ++ 25 files changed, 1345 insertions(+), 1 deletion(-) create mode 100644 Blog.Core.Api/Controllers/TrojanController.cs create mode 100644 Blog.Core.IServices/ITrojanUsersServices.cs create mode 100644 Blog.Core.Model/Models/TrojanCusServers.cs create mode 100644 Blog.Core.Model/Models/TrojanDetails.cs create mode 100644 Blog.Core.Model/Models/TrojanServers.cs create mode 100644 Blog.Core.Model/Models/TrojanUrlServers.cs create mode 100644 Blog.Core.Model/Models/TrojanUsers.cs create mode 100644 Blog.Core.Model/ViewModels/TrojanLimitFlowDto.cs create mode 100644 Blog.Core.Model/ViewModels/TrojanServerDto.cs create mode 100644 Blog.Core.Model/ViewModels/TrojanServerSpliceDto.cs create mode 100644 Blog.Core.Model/ViewModels/TrojanUseDetailDto.cs create mode 100644 Blog.Core.Services/TrojanUsersServices.cs create mode 100644 Blog.Core.Tasks/HostedService/Job1TimedService.cs create mode 100644 Blog.Core.Tasks/HostedService/Job2TimedService.cs create mode 100644 Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs create mode 100644 Blog.Core.Tasks/QuartzNet/Jobs/Job_URL_Quartz.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 36975d11..ea9857bc 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -982,6 +982,76 @@ Tibug 博文 + + + users自定义服务器 + + + + + 用户流量每月汇总表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Trojan服务器 + + + + + users自定义URL服务器 + + + + + Trojan用户 + + + + + 历史流量记录 + + 用户跟角色关联表 @@ -2407,6 +2477,73 @@ + + + 限制流量dto + 作者:胡丁文 + 时间:2020-4-27 16:57:07 + + + + + 用户 + + + + + 流量(-1为无限,单位为最小单位byte) + + + + + Trojan服务器拼接服务器和订阅地址 + + + + + 普通订阅连接 + + + + + clash订阅连接 + + + + + 备用clash订阅连接 + + + + + Trojan用户流量统计分组 + + + + + 用户ID + + + + + 月度 + + + + + 上传流量 + + + + + 下载流量 + + + + + 下载流量 + + 微信接口消息DTO diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 3321d53a..a14a9006 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -650,6 +650,159 @@ + + + 获取Trojan用户 + + + + + + + + + 获取Trojan用户-下拉列表用 + + + + + + 添加Trojan用户 + + + + + + + 更新Trojan用户 + + + + + + + 删除用户 + + + + + + + 重置流量 + + + + + + + 限制流量 + + + + + + + 重置链接密码 + + + + + + + 获取Trojan服务器 + + + + + + 获取拼接后的Trojan服务器 + + passwordshow + + + + + 删除Trojan服务器 + + + + + + + 更新Trojan服务器 + + + + + + + 添加Trojan服务器 + + + + + + + 获取Cus服务器 + + + + + + 删除Cus服务器 + + + + + + + 更新Cus服务器 + + + + + + + 添加Cus服务器 + + + + + + + 获取Url服务器 + + + + + + 删除Url服务器 + + + + + + + 更新Url服务器 + + + + + + + 添加Url服务器 + + + + + + + 获取订阅数据 + + 链接密码 + 是否使用base64加密 + + 用户管理 @@ -1062,6 +1215,13 @@ 卡片消息对象 + + + 推送卡片消息接口 + + 卡片消息对象 + + 推送文本消息 diff --git a/Blog.Core.Api/Controllers/TrojanController.cs b/Blog.Core.Api/Controllers/TrojanController.cs new file mode 100644 index 00000000..8ec64c8a --- /dev/null +++ b/Blog.Core.Api/Controllers/TrojanController.cs @@ -0,0 +1,451 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Blog.Core.Common; +using Blog.Core.Common.Extensions; +using Blog.Core.Common.Helper; +using Blog.Core.Common.HttpContextUser; +using Blog.Core.IServices; +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Controllers +{ + [Route("api/[controller]/[action]")] + [ApiController] + [Authorize(Permissions.Name)] + public class TrojanController : ControllerBase + { + private ITrojanUsersServices _trojanUsersServices; + public IBaseServices _baseServicesServers; + public IBaseServices _baseServicesDetails; + public IBaseServices _baseServicesCusServers; + public IBaseServices _baseServicesUrlServers; + private IUser _user; + public TrojanController(ITrojanUsersServices trojanUsersServices,IUser user + , IBaseServices baseServicesServers + , IBaseServices baseServicesDetails + , IBaseServices baseServicesCusServers + , IBaseServices baseServicesUrlServers) + { + _baseServicesDetails = baseServicesDetails; + _baseServicesServers = baseServicesServers; + _trojanUsersServices = trojanUsersServices; + _baseServicesCusServers = baseServicesCusServers; + _baseServicesUrlServers = baseServicesUrlServers; + _user = user; + } + /// + /// 获取Trojan用户 + /// + /// + /// + /// + /// + [HttpGet] + public async Task>> GetUser([FromQuery]PaginationModel pagination, [FromQuery] string name, [FromQuery] bool isuse) + { + var whereFind = LinqHelper.True(); + if (!string.IsNullOrEmpty(name)) + whereFind = whereFind.And(t=>t.username.Contains(name)); + if (isuse) + whereFind = whereFind.And(t => t.upload > 0 || t.download > 0); + var data = await _trojanUsersServices.QueryPage(whereFind, pagination.PageIndex, pagination.PageSize); + if (data.data.Count > 0) + { + var ids = data.data.Select(t => t.id).ToList(); + var where = LinqHelper.True(); + where = where.And(t => ids.Contains(t.userId));//.And(t => t.calDate < DateTime.Now).And(t => t.calDate > DateTime.Now.AddMonths(-12)); + var userDetails = await _baseServicesDetails.Query(where); + foreach (var trojanUser in data.data) + { + var ls = from t in userDetails + where t.userId == trojanUser.id + group t by new { moth = t.calDate.ToString("yyyy-MM"), id = t.userId } into g + orderby g.Key.moth descending + select new TrojanUseDetailDto { userId = g.Key.id, moth = g.Key.moth, up = g.Sum(t => Convert.ToDecimal(t.upload)), down = g.Sum(t => Convert.ToDecimal(t.download)) }; + var lsData = ls.ToList(); + trojanUser.useList = lsData; + } + } + return MessageModel>.Success("获取成功", data); + } + + /// + /// 获取Trojan用户-下拉列表用 + /// + /// + [HttpGet] + public async Task> GetAllTrojanUser() + { + var data = await _trojanUsersServices.QueryTable("select id,username from users"); + return MessageModel.Success("获取成功", data); + } + /// + /// 添加Trojan用户 + /// + /// + /// + [HttpPost] + public async Task> AddUser([FromBody]TrojanUsers user) + { + var find = await _trojanUsersServices.Query(t => t.username == user.username); + if(find!=null && find.Count>0) return MessageModel.Fail("用户名已存在"); + var pass = StringHelper.GetGUID(); + var passEcrypt = ShaHelper.Sha224(pass); + //user.quota = 0; + user.upload = 0; + user.download = 0; + user.password = passEcrypt; + user.passwordshow = pass; + var data = await _trojanUsersServices.Add(user); + return MessageModel.Success("添加成功", data); + } + /// + /// 更新Trojan用户 + /// + /// + /// + [HttpPut] + public async Task> UpdateUser([FromBody]TrojanUsers user) + { + var find = await _trojanUsersServices.QueryById(user.id); + if (find == null) return MessageModel.Fail("用户名不存在"); + find.username = user.username; + var data = await _trojanUsersServices.Update(find, new List { "username" }); + return MessageModel.Success("更新成功", data); + } + + /// + /// 删除用户 + /// + /// + /// + [HttpPut] + public async Task> DelUser([FromBody]int[] users) + { + var data = await _trojanUsersServices.Query(t => users.Contains(t.id)); + var list = data.Select(t => t.id.ToString()).ToArray(); + await _trojanUsersServices.DeleteByIds(list); + return MessageModel.Success("删除成功"); + } + /// + /// 重置流量 + /// + /// + /// + [HttpPut] + public async Task> ResetFlow([FromBody]int[] users) + { + var data = await _trojanUsersServices.Query(t => users.Contains(t.id)); + foreach (var item in data) + { + item.upload = 0; + item.download = 0; + await _trojanUsersServices.Update(item, new List { "upload", "download" }); + } + return MessageModel.Success("重置流量成功"); + } + /// + /// 限制流量 + /// + /// + /// + [HttpPut] + public async Task> LimitFlow([FromBody] TrojanLimitFlowDto limit) + { + var data = await _trojanUsersServices.Query(t => limit.users.Contains(t.id)); + foreach (var item in data) + { + item.quota = limit.quota; + await _trojanUsersServices.Update(item, new List { "quota" }); + } + return MessageModel.Success("限制流量成功"); + } + /// + /// 重置链接密码 + /// + /// + /// + [HttpPut] + public async Task> ResetPass([FromBody]int[] users) + { + var data = await _trojanUsersServices.Query(t => users.Contains(t.id)); + var pass = StringHelper.GetGUID(); + var passEcrypt = ShaHelper.Sha224(pass); + foreach (var item in data) + { + item.password = passEcrypt; + item.passwordshow = pass; + await _trojanUsersServices.Update(item, new List { "password" , "passwordshow" }); + } + return MessageModel.Success("重置链接密码成功"); + } + /// + /// 获取Trojan服务器 + /// + /// + [HttpGet] + public async Task>> GetServers() + { + var data = await _baseServicesServers.Query(); + data = data.OrderBy(t => t.servername).ToList(); + return MessageModel>.Success("获取成功", data); + } + /// + /// 获取拼接后的Trojan服务器 + /// + /// passwordshow + /// + [HttpGet] + public async Task> GetSpliceServers(string id) + { + var data = await _baseServicesServers.Query(); + data = data.OrderBy(t => t.servername).ToList(); + var res = new TrojanServerSpliceDto(); + res.normalApi = AppSettings.app(new string[] { "trojan", "normalApi" }).ObjToString(); + res.clashApi = AppSettings.app(new string[] { "trojan", "clashApi" }).ObjToString(); + res.clashApiBackup = AppSettings.app(new string[] { "trojan", "clashApiBackup" }).ObjToString(); + foreach (var item in data) + { + var serverSplice = GetSplice(item, id); + res.list.Add(new TrojanServerDto { name = item.servername, value = serverSplice }); + } + return MessageModel.Success("获取成功", res); ; + + } + /// + /// 删除Trojan服务器 + /// + /// + /// + [HttpPut] + public async Task>> DelServers([FromBody]int[] servers) + { + var data = await _baseServicesServers.DeleteByIds(servers.Select(t=>t.ToString()).ToArray()); + if (data) + return MessageModel>.Success("删除成功"); + else + return MessageModel>.Fail("删除失败"); + } + /// + /// 更新Trojan服务器 + /// + /// + /// + [HttpPut] + public async Task>> UpdateServers(TrojanServers server) + { + var data = await _baseServicesServers.Update(server); + return MessageModel>.Success("更新成功"); + } + /// + /// 添加Trojan服务器 + /// + /// + /// + [HttpPost] + public async Task>> AddServers(TrojanServers server) + { + var data = await _baseServicesServers.Add(server); + return MessageModel>.Success("添加成功"); + } + + /// + /// 获取Cus服务器 + /// + /// + [HttpGet] + public async Task>> GetCusServers() + { + var data = await _baseServicesCusServers.Query(); + data = data.OrderBy(t => t.servername).ToList(); + return MessageModel>.Success("获取成功", data); + } + /// + /// 删除Cus服务器 + /// + /// + /// + [HttpPut] + public async Task>> DelCusServers([FromBody] int[] servers) + { + var data = await _baseServicesCusServers.DeleteByIds(servers.Select(t => t.ToString()).ToArray()); + if (data) + return MessageModel>.Success("删除成功"); + else + return MessageModel>.Fail("删除失败"); + } + /// + /// 更新Cus服务器 + /// + /// + /// + [HttpPut] + public async Task>> UpdateCusServers(TrojanCusServers server) + { + var data = await _baseServicesCusServers.Update(server); + return MessageModel>.Success("更新成功"); + } + /// + /// 添加Cus服务器 + /// + /// + /// + [HttpPost] + public async Task>> AddCusServers(TrojanCusServers server) + { + var data = await _baseServicesCusServers.Add(server); + return MessageModel>.Success("添加成功"); + } + + + /// + /// 获取Url服务器 + /// + /// + [HttpGet] + public async Task>> GetUrlServers() + { + var data = await _baseServicesUrlServers.Query(); + data = data.OrderBy(t => t.servername).ToList(); + return MessageModel>.Success("获取成功", data); + } + /// + /// 删除Url服务器 + /// + /// + /// + [HttpPut] + public async Task>> DelUrlServers([FromBody] int[] servers) + { + var data = await _baseServicesUrlServers.DeleteByIds(servers.Select(t => t.ToString()).ToArray()); + if (data) + return MessageModel>.Success("删除成功"); + else + return MessageModel>.Fail("删除失败"); + } + /// + /// 更新Url服务器 + /// + /// + /// + [HttpPut] + public async Task>> UpdateUrlServers(TrojanUrlServers server) + { + var data = await _baseServicesUrlServers.Update(server); + return MessageModel>.Success("更新成功"); + } + /// + /// 添加Url服务器 + /// + /// + /// + [HttpPost] + public async Task>> AddUrlServers(TrojanUrlServers server) + { + var data = await _baseServicesUrlServers.Add(server); + return MessageModel>.Success("添加成功"); + } + private string GetSplice(TrojanServers item,string passwordshow) + { + if ("0".Equals(item.servertype)) + return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?allowinsecure=0&tfo=0&peer={(string.IsNullOrEmpty(item.serverpeer) ? item.serverpeer : item.serveraddress)}#{item.servername}"; + else if ("1".Equals(item.servertype)) + return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?wspath={item.serverpath}&ws=1&peer={(string.IsNullOrEmpty(item.serverpeer) ? item.serverpeer : item.serveraddress)}#{item.servername}"; + else + return $"servertype:({item.servertype})错误"; + } + private List GetSplice(List items, string passwordshow) + { + List ls = new List(); + foreach (var item in items) + { + ls.Add(GetSplice(item, passwordshow)); + } + return ls; + } + /// + /// 获取订阅数据 + /// + /// 链接密码 + /// 是否使用base64加密 + /// + [HttpGet] + [AllowAnonymous] + public async Task RSS(string id,bool isUseBase64=true) + { + StringBuilder sb = new StringBuilder(); + try + { + var user = (await _trojanUsersServices.Query(t => t.passwordshow == id)).FirstOrDefault(); + if (user == null) throw new Exception("用户不存在"); + var data = await _baseServicesServers.Query(t => (t.userid == user.id || t.userid <= 0) && t.serverenable); + if (data != null) + { + data = data.OrderBy(t => t.servername).ToList(); + foreach (var item in data) + { + sb.AppendLine(GetSplice(item, user.passwordshow)); + } + } + var cusData = await _baseServicesCusServers.Query(t=> (t.userid == user.id || t.userid <=0) && t.serverenable); + if (cusData != null) + { + cusData = cusData.OrderBy(t => t.servername).ToList(); + foreach (var item in cusData) + { + sb.AppendLine(item.serveraddress); + } + } + var urlData = await _baseServicesUrlServers.Query(t => (t.userid == user.id || t.userid <= 0) && t.serverenable); + if (urlData != null) + { + urlData = urlData.OrderBy(t => t.servername).ToList(); + foreach (var item in urlData) + { + try + { + var urlStrObj = await HttpHelper.GetAsync(item.serveraddress); + var lines = ""; + try + { + lines = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(urlStrObj)); + } + catch (Exception) + { + lines = urlStrObj; + } + finally + { + sb.AppendLine(lines); + } + } + catch (Exception ex) + { + sb.AppendLine($"trojan://xxxxxx@xxxxxx.xx:443?allowinsecure=0&tfo=0#{ex.Message}"); + } + } + } + } + catch (Exception ex) + { + sb.AppendLine($"trojan://xxxxxx@xxxxxx.xx:443?allowinsecure=0&tfo=0#{ex.Message}"); + } + if (isUseBase64) + { + return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sb.ToString())); + } + else{ + return sb.ToString(); + } + } + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/WeChatController.cs b/Blog.Core.Api/Controllers/WeChatController.cs index 4c4877f6..c215f563 100644 --- a/Blog.Core.Api/Controllers/WeChatController.cs +++ b/Blog.Core.Api/Controllers/WeChatController.cs @@ -146,6 +146,18 @@ public async Task> PushCardMsg(WeChatCardMs return await _weChatConfigServices.PushCardMsg(msg, pushUserIP); } /// + /// 推送卡片消息接口 + /// + /// 卡片消息对象 + /// + [HttpGet] + [AllowAnonymous] + public async Task> PushCardMsgGet([FromQuery] WeChatCardMsgDataDto msg) + { + string pushUserIP = $"{Request.HttpContext.Connection.RemoteIpAddress}:{Request.HttpContext.Connection.RemotePort}"; + return await _weChatConfigServices.PushCardMsg(msg, pushUserIP); + } + /// /// 推送文本消息 /// /// 消息对象 diff --git a/Blog.Core.Api/Dockerfile b/Blog.Core.Api/Dockerfile index 43618077..1eb0572a 100644 --- a/Blog.Core.Api/Dockerfile +++ b/Blog.Core.Api/Dockerfile @@ -3,7 +3,7 @@ #FROM swr.cn-south-1.myhuaweicloud.com/mcr/aspnet:5.0-alpine #FROM mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim -FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim +FROM mcr.microsoft.com/dotnet/aspnet:6.0-bullseye-slim RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc/timezone diff --git a/Blog.Core.IServices/BASE/IBaseServices.cs b/Blog.Core.IServices/BASE/IBaseServices.cs index 27daae98..de4a7a06 100644 --- a/Blog.Core.IServices/BASE/IBaseServices.cs +++ b/Blog.Core.IServices/BASE/IBaseServices.cs @@ -26,6 +26,7 @@ public interface IBaseServices where TEntity : class Task DeleteByIds(object[] ids); Task Update(TEntity model); + Task Update(List model); Task Update(TEntity entity, string where); Task Update(object operateAnonymousObjects); diff --git a/Blog.Core.IServices/ITrojanUsersServices.cs b/Blog.Core.IServices/ITrojanUsersServices.cs new file mode 100644 index 00000000..92bac1d8 --- /dev/null +++ b/Blog.Core.IServices/ITrojanUsersServices.cs @@ -0,0 +1,14 @@ +using Blog.Core.IServices.BASE; +using Blog.Core.Model.Models; + +namespace Blog.Core.IServices +{ + /// + /// TrojanUsersServices + /// + public interface ITrojanUsersServices : IBaseServices + { + + } +} + diff --git a/Blog.Core.Model/Models/TrojanCusServers.cs b/Blog.Core.Model/Models/TrojanCusServers.cs new file mode 100644 index 00000000..03f02539 --- /dev/null +++ b/Blog.Core.Model/Models/TrojanCusServers.cs @@ -0,0 +1,26 @@ + +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + ///users自定义服务器 + /// + [SugarTable("users_cus", "users自定义服务器")] + [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') + public partial class TrojanCusServers + { + + [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] + public int id { set; get; } + public int userid { get; set; } + public string servername { set; get; } + public string serveraddress { set; get; } + [SugarColumn(IsNullable = true)] + public string serverremark { get; set; } + public bool serverenable { get; set; } + } +} diff --git a/Blog.Core.Model/Models/TrojanDetails.cs b/Blog.Core.Model/Models/TrojanDetails.cs new file mode 100644 index 00000000..dda53d9b --- /dev/null +++ b/Blog.Core.Model/Models/TrojanDetails.cs @@ -0,0 +1,63 @@ + +//模板自动生成(请勿修改) +//作者:胡丁文 +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + ///用户流量每月汇总表 + /// + [SugarTable("users_detail", "用户流量每月汇总表")] + [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') + public partial class TrojanDetails + { + + /// + /// + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int id { get; set; } + + /// + /// + /// + public int userId { get; set; } + + /// + /// + /// + public DateTime calDate { get; set; } + + /// + /// + /// + public ulong download { get; set; } + + /// + /// + /// + public ulong upload { get; set; } + + /// + /// + /// + [SugarColumn(IsNullable = true)] + public int? CreateId { get; set; } + + /// + /// + /// + [SugarColumn(IsNullable = true)] + public string CreateBy { get; set; } + + /// + /// + /// + [SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + } +} diff --git a/Blog.Core.Model/Models/TrojanServers.cs b/Blog.Core.Model/Models/TrojanServers.cs new file mode 100644 index 00000000..d9d8275f --- /dev/null +++ b/Blog.Core.Model/Models/TrojanServers.cs @@ -0,0 +1,31 @@ + +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + ///Trojan服务器 + /// + [SugarTable("servers", "Trojan服务器")] + [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') + public partial class TrojanServers + { + + [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] + public int id { set; get; } + public int userid { get; set; } + public string servername { set; get; } + public string serveraddress { set; get; } + public int serverport { get; set; } + [SugarColumn(IsNullable = true)] + public string serverremark { get; set; } + public bool serverenable { get; set; } + public string serverpeer { get; set; } + [SugarColumn(IsNullable = true)] + public string serverpath { get; set; } + public string servertype { get; set; } + } +} diff --git a/Blog.Core.Model/Models/TrojanUrlServers.cs b/Blog.Core.Model/Models/TrojanUrlServers.cs new file mode 100644 index 00000000..db48343a --- /dev/null +++ b/Blog.Core.Model/Models/TrojanUrlServers.cs @@ -0,0 +1,26 @@ + +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + ///users自定义URL服务器 + /// + [SugarTable("users_url", "users自定义URL服务器")] + [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') + public partial class TrojanUrlServers + { + + [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] + public int id { set; get; } + public int userid { get; set; } + public string servername { set; get; } + public string serveraddress { set; get; } + [SugarColumn(IsNullable = true)] + public string serverremark { get; set; } + public bool serverenable { get; set; } + } +} diff --git a/Blog.Core.Model/Models/TrojanUsers.cs b/Blog.Core.Model/Models/TrojanUsers.cs new file mode 100644 index 00000000..796c044e --- /dev/null +++ b/Blog.Core.Model/Models/TrojanUsers.cs @@ -0,0 +1,39 @@ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Blog.Core.Model.ViewModels; +using SqlSugar; + +namespace Blog.Core.Model.Models +{ + /// + ///Trojan用户 + /// + [SugarTable("users", "Trojan用户表")] + [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') + public partial class TrojanUsers + { + + [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] + public int id { set; get; } + public string username { set; get; } + public string password { set; get; } + public Int64 quota { set; get; } + public UInt64 download { set; get; } + public UInt64 upload { set; get; } + public string passwordshow { set; get; } + [SugarColumn(IsNullable = true)] + public int CreateId { get; set; } + [SugarColumn(IsNullable = true)] + public string CreateBy { get; set; } + [SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + /// + /// 历史流量记录 + /// + [SugarColumn(IsIgnore = true)] + public List useList { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/TrojanLimitFlowDto.cs b/Blog.Core.Model/ViewModels/TrojanLimitFlowDto.cs new file mode 100644 index 00000000..c0efd347 --- /dev/null +++ b/Blog.Core.Model/ViewModels/TrojanLimitFlowDto.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// 限制流量dto + /// 作者:胡丁文 + /// 时间:2020-4-27 16:57:07 + /// + public class TrojanLimitFlowDto + { + /// + /// 用户 + /// + public int[] users { get; set; } + /// + /// 流量(-1为无限,单位为最小单位byte) + /// + public Int64 quota { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/TrojanServerDto.cs b/Blog.Core.Model/ViewModels/TrojanServerDto.cs new file mode 100644 index 00000000..89cb87e3 --- /dev/null +++ b/Blog.Core.Model/ViewModels/TrojanServerDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Model.ViewModels +{ + public class TrojanServerDto + { + public string name { get; set; } + public string value { get; set; } + } +} diff --git a/Blog.Core.Model/ViewModels/TrojanServerSpliceDto.cs b/Blog.Core.Model/ViewModels/TrojanServerSpliceDto.cs new file mode 100644 index 00000000..e83adfd5 --- /dev/null +++ b/Blog.Core.Model/ViewModels/TrojanServerSpliceDto.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// Trojan服务器拼接服务器和订阅地址 + /// + public class TrojanServerSpliceDto + { + /// + /// 普通订阅连接 + /// + public string normalApi { get; set; } + /// + /// clash订阅连接 + /// + public string clashApi { get; set; } + /// + /// 备用clash订阅连接 + /// + public string clashApiBackup { get; set; } + public List list { get; set; } = new List(); + } +} diff --git a/Blog.Core.Model/ViewModels/TrojanUseDetailDto.cs b/Blog.Core.Model/ViewModels/TrojanUseDetailDto.cs new file mode 100644 index 00000000..7746b105 --- /dev/null +++ b/Blog.Core.Model/ViewModels/TrojanUseDetailDto.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Model.ViewModels +{ + /// + /// Trojan用户流量统计分组 + /// + public class TrojanUseDetailDto + { + /// + /// 用户ID + /// + public int userId { get; set; } + /// + /// 月度 + /// + public string moth { get; set; } + /// + /// 上传流量 + /// + public decimal up { get; set; } + /// + /// 下载流量 + /// + public decimal down { get; set; } + /// + /// 下载流量 + /// + public decimal total { get { return up + down; } } + } +} diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 82900689..ead9f9af 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -144,6 +144,19 @@ public async Task Update(TEntity entity) //这种方式会以主键为条件 return await _db.Updateable(entity).ExecuteCommandHasChangeAsync(); } + /// + /// 更新实体数据 + /// + /// 博文实体类 + /// + public async Task Update(List entity) + { + ////这种方式会以主键为条件 + //var i = await Task.Run(() => _db.Updateable(entity).ExecuteCommand()); + //return i > 0; + //这种方式会以主键为条件 + return await _db.Updateable(entity).ExecuteCommandHasChangeAsync(); + } public async Task Update(TEntity entity, string where) { diff --git a/Blog.Core.Repository/BASE/IBaseRepository.cs b/Blog.Core.Repository/BASE/IBaseRepository.cs index 29783505..9b72a00d 100644 --- a/Blog.Core.Repository/BASE/IBaseRepository.cs +++ b/Blog.Core.Repository/BASE/IBaseRepository.cs @@ -69,6 +69,12 @@ public interface IBaseRepository where TEntity : class /// /// Task Update(TEntity model); + /// + /// 更新model + /// + /// + /// + Task Update(List model); /// /// 根据model,更新,带where条件 diff --git a/Blog.Core.Services/BASE/BaseServices.cs b/Blog.Core.Services/BASE/BaseServices.cs index ec685be2..232c6fae 100644 --- a/Blog.Core.Services/BASE/BaseServices.cs +++ b/Blog.Core.Services/BASE/BaseServices.cs @@ -76,6 +76,15 @@ public async Task Update(TEntity entity) { return await BaseDal.Update(entity); } + /// + /// 更新实体数据 + /// + /// 博文实体类 + /// + public async Task Update(List entity) + { + return await BaseDal.Update(entity); + } public async Task Update(TEntity entity, string where) { return await BaseDal.Update(entity, where); diff --git a/Blog.Core.Services/TrojanUsersServices.cs b/Blog.Core.Services/TrojanUsersServices.cs new file mode 100644 index 00000000..f42f51d9 --- /dev/null +++ b/Blog.Core.Services/TrojanUsersServices.cs @@ -0,0 +1,18 @@ +using Blog.Core.Common; +using Blog.Core.IRepository.Base; +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Blog.Core.Services.BASE; +using System.Linq; +using System.Threading.Tasks; + +namespace Blog.Core.Services +{ + /// + /// TrojanUsersServices + /// + public class TrojanUsersServices : BaseServices, ITrojanUsersServices + { + + } +} diff --git a/Blog.Core.Tasks/Blog.Core.Tasks.csproj b/Blog.Core.Tasks/Blog.Core.Tasks.csproj index 5e173559..bb748f64 100644 --- a/Blog.Core.Tasks/Blog.Core.Tasks.csproj +++ b/Blog.Core.Tasks/Blog.Core.Tasks.csproj @@ -11,6 +11,7 @@ + diff --git a/Blog.Core.Tasks/HostedService/Job1TimedService.cs b/Blog.Core.Tasks/HostedService/Job1TimedService.cs new file mode 100644 index 00000000..9777affc --- /dev/null +++ b/Blog.Core.Tasks/HostedService/Job1TimedService.cs @@ -0,0 +1,60 @@ +using Blog.Core.Common; +using Blog.Core.IServices; +using Microsoft.Extensions.Hosting; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace Blog.Core.Tasks +{ + public class Job1TimedService : IHostedService, IDisposable + { + private Timer _timer; + private readonly IBlogArticleServices _blogArticleServices; + + // 这里可以注入 + public Job1TimedService(IBlogArticleServices blogArticleServices) + { + _blogArticleServices = blogArticleServices; + } + + public Task StartAsync(CancellationToken cancellationToken) + { + Console.WriteLine("Job 1 is starting."); + + _timer = new Timer(DoWork, null, TimeSpan.Zero, + TimeSpan.FromSeconds(60 * 60));//一个小时 + + return Task.CompletedTask; + } + + private void DoWork(object state) + { + try + { + var model = _blogArticleServices.GetBlogDetails(1).Result; + Console.WriteLine($"Job 1 启动成功,获取id=1的博客title为:{model?.btitle}"); + } + catch (Exception ex) + { + Console.WriteLine($"Error:{ex.Message}"); + } + + ConsoleHelper.WriteSuccessLine($"Job 1: {DateTime.Now}"); + } + + public Task StopAsync(CancellationToken cancellationToken) + { + Console.WriteLine("Job 1 is stopping."); + + _timer?.Change(Timeout.Infinite, 0); + + return Task.CompletedTask; + } + + public void Dispose() + { + _timer?.Dispose(); + } + } +} diff --git a/Blog.Core.Tasks/HostedService/Job2TimedService.cs b/Blog.Core.Tasks/HostedService/Job2TimedService.cs new file mode 100644 index 00000000..ee7f2c5c --- /dev/null +++ b/Blog.Core.Tasks/HostedService/Job2TimedService.cs @@ -0,0 +1,47 @@ +using Blog.Core.Common; +using Microsoft.Extensions.Hosting; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace Blog.Core.Tasks +{ + public class Job2TimedService : IHostedService, IDisposable + { + private Timer _timer; + + // 这里可以注入 + public Job2TimedService() + { + } + + public Task StartAsync(CancellationToken cancellationToken) + { + Console.WriteLine("Job 2 is starting."); + + _timer = new Timer(DoWork, null, TimeSpan.Zero, + TimeSpan.FromSeconds(60 * 60 * 2));//两个小时 + + return Task.CompletedTask; + } + + private void DoWork(object state) + { + ConsoleHelper.WriteWarningLine($"Job 2: {DateTime.Now}"); + } + + public Task StopAsync(CancellationToken cancellationToken) + { + Console.WriteLine("Job 2 is stopping."); + + _timer?.Change(Timeout.Infinite, 0); + + return Task.CompletedTask; + } + + public void Dispose() + { + _timer?.Dispose(); + } + } +} diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs new file mode 100644 index 00000000..f9640749 --- /dev/null +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs @@ -0,0 +1,79 @@ +using Blog.Core.Repository.UnitOfWorks; +using Blog.Core.IServices; +using Blog.Core.IServices.BASE; +using Blog.Core.Model.Models; +using Microsoft.Extensions.Logging; +using Quartz; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +/// +/// 这里要注意下,命名空间和程序集是一样的,不然反射不到(任务类要去JobSetup添加注入) +/// +namespace Blog.Core.Tasks +{ + public class Job_Trojan_Quartz : JobBase, IJob + { + private readonly IUnitOfWorkManage _unitOfWorkManage; + public IBaseServices_DetailServices; + private readonly ITrojanUsersServices _TrojanUsers; + private readonly ILogger _logger; + + public Job_Trojan_Quartz(IUnitOfWorkManage unitOfWorkManage, IBaseServices iusers_DetailServices, ITrojanUsersServices trojanUsers, ITasksQzServices tasksQzServices, ILogger logger) + { + _tasksQzServices = tasksQzServices; + _unitOfWorkManage = unitOfWorkManage; + _DetailServices = iusers_DetailServices; + _TrojanUsers = trojanUsers; + _logger = logger; + } + public async Task Execute(IJobExecutionContext context) + { + //var param = context.MergedJobDataMap; + // 可以直接获取 JobDetail 的值 + var jobKey = context.JobDetail.Key; + var jobId = jobKey.Name; + var executeLog = await ExecuteJob(context, async () => await Run(context, jobId.ObjToInt())); + + } + public async Task Run(IJobExecutionContext context, int jobid) + { + if (jobid > 0) + { + try + { + //获取每月用户的数据 + _unitOfWorkManage.BeginTran(); + var now = DateTime.Now.AddMonths(-1); + + var list = await _TrojanUsers.Query(); + List ls = new List(); + foreach (var us in list) + { + TrojanDetails u = new TrojanDetails(); + u.calDate = now; + u.userId = us.id; + u.download = us.download; + u.upload = us.upload; + //清零 + us.download = 0; + us.upload = 0; + ls.Add(u); + } + await _TrojanUsers.Update(list); + await _DetailServices.Add(ls); + _unitOfWorkManage.CommitTran(); + } + catch (Exception) + { + _unitOfWorkManage.RollbackTran(); + throw; + } + } + } + } + + + +} diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_URL_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_URL_Quartz.cs new file mode 100644 index 00000000..666a8d41 --- /dev/null +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_URL_Quartz.cs @@ -0,0 +1,51 @@ +using Blog.Core.Common.Helper; +using Blog.Core.Repository.UnitOfWorks; +using Blog.Core.IServices; +using Blog.Core.IServices.BASE; +using Blog.Core.Model.Models; +using Microsoft.Extensions.Logging; +using Quartz; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +/// +/// 这里要注意下,命名空间和程序集是一样的,不然反射不到(任务类要去JobSetup添加注入) +/// +namespace Blog.Core.Tasks +{ + public class Job_URL_Quartz : JobBase, IJob + { + private readonly ILogger _logger; + + public Job_URL_Quartz(ITasksQzServices tasksQzServices, ILogger logger) + { + _tasksQzServices = tasksQzServices; + _logger = logger; + } + public async Task Execute(IJobExecutionContext context) + { + // 可以直接获取 JobDetail 的值 + var jobKey = context.JobDetail.Key; + var jobId = jobKey.Name; + var executeLog = await ExecuteJob(context, async () => await Run(context, jobId.ObjToInt())); + + } + public async Task Run(IJobExecutionContext context, int jobid) + { + if (jobid > 0) + { + JobDataMap data = context.JobDetail.JobDataMap; + string pars = data.GetString("JobParam"); + if (!string.IsNullOrWhiteSpace(pars)) + { + var log = await HttpHelper.GetAsync(pars); + _logger.LogInformation(log); + } + } + } + } + + + +} From b36db59e1abdd2ebece8caf034ae6238a58885d7 Mon Sep 17 00:00:00 2001 From: HuiJiOnGit <40553940+HuiJiOnGit@users.noreply.github.com> Date: Mon, 13 Feb 2023 13:47:18 +0800 Subject: [PATCH 216/382] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E4=B8=AD=E9=97=B4=E4=BB=B6=E5=90=AF=E5=8A=A8=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=88=B0`HostedService`=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Program.cs | 30 ++------ Blog.Core.Api/Startup.cs | 39 ++++------ .../HostedService/ConsulHostedService.cs | 71 +++++++++++++++++++ .../HostedService/EventBusHostedService.cs | 45 ++++++++++++ .../HostedService/QuartzJobHostedService.cs | 67 +++++++++++++++++ .../HostedService/SeedDataHostedService.cs | 55 ++++++++++++++ .../Middlewares/ConsulMiddleware.cs | 52 -------------- .../Middlewares/QuartzJobMiddleware.cs | 51 ------------- .../Middlewares/SeedDataMiddleware.cs | 33 --------- .../ServiceExtensions/EventBusSetup.cs | 21 ++---- .../InitializationHostServiceSetup.cs | 24 +++++++ 11 files changed, 287 insertions(+), 201 deletions(-) create mode 100644 Blog.Core.Extensions/HostedService/ConsulHostedService.cs create mode 100644 Blog.Core.Extensions/HostedService/EventBusHostedService.cs create mode 100644 Blog.Core.Extensions/HostedService/QuartzJobHostedService.cs create mode 100644 Blog.Core.Extensions/HostedService/SeedDataHostedService.cs delete mode 100644 Blog.Core.Extensions/Middlewares/ConsulMiddleware.cs delete mode 100644 Blog.Core.Extensions/Middlewares/QuartzJobMiddleware.cs delete mode 100644 Blog.Core.Extensions/Middlewares/SeedDataMiddleware.cs create mode 100644 Blog.Core.Extensions/ServiceExtensions/InitializationHostServiceSetup.cs diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 8ab4b93d..d7619781 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -1,19 +1,17 @@ - -// 以下为asp.net 6.0的写法,如果用5.0,请看Program.five.cs文件 +// 以下为asp.net 6.0的写法,如果用5.0,请看Program.five.cs文件 +using System.IdentityModel.Tokens.Jwt; +using System.Reflection; +using System.Text; using Autofac; using Autofac.Extensions.DependencyInjection; using Blog.Core; using Blog.Core.Common; using Blog.Core.Common.LogHelper; -using Blog.Core.Common.Seed; using Blog.Core.Extensions; using Blog.Core.Extensions.Apollo; using Blog.Core.Extensions.Middlewares; using Blog.Core.Filter; using Blog.Core.Hubs; -using Blog.Core.IServices; -using Blog.Core.Tasks; -using FluentValidation.AspNetCore; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; @@ -21,9 +19,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; -using System.IdentityModel.Tokens.Jwt; -using System.Reflection; -using System.Text; var builder = WebApplication.CreateBuilder(args); @@ -49,7 +44,6 @@ config.AddConfigurationApollo("appsettings.apollo.json"); }); - // 2、配置服务 builder.Services.AddSingleton(new AppSettings(builder.Configuration)); builder.Services.AddSingleton(new LogLock(builder.Environment.ContentRootPath)); @@ -79,7 +73,7 @@ builder.Services.AddKafkaSetup(builder.Configuration); builder.Services.AddEventBusSetup(); builder.Services.AddNacosSetup(builder.Configuration); - +builder.Services.AddInitializationHostServiceSetup(); builder.Services.AddAuthorizationSetup(); if (Permissions.IsUseIds4 || Permissions.IsUseAuthing) { @@ -129,7 +123,6 @@ builder.Services.Replace(ServiceDescriptor.Transient()); Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); - // 3、配置中间件 var app = builder.Build(); @@ -182,16 +175,5 @@ endpoints.MapHub("/api2/chatHub"); }); - -var scope = app.Services.GetRequiredService().CreateScope(); -var myContext = scope.ServiceProvider.GetRequiredService(); -var tasksQzServices = scope.ServiceProvider.GetRequiredService(); -var schedulerCenter = scope.ServiceProvider.GetRequiredService(); -var lifetime = scope.ServiceProvider.GetRequiredService(); -app.UseSeedDataMiddle(myContext, builder.Environment.WebRootPath); -app.UseQuartzJobMiddleware(tasksQzServices, schedulerCenter); -app.UseConsulMiddle(builder.Configuration, lifetime); -app.ConfigureEventBus(); - // 4、运行 -app.Run(); +app.Run(); \ No newline at end of file diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index b341819e..bc1630f1 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -1,34 +1,28 @@ -using Autofac; +using System.IdentityModel.Tokens.Jwt; +using System.Reflection; +using System.Text; +using Autofac; using Blog.Core.Common; using Blog.Core.Common.LogHelper; using Blog.Core.Common.Seed; using Blog.Core.Extensions; +using Blog.Core.Extensions.Middlewares; using Blog.Core.Filter; using Blog.Core.Hubs; using Blog.Core.IServices; using Blog.Core.Tasks; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Hosting; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; -using System.IdentityModel.Tokens.Jwt; -using System.Reflection; -using System.Text; -using Blog.Core.Extensions.Middlewares; namespace Blog.Core { public class Startup { - private IServiceCollection _services; public Startup(IConfiguration configuration, IWebHostEnvironment env) @@ -75,7 +69,7 @@ public void ConfigureServices(IServiceCollection services) services.AddEventBusSetup(); services.AddNacosSetup(Configuration); - + services.AddInitializationHostServiceSetup(); // 授权+认证 (jwt or ids4) services.AddAuthorizationSetup(); if (Permissions.IsUseIds4) @@ -95,7 +89,7 @@ public void ConfigureServices(IServiceCollection services) services.Configure(x => x.AllowSynchronousIO = true) .Configure(x => x.AllowSynchronousIO = true); - + services.AddDistributedMemoryCache(); services.AddSession(); services.AddHttpPollySetup(); @@ -134,7 +128,7 @@ public void ConfigureServices(IServiceCollection services) services.Replace(ServiceDescriptor.Transient()); _services = services; - //支持编码大全 例如:支持 System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030") + //支持编码大全 例如:支持 System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030") Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); } @@ -150,11 +144,11 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex { // Ip限流,尽量放管道外层 app.UseIpLimitMiddle(); - // 记录请求与返回数据 + // 记录请求与返回数据 app.UseRequestResponseLogMiddle(); // 用户访问记录(必须放到外层,不然如果遇到异常,会报错,因为不能返回流) app.UseRecordAccessLogsMiddle(); - // signalr + // signalr app.UseSignalRSendMiddle(); // 记录ip请求 app.UseIpLogMiddle(); @@ -214,7 +208,6 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex // 开启异常中间件,要放到最后 //app.UseExceptionHandlerMidd(); - app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( @@ -225,15 +218,13 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex }); // 生成种子数据 - app.UseSeedDataMiddle(myContext, Env.WebRootPath); + //app.UseSeedDataMiddle(myContext, Env.WebRootPath); // 开启QuartzNetJob调度服务 - app.UseQuartzJobMiddleware(tasksQzServices, schedulerCenter); + //app.UseQuartzJobMiddleware(tasksQzServices, schedulerCenter); // 服务注册 - app.UseConsulMiddle(Configuration, lifetime); + //app.UseConsulMiddle(Configuration, lifetime); // 事件总线,订阅服务 - app.ConfigureEventBus(); - + //app.ConfigureEventBus(); } - } -} +} \ No newline at end of file diff --git a/Blog.Core.Extensions/HostedService/ConsulHostedService.cs b/Blog.Core.Extensions/HostedService/ConsulHostedService.cs new file mode 100644 index 00000000..df866e6a --- /dev/null +++ b/Blog.Core.Extensions/HostedService/ConsulHostedService.cs @@ -0,0 +1,71 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Consul; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Blog.Core.Extensions.HostedService; + +public class ConsulHostedService : IHostedService +{ + private readonly IConfiguration _configuration; + private readonly IHostApplicationLifetime _hostApplicationLifetime; + private readonly ILogger _logger; + + public ConsulHostedService(IConfiguration configuration, IHostApplicationLifetime hostApplicationLifetime, ILogger logger) + { + _configuration = configuration; + _hostApplicationLifetime = hostApplicationLifetime; + _logger = logger; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Start Consul Service!"); + await DoWork(); + } + + public async Task DoWork() + { + if (_configuration["Middleware:Consul:Enabled"].ObjToBool()) + { + var consulClient = new ConsulClient(c => + { + //consul地址 + c.Address = new Uri(_configuration["ConsulSetting:ConsulAddress"]); + }); + + var registration = new AgentServiceRegistration() + { + ID = Guid.NewGuid().ToString(),//服务实例唯一标识 + Name = _configuration["ConsulSetting:ServiceName"],//服务名 + Address = _configuration["ConsulSetting:ServiceIP"], //服务IP + Port = int.Parse(_configuration["ConsulSetting:ServicePort"]),//服务端口 + Check = new AgentServiceCheck() + { + DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//服务启动多久后注册 + Interval = TimeSpan.FromSeconds(10),//健康检查时间间隔 + HTTP = $"http://{_configuration["ConsulSetting:ServiceIP"]}:{_configuration["ConsulSetting:ServicePort"]}{_configuration["ConsulSetting:ServiceHealthCheck"]}",//健康检查地址 + Timeout = TimeSpan.FromSeconds(5)//超时时间 + } + }; + + //服务注册 + await consulClient.Agent.ServiceRegister(registration); + + //应用程序终止时,取消注册 + _hostApplicationLifetime.ApplicationStopping.Register(async () => + { + await consulClient.Agent.ServiceDeregister(registration.ID); + }); + } + } + + public Task StopAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Stop Consul Service!"); + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/HostedService/EventBusHostedService.cs b/Blog.Core.Extensions/HostedService/EventBusHostedService.cs new file mode 100644 index 00000000..7f18ed19 --- /dev/null +++ b/Blog.Core.Extensions/HostedService/EventBusHostedService.cs @@ -0,0 +1,45 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Blog.Core.Common; +using Blog.Core.EventBus; +using Blog.Core.EventBus.EventHandling; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Blog.Core.Extensions.HostedService; + +public class EventBusHostedService : IHostedService +{ + private readonly IServiceProvider _serviceProvider; + private readonly ILogger _logger; + + public EventBusHostedService(IServiceProvider serviceProvider, ILogger logger) + { + _serviceProvider = serviceProvider; + _logger = logger; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Start EventBus Service!"); + await DoWork(); + } + + private Task DoWork() + { + if (AppSettings.app(new string[] { "EventBus", "Enabled" }).ObjToBool()) + { + var eventBus = _serviceProvider.GetRequiredService(); + eventBus.Subscribe(); + } + return Task.CompletedTask; + } + + public Task StopAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Stop EventBus Service!"); + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/HostedService/QuartzJobHostedService.cs b/Blog.Core.Extensions/HostedService/QuartzJobHostedService.cs new file mode 100644 index 00000000..d8f4d602 --- /dev/null +++ b/Blog.Core.Extensions/HostedService/QuartzJobHostedService.cs @@ -0,0 +1,67 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Blog.Core.Common; +using Blog.Core.IServices; +using Blog.Core.Tasks; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Blog.Core.Extensions.HostedService; + +public class QuartzJobHostedService : IHostedService +{ + private readonly ITasksQzServices _tasksQzServices; + private readonly ISchedulerCenter _schedulerCenter; + private readonly ILogger _logger; + + public QuartzJobHostedService(ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, ILogger logger) + { + _tasksQzServices = tasksQzServices; + _schedulerCenter = schedulerCenter; + _logger = logger; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Start QuartzJob Service!"); + await DoWork(); + } + + private async Task DoWork() + { + try + { + if (AppSettings.app("Middleware", "QuartzNetJob", "Enabled").ObjToBool()) + { + var allQzServices = await _tasksQzServices.Query(); + foreach (var item in allQzServices) + { + if (item.IsStart) + { + var result = await _schedulerCenter.AddScheduleJobAsync(item); + if (result.success) + { + Console.WriteLine($"QuartzNetJob{item.Name}启动成功!"); + } + else + { + Console.WriteLine($"QuartzNetJob{item.Name}启动失败!错误信息:{result.msg}"); + } + } + } + } + } + catch (Exception e) + { + _logger.LogError(e, "An error was reported when starting the job service."); + throw; + } + } + + public Task StopAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Stop QuartzJob Service!"); + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs b/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs new file mode 100644 index 00000000..beef5a75 --- /dev/null +++ b/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs @@ -0,0 +1,55 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Blog.Core.Common; +using Blog.Core.Common.Seed; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Blog.Core.Extensions; + +public sealed class SeedDataHostedService : IHostedService +{ + private readonly MyContext _myContext; + private readonly ILogger _logger; + private readonly string _webRootPath; + + public SeedDataHostedService( + MyContext myContext, + IWebHostEnvironment webHostEnvironment, + ILogger logger) + { + _myContext = myContext; + _logger = logger; + _webRootPath = webHostEnvironment.WebRootPath; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Start Initialization Db Seed Service!"); + await DoWork(); + } + + private async Task DoWork() + { + try + { + if (AppSettings.app("AppSettings", "SeedDBEnabled").ObjToBool() || AppSettings.app("AppSettings", "SeedDBDataEnabled").ObjToBool()) + { + await DBSeed.SeedAsync(_myContext, _webRootPath); + } + } + catch (Exception ex) + { + _logger.LogError(ex, "Error occured seeding the Database."); + throw; + } + } + + public Task StopAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Stop Initialization Db Seed Service!"); + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Middlewares/ConsulMiddleware.cs b/Blog.Core.Extensions/Middlewares/ConsulMiddleware.cs deleted file mode 100644 index c1aae8cc..00000000 --- a/Blog.Core.Extensions/Middlewares/ConsulMiddleware.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using Consul; -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; - -namespace Blog.Core.Extensions.Middlewares -{ - /// - /// Consul 注册服务 - /// - public static class ConsulMiddleware - { - public static IApplicationBuilder UseConsulMiddle(this IApplicationBuilder app, IConfiguration configuration, IHostApplicationLifetime lifetime) - { - if (configuration["Middleware:Consul:Enabled"].ObjToBool()) - { - var consulClient = new ConsulClient(c => - { - //consul地址 - c.Address = new Uri(configuration["ConsulSetting:ConsulAddress"]); - }); - - var registration = new AgentServiceRegistration() - { - ID = Guid.NewGuid().ToString(),//服务实例唯一标识 - Name = configuration["ConsulSetting:ServiceName"],//服务名 - Address = configuration["ConsulSetting:ServiceIP"], //服务IP - Port = int.Parse(configuration["ConsulSetting:ServicePort"]),//服务端口 - Check = new AgentServiceCheck() - { - DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//服务启动多久后注册 - Interval = TimeSpan.FromSeconds(10),//健康检查时间间隔 - HTTP = $"http://{configuration["ConsulSetting:ServiceIP"]}:{configuration["ConsulSetting:ServicePort"]}{configuration["ConsulSetting:ServiceHealthCheck"]}",//健康检查地址 - Timeout = TimeSpan.FromSeconds(5)//超时时间 - } - }; - - //服务注册 - consulClient.Agent.ServiceRegister(registration).Wait(); - - //应用程序终止时,取消注册 - lifetime.ApplicationStopping.Register(() => - { - consulClient.Agent.ServiceDeregister(registration.ID).Wait(); - }); - - } - return app; - } - } -} diff --git a/Blog.Core.Extensions/Middlewares/QuartzJobMiddleware.cs b/Blog.Core.Extensions/Middlewares/QuartzJobMiddleware.cs deleted file mode 100644 index 69c52de3..00000000 --- a/Blog.Core.Extensions/Middlewares/QuartzJobMiddleware.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using Blog.Core.Common; -using Blog.Core.IServices; -using Blog.Core.Tasks; -using log4net; -using Microsoft.AspNetCore.Builder; - -namespace Blog.Core.Extensions.Middlewares -{ - /// - /// Quartz 启动服务 - /// - public static class QuartzJobMiddleware - { - private static readonly ILog Log = LogManager.GetLogger(typeof(QuartzJobMiddleware)); - public static void UseQuartzJobMiddleware(this IApplicationBuilder app, ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter) - { - if (app == null) throw new ArgumentNullException(nameof(app)); - - try - { - if (AppSettings.app("Middleware", "QuartzNetJob", "Enabled").ObjToBool()) - { - - var allQzServices = tasksQzServices.Query().Result; - foreach (var item in allQzServices) - { - if (item.IsStart) - { - var result = schedulerCenter.AddScheduleJobAsync(item).Result; - if (result.success) - { - Console.WriteLine($"QuartzNetJob{item.Name}启动成功!"); - } - else - { - Console.WriteLine($"QuartzNetJob{item.Name}启动失败!错误信息:{result.msg}"); - } - } - } - - } - } - catch (Exception e) - { - Log.Error($"An error was reported when starting the job service.\n{e.Message}"); - throw; - } - } - } -} diff --git a/Blog.Core.Extensions/Middlewares/SeedDataMiddleware.cs b/Blog.Core.Extensions/Middlewares/SeedDataMiddleware.cs deleted file mode 100644 index ad944bfd..00000000 --- a/Blog.Core.Extensions/Middlewares/SeedDataMiddleware.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using Blog.Core.Common; -using Blog.Core.Common.Seed; -using log4net; -using Microsoft.AspNetCore.Builder; - -namespace Blog.Core.Extensions.Middlewares -{ - /// - /// 生成种子数据中间件服务 - /// - public static class SeedDataMiddleware - { - private static readonly ILog Log = LogManager.GetLogger(typeof(SeedDataMiddleware)); - public static void UseSeedDataMiddle(this IApplicationBuilder app, MyContext myContext, string webRootPath) - { - if (app == null) throw new ArgumentNullException(nameof(app)); - - try - { - if (AppSettings.app("AppSettings", "SeedDBEnabled").ObjToBool() || AppSettings.app("AppSettings", "SeedDBDataEnabled").ObjToBool()) - { - DBSeed.SeedAsync(myContext, webRootPath).Wait(); - } - } - catch (Exception e) - { - Log.Error($"Error occured seeding the Database.\n{e.Message}"); - throw; - } - } - } -} diff --git a/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs b/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs index 1aae5ed5..4ae98830 100644 --- a/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs @@ -1,11 +1,9 @@ -using Autofac; +using System; +using Autofac; using Blog.Core.Common; using Blog.Core.EventBus; -using Blog.Core.EventBus.EventHandling; -using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using System; namespace Blog.Core.Extensions { @@ -43,23 +41,12 @@ public static void AddEventBusSetup(this IServiceCollection services) return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); }); } - if(AppSettings.app(new string[] { "Kafka", "Enabled" }).ObjToBool()) + if (AppSettings.app(new string[] { "Kafka", "Enabled" }).ObjToBool()) { services.AddHostedService(); services.AddSingleton(); } } } - - - public static void ConfigureEventBus(this IApplicationBuilder app) - { - if (AppSettings.app(new string[] { "EventBus", "Enabled" }).ObjToBool()) - { - var eventBus = app.ApplicationServices.GetRequiredService(); - - eventBus.Subscribe(); - } - } } -} +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/InitializationHostServiceSetup.cs b/Blog.Core.Extensions/ServiceExtensions/InitializationHostServiceSetup.cs new file mode 100644 index 00000000..fea6a5ad --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/InitializationHostServiceSetup.cs @@ -0,0 +1,24 @@ +using System; +using Blog.Core.Extensions.HostedService; +using Microsoft.Extensions.DependencyInjection; + +namespace Blog.Core.Extensions; + +public static class InitializationHostServiceSetup +{ + /// + /// 应用初始化服务注入 + /// + /// + public static void AddInitializationHostServiceSetup(this IServiceCollection services) + { + if (services is null) + { + ArgumentNullException.ThrowIfNull(nameof(services)); + } + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + } +} \ No newline at end of file From 71e0f4a7fe99520614a43c6c536ffcc5a24db132 Mon Sep 17 00:00:00 2001 From: "Lemon.NoCry" <773596523@qq.com> Date: Mon, 13 Feb 2023 19:23:16 +0800 Subject: [PATCH 217/382] =?UTF-8?q?=E2=9C=A8=20=E5=AE=8C=E5=96=84=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=8A=A8=E6=80=81=E8=A1=A8=E8=BE=BE=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.支持一对多导航属性 2.支持混合查询 测试代码看 DynamicLambdaTest 每次修改,都会验证通过测试 --- Blog.Core.Api/Blog.Core.Model.xml | 10 ++ .../Extensions/ExpressionExtensions.cs | 13 ++- Blog.Core.Common/Helper/DynamicLinqFactory.cs | 100 +++++++++++++++--- .../Helper/GenericTypeExtensions.cs | 56 ++++++++++ Blog.Core.Model/Models/BlogArticle.cs | 14 ++- Blog.Core.Model/Models/BlogArticleComment.cs | 19 ++++ Blog.Core.Model/Models/sysUserInfo.cs | 2 +- .../Common_Test/DynamicLambdaTest.cs | 54 +++++++++- .../DependencyInjection/DI_Test.cs | 35 +++--- 9 files changed, 259 insertions(+), 44 deletions(-) create mode 100644 Blog.Core.Common/Helper/GenericTypeExtensions.cs create mode 100644 Blog.Core.Model/Models/BlogArticleComment.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 36975d11..f2b73257 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -301,6 +301,16 @@ 逻辑删除 + + + 评论 + + + + + 博客文章 评论 + + 部门表 diff --git a/Blog.Core.Common/Extensions/ExpressionExtensions.cs b/Blog.Core.Common/Extensions/ExpressionExtensions.cs index 7f9e69e5..4058b95a 100644 --- a/Blog.Core.Common/Extensions/ExpressionExtensions.cs +++ b/Blog.Core.Common/Extensions/ExpressionExtensions.cs @@ -151,6 +151,16 @@ public static Expression Contains(this Expression left, Expression right) return left.Call("Contains", right); } + public static Expression StartContains(this Expression left, Expression right) + { + return left.Call("StartsWith", right); + } + + public static Expression EndContains(this Expression left, Expression right) + { + return left.Call("EndsWith", right); + } + /// /// > /// @@ -201,5 +211,4 @@ public static Expression NotEqual(this Expression left, Expression right) #endregion } - -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/DynamicLinqFactory.cs b/Blog.Core.Common/Helper/DynamicLinqFactory.cs index 43fdd7e3..7d45bbd2 100644 --- a/Blog.Core.Common/Helper/DynamicLinqFactory.cs +++ b/Blog.Core.Common/Helper/DynamicLinqFactory.cs @@ -1,15 +1,11 @@ -using Microsoft.AspNetCore.Http; -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Linq.Expressions; -using System.Net.Http; -using System.Net.Http.Headers; using System.Reflection; using System.Text; using System.Text.RegularExpressions; -using System.Threading.Tasks; namespace Blog.Core.Common.Helper { @@ -20,10 +16,10 @@ namespace Blog.Core.Common.Helper /// public static class DynamicLinqFactory { - private static readonly Dictionary _operatingSystems = new(); + private static readonly Dictionary _operatingSystems = new Dictionary(); public static Dictionary OperatingSystems => GetOperationSymbol(); - private static readonly Dictionary _linkSymbols = new(); + private static readonly Dictionary _linkSymbols = new Dictionary(); public static Dictionary LinkSymbols => GetLinkSymbol(); /// @@ -70,11 +66,16 @@ public static Expression ExpressionStudio(Expression left, DynamicLinqHelper Dyn var properties = DynamicLinq.Left.Split('.'); - // 从1开始,是不想用自定义种子,外层种子已经定义好了 - // 暂时也不会有多个自定义种子,先这样 - for (var i = 0; i < properties.Length; i++) + int index = 0; + foreach (var t in properties) { - mainExpression = mainExpression.Property(properties[i]); + if (mainExpression.Type.HasImplementedRawGeneric(typeof(IEnumerable<>))) + { + return ExpressionStudioEnumerable(left, mainExpression, DynamicLinq.Clone(), properties.Skip(index).ToArray()); + } + + mainExpression = mainExpression.Property(t); + index++; } left = left == null @@ -85,6 +86,32 @@ public static Expression ExpressionStudio(Expression left, DynamicLinqHelper Dyn return left; } + public static Expression ExpressionStudioEnumerable(Expression left, Expression property, DynamicLinqHelper dynamicLinq, string[] properties) + { + var realType = property.Type.GenericTypeArguments[0]; + + var parameter = Expression.Parameter(realType, "z"); + Expression mainExpression = property; + if (!properties.Any()) + { + throw new ApplicationException("条件表达式错误,属性为集合时,需要明确具体属性"); + } + + dynamicLinq.Left = string.Join(".", properties); + mainExpression = ExpressionStudio(null, dynamicLinq, parameter); + + var lambda = Expression.Lambda(mainExpression, parameter); + + mainExpression = Expression.Call(typeof(Enumerable), "Any", new[] { realType }, property, lambda); + + left = left == null + ? mainExpression + : ChangeLinkSymbol(dynamicLinq.LinkSymbol, left, mainExpression); + + return left; + } + + /// /// 将字符串装换成动态帮助类(内含递归) /// @@ -132,6 +159,7 @@ public static List SplitOperationSymbol(string str) { var outList = new List(); var tokens = Regex.Matches(FormatString(str), _pattern, RegexOptions.Compiled) + .Cast() .Select(m => m.Groups[1].Value.Trim()) .ToList(); @@ -139,7 +167,7 @@ public static List SplitOperationSymbol(string str) int lastOperatingSymbolIndex = -1; for (int i = tokens.Count - 1; i >= 0; i--) { - var token = tokens[i]; + var token = tokens[i].ToLower(); if (OperatingSystems.ContainsKey(token)) { @@ -189,6 +217,7 @@ public static List SplitOperationSymbol(string str) } } + outList.Reverse(); return outList; } @@ -259,7 +288,7 @@ public static Dictionary GetOperationSymbol() { foreach (var name in attr.Name.Split(';')) { - _operatingSystems.Add(name, (OperationSymbol)item.GetValue(null)); + _operatingSystems.Add(name.ToLower(), (OperationSymbol)item.GetValue(null)); } } } @@ -353,7 +382,14 @@ public static string FormatString(string str) public static readonly string _pattern = @"\s*(" + string.Join("|", new string[] { // operators and punctuation that are longer than one char: longest first - string.Join("|", new[] { "||", "&&", "==", "!=", "<=", ">=", "like", "contains" }.Select(Regex.Escape)), + string.Join("|", new[] + { + "||", "&&", "==", "!=", "<=", ">=", + "in", + "like", "contains", "%=", + "startslike", "startscontains", "%>", + "endlike", "endcontains", "%<", + }.Select(Regex.Escape)), @"""(?:\\.|[^""])*""", // string @"\d+(?:\.\d+)?", // number with optional decimal part @"\w+", // word @@ -365,7 +401,7 @@ public static string FormatString(string str) /// public static OperationSymbol ChangeOperationSymbol(string str) { - switch (str) + switch (str.ToLower()) { case "<": return OperationSymbol.LessThan; @@ -382,7 +418,16 @@ public static OperationSymbol ChangeOperationSymbol(string str) return OperationSymbol.NotEqual; case "contains": case "like": + case "%=": return OperationSymbol.Contains; + case "startslike": + case "startscontains": + case "%>": + return OperationSymbol.StartsContains; + case "endlike": + case "endcontains": + case "%<": + return OperationSymbol.EndContains; } throw new Exception("OperationSymbol IS NULL"); @@ -451,6 +496,10 @@ public static Expression ChangeOperationSymbol(OperationSymbol symbol, Expressio return key.NotEqual(Expression.Constant(newTypeRight)); case OperationSymbol.Contains: return key.Contains(Expression.Constant(newTypeRight)); + case OperationSymbol.StartsContains: + return key.StartContains(Expression.Constant(newTypeRight)); + case OperationSymbol.EndContains: + return key.EndContains(Expression.Constant(newTypeRight)); case OperationSymbol.In: var contains = typeof(Enumerable).GetMethods(BindingFlags.Static | BindingFlags.Public) .Single(x => x.Name == "Contains" && x.GetParameters().Length == 2) @@ -480,6 +529,17 @@ public class DynamicLinqHelper [Display(Name = "连接符")] public LinkSymbol LinkSymbol { get; set; } + + public DynamicLinqHelper Clone() + { + return new DynamicLinqHelper() + { + Left = this.Left, + Right = this.Right, + OperationSymbol = this.OperationSymbol, + LinkSymbol = this.LinkSymbol, + }; + } } /// @@ -504,9 +564,15 @@ public enum OperationSymbol [Display(Name = "in")] In, - [Display(Name = "like;contains")] + [Display(Name = "like;contains;%=")] Contains, + [Display(Name = "StartsLike;StartsContains;%>")] + StartsContains, + + [Display(Name = "EndLike;EndContains;%<")] + EndContains, + [Display(Name = ">")] GreaterThan, @@ -528,7 +594,7 @@ public enum OperationSymbol #endregion - + /// /// Queryable扩展 /// diff --git a/Blog.Core.Common/Helper/GenericTypeExtensions.cs b/Blog.Core.Common/Helper/GenericTypeExtensions.cs new file mode 100644 index 00000000..aa095e2a --- /dev/null +++ b/Blog.Core.Common/Helper/GenericTypeExtensions.cs @@ -0,0 +1,56 @@ +using System; +using System.Linq; + +namespace Blog.Core.Common.Helper +{ + public static class GenericTypeExtensions + { + /// + /// 判断类型是否实现某个泛型 + /// + /// 类型 + /// 泛型类型 + /// bool + public static bool HasImplementedRawGeneric(this Type type, Type generic) + { + // 检查接口类型 + var isTheRawGenericType = type.GetInterfaces().Any(IsTheRawGenericType); + if (isTheRawGenericType) return true; + + // 检查类型 + while (type != null && type != typeof(object)) + { + isTheRawGenericType = IsTheRawGenericType(type); + if (isTheRawGenericType) return true; + type = type.BaseType; + } + + return false; + + // 判断逻辑 + bool IsTheRawGenericType(Type t) => generic == (t.IsGenericType ? t.GetGenericTypeDefinition() : t); + } + + public static string GetGenericTypeName(this Type type) + { + var typeName = string.Empty; + + if (type.IsGenericType) + { + var genericTypes = string.Join(",", type.GetGenericArguments().Select(t => t.Name).ToArray()); + typeName = $"{type.Name.Remove(type.Name.IndexOf('`'))}<{genericTypes}>"; + } + else + { + typeName = type.Name; + } + + return typeName; + } + + public static string GetGenericTypeName(this object @object) + { + return @object.GetType().GetGenericTypeName(); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/BlogArticle.cs b/Blog.Core.Model/Models/BlogArticle.cs index 52176190..66f05bdf 100644 --- a/Blog.Core.Model/Models/BlogArticle.cs +++ b/Blog.Core.Model/Models/BlogArticle.cs @@ -1,5 +1,6 @@ using SqlSugar; using System; +using System.Collections.Generic; namespace Blog.Core.Model.Models { @@ -14,12 +15,16 @@ public class BlogArticle /// 这里之所以没用RootEntity,是想保持和之前的数据库一致,主键是bID,不是Id [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] public int bID { get; set; } + /// /// 创建人 /// [SugarColumn(Length = 600, IsNullable = true)] public string bsubmitter { get; set; } + [Navigate(NavigateType.OneToOne, nameof(bsubmitter))] + public SysUserInfo User { get; set; } + /// /// 标题blog /// @@ -57,6 +62,7 @@ public class BlogArticle /// 创建时间 /// public System.DateTime bCreateTime { get; set; } + /// /// 备注 /// @@ -69,5 +75,11 @@ public class BlogArticle [SugarColumn(IsNullable = true)] public bool? IsDeleted { get; set; } + + /// + /// 评论 + /// + [Navigate(NavigateType.OneToMany, nameof(BlogArticleComment.bID))] + public List Comments { get; set; } } -} +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/BlogArticleComment.cs b/Blog.Core.Model/Models/BlogArticleComment.cs new file mode 100644 index 00000000..08010863 --- /dev/null +++ b/Blog.Core.Model/Models/BlogArticleComment.cs @@ -0,0 +1,19 @@ +using SqlSugar; + +namespace Blog.Core.Model.Models; + +/// +/// 博客文章 评论 +/// +public class BlogArticleComment : RootEntityTkey +{ + public int bID { get; set; } + + public string Comment { get; set; } + + + public string UserId { get; set; } + + [Navigate(NavigateType.OneToOne, nameof(UserId))] + public SysUserInfo User { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index c60e4bce..455f6e9e 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -8,7 +8,7 @@ namespace Blog.Core.Model.Models /// 用户信息表 /// //[SugarTable("SysUserInfo")] - [SugarTable("SysUserInfo", "用户表")]//('数据库表名','数据库表备注') + [SugarTable("SysUserInfo", "用户表")] //('数据库表名','数据库表备注') public class SysUserInfo : SysUserInfoRoot { public SysUserInfo() diff --git a/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs b/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs index 99757e4f..8f6ad096 100644 --- a/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs +++ b/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs @@ -3,6 +3,7 @@ using Blog.Core.Common.Helper; using Blog.Core.IRepository.Base; using Blog.Core.Model.Models; +using SqlSugar; using Xunit; using Xunit.Abstractions; @@ -21,13 +22,42 @@ public DynamicLambdaTest(ITestOutputHelper testOutputHelper) var container = dI_Test.DICollections(); _baseRepository = container.Resolve>(); - + _baseRepository.Db.Aop.OnLogExecuting = (sql, p) => + { + _testOutputHelper.WriteLine(""); + _testOutputHelper.WriteLine("==================FullSql=====================", "", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); + _testOutputHelper.WriteLine("【SQL语句】:" + sql); + _testOutputHelper.WriteLine(GetParas(p)); + _testOutputHelper.WriteLine("=============================================="); + _testOutputHelper.WriteLine(""); + }; //DbContext.Init(BaseDBConfig.ConnectionString,(DbType)BaseDBConfig.DbType); + + Init(); + } + + private static string GetParas(SugarParameter[] pars) + { + string key = "【SQL参数】:"; + foreach (var param in pars) + { + key += $"{param.ParameterName}:{param.Value}\n"; + } + + return key; + } + + private void Init() + { + _baseRepository.Db.CodeFirst.InitTables(); + _baseRepository.Db.CodeFirst.InitTables(); } [Fact] public async void Get_Blogs_DynamicTest() { + //方便前端自定义条件查询 + //语法更舒服 var data = await _baseRepository.Query(); _testOutputHelper.WriteLine(data.ToJson()); @@ -39,12 +69,26 @@ public async void Get_Blogs_DynamicTest() await TestConditions("btitle like \"测试数据\" && bId>0"); await TestConditions("btitle like \"测试!@#$%^&*()_+|}{\":<>?LP\"数据\" && bId>0"); await TestConditions("btitle like \"测试!@+)(*()_&%^&^$^%$IUYWIQOJVLXKZM>?Z<>??LP\"数据\" && bId>0"); - - //比如文章下 过滤创建人 - //await TestConditions("btitle.user.name like \"老张\""); - await TestConditions("IsDeleted == false"); await TestConditions("IsDeleted == true"); + + //导航属性 + + //一对一 + + //查询 老张的文章 + await TestConditions("User.RealName like \"老张\""); + //查询 2019年后的老张文章 + await TestConditions("User.RealName like \"老张\" && bUpdateTime>=\"2019-01-01 01:01:01\""); + + //一对多 + + //查询 评论中有"写的不错"的文章 + await TestConditions("Comments.Comment like \"写的不错\""); + //查询 2019后的 评论中有"写的不错"的文章 + await TestConditions("Comments.Comment like \"写的不错\" && bUpdateTime>=\"2019-01-01 01:01:01\""); + //查询 有老张评论的文章 + await TestConditions("Comments.User.LoginName like \"老张\""); } private async Task TestConditions(string conditions) diff --git a/Blog.Core.Tests/DependencyInjection/DI_Test.cs b/Blog.Core.Tests/DependencyInjection/DI_Test.cs index 6fad1f45..ff2c74cd 100644 --- a/Blog.Core.Tests/DependencyInjection/DI_Test.cs +++ b/Blog.Core.Tests/DependencyInjection/DI_Test.cs @@ -74,13 +74,13 @@ public IContainer DICollections() var permission = new List(); var permissionRequirement = new PermissionRequirement( - "/api/denied", - permission, - ClaimTypes.Role, - AppSettings.app(new string[] { "Audience", "Issuer" }), - AppSettings.app(new string[] { "Audience", "Audience" }), - signingCredentials,//签名凭据 - expiration: TimeSpan.FromSeconds(60 * 60)//接口的过期时间 + "/api/denied", + permission, + ClaimTypes.Role, + AppSettings.app(new string[] { "Audience", "Issuer" }), + AppSettings.app(new string[] { "Audience", "Audience" }), + signingCredentials, //签名凭据 + expiration: TimeSpan.FromSeconds(60 * 60) //接口的过期时间 ); services.AddSingleton(permissionRequirement); @@ -88,17 +88,16 @@ public IContainer DICollections() services.AddAuthorization(options => { options.AddPolicy(Permissions.Name, - policy => policy.Requirements.Add(permissionRequirement)); + policy => policy.Requirements.Add(permissionRequirement)); }); services.AddScoped(o => { return new SqlSugar.SqlSugarScope(new SqlSugar.ConnectionConfig() { - ConnectionString = GetMainConnectionDb().Connection,//必填, 数据库连接字符串 - DbType = (SqlSugar.DbType)GetMainConnectionDb().DbType,//必填, 数据库类型 - IsAutoCloseConnection = true,//默认false, 时候知道关闭数据库连接, 设置为true无需使用using或者Close操作 - InitKeyType = SqlSugar.InitKeyType.SystemTable//默认SystemTable, 字段信息读取, 如:该属性是不是主键,标识列等等信息 + ConnectionString = GetMainConnectionDb().Connection, //必填, 数据库连接字符串 + DbType = (SqlSugar.DbType)GetMainConnectionDb().DbType, //必填, 数据库类型 + IsAutoCloseConnection = true, //默认false, 时候知道关闭数据库连接, 设置为true无需使用using或者Close操作 }); }); @@ -121,19 +120,19 @@ public IContainer DICollections() builder.RegisterAssemblyTypes(typeof(Startup).Assembly) .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType) .PropertiesAutowired(); - + var servicesDllFile = Path.Combine(basePath, "Blog.Core.Services.dll"); var assemblysServices = Assembly.LoadFrom(servicesDllFile); builder.RegisterAssemblyTypes(assemblysServices) - .AsImplementedInterfaces() - .InstancePerLifetimeScope() - .PropertiesAutowired() - .EnableInterfaceInterceptors(); + .AsImplementedInterfaces() + .InstancePerLifetimeScope() + .PropertiesAutowired() + .EnableInterfaceInterceptors(); var repositoryDllFile = Path.Combine(basePath, "Blog.Core.Repository.dll"); var assemblysRepository = Assembly.LoadFrom(repositoryDllFile); builder.RegisterAssemblyTypes(assemblysRepository) - .PropertiesAutowired().AsImplementedInterfaces(); + .PropertiesAutowired().AsImplementedInterfaces(); services.Replace(ServiceDescriptor.Transient()); From 1cc3ef25fa1afcb74e159ec18dd65da7ce2a7770 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 14 Feb 2023 22:14:41 +0800 Subject: [PATCH 218/382] Update DynamicLinqFactory.cs --- .../Extensions/GenericTypeExtensions.cs | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Blog.Core.Common/Extensions/GenericTypeExtensions.cs b/Blog.Core.Common/Extensions/GenericTypeExtensions.cs index c0b6150f..6c067773 100644 --- a/Blog.Core.Common/Extensions/GenericTypeExtensions.cs +++ b/Blog.Core.Common/Extensions/GenericTypeExtensions.cs @@ -33,24 +33,24 @@ public static string GetGenericTypeName(this object @object) /// 类型 /// 泛型类型 /// bool - public static bool HasImplementedRawGeneric(this Type type, Type generic) - { - // 检查接口类型 - var isTheRawGenericType = type.GetInterfaces().Any(IsTheRawGenericType); - if (isTheRawGenericType) return true; - - // 检查类型 - while (type != null && type != typeof(object)) - { - isTheRawGenericType = IsTheRawGenericType(type); - if (isTheRawGenericType) return true; - type = type.BaseType; - } - - return false; - - // 判断逻辑 - bool IsTheRawGenericType(Type type) => generic == (type.IsGenericType ? type.GetGenericTypeDefinition() : type); - } + // public static bool HasImplementedRawGeneric(this Type type, Type generic) + // { + // // 检查接口类型 + // var isTheRawGenericType = type.GetInterfaces().Any(IsTheRawGenericType); + // if (isTheRawGenericType) return true; + + // // 检查类型 + // while (type != null && type != typeof(object)) + // { + // isTheRawGenericType = IsTheRawGenericType(type); + // if (isTheRawGenericType) return true; + // type = type.BaseType; + // } + + // return false; + + // // 判断逻辑 + // bool IsTheRawGenericType(Type type) => generic == (type.IsGenericType ? type.GetGenericTypeDefinition() : type); + // } } } \ No newline at end of file From 296201998d4997397c396b6fba1c544d2c9d9926 Mon Sep 17 00:00:00 2001 From: "Lemon.NoCry" <773596523@qq.com> Date: Sat, 18 Feb 2023 01:17:19 +0800 Subject: [PATCH 219/382] =?UTF-8?q?=E2=9C=A8=F0=9F=8E=A8=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=A4=9A=E7=A7=9F=E6=88=B7-=E5=88=86=E5=BA=93?= =?UTF-8?q?=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.自动初始化维护租户库 2.多租户库种子数据维护 分库方案 TenantByDbController --- .gitignore | 1 + Blog.Core.Api/Blog.Core.Model.xml | 81 +++++---- Blog.Core.Api/Blog.Core.xml | 13 +- .../Tenant/TenantByDbController.cs | 38 +++++ .../Tenant/TenantByIdController.cs | 2 +- Blog.Core.Common/Core/InternalApp.cs | 8 +- Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 2 +- Blog.Core.Common/DB/BaseDBConfig.cs | 17 +- Blog.Core.Common/DB/RepositorySetting.cs | 1 + Blog.Core.Common/DB/TenantUtil.cs | 28 ++++ Blog.Core.Common/Seed/DBSeed.cs | 158 ++++++++++++++++-- .../Seed/SeedData/SubBusinessDataSeedData.cs | 70 ++++++++ .../Seed/SeedData/TenantSeedData.cs | 25 ++- .../Seed/SeedData/UserInfoSeedData.cs | 40 ++++- .../HostedService/SeedDataHostedService.cs | 3 + Blog.Core.Model/Models/BusinessTable.cs | 2 +- .../Models/SubLibraryBusinessTable.cs | 22 +++ Blog.Core.Model/Models/SysTenant.cs | 2 +- .../Interface => Tenants}/ITenantEntity.cs | 2 +- .../Tenants/MultiTenantAttribute.cs | 12 ++ .../TenantTypeEnum.cs | 2 +- Blog.Core.Repository/BASE/BaseRepository.cs | 84 ++++++---- 22 files changed, 520 insertions(+), 93 deletions(-) create mode 100644 Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs create mode 100644 Blog.Core.Common/DB/TenantUtil.cs create mode 100644 Blog.Core.Common/Seed/SeedData/SubBusinessDataSeedData.cs create mode 100644 Blog.Core.Model/Models/SubLibraryBusinessTable.cs rename Blog.Core.Model/{Models/RootTkey/Interface => Tenants}/ITenantEntity.cs (81%) create mode 100644 Blog.Core.Model/Tenants/MultiTenantAttribute.cs rename Blog.Core.Model/{CustomEnums => Tenants}/TenantTypeEnum.cs (89%) diff --git a/.gitignore b/.gitignore index de02add3..b7645c45 100644 --- a/.gitignore +++ b/.gitignore @@ -355,3 +355,4 @@ Blog.Core/WMBlog.db Blog.Core/Blog.Core*.xml Blog.Core.Api/WMBlog.db Blog.Core.Api/wwwroot/ui/ +*.db diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 3c1b8ef7..eb7eaab1 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -34,21 +34,6 @@ 所有 - - - 租户隔离方案 - - - - - Id隔离 - - - - - 库隔离 - - 以下model 来自ids4项目,多库模式,为了调取ids4数据 @@ -316,7 +301,16 @@ 逻辑删除 - + + + 评论 + + + + + 博客文章 评论 + + 业务数据
    @@ -336,16 +330,6 @@ 金额 - - - - 评论 - - - - - 博客文章 评论 - @@ -933,14 +917,20 @@ 软删除 过滤器 - + - 租户模型接口 + 多租户-多库方案 业务表
    + 公共库无需标记[MultiTenant]特性
    - + - 租户Id + 名称 + + + + + 金额 @@ -1892,6 +1882,37 @@ 返回数据集
    + + + 租户模型接口 + + + + + 租户Id + + + + + 标识 多租户-分库 的业务表
    + 公共表无需区分 直接使用主库 各自业务在各自库中 +
    +
    + + + 租户隔离方案 + + + + + Id隔离 + + + + + 库隔离 + + 广告类 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 8b5b79fd..8effc9f8 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1236,11 +1236,22 @@ - + 多租户测试 + + + 获取租户下全部业务数据
    +
    + +
    + + + 多租户-Id方案 测试 + + 获取租户下全部业务数据
    diff --git a/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs b/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs new file mode 100644 index 00000000..0d403adb --- /dev/null +++ b/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs @@ -0,0 +1,38 @@ +using Blog.Core.Common.HttpContextUser; +using Blog.Core.Controllers; +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Api.Controllers.Tenant; + +/// +/// 多租户测试 +/// +[Produces("application/json")] +[Route("api/Tenant/ByDb")] +[Authorize] +public class TenantByDbController : BaseApiController +{ + private readonly IBaseServices _services; + private readonly IUser _user; + + public TenantByDbController(IUser user, IBaseServices services) + { + _user = user; + _services = services; + } + + /// + /// 获取租户下全部业务数据
    + ///
    + /// + [HttpGet] + public async Task>> GetAll() + { + var data = await _services.Query(); + return Success(data); + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs b/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs index a0271780..b015bc6d 100644 --- a/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs +++ b/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs @@ -9,7 +9,7 @@ namespace Blog.Core.Api.Controllers.Tenant; /// -/// 多租户测试 +/// 多租户-Id方案 测试 /// [Produces("application/json")] [Route("api/Tenant/ById")] diff --git a/Blog.Core.Common/Core/InternalApp.cs b/Blog.Core.Common/Core/InternalApp.cs index b1f94f9d..c1ae8dcd 100644 --- a/Blog.Core.Common/Core/InternalApp.cs +++ b/Blog.Core.Common/Core/InternalApp.cs @@ -1,4 +1,4 @@ -using Microsoft.Extensions.Hosting; +using Microsoft.AspNetCore.Builder; using System; namespace Blog.Core.Common.Core; @@ -8,8 +8,10 @@ public static class InternalApp /// 根服务 public static IServiceProvider RootServices; - public static void ConfigureApplication(this IHost app) + public static void ConfigureApplication(this WebApplication app) { - RootServices = app.Services; + app.Lifetime.ApplicationStarted.Register(() => { InternalApp.RootServices = app.Services; }); + + app.Lifetime.ApplicationStopped.Register(() => { InternalApp.RootServices = null; }); } } \ No newline at end of file diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs index 3646625d..3d83b002 100644 --- a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -1,5 +1,5 @@ using Blog.Core.Model.Models.RootTkey; -using Blog.Core.Model.Models.RootTkey.Interface; +using Blog.Core.Model.Tenants; using SqlSugar; using System; diff --git a/Blog.Core.Common/DB/BaseDBConfig.cs b/Blog.Core.Common/DB/BaseDBConfig.cs index dc7fee4e..b832b6d0 100644 --- a/Blog.Core.Common/DB/BaseDBConfig.cs +++ b/Blog.Core.Common/DB/BaseDBConfig.cs @@ -11,6 +11,7 @@ public class BaseDBConfig * 目前是多库操作,默认加载的是appsettings.json设置为true的第一个db连接。 */ public static (List allDbs, List slaveDbs) MutiConnectionString => MutiInitConn(); + private static string DifDBConnOfSecurity(params string[] conn) { foreach (var item in conn) @@ -22,7 +23,9 @@ private static string DifDBConnOfSecurity(params string[] conn) return File.ReadAllText(item).Trim(); } } - catch (System.Exception) { } + catch (System.Exception) + { + } } return conn[conn.Length - 1]; @@ -37,8 +40,9 @@ public static (List, List) MutiInitConn() { SpecialDbString(i); } - List listdatabaseSimpleDB = new List();//单库 - List listdatabaseSlaveDB = new List();//从库 + + List listdatabaseSimpleDB = new List(); //单库 + List listdatabaseSlaveDB = new List(); //从库 // 单库,且不开启读写分离,只保留一个 if (!AppSettings.app(new string[] { "CQRSEnabled" }).ObjToBool() && !AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool()) @@ -54,6 +58,7 @@ public static (List, List) MutiInitConn() { dbFirst = listdatabase.FirstOrDefault(); } + listdatabaseSimpleDB.Add(dbFirst); return (listdatabaseSimpleDB, listdatabaseSlaveDB); } @@ -70,7 +75,6 @@ public static (List, List) MutiInitConn() } - return (listdatabase, listdatabaseSlaveDB); //} } @@ -115,24 +119,29 @@ public enum DataBaseType Dm = 5, Kdbndp = 6, } + public class MutiDBOperate { /// /// 连接启用开关 /// public bool Enabled { get; set; } + /// /// 连接ID /// public string ConnId { get; set; } + /// /// 从库执行级别,越大越先执行 /// public int HitRate { get; set; } + /// /// 连接字符串 /// public string Connection { get; set; } + /// /// 数据库类型 /// diff --git a/Blog.Core.Common/DB/RepositorySetting.cs b/Blog.Core.Common/DB/RepositorySetting.cs index 4f2e67d2..e55c7a03 100644 --- a/Blog.Core.Common/DB/RepositorySetting.cs +++ b/Blog.Core.Common/DB/RepositorySetting.cs @@ -1,5 +1,6 @@ using Blog.Core.Model.Models.RootTkey; using Blog.Core.Model.Models.RootTkey.Interface; +using Blog.Core.Model.Tenants; using SqlSugar; using System; using System.Collections.Generic; diff --git a/Blog.Core.Common/DB/TenantUtil.cs b/Blog.Core.Common/DB/TenantUtil.cs new file mode 100644 index 00000000..37ad6909 --- /dev/null +++ b/Blog.Core.Common/DB/TenantUtil.cs @@ -0,0 +1,28 @@ +using System; +using Blog.Core.Model.Models; +using SqlSugar; + +namespace Blog.Core.Common.DB; + +public static class TenantUtil +{ + public static ConnectionConfig GetConnectionConfig(this SysTenant tenant) + { + if (tenant.DbType is null) + { + throw new ArgumentException("Tenant DbType Must"); + } + + return new ConnectionConfig() + { + ConfigId = tenant.ConfigId, + DbType = tenant.DbType.Value, + ConnectionString = tenant.Connection, + IsAutoCloseConnection = true, + MoreSettings = new ConnMoreSettings() + { + IsAutoRemoveDataCache = true + }, + }; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 64aeba95..fdbb1ee8 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -11,6 +11,8 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; +using Blog.Core.Model.Tenants; +using SqlSugar; namespace Blog.Core.Common.Seed { @@ -97,7 +99,9 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) var modelTypes = referencedAssemblies .SelectMany(a => a.DefinedTypes) .Select(type => type.AsType()) - .Where(x => x.IsClass && x.Namespace is "Blog.Core.Model.Models").ToList(); + .Where(x => x.IsClass && x.Namespace is "Blog.Core.Model.Models") + .Where(s => !s.IsDefined(typeof(MultiTenantAttribute), false)) + .ToList(); modelTypes.ForEach(t => { // 这里只支持添加表,不支持删除 @@ -326,7 +330,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) #endregion //种子初始化 - await SeedDataAsync(myContext); + await SeedDataAsync(myContext.Db); ConsoleHelper.WriteSuccessLine($"Done seeding database!"); } @@ -347,12 +351,142 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) ///
    /// /// - private static async Task SeedDataAsync(MyContext myContext) + private static async Task SeedDataAsync(ISqlSugarClient db) { // 获取所有种子配置-初始化数据 var seedDataTypes = AssemblysExtensions.GetAllAssemblies().SelectMany(s => s.DefinedTypes) - .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass && - u.GetInterfaces().Any(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>)))); + .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass) + .Where(u => + { + var esd = u.GetInterfaces().FirstOrDefault(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>))); + if (esd is null) + { + return false; + } + + var eType = esd.GenericTypeArguments[0]; + if (eType.GetCustomAttribute() is null) + { + return true; + } + + return false; + }); + + if (!seedDataTypes.Any()) return; + foreach (var seedType in seedDataTypes) + { + dynamic instance = Activator.CreateInstance(seedType); + //初始化数据 + { + var seedData = instance.InitSeedData(); + if (seedData != null && Enumerable.Any(seedData)) + { + var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); + var entity = db.EntityMaintenance.GetEntityInfo(entityType); + + if (!await db.Queryable(entity.DbTableName, "").AnyAsync()) + { + await db.Insertable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + Console.WriteLine($"Table:{entity.DbTableName} init success!"); + } + } + } + + //种子数据 + { + var seedData = instance.SeedData(); + if (seedData != null && Enumerable.Any(seedData)) + { + var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); + var entity = db.EntityMaintenance.GetEntityInfo(entityType); + + await db.Storageable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + Console.WriteLine($"Table:{entity.DbTableName} seedData success!"); + } + } + + //自定义处理 + { + await instance.CustomizeSeedData(db); + } + } + } + + + /// + /// 初始化 多租户 + /// + /// + /// + public static async Task TenantSeedAsync(MyContext myContext) + { + var tenants = await myContext.Db.Queryable().Where(s => s.TenantType == TenantTypeEnum.Db).ToListAsync(); + if (!tenants.Any()) + { + return; + } + + Console.WriteLine($@"Init Multi Tenant Db"); + foreach (var tenant in tenants) + { + Console.WriteLine($@"Init Multi Tenant Db : {tenant.ConfigId}/{tenant.Name}"); + await InitTenantSeedAsync(myContext.Db.AsTenant(), tenant.GetConnectionConfig()); + } + } + + public static async Task InitTenantSeedAsync(ITenant itenant, ConnectionConfig config) + { + itenant.AddConnection(config); + + var db = itenant.GetConnectionScope(config.ConfigId); + + db.DbMaintenance.CreateDatabase(); + ConsoleHelper.WriteSuccessLine($"Init Multi Tenant Db : {config.ConfigId} Database created successfully!"); + + + Console.WriteLine($@"Init Multi Tenant Db : {config.ConfigId} Create Tables"); + // 获取所有实体表-初始化租户业务表 + var entityTypes = RepositorySetting.Entitys + .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass) + .Where(s => s.IsDefined(typeof(MultiTenantAttribute), false)); + if (!entityTypes.Any()) return; + foreach (var entityType in entityTypes) + { + var splitTable = entityType.GetCustomAttribute(); + if (splitTable == null) + db.CodeFirst.InitTables(entityType); + else + db.CodeFirst.SplitTables().InitTables(entityType); + + Console.WriteLine(entityType.Name); + } + + //多租户初始化种子数据 + await TenantSeedDataAsync(db); + } + + private static async Task TenantSeedDataAsync(ISqlSugarClient db) + { + // 获取所有种子配置-初始化数据 + var seedDataTypes = AssemblysExtensions.GetAllAssemblies().SelectMany(s => s.DefinedTypes) + .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass) + .Where(u => + { + var esd = u.GetInterfaces().FirstOrDefault(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>))); + if (esd is null) + { + return false; + } + + var eType = esd.GenericTypeArguments[0]; + if (eType.GetCustomAttribute() is null) + { + return false; + } + + return true; + }); if (!seedDataTypes.Any()) return; foreach (var seedType in seedDataTypes) { @@ -363,11 +497,11 @@ private static async Task SeedDataAsync(MyContext myContext) if (seedData != null && Enumerable.Any(seedData)) { var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); - var entity = myContext.Db.EntityMaintenance.GetEntityInfo(entityType); + var entity = db.EntityMaintenance.GetEntityInfo(entityType); - if (!await myContext.Db.Queryable(entity.DbTableName, "").AnyAsync()) + if (!await db.Queryable(entity.DbTableName, "").AnyAsync()) { - await myContext.Db.Insertable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + await db.Insertable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); Console.WriteLine($"Table:{entity.DbTableName} init success!"); } } @@ -379,18 +513,18 @@ private static async Task SeedDataAsync(MyContext myContext) if (seedData != null && Enumerable.Any(seedData)) { var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); - var entity = myContext.Db.EntityMaintenance.GetEntityInfo(entityType); + var entity = db.EntityMaintenance.GetEntityInfo(entityType); - await myContext.Db.Storageable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + await db.Storageable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); Console.WriteLine($"Table:{entity.DbTableName} seedData success!"); } } //自定义处理 { - await instance.CustomizeSeedData(myContext.Db); + await instance.CustomizeSeedData(db); } } } } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/SubBusinessDataSeedData.cs b/Blog.Core.Common/Seed/SeedData/SubBusinessDataSeedData.cs new file mode 100644 index 00000000..be8462e8 --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/SubBusinessDataSeedData.cs @@ -0,0 +1,70 @@ +using Blog.Core.Model.Models; +using SqlSugar; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Seed.SeedData; + +public class SubBusinessDataSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return default; + } + + public IEnumerable SeedData() + { + return default; + } + + public async Task CustomizeSeedData(ISqlSugarClient db) + { + //初始化分库数据 + //只是用于测试 + if (db.CurrentConnectionConfig.ConfigId == "Tenant_3") + { + if (!await db.Queryable().AnyAsync()) + { + await db.Insertable(new List() + { + new() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "王五业务数据1", + Amount = 100, + }, + new() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "王五业务数据2", + Amount = 1000, + }, + }).ExecuteReturnSnowflakeIdListAsync(); + } + } + else if (db.CurrentConnectionConfig.ConfigId == "Tenant_4") + { + if (!await db.Queryable().AnyAsync()) + { + await db.Insertable(new List() + { + new() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "赵六业务数据1", + Amount = 50, + }, + new() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "赵六业务数据2", + Amount = 60, + }, + }).ExecuteReturnSnowflakeIdListAsync(); + } + } + + + await Task.Delay(1); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs b/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs index 89945547..0a0fb5b4 100644 --- a/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs +++ b/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs @@ -1,7 +1,10 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; +using System.IO; using System.Threading.Tasks; -using Blog.Core.Model.CustomEnums; +using Blog.Core.Common.DB; using Blog.Core.Model.Models; +using Blog.Core.Model.Tenants; using SqlSugar; namespace Blog.Core.Common.Seed.SeedData; @@ -29,6 +32,24 @@ public IEnumerable InitSeedData() Name = "李四", TenantType = TenantTypeEnum.Id }, + new SysTenant() + { + Id = 1000003, + ConfigId = "Tenant_3", + Name = "王五", + TenantType = TenantTypeEnum.Db, + DbType = DbType.Sqlite, + Connection = $"DataSource=" + Path.Combine(Environment.CurrentDirectory, "WangWu.db"), + }, + new SysTenant() + { + Id = 1000004, + ConfigId = "Tenant_4", + Name = "赵六", + TenantType = TenantTypeEnum.Db, + DbType = DbType.Sqlite, + Connection = $"DataSource=" + Path.Combine(Environment.CurrentDirectory, "ZhaoLiu.db"), + }, }; } diff --git a/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs b/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs index c00eb798..8a96a030 100644 --- a/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs +++ b/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Blog.Core.Model.Models; using SqlSugar; @@ -14,7 +15,12 @@ public IEnumerable InitSeedData() public IEnumerable SeedData() { - return new[] + return default; + } + + public async Task CustomizeSeedData(ISqlSugarClient db) + { + var data = new List() { new SysUserInfo() { @@ -32,11 +38,35 @@ public IEnumerable SeedData() Name = "李四", TenantId = 1000002, //租户Id }, + new SysUserInfo() + { + Id = 10003, + LoginName = "wangwu", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "王五", + TenantId = 1000003, //租户Id + }, + new SysUserInfo() + { + Id = 10004, + LoginName = "zhaoliu", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "赵六", + TenantId = 1000004, //租户Id + }, }; - } - public Task CustomizeSeedData(ISqlSugarClient db) - { - return Task.CompletedTask; + var names = data.Select(s => s.LoginName).ToList(); + names = await db.Queryable() + .Where(s => names.Contains(s.LoginName)) + .Select(s => s.LoginName).ToListAsync(); + + var sysUserInfos = data.Where(s => !names.Contains(s.LoginName)).ToList(); + if (sysUserInfos.Any()) + { + await db.Insertable(sysUserInfos).ExecuteReturnIdentityAsync(); + } + + await Task.CompletedTask; } } \ No newline at end of file diff --git a/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs b/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs index beef5a75..868d750e 100644 --- a/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs +++ b/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs @@ -38,6 +38,9 @@ private async Task DoWork() if (AppSettings.app("AppSettings", "SeedDBEnabled").ObjToBool() || AppSettings.app("AppSettings", "SeedDBDataEnabled").ObjToBool()) { await DBSeed.SeedAsync(_myContext, _webRootPath); + + //多租户 同步 + await DBSeed.TenantSeedAsync(_myContext); } } catch (Exception ex) diff --git a/Blog.Core.Model/Models/BusinessTable.cs b/Blog.Core.Model/Models/BusinessTable.cs index 01a18716..b3b0140a 100644 --- a/Blog.Core.Model/Models/BusinessTable.cs +++ b/Blog.Core.Model/Models/BusinessTable.cs @@ -1,5 +1,5 @@ using Blog.Core.Model.Models.RootTkey; -using Blog.Core.Model.Models.RootTkey.Interface; +using Blog.Core.Model.Tenants; namespace Blog.Core.Model.Models; diff --git a/Blog.Core.Model/Models/SubLibraryBusinessTable.cs b/Blog.Core.Model/Models/SubLibraryBusinessTable.cs new file mode 100644 index 00000000..446fb436 --- /dev/null +++ b/Blog.Core.Model/Models/SubLibraryBusinessTable.cs @@ -0,0 +1,22 @@ +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Tenants; + +namespace Blog.Core.Model.Models; + +/// +/// 多租户-多库方案 业务表
    +/// 公共库无需标记[MultiTenant]特性 +///
    +[MultiTenant] +public class SubLibraryBusinessTable : BaseEntity +{ + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 金额 + /// + public decimal Amount { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/SysTenant.cs b/Blog.Core.Model/Models/SysTenant.cs index 7e6f195d..61d03866 100644 --- a/Blog.Core.Model/Models/SysTenant.cs +++ b/Blog.Core.Model/Models/SysTenant.cs @@ -1,4 +1,4 @@ -using Blog.Core.Model.CustomEnums; +using Blog.Core.Model.Tenants; using SqlSugar; namespace Blog.Core.Model.Models; diff --git a/Blog.Core.Model/Models/RootTkey/Interface/ITenantEntity.cs b/Blog.Core.Model/Tenants/ITenantEntity.cs similarity index 81% rename from Blog.Core.Model/Models/RootTkey/Interface/ITenantEntity.cs rename to Blog.Core.Model/Tenants/ITenantEntity.cs index 350312b8..2d0c5dc9 100644 --- a/Blog.Core.Model/Models/RootTkey/Interface/ITenantEntity.cs +++ b/Blog.Core.Model/Tenants/ITenantEntity.cs @@ -1,6 +1,6 @@ using SqlSugar; -namespace Blog.Core.Model.Models.RootTkey.Interface; +namespace Blog.Core.Model.Tenants; /// /// 租户模型接口 diff --git a/Blog.Core.Model/Tenants/MultiTenantAttribute.cs b/Blog.Core.Model/Tenants/MultiTenantAttribute.cs new file mode 100644 index 00000000..9c3938a9 --- /dev/null +++ b/Blog.Core.Model/Tenants/MultiTenantAttribute.cs @@ -0,0 +1,12 @@ +using System; + +namespace Blog.Core.Model.Tenants; + +/// +/// 标识 多租户-分库 的业务表
    +/// 公共表无需区分 直接使用主库 各自业务在各自库中 +///
    +[AttributeUsage(AttributeTargets.Class)] +public class MultiTenantAttribute : Attribute +{ +} \ No newline at end of file diff --git a/Blog.Core.Model/CustomEnums/TenantTypeEnum.cs b/Blog.Core.Model/Tenants/TenantTypeEnum.cs similarity index 89% rename from Blog.Core.Model/CustomEnums/TenantTypeEnum.cs rename to Blog.Core.Model/Tenants/TenantTypeEnum.cs index a445414b..46ae999c 100644 --- a/Blog.Core.Model/CustomEnums/TenantTypeEnum.cs +++ b/Blog.Core.Model/Tenants/TenantTypeEnum.cs @@ -1,6 +1,6 @@ using System.ComponentModel; -namespace Blog.Core.Model.CustomEnums; +namespace Blog.Core.Model.Tenants; /// /// 租户隔离方案 diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 82900689..1845e958 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -8,6 +8,10 @@ using System.Linq.Expressions; using System.Reflection; using System.Threading.Tasks; +using Blog.Core.Common.DB; +using Blog.Core.Common.HttpContextUser; +using Blog.Core.Model.Models; +using Blog.Core.Model.Tenants; using Blog.Core.Repository.UnitOfWorks; namespace Blog.Core.Repository.Base @@ -22,11 +26,12 @@ private ISqlSugarClient _db get { ISqlSugarClient db = _dbBase; + /* 如果要开启多库支持, * 1、在appsettings.json 中开启MutiDBEnabled节点为true,必填 * 2、设置一个主连接的数据库ID,节点MainDB,对应的连接字符串的Enabled也必须true,必填 */ - if (AppSettings.app(new[] {"MutiDBEnabled"}).ObjToBool()) + if (AppSettings.app(new[] { "MutiDBEnabled" }).ObjToBool()) { //修改使用 model备注字段作为切换数据库条件,使用sqlsugar TenantAttribute存放数据库ConnId //参考 https://www.donet5.com/Home/Doc?typeId=2246 @@ -35,6 +40,27 @@ private ISqlSugarClient _db { //统一处理 configId 小写 db = _dbBase.GetConnectionScope(tenantAttr.configId.ToString().ToLower()); + return db; + } + } + + //多租户 + if (typeof(TEntity).GetCustomAttribute() != null) + { + //获取租户信息 租户信息可以提前缓存下来 + if (App.User is { TenantId: > 0 }) + { + var tenant = db.Queryable().WithCache().Where(s => s.Id == App.User.TenantId).First(); + if (tenant != null) + { + var iTenant = db.AsTenant(); + if (!iTenant.IsAnyConnection(tenant.ConfigId)) + { + iTenant.AddConnection(tenant.GetConnectionConfig()); + } + + return iTenant.GetConnectionScope(tenant.ConfigId); + } } } @@ -51,12 +77,12 @@ public BaseRepository(IUnitOfWorkManage unitOfWorkManage) } - public async Task QueryById(object objId) { //return await Task.Run(() => _db.Queryable().InSingle(objId)); return await _db.Queryable().In(objId).SingleAsync(); } + /// /// 功能描述:根据ID查询一条数据 /// 作  者:Blog.Core @@ -161,25 +187,28 @@ public async Task Update(object operateAnonymousObjects) } public async Task Update( - TEntity entity, - List lstColumns = null, - List lstIgnoreColumns = null, - string where = "" - ) + TEntity entity, + List lstColumns = null, + List lstIgnoreColumns = null, + string where = "" + ) { IUpdateable up = _db.Updateable(entity); if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0) { up = up.IgnoreColumns(lstIgnoreColumns.ToArray()); } + if (lstColumns != null && lstColumns.Count > 0) { up = up.UpdateColumns(lstColumns.ToArray()); } + if (!string.IsNullOrEmpty(where)) { up = up.Where(where); } + return await up.ExecuteCommandHasChangeAsync(); } @@ -214,7 +243,6 @@ public async Task DeleteByIds(object[] ids) } - /// /// 功能描述:查询所有数据 /// 作  者:Blog.Core @@ -284,6 +312,7 @@ public async Task> Query(Expression> whereExpr { return await _db.Queryable().WhereIF(whereExpression != null, whereExpression).OrderByIF(orderByFields != null, orderByFields).ToListAsync(); } + /// /// 功能描述:查询一个列表 /// @@ -393,18 +422,16 @@ public async Task> Query( /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( - string where, - int pageIndex, - int pageSize, - - string orderByFields) + string where, + int pageIndex, + int pageSize, + string orderByFields) { return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) .WhereIF(!string.IsNullOrEmpty(where), where).ToPageListAsync(pageIndex, pageSize); } - /// /// 分页查询[使用版本,其他分页未测试] /// @@ -415,12 +442,11 @@ public async Task> Query( /// public async Task> QueryPage(Expression> whereExpression, int pageIndex = 1, int pageSize = 20, string orderByFields = null) { - RefAsync totalCount = 0; var list = await _db.Queryable() - .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) - .WhereIF(whereExpression != null, whereExpression) - .ToPageListAsync(pageIndex, pageSize, totalCount); + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(whereExpression != null, whereExpression) + .ToPageListAsync(pageIndex, pageSize, totalCount); return new PageModel(pageIndex, totalCount, pageSize, list); } @@ -446,6 +472,7 @@ public async Task> QueryMuch( { return await _db.Queryable(joinExpression).Select(selectExpression).ToListAsync(); } + return await _db.Queryable(joinExpression).Where(whereLambda).Select(selectExpression).ToListAsync(); } @@ -471,13 +498,12 @@ public async Task> QueryTabsPage( int pageSize = 20, string orderByFields = null) { - RefAsync totalCount = 0; var list = await _db.Queryable(joinExpression) - .Select(selectExpression) - .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) - .WhereIF(whereExpression != null, whereExpression) - .ToPageListAsync(pageIndex, pageSize, totalCount); + .Select(selectExpression) + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(whereExpression != null, whereExpression) + .ToPageListAsync(pageIndex, pageSize, totalCount); return new PageModel(pageIndex, totalCount, pageSize, list); } @@ -506,10 +532,10 @@ public async Task> QueryTabsPage( { RefAsync totalCount = 0; var list = await _db.Queryable(joinExpression).GroupBy(groupExpression) - .Select(selectExpression) - .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) - .WhereIF(whereExpression != null, whereExpression) - .ToPageListAsync(pageIndex, pageSize, totalCount); + .Select(selectExpression) + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(whereExpression != null, whereExpression) + .ToPageListAsync(pageIndex, pageSize, totalCount); return new PageModel(pageIndex, totalCount, pageSize, list); } @@ -531,7 +557,5 @@ public async Task> QueryTabsPage( // groupName = s.groupName, // jobName = s.jobName // }, exp, s => new { s.uID, s.uRealName, s.groupName, s.jobName }, model.currentPage, model.pageSize, model.orderField + " " + model.orderType); - } - -} +} \ No newline at end of file From d85087cbdb3b44e559da5d65adf7448f96363f35 Mon Sep 17 00:00:00 2001 From: "Lemon.NoCry" <773596523@qq.com> Date: Sat, 18 Feb 2023 20:58:43 +0800 Subject: [PATCH 220/382] =?UTF-8?q?=F0=9F=8E=A8=E2=9C=A8=20=E5=A4=9A?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.完善多租户-多库方案 2.增加租户管理 (实际业务中 也是运维、系统管理员等角色来操作 甚至直接维护数据库而不会开放接口) --- Blog.Core.Api/Blog.Core.xml | 44 ++++++++++ .../Tenant/TenantByDbController.cs | 14 ++- .../Tenant/TenantManagerController.cs | 87 +++++++++++++++++++ Blog.Core.Common/DB/BaseDBConfig.cs | 5 +- Blog.Core.Common/DB/TenantUtil.cs | 22 +++++ Blog.Core.Common/Seed/DBSeed.cs | 3 +- Blog.Core.IServices/ITenantService.cs | 12 +++ Blog.Core.Services/TenantService.cs | 57 ++++++++++++ 8 files changed, 241 insertions(+), 3 deletions(-) create mode 100644 Blog.Core.Api/Controllers/Tenant/TenantManagerController.cs create mode 100644 Blog.Core.IServices/ITenantService.cs create mode 100644 Blog.Core.Services/TenantService.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 8effc9f8..b41b293c 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1247,6 +1247,12 @@ + + + 新增数据 + + + 多租户-Id方案 测试 @@ -1264,6 +1270,44 @@ + + + 租户管理 + + + + + 获取全部租户 + + + + + + 获取租户信息 + + + + + + 新增租户信息
    + 此处只做演示,具体要以实际业务为准 +
    + +
    + + + 修改租户信息
    + 此处只做演示,具体要以实际业务为准 +
    + +
    + + + 删除租户
    + 此处只做演示,具体要以实际业务为准 +
    + +
    自定义路由 /api/{version}/[controler]/[action] diff --git a/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs b/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs index 0d403adb..046f7f7b 100644 --- a/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs +++ b/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs @@ -9,7 +9,7 @@ namespace Blog.Core.Api.Controllers.Tenant; /// -/// 多租户测试 +/// 多租户-多库方案 测试 /// [Produces("application/json")] [Route("api/Tenant/ByDb")] @@ -35,4 +35,16 @@ public async Task>> GetAll() var data = await _services.Query(); return Success(data); } + + /// + /// 新增数据 + /// + /// + [HttpPost] + public async Task Post(SubLibraryBusinessTable data) + { + await _services.Db.Insertable(data).ExecuteReturnSnowflakeIdAsync(); + + return Success(); + } } \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/Tenant/TenantManagerController.cs b/Blog.Core.Api/Controllers/Tenant/TenantManagerController.cs new file mode 100644 index 00000000..90133fdb --- /dev/null +++ b/Blog.Core.Api/Controllers/Tenant/TenantManagerController.cs @@ -0,0 +1,87 @@ +using Blog.Core.Controllers; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Api.Controllers.Tenant; + +/// +/// 租户管理 +/// +[Produces("application/json")] +[Route("api/TenantManager")] +[Authorize] +public class TenantManagerController : BaseApiController +{ + private readonly ITenantService _services; + + public TenantManagerController(ITenantService services) + { + _services = services; + } + + + /// + /// 获取全部租户 + /// + /// + [HttpGet] + public async Task>> GetAll() + { + var data = await _services.Query(); + return Success(data); + } + + + /// + /// 获取租户信息 + /// + /// + [HttpGet("{id}")] + public async Task> GetInfo(long id) + { + var data = await _services.QueryById(id); + return Success(data); + } + + /// + /// 新增租户信息
    + /// 此处只做演示,具体要以实际业务为准 + ///
    + /// + [HttpPost] + public async Task Post(SysTenant tenant) + { + await _services.SaveTenant(tenant); + return Success(); + } + + /// + /// 修改租户信息
    + /// 此处只做演示,具体要以实际业务为准 + ///
    + /// + [HttpPut] + public async Task Put(SysTenant tenant) + { + await _services.SaveTenant(tenant); + return Success(); + } + + /// + /// 删除租户
    + /// 此处只做演示,具体要以实际业务为准 + ///
    + /// + [HttpDelete] + public async Task Delete(long id) + { + //是否删除租户库? + //要根据实际情况而定 + //例如直接删除租户库、备份租户库到xx + await _services.DeleteById(id); + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/BaseDBConfig.cs b/Blog.Core.Common/DB/BaseDBConfig.cs index b832b6d0..1d86369a 100644 --- a/Blog.Core.Common/DB/BaseDBConfig.cs +++ b/Blog.Core.Common/DB/BaseDBConfig.cs @@ -1,4 +1,5 @@ -using System; +using SqlSugar; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -106,6 +107,8 @@ private static MutiDBOperate SpecialDbString(MutiDBOperate mutiDBOperate) return mutiDBOperate; } + + } diff --git a/Blog.Core.Common/DB/TenantUtil.cs b/Blog.Core.Common/DB/TenantUtil.cs index 37ad6909..deac60a4 100644 --- a/Blog.Core.Common/DB/TenantUtil.cs +++ b/Blog.Core.Common/DB/TenantUtil.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using Blog.Core.Model.Models; using SqlSugar; @@ -6,6 +7,26 @@ namespace Blog.Core.Common.DB; public static class TenantUtil { + public static SysTenant DefaultTenantConfig(this SysTenant tenant) + { + tenant.DbType ??= DbType.Sqlite; + + //如果没有配置连接 + if (tenant.Connection.IsNullOrEmpty()) + { + //此处默认配置 Sqlite 地址 + //实际业务中 也会有运维、系统管理员等来维护 + switch (tenant.DbType.Value) + { + case DbType.Sqlite: + tenant.Connection = $"DataSource={Path.Combine(Environment.CurrentDirectory, tenant.ConfigId)}.db" ; + break; + } + } + + return tenant; + } + public static ConnectionConfig GetConnectionConfig(this SysTenant tenant) { if (tenant.DbType is null) @@ -13,6 +34,7 @@ public static ConnectionConfig GetConnectionConfig(this SysTenant tenant) throw new ArgumentException("Tenant DbType Must"); } + return new ConnectionConfig() { ConfigId = tenant.ConfigId, diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index fdbb1ee8..a6952e6e 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -372,7 +372,7 @@ private static async Task SeedDataAsync(ISqlSugarClient db) return false; }); - + if (!seedDataTypes.Any()) return; foreach (var seedType in seedDataTypes) { @@ -437,6 +437,7 @@ public static async Task TenantSeedAsync(MyContext myContext) public static async Task InitTenantSeedAsync(ITenant itenant, ConnectionConfig config) { + itenant.RemoveConnection(config.ConfigId); itenant.AddConnection(config); var db = itenant.GetConnectionScope(config.ConfigId); diff --git a/Blog.Core.IServices/ITenantService.cs b/Blog.Core.IServices/ITenantService.cs new file mode 100644 index 00000000..0927b793 --- /dev/null +++ b/Blog.Core.IServices/ITenantService.cs @@ -0,0 +1,12 @@ +using System.Threading.Tasks; +using Blog.Core.IServices.BASE; +using Blog.Core.Model.Models; + +namespace Blog.Core.IServices; + +public interface ITenantService : IBaseServices +{ + public Task SaveTenant(SysTenant tenant); + + public Task InitTenantDb(SysTenant tenant); +} \ No newline at end of file diff --git a/Blog.Core.Services/TenantService.cs b/Blog.Core.Services/TenantService.cs new file mode 100644 index 00000000..a552442b --- /dev/null +++ b/Blog.Core.Services/TenantService.cs @@ -0,0 +1,57 @@ +using Blog.Core.Common.DB; +using Blog.Core.Common.Seed; +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Blog.Core.Repository.UnitOfWorks; +using Blog.Core.Services.BASE; +using System.Threading.Tasks; + +namespace Blog.Core.Services; + +public class TenantService : BaseServices, ITenantService +{ + private readonly IUnitOfWorkManage _uowManager; + + public TenantService(IUnitOfWorkManage uowManage) + { + this._uowManager = uowManage; + } + + + public async Task SaveTenant(SysTenant tenant) + { + bool initDb = tenant.Id == 0; + using (var uow = _uowManager.CreateUnitOfWork()) + { + + tenant.DefaultTenantConfig(); + + if (tenant.Id == 0) + { + await Db.Insertable(tenant).ExecuteReturnSnowflakeIdAsync(); + } + else + { + var oldTenant = await QueryById(tenant.Id); + if (oldTenant.Connection != tenant.Connection) + { + initDb = true; + } + + await Db.Updateable(tenant).ExecuteCommandAsync(); + } + + uow.Commit(); + } + + if (initDb) + { + await InitTenantDb(tenant); + } + } + + public async Task InitTenantDb(SysTenant tenant) + { + await DBSeed.InitTenantSeedAsync(Db.AsTenant(), tenant.GetConnectionConfig()); + } +} \ No newline at end of file From bd484137a65431c6ba5af07f93991b72e6afaf38 Mon Sep 17 00:00:00 2001 From: "Lemon.NoCry" <773596523@qq.com> Date: Tue, 21 Feb 2023 01:50:51 +0800 Subject: [PATCH 221/382] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=F0=9F=8E=A8=20?= =?UTF-8?q?=E5=AE=8C=E7=BE=8E=E4=BC=98=E9=9B=85=E7=9A=84=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=A4=9A=E7=A7=9F=E6=88=B7-=E5=88=86=E8=A1=A8=E6=96=B9?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.扩展原有的MultiTenantAttribute 标识多库、多表 2.扩展原有的种子数据生成 用于多表的种子数据 3.巧妙优雅使用Sqlsugar表映射 解决多租户分表问题,原有代码无需改动 登录用户如果是租户用户自动切换到租户分表 目前来看(如果想要升级业务 扩展SAAS) 多表方案:代码侵入最小 id方案:侵入最大,需要增加列 多库方案:相对少 如果是从0到1 最推荐多库 如果是从0.5到1 最推荐多表 --- Blog.Core.Api/Blog.Core.Api.csproj | 1 - Blog.Core.Api/Blog.Core.Model.xml | 104 +++++++++++------- Blog.Core.Api/Blog.Core.xml | 19 +++- .../Tenant/TenantByTableController.cs | 57 ++++++++++ Blog.Core.Common/DB/RepositorySetting.cs | 4 + Blog.Core.Common/DB/TenantUtil.cs | 54 ++++++++- .../Extensions/UntilExtensions.cs | 18 +++ Blog.Core.Common/Seed/DBSeed.cs | 78 +++++++++---- .../SeedData/MultiBusinessDataSeedData.cs | 38 +++++++ .../SeedData/MultiBusinessSubDataSeedData.cs | 38 +++++++ .../Seed/SeedData/TenantSeedData.cs | 7 ++ .../Seed/SeedData/UserInfoSeedData.cs | 8 ++ .../Models/{ => Tenant}/BusinessTable.cs | 0 .../Models/Tenant/MultiBusinessSubTable.cs | 14 +++ .../Models/Tenant/MultiBusinessTable.cs | 26 +++++ .../{ => Tenant}/SubLibraryBusinessTable.cs | 0 .../Tenants/MultiTenantAttribute.cs | 16 ++- Blog.Core.Model/Tenants/TenantTypeEnum.cs | 6 + Blog.Core.Repository/BASE/BaseRepository.cs | 12 +- Blog.Core.Tests/Repository_Test/OrmTest.cs | 73 ++++++++++++ 20 files changed, 503 insertions(+), 70 deletions(-) create mode 100644 Blog.Core.Api/Controllers/Tenant/TenantByTableController.cs create mode 100644 Blog.Core.Common/Extensions/UntilExtensions.cs create mode 100644 Blog.Core.Common/Seed/SeedData/MultiBusinessDataSeedData.cs create mode 100644 Blog.Core.Common/Seed/SeedData/MultiBusinessSubDataSeedData.cs rename Blog.Core.Model/Models/{ => Tenant}/BusinessTable.cs (100%) create mode 100644 Blog.Core.Model/Models/Tenant/MultiBusinessSubTable.cs create mode 100644 Blog.Core.Model/Models/Tenant/MultiBusinessTable.cs rename Blog.Core.Model/Models/{ => Tenant}/SubLibraryBusinessTable.cs (100%) create mode 100644 Blog.Core.Tests/Repository_Test/OrmTest.cs diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 7e17937a..77d681f1 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -98,7 +98,6 @@ - diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index eb7eaab1..0e9ddbb0 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -311,27 +311,6 @@ 博客文章 评论
    - - - 业务数据
    - 多租户 (Id 隔离) -
    -
    - - - 无需手动赋值 - - - - - 名称 - - - - - 金额 - - 部门表 @@ -917,22 +896,6 @@ 软删除 过滤器 - - - 多租户-多库方案 业务表
    - 公共库无需标记[MultiTenant]特性 -
    -
    - - - 名称 - - - - - 金额 - - 系统租户表
    @@ -1145,6 +1108,63 @@ 任务内存中的状态
    + + + 业务数据
    + 多租户 (Id 隔离) +
    +
    + + + 无需手动赋值 + + + + + 名称 + + + + + 金额 + + + + + 多租户-多表方案 业务表 子表
    +
    +
    + + + 多租户-多表方案 业务表
    +
    +
    + + + 名称 + + + + + 金额 + + + + + 多租户-多库方案 业务表
    + 公共库无需标记[MultiTenant]特性 +
    +
    + + + 名称 + + + + + 金额 + + Tibug 类别 @@ -1894,8 +1914,9 @@ - 标识 多租户-分库 的业务表
    - 公共表无需区分 直接使用主库 各自业务在各自库中 + 标识 多租户 的业务表
    + 默认设置是多库
    + 公共表无需区分 直接使用主库 各自业务在各自库中
    @@ -1913,6 +1934,11 @@ 库隔离
    + + + 表隔离 + + 广告类 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index b41b293c..8180287b 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1238,7 +1238,7 @@ - 多租户测试 + 多租户-多库方案 测试 @@ -1270,6 +1270,23 @@ + + + 多租户-多表方案 测试 + + + + + 获取租户下全部业务数据
    +
    + +
    + + + 新增数据 + + + 租户管理 diff --git a/Blog.Core.Api/Controllers/Tenant/TenantByTableController.cs b/Blog.Core.Api/Controllers/Tenant/TenantByTableController.cs new file mode 100644 index 00000000..6c0b110e --- /dev/null +++ b/Blog.Core.Api/Controllers/Tenant/TenantByTableController.cs @@ -0,0 +1,57 @@ +using Blog.Core.Common.HttpContextUser; +using Blog.Core.Controllers; +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Api.Controllers.Tenant; + +/// +/// 多租户-多表方案 测试 +/// +[Produces("application/json")] +[Route("api/Tenant/ByTable")] +[Authorize] +public class TenantByTableController : BaseApiController +{ + private readonly IBaseServices _services; + private readonly IUser _user; + + public TenantByTableController(IUser user, IBaseServices services) + { + _user = user; + _services = services; + } + + /// + /// 获取租户下全部业务数据
    + ///
    + /// + [HttpGet] + public async Task>> GetAll() + { + //查询 + // var data = await _services.Query(); + + //关联查询 + var data = await _services.Db + .Queryable() + .Includes(s => s.Child) + .ToListAsync(); + return Success(data); + } + + /// + /// 新增数据 + /// + /// + [HttpPost] + public async Task Post(MultiBusinessTable data) + { + await _services.Db.Insertable(data).ExecuteReturnSnowflakeIdAsync(); + + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/RepositorySetting.cs b/Blog.Core.Common/DB/RepositorySetting.cs index e55c7a03..bfca7174 100644 --- a/Blog.Core.Common/DB/RepositorySetting.cs +++ b/Blog.Core.Common/DB/RepositorySetting.cs @@ -39,6 +39,10 @@ public static void SetTenantEntityFilter(SqlSugarScopeProvider db) return; } + //多租户 单表 db.QueryFilter.AddTableFilter(it => it.TenantId == App.User.TenantId || it.TenantId == 0); + + //多租户 多表 + db.SetTenantTable(App.User.TenantId.ToString()); } } \ No newline at end of file diff --git a/Blog.Core.Common/DB/TenantUtil.cs b/Blog.Core.Common/DB/TenantUtil.cs index deac60a4..8d57189b 100644 --- a/Blog.Core.Common/DB/TenantUtil.cs +++ b/Blog.Core.Common/DB/TenantUtil.cs @@ -1,6 +1,10 @@ using System; +using System.Collections.Generic; using System.IO; +using System.Linq; +using System.Reflection; using Blog.Core.Model.Models; +using Blog.Core.Model.Tenants; using SqlSugar; namespace Blog.Core.Common.DB; @@ -19,7 +23,7 @@ public static SysTenant DefaultTenantConfig(this SysTenant tenant) switch (tenant.DbType.Value) { case DbType.Sqlite: - tenant.Connection = $"DataSource={Path.Combine(Environment.CurrentDirectory, tenant.ConfigId)}.db" ; + tenant.Connection = $"DataSource={Path.Combine(Environment.CurrentDirectory, tenant.ConfigId)}.db"; break; } } @@ -47,4 +51,52 @@ public static ConnectionConfig GetConnectionConfig(this SysTenant tenant) }, }; } + + public static List GetTenantEntityTypes(TenantTypeEnum? tenantType = null) + { + return RepositorySetting.Entitys + .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass) + .Where(s => IsTenantEntity(s, tenantType)) + .ToList(); + } + + public static bool IsTenantEntity(this Type u, TenantTypeEnum? tenantType = null) + { + var mta = u.GetCustomAttribute(); + if (mta is null) + { + return false; + } + + if (tenantType != null) + { + if (mta.TenantType != tenantType) + { + return false; + } + } + + return true; + } + + public static string GetTenantTableName(this Type type, ISqlSugarClient db, string id) + { + var entityInfo = db.EntityMaintenance.GetEntityInfo(type); + return $@"{entityInfo.DbTableName}_{id}"; + } + + public static string GetTenantTableName(this Type type, ISqlSugarClient db, SysTenant tenant) + { + return GetTenantTableName(type, db, tenant.Id.ToString()); + } + + public static void SetTenantTable(this ISqlSugarClient db, string id) + { + var types = GetTenantEntityTypes(TenantTypeEnum.Tables); + + foreach (var type in types) + { + db.MappingTables.Add(type.Name, type.GetTenantTableName(db, id)); + } + } } \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/UntilExtensions.cs b/Blog.Core.Common/Extensions/UntilExtensions.cs new file mode 100644 index 00000000..1ae503b2 --- /dev/null +++ b/Blog.Core.Common/Extensions/UntilExtensions.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; + +namespace Blog.Core.Common.Extensions; + +public static class UntilExtensions +{ + public static void AddOrModify(this IDictionary dic, TKey key, TValue value) + { + if (dic.TryGetValue(key, out _)) + { + dic[key] = value; + } + else + { + dic.Add(key, value); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index a6952e6e..36bf184c 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -2,8 +2,10 @@ using Blog.Core.Common.Extensions; using Blog.Core.Common.Helper; using Blog.Core.Model.Models; +using Blog.Core.Model.Tenants; using Magicodes.ExporterAndImporter.Excel; using Newtonsoft.Json; +using SqlSugar; using System; using System.Collections.Generic; using System.IO; @@ -11,8 +13,6 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; -using Blog.Core.Model.Tenants; -using SqlSugar; namespace Blog.Core.Common.Seed { @@ -422,19 +422,62 @@ private static async Task SeedDataAsync(ISqlSugarClient db) public static async Task TenantSeedAsync(MyContext myContext) { var tenants = await myContext.Db.Queryable().Where(s => s.TenantType == TenantTypeEnum.Db).ToListAsync(); - if (!tenants.Any()) + if (tenants.Any()) { - return; + Console.WriteLine($@"Init Multi Tenant Db"); + foreach (var tenant in tenants) + { + Console.WriteLine($@"Init Multi Tenant Db : {tenant.ConfigId}/{tenant.Name}"); + await InitTenantSeedAsync(myContext.Db.AsTenant(), tenant.GetConnectionConfig()); + } } - Console.WriteLine($@"Init Multi Tenant Db"); - foreach (var tenant in tenants) + tenants = await myContext.Db.Queryable().Where(s => s.TenantType == TenantTypeEnum.Tables).ToListAsync(); + if (tenants.Any()) { - Console.WriteLine($@"Init Multi Tenant Db : {tenant.ConfigId}/{tenant.Name}"); - await InitTenantSeedAsync(myContext.Db.AsTenant(), tenant.GetConnectionConfig()); + await InitTenantSeedAsync(myContext, tenants); } } + #region 多租户 多表 初始化 + + private static async Task InitTenantSeedAsync(MyContext myContext, List tenants) + { + ConsoleHelper.WriteInfoLine($"Init Multi Tenant Tables : {myContext.Db.CurrentConnectionConfig.ConfigId}"); + + // 获取所有实体表-初始化租户业务表 + var entityTypes = TenantUtil.GetTenantEntityTypes(TenantTypeEnum.Tables); + if (!entityTypes.Any()) return; + + foreach (var sysTenant in tenants) + { + foreach (var entityType in entityTypes) + { + myContext.Db.CodeFirst + .As(entityType, entityType.GetTenantTableName(myContext.Db, sysTenant)) + .InitTables(entityType); + + Console.WriteLine($@"Init Tables:{entityType.GetTenantTableName(myContext.Db, sysTenant)}"); + } + + myContext.Db.SetTenantTable(sysTenant.Id.ToString()); + //多租户初始化种子数据 + await TenantSeedDataAsync(myContext.Db, TenantTypeEnum.Tables); + } + + ConsoleHelper.WriteSuccessLine($"Init Multi Tenant Tables : {myContext.Db.CurrentConnectionConfig.ConfigId} created successfully!"); + } + + #endregion + + #region 多租户 多库 初始化 + + /// + /// 初始化多库 + /// + /// + /// + /// public static async Task InitTenantSeedAsync(ITenant itenant, ConnectionConfig config) { itenant.RemoveConnection(config.ConfigId); @@ -445,12 +488,10 @@ public static async Task InitTenantSeedAsync(ITenant itenant, ConnectionConfig c db.DbMaintenance.CreateDatabase(); ConsoleHelper.WriteSuccessLine($"Init Multi Tenant Db : {config.ConfigId} Database created successfully!"); - Console.WriteLine($@"Init Multi Tenant Db : {config.ConfigId} Create Tables"); + // 获取所有实体表-初始化租户业务表 - var entityTypes = RepositorySetting.Entitys - .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass) - .Where(s => s.IsDefined(typeof(MultiTenantAttribute), false)); + var entityTypes = TenantUtil.GetTenantEntityTypes(TenantTypeEnum.Db); if (!entityTypes.Any()) return; foreach (var entityType in entityTypes) { @@ -464,10 +505,12 @@ public static async Task InitTenantSeedAsync(ITenant itenant, ConnectionConfig c } //多租户初始化种子数据 - await TenantSeedDataAsync(db); + await TenantSeedDataAsync(db, TenantTypeEnum.Db); } - private static async Task TenantSeedDataAsync(ISqlSugarClient db) + #endregion + + private static async Task TenantSeedDataAsync(ISqlSugarClient db, TenantTypeEnum tenantType) { // 获取所有种子配置-初始化数据 var seedDataTypes = AssemblysExtensions.GetAllAssemblies().SelectMany(s => s.DefinedTypes) @@ -481,12 +524,7 @@ private static async Task TenantSeedDataAsync(ISqlSugarClient db) } var eType = esd.GenericTypeArguments[0]; - if (eType.GetCustomAttribute() is null) - { - return false; - } - - return true; + return eType.IsTenantEntity(tenantType); }); if (!seedDataTypes.Any()) return; foreach (var seedType in seedDataTypes) diff --git a/Blog.Core.Common/Seed/SeedData/MultiBusinessDataSeedData.cs b/Blog.Core.Common/Seed/SeedData/MultiBusinessDataSeedData.cs new file mode 100644 index 00000000..4ca1a7dd --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/MultiBusinessDataSeedData.cs @@ -0,0 +1,38 @@ +using Blog.Core.Model.Models; +using SqlSugar; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Seed.SeedData; + +public class MultiBusinessDataSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return new List() + { + new() + { + Id = 1001, + Name = "业务数据1", + Amount = 100, + }, + new() + { + Id = 1002, + Name = "业务数据2", + Amount = 1000, + }, + }; + } + + public IEnumerable SeedData() + { + return default; + } + + public Task CustomizeSeedData(ISqlSugarClient db) + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/MultiBusinessSubDataSeedData.cs b/Blog.Core.Common/Seed/SeedData/MultiBusinessSubDataSeedData.cs new file mode 100644 index 00000000..e73d4603 --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/MultiBusinessSubDataSeedData.cs @@ -0,0 +1,38 @@ +using Blog.Core.Model.Models; +using SqlSugar; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Seed.SeedData; + +public class MultiBusinessSubDataSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return new List() + { + new() + { + Id = 100, + MainId = 1001, + Memo = "子数据", + }, + new() + { + Id = 1001, + MainId = 1001, + Memo = "子数据2", + }, + }; + } + + public IEnumerable SeedData() + { + return default; + } + + public Task CustomizeSeedData(ISqlSugarClient db) + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs b/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs index 0a0fb5b4..f33f83b2 100644 --- a/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs +++ b/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs @@ -50,6 +50,13 @@ public IEnumerable InitSeedData() DbType = DbType.Sqlite, Connection = $"DataSource=" + Path.Combine(Environment.CurrentDirectory, "ZhaoLiu.db"), }, + new SysTenant() + { + Id = 1000005, + ConfigId = "Tenant_5", + Name = "孙七", + TenantType = TenantTypeEnum.Tables, + }, }; } diff --git a/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs b/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs index 8a96a030..414a506b 100644 --- a/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs +++ b/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs @@ -54,6 +54,14 @@ public async Task CustomizeSeedData(ISqlSugarClient db) Name = "赵六", TenantId = 1000004, //租户Id }, + new SysUserInfo() + { + Id = 10005, + LoginName = "sunqi", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "孙七", + TenantId = 1000005, //租户Id + }, }; var names = data.Select(s => s.LoginName).ToList(); diff --git a/Blog.Core.Model/Models/BusinessTable.cs b/Blog.Core.Model/Models/Tenant/BusinessTable.cs similarity index 100% rename from Blog.Core.Model/Models/BusinessTable.cs rename to Blog.Core.Model/Models/Tenant/BusinessTable.cs diff --git a/Blog.Core.Model/Models/Tenant/MultiBusinessSubTable.cs b/Blog.Core.Model/Models/Tenant/MultiBusinessSubTable.cs new file mode 100644 index 00000000..1ada394d --- /dev/null +++ b/Blog.Core.Model/Models/Tenant/MultiBusinessSubTable.cs @@ -0,0 +1,14 @@ +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Tenants; + +namespace Blog.Core.Model.Models; + +/// +/// 多租户-多表方案 业务表 子表
    +///
    +[MultiTenant(TenantTypeEnum.Tables)] +public class MultiBusinessSubTable : BaseEntity +{ + public long MainId { get; set; } + public string Memo { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/Tenant/MultiBusinessTable.cs b/Blog.Core.Model/Models/Tenant/MultiBusinessTable.cs new file mode 100644 index 00000000..619bdaaf --- /dev/null +++ b/Blog.Core.Model/Models/Tenant/MultiBusinessTable.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Tenants; +using SqlSugar; + +namespace Blog.Core.Model.Models; + +/// +/// 多租户-多表方案 业务表
    +///
    +[MultiTenant(TenantTypeEnum.Tables)] +public class MultiBusinessTable : BaseEntity +{ + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 金额 + /// + public decimal Amount { get; set; } + + [Navigate(NavigateType.OneToMany, nameof(MultiBusinessSubTable.MainId))] + public List Child { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/SubLibraryBusinessTable.cs b/Blog.Core.Model/Models/Tenant/SubLibraryBusinessTable.cs similarity index 100% rename from Blog.Core.Model/Models/SubLibraryBusinessTable.cs rename to Blog.Core.Model/Models/Tenant/SubLibraryBusinessTable.cs diff --git a/Blog.Core.Model/Tenants/MultiTenantAttribute.cs b/Blog.Core.Model/Tenants/MultiTenantAttribute.cs index 9c3938a9..443745bf 100644 --- a/Blog.Core.Model/Tenants/MultiTenantAttribute.cs +++ b/Blog.Core.Model/Tenants/MultiTenantAttribute.cs @@ -3,10 +3,22 @@ namespace Blog.Core.Model.Tenants; /// -/// 标识 多租户-分库 的业务表
    -/// 公共表无需区分 直接使用主库 各自业务在各自库中 +/// 标识 多租户 的业务表
    +/// 默认设置是多库
    +/// 公共表无需区分 直接使用主库 各自业务在各自库中
    ///
    [AttributeUsage(AttributeTargets.Class)] public class MultiTenantAttribute : Attribute { + public MultiTenantAttribute() + { + } + + public MultiTenantAttribute(TenantTypeEnum tenantType) + { + TenantType = tenantType; + } + + + public TenantTypeEnum TenantType { get; set; } = TenantTypeEnum.Db; } \ No newline at end of file diff --git a/Blog.Core.Model/Tenants/TenantTypeEnum.cs b/Blog.Core.Model/Tenants/TenantTypeEnum.cs index 46ae999c..f4af3bda 100644 --- a/Blog.Core.Model/Tenants/TenantTypeEnum.cs +++ b/Blog.Core.Model/Tenants/TenantTypeEnum.cs @@ -20,4 +20,10 @@ public enum TenantTypeEnum ///
    [Description("库隔离")] Db = 2, + + /// + /// 表隔离 + /// + [Description("表隔离")] + Tables = 3, } \ No newline at end of file diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 1845e958..828f9506 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -1,6 +1,10 @@ using Blog.Core.Common; +using Blog.Core.Common.DB; using Blog.Core.IRepository.Base; using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.Tenants; +using Blog.Core.Repository.UnitOfWorks; using SqlSugar; using System; using System.Collections.Generic; @@ -8,11 +12,6 @@ using System.Linq.Expressions; using System.Reflection; using System.Threading.Tasks; -using Blog.Core.Common.DB; -using Blog.Core.Common.HttpContextUser; -using Blog.Core.Model.Models; -using Blog.Core.Model.Tenants; -using Blog.Core.Repository.UnitOfWorks; namespace Blog.Core.Repository.Base { @@ -45,7 +44,8 @@ private ISqlSugarClient _db } //多租户 - if (typeof(TEntity).GetCustomAttribute() != null) + var mta = typeof(TEntity).GetCustomAttribute(); + if (mta is { TenantType: TenantTypeEnum.Db }) { //获取租户信息 租户信息可以提前缓存下来 if (App.User is { TenantId: > 0 }) diff --git a/Blog.Core.Tests/Repository_Test/OrmTest.cs b/Blog.Core.Tests/Repository_Test/OrmTest.cs new file mode 100644 index 00000000..fa4629f7 --- /dev/null +++ b/Blog.Core.Tests/Repository_Test/OrmTest.cs @@ -0,0 +1,73 @@ +using System; +using Autofac; +using Blog.Core.Common.Extensions; +using Blog.Core.IRepository.Base; +using Blog.Core.Model.Models; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; +using SqlSugar; +using Xunit; +using Xunit.Abstractions; + +namespace Blog.Core.Tests; + +public class OrmTest +{ + private readonly ITestOutputHelper _testOutputHelper; + private readonly IBaseRepository _baseRepository; + DI_Test dI_Test = new DI_Test(); + + public OrmTest(ITestOutputHelper testOutputHelper) + { + _testOutputHelper = testOutputHelper; + + var container = dI_Test.DICollections(); + + _baseRepository = container.Resolve>(); + _baseRepository.Db.Aop.OnLogExecuting = (sql, p) => + { + _testOutputHelper.WriteLine(""); + _testOutputHelper.WriteLine("==================FullSql=====================", "", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); + _testOutputHelper.WriteLine("【SQL语句】:" + sql); + _testOutputHelper.WriteLine(GetParas(p)); + _testOutputHelper.WriteLine("=============================================="); + _testOutputHelper.WriteLine(""); + }; + } + + private static string GetParas(SugarParameter[] pars) + { + string key = "【SQL参数】:"; + foreach (var param in pars) + { + key += $"{param.ParameterName}:{param.Value}\n"; + } + + return key; + } + + [Fact] + public void MultiTables() + { + var sql = _baseRepository.Db.Queryable() + .AS($@"{nameof(BlogArticle)}_TenantA") + .ToSqlString(); + //_testOutputHelper.WriteLine(sql); + + _baseRepository.Db.MappingTables.Add(nameof(BlogArticle), $@"{nameof(BlogArticle)}_TenantA"); + + var query = _baseRepository.Db.Queryable() + .LeftJoin((a, c) => a.bID == c.bID); + // query.QueryBuilder.AsTables.AddOrModify(nameof(BlogArticle), $@"{nameof(BlogArticle)}_TenantA"); + //query.QueryBuilder.AsTables.AddOrModify(nameof(BlogArticleComment), $@"{nameof(BlogArticleComment)}_TenantA"); + // query.QueryBuilder.AsTables.AddOrModify(nameof(BlogArticleComment), $@"{nameof(BlogArticleComment)}_TenantA"); + // query.QueryBuilder.AsTables.AddOrModify(nameof(SysUserInfo), $@"{nameof(SysUserInfo)}_TenantA"); + + + sql = query.ToSqlString(); + + _testOutputHelper.WriteLine(sql); + + sql = _baseRepository.Db.Deleteable().ToSqlString(); + _testOutputHelper.WriteLine(sql); + } +} \ No newline at end of file From 8d9aeed6229069b800396cd4a93fe0746afc544e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 24 Feb 2023 09:31:27 +0800 Subject: [PATCH 222/382] feat: change permission api para --- Blog.Core.Api/Blog.Core.xml | 3 ++- Blog.Core.Api/Controllers/PermissionController.cs | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 8180287b..1464a9b1 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -374,12 +374,13 @@
    - + 获取菜单 + diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index d3000766..70f8f689 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -61,13 +61,13 @@ public PermissionController(IPermissionServices permissionServices, IModuleServi ///
    /// /// + /// /// // GET: api/User [HttpGet] - public async Task>> Get(int page = 1, string key = "") + public async Task>> Get(int page = 1, string key = "", int pageSize = 50) { PageModel permissions = new PageModel(); - int intPageSize = 50; if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { key = ""; @@ -88,7 +88,7 @@ public async Task>> Get(int page = 1, string - permissions = await _permissionServices.QueryPage(a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key)), page, intPageSize, " Id desc "); + permissions = await _permissionServices.QueryPage(a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key)), page, pageSize, " Id desc "); #region 单独处理 From 99bb71816543d59e89a83229ddf2c085c9d246a6 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 24 Feb 2023 17:37:58 +0800 Subject: [PATCH 223/382] feat:change quartz endtime --- Blog.Core.Api/wwwroot/BlogCore.Data.json/TasksQz.tsv | 8 ++++---- Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/TasksQz.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/TasksQz.tsv index c9f80890..2fa2c648 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/TasksQz.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/TasksQz.tsv @@ -2,16 +2,16 @@ { "Name": "博客管理", "JobGroup": "博客测试组", - "TriggerType": 1, - "Cron": "0 */10 * * * ?", + "TriggerType": 1, + "Cron": "0 */5 * * * ?", "AssemblyName": "Blog.Core.Tasks", "ClassName": "Job_Blogs_Quartz", "Remark": "", "RunTimes": 0, "BeginTime": "\/Date(1546272000000+0800)\/", - "EndTime": "\/Date(1640966400000+0800)\/", + "EndTime": "\/Date(8888888800000+0800)\/", "IntervalSecond": 0, - "CycleRunTimes": 0, + "CycleRunTimes": 0, "IsStart": true, "JobParams": 1, "IsDeleted": false, diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs index 173e996e..41310533 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs @@ -1,5 +1,6 @@ using Blog.Core.IServices; using Quartz; +using System; using System.Threading.Tasks; /// @@ -22,6 +23,7 @@ public async Task Execute(IJobExecutionContext context) } public async Task Run(IJobExecutionContext context) { + System.Console.WriteLine($"Job_Blogs_Quartz 执行 {DateTime.Now.ToShortTimeString()}"); var list = await _blogArticleServices.Query(); // 也可以通过数据库配置,获取传递过来的参数 JobDataMap data = context.JobDetail.JobDataMap; From 1f1525640c4ff5aeb97357ce042d4c9d983809cc Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 25 Feb 2023 14:02:29 +0800 Subject: [PATCH 224/382] Fixed #334 BUG --- Blog.Core.Common/Helper/SM/SM4.cs | 3 ++- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Common/Helper/SM/SM4.cs b/Blog.Core.Common/Helper/SM/SM4.cs index 4b1f1996..b4aa3ebf 100644 --- a/Blog.Core.Common/Helper/SM/SM4.cs +++ b/Blog.Core.Common/Helper/SM/SM4.cs @@ -10,7 +10,9 @@ public class SM4 private long GET_ULONG_BE(SByte[] b, int i) { +#pragma warning disable CS0675 // 对进行了带符号扩展的操作数使用了按位或运算符 long n2 = (b[i] & 0xFF) << 24 | (b[(i + 1)] & 0xFF) << 16 | (b[(i + 2)] & 0xFF) << 8 | b[(i + 3)] & 0xFF & 0xFFFFFFFF; +#pragma warning restore CS0675 // 对进行了带符号扩展的操作数使用了按位或运算符 return n2; } @@ -207,7 +209,6 @@ public SByte[] sm4_crypt_ecb(SM4_Context ctx, SByte[] input) int length = input.Length; SByte[] bins = new SByte[length]; SByte[] bous = new SByte[length]; - SByte[] output = null; Array.Copy(input, 0, bins, 0, length); diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index 47398520..f784da5c 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -15,9 +15,9 @@ - - - + + + From 82bea16164be19860f63ca1221dcba0710823f16 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 25 Feb 2023 16:27:45 +0800 Subject: [PATCH 225/382] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7f37ce66..74076edc 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x #### 框架模块: - [x] 采用`仓储+服务+接口`的形式封装框架; - [x] 异步 async/await 开发; -- [x] 接入国产数据库ORM组件 —— SqlSugar,封装数据库操作; +- [x] 接入国产数据库ORM组件 —— SqlSugar,封装数据库操作,支持级联操作; - [x] 支持自由切换多种数据库,MySql/SqlServer/Sqlite/Oracle/Postgresql/达梦/人大金仓; - [x] 实现项目启动,自动生成种子数据 ✨; - [x] 实现数据库主键类型配置化,什么类型都可以自定义 ✨; @@ -87,6 +87,8 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 封装`Blog.Core.Webapi.Template`项目模板,一键重建自己的项目 ✨; - [x] 搭配多个前端案例供参考和借鉴:Blog.Vue、Blog.Admin、Nuxt.tbug、Blog.Mvp.Blazor ✨; - [x] 统一集成 IdentityServer4 认证 ✨; +- [x] 统一实现多租户; + 组件模块: - [x] 提供 Redis 做缓存处理; @@ -111,6 +113,9 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 新增 Kafka 消息队列,并配合实现EventBus ✨; - [x] 新增 微信公众号管理,并集成到Blog.Admin后台 ✨; - [x] 新增 - 数据部门权限; +- [x] 新增 - Log4net集成日志数据持久化到数据库; +- [x] 新增 - 多租户模式(单表,多表,多库三种模式); + 微服务模块: - [x] 可配合 Docker 实现容器化; From 6ad74a5385c447c3ca190450869f2fcd3b5c6732 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sun, 26 Feb 2023 17:36:39 +0800 Subject: [PATCH 226/382] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74076edc..9b88b0a0 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等,并自动持久化到数据库表🎶; - [x] 支持项目事务处理(若要分布式,用cap即可)✨; - [x] 设计4种 AOP 切面编程,功能涵盖:日志、缓存、审计、事务 ✨; +- [x] Log4net 多种日志自动生成到数据库中,目前支持MySql/SqlServer/Sqlite/Oracle/Postgresql🎉; - [x] 设计并支持按钮级别的RBAC权限控制,同时支持一键同步接口和菜单 🎶; - [x] 支持 T4 代码模板,自动生成每层代码; - [x] 或使用 DbFirst 一键创建自己项目的四层文件(支持多库); From 77f16b55e18a9105ad97fc35b11cee7ea87690e9 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 26 Feb 2023 18:32:49 +0800 Subject: [PATCH 227/382] feat: :flipper: update publish linux sh --- Blog.Core.Build.bat | 1 - Blog.Core.Gateway/Program.cs | 4 +++- ...tings.Development.json => appsettings.gw.Development.json} | 0 Blog.Core.Gateway/{appsettings.json => appsettings.gw.json} | 0 Blog.Core.Publish.Linux.sh | 3 ++- 5 files changed, 5 insertions(+), 3 deletions(-) rename Blog.Core.Gateway/{appsettings.Development.json => appsettings.gw.Development.json} (100%) rename Blog.Core.Gateway/{appsettings.json => appsettings.gw.json} (100%) diff --git a/Blog.Core.Build.bat b/Blog.Core.Build.bat index 632e841c..7d614aa4 100644 --- a/Blog.Core.Build.bat +++ b/Blog.Core.Build.bat @@ -1,4 +1,3 @@ -git pull @echo off diff --git a/Blog.Core.Gateway/Program.cs b/Blog.Core.Gateway/Program.cs index 1ba46816..9c1ba1ce 100644 --- a/Blog.Core.Gateway/Program.cs +++ b/Blog.Core.Gateway/Program.cs @@ -15,7 +15,9 @@ public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, config) => { - config.AddJsonFile("ocelot.json", optional: true, reloadOnChange: true) + config.AddJsonFile("appsettings.gw.json", optional: true, reloadOnChange: false) + .AddJsonFile($"appsettings.gw.{hostingContext.HostingEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: false) + .AddJsonFile("ocelot.json", optional: true, reloadOnChange: true) .AddJsonFile($"ocelot.{hostingContext.HostingEnvironment.EnvironmentName}.json", true, true); }) .ConfigureWebHostDefaults(webBuilder => diff --git a/Blog.Core.Gateway/appsettings.Development.json b/Blog.Core.Gateway/appsettings.gw.Development.json similarity index 100% rename from Blog.Core.Gateway/appsettings.Development.json rename to Blog.Core.Gateway/appsettings.gw.Development.json diff --git a/Blog.Core.Gateway/appsettings.json b/Blog.Core.Gateway/appsettings.gw.json similarity index 100% rename from Blog.Core.Gateway/appsettings.json rename to Blog.Core.Gateway/appsettings.gw.json diff --git a/Blog.Core.Publish.Linux.sh b/Blog.Core.Publish.Linux.sh index 05eb8103..7599f204 100644 --- a/Blog.Core.Publish.Linux.sh +++ b/Blog.Core.Publish.Linux.sh @@ -1,8 +1,9 @@ -git pull; + find .PublishFiles/ -type f -and ! -path '*/wwwroot/images/*' ! -name 'appsettings.*' |xargs rm -rf dotnet build; rm -rf /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles; dotnet publish -o /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles; +rm -rf /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles/WMBlog.db; # cp -r /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles ./; awk 'BEGIN { cmd="cp -ri /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles ./"; print "n" |cmd; }' echo "Successfully!!!! ^ please see the file .PublishFiles"; \ No newline at end of file From 56082ca0ecc464f1b16a378ff2be12bc822a0afe Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Mon, 27 Feb 2023 20:30:58 +0800 Subject: [PATCH 228/382] =?UTF-8?q?=E4=B8=BB=E8=A6=81=E4=BC=98=E5=8C=96=20?= =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E8=B0=83=E5=BA=A6=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=AD=90=E8=A1=A8=202.=E6=B7=BB=E5=8A=A0=E8=B0=83=E5=BA=A6?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=9F=A5=E8=AF=A2=203.=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=E6=97=A5=E5=BF=97=E6=8A=98=E7=BA=BF=E5=9B=BE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=204.=E5=AE=8C=E5=96=84=E8=B0=83=E5=BA=A6?= =?UTF-8?q?=E6=8C=89=E5=BE=AA=E7=8E=AF=E6=AC=A1=E6=95=B0=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=AE=8C=E6=88=90=E5=90=8E=E4=B8=8D=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E7=BB=93=E6=9D=9F=E4=BB=BB=E5=8A=A1=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E4=B8=8B=E6=AC=A1=E5=90=AF=E5=8A=A8=E9=A1=B9=E7=9B=AE=E4=BC=9A?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E6=89=A7=E8=A1=8C=E8=B0=83=E5=BA=A6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Model.xml | 90 +++ Blog.Core.Api/Blog.Core.xml | 18 + .../Controllers/TasksQzController.cs | 35 +- Blog.Core.Api/appsettings.json | 596 +++++++++--------- .../wwwroot/BlogCore.Data.json/Modules.tsv | 44 ++ .../wwwroot/BlogCore.Data.json/Permission.tsv | 42 ++ Blog.Core.Common/Seed/DBSeed.cs | 13 + Blog.Core.IServices/ITasksLogServices.cs | 19 + Blog.Core.Model/Models/TasksLog.cs | 87 +++ Blog.Core.Model/Models/TasksQz.cs | 4 + Blog.Core.Services/TasksLogServices.cs | 133 ++++ Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs | 43 +- .../Jobs/Job_AccessTrendLog_Quartz.cs | 3 +- .../QuartzNet/Jobs/Job_Blogs_Quartz.cs | 4 +- .../QuartzNet/Jobs/Job_OperateLog_Quartz.cs | 6 +- .../QuartzNet/SchedulerCenterServer.cs | 6 + 16 files changed, 824 insertions(+), 319 deletions(-) create mode 100644 Blog.Core.IServices/ITasksLogServices.cs create mode 100644 Blog.Core.Model/Models/TasksLog.cs create mode 100644 Blog.Core.Services/TasksLogServices.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 0e9ddbb0..6bbfd4fe 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -1023,6 +1023,91 @@ 租户Id + + + 任务日志表 + + + + + 任务ID + + + + + 任务耗时 + + + + + 执行结果(0-失败 1-成功) + + + + + 运行时间 + + + + + 结束时间 + + + + + 执行参数 + + + + + 异常信息 + + + + + 异常堆栈 + + + + + 创建ID + + + + + 创建者 + + + + + 创建时间 + + + + + 修改ID + + + + + 修改者 + + + + + 修改时间 + + + + + 任务名称 + + + + + 任务分组 + + 任务计划表 @@ -1088,6 +1173,11 @@ 循环执行次数 + + + 已循环次数 + + 是否启动 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 1464a9b1..af6321da 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -576,6 +576,24 @@ + + + 获取任务运行日志 + + + + + + + + + 任务概况 + + + + + + 类别管理【无权限】 diff --git a/Blog.Core.Api/Controllers/TasksQzController.cs b/Blog.Core.Api/Controllers/TasksQzController.cs index 264fa195..e5c866c3 100644 --- a/Blog.Core.Api/Controllers/TasksQzController.cs +++ b/Blog.Core.Api/Controllers/TasksQzController.cs @@ -4,11 +4,14 @@ using System.Linq.Expressions; using System.Reflection; using System.Threading.Tasks; +using Blog.Core.Common.Extensions; +using Blog.Core.Common.WebApiClients.HttpApis; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; using Blog.Core.Model.ViewModels; using Blog.Core.Repository.UnitOfWorks; +using Blog.Core.Services; using Blog.Core.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -22,14 +25,16 @@ namespace Blog.Core.Controllers public class TasksQzController : ControllerBase { private readonly ITasksQzServices _tasksQzServices; + private readonly ITasksLogServices _tasksLogServices; private readonly ISchedulerCenter _schedulerCenter; private readonly IUnitOfWorkManage _unitOfWorkManage; - public TasksQzController(ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, IUnitOfWorkManage unitOfWorkManage) + public TasksQzController(ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, IUnitOfWorkManage unitOfWorkManage,ITasksLogServices tasksLogServices) { _unitOfWorkManage = unitOfWorkManage; - _tasksQzServices = tasksQzServices; + _tasksQzServices = tasksQzServices; _schedulerCenter = schedulerCenter; + _tasksLogServices = tasksLogServices; } /// @@ -523,6 +528,32 @@ public async Task> ExecuteJob(int jobId) } return data; } + /// + /// 获取任务运行日志 + /// + /// + /// + /// + /// + [HttpGet] + public async Task>> GetTaskLogs(int jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart =null, DateTime? runTimeEnd = null) + { + var model = await _tasksLogServices.GetTaskLogs(jobId, page, pageSize, runTimeStart, runTimeEnd); + return MessageModel>.Message(model.dataCount >= 0, "获取成功", model); + } + /// + /// 任务概况 + /// + /// + /// + /// + /// + [HttpGet] + public async Task> GetTaskOverview(int jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null, string type ="month") + { + var model = await _tasksLogServices.GetTaskOverview(jobId, runTimeStart, runTimeEnd, type); + return MessageModel.Message(true, "获取成功", model); + } } } diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index ea678174..3c117375 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -1,98 +1,98 @@ { - "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 - "Logging": { - "LogLevel": { - "Default": "Information", //加入Default否则log4net本地写入不了日志 - "Blog.Core.AuthHelper.ApiResponseHandler": "Error" + "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 + "Logging": { + "LogLevel": { + "Default": "Information", //加入Default否则log4net本地写入不了日志 + "Blog.Core.AuthHelper.ApiResponseHandler": "Error" + }, + "Debug": { + "IncludeScopes": false, + "LogLevel": { + "Default": "Warning" + } + }, + "Console": { + "IncludeScopes": false, + "LogLevel": { + "Default": "Warning", + "Microsoft.Hosting.Lifetime": "Debug" + } + }, + "Log4Net": { + "Name": "Blog.Core" + } }, - "Debug": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Warning" - } + "AllowedHosts": "*", + "Redis": { + "ConnectionString": "127.0.0.1:6319,password=admin" }, - "Console": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Warning", - "Microsoft.Hosting.Lifetime": "Debug" - } + "RabbitMQ": { + "Enabled": false, + "Connection": "118.25.251.13", + "UserName": "", + "Password": "!", + "RetryCount": 3 }, - "Log4Net": { - "Name": "Blog.Core" - } - }, - "AllowedHosts": "*", - "Redis": { - "ConnectionString": "127.0.0.1:6319,password=admin" - }, - "RabbitMQ": { - "Enabled": false, - "Connection": "118.25.251.13", - "UserName": "", - "Password": "!", - "RetryCount": 3 - }, - "Kafka": { - "Enabled": false, - "Servers": "localhost:9092", - "Topic": "blog", - "GroupId": "blog-consumer", - "NumPartitions": 3 //主题分区数量 - }, - "EventBus": { - "Enabled": false, - "SubscriptionClientName": "Blog.Core" - }, - "AppSettings": { - "RedisCachingAOP": { - "Enabled": false - }, - "MemoryCachingAOP": { - "Enabled": true - }, - "LogAOP": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - } + "Kafka": { + "Enabled": false, + "Servers": "localhost:9092", + "Topic": "blog", + "GroupId": "blog-consumer", + "NumPartitions": 3 //主题分区数量 }, - "TranAOP": { - "Enabled": true + "EventBus": { + "Enabled": false, + "SubscriptionClientName": "Blog.Core" }, - "SqlAOP": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": false - }, - "LogToConsole": { - "Enabled": true - } + "AppSettings": { + "RedisCachingAOP": { + "Enabled": false + }, + "MemoryCachingAOP": { + "Enabled": true + }, + "LogAOP": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": true + } + }, + "TranAOP": { + "Enabled": true + }, + "SqlAOP": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": false + }, + "LogToConsole": { + "Enabled": true + } + }, + "Date": "2018-08-28", + "SeedDBEnabled": true, //只生成表结构 + "SeedDBDataEnabled": true, //生成表,并初始化数据 + "Author": "Blog.Core", + "SvcName": "", // /svc/blog + "UseLoadTest": false }, - "Date": "2018-08-28", - "SeedDBEnabled": true, //只生成表结构 - "SeedDBDataEnabled": true, //生成表,并初始化数据 - "Author": "Blog.Core", - "SvcName": "", // /svc/blog - "UseLoadTest": false - }, - // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; - // *** 单库操作,把 MutiDBEnabled 设为false ***; - // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; - // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 + // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; + // *** 单库操作,把 MutiDBEnabled 设为false ***; + // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; + // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 - "MainDB": "WMBLOG_SQLITE", //当前项目的主库,所对应的连接字符串的Enabled必须为true - "MutiDBEnabled": false, //是否开启多库模式 - "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer - "DBS": [ - /* + "MainDB": "WMBLOG_SQLITE", //当前项目的主库,所对应的连接字符串的Enabled必须为true + "MutiDBEnabled": false, //是否开启多库模式 + "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer + "DBS": [ + /* 对应下边的 DBType MySql = 0, SqlServer = 1, @@ -102,225 +102,225 @@ Dm = 5,//达梦 Kdbndp = 6,//人大金仓 */ - { - "ConnId": "WMBLOG_SQLITE", - "DBType": 2, - "Enabled": true, - "HitRate": 50, // 值越大,优先级越高 - "Connection": "WMBlog.db" //sqlite只写数据库名就行 - }, - { - "ConnId": "WMBLOG_MSSQL_1", - "DBType": 1, - "Enabled": false, - "HitRate": 40, - "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", - "ProviderName": "System.Data.SqlClient" - }, - { - "ConnId": "WMBLOG_MSSQL_2", - "DBType": 1, - "Enabled": false, - "HitRate": 30, - "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", - "ProviderName": "System.Data.SqlClient" - }, - { - "ConnId": "WMBLOG_MYSQL", - "DBType": 0, - "Enabled": false, - "HitRate": 20, - "Connection": "server=.;Database=ddd;Uid=root;Pwd=123456;Port=10060;Allow User Variables=True;" - }, - { - "ConnId": "WMBLOG_MYSQL_2", - "DBType": 0, - "Enabled": true, - "HitRate": 20, - "Connection": "server=localhost;Database=blogcore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" - }, - { - "ConnId": "WMBLOG_ORACLE", - "DBType": 3, - "Enabled": false, - "HitRate": 10, - "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" - }, - { - "ConnId": "WMBLOG_DM", - "DBType": 5, - "Enabled": false, - "HitRate": 10, - "Connection": "PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA;" - }, - { - "ConnId": "WMBLOG_KDBNDP", - "DBType": 6, - "Enabled": true, - "HitRate": 10, - "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" - } - ], - "Audience": { - "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //不要太短,16位+ - "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", //安全。内容就是Secret - "Issuer": "Blog.Core", - "Audience": "wr" - }, - "Mongo": { - "ConnectionString": "mongodb://nosql.data", - "Database": "BlogCoreDb" - }, - "Startup": { - "Domain": "http://localhost:9291", - "Cors": { - "PolicyName": "CorsIpAccess", //策略名称 - "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 - // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 - // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 - "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688" - }, - "AppConfigAlert": { - "Enabled": true - }, - "ApiName": "Blog.Core", - "IdentityServer4": { - "Enabled": false, // 这里默认是false,表示使用jwt,如果设置为true,则表示系统使用Ids4模式 - "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 - "ApiName": "blog.core.api" // 资源服务器 - }, - "Authing": { - "Enabled": false, - "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", - "Audience": "63d51c4205c2849803be5178", - "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" - }, - "RedisMq": { - "Enabled": false //redis 消息队列 + { + "ConnId": "WMBLOG_SQLITE", + "DBType": 2, + "Enabled": true, + "HitRate": 50, // 值越大,优先级越高 + "Connection": "WMBlog.db" //sqlite只写数据库名就行 + }, + { + "ConnId": "WMBLOG_MSSQL_1", + "DBType": 1, + "Enabled": false, + "HitRate": 40, + "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ProviderName": "System.Data.SqlClient" + }, + { + "ConnId": "WMBLOG_MSSQL_2", + "DBType": 1, + "Enabled": false, + "HitRate": 30, + "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ProviderName": "System.Data.SqlClient" + }, + { + "ConnId": "WMBLOG_MYSQL", + "DBType": 0, + "Enabled": false, + "HitRate": 20, + "Connection": "server=localhost;Database=blog;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" + }, + { + "ConnId": "WMBLOG_MYSQL_2", + "DBType": 0, + "Enabled": false, + "HitRate": 20, + "Connection": "server=localhost;Database=blogcore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" + }, + { + "ConnId": "WMBLOG_ORACLE", + "DBType": 3, + "Enabled": false, + "HitRate": 10, + "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" + }, + { + "ConnId": "WMBLOG_DM", + "DBType": 5, + "Enabled": false, + "HitRate": 10, + "Connection": "PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA;" + }, + { + "ConnId": "WMBLOG_KDBNDP", + "DBType": 6, + "Enabled": false, + "HitRate": 10, + "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" + } + ], + "Audience": { + "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //不要太短,16位+ + "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", //安全。内容就是Secret + "Issuer": "Blog.Core", + "Audience": "wr" }, - "MiniProfiler": { - "Enabled": false //性能分析开启 + "Mongo": { + "ConnectionString": "mongodb://nosql.data", + "Database": "BlogCoreDb" }, - "Nacos": { - "Enabled": false //Nacos注册中心 - } - }, - "Middleware": { - "RequestResponseLog": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - } - }, - "IPLog": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - } + "Startup": { + "Domain": "http://localhost:9291", + "Cors": { + "PolicyName": "CorsIpAccess", //策略名称 + "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 + // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 + // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 + "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688" + }, + "AppConfigAlert": { + "Enabled": true + }, + "ApiName": "Blog.Core", + "IdentityServer4": { + "Enabled": false, // 这里默认是false,表示使用jwt,如果设置为true,则表示系统使用Ids4模式 + "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 + "ApiName": "blog.core.api" // 资源服务器 + }, + "Authing": { + "Enabled": false, + "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", + "Audience": "63d51c4205c2849803be5178", + "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" + }, + "RedisMq": { + "Enabled": false //redis 消息队列 + }, + "MiniProfiler": { + "Enabled": false //性能分析开启 + }, + "Nacos": { + "Enabled": false //Nacos注册中心 + } }, - "RecordAccessLogs": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - }, - "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," + "Middleware": { + "RequestResponseLog": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": true + } + }, + "IPLog": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": true + } + }, + "RecordAccessLogs": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": true + }, + "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," + }, + "SignalR": { + "Enabled": false + }, + "SignalRSendLog": { + "Enabled": false + }, + "QuartzNetJob": { + "Enabled": true + }, + "Consul": { + "Enabled": false + }, + "IpRateLimit": { + "Enabled": true + } }, - "SignalR": { - "Enabled": false + "IpRateLimiting": { + "EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each + "StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter + "RealIpHeader": "X-Real-IP", + "ClientIdHeader": "X-ClientId", + "IpWhitelist": [], //白名单 + "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], + "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], + "QuotaExceededResponse": { + "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", + "ContentType": "application/json", + "StatusCode": 429 + }, + "HttpStatusCode": 429, //返回状态码 + "GeneralRules": [ //api规则,结尾一定要带* + { + "Endpoint": "*:/api/blog*", + "Period": "1m", + "Limit": 20 + }, + { + "Endpoint": "*/api/*", + "Period": "1s", + "Limit": 3 + }, + { + "Endpoint": "*/api/*", + "Period": "1m", + "Limit": 30 + }, + { + "Endpoint": "*/api/*", + "Period": "12h", + "Limit": 500 + } + ] + }, - "SignalRSendLog": { - "Enabled": false + "ConsulSetting": { + "ServiceName": "BlogCoreService", + "ServiceIP": "localhost", + "ServicePort": "9291", + "ServiceHealthCheck": "/healthcheck", + "ConsulAddress": "http://localhost:8500" }, - "QuartzNetJob": { - "Enabled": true + "PayInfo": { //建行聚合支付信息 + "MERCHANTID": "", //商户号 + "POSID": "", //柜台号 + "BRANCHID": "", //分行号 + "pubKey": "", //公钥 + "USER_ID": "", //操作员号 + "PASSWORD": "", //密码 + "OutAddress": "http://127.0.0.1:12345" //外联地址 }, - "Consul": { - "Enabled": false + "nacos": { + "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 + "DefaultTimeOut": 15000, // 默认超时时间 + "Namespace": "public", // 命名空间 + "ListenInterval": 10000, // 监听的频率 + "ServiceName": "blog.Core.Api", // 服务名 + "Port": "9291", // 服务端口号 + "RegisterEnabled": true // 是否直接注册nacos }, - "IpRateLimit": { - "Enabled": true + "LogFiedOutPutConfigs": { + "tcpAddressHost": "", // 输出elk的tcp连接地址 + "tcpAddressPort": 0, // 输出elk的tcp端口号 + "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 + { + "FiedName": "applicationName", + "FiedValue": "Blog.Core.Api" + } + ] } - }, - "IpRateLimiting": { - "EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each - "StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter - "RealIpHeader": "X-Real-IP", - "ClientIdHeader": "X-ClientId", - "IpWhitelist": [], //白名单 - "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], - "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], - "QuotaExceededResponse": { - "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", - "ContentType": "application/json", - "StatusCode": 429 - }, - "HttpStatusCode": 429, //返回状态码 - "GeneralRules": [ //api规则,结尾一定要带* - { - "Endpoint": "*:/api/blog*", - "Period": "1m", - "Limit": 20 - }, - { - "Endpoint": "*/api/*", - "Period": "1s", - "Limit": 3 - }, - { - "Endpoint": "*/api/*", - "Period": "1m", - "Limit": 30 - }, - { - "Endpoint": "*/api/*", - "Period": "12h", - "Limit": 500 - } - ] - - }, - "ConsulSetting": { - "ServiceName": "BlogCoreService", - "ServiceIP": "localhost", - "ServicePort": "9291", - "ServiceHealthCheck": "/healthcheck", - "ConsulAddress": "http://localhost:8500" - }, - "PayInfo": { //建行聚合支付信息 - "MERCHANTID": "", //商户号 - "POSID": "", //柜台号 - "BRANCHID": "", //分行号 - "pubKey": "", //公钥 - "USER_ID": "", //操作员号 - "PASSWORD": "", //密码 - "OutAddress": "http://127.0.0.1:12345" //外联地址 - }, - "nacos": { - "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 - "DefaultTimeOut": 15000, // 默认超时时间 - "Namespace": "public", // 命名空间 - "ListenInterval": 10000, // 监听的频率 - "ServiceName": "blog.Core.Api", // 服务名 - "Port": "9291", // 服务端口号 - "RegisterEnabled": true // 是否直接注册nacos - }, - "LogFiedOutPutConfigs": { - "tcpAddressHost": "", // 输出elk的tcp连接地址 - "tcpAddressPort": 0, // 输出elk的tcp端口号 - "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 - { - "FiedName": "applicationName", - "FiedValue": "Blog.Core.Api" - } - ] - } } diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv index 2bb130a1..76c55a22 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Modules.tsv @@ -1535,5 +1535,49 @@ "ModifyBy": null, "ModifyTime": "\/Date(1546272000000+0800)\/", "Id": 72 + }, + { + "IsDeleted": 0, + "ParentId": null, + "Name": "任务日志查询", + "LinkUrl": "\/api\/TasksQz\/GetTaskLogs", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 23, + "CreateBy": "后台总管理员", + "CreateTime": "\/Date(1546272000000+0800)\/", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "\/Date(1546272000000+0800)\/", + "Id": 73 + }, + { + "IsDeleted": 0, + "ParentId": null, + "Name": "任务概况", + "LinkUrl": "\/api\/TasksQz\/GetTaskOverview", + "Area": null, + "Controller": null, + "Action": null, + "Icon": null, + "Code": null, + "OrderSort": 0, + "Description": null, + "IsMenu": 0, + "Enabled": 1, + "CreateId": 23, + "CreateBy": "后台总管理员", + "CreateTime": "\/Date(1546272000000+0800)\/", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "\/Date(1546272000000+0800)\/", + "Id": 74 } ] diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv index 52493a12..d1a5c3f8 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv @@ -2571,5 +2571,47 @@ "IsDeleted": 0, "Id": 122, "IsHide": 0 + }, + { + "Code": " ", + "Name": "日志查询", + "IsButton": 1, + "Pid": 76, + "Mid": 73, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 23, + "Func": "handleLog", + "CreateBy": "后台总管理员", + "CreateTime": "\/Date(1546272000000+0800)\/", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "\/Date(1546272000000+0800)\/", + "IsDeleted": 0, + "Id": 123, + "IsHide": 0 + }, + { + "Code": " ", + "Name": "任务概况", + "IsButton": 1, + "Pid": 76, + "Mid": 74, + "OrderSort": 0, + "Icon": null, + "Description": null, + "Enabled": 1, + "CreateId": 23, + "Func": "handleOverview", + "CreateBy": "后台总管理员", + "CreateTime": "\/Date(1546272000000+0800)\/", + "ModifyId": null, + "ModifyBy": null, + "ModifyTime": "\/Date(1546272000000+0800)\/", + "IsDeleted": 0, + "Id": 124, + "IsHide": 0 } ] diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 36bf184c..7b594109 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -313,6 +313,19 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) #endregion + #region TasksLog + + if (!await myContext.Db.Queryable().AnyAsync()) + { + Console.WriteLine("Table:TasksLog created success!"); + } + else + { + Console.WriteLine("Table:TasksLog already exists..."); + } + + #endregion + #region Department if (!await myContext.Db.Queryable().AnyAsync()) diff --git a/Blog.Core.IServices/ITasksLogServices.cs b/Blog.Core.IServices/ITasksLogServices.cs new file mode 100644 index 00000000..fb15c8dd --- /dev/null +++ b/Blog.Core.IServices/ITasksLogServices.cs @@ -0,0 +1,19 @@ + +using System; +using System.Threading.Tasks; +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; + +namespace Blog.Core.IServices +{ + /// + /// ITasksLogServices + /// + public interface ITasksLogServices :IBaseServices + { + public Task> GetTaskLogs(int jobId, int page, int intPageSize,DateTime? runTime,DateTime? endTime); + public Task GetTaskOverview(int jobId, DateTime? runTime, DateTime? endTime, string type); + } +} + \ No newline at end of file diff --git a/Blog.Core.Model/Models/TasksLog.cs b/Blog.Core.Model/Models/TasksLog.cs new file mode 100644 index 00000000..b4317c95 --- /dev/null +++ b/Blog.Core.Model/Models/TasksLog.cs @@ -0,0 +1,87 @@ +using SqlSugar; +using System; + +namespace Blog.Core.Model.Models +{ + /// + /// 任务日志表 + /// + public class TasksLog : RootEntityTkey + { + /// + /// 任务ID + /// + public int JobId { get; set; } + /// + /// 任务耗时 + /// + public double TotalTime { get; set; } + /// + /// 执行结果(0-失败 1-成功) + /// + public bool RunResult { get; set; } + /// + /// 运行时间 + /// + public DateTime RunTime { get; set; } + /// + /// 结束时间 + /// + public DateTime EndTime { get; set; } + /// + /// 执行参数 + /// + [SugarColumn(Length = 500, IsNullable = true)] + public string RunPars { get; set; } + /// + /// 异常信息 + /// + [SugarColumn(Length = 500, IsNullable = true)] + public string ErrMessage { get; set; } + /// + /// 异常堆栈 + /// + [SugarColumn(Length = 2000, IsNullable = true)] + public string ErrStackTrace { get; set; } + /// + /// 创建ID + /// + [SugarColumn(IsNullable = true)] + public int? CreateId { get; set; } + /// + /// 创建者 + /// + [SugarColumn(Length = 50, IsNullable = true)] + public string CreateBy { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime CreateTime { get; set; } = DateTime.Now; + /// + /// 修改ID + /// + [SugarColumn(IsNullable = true)] + public int? ModifyId { get; set; } + /// + /// 修改者 + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string ModifyBy { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? ModifyTime { get; set; } = DateTime.Now; + /// + /// 任务名称 + /// + [SugarColumn(IsIgnore = true)] + public string Name { get; set; } + /// + /// 任务分组 + /// + [SugarColumn(IsIgnore = true)] + public string JobGroup { get; set; } + } +} diff --git a/Blog.Core.Model/Models/TasksQz.cs b/Blog.Core.Model/Models/TasksQz.cs index 5c812f79..1c07b60e 100644 --- a/Blog.Core.Model/Models/TasksQz.cs +++ b/Blog.Core.Model/Models/TasksQz.cs @@ -65,6 +65,10 @@ public class TasksQz : RootEntityTkey /// public int CycleRunTimes { get; set; } /// + /// 已循环次数 + /// + public int CycleHasRunTimes { get; set; } + /// /// 是否启动 /// public bool IsStart { get; set; } = false; diff --git a/Blog.Core.Services/TasksLogServices.cs b/Blog.Core.Services/TasksLogServices.cs new file mode 100644 index 00000000..eac9a739 --- /dev/null +++ b/Blog.Core.Services/TasksLogServices.cs @@ -0,0 +1,133 @@ +using System.Linq.Expressions; +using System; +using System.Threading.Tasks; +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Blog.Core.Services.BASE; +using Blog.Core.Common.Extensions; +using System.Drawing.Printing; +using SqlSugar; +using Blog.Core.Model; +using System.Collections.Generic; +using System.Linq; +using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; + +namespace Blog.Core.Services +{ + public partial class TasksLogServices : BaseServices, ITasksLogServices + { + public async Task> GetTaskLogs(int jobId, int page, int intPageSize, DateTime? runTime, DateTime? endTime) + { + RefAsync totalCount = 0; + Expression> whereExpression = log => true; + if (jobId > 0) whereExpression = whereExpression.And(log => log.JobId == jobId); + var data = await this.Db.Queryable() + .LeftJoin((log, qz) => log.JobId == qz.Id) + .OrderByDescending((log) => log.RunTime) + .WhereIF(jobId > 0, (log) => log.JobId == jobId) + .WhereIF(runTime != null, (log) => log.RunTime >= runTime.Value) + .WhereIF(endTime != null, (log) => log.RunTime <= endTime.Value) + .Select((log, qz) => new TasksLog + { + RunPars = log.RunPars, + RunResult = log.RunResult, + RunTime = log.RunTime, + EndTime = log.EndTime, + ErrMessage = log.ErrMessage, + ErrStackTrace = log.ErrStackTrace, + TotalTime = log.TotalTime, + Name = qz.Name, + JobGroup = qz.JobGroup + + }) + .ToPageListAsync(page, intPageSize, totalCount); + return new PageModel(page, totalCount, intPageSize, data); + } + public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime? endTime,string type) + { + + //按年 + if ("year".Equals(type)) + { + + var days = endTime.Value.Year - runTime.Value.Year; + var dayArray = new List(); + while (days >= 0) + { + dayArray.Add(new DateTime(runTime.Value.Year + days,1,1)); + days--; + } + var queryableLeft = this.Db.Reportable(dayArray).ToQueryable(); + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime.Year >= runTime.Value.Year && x.RunTime.Year <= endTime.Value.Year); ; ; //声名表 + + var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left, + (x1, x2) => x1.ColumnName.Year == x2.RunTime.Year) + .GroupBy((x1, x2) => x1.ColumnName) + .Select((x1, x2) => new + { + 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), + date = x1.ColumnName.Year.ToString()+"年" + }).ToList().OrderBy(t => t.date); + return list; + }else if ("month".Equals(type)) + { + //按月 + var queryableLeft = this.Db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable(); //生成月份 //ReportableDateType.MonthsInLast1yea 表式近一年月份 并且queryable之后还能在where过滤 + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime.Year == runTime.Value.Year); //声名表 + + //月份和表JOIN + var list = queryableLeft + .LeftJoin(queryableRight, (x1, x2) => x2.RunTime.ToString("MM月") == x1.ColumnName.ToString("MM月")) + + .GroupBy((x1, x2) => x1.ColumnName) + .Select((x1, x2) => new + { + //null的数据要为0所以不能用count + 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), + date = x1.ColumnName.ToString("MM月") + } + ).ToList().OrderBy(t => t.date); + return list; + }else if ("day".Equals(type)) + { + //按日 + var time = runTime.Value; + var days = DateTime.DaysInMonth(time.Year, time.Month); + var dayArray = Enumerable.Range(1, days).Select(it => Convert.ToDateTime(time.ToString("yyyy-MM-" + it))).ToList();//转成时间数组 + var queryableLeft = this.Db.Reportable(dayArray).ToQueryable(); + var star = Convert.ToDateTime(runTime.Value.ToString("yyyy-MM-01 00:00:00")); + var end = Convert.ToDateTime(runTime.Value.ToString($"yyyy-MM-{days} 23:59:59")); + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime >= star && x.RunTime <= end); ;; //声名表 + + var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left, + (x1, x2) => x1.ColumnName.Date == x2.RunTime.Date) + .GroupBy((x1, x2) => x1.ColumnName) + .Select((x1, x2) => new + { + 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), + date = x1.ColumnName.Day + }).ToList().OrderBy(t => t.date); + return list; + }else if ("hour".Equals(type)) + { + //按小时 + var time = runTime.Value; + var days = 24; + var dayArray = Enumerable.Range(0, days).Select(it => Convert.ToDateTime(time.ToString($"yyyy-MM-dd {it.ToString().PadLeft(2, '0')}:00:00"))).ToList();//转成时间数组 + var queryableLeft = this.Db.Reportable(dayArray).ToQueryable(); + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime >= runTime.Value.Date && x.RunTime<= runTime.Value.Date.AddDays(1).AddMilliseconds(-1)); //声名表 + + var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left, + (x1, x2) => x1.ColumnName.Hour == x2.RunTime.Hour) + .GroupBy((x1, x2) => x1.ColumnName) + .Select((x1, x2) => new + { + 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), + date = x1.ColumnName.Hour + }).ToList().OrderBy(t => t.date); + return list; + } + return null; + } + } +} diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs b/Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs index 4a71fbf5..b4486dfc 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs @@ -1,5 +1,6 @@ using Blog.Core.Common.Helper; using Blog.Core.IServices; +using Blog.Core.Model.Models; using Quartz; using System; using System.Diagnostics; @@ -10,6 +11,12 @@ namespace Blog.Core.Tasks public class JobBase { public ITasksQzServices _tasksQzServices; + public ITasksLogServices _tasksLogServices; + public JobBase(ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + { + _tasksQzServices = tasksQzServices; + _tasksLogServices = tasksLogServices; + } /// /// 执行指定任务 /// @@ -17,40 +24,50 @@ public class JobBase /// public async Task ExecuteJob(IJobExecutionContext context, Func func) { - //记录Job时间 - Stopwatch stopwatch = new Stopwatch(); + //记录Job + TasksLog tasksLog = new TasksLog(); //JOBID int jobid = context.JobDetail.Key.Name.ObjToInt(); //JOB组名 string groupName = context.JobDetail.Key.Group; //日志 - string jobHistory = $"【{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}】【执行开始】【Id:{jobid},组别:{groupName}】"; - //耗时 - double taskSeconds = 0; + tasksLog.JobId = jobid; + tasksLog.RunTime = DateTime.Now; + string jobHistory = $"【{tasksLog.RunTime.ToString("yyyy-MM-dd HH:mm:ss")}】【执行开始】【Id:{jobid},组别:{groupName}】"; try { - stopwatch.Start(); await func();//执行任务 - stopwatch.Stop(); - jobHistory += $",【{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}】【执行成功】"; + tasksLog.EndTime = DateTime.Now; + tasksLog.RunResult = true; + jobHistory += $",【{tasksLog.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}】【执行成功】"; + + JobDataMap jobPars = context.JobDetail.JobDataMap; + tasksLog.RunPars = jobPars.GetString("JobParam"); } catch (Exception ex) { - JobExecutionException e2 = new JobExecutionException(ex); + tasksLog.EndTime = DateTime.Now; + tasksLog.RunResult = false; + //JobExecutionException e2 = new JobExecutionException(ex); //true 是立即重新执行任务 - e2.RefireImmediately = true; - jobHistory += $",【{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}】【执行失败:{ex.Message}】"; + //e2.RefireImmediately = true; + tasksLog.ErrMessage = ex.Message; + tasksLog.ErrStackTrace = ex.StackTrace; + jobHistory += $",【{tasksLog.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}】【执行失败:{ex.Message}】"; } finally { - taskSeconds = Math.Round(stopwatch.Elapsed.TotalSeconds, 3); - jobHistory += $",【{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}】【执行结束】(耗时:{taskSeconds}秒)"; + tasksLog.TotalTime = Math.Round((tasksLog.EndTime - tasksLog.RunTime).TotalSeconds,3); + jobHistory += $"(耗时:{tasksLog.TotalTime}秒)"; if (_tasksQzServices != null) { var model = await _tasksQzServices.QueryById(jobid); if (model != null) { + if(_tasksLogServices != null) await _tasksLogServices.Add(tasksLog); model.RunTimes += 1; + if (model.TriggerType == 0) model.CycleHasRunTimes += 1; + if (model.TriggerType == 0 && model.CycleRunTimes != 0 && model.CycleHasRunTimes >= model.CycleRunTimes) model.IsStart = false;//循环完善,当循环任务完成后,停止该任务,防止下次启动再次执行 var separator = "
    "; // 这里注意数据库字段的长度问题,超过限制,会造成数据库remark不更新问题。 model.Remark = diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index 743180c3..1dcc57ed 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -21,7 +21,8 @@ public class Job_AccessTrendLog_Quartz : JobBase, IJob private readonly IAccessTrendLogServices _accessTrendLogServices; private readonly IWebHostEnvironment _environment; - public Job_AccessTrendLog_Quartz(IAccessTrendLogServices accessTrendLogServices, ITasksQzServices tasksQzServices, IWebHostEnvironment environment) + public Job_AccessTrendLog_Quartz(IAccessTrendLogServices accessTrendLogServices, IWebHostEnvironment environment, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + : base(tasksQzServices, tasksLogServices) { _accessTrendLogServices = accessTrendLogServices; _environment = environment; diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs index 41310533..f116fe05 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs @@ -12,10 +12,10 @@ public class Job_Blogs_Quartz : JobBase, IJob { private readonly IBlogArticleServices _blogArticleServices; - public Job_Blogs_Quartz(IBlogArticleServices blogArticleServices, ITasksQzServices tasksQzServices) + public Job_Blogs_Quartz(IBlogArticleServices blogArticleServices, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + : base(tasksQzServices, tasksLogServices) { _blogArticleServices = blogArticleServices; - _tasksQzServices = tasksQzServices; } public async Task Execute(IJobExecutionContext context) { diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs index 8e9b3847..18c4c298 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs @@ -20,11 +20,11 @@ public class Job_OperateLog_Quartz : JobBase, IJob private readonly IOperateLogServices _operateLogServices; private readonly IWebHostEnvironment _environment; - public Job_OperateLog_Quartz(IOperateLogServices operateLogServices, ITasksQzServices tasksQzServices, IWebHostEnvironment environment) + public Job_OperateLog_Quartz(IOperateLogServices operateLogServices,IWebHostEnvironment environment, ITasksQzServices tasksQzServices,ITasksLogServices tasksLogServices) + :base(tasksQzServices, tasksLogServices) { _operateLogServices = operateLogServices; - _environment = environment; - _tasksQzServices = tasksQzServices; + _environment = environment; } public async Task Execute(IJobExecutionContext context) { diff --git a/Blog.Core.Tasks/QuartzNet/SchedulerCenterServer.cs b/Blog.Core.Tasks/QuartzNet/SchedulerCenterServer.cs index 8c21115c..474a2a9a 100644 --- a/Blog.Core.Tasks/QuartzNet/SchedulerCenterServer.cs +++ b/Blog.Core.Tasks/QuartzNet/SchedulerCenterServer.cs @@ -125,6 +125,12 @@ public async Task> AddScheduleJobAsync(TasksQz tasksQz) result.msg = $"该任务计划已经在执行:【{tasksQz.Name}】,请勿重复启动!"; return result; } + if(tasksQz.TriggerType == 0 && tasksQz.CycleRunTimes != 0 && tasksQz.CycleHasRunTimes>=tasksQz.CycleRunTimes) + { + result.success = false; + result.msg = $"该任务计划已完成:【{tasksQz.Name}】,无需重复启动,如需启动请修改已循环次数再提交"; + return result; + } #region 设置开始时间和结束时间 if (tasksQz.BeginTime == null) From 2d8d99e8d3a37084d0fb52c036ee4810d6014bce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Mar 2023 00:12:57 +0000 Subject: [PATCH 229/382] Bump MongoDB.Driver from 2.17.1 to 2.19.0 in /Blog.Core.Repository Bumps [MongoDB.Driver](https://github.com/mongodb/mongo-csharp-driver) from 2.17.1 to 2.19.0. - [Release notes](https://github.com/mongodb/mongo-csharp-driver/releases) - [Commits](https://github.com/mongodb/mongo-csharp-driver/compare/v2.17.1...v2.19.0) --- updated-dependencies: - dependency-name: MongoDB.Driver dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Blog.Core.Repository/Blog.Core.Repository.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Repository/Blog.Core.Repository.csproj b/Blog.Core.Repository/Blog.Core.Repository.csproj index 5c9764b0..19fb6d4c 100644 --- a/Blog.Core.Repository/Blog.Core.Repository.csproj +++ b/Blog.Core.Repository/Blog.Core.Repository.csproj @@ -8,7 +8,7 @@ - + From ff238ed1e71b396fb54c03377b774064d6404a21 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 7 Mar 2023 21:21:01 +0800 Subject: [PATCH 230/382] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9b88b0a0..29d427ec 100644 --- a/README.md +++ b/README.md @@ -235,9 +235,9 @@ Contributions of any kind are welcome! ## 售后服务与支持 -鼓励作者,简单打赏,入微信群,随时随地解答我框架中(NetCore、Vue、DDD、IdentityServer4等)的疑难杂症。 -注意主要是帮忙解决bug和思路,不会远程授课,但是可以适当发我代码,我帮忙调试, -打赏的时候,备注自己的微信号,我拉你进群,两天内没回应,QQ私聊我(3143422472); +鼓励作者,简单打赏~~ +打赏的时候,备注自己的微信号,加个微信,交个朋友,两天内没回应,QQ私聊我(3143422472); +目前精力有限,主要针对企业级用户答疑,或者购买授权版的个人用户。 [赞赏列表](http://apk.neters.club/.doc/Contribution/) From 225b86c0dba29bf13d285792425ea5c052dc0ca5 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Thu, 9 Mar 2023 23:16:34 +0800 Subject: [PATCH 231/382] Update Blog.Core.Repository.csproj --- Blog.Core.Repository/Blog.Core.Repository.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Repository/Blog.Core.Repository.csproj b/Blog.Core.Repository/Blog.Core.Repository.csproj index 19fb6d4c..df05250e 100644 --- a/Blog.Core.Repository/Blog.Core.Repository.csproj +++ b/Blog.Core.Repository/Blog.Core.Repository.csproj @@ -6,8 +6,8 @@ - - + + From 192bdbd59e8d42792ca6140e0f16f4d8ad636909 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 11 Mar 2023 10:14:42 +0800 Subject: [PATCH 232/382] Update ValuesController.cs --- Blog.Core.Api/Controllers/ValuesController.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 52eb0ea1..1347ca16 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -298,7 +298,6 @@ public object Post([FromBody] BlogArticle blogArticle, int id) /// /// [HttpPost] - [Route("TestPostPara")] [AllowAnonymous] public object TestPostPara(string name) { From d7190d677cfcf04f05e682deb63e51f9a678bc84 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 11 Mar 2023 11:07:20 +0800 Subject: [PATCH 233/382] feat: :+1: beautiful api --- Blog.Core.Api/Blog.Core.xml | 6 -- Blog.Core.Api/Controllers/BlogController.cs | 6 +- .../Controllers/DepartmentController.cs | 7 -- Blog.Core.Api/Controllers/ModuleController.cs | 5 +- .../Controllers/MonitorController.cs | 7 -- Blog.Core.Api/Controllers/NacosController.cs | 1 - Blog.Core.Api/Controllers/PayController.cs | 4 +- Blog.Core.Api/Controllers/RoleController.cs | 3 +- .../Controllers/TasksQzController.cs | 64 ++++++++----------- Blog.Core.Api/Controllers/TopicController.cs | 4 +- .../Controllers/TopicDetailController.cs | 5 +- .../Controllers/TransactionController.cs | 5 +- Blog.Core.Api/Controllers/UserController.cs | 7 +- .../Controllers/UserRoleController.cs | 3 +- .../Controllers/WeChatCompanyController.cs | 1 - .../Controllers/WeChatConfigController.cs | 1 - Blog.Core.Api/Controllers/WeChatController.cs | 5 +- .../Controllers/WeChatPushLogController.cs | 1 - .../Controllers/WeChatSubController.cs | 1 - Blog.Core.Services/TasksLogServices.cs | 30 +++++---- 20 files changed, 53 insertions(+), 113 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index af6321da..89cb3213 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -580,18 +580,12 @@ 获取任务运行日志 - - - 任务概况 - - - diff --git a/Blog.Core.Api/Controllers/BlogController.cs b/Blog.Core.Api/Controllers/BlogController.cs index 6525448e..83fad967 100644 --- a/Blog.Core.Api/Controllers/BlogController.cs +++ b/Blog.Core.Api/Controllers/BlogController.cs @@ -1,8 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Linq.Expressions; +using System.Linq.Expressions; using System.Text.RegularExpressions; -using System.Threading.Tasks; using Blog.Core.Common.Helper; using Blog.Core.IServices; using Blog.Core.Model; @@ -11,7 +8,6 @@ using Blog.Core.SwaggerHelper; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; using StackExchange.Profiling; using static Blog.Core.Extensions.CustomApiVersion; diff --git a/Blog.Core.Api/Controllers/DepartmentController.cs b/Blog.Core.Api/Controllers/DepartmentController.cs index 1674883f..bca7bf6d 100644 --- a/Blog.Core.Api/Controllers/DepartmentController.cs +++ b/Blog.Core.Api/Controllers/DepartmentController.cs @@ -4,17 +4,10 @@ using Blog.Core.Model; using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Hosting; using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; using System.Linq.Expressions; using System.Text; -using System.Threading.Tasks; namespace Blog.Core.Api.Controllers { diff --git a/Blog.Core.Api/Controllers/ModuleController.cs b/Blog.Core.Api/Controllers/ModuleController.cs index 334a8ea4..2da284ba 100644 --- a/Blog.Core.Api/Controllers/ModuleController.cs +++ b/Blog.Core.Api/Controllers/ModuleController.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq.Expressions; -using System.Threading.Tasks; +using System.Linq.Expressions; using Blog.Core.Common.HttpContextUser; using Blog.Core.IServices; using Blog.Core.Model; diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index c0dbed52..77b4e5bf 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -6,19 +6,12 @@ using Blog.Core.Model; using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.SignalR; -using Microsoft.Extensions.Logging; using Newtonsoft.Json; -using System; -using System.Collections.Generic; using System.Diagnostics; -using System.IO; -using System.Linq; using System.Runtime.InteropServices; using System.Text; -using System.Threading.Tasks; using Blog.Core.Extensions.Middlewares; namespace Blog.Core.Controllers diff --git a/Blog.Core.Api/Controllers/NacosController.cs b/Blog.Core.Api/Controllers/NacosController.cs index a8701b39..e5223851 100644 --- a/Blog.Core.Api/Controllers/NacosController.cs +++ b/Blog.Core.Api/Controllers/NacosController.cs @@ -4,7 +4,6 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Nacos.V2; -using System.Threading.Tasks; namespace Blog.Core.Api.Controllers { diff --git a/Blog.Core.Api/Controllers/PayController.cs b/Blog.Core.Api/Controllers/PayController.cs index 0cbe0541..6c05c249 100644 --- a/Blog.Core.Api/Controllers/PayController.cs +++ b/Blog.Core.Api/Controllers/PayController.cs @@ -1,10 +1,8 @@ -using System.Threading.Tasks; -using Blog.Core.IServices; +using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; namespace Blog.Core.Controllers { diff --git a/Blog.Core.Api/Controllers/RoleController.cs b/Blog.Core.Api/Controllers/RoleController.cs index 36df73a4..c96502c8 100644 --- a/Blog.Core.Api/Controllers/RoleController.cs +++ b/Blog.Core.Api/Controllers/RoleController.cs @@ -1,5 +1,4 @@ -using System.Threading.Tasks; -using Blog.Core.Common.HttpContextUser; +using Blog.Core.Common.HttpContextUser; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Controllers/TasksQzController.cs b/Blog.Core.Api/Controllers/TasksQzController.cs index e5c866c3..ca9d37bc 100644 --- a/Blog.Core.Api/Controllers/TasksQzController.cs +++ b/Blog.Core.Api/Controllers/TasksQzController.cs @@ -1,17 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; +using System.Linq.Expressions; using System.Reflection; -using System.Threading.Tasks; -using Blog.Core.Common.Extensions; -using Blog.Core.Common.WebApiClients.HttpApis; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; using Blog.Core.Model.ViewModels; using Blog.Core.Repository.UnitOfWorks; -using Blog.Core.Services; using Blog.Core.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -29,10 +22,10 @@ public class TasksQzController : ControllerBase private readonly ISchedulerCenter _schedulerCenter; private readonly IUnitOfWorkManage _unitOfWorkManage; - public TasksQzController(ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, IUnitOfWorkManage unitOfWorkManage,ITasksLogServices tasksLogServices) + public TasksQzController(ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, IUnitOfWorkManage unitOfWorkManage, ITasksLogServices tasksLogServices) { _unitOfWorkManage = unitOfWorkManage; - _tasksQzServices = tasksQzServices; + _tasksQzServices = tasksQzServices; _schedulerCenter = schedulerCenter; _tasksLogServices = tasksLogServices; } @@ -63,7 +56,7 @@ public async Task>> Get(int page = 1, string key item.Triggers = await _schedulerCenter.GetTaskStaus(item); } } - return MessageModel>.Message(data.dataCount >= 0, "获取成功", data); + return MessageModel>.Message(data.dataCount >= 0, "获取成功", data); } /// @@ -91,32 +84,33 @@ public async Task> Post([FromBody] TasksQz tasksQz) var ResuleModel = await _schedulerCenter.AddScheduleJobAsync(tasksQz); data.success = ResuleModel.success; if (ResuleModel.success) - { + { data.msg = $"{data.msg}=>启动成功=>{ResuleModel.msg}"; } else - { + { data.msg = $"{data.msg}=>启动失败=>{ResuleModel.msg}"; } } } else - { + { data.msg = "添加失败"; - } + } } catch (Exception) { throw; } finally - { if(data.success) + { + if (data.success) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); } - return data; + return data; } @@ -140,7 +134,7 @@ public async Task> Put([FromBody] TasksQz tasksQz) data.msg = "修改成功"; data.response = tasksQz?.Id.ObjToString(); if (tasksQz.IsStart) - { + { var ResuleModelStop = await _schedulerCenter.StopScheduleJobAsync(tasksQz); data.msg = $"{data.msg}=>停止:{ResuleModelStop.msg}"; var ResuleModelStar = await _schedulerCenter.AddScheduleJobAsync(tasksQz); @@ -168,7 +162,7 @@ public async Task> Put([FromBody] TasksQz tasksQz) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } return data; } @@ -212,7 +206,7 @@ public async Task> Delete(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -234,7 +228,7 @@ public async Task> StartJob(int jobId) var model = await _tasksQzServices.QueryById(jobId); if (model != null) { - _unitOfWorkManage.BeginTran(); + _unitOfWorkManage.BeginTran(); try { model.IsStart = true; @@ -270,7 +264,7 @@ public async Task> StartJob(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -326,10 +320,10 @@ public async Task> StopJob(int jobId) [HttpGet] public async Task> PauseJob(int jobId) { - var data = new MessageModel(); + var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); if (model != null) - { + { _unitOfWorkManage.BeginTran(); try { @@ -364,7 +358,7 @@ public async Task> PauseJob(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -384,7 +378,7 @@ public async Task> ResumeJob(int jobId) var model = await _tasksQzServices.QueryById(jobId); if (model != null) - { + { _unitOfWorkManage.BeginTran(); try { @@ -420,7 +414,7 @@ public async Task> ResumeJob(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -480,7 +474,7 @@ public async Task> ReCovery(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -493,7 +487,7 @@ public async Task> ReCovery(int jobId) /// 获取任务命名空间 /// /// - [HttpGet] + [HttpGet] public MessageModel> GetTaskNameSpace() { var baseType = typeof(IJob); @@ -506,7 +500,7 @@ public MessageModel> GetTaskNameSpace() var implementTypes = types.Where(x => x.IsClass).Select(item => new QuartzReflectionViewModel { nameSpace = item.Namespace, nameClass = item.Name, remark = "" }).ToList(); return MessageModel>.Success("获取成功", implementTypes); } - + /// /// 立即执行任务 /// @@ -531,12 +525,9 @@ public async Task> ExecuteJob(int jobId) /// /// 获取任务运行日志 /// - /// - /// - /// /// [HttpGet] - public async Task>> GetTaskLogs(int jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart =null, DateTime? runTimeEnd = null) + public async Task>> GetTaskLogs(int jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null) { var model = await _tasksLogServices.GetTaskLogs(jobId, page, pageSize, runTimeStart, runTimeEnd); return MessageModel>.Message(model.dataCount >= 0, "获取成功", model); @@ -544,12 +535,9 @@ public async Task>> GetTaskLogs(int jobId, int /// /// 任务概况 /// - /// - /// - /// /// [HttpGet] - public async Task> GetTaskOverview(int jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null, string type ="month") + public async Task> GetTaskOverview(int jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null, string type = "month") { var model = await _tasksLogServices.GetTaskOverview(jobId, runTimeStart, runTimeEnd, type); return MessageModel.Message(true, "获取成功", model); diff --git a/Blog.Core.Api/Controllers/TopicController.cs b/Blog.Core.Api/Controllers/TopicController.cs index 1fe2d4a3..308ad082 100644 --- a/Blog.Core.Api/Controllers/TopicController.cs +++ b/Blog.Core.Api/Controllers/TopicController.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Blog.Core.IServices; +using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; diff --git a/Blog.Core.Api/Controllers/TopicDetailController.cs b/Blog.Core.Api/Controllers/TopicDetailController.cs index 264fe2df..55af1a75 100644 --- a/Blog.Core.Api/Controllers/TopicDetailController.cs +++ b/Blog.Core.Api/Controllers/TopicDetailController.cs @@ -1,7 +1,4 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using Blog.Core.Common.Helper; +using Blog.Core.Common.Helper; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Controllers/TransactionController.cs b/Blog.Core.Api/Controllers/TransactionController.cs index dd6b0384..67ab576e 100644 --- a/Blog.Core.Api/Controllers/TransactionController.cs +++ b/Blog.Core.Api/Controllers/TransactionController.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Blog.Core.IServices; +using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; using Blog.Core.Repository.UnitOfWorks; diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 6a2a18fa..43f7f610 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using AutoMapper; +using AutoMapper; using Blog.Core.AuthHelper.OverWrite; using Blog.Core.Common.Helper; using Blog.Core.Common.HttpContextUser; @@ -13,7 +9,6 @@ using Blog.Core.Repository.UnitOfWorks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; namespace Blog.Core.Controllers { diff --git a/Blog.Core.Api/Controllers/UserRoleController.cs b/Blog.Core.Api/Controllers/UserRoleController.cs index d14d6a73..c21ec6f4 100644 --- a/Blog.Core.Api/Controllers/UserRoleController.cs +++ b/Blog.Core.Api/Controllers/UserRoleController.cs @@ -1,5 +1,4 @@ -using System.Threading.Tasks; -using AutoMapper; +using AutoMapper; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Controllers/WeChatCompanyController.cs b/Blog.Core.Api/Controllers/WeChatCompanyController.cs index 4fa6eea5..dc12930b 100644 --- a/Blog.Core.Api/Controllers/WeChatCompanyController.cs +++ b/Blog.Core.Api/Controllers/WeChatCompanyController.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Controllers/WeChatConfigController.cs b/Blog.Core.Api/Controllers/WeChatConfigController.cs index c597cb3f..1f3b705d 100644 --- a/Blog.Core.Api/Controllers/WeChatConfigController.cs +++ b/Blog.Core.Api/Controllers/WeChatConfigController.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Controllers/WeChatController.cs b/Blog.Core.Api/Controllers/WeChatController.cs index 4c4877f6..9927eb78 100644 --- a/Blog.Core.Api/Controllers/WeChatController.cs +++ b/Blog.Core.Api/Controllers/WeChatController.cs @@ -1,11 +1,8 @@ -using System.IO; -using System.Threading.Tasks; -using Blog.Core.IServices; +using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; namespace Blog.Core.Controllers { diff --git a/Blog.Core.Api/Controllers/WeChatPushLogController.cs b/Blog.Core.Api/Controllers/WeChatPushLogController.cs index 1fe1603d..af168091 100644 --- a/Blog.Core.Api/Controllers/WeChatPushLogController.cs +++ b/Blog.Core.Api/Controllers/WeChatPushLogController.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Controllers/WeChatSubController.cs b/Blog.Core.Api/Controllers/WeChatSubController.cs index bd8d1759..94f982d2 100644 --- a/Blog.Core.Api/Controllers/WeChatSubController.cs +++ b/Blog.Core.Api/Controllers/WeChatSubController.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Services/TasksLogServices.cs b/Blog.Core.Services/TasksLogServices.cs index eac9a739..49393cd4 100644 --- a/Blog.Core.Services/TasksLogServices.cs +++ b/Blog.Core.Services/TasksLogServices.cs @@ -5,12 +5,10 @@ using Blog.Core.Model.Models; using Blog.Core.Services.BASE; using Blog.Core.Common.Extensions; -using System.Drawing.Printing; using SqlSugar; using Blog.Core.Model; using System.Collections.Generic; using System.Linq; -using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; namespace Blog.Core.Services { @@ -43,9 +41,8 @@ public async Task> GetTaskLogs(int jobId, int page, int intP .ToPageListAsync(page, intPageSize, totalCount); return new PageModel(page, totalCount, intPageSize, data); } - public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime? endTime,string type) + public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime? endTime, string type) { - //按年 if ("year".Equals(type)) { @@ -54,7 +51,7 @@ public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime var dayArray = new List(); while (days >= 0) { - dayArray.Add(new DateTime(runTime.Value.Year + days,1,1)); + dayArray.Add(new DateTime(runTime.Value.Year + days, 1, 1)); days--; } var queryableLeft = this.Db.Reportable(dayArray).ToQueryable(); @@ -66,10 +63,11 @@ public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime .Select((x1, x2) => new { 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), - date = x1.ColumnName.Year.ToString()+"年" + date = x1.ColumnName.Year.ToString() + "年" }).ToList().OrderBy(t => t.date); return list; - }else if ("month".Equals(type)) + } + else if ("month".Equals(type)) { //按月 var queryableLeft = this.Db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable(); //生成月份 //ReportableDateType.MonthsInLast1yea 表式近一年月份 并且queryable之后还能在where过滤 @@ -78,7 +76,7 @@ public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime //月份和表JOIN var list = queryableLeft .LeftJoin(queryableRight, (x1, x2) => x2.RunTime.ToString("MM月") == x1.ColumnName.ToString("MM月")) - + .GroupBy((x1, x2) => x1.ColumnName) .Select((x1, x2) => new { @@ -87,8 +85,10 @@ public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime date = x1.ColumnName.ToString("MM月") } ).ToList().OrderBy(t => t.date); + await Task.CompletedTask; return list; - }else if ("day".Equals(type)) + } + else if ("day".Equals(type)) { //按日 var time = runTime.Value; @@ -97,7 +97,7 @@ public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime var queryableLeft = this.Db.Reportable(dayArray).ToQueryable(); var star = Convert.ToDateTime(runTime.Value.ToString("yyyy-MM-01 00:00:00")); var end = Convert.ToDateTime(runTime.Value.ToString($"yyyy-MM-{days} 23:59:59")); - var queryableRight = this.Db.Queryable().Where((x) => x.RunTime >= star && x.RunTime <= end); ;; //声名表 + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime >= star && x.RunTime <= end); ; ; //声名表 var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left, (x1, x2) => x1.ColumnName.Date == x2.RunTime.Date) @@ -107,26 +107,30 @@ public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), date = x1.ColumnName.Day }).ToList().OrderBy(t => t.date); + await Task.CompletedTask; return list; - }else if ("hour".Equals(type)) + } + else if ("hour".Equals(type)) { //按小时 var time = runTime.Value; var days = 24; var dayArray = Enumerable.Range(0, days).Select(it => Convert.ToDateTime(time.ToString($"yyyy-MM-dd {it.ToString().PadLeft(2, '0')}:00:00"))).ToList();//转成时间数组 var queryableLeft = this.Db.Reportable(dayArray).ToQueryable(); - var queryableRight = this.Db.Queryable().Where((x) => x.RunTime >= runTime.Value.Date && x.RunTime<= runTime.Value.Date.AddDays(1).AddMilliseconds(-1)); //声名表 + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime >= runTime.Value.Date && x.RunTime <= runTime.Value.Date.AddDays(1).AddMilliseconds(-1)); //声名表 var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left, - (x1, x2) => x1.ColumnName.Hour == x2.RunTime.Hour) + (x1, x2) => x1.ColumnName.Hour == x2.RunTime.Hour) .GroupBy((x1, x2) => x1.ColumnName) .Select((x1, x2) => new { 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), date = x1.ColumnName.Hour }).ToList().OrderBy(t => t.date); + await Task.CompletedTask; return list; } + await Task.CompletedTask; return null; } } From d1288b103ecf582d5491712f63e5dbd8c05048dc Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Thu, 23 Mar 2023 16:39:57 +0800 Subject: [PATCH 234/382] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 29d427ec..ee36dc2c 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,8 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x #### 框架模块: - [x] 采用`仓储+服务+接口`的形式封装框架; -- [x] 异步 async/await 开发; +- [x] 自定义项目模板 `CreateYourProject.bat` ,可以一键生成自己的项目;🎶 +- [x] 异步 async/await 开发; - [x] 接入国产数据库ORM组件 —— SqlSugar,封装数据库操作,支持级联操作; - [x] 支持自由切换多种数据库,MySql/SqlServer/Sqlite/Oracle/Postgresql/达梦/人大金仓; - [x] 实现项目启动,自动生成种子数据 ✨; From 798a7f64228960d181fb296aace484a915a2b919 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Fri, 24 Mar 2023 21:24:24 +0800 Subject: [PATCH 235/382] =?UTF-8?q?=E8=AE=A2=E9=98=85=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/TrojanController.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Controllers/TrojanController.cs b/Blog.Core.Api/Controllers/TrojanController.cs index 8ec64c8a..cdb010e8 100644 --- a/Blog.Core.Api/Controllers/TrojanController.cs +++ b/Blog.Core.Api/Controllers/TrojanController.cs @@ -15,6 +15,7 @@ using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; namespace Blog.Core.Controllers { @@ -357,9 +358,12 @@ public async Task>> AddUrlServers(TrojanUrlS private string GetSplice(TrojanServers item,string passwordshow) { if ("0".Equals(item.servertype)) - return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?allowinsecure=0&tfo=0&peer={(string.IsNullOrEmpty(item.serverpeer) ? item.serverpeer : item.serveraddress)}#{item.servername}"; + return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?allowinsecure=0&tfo=0&fp=chrome&peer={(string.IsNullOrEmpty(item.serverpeer) ? item.serverpeer : item.serveraddress)}#{item.servername}"; else if ("1".Equals(item.servertype)) - return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?wspath={item.serverpath}&ws=1&peer={(string.IsNullOrEmpty(item.serverpeer) ? item.serverpeer : item.serveraddress)}#{item.servername}"; + { + var sni = string.IsNullOrEmpty(item.serverpeer) ? item.serverpeer : item.serveraddress; + return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?wspath={item.serverpath}&ws=1&peer={sni}&path={item.serverpath}&host={sni}&fp=chrome&type=ws&sni={sni}#{item.servername}"; + } else return $"servertype:({item.servertype})错误"; } From 042c4a6c4497437ac09f93d4c9ec8bbb178a92c1 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Sun, 26 Mar 2023 15:36:45 +0800 Subject: [PATCH 236/382] fix bug --- Blog.Core.Api/Controllers/TrojanController.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Controllers/TrojanController.cs b/Blog.Core.Api/Controllers/TrojanController.cs index cdb010e8..d8d005dc 100644 --- a/Blog.Core.Api/Controllers/TrojanController.cs +++ b/Blog.Core.Api/Controllers/TrojanController.cs @@ -357,11 +357,12 @@ public async Task>> AddUrlServers(TrojanUrlS } private string GetSplice(TrojanServers item,string passwordshow) { + var sni = string.IsNullOrEmpty(item.serverpeer) ? item.serveraddress : item.serverpeer; if ("0".Equals(item.servertype)) - return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?allowinsecure=0&tfo=0&fp=chrome&peer={(string.IsNullOrEmpty(item.serverpeer) ? item.serverpeer : item.serveraddress)}#{item.servername}"; + return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?allowinsecure=0&tfo=0&fp=chrome&peer={sni}&host={sni}&sni={sni}#{item.servername}"; else if ("1".Equals(item.servertype)) { - var sni = string.IsNullOrEmpty(item.serverpeer) ? item.serverpeer : item.serveraddress; + return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?wspath={item.serverpath}&ws=1&peer={sni}&path={item.serverpath}&host={sni}&fp=chrome&type=ws&sni={sni}#{item.servername}"; } else From 67efee3ee1bd7d8337ee3e4af2667c1139e93b11 Mon Sep 17 00:00:00 2001 From: Nine Date: Thu, 30 Mar 2023 15:38:17 +0800 Subject: [PATCH 237/382] =?UTF-8?q?Sqlsugar=20=E5=88=86=E8=A1=A8=20CRUD=20?= =?UTF-8?q?demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.xml | 44 ++++ .../Controllers/SplitDemoController.cs | 199 ++++++++++++++++++ Blog.Core.Api/Program.cs | 4 + Blog.Core.Api/Startup.cs | 4 + Blog.Core.Common/Helper/NumberConverter.cs | 174 +++++++++++++++ Blog.Core.Common/Seed/DBSeed.cs | 2 +- Blog.Core.IServices/BASE/IBaseServices.cs | 10 +- Blog.Core.IServices/ISplitDemoServices.cs | 15 ++ Blog.Core.Model/Models/SplitDemo.cs | 27 +++ Blog.Core.Repository/BASE/BaseRepository.cs | 72 ++++++- Blog.Core.Repository/BASE/IBaseRepository.cs | 40 ++++ Blog.Core.Services/BASE/BaseServices.cs | 31 +++ Blog.Core.Services/SplitDemoServices.cs | 23 ++ 13 files changed, 642 insertions(+), 3 deletions(-) create mode 100644 Blog.Core.Api/Controllers/SplitDemoController.cs create mode 100644 Blog.Core.Common/Helper/NumberConverter.cs create mode 100644 Blog.Core.IServices/ISplitDemoServices.cs create mode 100644 Blog.Core.Model/Models/SplitDemo.cs create mode 100644 Blog.Core.Services/SplitDemoServices.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 89cb3213..9891d5d9 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1249,6 +1249,50 @@ + + + 分表demo + + + + + 分页获取数据 + + + + + + + + + + + 根据ID获取信息 + + + + + + + 添加一条测试数据 + + + + + + + 修改一条测试数据 + + + + + + + 根据id删除数据 + + + + 多租户-多库方案 测试 diff --git a/Blog.Core.Api/Controllers/SplitDemoController.cs b/Blog.Core.Api/Controllers/SplitDemoController.cs new file mode 100644 index 00000000..fb3c03c6 --- /dev/null +++ b/Blog.Core.Api/Controllers/SplitDemoController.cs @@ -0,0 +1,199 @@ +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Repository.UnitOfWorks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System.Linq.Expressions; + +namespace Blog.Core.Api.Controllers +{ + /// + /// 分表demo + /// + [Route("api/[controller]/[action]")] + [ApiController] + [Authorize(Permissions.Name)] + public class SplitDemoController : ControllerBase + { + readonly ISplitDemoServices splitDemoServices; + readonly IUnitOfWorkManage unitOfWorkManage; + public SplitDemoController(ISplitDemoServices _splitDemoServices, IUnitOfWorkManage _unitOfWorkManage) + { + splitDemoServices = _splitDemoServices; + unitOfWorkManage = _unitOfWorkManage; + } + + /// + /// 分页获取数据 + /// + /// + /// + /// + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task>> Get(DateTime beginTime, DateTime endTime, int page = 1, string key = "", int pageSize = 10) + { + if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) + { + key = ""; + } + Expression> whereExpression = a => (a.Name != null && a.Name.Contains(key)); + var data = await splitDemoServices.QueryPageSplit(whereExpression, beginTime, endTime, page, pageSize, " Id desc "); + return MessageModel>.Message(data.dataCount >= 0, "获取成功", data); + } + + /// + /// 根据ID获取信息 + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task> GetById(long id) + { + var data = new MessageModel(); + var model = await splitDemoServices.QueryByIdSplit(id); + if (model != null) + { + return MessageModel.Success("获取成功", model); + } + else + { + return MessageModel.Fail("获取失败"); + } + } + + /// + /// 添加一条测试数据 + /// + /// + /// + [HttpPost] + [AllowAnonymous] + public async Task> Post([FromBody] SplitDemo splitDemo) + { + var data = new MessageModel(); + unitOfWorkManage.BeginTran(); + var id = (await splitDemoServices.AddSplit(splitDemo)); + data.success = (id == null ? false : true); + try + { + if (data.success) + { + data.response = id.FirstOrDefault().ToString(); + data.msg = "添加成功"; + } + else + { + data.msg = "添加失败"; + } + } + catch (Exception) + { + throw; + } + finally + { + if (data.success) + unitOfWorkManage.CommitTran(); + else + unitOfWorkManage.RollbackTran(); + } + return data; + } + + /// + /// 修改一条测试数据 + /// + /// + /// + [HttpPut] + [AllowAnonymous] + public async Task> Put([FromBody] SplitDemo splitDemo) + { + var data = new MessageModel(); + if (splitDemo != null && splitDemo.Id > 0) + { + unitOfWorkManage.BeginTran(); + data.success = await splitDemoServices.UpdateSplit(splitDemo, splitDemo.CreateTime); + try + { + if (data.success) + { + data.msg = "修改成功"; + data.response = splitDemo?.Id.ObjToString(); + } + else + { + data.msg = "修改失败"; + } + } + catch (Exception) + { + throw; + } + finally + { + if (data.success) + unitOfWorkManage.CommitTran(); + else + unitOfWorkManage.RollbackTran(); + } + } + return data; + } + + /// + /// 根据id删除数据 + /// + /// + /// + [HttpDelete] + [AllowAnonymous] + public async Task> Delete(long id) + { + var data = new MessageModel(); + + var model = await splitDemoServices.QueryByIdSplit(id); + if (model != null) + { + unitOfWorkManage.BeginTran(); + data.success = await splitDemoServices.DeleteSplit(model,model.CreateTime); + try + { + data.response = id.ObjToString(); + if (data.success) + { + data.msg = "删除成功"; + } + else + { + data.msg = "删除失败"; + } + + } + catch (Exception) + { + throw; + } + finally + { + if (data.success) + unitOfWorkManage.CommitTran(); + else + unitOfWorkManage.RollbackTran(); + } + } + else + { + data.msg = "不存在"; + } + return data; + + } + } +} diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index f5223beb..2a75498e 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -7,6 +7,7 @@ using Blog.Core; using Blog.Core.Common; using Blog.Core.Common.Core; +using Blog.Core.Common.Helper; using Blog.Core.Common.LogHelper; using Blog.Core.Extensions; using Blog.Core.Extensions.Apollo; @@ -14,6 +15,7 @@ using Blog.Core.Filter; using Blog.Core.Hubs; using Blog.Core.IServices; +using Blog.Core.Model; using Blog.Core.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; @@ -111,6 +113,8 @@ //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; options.SerializerSettings.Converters.Add(new StringEnumConverter()); + //将long类型转为string + options.SerializerSettings.Converters.Add(new NumberConverter(NumberConverterShip.Int64)); }) //.AddFluentValidation(config => //{ diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index bc1630f1..4f99b621 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -3,6 +3,7 @@ using System.Text; using Autofac; using Blog.Core.Common; +using Blog.Core.Common.Helper; using Blog.Core.Common.LogHelper; using Blog.Core.Common.Seed; using Blog.Core.Extensions; @@ -10,6 +11,7 @@ using Blog.Core.Filter; using Blog.Core.Hubs; using Blog.Core.IServices; +using Blog.Core.Model; using Blog.Core.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; @@ -123,6 +125,8 @@ public void ConfigureServices(IServiceCollection services) options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; //添加Enum转string options.SerializerSettings.Converters.Add(new StringEnumConverter()); + //将long类型转为string + options.SerializerSettings.Converters.Add(new NumberConverter(NumberConverterShip.Int64)); }); services.Replace(ServiceDescriptor.Transient()); diff --git a/Blog.Core.Common/Helper/NumberConverter.cs b/Blog.Core.Common/Helper/NumberConverter.cs new file mode 100644 index 00000000..27890faf --- /dev/null +++ b/Blog.Core.Common/Helper/NumberConverter.cs @@ -0,0 +1,174 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Helper +{ + /// + /// + /// 大数据json序列化重写 + /// + public sealed class NumberConverter : JsonConverter + { + /// + /// 转换成字符串的类型 + /// + private readonly NumberConverterShip _ship; + + /// + /// 大数据json序列化重写实例化 + /// + public NumberConverter() + { + _ship = (NumberConverterShip)0xFF; + } + + /// + /// 大数据json序列化重写实例化 + /// + /// 转换成字符串的类型 + public NumberConverter(NumberConverterShip ship) + { + _ship = ship; + } + + /// + /// + /// 确定此实例是否可以转换指定的对象类型。 + /// + /// 对象的类型。 + /// 如果此实例可以转换指定的对象类型,则为:true,否则为:false + public override bool CanConvert(Type objectType) + { + var typecode = Type.GetTypeCode(objectType.Name.Equals("Nullable`1") ? objectType.GetGenericArguments().First() : objectType); + switch (typecode) + { + case TypeCode.Decimal: + return (_ship & NumberConverterShip.Decimal) == NumberConverterShip.Decimal; + case TypeCode.Double: + return (_ship & NumberConverterShip.Double) == NumberConverterShip.Double; + case TypeCode.Int64: + return (_ship & NumberConverterShip.Int64) == NumberConverterShip.Int64; + case TypeCode.UInt64: + return (_ship & NumberConverterShip.UInt64) == NumberConverterShip.UInt64; + case TypeCode.Single: + return (_ship & NumberConverterShip.Single) == NumberConverterShip.Single; + default: return false; + } + } + + /// + /// + /// 读取对象的JSON表示。 + /// + /// 中读取。 + /// 对象的类型。 + /// 正在读取的对象的现有值。 + /// 调用的序列化器实例。 + /// 对象值。 + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + return AsType(reader.Value.ToString(), objectType); + } + + /// + /// 字符串格式数据转其他类型数据 + /// + /// 输入的字符串 + /// 目标格式 + /// 转换结果 + public static object AsType(string input, Type destinationType) + { + try + { + var converter = TypeDescriptor.GetConverter(destinationType); + if (converter.CanConvertFrom(typeof(string))) + { + return converter.ConvertFrom(null, null, input); + } + + converter = TypeDescriptor.GetConverter(typeof(string)); + if (converter.CanConvertTo(destinationType)) + { + return converter.ConvertTo(null, null, input, destinationType); + } + } + catch + { + return null; + } + return null; + } + + /// + /// + /// 写入对象的JSON表示形式。 + /// + /// 要写入的 。 + /// 要写入对象值 + /// 调用的序列化器实例。 + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + if (value == null) + { + writer.WriteNull(); + } + else + { + var objectType = value.GetType(); + var typeCode = Type.GetTypeCode(objectType.Name.Equals("Nullable`1") ? objectType.GetGenericArguments().First() : objectType); + switch (typeCode) + { + case TypeCode.Decimal: + writer.WriteValue(((decimal)value).ToString("f6")); + break; + case TypeCode.Double: + writer.WriteValue(((double)value).ToString("f4")); + break; + case TypeCode.Single: + writer.WriteValue(((float)value).ToString("f2")); + break; + default: + writer.WriteValue(value.ToString()); + break; + } + } + } + } + + /// + /// 转换成字符串的类型 + /// + [Flags] + public enum NumberConverterShip + { + /// + /// 长整数 + /// + Int64 = 1, + + /// + /// 无符号长整数 + /// + UInt64 = 2, + + /// + /// 浮点数 + /// + Single = 4, + + /// + /// 双精度浮点数 + /// + Double = 8, + + /// + /// 大数字 + /// + Decimal =16 + } +} diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 7b594109..fb13768a 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -109,7 +109,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!myContext.Db.DbMaintenance.IsAnyTable(t.Name)) { Console.WriteLine(t.Name); - myContext.Db.CodeFirst.InitTables(t); + myContext.Db.CodeFirst.SplitTables().InitTables(t); } }); ConsoleHelper.WriteSuccessLine($"Tables created successfully!"); diff --git a/Blog.Core.IServices/BASE/IBaseServices.cs b/Blog.Core.IServices/BASE/IBaseServices.cs index 7856f8bf..4091b978 100644 --- a/Blog.Core.IServices/BASE/IBaseServices.cs +++ b/Blog.Core.IServices/BASE/IBaseServices.cs @@ -23,7 +23,7 @@ public interface IBaseServices where TEntity : class Task DeleteById(object id); Task Delete(TEntity model); - + Task DeleteByIds(object[] ids); Task Update(TEntity model); @@ -59,6 +59,14 @@ Task> QueryMuch( Expression> selectExpression, Expression> whereLambda = null) where T : class, new(); Task> QueryPage(PaginationModel pagination); + + #region 分表 + Task QueryByIdSplit(object objId); + Task> AddSplit(TEntity entity); + Task DeleteSplit(TEntity entity, DateTime dateTime); + Task UpdateSplit(TEntity entity, DateTime dateTime); + Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, int pageIndex = 1, int pageSize = 20, string orderByFields = null); + #endregion } } diff --git a/Blog.Core.IServices/ISplitDemoServices.cs b/Blog.Core.IServices/ISplitDemoServices.cs new file mode 100644 index 00000000..55215761 --- /dev/null +++ b/Blog.Core.IServices/ISplitDemoServices.cs @@ -0,0 +1,15 @@ + + +using Blog.Core.IServices.BASE; +using Blog.Core.Model.Models; +using System.Threading.Tasks; + +namespace Blog.Core.IServices +{ + /// + /// sysUserInfoServices + /// + public interface ISplitDemoServices : IBaseServices + { + } +} diff --git a/Blog.Core.Model/Models/SplitDemo.cs b/Blog.Core.Model/Models/SplitDemo.cs new file mode 100644 index 00000000..26329935 --- /dev/null +++ b/Blog.Core.Model/Models/SplitDemo.cs @@ -0,0 +1,27 @@ +using Newtonsoft.Json; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace Blog.Core.Model.Models +{ + [SplitTable(SplitType.Day)]//按年分表 (自带分表支持 年、季、月、周、日) + [SugarTable("SplitDemo_{year}{month}{day}")]//3个变量必须要有,这么设计为了兼容开始按年,后面改成按月、按日 + public class SplitDemo + { + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + + public string Name { get; set; } + + [SugarColumn(IsNullable = true)]//设置为可空字段 (更多用法看文档 迁移) + public DateTime UpdateTime { get; set; } + + [SplitField] //分表字段 在插入的时候会根据这个字段插入哪个表,在更新删除的时候用这个字段找出相关表 + public DateTime CreateTime { get; set; } + } +} diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 828f9506..3048baa8 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -5,6 +5,7 @@ using Blog.Core.Model.Models; using Blog.Core.Model.Tenants; using Blog.Core.Repository.UnitOfWorks; +using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using SqlSugar; using System; using System.Collections.Generic; @@ -127,7 +128,6 @@ public async Task Add(TEntity entity) return await insert.ExecuteReturnIdentityAsync(); } - /// /// 写入实体数据 /// @@ -557,5 +557,75 @@ public async Task> QueryTabsPage( // groupName = s.groupName, // jobName = s.jobName // }, exp, s => new { s.uID, s.uRealName, s.groupName, s.jobName }, model.currentPage, model.pageSize, model.orderField + " " + model.orderType); + #region Split分表基础接口 (基础CRUD) + /// + /// 分页查询[使用版本,其他分页未测试] + /// + /// 条件表达式 + /// 页码(下标0) + /// 页大小 + /// 排序字段,如name asc,age desc + /// + public async Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, int pageIndex = 1, int pageSize = 20, string orderByFields = null) + { + RefAsync totalCount = 0; + var list = await _db.Queryable().SplitTable(beginTime, endTime) + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(whereExpression != null, whereExpression) + .ToPageListAsync(pageIndex, pageSize, totalCount); + var data= new PageModel(pageIndex, totalCount, pageSize, list); + return data; + } + /// + /// 写入实体数据 + /// + /// 数据实体 + /// + public async Task> AddSplit(TEntity entity) + { + var insert = _db.Insertable(entity).SplitTable(); + //插入并返回雪花ID并且自动赋值ID  + return await insert.ExecuteReturnSnowflakeIdListAsync(); + } + + /// + /// 更新实体数据 + /// + /// 数据实体 + /// + public async Task UpdateSplit(TEntity entity, DateTime dateTime) + { + //直接根据实体集合更新 (全自动 找表更新) + //return await _db.Updateable(entity).SplitTable().ExecuteCommandAsync();//,SplitTable不能少 + + //精准找单个表 + var tableName = _db.SplitHelper().GetTableName(dateTime);//根据时间获取表名 + return await _db.Updateable(entity).AS(tableName).ExecuteCommandHasChangeAsync(); + } + /// + /// 删除数据 + /// + /// + /// + /// + public async Task DeleteSplit(TEntity entity,DateTime dateTime) + { + ////直接根据实体集合删除 (全自动 找表插入),返回受影响数 + //return await _db.Deleteable(entity).SplitTable().ExecuteCommandAsync();//,SplitTable不能少 + + //精准找单个表 + var tableName = _db.SplitHelper().GetTableName(dateTime);//根据时间获取表名 + return await _db.Deleteable().AS(tableName).Where(entity).ExecuteCommandHasChangeAsync(); + } + /// + /// 根据ID查找数据 + /// + /// + /// + public async Task QueryByIdSplit(object objId) + { + return await _db.Queryable().In(objId).SplitTable(tabs => tabs).SingleAsync(); + } + #endregion } } \ No newline at end of file diff --git a/Blog.Core.Repository/BASE/IBaseRepository.cs b/Blog.Core.Repository/BASE/IBaseRepository.cs index 29783505..5f70a4be 100644 --- a/Blog.Core.Repository/BASE/IBaseRepository.cs +++ b/Blog.Core.Repository/BASE/IBaseRepository.cs @@ -208,5 +208,45 @@ Task> QueryTabsPage( int pageIndex = 1, int pageSize = 20, string orderByFields = null); + + #region 分表 + /// + /// 通过ID查询 + /// + /// + /// + Task QueryByIdSplit(object objId); + /// + /// 自动分表插入 + /// + /// + /// + Task> AddSplit(TEntity entity); + /// + /// 删除 + /// + /// + /// + /// + Task DeleteSplit(TEntity entity, DateTime dateTime); + /// + /// 更新 + /// + /// + /// + /// + Task UpdateSplit(TEntity entity, DateTime dateTime); + /// + /// 分页查询 + /// + /// + /// + /// + /// + /// + /// + /// + Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, int pageIndex = 1, int pageSize = 20, string orderByFields = null); + #endregion } } diff --git a/Blog.Core.Services/BASE/BaseServices.cs b/Blog.Core.Services/BASE/BaseServices.cs index f8105165..7ee55eb1 100644 --- a/Blog.Core.Services/BASE/BaseServices.cs +++ b/Blog.Core.Services/BASE/BaseServices.cs @@ -332,5 +332,36 @@ public async Task> QueryPage(PaginationModel pagination) var express = DynamicLinqFactory.CreateLambda(pagination.Conditions); return await QueryPage(express, pagination.PageIndex, pagination.PageSize, pagination.OrderByFileds); } + #region 分表 + public async Task> AddSplit(TEntity entity) + { + return await BaseDal.AddSplit(entity); + } + public async Task UpdateSplit(TEntity entity, DateTime dateTime) + { + return await BaseDal.UpdateSplit(entity, dateTime); + } + + /// + /// 根据实体删除一条数据 + /// + /// 博文实体类 + /// + public async Task DeleteSplit(TEntity entity, DateTime dateTime) + { + return await BaseDal.DeleteSplit(entity, dateTime); + } + + public async Task QueryByIdSplit(object objId) + { + return await BaseDal.QueryByIdSplit(objId); + } + public async Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, + int pageIndex = 1, int pageSize = 20, string orderByFields = null) + { + return await BaseDal.QueryPageSplit(whereExpression, beginTime, endTime, + pageIndex, pageSize, orderByFields); + } + #endregion } } \ No newline at end of file diff --git a/Blog.Core.Services/SplitDemoServices.cs b/Blog.Core.Services/SplitDemoServices.cs new file mode 100644 index 00000000..cf8e2cc1 --- /dev/null +++ b/Blog.Core.Services/SplitDemoServices.cs @@ -0,0 +1,23 @@ +using Blog.Core.IRepository.Base; +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Blog.Core.Services.BASE; +using System.Linq; +using System.Threading.Tasks; + +namespace Blog.Core.FrameWork.Services +{ + /// + /// sysUserInfoServices + /// + public class SplitDemoServices : BaseServices, ISplitDemoServices + { + private readonly IBaseRepository _splitDemoRepository; + public SplitDemoServices(IBaseRepository splitDemoRepository) + { + _splitDemoRepository = splitDemoRepository; + } + + + } +} From 7b1f3a4c740f6cc7302219a12bb1033ab583018c Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 30 Mar 2023 15:49:30 +0800 Subject: [PATCH 238/382] feat: :airplane: change id to long --- Blog.Core.Api/Blog.Core.Model.xml | 5 --- Blog.Core.Api/Blog.Core.xml | 4 +- .../Controllers/DbFirst/MigrateController.cs | 30 ++++++------- .../Controllers/DepartmentController.cs | 2 +- .../Controllers/PermissionController.cs | 24 +++++----- Blog.Core.Api/Controllers/UserController.cs | 6 +-- .../wwwroot/BlogCore.Data.json/Permission.tsv | 44 +++++++++---------- .../RoleModulePermission.tsv | 12 ++--- Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 10 ++++- Blog.Core.Common/Helper/RecursionHelper.cs | 12 ++--- Blog.Core.Common/Seed/DBSeed.cs | 30 +++++++------ .../IRoleModulePermissionServices.cs | 2 +- Blog.Core.Model/Models/AccessTrendLog.cs | 2 +- Blog.Core.Model/Models/Advertisement.cs | 2 +- Blog.Core.Model/Models/BlogArticle.cs | 4 +- Blog.Core.Model/Models/BlogArticleComment.cs | 2 +- Blog.Core.Model/Models/Department.cs | 2 +- Blog.Core.Model/Models/GblLogAudit.cs | 4 +- Blog.Core.Model/Models/Guestbook.cs | 6 +-- Blog.Core.Model/Models/Modules.cs | 2 +- Blog.Core.Model/Models/OperateLog.cs | 2 +- Blog.Core.Model/Models/PasswordLib.cs | 6 +-- Blog.Core.Model/Models/Permission.cs | 2 +- Blog.Core.Model/Models/Role.cs | 2 +- .../Models/RoleModulePermission.cs | 2 +- Blog.Core.Model/Models/RootEntity.cs | 15 ------- Blog.Core.Model/Models/TasksLog.cs | 4 +- Blog.Core.Model/Models/TasksQz.cs | 2 +- Blog.Core.Model/Models/TestModels.cs | 6 +-- Blog.Core.Model/Models/Topic.cs | 2 +- Blog.Core.Model/Models/TopicDetail.cs | 2 +- Blog.Core.Model/Models/UserRole.cs | 6 +-- Blog.Core.Model/Models/sysUserInfo.cs | 4 +- Blog.Core.Model/ViewModels/BlogViewModels.cs | 4 +- .../IRoleModulePermissionRepository.cs | 2 +- .../RoleModulePermissionRepository.cs | 2 +- .../RoleModulePermissionServices.cs | 2 +- 37 files changed, 130 insertions(+), 140 deletions(-) delete mode 100644 Blog.Core.Model/Models/RootEntity.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 6bbfd4fe..fe62d8e2 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -1795,11 +1795,6 @@ 修改时间 - - - ID - - 部门表 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 89cb3213..faf9d522 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -413,14 +413,14 @@ - + 获取路由树 - + 获取路由树 diff --git a/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs b/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs index 8006d1fb..7865cc69 100644 --- a/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs +++ b/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs @@ -81,7 +81,7 @@ public async Task> DataMigrateFromOld2New() InitPermissionTree(permissions, permissionsAllList, apiList); var actionPermissionIds = permissionsAllList.Where(d => d.Id >= filterPermissionId).Select(d => d.Id).ToList(); - List filterPermissionIds = new(); + List filterPermissionIds = new(); FilterPermissionTree(permissionsAllList, actionPermissionIds, filterPermissionIds); permissions = permissions.Where(d => filterPermissionIds.Contains(d.Id)).ToList(); @@ -93,10 +93,10 @@ public async Task> DataMigrateFromOld2New() // 1、保持菜单和接口 await SavePermissionTreeAsync(permissions, pms); - var rid = 0; - var pid = 0; - var mid = 0; - var rpmid = 0; + long rid = 0; + long pid = 0; + long mid = 0; + long rpmid = 0; // 2、保存关系表 foreach (var item in rmps) @@ -116,8 +116,8 @@ public async Task> DataMigrateFromOld2New() } } - pid = (pms.FirstOrDefault(d => d.PidOld == item.PermissionId)?.PidNew).ObjToInt(); - mid = (pms.FirstOrDefault(d => d.MidOld == item.ModuleId)?.MidNew).ObjToInt(); + pid = (pms.FirstOrDefault(d => d.PidOld == item.PermissionId)?.PidNew).ObjToLong(); + mid = (pms.FirstOrDefault(d => d.MidOld == item.ModuleId)?.MidNew).ObjToLong(); // 关系 if (rid > 0 && pid > 0) { @@ -282,7 +282,7 @@ private void InitPermissionTree(List permissionsTree, List permissionsAll, List actionPermissionId, List filterPermissionIds) + private void FilterPermissionTree(List permissionsAll, List actionPermissionId, List filterPermissionIds) { actionPermissionId = actionPermissionId.Distinct().ToList(); var doneIds = permissionsAll.Where(d => actionPermissionId.Contains(d.Id) && d.Pid == 0).Select(d => d.Id).ToList(); @@ -295,7 +295,7 @@ private void FilterPermissionTree(List permissionsAll, List act } } - private async Task SavePermissionTreeAsync(List permissionsTree, List pms, int permissionId = 0) + private async Task SavePermissionTreeAsync(List permissionsTree, List pms, long permissionId = 0) { var parendId = permissionId; @@ -304,9 +304,9 @@ private async Task SavePermissionTreeAsync(List permissionsTree, Lis PM pm = new PM(); // 保留原始主键id pm.PidOld = item.Id; - pm.MidOld = (item.Module?.Id).ObjToInt(); + pm.MidOld = (item.Module?.Id).ObjToLong(); - var mid = 0; + long mid = 0; // 接口 if (item.Module != null) { @@ -351,9 +351,9 @@ private async Task SavePermissionTreeAsync(List permissionsTree, Lis public class PM { - public int PidOld { get; set; } - public int MidOld { get; set; } - public int PidNew { get; set; } - public int MidNew { get; set; } + public long PidOld { get; set; } + public long MidOld { get; set; } + public long PidNew { get; set; } + public long MidNew { get; set; } } } diff --git a/Blog.Core.Api/Controllers/DepartmentController.cs b/Blog.Core.Api/Controllers/DepartmentController.cs index bca7bf6d..b8174e90 100644 --- a/Blog.Core.Api/Controllers/DepartmentController.cs +++ b/Blog.Core.Api/Controllers/DepartmentController.cs @@ -83,7 +83,7 @@ public async Task>> GetTreeTable(long f = 0, strin foreach (var item in departments) { - List pidarr = new() { }; + List pidarr = new() { }; var parent = departmentList.FirstOrDefault(d => d.Id == item.Pid); while (parent != null) diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 70f8f689..9277a36b 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -99,7 +99,7 @@ public async Task>> Get(int page = 1, string var permissionAll = await _permissionServices.Query(d => d.IsDeleted != true); foreach (var item in permissionsView) { - List pidarr = new List + List pidarr = new() { item.Pid }; @@ -177,7 +177,7 @@ public async Task>> GetTreeTable(int f = 0, string foreach (var item in permissions) { - List pidarr = new List { }; + List pidarr = new() { }; var parent = permissionsList.FirstOrDefault(d => d.Id == item.Pid); while (parent != null) @@ -353,13 +353,13 @@ orderby child.Id /// /// [HttpGet] - public async Task> GetNavigationBar(int uid) + public async Task> GetNavigationBar(long uid) { var data = new MessageModel(); var uidInHttpcontext1 = 0; - var roleIds = new List(); + var roleIds = new List(); // ids4和jwt切换 if (Permissions.IsUseIds4) { @@ -369,13 +369,13 @@ public async Task> GetNavigationBar(int uid) select item.Value).FirstOrDefault().ObjToInt(); roleIds = (from item in _httpContext.HttpContext.User.Claims where item.Type == "role" - select item.Value.ObjToInt()).ToList(); + select item.Value.ObjToLong()).ToList(); } else { // jwt uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToInt(); - roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToInt()).Distinct().ToList(); + roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToLong()).Distinct().ToList(); } @@ -383,7 +383,7 @@ public async Task> GetNavigationBar(int uid) { if (roleIds.Any()) { - var pids = (await _roleModulePermissionServices.Query(d => d.IsDeleted == false && roleIds.Contains(d.RoleId))).Select(d => d.PermissionId.ObjToInt()).Distinct(); + var pids = (await _roleModulePermissionServices.Query(d => d.IsDeleted == false && roleIds.Contains(d.RoleId))).Select(d => d.PermissionId.ObjToLong()).Distinct(); if (pids.Any()) { var rolePermissionMoudles = (await _permissionServices.Query(d => pids.Contains(d.Id))).OrderBy(c => c.OrderSort); @@ -445,12 +445,12 @@ orderby child.Id /// /// [HttpGet] - public async Task>> GetNavigationBarPro(int uid) + public async Task>> GetNavigationBarPro(long uid) { var data = new MessageModel>(); var uidInHttpcontext1 = 0; - var roleIds = new List(); + var roleIds = new List(); // ids4和jwt切换 if (Permissions.IsUseIds4) { @@ -460,13 +460,13 @@ public async Task>> GetNavigationBarPro(int select item.Value).FirstOrDefault().ObjToInt(); roleIds = (from item in _httpContext.HttpContext.User.Claims where item.Type == "role" - select item.Value.ObjToInt()).ToList(); + select item.Value.ObjToLong()).ToList(); } else { // jwt uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToInt(); - roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToInt()).Distinct().ToList(); + roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToLong()).Distinct().ToList(); } if (uid > 0 && uid == uidInHttpcontext1) @@ -474,7 +474,7 @@ public async Task>> GetNavigationBarPro(int if (roleIds.Any()) { var pids = (await _roleModulePermissionServices.Query(d => d.IsDeleted == false && roleIds.Contains(d.RoleId))) - .Select(d => d.PermissionId.ObjToInt()).Distinct(); + .Select(d => d.PermissionId.ObjToLong()).Distinct(); if (pids.Any()) { var rolePermissionMoudles = (await _permissionServices.Query(d => pids.Contains(d.Id) && d.IsButton == false)).OrderBy(c => c.OrderSort); diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 43f7f610..27989821 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -103,15 +103,15 @@ public async Task>> Get(int page = 1, str return Success(data.ConvertTo(_mapper)); } - private (string, List) GetFullDepartmentName(List departments, int departmentId) + private (string, List) GetFullDepartmentName(List departments, int departmentId) { var departmentModel = departments.FirstOrDefault(d => d.Id == departmentId); if (departmentModel == null) { - return ("", new List()); + return ("", new List()); } - var pids = departmentModel.CodeRelationship?.TrimEnd(',').Split(',').Select(d => d.ObjToInt()).ToList(); + var pids = departmentModel.CodeRelationship?.TrimEnd(',').Split(',').Select(d => d.ObjToLong()).ToList(); pids.Add(departmentModel.Id); var pnams = departments.Where(d => pids.Contains(d.Id)).ToList().Select(d => d.Name).ToArray(); var fullName = string.Join("/", pnams); diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv index d1a5c3f8..c026f01e 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/Permission.tsv @@ -2323,28 +2323,28 @@ "Pid": 94, "Mid": 63 }, - { - "Id": 114, - "Code": " ", - "Name": "推送文字消息", - "IsButton": 1, - "IsHide": 0, - "IskeepAlive": 0, - "Func": null, - "OrderSort": 0, - "Icon": null, - "Description": null, - "Enabled": 1, - "CreateId": 8, - "CreateBy": "test", - "CreateTime": "2020-04-23 16:22:11", - "ModifyId": null, - "ModifyBy": null, - "ModifyTime": "2021-09-29 00:00:00", - "IsDeleted": 0, - "Pid": 95, - "Mid": 0 - }, + //{ + // "Id": 114, + // "Code": " ", + // "Name": "推送文字消息", + // "IsButton": 1, + // "IsHide": 0, + // "IskeepAlive": 0, + // "Func": null, + // "OrderSort": 0, + // "Icon": null, + // "Description": null, + // "Enabled": 1, + // "CreateId": 8, + // "CreateBy": "test", + // "CreateTime": "2020-04-23 16:22:11", + // "ModifyId": null, + // "ModifyBy": null, + // "ModifyTime": "2021-09-29 00:00:00", + // "IsDeleted": 0, + // "Pid": 95, + // "Mid": 0 + //}, { "Code": "-", "Name": "部门权限管理", diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv index b7923ab4..eb727383 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv @@ -1647,7 +1647,7 @@ "ModifyId": null, "ModifyBy": null, "ModifyTime": "\/Date(1546272000000+0800)\/", - "Id": 128 + "Id": 228 }, { "IsDeleted": false, @@ -1658,7 +1658,7 @@ "RoleId": 6, "ModuleId": 0, "PermissionId": 114, - "Id": 129 + "Id": 229 }, { "IsDeleted": false, @@ -1669,7 +1669,7 @@ "RoleId": 6, "ModuleId": 66, "PermissionId": 115, - "Id": 130 + "Id": 230 }, { "IsDeleted": false, @@ -1680,7 +1680,7 @@ "RoleId": 6, "ModuleId": 70, "PermissionId": 120, - "Id": 131 + "Id": 231 }, { "IsDeleted": false, @@ -1691,7 +1691,7 @@ "RoleId": 6, "ModuleId": 66, "PermissionId": 116, - "Id": 132 + "Id": 232 }, { "IsDeleted": false, @@ -1702,6 +1702,6 @@ "RoleId": 4, "ModuleId": 72, "PermissionId": 122, - "Id": 133 + "Id": 233 } ] diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs index 3d83b002..c1417a5a 100644 --- a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -1,4 +1,5 @@ -using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model; +using Blog.Core.Model.Models.RootTkey; using Blog.Core.Model.Tenants; using SqlSugar; using System; @@ -16,6 +17,13 @@ public static void DataExecuting(object oldValue, DataFilterModel entityInfo) root.Id = SnowFlakeSingle.Instance.NextId(); } } + if (entityInfo.EntityValue is RootEntityTkey rootEntity) + { + if (rootEntity.Id == 0) + { + rootEntity.Id = SnowFlakeSingle.Instance.NextId(); + } + } if (entityInfo.EntityValue is BaseEntity baseEntity) { diff --git a/Blog.Core.Common/Helper/RecursionHelper.cs b/Blog.Core.Common/Helper/RecursionHelper.cs index 9b27a37d..f6f21a38 100644 --- a/Blog.Core.Common/Helper/RecursionHelper.cs +++ b/Blog.Core.Common/Helper/RecursionHelper.cs @@ -117,8 +117,8 @@ public static void LoopToAppendChildrenT(List all, T curItem, string paren public class PermissionTree { - public int value { get; set; } - public int Pid { get; set; } + public long value { get; set; } + public long Pid { get; set; } public string label { get; set; } public int order { get; set; } public bool isbtn { get; set; } @@ -139,8 +139,8 @@ public class DepartmentTree public class NavigationBar { - public int id { get; set; } - public int pid { get; set; } + public long id { get; set; } + public long pid { get; set; } public int order { get; set; } public string name { get; set; } public bool IsHide { get; set; } = false; @@ -165,8 +165,8 @@ public class NavigationBarMeta public class NavigationBarPro { - public int id { get; set; } - public int parentId { get; set; } + public long id { get; set; } + public long parentId { get; set; } public int order { get; set; } public string name { get; set; } public bool IsHide { get; set; } = false; diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 7b594109..94893c38 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -175,7 +175,11 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Permission"), Encoding.UTF8), setting); - myContext.GetEntityDB().InsertRange(data); + foreach (var item in data) + { + Console.WriteLine($"{item.Name}:{item.Id}"); + myContext.GetEntityDB().Insert(item); + } Console.WriteLine("Table:Permission created success!"); } else @@ -190,10 +194,10 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - //var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Role"), Encoding.UTF8), setting); - using var stream = new FileStream(Path.Combine(WebRootPath, "BlogCore.Data.excel", "Role.xlsx"), FileMode.Open); - var result = await importer.Import(stream); - var data = result.Data.ToList(); + var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Role"), Encoding.UTF8), setting); + //using var stream = new FileStream(Path.Combine(WebRootPath, "BlogCore.Data.excel", "Role.xlsx"), FileMode.Open); + //var result = await importer.Import(stream); + //var data = result.Data.ToList(); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:Role created success!"); @@ -212,7 +216,11 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "RoleModulePermission"), Encoding.UTF8), setting); - myContext.GetEntityDB().InsertRange(data); + foreach (var item in data) + { + Console.WriteLine($"{item.Id}"); + myContext.GetEntityDB().Insert(item); + } Console.WriteLine("Table:RoleModulePermission created success!"); } else @@ -261,10 +269,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - //var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "UserRole"), Encoding.UTF8), setting); - using var stream = new FileStream(Path.Combine(WebRootPath, "BlogCore.Data.excel", "UserRole.xlsx"), FileMode.Open); - var result = await importer.Import(stream); - var data = result.Data.ToList(); + var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "UserRole"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:UserRole created success!"); @@ -281,10 +286,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - //var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "sysUserInfo"), Encoding.UTF8), setting); - using var stream = new FileStream(Path.Combine(WebRootPath, "BlogCore.Data.excel", "SysUserInfo.xlsx"), FileMode.Open); - var result = await importer.Import(stream); - var data = result.Data.ToList(); + var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "sysUserInfo"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:sysUserInfo created success!"); diff --git a/Blog.Core.IServices/IRoleModulePermissionServices.cs b/Blog.Core.IServices/IRoleModulePermissionServices.cs index 22532479..2a5c7345 100644 --- a/Blog.Core.IServices/IRoleModulePermissionServices.cs +++ b/Blog.Core.IServices/IRoleModulePermissionServices.cs @@ -21,6 +21,6 @@ public interface IRoleModulePermissionServices :IBaseServices˵ /// ӿ /// - Task UpdateModuleId(int permissionId, int moduleId); + Task UpdateModuleId(long permissionId, long moduleId); } } diff --git a/Blog.Core.Model/Models/AccessTrendLog.cs b/Blog.Core.Model/Models/AccessTrendLog.cs index 4a87b13e..fd6dbae7 100644 --- a/Blog.Core.Model/Models/AccessTrendLog.cs +++ b/Blog.Core.Model/Models/AccessTrendLog.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 用户访问趋势日志 /// - public class AccessTrendLog : RootEntityTkey + public class AccessTrendLog : RootEntityTkey { /// /// 用户 diff --git a/Blog.Core.Model/Models/Advertisement.cs b/Blog.Core.Model/Models/Advertisement.cs index c2babd74..3b11b21f 100644 --- a/Blog.Core.Model/Models/Advertisement.cs +++ b/Blog.Core.Model/Models/Advertisement.cs @@ -3,7 +3,7 @@ namespace Blog.Core.Model.Models { - public class Advertisement : RootEntityTkey + public class Advertisement : RootEntityTkey { /// diff --git a/Blog.Core.Model/Models/BlogArticle.cs b/Blog.Core.Model/Models/BlogArticle.cs index 66f05bdf..8b75c8df 100644 --- a/Blog.Core.Model/Models/BlogArticle.cs +++ b/Blog.Core.Model/Models/BlogArticle.cs @@ -13,8 +13,8 @@ public class BlogArticle /// 主键 /// /// 这里之所以没用RootEntity,是想保持和之前的数据库一致,主键是bID,不是Id - [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int bID { get; set; } + [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = false)] + public long bID { get; set; } /// /// 创建人 diff --git a/Blog.Core.Model/Models/BlogArticleComment.cs b/Blog.Core.Model/Models/BlogArticleComment.cs index 08010863..519fb003 100644 --- a/Blog.Core.Model/Models/BlogArticleComment.cs +++ b/Blog.Core.Model/Models/BlogArticleComment.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Model.Models; /// public class BlogArticleComment : RootEntityTkey { - public int bID { get; set; } + public long bID { get; set; } public string Comment { get; set; } diff --git a/Blog.Core.Model/Models/Department.cs b/Blog.Core.Model/Models/Department.cs index 3583bcff..424bcf44 100644 --- a/Blog.Core.Model/Models/Department.cs +++ b/Blog.Core.Model/Models/Department.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Model.Models /// /// 部门表 /// - public class Department : DepartmentRoot + public class Department : DepartmentRoot { /// /// Desc:部门关系编码 diff --git a/Blog.Core.Model/Models/GblLogAudit.cs b/Blog.Core.Model/Models/GblLogAudit.cs index 4b1bd9cd..2cecce8b 100644 --- a/Blog.Core.Model/Models/GblLogAudit.cs +++ b/Blog.Core.Model/Models/GblLogAudit.cs @@ -12,8 +12,8 @@ public class GblLogAudit /// ///ID /// - [SugarColumn(ColumnDescription = "ID", IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int Id { get; set; } + [SugarColumn(ColumnDescription = "ID", IsNullable = false, IsPrimaryKey = true, IsIdentity = false)] + public long Id { get; set; } /// ///HttpContext.TraceIdentifier 事件链路ID(获取或设置一个唯一标识符,用于在跟踪日志中表示此请求。) diff --git a/Blog.Core.Model/Models/Guestbook.cs b/Blog.Core.Model/Models/Guestbook.cs index d1f671c0..0cd5dcef 100644 --- a/Blog.Core.Model/Models/Guestbook.cs +++ b/Blog.Core.Model/Models/Guestbook.cs @@ -3,13 +3,13 @@ namespace Blog.Core.Model.Models { - public class Guestbook:RootEntityTkey + public class Guestbook : RootEntityTkey { - + /// 博客ID /// /// - public int? blogId { get; set; } + public long? blogId { get; set; } /// 创建时间 /// /// diff --git a/Blog.Core.Model/Models/Modules.cs b/Blog.Core.Model/Models/Modules.cs index b62c0a47..6e41aaac 100644 --- a/Blog.Core.Model/Models/Modules.cs +++ b/Blog.Core.Model/Models/Modules.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 接口API地址信息表 /// - public class Modules : ModulesRoot + public class Modules : ModulesRoot { public Modules() { diff --git a/Blog.Core.Model/Models/OperateLog.cs b/Blog.Core.Model/Models/OperateLog.cs index 4086781c..3c2fb54c 100644 --- a/Blog.Core.Model/Models/OperateLog.cs +++ b/Blog.Core.Model/Models/OperateLog.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 日志记录 /// - public class OperateLog : RootEntityTkey + public class OperateLog : RootEntityTkey { /// diff --git a/Blog.Core.Model/Models/PasswordLib.cs b/Blog.Core.Model/Models/PasswordLib.cs index 2b43c265..b8b633d6 100644 --- a/Blog.Core.Model/Models/PasswordLib.cs +++ b/Blog.Core.Model/Models/PasswordLib.cs @@ -7,11 +7,11 @@ namespace Blog.Core.Model.Models /// 密码库表 /// [SugarTable("PasswordLib", "密码库表")]//('数据库表名','数据库表备注') - [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') + [Tenant("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') public class PasswordLib { - [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int PLID { get; set; } + [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = false)] + public long PLID { get; set; } /// ///获取或设置是否禁用,逻辑上的删除,非物理删除 diff --git a/Blog.Core.Model/Models/Permission.cs b/Blog.Core.Model/Models/Permission.cs index c650cb5e..deece0c0 100644 --- a/Blog.Core.Model/Models/Permission.cs +++ b/Blog.Core.Model/Models/Permission.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Model.Models /// /// 路由菜单表 /// - public class Permission : PermissionRoot + public class Permission : PermissionRoot { public Permission() { diff --git a/Blog.Core.Model/Models/Role.cs b/Blog.Core.Model/Models/Role.cs index e34ccdd9..1357afb0 100644 --- a/Blog.Core.Model/Models/Role.cs +++ b/Blog.Core.Model/Models/Role.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 角色表 /// - public class Role : RootEntityTkey + public class Role : RootEntityTkey { public Role() { diff --git a/Blog.Core.Model/Models/RoleModulePermission.cs b/Blog.Core.Model/Models/RoleModulePermission.cs index 13d82a80..482b9b4e 100644 --- a/Blog.Core.Model/Models/RoleModulePermission.cs +++ b/Blog.Core.Model/Models/RoleModulePermission.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 按钮跟权限关联表 /// - public class RoleModulePermission : RoleModulePermissionRoot + public class RoleModulePermission : RoleModulePermissionRoot { public RoleModulePermission() { diff --git a/Blog.Core.Model/Models/RootEntity.cs b/Blog.Core.Model/Models/RootEntity.cs deleted file mode 100644 index d3874bb4..00000000 --- a/Blog.Core.Model/Models/RootEntity.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; - -namespace Blog.Core.Model -{ - public class RootEntity - { - /// - /// ID - /// - [SugarColumn(IsNullable = false, IsPrimaryKey = true)] - public int Id { get; set; } - - - } -} \ No newline at end of file diff --git a/Blog.Core.Model/Models/TasksLog.cs b/Blog.Core.Model/Models/TasksLog.cs index b4317c95..c79e8077 100644 --- a/Blog.Core.Model/Models/TasksLog.cs +++ b/Blog.Core.Model/Models/TasksLog.cs @@ -6,12 +6,12 @@ namespace Blog.Core.Model.Models /// /// 任务日志表 /// - public class TasksLog : RootEntityTkey + public class TasksLog : RootEntityTkey { /// /// 任务ID /// - public int JobId { get; set; } + public long JobId { get; set; } /// /// 任务耗时 /// diff --git a/Blog.Core.Model/Models/TasksQz.cs b/Blog.Core.Model/Models/TasksQz.cs index 1c07b60e..b029a995 100644 --- a/Blog.Core.Model/Models/TasksQz.cs +++ b/Blog.Core.Model/Models/TasksQz.cs @@ -8,7 +8,7 @@ namespace Blog.Core.Model.Models /// /// 任务计划表 /// - public class TasksQz : RootEntityTkey + public class TasksQz : RootEntityTkey { /// /// 任务名称 diff --git a/Blog.Core.Model/Models/TestModels.cs b/Blog.Core.Model/Models/TestModels.cs index f5fa7dc7..8a8d123c 100644 --- a/Blog.Core.Model/Models/TestModels.cs +++ b/Blog.Core.Model/Models/TestModels.cs @@ -5,9 +5,9 @@ public class TestMuchTableResult { public string moduleName { get; set; } public string permName { get; set; } - public int rid { get; set; } - public int mid { get; set; } - public int? pid { get; set; } + public long rid { get; set; } + public long mid { get; set; } + public long? pid { get; set; } } } diff --git a/Blog.Core.Model/Models/Topic.cs b/Blog.Core.Model/Models/Topic.cs index 16bf7dad..e57bd561 100644 --- a/Blog.Core.Model/Models/Topic.cs +++ b/Blog.Core.Model/Models/Topic.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Model.Models /// /// Tibug 类别 /// - public class Topic : RootEntityTkey + public class Topic : RootEntityTkey { public Topic() { diff --git a/Blog.Core.Model/Models/TopicDetail.cs b/Blog.Core.Model/Models/TopicDetail.cs index 87e16ebf..1a98f3af 100644 --- a/Blog.Core.Model/Models/TopicDetail.cs +++ b/Blog.Core.Model/Models/TopicDetail.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// Tibug 博文 /// - public class TopicDetail : TopicDetailRoot + public class TopicDetail : TopicDetailRoot { public TopicDetail() { diff --git a/Blog.Core.Model/Models/UserRole.cs b/Blog.Core.Model/Models/UserRole.cs index 996eea2c..7ed9c6be 100644 --- a/Blog.Core.Model/Models/UserRole.cs +++ b/Blog.Core.Model/Models/UserRole.cs @@ -6,11 +6,11 @@ namespace Blog.Core.Model.Models /// /// 用户跟角色关联表 /// - public class UserRole : UserRoleRoot + public class UserRole : UserRoleRoot { public UserRole() { } - public UserRole(int uid, int rid) + public UserRole(long uid, long rid) { UserId = uid; RoleId = rid; @@ -31,7 +31,7 @@ public UserRole(int uid, int rid) /// 创建ID /// [SugarColumn(IsNullable = true)] - public int? CreateId { get; set; } + public long? CreateId { get; set; } /// /// 创建者 /// diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index 366b2291..2a417a16 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -9,7 +9,7 @@ namespace Blog.Core.Model.Models /// //[SugarTable("SysUserInfo")] [SugarTable("SysUserInfo", "用户表")] //('数据库表名','数据库表备注') - public class SysUserInfo : SysUserInfoRoot + public class SysUserInfo : SysUserInfoRoot { public SysUserInfo() { @@ -133,7 +133,7 @@ public SysUserInfo(string loginName, string loginPWD) public List RoleNames { get; set; } [SugarColumn(IsIgnore = true)] - public List Dids { get; set; } + public List Dids { get; set; } [SugarColumn(IsIgnore = true)] public string DepartmentName { get; set; } diff --git a/Blog.Core.Model/ViewModels/BlogViewModels.cs b/Blog.Core.Model/ViewModels/BlogViewModels.cs index f959270c..411a8ef7 100644 --- a/Blog.Core.Model/ViewModels/BlogViewModels.cs +++ b/Blog.Core.Model/ViewModels/BlogViewModels.cs @@ -34,7 +34,7 @@ public class BlogViewModels /// /// 上一篇id /// - public int previousID { get; set; } + public long previousID { get; set; } /// /// 下一篇 @@ -44,7 +44,7 @@ public class BlogViewModels /// /// 下一篇id /// - public int nextID { get; set; } + public long nextID { get; set; } /// 类别 /// diff --git a/Blog.Core.Repository/IRoleModulePermissionRepository.cs b/Blog.Core.Repository/IRoleModulePermissionRepository.cs index c66448f0..9ba3d4ed 100644 --- a/Blog.Core.Repository/IRoleModulePermissionRepository.cs +++ b/Blog.Core.Repository/IRoleModulePermissionRepository.cs @@ -19,6 +19,6 @@ public interface IRoleModulePermissionRepository : IBaseRepository菜单主键 /// 接口主键 /// - Task UpdateModuleId(int permissionId, int moduleId); + Task UpdateModuleId(long permissionId, long moduleId); } } diff --git a/Blog.Core.Repository/RoleModulePermissionRepository.cs b/Blog.Core.Repository/RoleModulePermissionRepository.cs index 1cb21ebf..9438ff50 100644 --- a/Blog.Core.Repository/RoleModulePermissionRepository.cs +++ b/Blog.Core.Repository/RoleModulePermissionRepository.cs @@ -99,7 +99,7 @@ public async Task> GetRMPMapsPage() /// 菜单主键 /// 接口主键 /// - public async Task UpdateModuleId(int permissionId, int moduleId) + public async Task UpdateModuleId(long permissionId, long moduleId) { await Db.Updateable(it => it.ModuleId == moduleId).Where( it => it.PermissionId == permissionId).ExecuteCommandAsync(); diff --git a/Blog.Core.Services/RoleModulePermissionServices.cs b/Blog.Core.Services/RoleModulePermissionServices.cs index c0248e17..d3834f89 100644 --- a/Blog.Core.Services/RoleModulePermissionServices.cs +++ b/Blog.Core.Services/RoleModulePermissionServices.cs @@ -83,7 +83,7 @@ public async Task> GetRMPMaps() /// 菜单主键 /// 接口主键 /// - public async Task UpdateModuleId(int permissionId, int moduleId) + public async Task UpdateModuleId(long permissionId, long moduleId) { await _dal.UpdateModuleId(permissionId, moduleId); } From 0ed67675a6bbab5a1b997ed9ea002f60aa3fde32 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Fri, 31 Mar 2023 22:02:30 +0800 Subject: [PATCH 239/382] =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=86=E9=85=8D?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=20sqlsug?= =?UTF-8?q?arAop=E9=80=BB=E8=BE=91=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.xml | 3 +- .../Controllers/PermissionController.cs | 79 +++++++++---------- Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 41 ++++++++++ 3 files changed, 81 insertions(+), 42 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index c0b52222..79325e37 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -361,7 +361,7 @@ 菜单管理 - + 构造函数 @@ -369,6 +369,7 @@ + diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 9277a36b..f4889c73 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -6,6 +6,8 @@ using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; +using Blog.Core.Repository.UnitOfWorks; +using Blog.Core.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; @@ -21,6 +23,7 @@ namespace Blog.Core.Controllers [Authorize(Permissions.Name)] public class PermissionController : BaseApiController { + readonly IUnitOfWorkManage _unitOfWorkManage; readonly IPermissionServices _permissionServices; readonly IModuleServices _moduleServices; readonly IRoleModulePermissionServices _roleModulePermissionServices; @@ -37,16 +40,19 @@ public class PermissionController : BaseApiController /// /// /// + /// /// /// /// /// public PermissionController(IPermissionServices permissionServices, IModuleServices moduleServices, IRoleModulePermissionServices roleModulePermissionServices, IUserRoleServices userRoleServices, + IUnitOfWorkManage unitOfWorkManage, IHttpClientFactory httpClientFactory, IHttpContextAccessor httpContext, IUser user, PermissionRequirement requirement) { _permissionServices = permissionServices; + _unitOfWorkManage = unitOfWorkManage; _moduleServices = moduleServices; _roleModulePermissionServices = roleModulePermissionServices; _userRoleServices = userRoleServices; @@ -239,25 +245,24 @@ public async Task> Post([FromBody] Permission permission) /// [HttpPost] public async Task> Assign([FromBody] AssignView assignView) - { - var data = new MessageModel(); - - + { if (assignView.rid > 0) { - data.success = true; - - var roleModulePermissions = await _roleModulePermissionServices.Query(d => d.RoleId == assignView.rid); + //开启事务 + try + { + var old_rmps = await _roleModulePermissionServices.Query(d => d.RoleId == assignView.rid); - var remove = roleModulePermissions.Where(d => !assignView.pids.Contains(d.PermissionId.ObjToInt())).Select(c => (object)c.Id); - data.success &= remove.Any() ? await _roleModulePermissionServices.DeleteByIds(remove.ToArray()) : true; + _unitOfWorkManage.BeginTran(); + await _permissionServices.Db.Deleteable(t => t.RoleId == assignView.rid).ExecuteCommandAsync(); + var permissions = await _permissionServices.Query(d => d.IsDeleted == false); - foreach (var item in assignView.pids) - { - var rmpitem = roleModulePermissions.Where(d => d.PermissionId == item); - var moduleid = (await _permissionServices.Query(p => p.Id == item)).FirstOrDefault()?.Mid; - if (!rmpitem.Any()) + List new_rmps = new List(); + var nowTime = _permissionServices.Db.GetDate(); + foreach (var item in assignView.pids) { + var moduleid = permissions.Find(p => p.Id == item)?.Mid; + var find_old_rmps = old_rmps.Find(p => p.PermissionId == item); RoleModulePermission roleModulePermission = new RoleModulePermission() { @@ -265,39 +270,31 @@ public async Task> Assign([FromBody] AssignView assignView) RoleId = assignView.rid, ModuleId = moduleid.ObjToInt(), PermissionId = item, - }; - + CreateId = find_old_rmps == null ? _user.ID : find_old_rmps.CreateId, + CreateBy = find_old_rmps == null ? _user.Name : find_old_rmps.CreateBy, + CreateTime = find_old_rmps == null ? nowTime : find_old_rmps.CreateTime, + ModifyId = _user.ID, + ModifyBy = _user.Name, + ModifyTime = nowTime - roleModulePermission.CreateId = _user.ID; - roleModulePermission.CreateBy = _user.Name; - - data.success &= (await _roleModulePermissionServices.Add(roleModulePermission)) > 0; - - } - else - { - foreach (var role in rmpitem) - { - if (!role.ModuleId.Equals(moduleid)) - { - role.ModuleId = moduleid.Value; - await _roleModulePermissionServices.Update(role, new List { "ModuleId" }); - } - } + }; + new_rmps.Add(roleModulePermission); } + if(new_rmps.Count>0) await _roleModulePermissionServices.Add(new_rmps); + _unitOfWorkManage.CommitTran(); } - - if (data.success) + catch (Exception) { - _requirement.Permissions.Clear(); - data.response = ""; - data.msg = "保存成功"; + _unitOfWorkManage.RollbackTran(); + throw; } - + _requirement.Permissions.Clear(); + return Success("保存成功"); } - - - return data; + else + { + return Failed("请选择要操作的角色"); + } } diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs index c1417a5a..c70d9283 100644 --- a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -1,6 +1,7 @@ using Blog.Core.Model; using Blog.Core.Model.Models.RootTkey; using Blog.Core.Model.Tenants; +using NetTaste; using SqlSugar; using System; @@ -69,6 +70,46 @@ public static void DataExecuting(object oldValue, DataFilterModel entityInfo) } } } + else + { + //兼容以前的表 + var getType = entityInfo.EntityValue.GetType(); + + + switch (entityInfo.OperationType) + { + + case DataFilterType.InsertByObject: + var dyCreateBy = getType.GetProperty("CreateBy"); + var dyCreateId = getType.GetProperty("CreateId"); + var dyCreateTime = getType.GetProperty("CreateTime"); + + if (App.User?.ID > 0 && dyCreateBy != null && dyCreateBy.GetValue(entityInfo.EntityValue) == null) + dyCreateBy.SetValue(entityInfo.EntityValue, App.User.Name); + + if (App.User?.ID > 0 && dyCreateId != null && dyCreateId.GetValue(entityInfo.EntityValue) == null) + dyCreateId.SetValue(entityInfo.EntityValue, App.User.ID); + + if (dyCreateTime != null && (DateTime)dyCreateTime.GetValue(entityInfo.EntityValue) == DateTime.MinValue) + dyCreateTime.SetValue(entityInfo.EntityValue, DateTime.Now); + + break; + case DataFilterType.UpdateByObject: + var dyModifyBy = getType.GetProperty("ModifyBy"); + var dyModifyId = getType.GetProperty("ModifyId"); + var dyModifyTime = getType.GetProperty("ModifyTime"); + + if (App.User?.ID > 0 && dyModifyBy != null) + dyModifyBy.SetValue(entityInfo.EntityValue, App.User.Name); + + if (App.User?.ID > 0 && dyModifyId != null) + dyModifyId.SetValue(entityInfo.EntityValue, App.User.ID); + + if (dyModifyTime != null) + dyModifyTime.SetValue(entityInfo.EntityValue, DateTime.Now); + break; + } + } } private static string GetWholeSql(SugarParameter[] paramArr, string sql) From 3c0d9f977cc03da275ba7d32a4f27e083b947ce3 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Sat, 1 Apr 2023 21:09:47 +0800 Subject: [PATCH 240/382] =?UTF-8?q?=E6=B7=BB=E5=8A=A0update=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.IServices/BASE/IBaseServices.cs | 1 + Blog.Core.Repository/BASE/BaseRepository.cs | 9 +++++++++ Blog.Core.Repository/BASE/IBaseRepository.cs | 6 ++++++ Blog.Core.Services/BASE/BaseServices.cs | 9 +++++++++ 4 files changed, 25 insertions(+) diff --git a/Blog.Core.IServices/BASE/IBaseServices.cs b/Blog.Core.IServices/BASE/IBaseServices.cs index 4091b978..b491614f 100644 --- a/Blog.Core.IServices/BASE/IBaseServices.cs +++ b/Blog.Core.IServices/BASE/IBaseServices.cs @@ -27,6 +27,7 @@ public interface IBaseServices where TEntity : class Task DeleteByIds(object[] ids); Task Update(TEntity model); + Task Update(List model); Task Update(TEntity entity, string where); Task Update(object operateAnonymousObjects); diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 3048baa8..9ef11ecd 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -170,6 +170,15 @@ public async Task Update(TEntity entity) //这种方式会以主键为条件 return await _db.Updateable(entity).ExecuteCommandHasChangeAsync(); } + /// + /// 更新实体数据 + /// + /// 博文实体类 + /// + public async Task Update(List entity) + { + return await _db.Updateable(entity).ExecuteCommandHasChangeAsync(); + } public async Task Update(TEntity entity, string where) { diff --git a/Blog.Core.Repository/BASE/IBaseRepository.cs b/Blog.Core.Repository/BASE/IBaseRepository.cs index 5f70a4be..8ef05c1e 100644 --- a/Blog.Core.Repository/BASE/IBaseRepository.cs +++ b/Blog.Core.Repository/BASE/IBaseRepository.cs @@ -69,6 +69,12 @@ public interface IBaseRepository where TEntity : class /// /// Task Update(TEntity model); + /// + /// 更新model + /// + /// + /// + Task Update(List model); /// /// 根据model,更新,带where条件 diff --git a/Blog.Core.Services/BASE/BaseServices.cs b/Blog.Core.Services/BASE/BaseServices.cs index 7ee55eb1..14f69636 100644 --- a/Blog.Core.Services/BASE/BaseServices.cs +++ b/Blog.Core.Services/BASE/BaseServices.cs @@ -80,6 +80,15 @@ public async Task Update(TEntity entity) { return await BaseDal.Update(entity); } + /// + /// 更新实体数据 + /// + /// 博文实体类 + /// + public async Task Update(List entity) + { + return await BaseDal.Update(entity); + } public async Task Update(TEntity entity, string where) { From f785d507704275c104a61e8793548644084983ed Mon Sep 17 00:00:00 2001 From: "Lemon.NoCry" <773596523@qq.com> Date: Sat, 1 Apr 2023 21:29:34 +0800 Subject: [PATCH 241/382] =?UTF-8?q?=F0=9F=8E=A8=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=9B=AA=E8=8A=B1id=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Model.xml | 5 ---- .../Controllers/PermissionController.cs | 4 +-- Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 15 ++++------ Blog.Core.IServices/BASE/IBaseServices.cs | 4 +-- Blog.Core.Model/Models/RootTkey/BaseEntity.cs | 8 +----- Blog.Core.Repository/BASE/BaseRepository.cs | 28 +++++++++++-------- Blog.Core.Repository/BASE/IBaseRepository.cs | 4 +-- Blog.Core.Services/BASE/BaseServices.cs | 11 ++++++-- 8 files changed, 37 insertions(+), 42 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index fe62d8e2..79666d28 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -832,11 +832,6 @@ 修改时间 - - - 雪花Id - - 状态
    diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index f4889c73..059e9b18 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -754,11 +754,11 @@ public async Task>> MigratePermission(string actio List modules = await _moduleServices.Query(d => d.LinkUrl != null && d.LinkUrl.ToLower() == item.Module.LinkUrl); if (!modules.Any()) { - int mid = await _moduleServices.Add(item.Module); + var mid = await _moduleServices.Add(item.Module); if (mid > 0) { item.Mid = mid; - int permissionid = await _permissionServices.Add(item); + var permissionid = await _permissionServices.Add(item); } } diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs index c70d9283..9ab494a4 100644 --- a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -1,7 +1,6 @@ using Blog.Core.Model; using Blog.Core.Model.Models.RootTkey; using Blog.Core.Model.Tenants; -using NetTaste; using SqlSugar; using System; @@ -11,13 +10,6 @@ public static class SqlSugarAop { public static void DataExecuting(object oldValue, DataFilterModel entityInfo) { - if (entityInfo.EntityValue is BaseEntity root) - { - if (root.Id == 0) - { - root.Id = SnowFlakeSingle.Instance.NextId(); - } - } if (entityInfo.EntityValue is RootEntityTkey rootEntity) { if (rootEntity.Id == 0) @@ -73,12 +65,15 @@ public static void DataExecuting(object oldValue, DataFilterModel entityInfo) else { //兼容以前的表 - var getType = entityInfo.EntityValue.GetType(); + //这里要小心 在AOP里用反射 数据量多性能就会有问题 + //要么都统一使用基类 + //要么考虑老的表没必要兼容老的表 + // + var getType = entityInfo.EntityValue.GetType(); switch (entityInfo.OperationType) { - case DataFilterType.InsertByObject: var dyCreateBy = getType.GetProperty("CreateBy"); var dyCreateId = getType.GetProperty("CreateId"); diff --git a/Blog.Core.IServices/BASE/IBaseServices.cs b/Blog.Core.IServices/BASE/IBaseServices.cs index 4091b978..21f1afb4 100644 --- a/Blog.Core.IServices/BASE/IBaseServices.cs +++ b/Blog.Core.IServices/BASE/IBaseServices.cs @@ -16,9 +16,9 @@ public interface IBaseServices where TEntity : class Task QueryById(object objId, bool blnUseCache = false); Task> QueryByIDs(object[] lstIds); - Task Add(TEntity model); + Task Add(TEntity model); - Task Add(List listEntity); + Task> Add(List listEntity); Task DeleteById(object id); diff --git a/Blog.Core.Model/Models/RootTkey/BaseEntity.cs b/Blog.Core.Model/Models/RootTkey/BaseEntity.cs index efbde8fd..b6dabe54 100644 --- a/Blog.Core.Model/Models/RootTkey/BaseEntity.cs +++ b/Blog.Core.Model/Models/RootTkey/BaseEntity.cs @@ -4,14 +4,8 @@ namespace Blog.Core.Model.Models.RootTkey; -public class BaseEntity : IDeleteFilter +public class BaseEntity : RootEntityTkey, IDeleteFilter { - /// - /// 雪花Id - /// - [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = false)] - public long Id { get; set; } - #region 数据状态管理 /// diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 3048baa8..e808690d 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -114,7 +114,7 @@ public async Task> QueryByIDs(object[] lstIds) /// /// 博文实体类 /// - public async Task Add(TEntity entity) + public async Task Add(TEntity entity) { //var i = await Task.Run(() => _db.Insertable(entity).ExecuteReturnBigIdentity()); ////返回的i是long类型,这里你可以根据你的业务需要进行处理 @@ -125,7 +125,7 @@ public async Task Add(TEntity entity) //这里你可以返回TEntity,这样的话就可以获取id值,无论主键是什么类型 //var return3 = await insert.ExecuteReturnEntityAsync(); - return await insert.ExecuteReturnIdentityAsync(); + return await insert.ExecuteReturnSnowflakeIdAsync(); } /// @@ -134,16 +134,16 @@ public async Task Add(TEntity entity) /// 实体类 /// 指定只插入列 /// 返回自增量列 - public async Task Add(TEntity entity, Expression> insertColumns = null) + public async Task Add(TEntity entity, Expression> insertColumns = null) { var insert = _db.Insertable(entity); if (insertColumns == null) { - return await insert.ExecuteReturnIdentityAsync(); + return await insert.ExecuteReturnSnowflakeIdAsync(); } else { - return await insert.InsertColumns(insertColumns).ExecuteReturnIdentityAsync(); + return await insert.InsertColumns(insertColumns).ExecuteReturnSnowflakeIdAsync(); } } @@ -152,9 +152,9 @@ public async Task Add(TEntity entity, Expression> ins /// /// 实体集合 /// 影响行数 - public async Task Add(List listEntity) + public async Task> Add(List listEntity) { - return await _db.Insertable(listEntity.ToArray()).ExecuteCommandAsync(); + return await _db.Insertable(listEntity.ToArray()).ExecuteReturnSnowflakeIdListAsync(); } /// @@ -557,7 +557,9 @@ public async Task> QueryTabsPage( // groupName = s.groupName, // jobName = s.jobName // }, exp, s => new { s.uID, s.uRealName, s.groupName, s.jobName }, model.currentPage, model.pageSize, model.orderField + " " + model.orderType); + #region Split分表基础接口 (基础CRUD) + /// /// 分页查询[使用版本,其他分页未测试] /// @@ -573,9 +575,10 @@ public async Task> QueryPageSplit(Expression(pageIndex, totalCount, pageSize, list); + var data = new PageModel(pageIndex, totalCount, pageSize, list); return data; } + /// /// 写入实体数据 /// @@ -599,24 +602,26 @@ public async Task UpdateSplit(TEntity entity, DateTime dateTime) //return await _db.Updateable(entity).SplitTable().ExecuteCommandAsync();//,SplitTable不能少 //精准找单个表 - var tableName = _db.SplitHelper().GetTableName(dateTime);//根据时间获取表名 + var tableName = _db.SplitHelper().GetTableName(dateTime); //根据时间获取表名 return await _db.Updateable(entity).AS(tableName).ExecuteCommandHasChangeAsync(); } + /// /// 删除数据 /// /// /// /// - public async Task DeleteSplit(TEntity entity,DateTime dateTime) + public async Task DeleteSplit(TEntity entity, DateTime dateTime) { ////直接根据实体集合删除 (全自动 找表插入),返回受影响数 //return await _db.Deleteable(entity).SplitTable().ExecuteCommandAsync();//,SplitTable不能少 //精准找单个表 - var tableName = _db.SplitHelper().GetTableName(dateTime);//根据时间获取表名 + var tableName = _db.SplitHelper().GetTableName(dateTime); //根据时间获取表名 return await _db.Deleteable().AS(tableName).Where(entity).ExecuteCommandHasChangeAsync(); } + /// /// 根据ID查找数据 /// @@ -626,6 +631,7 @@ public async Task QueryByIdSplit(object objId) { return await _db.Queryable().In(objId).SplitTable(tabs => tabs).SingleAsync(); } + #endregion } } \ No newline at end of file diff --git a/Blog.Core.Repository/BASE/IBaseRepository.cs b/Blog.Core.Repository/BASE/IBaseRepository.cs index 5f70a4be..e3e6553b 100644 --- a/Blog.Core.Repository/BASE/IBaseRepository.cs +++ b/Blog.Core.Repository/BASE/IBaseRepository.cs @@ -33,14 +33,14 @@ public interface IBaseRepository where TEntity : class /// /// /// - Task Add(TEntity model); + Task Add(TEntity model); /// /// 批量添加 /// /// /// - Task Add(List listEntity); + Task> Add(List listEntity); /// /// 根据id 删除某一实体 diff --git a/Blog.Core.Services/BASE/BaseServices.cs b/Blog.Core.Services/BASE/BaseServices.cs index 7ee55eb1..809890fb 100644 --- a/Blog.Core.Services/BASE/BaseServices.cs +++ b/Blog.Core.Services/BASE/BaseServices.cs @@ -56,7 +56,7 @@ public async Task> QueryByIDs(object[] lstIds) /// /// 博文实体类 /// - public async Task Add(TEntity entity) + public async Task Add(TEntity entity) { return await BaseDal.Add(entity); } @@ -66,7 +66,7 @@ public async Task Add(TEntity entity) ///
    /// 实体集合 /// 影响行数 - public async Task Add(List listEntity) + public async Task> Add(List listEntity) { return await BaseDal.Add(listEntity); } @@ -332,11 +332,14 @@ public async Task> QueryPage(PaginationModel pagination) var express = DynamicLinqFactory.CreateLambda(pagination.Conditions); return await QueryPage(express, pagination.PageIndex, pagination.PageSize, pagination.OrderByFileds); } + #region 分表 + public async Task> AddSplit(TEntity entity) { return await BaseDal.AddSplit(entity); } + public async Task UpdateSplit(TEntity entity, DateTime dateTime) { return await BaseDal.UpdateSplit(entity, dateTime); @@ -356,12 +359,14 @@ public async Task QueryByIdSplit(object objId) { return await BaseDal.QueryByIdSplit(objId); } - public async Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, + + public async Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, int pageIndex = 1, int pageSize = 20, string orderByFields = null) { return await BaseDal.QueryPageSplit(whereExpression, beginTime, endTime, pageIndex, pageSize, orderByFields); } + #endregion } } \ No newline at end of file From 0d2a95e0e94553140f550fc4606ef88c8efab824 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Sat, 1 Apr 2023 23:25:56 +0800 Subject: [PATCH 242/382] =?UTF-8?q?=E2=9C=A8=20=E5=88=9D=E6=AD=A5=E8=B0=83?= =?UTF-8?q?=E6=95=B4Serilog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + Blog.Core.Api/Blog.Core.Api.csproj | 6 +- Blog.Core.Api/Blog.Core.xml | 2 +- Blog.Core.Api/Controllers/ValuesController.cs | 2 +- Blog.Core.Api/Filter/GlobalExceptionFilter.cs | 6 +- Blog.Core.Api/Log4net.config | 364 ----------- Blog.Core.Api/Program.cs | 112 ++-- Blog.Core.Api/Startup.cs | 1 - Blog.Core.Api/appsettings.json | 601 +++++++++--------- Blog.Core.Api/skyapm.json | 2 +- Blog.Core.Common/App.cs | 63 +- Blog.Core.Common/Blog.Core.Common.csproj | 14 +- Blog.Core.Common/Const/SqlSugarConst.cs | 9 + Blog.Core.Common/Core/InternalApp.cs | 25 +- Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 30 +- Blog.Core.Common/DB/BaseDBConfig.cs | 3 +- Blog.Core.Common/Helper/RecursionHelper.cs | 67 +- .../{ => Https}/HttpPolly/HttpPollyHelper.cs | 20 +- .../{ => Https}/HttpPolly/IHttpPollyHelper.cs | 2 +- Blog.Core.Common/Https/RequestIpUtility.cs | 83 +++ Blog.Core.Common/Hubs/ChatHub.cs | 3 +- .../LogHelper/LogContextExtension.cs | 42 ++ .../LogHelper/LogContextStatic.cs | 42 ++ Blog.Core.Common/LogHelper/LogLock.cs | 170 ++--- .../Blog.Core.Extensions.csproj | 3 +- .../Middlewares/ExceptionHandlerMiddleware.cs | 9 +- .../Middlewares/IpLimitMiddleware.cs | 7 +- .../Middlewares/IpLogMiddleware.cs | 7 +- .../Middlewares/MiniProfilerMiddleware.cs | 7 +- .../Middlewares/SignalRSendMiddleware.cs | 1 + .../Middlewares/SwaggerMiddleware.cs | 21 +- .../ServiceExtensions/AppConfigSetup.cs | 38 +- .../AutofacModuleRegister.cs | 20 +- .../ServiceExtensions/HttpPollySetup.cs | 2 +- .../ServiceExtensions/SerilogSetup.cs | 37 ++ .../ServiceExtensions/SqlsugarSetup.cs | 45 +- .../ServiceExtensions/SwaggerSetup.cs | 26 +- .../Blog.Core.Serilog.Es.csproj | 2 +- Blog.Core.Serilog/Blog.Core.Serilog.csproj | 13 + .../LoggerConfigurationExtensions.cs | 121 ++++ .../Utility/SerilogRequestUtility.cs | 34 + .../Jobs/Job_AccessTrendLog_Quartz.cs | 4 +- .../QuartzNet/Jobs/Job_OperateLog_Quartz.cs | 17 +- .../DependencyInjection/DI_Test.cs | 1 - Blog.Core.sln | 6 + 45 files changed, 1137 insertions(+), 955 deletions(-) delete mode 100644 Blog.Core.Api/Log4net.config create mode 100644 Blog.Core.Common/Const/SqlSugarConst.cs rename Blog.Core.Common/{ => Https}/HttpPolly/HttpPollyHelper.cs (98%) rename Blog.Core.Common/{ => Https}/HttpPolly/IHttpPollyHelper.cs (96%) create mode 100644 Blog.Core.Common/Https/RequestIpUtility.cs create mode 100644 Blog.Core.Common/LogHelper/LogContextExtension.cs create mode 100644 Blog.Core.Common/LogHelper/LogContextStatic.cs create mode 100644 Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs create mode 100644 Blog.Core.Serilog/Blog.Core.Serilog.csproj create mode 100644 Blog.Core.Serilog/Extensions/LoggerConfigurationExtensions.cs create mode 100644 Blog.Core.Serilog/Utility/SerilogRequestUtility.cs diff --git a/.gitignore b/.gitignore index b7645c45..4f554bea 100644 --- a/.gitignore +++ b/.gitignore @@ -356,3 +356,5 @@ Blog.Core/Blog.Core*.xml Blog.Core.Api/WMBlog.db Blog.Core.Api/wwwroot/ui/ *.db +/Blog.Core.Api/WMBlog.db-journal +Logs diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 77d681f1..3bf64399 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -26,21 +26,25 @@ + + + + @@ -51,8 +55,6 @@ - - diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 89cb3213..488903a0 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -760,7 +760,7 @@ Values控制器
    - + ValuesController diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 1347ca16..677eb138 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -1,7 +1,7 @@ using AutoMapper; using Blog.Core.Common; using Blog.Core.Common.HttpContextUser; -using Blog.Core.Common.HttpPolly; +using Blog.Core.Common.Https.HttpPolly; using Blog.Core.Common.WebApiClients.HttpApis; using Blog.Core.EventBus; using Blog.Core.EventBus.EventHandling; diff --git a/Blog.Core.Api/Filter/GlobalExceptionFilter.cs b/Blog.Core.Api/Filter/GlobalExceptionFilter.cs index da119a6e..44c6124c 100644 --- a/Blog.Core.Api/Filter/GlobalExceptionFilter.cs +++ b/Blog.Core.Api/Filter/GlobalExceptionFilter.cs @@ -3,14 +3,10 @@ using Blog.Core.Common.LogHelper; using Blog.Core.Hubs; using Blog.Core.Model; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.SignalR; -using Microsoft.Extensions.Logging; using StackExchange.Profiling; -using System; namespace Blog.Core.Filter { @@ -54,7 +50,7 @@ public void OnException(ExceptionContext context) MiniProfiler.Current.CustomTiming("Errors:", json.msg); - //采用log4net 进行错误日志记录 + //进行错误日志记录 _loggerHelper.LogError(json.msg + WriteLog(json.msg, context.Exception)); if (AppSettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) { diff --git a/Blog.Core.Api/Log4net.config b/Blog.Core.Api/Log4net.config deleted file mode 100644 index 61bd3739..00000000 --- a/Blog.Core.Api/Log4net.config +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index f5223beb..f7790a8c 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -1,20 +1,16 @@ // 以下为asp.net 6.0的写法,如果用5.0,请看Program.five.cs文件 -using System.IdentityModel.Tokens.Jwt; -using System.Reflection; -using System.Text; + using Autofac; using Autofac.Extensions.DependencyInjection; using Blog.Core; using Blog.Core.Common; using Blog.Core.Common.Core; -using Blog.Core.Common.LogHelper; using Blog.Core.Extensions; using Blog.Core.Extensions.Apollo; using Blog.Core.Extensions.Middlewares; +using Blog.Core.Extensions.ServiceExtensions; using Blog.Core.Filter; using Blog.Core.Hubs; -using Blog.Core.IServices; -using Blog.Core.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; @@ -22,34 +18,38 @@ using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; +using Serilog; +using System.IdentityModel.Tokens.Jwt; +using System.Reflection; +using System.Text; +using Blog.Core.Common.Https; +using Blog.Core.Serilog.Utility; var builder = WebApplication.CreateBuilder(args); + + // 1、配置host与容器 builder.Host -.UseServiceProviderFactory(new AutofacServiceProviderFactory()) -.ConfigureContainer(builder => -{ - builder.RegisterModule(new AutofacModuleRegister()); - builder.RegisterModule(); -}) -.ConfigureLogging((hostingContext, builder) => -{ - builder.AddFilter("System", LogLevel.Error); - builder.AddFilter("Microsoft", LogLevel.Error); - builder.SetMinimumLevel(LogLevel.Error); - builder.AddLog4Net(Path.Combine(Directory.GetCurrentDirectory(), "Log4net.config")); -}) -.ConfigureAppConfiguration((hostingContext, config) => -{ - config.Sources.Clear(); - config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false); - config.AddConfigurationApollo("appsettings.apollo.json"); -}); + .UseServiceProviderFactory(new AutofacServiceProviderFactory()) + .ConfigureContainer(builder => + { + builder.RegisterModule(new AutofacModuleRegister()); + builder.RegisterModule(); + }) + .ConfigureAppConfiguration((hostingContext, config) => + { + config.Sources.Clear(); + config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false); + config.AddConfigurationApollo("appsettings.apollo.json"); + }); +builder.ConfigureApplication(); // 2、配置服务 builder.Services.AddSingleton(new AppSettings(builder.Configuration)); -builder.Services.AddSingleton(new LogLock(builder.Environment.ContentRootPath)); + + + builder.Services.AddUiFilesZipSetup(builder.Environment); Permissions.IsUseIds4 = AppSettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool(); @@ -62,6 +62,9 @@ builder.Services.AddRedisCacheSetup(); builder.Services.AddSqlsugarSetup(); builder.Services.AddDbSetup(); + +builder.Host.AddSerilogSetup(); + builder.Services.AddAutoMapperSetup(); builder.Services.AddCorsSetup(); builder.Services.AddMiniProfilerSetup(); @@ -92,34 +95,34 @@ builder.Services.AddSignalR().AddNewtonsoftJsonProtocol(); builder.Services.AddScoped(); builder.Services.Configure(x => x.AllowSynchronousIO = true) - .Configure(x => x.AllowSynchronousIO = true); + .Configure(x => x.AllowSynchronousIO = true); builder.Services.AddDistributedMemoryCache(); builder.Services.AddSession(); builder.Services.AddHttpPollySetup(); builder.Services.AddControllers(o => -{ - o.Filters.Add(typeof(GlobalExceptionsFilter)); - //o.Conventions.Insert(0, new GlobalRouteAuthorizeConvention()); - o.Conventions.Insert(0, new GlobalRoutePrefixFilter(new RouteAttribute(RoutePrefix.Name))); -}) -.AddNewtonsoftJson(options => -{ - options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; - options.SerializerSettings.ContractResolver = new DefaultContractResolver(); - options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; - //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; - options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; - options.SerializerSettings.Converters.Add(new StringEnumConverter()); -}) -//.AddFluentValidation(config => -//{ -// //程序集方式添加验证 -// config.RegisterValidatorsFromAssemblyContaining(typeof(UserRegisterVoValidator)); -// //是否与MvcValidation共存 -// config.DisableDataAnnotationsValidation = true; -//}) -; + { + o.Filters.Add(typeof(GlobalExceptionsFilter)); + //o.Conventions.Insert(0, new GlobalRouteAuthorizeConvention()); + o.Conventions.Insert(0, new GlobalRoutePrefixFilter(new RouteAttribute(RoutePrefix.Name))); + }) + .AddNewtonsoftJson(options => + { + options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; + options.SerializerSettings.ContractResolver = new DefaultContractResolver(); + options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; + //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; + options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; + options.SerializerSettings.Converters.Add(new StringEnumConverter()); + }) + //.AddFluentValidation(config => + //{ + // //程序集方式添加验证 + // config.RegisterValidatorsFromAssemblyContaining(typeof(UserRegisterVoValidator)); + // //是否与MvcValidation共存 + // config.DisableDataAnnotationsValidation = true; + //}) + ; builder.Services.AddEndpointsApiExplorer(); @@ -159,12 +162,23 @@ app.UseStaticFiles(); app.UseCookiePolicy(); app.UseStatusCodePages(); +app.UseSerilogRequestLogging(options => +{ + options.GetLevel = SerilogRequestUtility.GetRequestLevel; + options.EnrichDiagnosticContext = (diagnosticContext, httpContext) => + { + diagnosticContext.Set("RequestHost", httpContext.Request.Host.Value); + diagnosticContext.Set("RequestScheme", httpContext.Request.Scheme); + diagnosticContext.Set("RequestIp", httpContext.GetRequestIp()); + }; +}); app.UseRouting(); if (builder.Configuration.GetValue("AppSettings:UseLoadTest")) { app.UseMiddleware(); } + app.UseAuthentication(); app.UseAuthorization(); app.UseMiniProfilerMiddleware(); diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index bc1630f1..1364d6a0 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -39,7 +39,6 @@ public void ConfigureServices(IServiceCollection services) { // 以下code可能与文章中不一样,对代码做了封装,具体查看右侧 Extensions 文件夹. services.AddSingleton(new AppSettings(Configuration)); - services.AddSingleton(new LogLock(Env.ContentRootPath)); services.AddUiFilesZipSetup(Env); Permissions.IsUseIds4 = AppSettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool(); diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 3c117375..c712054c 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -1,98 +1,92 @@ { - "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 - "Logging": { - "LogLevel": { - "Default": "Information", //加入Default否则log4net本地写入不了日志 - "Blog.Core.AuthHelper.ApiResponseHandler": "Error" - }, - "Debug": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Warning" - } - }, - "Console": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Warning", - "Microsoft.Hosting.Lifetime": "Debug" - } - }, - "Log4Net": { - "Name": "Blog.Core" - } - }, - "AllowedHosts": "*", - "Redis": { - "ConnectionString": "127.0.0.1:6319,password=admin" + "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 + "Serilog": { + "MinimumLevel": { + "Default": "Debug", + "Override": { + "Microsoft": "Information", + "Microsoft.AspNetCore": "Warning", + "System": "Warning", + "System.Net.Http.HttpClient": "Warning", + "Hangfire": "Information", + "Magicodes": "Warning", + "DotNetCore.CAP": "Information", + "Savorboard.CAP": "Information", + "Quartz": "Information" + } + } + }, + "AllowedHosts": "*", + "Redis": { + "ConnectionString": "127.0.0.1:6319,password=admin" + }, + "RabbitMQ": { + "Enabled": false, + "Connection": "118.25.251.13", + "UserName": "", + "Password": "!", + "RetryCount": 3 + }, + "Kafka": { + "Enabled": false, + "Servers": "localhost:9092", + "Topic": "blog", + "GroupId": "blog-consumer", + "NumPartitions": 3 //主题分区数量 + }, + "EventBus": { + "Enabled": false, + "SubscriptionClientName": "Blog.Core" + }, + "AppSettings": { + "RedisCachingAOP": { + "Enabled": false }, - "RabbitMQ": { - "Enabled": false, - "Connection": "118.25.251.13", - "UserName": "", - "Password": "!", - "RetryCount": 3 + "MemoryCachingAOP": { + "Enabled": true }, - "Kafka": { - "Enabled": false, - "Servers": "localhost:9092", - "Topic": "blog", - "GroupId": "blog-consumer", - "NumPartitions": 3 //主题分区数量 + "LogAOP": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": true + } }, - "EventBus": { - "Enabled": false, - "SubscriptionClientName": "Blog.Core" + "TranAOP": { + "Enabled": true }, - "AppSettings": { - "RedisCachingAOP": { - "Enabled": false - }, - "MemoryCachingAOP": { - "Enabled": true - }, - "LogAOP": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - } - }, - "TranAOP": { - "Enabled": true - }, - "SqlAOP": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": false - }, - "LogToConsole": { - "Enabled": true - } - }, - "Date": "2018-08-28", - "SeedDBEnabled": true, //只生成表结构 - "SeedDBDataEnabled": true, //生成表,并初始化数据 - "Author": "Blog.Core", - "SvcName": "", // /svc/blog - "UseLoadTest": false + "SqlAOP": { + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": false + }, + "LogToConsole": { + "Enabled": true + } }, + "Date": "2018-08-28", + "SeedDBEnabled": true, //只生成表结构 + "SeedDBDataEnabled": true, //生成表,并初始化数据 + "Author": "Blog.Core", + "SvcName": "", // /svc/blog + "UseLoadTest": false + }, - // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; - // *** 单库操作,把 MutiDBEnabled 设为false ***; - // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; - // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 - - "MainDB": "WMBLOG_SQLITE", //当前项目的主库,所对应的连接字符串的Enabled必须为true - "MutiDBEnabled": false, //是否开启多库模式 - "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer - "DBS": [ - /* + // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; + // *** 单库操作,把 MutiDBEnabled 设为false ***; + // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; + // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 + //Log:日志库; + "MainDB": "WMBLOG_SQLITE", //当前项目的主库,所对应的连接字符串的Enabled必须为true + "MutiDBEnabled": true, //是否开启多库模式 + "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer + "DBS": [ + /* 对应下边的 DBType MySql = 0, SqlServer = 1, @@ -102,225 +96,232 @@ Dm = 5,//达梦 Kdbndp = 6,//人大金仓 */ - { - "ConnId": "WMBLOG_SQLITE", - "DBType": 2, - "Enabled": true, - "HitRate": 50, // 值越大,优先级越高 - "Connection": "WMBlog.db" //sqlite只写数据库名就行 - }, - { - "ConnId": "WMBLOG_MSSQL_1", - "DBType": 1, - "Enabled": false, - "HitRate": 40, - "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", - "ProviderName": "System.Data.SqlClient" - }, - { - "ConnId": "WMBLOG_MSSQL_2", - "DBType": 1, - "Enabled": false, - "HitRate": 30, - "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", - "ProviderName": "System.Data.SqlClient" - }, - { - "ConnId": "WMBLOG_MYSQL", - "DBType": 0, - "Enabled": false, - "HitRate": 20, - "Connection": "server=localhost;Database=blog;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" - }, - { - "ConnId": "WMBLOG_MYSQL_2", - "DBType": 0, - "Enabled": false, - "HitRate": 20, - "Connection": "server=localhost;Database=blogcore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" - }, - { - "ConnId": "WMBLOG_ORACLE", - "DBType": 3, - "Enabled": false, - "HitRate": 10, - "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" - }, - { - "ConnId": "WMBLOG_DM", - "DBType": 5, - "Enabled": false, - "HitRate": 10, - "Connection": "PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA;" - }, - { - "ConnId": "WMBLOG_KDBNDP", - "DBType": 6, - "Enabled": false, - "HitRate": 10, - "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" - } - ], - "Audience": { - "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //不要太短,16位+ - "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", //安全。内容就是Secret - "Issuer": "Blog.Core", - "Audience": "wr" + { + "ConnId": "WMBLOG_SQLITE", + "DBType": 2, + "Enabled": true, + "HitRate": 50, // 值越大,优先级越高 + "Connection": "WMBlog.db" //sqlite只写数据库名就行 }, - "Mongo": { - "ConnectionString": "mongodb://nosql.data", - "Database": "BlogCoreDb" + { + "ConnId": "Log", + "DBType": 2, + "Enabled": true, + "HitRate": 50, // 值越大,优先级越高 + "Connection": "WMBlogLog.db" //sqlite只写数据库名就行 }, - "Startup": { - "Domain": "http://localhost:9291", - "Cors": { - "PolicyName": "CorsIpAccess", //策略名称 - "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 - // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 - // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 - "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688" - }, - "AppConfigAlert": { - "Enabled": true - }, - "ApiName": "Blog.Core", - "IdentityServer4": { - "Enabled": false, // 这里默认是false,表示使用jwt,如果设置为true,则表示系统使用Ids4模式 - "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 - "ApiName": "blog.core.api" // 资源服务器 - }, - "Authing": { - "Enabled": false, - "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", - "Audience": "63d51c4205c2849803be5178", - "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" - }, - "RedisMq": { - "Enabled": false //redis 消息队列 - }, - "MiniProfiler": { - "Enabled": false //性能分析开启 - }, - "Nacos": { - "Enabled": false //Nacos注册中心 - } + { + "ConnId": "WMBLOG_MSSQL_1", + "DBType": 1, + "Enabled": false, + "HitRate": 40, + "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ProviderName": "System.Data.SqlClient" }, - "Middleware": { - "RequestResponseLog": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - } - }, - "IPLog": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - } - }, - "RecordAccessLogs": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - }, - "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," - }, - "SignalR": { - "Enabled": false - }, - "SignalRSendLog": { - "Enabled": false - }, - "QuartzNetJob": { - "Enabled": true - }, - "Consul": { - "Enabled": false - }, - "IpRateLimit": { - "Enabled": true - } + { + "ConnId": "WMBLOG_MSSQL_2", + "DBType": 1, + "Enabled": false, + "HitRate": 30, + "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ProviderName": "System.Data.SqlClient" }, - "IpRateLimiting": { - "EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each - "StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter - "RealIpHeader": "X-Real-IP", - "ClientIdHeader": "X-ClientId", - "IpWhitelist": [], //白名单 - "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], - "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], - "QuotaExceededResponse": { - "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", - "ContentType": "application/json", - "StatusCode": 429 - }, - "HttpStatusCode": 429, //返回状态码 - "GeneralRules": [ //api规则,结尾一定要带* - { - "Endpoint": "*:/api/blog*", - "Period": "1m", - "Limit": 20 - }, - { - "Endpoint": "*/api/*", - "Period": "1s", - "Limit": 3 - }, - { - "Endpoint": "*/api/*", - "Period": "1m", - "Limit": 30 - }, - { - "Endpoint": "*/api/*", - "Period": "12h", - "Limit": 500 - } - ] - + { + "ConnId": "WMBLOG_MYSQL", + "DBType": 0, + "Enabled": false, + "HitRate": 20, + "Connection": "server=localhost;Database=blog;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" + }, + { + "ConnId": "WMBLOG_MYSQL_2", + "DBType": 0, + "Enabled": false, + "HitRate": 20, + "Connection": "server=localhost;Database=blogcore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" + }, + { + "ConnId": "WMBLOG_ORACLE", + "DBType": 3, + "Enabled": false, + "HitRate": 10, + "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" + }, + { + "ConnId": "WMBLOG_DM", + "DBType": 5, + "Enabled": false, + "HitRate": 10, + "Connection": "PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA;" + }, + { + "ConnId": "WMBLOG_KDBNDP", + "DBType": 6, + "Enabled": false, + "HitRate": 10, + "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" + } + ], + "Audience": { + "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //不要太短,16位+ + "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", //安全。内容就是Secret + "Issuer": "Blog.Core", + "Audience": "wr" + }, + "Mongo": { + "ConnectionString": "mongodb://nosql.data", + "Database": "BlogCoreDb" + }, + "Startup": { + "Domain": "http://localhost:9291", + "Cors": { + "PolicyName": "CorsIpAccess", //策略名称 + "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 + // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 + // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 + "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688" + }, + "AppConfigAlert": { + "Enabled": true + }, + "ApiName": "Blog.Core", + "IdentityServer4": { + "Enabled": false, // 这里默认是false,表示使用jwt,如果设置为true,则表示系统使用Ids4模式 + "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 + "ApiName": "blog.core.api" // 资源服务器 }, - "ConsulSetting": { - "ServiceName": "BlogCoreService", - "ServiceIP": "localhost", - "ServicePort": "9291", - "ServiceHealthCheck": "/healthcheck", - "ConsulAddress": "http://localhost:8500" + "Authing": { + "Enabled": false, + "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", + "Audience": "63d51c4205c2849803be5178", + "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" }, - "PayInfo": { //建行聚合支付信息 - "MERCHANTID": "", //商户号 - "POSID": "", //柜台号 - "BRANCHID": "", //分行号 - "pubKey": "", //公钥 - "USER_ID": "", //操作员号 - "PASSWORD": "", //密码 - "OutAddress": "http://127.0.0.1:12345" //外联地址 + "RedisMq": { + "Enabled": false //redis 消息队列 }, - "nacos": { - "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 - "DefaultTimeOut": 15000, // 默认超时时间 - "Namespace": "public", // 命名空间 - "ListenInterval": 10000, // 监听的频率 - "ServiceName": "blog.Core.Api", // 服务名 - "Port": "9291", // 服务端口号 - "RegisterEnabled": true // 是否直接注册nacos + "MiniProfiler": { + "Enabled": false //性能分析开启 }, - "LogFiedOutPutConfigs": { - "tcpAddressHost": "", // 输出elk的tcp连接地址 - "tcpAddressPort": 0, // 输出elk的tcp端口号 - "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 - { - "FiedName": "applicationName", - "FiedValue": "Blog.Core.Api" - } - ] + "Nacos": { + "Enabled": false //Nacos注册中心 } + }, + "Middleware": { + "RequestResponseLog": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": true + } + }, + "IPLog": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": true + } + }, + "RecordAccessLogs": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": true + }, + "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," + }, + "SignalR": { + "Enabled": false + }, + "SignalRSendLog": { + "Enabled": false + }, + "QuartzNetJob": { + "Enabled": true + }, + "Consul": { + "Enabled": false + }, + "IpRateLimit": { + "Enabled": true + } + }, + "IpRateLimiting": { + "EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each + "StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter + "RealIpHeader": "X-Real-IP", + "ClientIdHeader": "X-ClientId", + "IpWhitelist": [], //白名单 + "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], + "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], + "QuotaExceededResponse": { + "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", + "ContentType": "application/json", + "StatusCode": 429 + }, + "HttpStatusCode": 429, //返回状态码 + "GeneralRules": [ //api规则,结尾一定要带* + { + "Endpoint": "*:/api/blog*", + "Period": "1m", + "Limit": 20 + }, + { + "Endpoint": "*/api/*", + "Period": "1s", + "Limit": 3 + }, + { + "Endpoint": "*/api/*", + "Period": "1m", + "Limit": 30 + }, + { + "Endpoint": "*/api/*", + "Period": "12h", + "Limit": 500 + } + ] + + }, + "ConsulSetting": { + "ServiceName": "BlogCoreService", + "ServiceIP": "localhost", + "ServicePort": "9291", + "ServiceHealthCheck": "/healthcheck", + "ConsulAddress": "http://localhost:8500" + }, + "PayInfo": { //建行聚合支付信息 + "MERCHANTID": "", //商户号 + "POSID": "", //柜台号 + "BRANCHID": "", //分行号 + "pubKey": "", //公钥 + "USER_ID": "", //操作员号 + "PASSWORD": "", //密码 + "OutAddress": "http://127.0.0.1:12345" //外联地址 + }, + "nacos": { + "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 + "DefaultTimeOut": 15000, // 默认超时时间 + "Namespace": "public", // 命名空间 + "ListenInterval": 10000, // 监听的频率 + "ServiceName": "blog.Core.Api", // 服务名 + "Port": "9291", // 服务端口号 + "RegisterEnabled": true // 是否直接注册nacos + }, + "LogFiedOutPutConfigs": { + "tcpAddressHost": "", // 输出elk的tcp连接地址 + "tcpAddressPort": 0, // 输出elk的tcp端口号 + "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 + { + "FiedName": "applicationName", + "FiedValue": "Blog.Core.Api" + } + ] + } } diff --git a/Blog.Core.Api/skyapm.json b/Blog.Core.Api/skyapm.json index cd5ed0ee..cdb0e606 100644 --- a/Blog.Core.Api/skyapm.json +++ b/Blog.Core.Api/skyapm.json @@ -11,7 +11,7 @@ }, "Logging": { "Level": "Information", - "FilePath": "Log/skyapm-{Date}.log" + "FilePath": "Logs/Skyapm/skyapm-{Date}.log" }, "Transport": { "Interval": 3000, diff --git a/Blog.Core.Common/App.cs b/Blog.Core.Common/App.cs index 008aea5d..c2e2e706 100644 --- a/Blog.Core.Common/App.cs +++ b/Blog.Core.Common/App.cs @@ -1,14 +1,24 @@ using Blog.Core.Common.Core; using Blog.Core.Common.HttpContextUser; +using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Options; using System; +using System.Linq; namespace Blog.Core.Common; public class App { - public static IServiceProvider RootServices => InternalApp.RootServices ; + public static IServiceProvider RootServices => InternalApp.RootServices; + + /// 获取Web主机环境,如,是否是开发环境,生产环境等 + public static IWebHostEnvironment WebHostEnvironment => InternalApp.WebHostEnvironment; + + /// 获取泛型主机环境,如,是否是开发环境,生产环境等 + public static IHostEnvironment HostEnvironment => InternalApp.HostEnvironment; /// /// 获取请求上下文 @@ -16,4 +26,55 @@ public class App public static HttpContext HttpContext => RootServices?.GetService()?.HttpContext; public static IUser User => HttpContext == null ? null : RootServices?.GetService(); + + /// 解析服务提供器 + /// + /// + public static IServiceProvider GetServiceProvider(Type serviceType, bool mustBuild = false) + { + if (App.HostEnvironment == null || App.RootServices != null && + InternalApp.InternalServices + .Where((u => u.ServiceType == (serviceType.IsGenericType ? serviceType.GetGenericTypeDefinition() : serviceType))) + .Any((u => u.Lifetime == ServiceLifetime.Singleton))) + return App.RootServices; + HttpContext httpContext = App.HttpContext; + if (httpContext?.RequestServices != null) + return httpContext.RequestServices; + if (App.RootServices != null) + { + IServiceScope scope = App.RootServices.CreateScope(); + return scope.ServiceProvider; + } + + if (mustBuild) + { + throw new ApplicationException("当前不可用,必须要等到 WebApplication Build后"); + } + + ServiceProvider serviceProvider = InternalApp.InternalServices.BuildServiceProvider(); + return serviceProvider; + } + + + public static TService GetService(bool mustBuild = true) where TService : class => App.GetService(typeof(TService), null, mustBuild) as TService; + + /// 获取请求生存周期的服务 + /// + /// + /// + /// + public static TService GetService(IServiceProvider serviceProvider, bool mustBuild = true) where TService : class => App.GetService(typeof(TService), serviceProvider, mustBuild) as TService; + + /// 获取请求生存周期的服务 + /// + /// + /// + /// + public static object GetService(Type type, IServiceProvider serviceProvider = null, bool mustBuild = true) => (serviceProvider ?? App.GetServiceProvider(type, mustBuild)).GetService(type); + + public static TOptions GetOptions(IServiceProvider serviceProvider = null) where TOptions : class, new() + { + IOptions service = App.GetService>(serviceProvider ?? App.RootServices, false); + return service?.Value; + } } \ No newline at end of file diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index fc0abb9d..0662bac5 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -18,20 +18,23 @@ - + - + + + + + - - - + + @@ -45,6 +48,7 @@ + diff --git a/Blog.Core.Common/Const/SqlSugarConst.cs b/Blog.Core.Common/Const/SqlSugarConst.cs new file mode 100644 index 00000000..f5efd7e2 --- /dev/null +++ b/Blog.Core.Common/Const/SqlSugarConst.cs @@ -0,0 +1,9 @@ +namespace Blog.Core.Common.Const; + +public class SqlSugarConst +{ + /// + /// 默认Log数据库标识 + /// + public const string LogConfigId = "Log"; +} \ No newline at end of file diff --git a/Blog.Core.Common/Core/InternalApp.cs b/Blog.Core.Common/Core/InternalApp.cs index c1ae8dcd..62e04724 100644 --- a/Blog.Core.Common/Core/InternalApp.cs +++ b/Blog.Core.Common/Core/InternalApp.cs @@ -1,17 +1,34 @@ -using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; namespace Blog.Core.Common.Core; public static class InternalApp { + public static IServiceCollection InternalServices; + /// 根服务 public static IServiceProvider RootServices; - public static void ConfigureApplication(this WebApplication app) + /// 获取Web主机环境 + public static IWebHostEnvironment WebHostEnvironment; + + /// 获取泛型主机环境 + public static IHostEnvironment HostEnvironment; + + public static void ConfigureApplication(this WebApplicationBuilder wab) { - app.Lifetime.ApplicationStarted.Register(() => { InternalApp.RootServices = app.Services; }); + HostEnvironment = wab.Environment; + WebHostEnvironment = wab.Environment; + InternalServices = wab.Services; + } + - app.Lifetime.ApplicationStopped.Register(() => { InternalApp.RootServices = null; }); + public static void ConfigureApplication(this IHost app) + { + RootServices = app.Services; } } \ No newline at end of file diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs index 3d83b002..c3d374ae 100644 --- a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -1,12 +1,40 @@ -using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Common.LogHelper; +using Blog.Core.Model.Models.RootTkey; using Blog.Core.Model.Tenants; using SqlSugar; +using StackExchange.Profiling; using System; +using Serilog; namespace Blog.Core.Common.DB.Aop; public static class SqlSugarAop { + public static void OnLogExecuting(ISqlSugarClient sqlSugarScopeProvider, string sql, SugarParameter[] p, ConnectionConfig config) + { + try + { + MiniProfiler.Current.CustomTiming($"ConnId:[{config.ConfigId}] SQL:", GetParas(p) + "【SQL语句】:" + sql); + + if (!AppSettings.app(new string[] { "AppSettings", "SqlAOP", "Enabled" }).ObjToBool()) return; + + if (AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToConsole", "Enabled" }).ObjToBool() || + AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToFile", "Enabled" }).ObjToBool() || + AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToDB", "Enabled" }).ObjToBool()) + { + using (LogContextExtension.Create.SqlAopPushProperty(sqlSugarScopeProvider)) + { + Log.Information("------------------ \r\n ConnId:[{ConnId}]【SQL语句】: \r\n {Sql}", + config.ConfigId, UtilMethods.GetSqlString(config.DbType, sql, p)); + } + } + } + catch (Exception e) + { + Log.Error("Error occured OnLogExcuting:" + e); + } + } + public static void DataExecuting(object oldValue, DataFilterModel entityInfo) { if (entityInfo.EntityValue is BaseEntity root) diff --git a/Blog.Core.Common/DB/BaseDBConfig.cs b/Blog.Core.Common/DB/BaseDBConfig.cs index 1d86369a..d8c3ee50 100644 --- a/Blog.Core.Common/DB/BaseDBConfig.cs +++ b/Blog.Core.Common/DB/BaseDBConfig.cs @@ -12,6 +12,7 @@ public class BaseDBConfig * 目前是多库操作,默认加载的是appsettings.json设置为true的第一个db连接。 */ public static (List allDbs, List slaveDbs) MutiConnectionString => MutiInitConn(); + public static ConnectionConfig LogConfig; //日志库 private static string DifDBConnOfSecurity(params string[] conn) { @@ -107,8 +108,6 @@ private static MutiDBOperate SpecialDbString(MutiDBOperate mutiDBOperate) return mutiDBOperate; } - - } diff --git a/Blog.Core.Common/Helper/RecursionHelper.cs b/Blog.Core.Common/Helper/RecursionHelper.cs index 9b27a37d..b4cbd682 100644 --- a/Blog.Core.Common/Helper/RecursionHelper.cs +++ b/Blog.Core.Common/Helper/RecursionHelper.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; namespace Blog.Core.Common.Helper @@ -8,9 +9,8 @@ namespace Blog.Core.Common.Helper /// public static class RecursionHelper { - public static void LoopToAppendChildren(List all, PermissionTree curItem, int pid, bool needbtn) + public static void LoopToAppendChildren(List all, PermissionTree curItem, long pid, bool needbtn) { - var subItems = all.Where(ee => ee.Pid == curItem.value).ToList(); var btnItems = subItems.Where(ss => ss.isbtn == true).ToList(); @@ -28,6 +28,7 @@ public static void LoopToAppendChildren(List all, PermissionTree { subItems = subItems.Where(ss => ss.isbtn == false).ToList(); } + if (subItems.Count > 0) { curItem.children = new List(); @@ -49,14 +50,15 @@ public static void LoopToAppendChildren(List all, PermissionTree { //subItem.disabled = true;//禁用当前节点 } + LoopToAppendChildren(all, subItem, pid, needbtn); } } + public static void LoopToAppendChildren(List all, DepartmentTree curItem, int pid) { - var subItems = all.Where(ee => ee.Pid == curItem.value).ToList(); - + if (subItems.Count > 0) { curItem.children = new List(); @@ -73,15 +75,14 @@ public static void LoopToAppendChildren(List all, DepartmentTree { //subItem.disabled = true;//禁用当前节点 } + LoopToAppendChildren(all, subItem, pid); } } - public static void LoopNaviBarAppendChildren(List all, NavigationBar curItem) { - var subItems = all.Where(ee => ee.pid == curItem.id).ToList(); if (subItems.Count > 0) @@ -102,7 +103,6 @@ public static void LoopNaviBarAppendChildren(List all, Navigation } - public static void LoopToAppendChildrenT(List all, T curItem, string parentIdName = "Pid", string idName = "value", string childrenName = "children") { var subItems = all.Where(ee => ee.GetType().GetProperty(parentIdName).GetValue(ee, null).ToString() == curItem.GetType().GetProperty(idName).GetValue(curItem, null).ToString()).ToList(); @@ -113,12 +113,47 @@ public static void LoopToAppendChildrenT(List all, T curItem, string paren LoopToAppendChildrenT(all, subItem); } } + + /// + /// 将父子级数据结构转换为普通list + /// + /// + /// + public static List TreeToList(List list, Action> action = null) + { + List results = new List(); + foreach (var item in list) + { + results.Add(item); + OperationChildData(results, item, action); + } + + return results; + } + + /// + /// 递归子级数据 + /// + /// 树形列表数据 + /// Item + public static void OperationChildData(List allList, T item, Action> action) + { + dynamic dynItem = item; + if (dynItem.Children == null) return; + if (dynItem.Children.Count <= 0) return; + allList.AddRange(dynItem.Children); + foreach (var subItem in dynItem.Children) + { + action?.Invoke(item, subItem, allList); + OperationChildData(allList, subItem, action); + } + } } public class PermissionTree { - public int value { get; set; } - public int Pid { get; set; } + public long value { get; set; } + public long Pid { get; set; } public string label { get; set; } public int order { get; set; } public bool isbtn { get; set; } @@ -139,8 +174,8 @@ public class DepartmentTree public class NavigationBar { - public int id { get; set; } - public int pid { get; set; } + public long id { get; set; } + public long pid { get; set; } public int order { get; set; } public string name { get; set; } public bool IsHide { get; set; } = false; @@ -158,15 +193,13 @@ public class NavigationBarMeta public bool requireAuth { get; set; } = true; public bool NoTabPage { get; set; } = false; public bool keepAlive { get; set; } = false; - - } public class NavigationBarPro { - public int id { get; set; } - public int parentId { get; set; } + public long id { get; set; } + public long parentId { get; set; } public int order { get; set; } public string name { get; set; } public bool IsHide { get; set; } = false; @@ -184,4 +217,4 @@ public class NavigationBarMetaPro public string icon { get; set; } public bool show { get; set; } = false; } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/HttpPolly/HttpPollyHelper.cs b/Blog.Core.Common/Https/HttpPolly/HttpPollyHelper.cs similarity index 98% rename from Blog.Core.Common/HttpPolly/HttpPollyHelper.cs rename to Blog.Core.Common/Https/HttpPolly/HttpPollyHelper.cs index f1a1e84c..1187d711 100644 --- a/Blog.Core.Common/HttpPolly/HttpPollyHelper.cs +++ b/Blog.Core.Common/Https/HttpPolly/HttpPollyHelper.cs @@ -6,7 +6,7 @@ using System.Text; using System.Threading.Tasks; -namespace Blog.Core.Common.HttpPolly +namespace Blog.Core.Common.Https.HttpPolly { public class HttpPollyHelper : IHttpPollyHelper { @@ -35,7 +35,7 @@ public async Task PostAsync(HttpEnum httpEnum, string url, R request, D var stringContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, stringContent); - + if (response.StatusCode == System.Net.HttpStatusCode.OK) { string result = await response.Content.ReadAsStringAsync(); @@ -72,7 +72,7 @@ public async Task PostAsync(HttpEnum httpEnum, string url, string request, var stringContent = new StringContent(request, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, stringContent); - + if (response.StatusCode == System.Net.HttpStatusCode.OK) { string result = await response.Content.ReadAsStringAsync(); @@ -110,7 +110,7 @@ public async Task PostAsync(HttpEnum httpEnum, string url, R request, var stringContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, stringContent); - + if (response.StatusCode == System.Net.HttpStatusCode.OK) { return await response.Content.ReadAsStringAsync(); @@ -146,7 +146,7 @@ public async Task PostAsync(HttpEnum httpEnum, string url, string reques var stringContent = new StringContent(request, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, stringContent); - + if (response.StatusCode == System.Net.HttpStatusCode.OK) { return await response.Content.ReadAsStringAsync(); @@ -182,7 +182,7 @@ public async Task GetAsync(HttpEnum httpEnum, string url, Dictionary GetAsync(HttpEnum httpEnum, string url, Dictionary PutAsync(HttpEnum httpEnum, string url, R request, Di var stringContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var response = await client.PutAsync(url, stringContent); - + if (response.StatusCode == System.Net.HttpStatusCode.OK) { string result = await response.Content.ReadAsStringAsync(); @@ -294,7 +294,7 @@ public async Task PutAsync(HttpEnum httpEnum, string url, string request, var stringContent = new StringContent(request, Encoding.UTF8, "application/json"); var response = await client.PutAsync(url, stringContent); - + if (response.StatusCode == System.Net.HttpStatusCode.OK) { string result = await response.Content.ReadAsStringAsync(); @@ -331,7 +331,7 @@ public async Task DeleteAsync(HttpEnum httpEnum, string url, Dictionary(context, "X-Forwarded-For")).FirstOrDefault(); + + if (string.IsNullOrWhiteSpace(ip)) + ip = SplitCsv(GetHeaderValueAs(context, "X-Real-IP")).FirstOrDefault(); + + if (string.IsNullOrWhiteSpace(ip) && context.Connection?.RemoteIpAddress != null) + ip = context.Connection.RemoteIpAddress.ToString(); + + if (string.IsNullOrWhiteSpace(ip)) + ip = GetHeaderValueAs(context, "REMOTE_ADDR"); + + return ip; + } + + public static bool IsLocal(this HttpContext context) + { + return GetRequestIp(context) is "127.0.0.1" or "::1" || context.Request?.IsLocal() == true; + } + + + public static bool IsLocal(this HttpRequest req) + { + var connection = req.HttpContext.Connection; + if (connection.RemoteIpAddress != null) + { + if (connection.LocalIpAddress != null) + { + return connection.RemoteIpAddress.Equals(connection.LocalIpAddress); + } + else + { + return IPAddress.IsLoopback(connection.RemoteIpAddress); + } + } + + // for in memory TestServer or when dealing with default connection info + if (connection.RemoteIpAddress == null && connection.LocalIpAddress == null) + { + return true; + } + + return false; + } + + + private static T GetHeaderValueAs(HttpContext context, string headerName) + { + if (context.Request?.Headers?.TryGetValue(headerName, out var values) ?? false) + { + string rawValues = values.ToString(); + + if (!string.IsNullOrWhiteSpace(rawValues)) + return (T) Convert.ChangeType(values.ToString(), typeof(T)); + } + + return default; + } + + private static List SplitCsv(string csvList) + { + if (string.IsNullOrWhiteSpace(csvList)) + return new List(); + + return csvList + .TrimEnd(',') + .Split(',') + .AsEnumerable() + .Select(s => s.Trim()) + .ToList(); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Hubs/ChatHub.cs b/Blog.Core.Common/Hubs/ChatHub.cs index ff15c97f..1c58c8a0 100644 --- a/Blog.Core.Common/Hubs/ChatHub.cs +++ b/Blog.Core.Common/Hubs/ChatHub.cs @@ -83,7 +83,8 @@ public async Task GetLatestCount(string random) //2、服务端主动向客户端发送数据,名字千万不能错 if (AppSettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) { - await Clients.All.ReceiveUpdate(LogLock.GetLogData()); + //TODO 主动发送错误消息 + //await Clients.All.ReceiveUpdate(LogLock.GetLogData()); } diff --git a/Blog.Core.Common/LogHelper/LogContextExtension.cs b/Blog.Core.Common/LogHelper/LogContextExtension.cs new file mode 100644 index 00000000..bce80cbb --- /dev/null +++ b/Blog.Core.Common/LogHelper/LogContextExtension.cs @@ -0,0 +1,42 @@ +using Serilog.Context; +using SqlSugar; +using System; +using System.Collections.Generic; + +namespace Blog.Core.Common.LogHelper; + +public class LogContextExtension : IDisposable +{ + private readonly Stack _disposableStack = new Stack(); + + public static LogContextExtension Create => new(); + + public void AddStock(IDisposable disposable) + { + _disposableStack.Push(disposable); + } + + public IDisposable SqlAopPushProperty(ISqlSugarClient db) + { + AddStock(LogContext.PushProperty(LogContextStatic.LogSource, LogContextStatic.AopSql)); + AddStock(LogContext.PushProperty(LogContextStatic.SqlOutToConsole, + AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToConsole", "Enabled" }).ObjToBool())); + AddStock(LogContext.PushProperty(LogContextStatic.SqlOutToFile, + AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToFile", "Enabled" }).ObjToBool())); + AddStock(LogContext.PushProperty(LogContextStatic.OutToDb, + AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToDb", "Enabled" }).ObjToBool())); + + AddStock(LogContext.PushProperty(LogContextStatic.SugarActionType, db.SugarActionType)); + + return this; + } + + + public void Dispose() + { + while (_disposableStack.Count > 0) + { + _disposableStack.Pop().Dispose(); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Common/LogHelper/LogContextStatic.cs b/Blog.Core.Common/LogHelper/LogContextStatic.cs new file mode 100644 index 00000000..52a8167d --- /dev/null +++ b/Blog.Core.Common/LogHelper/LogContextStatic.cs @@ -0,0 +1,42 @@ +using System.IO; + +namespace Blog.Core.Common.LogHelper; + +public class LogContextStatic +{ + static LogContextStatic() + { + if (!Directory.Exists(BaseLogs)) + { + Directory.CreateDirectory(BaseLogs); + } + } + + public static readonly string BaseLogs = "Logs"; + public static readonly string BasePathLogs = @"Logs"; + + public static readonly string LogSource = "LogSource"; + public static readonly string AopSql = "AopSql"; + public static readonly string SqlOutToConsole = "OutToConsole"; + public static readonly string SqlOutToFile = "SqlOutToFile"; + public static readonly string OutToDb = "OutToDb"; + public static readonly string SugarActionType = "SugarActionType"; + + public static readonly string FileMessageTemplate = "{NewLine}Date:{Timestamp:yyyy-MM-dd HH:mm:ss.fff}{NewLine}LogLevel:{Level}{NewLine}Message:{Message}{NewLine}{Exception}" + new string('-', 100); + + + public static string Combine(string path1) + { + return Path.Combine(BaseLogs, path1); + } + + public static string Combine(string path1, string path2) + { + return Path.Combine(BaseLogs, path1, path2); + } + + public static string Combine(string path1, string path2, string path3) + { + return Path.Combine(BaseLogs, path1, path2, path3); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index 70c5f7f2..2c9be9a9 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -1,5 +1,4 @@ using Blog.Core.Common.Helper; -using log4net; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -7,12 +6,12 @@ using System.Linq; using System.Text; using System.Threading; +using Serilog; namespace Blog.Core.Common.LogHelper { public class LogLock { - private static readonly ILog log = LogManager.GetLogger(typeof(LogLock)); static ReaderWriterLockSlim LogWriteLock = new ReaderWriterLockSlim(); static int WritedCount = 0; static int FailedCount = 0; @@ -53,12 +52,14 @@ public static void OutLogAOP(string prefix, string traceId, string[] dataParas, default: break; } + if (AppSettings.app(new string[] { AppSetingNodeName, AppSetingName, "Enabled" }).ObjToBool()) { if (AppSettings.app(new string[] { AppSetingNodeName, AppSetingName, "LogToDB", "Enabled" }).ObjToBool()) { OutSql2LogToDB(prefix, traceId, dataParas, IsHeader); } + if (AppSettings.app(new string[] { AppSetingNodeName, AppSetingName, "LogToFile", "Enabled" }).ObjToBool()) { OutSql2LogToFile(prefix, traceId, dataParas, IsHeader); @@ -90,6 +91,7 @@ public static void OutSql2LogToFile(string prefix, string traceId, string[] data { Directory.CreateDirectory(folderPath); } + //string logFilePath = Path.Combine(path, $@"{filename}.log"); var logFilePath = FileHelper.GetAvailableFileWithPrefixOrderSize(folderPath, prefix); switch (prefix) @@ -98,47 +100,48 @@ public static void OutSql2LogToFile(string prefix, string traceId, string[] data AOPLogInfo apiLogAopInfo = JsonConvert.DeserializeObject(dataParas[1]); //记录被拦截方法信息的日志信息 var dataIntercept = "" + - $"【操作时间】:{apiLogAopInfo.RequestTime}\r\n" + - $"【当前操作用户】:{ apiLogAopInfo.OpUserName} \r\n" + - $"【当前执行方法】:{ apiLogAopInfo.RequestMethodName} \r\n" + - $"【携带的参数有】: {apiLogAopInfo.RequestParamsName} \r\n" + - $"【携带的参数JSON】: {apiLogAopInfo.RequestParamsData} \r\n" + - $"【响应时间】:{apiLogAopInfo.ResponseIntervalTime}\r\n" + - $"【执行完成时间】:{apiLogAopInfo.ResponseTime}\r\n" + - $"【执行完成结果】:{apiLogAopInfo.ResponseJsonData}\r\n"; + $"【操作时间】:{apiLogAopInfo.RequestTime}\r\n" + + $"【当前操作用户】:{apiLogAopInfo.OpUserName} \r\n" + + $"【当前执行方法】:{apiLogAopInfo.RequestMethodName} \r\n" + + $"【携带的参数有】: {apiLogAopInfo.RequestParamsName} \r\n" + + $"【携带的参数JSON】: {apiLogAopInfo.RequestParamsData} \r\n" + + $"【响应时间】:{apiLogAopInfo.ResponseIntervalTime}\r\n" + + $"【执行完成时间】:{apiLogAopInfo.ResponseTime}\r\n" + + $"【执行完成结果】:{apiLogAopInfo.ResponseJsonData}\r\n"; dataParas = new string[] { dataIntercept }; break; case "AOPLogEx": AOPLogExInfo apiLogAopExInfo = JsonConvert.DeserializeObject(dataParas[1]); var dataInterceptEx = "" + - $"【操作时间】:{apiLogAopExInfo.ApiLogAopInfo.RequestTime}\r\n" + - $"【当前操作用户】:{ apiLogAopExInfo.ApiLogAopInfo.OpUserName} \r\n" + - $"【当前执行方法】:{ apiLogAopExInfo.ApiLogAopInfo.RequestMethodName} \r\n" + - $"【携带的参数有】: {apiLogAopExInfo.ApiLogAopInfo.RequestParamsName} \r\n" + - $"【携带的参数JSON】: {apiLogAopExInfo.ApiLogAopInfo.RequestParamsData} \r\n" + - $"【响应时间】:{apiLogAopExInfo.ApiLogAopInfo.ResponseIntervalTime}\r\n" + - $"【执行完成时间】:{apiLogAopExInfo.ApiLogAopInfo.ResponseTime}\r\n" + - $"【执行完成结果】:{apiLogAopExInfo.ApiLogAopInfo.ResponseJsonData}\r\n" + - $"【执行完成异常信息】:方法中出现异常:{apiLogAopExInfo.ExMessage}\r\n" + - $"【执行完成异常】:方法中出现异常:{apiLogAopExInfo.InnerException}\r\n"; + $"【操作时间】:{apiLogAopExInfo.ApiLogAopInfo.RequestTime}\r\n" + + $"【当前操作用户】:{apiLogAopExInfo.ApiLogAopInfo.OpUserName} \r\n" + + $"【当前执行方法】:{apiLogAopExInfo.ApiLogAopInfo.RequestMethodName} \r\n" + + $"【携带的参数有】: {apiLogAopExInfo.ApiLogAopInfo.RequestParamsName} \r\n" + + $"【携带的参数JSON】: {apiLogAopExInfo.ApiLogAopInfo.RequestParamsData} \r\n" + + $"【响应时间】:{apiLogAopExInfo.ApiLogAopInfo.ResponseIntervalTime}\r\n" + + $"【执行完成时间】:{apiLogAopExInfo.ApiLogAopInfo.ResponseTime}\r\n" + + $"【执行完成结果】:{apiLogAopExInfo.ApiLogAopInfo.ResponseJsonData}\r\n" + + $"【执行完成异常信息】:方法中出现异常:{apiLogAopExInfo.ExMessage}\r\n" + + $"【执行完成异常】:方法中出现异常:{apiLogAopExInfo.InnerException}\r\n"; dataParas = new string[] { dataInterceptEx }; break; } + var now = DateTime.Now; string logContent = String.Join("\r\n", dataParas); if (IsHeader) { logContent = ( - "--------------------------------\r\n" + - DateTime.Now + "|\r\n" + - String.Join("\r\n", dataParas) + "\r\n" - ); + "--------------------------------\r\n" + + DateTime.Now + "|\r\n" + + String.Join("\r\n", dataParas) + "\r\n" + ); } else { logContent = ( - dataParas[1] + ",\r\n" - ); + dataParas[1] + ",\r\n" + ); } //if (logContent.IsNotEmptyOrNull() && logContent.Length > 500) @@ -148,12 +151,12 @@ public static void OutSql2LogToFile(string prefix, string traceId, string[] data if (isWrt) { File.WriteAllText(logFilePath, logContent); - } else { File.AppendAllText(logFilePath, logContent); } + WritedCount++; } catch (Exception e) @@ -170,14 +173,15 @@ public static void OutSql2LogToFile(string prefix, string traceId, string[] data LogWriteLock.ExitWriteLock(); } } + public static void OutSql2LogToDB(string prefix, string traceId, string[] dataParas, bool IsHeader = true) { - log4net.LogicalThreadContext.Properties["LogType"] = prefix; - log4net.LogicalThreadContext.Properties["TraceId"] = traceId; - if (dataParas.Length >= 2) - { - log4net.LogicalThreadContext.Properties["DataType"] = dataParas[0]; - } + //log4net.LogicalThreadContext.Properties["LogType"] = prefix; + //log4net.LogicalThreadContext.Properties["TraceId"] = traceId; + //if (dataParas.Length >= 2) + //{ + // log4net.LogicalThreadContext.Properties["DataType"] = dataParas[0]; + //} dataParas = dataParas.Skip(1).ToArray(); @@ -186,32 +190,37 @@ public static void OutSql2LogToDB(string prefix, string traceId, string[] dataPa { logContent = (String.Join("", dataParas)); } + switch (prefix) { //DEBUG | INFO | WARN | ERROR | FATAL case "AOPLog": - log.Info(logContent); + //TODO 是否需要输出? + //Log.Information(logContent); break; case "AOPLogEx": - log.Error(logContent); + Log.Error(logContent); break; case "RequestIpInfoLog": - log.Debug(logContent); + //TODO 是否需要Debug输出? + //Log.Debug(logContent); break; case "RecordAccessLogs": - log.Debug(logContent); + //TODO 是否需要Debug输出? + //Log.Debug(logContent); break; case "SqlLog": - log.Info(logContent); + Log.Information(logContent); break; case "RequestResponseLog": - log.Debug(logContent); + //TODO 是否需要Debug输出? + //Log.Debug(logContent); break; default: break; } - } + /// /// 读取文件内容 /// @@ -287,6 +296,7 @@ public static string ReadLog(string folderPath, string fileName, Encoding encode { LogWriteLock.ExitReadLock(); } + return s; } @@ -315,7 +325,6 @@ private static List GetRequestInfo(ReadType readType) } } } - } return requestInfos; @@ -336,16 +345,18 @@ public static List GetLogData() if (!string.IsNullOrEmpty(aoplogContent)) { aopLogs = aoplogContent.Split("--------------------------------") - .Where(d => !string.IsNullOrEmpty(d) && d != "\n" && d != "\r\n") - .Select(d => new LogInfo - { - Datetime = d.Split("|")[0].ObjToDate(), - Content = d.Split("|")[1]?.Replace("\r\n", "
    "), - LogColor = "AOP", - }).ToList(); + .Where(d => !string.IsNullOrEmpty(d) && d != "\n" && d != "\r\n") + .Select(d => new LogInfo + { + Datetime = d.Split("|")[0].ObjToDate(), + Content = d.Split("|")[1]?.Replace("\r\n", "
    "), + LogColor = "AOP", + }).ToList(); } } - catch (Exception) { } + catch (Exception) + { + } try { @@ -354,17 +365,19 @@ public static List GetLogData() if (!string.IsNullOrEmpty(exclogContent)) { excLogs = exclogContent.Split("--------------------------------") - .Where(d => !string.IsNullOrEmpty(d) && d != "\n" && d != "\r\n") - .Select(d => new LogInfo - { - Datetime = (d.Split("|")[0]).Split(',')[0].ObjToDate(), - Content = d.Split("|")[1]?.Replace("\r\n", "
    "), - LogColor = "EXC", - Import = 9, - }).ToList(); + .Where(d => !string.IsNullOrEmpty(d) && d != "\n" && d != "\r\n") + .Select(d => new LogInfo + { + Datetime = (d.Split("|")[0]).Split(',')[0].ObjToDate(), + Content = d.Split("|")[1]?.Replace("\r\n", "
    "), + LogColor = "EXC", + Import = 9, + }).ToList(); } } - catch (Exception) { } + catch (Exception) + { + } try @@ -374,16 +387,18 @@ public static List GetLogData() if (!string.IsNullOrEmpty(sqllogContent)) { sqlLogs = sqllogContent.Split("--------------------------------") - .Where(d => !string.IsNullOrEmpty(d) && d != "\n" && d != "\r\n") - .Select(d => new LogInfo - { - Datetime = d.Split("|")[0].ObjToDate(), - Content = d.Split("|")[1]?.Replace("\r\n", "
    "), - LogColor = "SQL", - }).ToList(); + .Where(d => !string.IsNullOrEmpty(d) && d != "\n" && d != "\r\n") + .Select(d => new LogInfo + { + Datetime = d.Split("|")[0].ObjToDate(), + Content = d.Split("|")[1]?.Replace("\r\n", "
    "), + LogColor = "SQL", + }).ToList(); } } - catch (Exception) { } + catch (Exception) + { + } //try //{ @@ -422,14 +437,17 @@ public static List GetLogData() { aopLogs.AddRange(excLogs); } + if (sqlLogs != null) { aopLogs.AddRange(sqlLogs); } + if (reqresLogs != null) { aopLogs.AddRange(reqresLogs); } + aopLogs = aopLogs.OrderByDescending(d => d.Import).ThenByDescending(d => d.Datetime).Take(100).ToList(); return aopLogs; @@ -450,7 +468,8 @@ public static RequestApiWeekView RequestApiinfoByWeek() Logs = GetRequestInfo(ReadType.Prefix); apiWeeks = (from n in Logs - group n by new { n.Week, n.Url } into g + group n by new { n.Week, n.Url } + into g select new ApiWeek { week = g.Key.Week, @@ -459,7 +478,6 @@ public static RequestApiWeekView RequestApiinfoByWeek() }).ToList(); //apiWeeks = apiWeeks.OrderByDescending(d => d.count).Take(8).ToList(); - } catch (Exception) { @@ -489,10 +507,12 @@ public static RequestApiWeekView RequestApiinfoByWeek() jsonBuilder.Append(item.count); jsonBuilder.Append("\","); } + if (apiweeksCurrentWeek.Count > 0) { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } + jsonBuilder.Append("},"); } @@ -500,6 +520,7 @@ public static RequestApiWeekView RequestApiinfoByWeek() { jsonBuilder.Remove(jsonBuilder.Length - 1, 1); } + jsonBuilder.Append("]"); //columns.AddRange(apiWeeks.OrderByDescending(d => d.count).Take(8).Select(d => d.url).ToList()); @@ -521,7 +542,8 @@ public static AccessApiDateView AccessApiByDate() Logs = GetRequestInfo(ReadType.Prefix); apiDates = (from n in Logs - group n by new { n.Date } into g + group n by new { n.Date } + into g select new ApiDate { date = g.Key.Date, @@ -529,7 +551,6 @@ public static AccessApiDateView AccessApiByDate() }).ToList(); apiDates = apiDates.OrderByDescending(d => d.date).Take(7).ToList(); - } catch (Exception) { @@ -552,7 +573,8 @@ public static AccessApiDateView AccessApiByHour() apiDates = (from n in Logs where n.Datetime.ObjToDate() >= DateTime.Today - group n by new { hour = n.Datetime.ObjToDate().Hour } into g + group n by new { hour = n.Datetime.ObjToDate().Hour } + into g select new ApiDate { date = g.Key.hour.ToString("00"), @@ -560,7 +582,6 @@ where n.Datetime.ObjToDate() >= DateTime.Today }).ToList(); apiDates = apiDates.OrderBy(d => d.date).Take(24).ToList(); - } catch (Exception) { @@ -580,14 +601,15 @@ public enum ReadType /// 精确查找一个 ///
    Accurate, + /// /// 指定前缀,模糊查找全部 /// Prefix, + /// /// 指定前缀,最新一个文件 /// PrefixLatest } - -} +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 451d24f1..9eae3d92 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -18,10 +18,10 @@ - + @@ -35,6 +35,7 @@ + diff --git a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs index 85d96e9b..aed57769 100644 --- a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs @@ -4,14 +4,13 @@ using Blog.Core.Model; using Microsoft.AspNetCore.Http; using Newtonsoft.Json; +using Serilog; namespace Blog.Core.Extensions.Middlewares { public class ExceptionHandlerMiddleware { private readonly RequestDelegate _next; - private static readonly log4net.ILog Log = - log4net.LogManager.GetLogger(typeof(ExceptionHandlerMiddleware)); public ExceptionHandlerMiddleware(RequestDelegate next) { @@ -48,7 +47,9 @@ private static async Task WriteExceptionAsync(HttpContext context, Exception e) context.Response.ContentType = "application/json"; - await context.Response.WriteAsync(JsonConvert.SerializeObject((new ApiResponse(StatusCode.CODE500, e.Message)).MessageModel)).ConfigureAwait(false); + await context.Response + .WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, e.Message).MessageModel)) + .ConfigureAwait(false); } } -} +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Middlewares/IpLimitMiddleware.cs b/Blog.Core.Extensions/Middlewares/IpLimitMiddleware.cs index 958d6ff3..7fe68fc4 100644 --- a/Blog.Core.Extensions/Middlewares/IpLimitMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/IpLimitMiddleware.cs @@ -1,8 +1,8 @@ -using System; -using AspNetCoreRateLimit; +using AspNetCoreRateLimit; using Blog.Core.Common; -using log4net; using Microsoft.AspNetCore.Builder; +using System; +using Serilog; namespace Blog.Core.Extensions.Middlewares { @@ -11,7 +11,6 @@ namespace Blog.Core.Extensions.Middlewares ///
    public static class IpLimitMiddleware { - private static readonly ILog Log = LogManager.GetLogger(typeof(IpLimitMiddleware)); public static void UseIpLimitMiddle(this IApplicationBuilder app) { if (app == null) throw new ArgumentNullException(nameof(app)); diff --git a/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs index b6b91bd5..ccd0d7af 100644 --- a/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs @@ -1,10 +1,10 @@ -using System; -using System.Threading.Tasks; -using Blog.Core.Common; +using Blog.Core.Common; using Blog.Core.Common.LogHelper; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Newtonsoft.Json; +using System; +using System.Threading.Tasks; namespace Blog.Core.Extensions.Middlewares { @@ -19,7 +19,6 @@ public class IpLogMiddleware ///
    private readonly RequestDelegate _next; private readonly IWebHostEnvironment _environment; - private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(typeof(IpLogMiddleware)); /// /// diff --git a/Blog.Core.Extensions/Middlewares/MiniProfilerMiddleware.cs b/Blog.Core.Extensions/Middlewares/MiniProfilerMiddleware.cs index 068c4a0d..49e3b70d 100644 --- a/Blog.Core.Extensions/Middlewares/MiniProfilerMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/MiniProfilerMiddleware.cs @@ -1,7 +1,7 @@ -using System; -using Blog.Core.Common; -using log4net; +using Blog.Core.Common; using Microsoft.AspNetCore.Builder; +using System; +using Serilog; namespace Blog.Core.Extensions.Middlewares { @@ -10,7 +10,6 @@ namespace Blog.Core.Extensions.Middlewares /// public static class MiniProfilerMiddleware { - private static readonly ILog Log = LogManager.GetLogger(typeof(MiniProfilerMiddleware)); public static void UseMiniProfilerMiddleware(this IApplicationBuilder app) { if (app == null) throw new ArgumentNullException(nameof(app)); diff --git a/Blog.Core.Extensions/Middlewares/SignalRSendMiddleware.cs b/Blog.Core.Extensions/Middlewares/SignalRSendMiddleware.cs index 1909c08f..f15df7b4 100644 --- a/Blog.Core.Extensions/Middlewares/SignalRSendMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/SignalRSendMiddleware.cs @@ -36,6 +36,7 @@ public async Task InvokeAsync(HttpContext context) { if (AppSettings.app("Middleware", "SignalR", "Enabled").ObjToBool()) { + //TODO 主动发送错误消息 await _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()); } await _next(context); diff --git a/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs b/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs index 099b2576..73af77d2 100644 --- a/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/SwaggerMiddleware.cs @@ -1,10 +1,10 @@ -using System; -using System.IO; -using System.Linq; -using Blog.Core.Common; -using log4net; +using Blog.Core.Common; using Microsoft.AspNetCore.Builder; using Swashbuckle.AspNetCore.SwaggerUI; +using System; +using System.IO; +using System.Linq; +using Serilog; using static Blog.Core.Extensions.CustomApiVersion; namespace Blog.Core.Extensions.Middlewares @@ -14,7 +14,6 @@ namespace Blog.Core.Extensions.Middlewares ///
    public static class SwaggerMiddleware { - private static readonly ILog Log = LogManager.GetLogger(typeof(SwaggerMiddleware)); public static void UseSwaggerMiddle(this IApplicationBuilder app, Func streamHtml) { if (app == null) throw new ArgumentNullException(nameof(app)); @@ -24,10 +23,7 @@ public static void UseSwaggerMiddle(this IApplicationBuilder app, Func s { //根据版本名称倒序 遍历展示 var apiName = AppSettings.app(new string[] { "Startup", "ApiName" }); - typeof(ApiVersions).GetEnumNames().OrderByDescending(e => e).ToList().ForEach(version => - { - c.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"{apiName} {version}"); - }); + typeof(ApiVersions).GetEnumNames().OrderByDescending(e => e).ToList().ForEach(version => { c.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"{apiName} {version}"); }); c.SwaggerEndpoint($"https://petstore.swagger.io/v2/swagger.json", $"{apiName} pet"); @@ -38,12 +34,13 @@ public static void UseSwaggerMiddle(this IApplicationBuilder app, Func s Log.Error(msg); throw new Exception(msg); } + c.IndexStream = streamHtml; c.DocExpansion(DocExpansion.None); //->修改界面打开时自动折叠 if (Permissions.IsUseIds4) { - c.OAuthClientId("blogadminjs"); + c.OAuthClientId("blogadminjs"); } @@ -52,4 +49,4 @@ public static void UseSwaggerMiddle(this IApplicationBuilder app, Func s }); } } -} +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs index 0622e766..0336567f 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs @@ -76,10 +76,10 @@ public static void AddAppConfigSetup(this IServiceCollection services, IHostEnvi var ipLogOpen = AppSettings.app(new string[] { "Middleware", "IPLog", "Enabled" }).ObjToBool(); var recordAccessLogsOpen = AppSettings.app(new string[] { "Middleware", "RecordAccessLogs", "Enabled" }).ObjToBool(); ConsoleHelper.WriteSuccessLine($"OPEN Log: " + - (requestResponseLogOpen ? "RequestResponseLog √," : "") + - (ipLogOpen ? "IPLog √," : "") + - (recordAccessLogsOpen ? "RecordAccessLogs √," : "") - ); + (requestResponseLogOpen ? "RequestResponseLog √," : "") + + (ipLogOpen ? "IPLog √," : "") + + (recordAccessLogsOpen ? "RecordAccessLogs √," : "") + ); // 事务AOP if (!AppSettings.app(new string[] { "AppSettings", "TranAOP", "Enabled" }).ObjToBool()) @@ -213,7 +213,6 @@ public static void AddAppConfigSetup(this IServiceCollection services, IHostEnvi Console.WriteLine(); } - } public static void AddAppTableConfigSetup(this IServiceCollection services, IHostEnvironment env) @@ -222,7 +221,6 @@ public static void AddAppTableConfigSetup(this IServiceCollection services, IHos if (AppSettings.app(new string[] { "Startup", "AppConfigAlert", "Enabled" }).ObjToBool()) { - if (env.IsDevelopment()) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); @@ -230,6 +228,7 @@ public static void AddAppTableConfigSetup(this IServiceCollection services, IHos } #region 程序配置 + List configInfos = new() { new string[] { "当前环境", Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") }, @@ -238,7 +237,7 @@ public static void AddAppTableConfigSetup(this IServiceCollection services, IHos new string[] { "RabbitMQ消息列队", AppSettings.app("RabbitMQ", "Enabled") }, new string[] { "事件总线(必须开启消息列队)", AppSettings.app("EventBus", "Enabled") }, new string[] { "redis消息队列", AppSettings.app("Startup", "RedisMq", "Enabled") }, - new string[] { "是否多库", AppSettings.app("MutiDBEnabled" ) }, + new string[] { "是否多库", AppSettings.app("MutiDBEnabled") }, new string[] { "读写分离", AppSettings.app("CQRSEnabled") }, }; @@ -253,17 +252,19 @@ public static void AddAppTableConfigSetup(this IServiceCollection services, IHos TableStyle = TableStyle.Alternative }.Writer(ConsoleColor.Blue); Console.WriteLine(); + #endregion 程序配置 #region AOP + List aopInfos = new() -{ + { new string[] { "Redis缓存AOP", AppSettings.app("AppSettings", "RedisCachingAOP", "Enabled") }, new string[] { "内存缓存AOP", AppSettings.app("AppSettings", "MemoryCachingAOP", "Enabled") }, - new string[] { "服务日志AOP", AppSettings.app("AppSettings", "LogAOP", "Enabled" ) }, - new string[] { "事务AOP", AppSettings.app("AppSettings", "TranAOP", "Enabled" ) }, - new string[] { "Sql执行AOP", AppSettings.app("AppSettings", "SqlAOP", "OutToLogFile", "Enabled" ) }, - new string[] { "Sql执行AOP控制台输出", AppSettings.app("AppSettings", "SqlAOP", "OutToConsole", "Enabled" ) }, + new string[] { "服务日志AOP", AppSettings.app("AppSettings", "LogAOP", "Enabled") }, + new string[] { "事务AOP", AppSettings.app("AppSettings", "TranAOP", "Enabled") }, + new string[] { "Sql执行AOP", AppSettings.app("AppSettings", "SqlAOP", "Enabled") }, + new string[] { "Sql执行AOP控制台输出", AppSettings.app("AppSettings", "SqlAOP", "LogToConsole", "Enabled") }, }; new ConsoleTable @@ -277,15 +278,17 @@ public static void AddAppTableConfigSetup(this IServiceCollection services, IHos TableStyle = TableStyle.Alternative }.Writer(ConsoleColor.Blue); Console.WriteLine(); + #endregion AOP #region 中间件 + List MiddlewareInfos = new() { new string[] { "请求纪录中间件", AppSettings.app("Middleware", "RecordAccessLogs", "Enabled") }, - new string[] { "IP记录中间件", AppSettings.app("Middleware", "IPLog", "Enabled" ) }, - new string[] { "请求响应日志中间件", AppSettings.app("Middleware", "RequestResponseLog", "Enabled" ) }, - new string[] { "SingnalR实时发送请求数据中间件", AppSettings.app("Middleware", "SignalR", "Enabled" ) }, + new string[] { "IP记录中间件", AppSettings.app("Middleware", "IPLog", "Enabled") }, + new string[] { "请求响应日志中间件", AppSettings.app("Middleware", "RequestResponseLog", "Enabled") }, + new string[] { "SingnalR实时发送请求数据中间件", AppSettings.app("Middleware", "SignalR", "Enabled") }, new string[] { "IP限流中间件", AppSettings.app("Middleware", "IpRateLimit", "Enabled") }, new string[] { "性能分析中间件", AppSettings.app("Startup", "MiniProfiler", "Enabled") }, new string[] { "Consul注册服务", AppSettings.app("Middleware", "Consul", "Enabled") }, @@ -302,10 +305,9 @@ public static void AddAppTableConfigSetup(this IServiceCollection services, IHos TableStyle = TableStyle.Alternative }.Writer(ConsoleColor.Blue); Console.WriteLine(); - #endregion 中间件 + #endregion 中间件 } - } } -} +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs b/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs index 7f2997bd..4351962b 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs @@ -6,20 +6,18 @@ using Blog.Core.IServices.BASE; using Blog.Core.Model; using Blog.Core.Repository.Base; +using Blog.Core.Repository.UnitOfWorks; using Blog.Core.Services.BASE; -using log4net; using System; using System.Collections.Generic; using System.IO; using System.Reflection; -using Blog.Core.Repository.UnitOfWorks; +using Serilog; namespace Blog.Core.Extensions { public class AutofacModuleRegister : Autofac.Module { - private static readonly ILog log = LogManager.GetLogger(typeof(AutofacModuleRegister)); - protected override void Load(ContainerBuilder builder) { var basePath = AppContext.BaseDirectory; @@ -34,39 +32,39 @@ protected override void Load(ContainerBuilder builder) if (!(File.Exists(servicesDllFile) && File.Exists(repositoryDllFile))) { var msg = "Repository.dll和service.dll 丢失,因为项目解耦了,所以需要先F6编译,再F5运行,请检查 bin 文件夹,并拷贝。"; - log.Error(msg); + Log.Error(msg); throw new Exception(msg); } // AOP 开关,如果想要打开指定的功能,只需要在 appsettigns.json 对应对应 true 就行。 var cacheType = new List(); - if (AppSettings.app(new string[] {"AppSettings", "RedisCachingAOP", "Enabled"}).ObjToBool()) + if (AppSettings.app(new string[] { "AppSettings", "RedisCachingAOP", "Enabled" }).ObjToBool()) { builder.RegisterType(); cacheType.Add(typeof(BlogRedisCacheAOP)); } - if (AppSettings.app(new string[] {"AppSettings", "MemoryCachingAOP", "Enabled"}).ObjToBool()) + if (AppSettings.app(new string[] { "AppSettings", "MemoryCachingAOP", "Enabled" }).ObjToBool()) { builder.RegisterType(); cacheType.Add(typeof(BlogCacheAOP)); } - if (AppSettings.app(new string[] {"AppSettings", "TranAOP", "Enabled"}).ObjToBool()) + if (AppSettings.app(new string[] { "AppSettings", "TranAOP", "Enabled" }).ObjToBool()) { builder.RegisterType(); cacheType.Add(typeof(BlogTranAOP)); } - if (AppSettings.app(new string[] {"AppSettings", "LogAOP", "Enabled"}).ObjToBool()) + if (AppSettings.app(new string[] { "AppSettings", "LogAOP", "Enabled" }).ObjToBool()) { builder.RegisterType(); cacheType.Add(typeof(BlogLogAOP)); } - builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IBaseRepository<>)).InstancePerDependency();//注册仓储 - builder.RegisterGeneric(typeof(BaseServices<>)).As(typeof(IBaseServices<>)).InstancePerDependency();//注册服务 + builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IBaseRepository<>)).InstancePerDependency(); //注册仓储 + builder.RegisterGeneric(typeof(BaseServices<>)).As(typeof(IBaseServices<>)).InstancePerDependency(); //注册服务 // 获取 Service.dll 程序集服务,并注册 var assemblysServices = Assembly.LoadFrom(servicesDllFile); diff --git a/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs b/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs index e8e3929f..b3147ca8 100644 --- a/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs @@ -1,4 +1,4 @@ -using Blog.Core.Common.HttpPolly; +using Blog.Core.Common.Https.HttpPolly; using Blog.Core.Model; using Microsoft.Extensions.DependencyInjection; using Polly; diff --git a/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs new file mode 100644 index 00000000..a112409c --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs @@ -0,0 +1,37 @@ +using Blog.Core.Common; +using Blog.Core.Common.LogHelper; +using Blog.Core.Serilog.Extensions; +using Microsoft.Extensions.Hosting; +using Serilog; +using Serilog.Debugging; +using System; +using System.IO; + +namespace Blog.Core.Extensions.ServiceExtensions; + +public static class SerilogSetup +{ + public static IHostBuilder AddSerilogSetup(this IHostBuilder host) + { + if (host == null) throw new ArgumentNullException(nameof(host)); + + var loggerConfiguration = new LoggerConfiguration() + .ReadFrom.Configuration(AppSettings.Configuration) + .Enrich.FromLogContext() + //输出到控制台 + .WriteToConsole() + //将日志保存到文件中 + .WriteToFile(); + //配置日志库 + //.WriteToLogBatching(); + + Log.Logger = loggerConfiguration.CreateLogger(); + + //Serilog 内部日志 + var file = File.CreateText(LogContextStatic.Combine($"SerilogDebug{DateTime.Now:yyyyMMdd}.txt")); + SelfLog.Enable(TextWriter.Synchronized(file)); + + host.UseSerilog(); + return host; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 3ecf224a..3440b8af 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -1,6 +1,7 @@ using Blog.Core.Common; +using Blog.Core.Common.Const; using Blog.Core.Common.DB; -using Blog.Core.Common.Helper; +using Blog.Core.Common.DB.Aop; using Blog.Core.Common.LogHelper; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection; @@ -9,7 +10,6 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; -using Blog.Core.Common.DB.Aop; namespace Blog.Core.Extensions { @@ -48,7 +48,7 @@ public static void AddSqlsugarSetup(this IServiceCollection services) BaseDBConfig.MutiConnectionString.allDbs.ForEach(m => { - listConfig.Add(new ConnectionConfig() + var config = new ConnectionConfig() { ConfigId = m.ConnId.ObjToString().ToLower(), ConnectionString = m.Connection, @@ -56,29 +56,6 @@ public static void AddSqlsugarSetup(this IServiceCollection services) IsAutoCloseConnection = true, // Check out more information: https://github.com/anjoy8/Blog.Core/issues/122 //IsShardSameThread = false, - AopEvents = new AopEvents - { - OnLogExecuting = (sql, p) => - { - if (AppSettings.app(new string[] { "AppSettings", "SqlAOP", "Enabled" }).ObjToBool()) - { - if (AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToFile", "Enabled" }).ObjToBool()) - { - Parallel.For(0, 1, e => - { - MiniProfiler.Current.CustomTiming("SQL:", GetParas(p) + "【SQL语句】:" + sql); - //LogLock.OutSql2Log("SqlLog", new string[] { GetParas(p), "【SQL语句】:" + sql }); - LogLock.OutLogAOP("SqlLog", "", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); - - }); - } - if (AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToConsole", "Enabled" }).ObjToBool()) - { - ConsoleHelper.WriteColorLine(string.Join("\r\n", new string[] { "--------", $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")} :" + GetWholeSql(p, sql) }), ConsoleColor.DarkCyan); - } - } - }, - }, MoreSettings = new ConnMoreSettings() { //IsWithNoLockQuery = true, @@ -99,15 +76,29 @@ public static void AddSqlsugarSetup(this IServiceCollection services) } }, InitKeyType = InitKeyType.Attribute + }; + if (SqlSugarConst.LogConfigId.Equals(m.ConnId)) + { + BaseDBConfig.LogConfig = config; } - ); + + listConfig.Add(config); }); + + if (BaseDBConfig.LogConfig is null) + { + throw new ApplicationException("未配置Log库连接"); + } + return new SqlSugarScope(listConfig, db => { listConfig.ForEach(config => { var dbProvider = db.GetConnectionScope((string)config.ConfigId); + // 打印SQL语句 + dbProvider.Aop.OnLogExecuting = (s, parameters) => SqlSugarAop.OnLogExecuting(dbProvider,s, parameters, config); + // 数据审计 dbProvider.Aop.DataExecuting = SqlSugarAop.DataExecuting; diff --git a/Blog.Core.Extensions/ServiceExtensions/SwaggerSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SwaggerSetup.cs index 449b6a4d..85dff620 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SwaggerSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SwaggerSetup.cs @@ -1,7 +1,7 @@ using Blog.Core.Common; -using log4net; using Microsoft.Extensions.DependencyInjection; using Microsoft.OpenApi.Models; +using Serilog; using Swashbuckle.AspNetCore.Filters; using System; using System.Collections.Generic; @@ -17,10 +17,6 @@ namespace Blog.Core.Extensions /// public static class SwaggerSetup { - - private static readonly ILog log = - LogManager.GetLogger(typeof(SwaggerSetup)); - public static void AddSwaggerSetup(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); @@ -59,7 +55,7 @@ public static void AddSwaggerSetup(this IServiceCollection services) } catch (Exception ex) { - log.Error("Blog.Core.xml和Blog.Core.Model.xml 丢失,请检查并拷贝。\n" + ex.Message); + Log.Error("Blog.Core.xml和Blog.Core.Model.xml 丢失,请检查并拷贝。\n" + ex.Message); } // 开启加权小锁 @@ -82,12 +78,13 @@ public static void AddSwaggerSetup(this IServiceCollection services) Implicit = new OpenApiOAuthFlow { AuthorizationUrl = new Uri($"{AppSettings.app(new string[] { "Startup", "IdentityServer4", "AuthorizationUrl" })}/connect/authorize"), - Scopes = new Dictionary { + Scopes = new Dictionary { - "blog.core.api","ApiResource id" + { + "blog.core.api", "ApiResource id" + } } } - } } }); } @@ -97,14 +94,11 @@ public static void AddSwaggerSetup(this IServiceCollection services) c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme { Description = "JWT授权(数据将在请求头中进行传输) 直接在下框中输入Bearer {token}(注意两者之间是一个空格)\"", - Name = "Authorization",//jwt默认的参数名称 - In = ParameterLocation.Header,//jwt默认存放Authorization信息的位置(请求头中) + Name = "Authorization", //jwt默认的参数名称 + In = ParameterLocation.Header, //jwt默认存放Authorization信息的位置(请求头中) Type = SecuritySchemeType.ApiKey }); } - - - }); services.AddSwaggerGenNewtonsoftSupport(); } @@ -124,11 +118,11 @@ public enum ApiVersions /// V1 版本 /// V1 = 1, + /// /// V2 版本 /// V2 = 2, } } - -} +} \ No newline at end of file diff --git a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj index 5cf82020..398aab48 100644 --- a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj +++ b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj @@ -11,7 +11,7 @@ - + diff --git a/Blog.Core.Serilog/Blog.Core.Serilog.csproj b/Blog.Core.Serilog/Blog.Core.Serilog.csproj new file mode 100644 index 00000000..07fa26f3 --- /dev/null +++ b/Blog.Core.Serilog/Blog.Core.Serilog.csproj @@ -0,0 +1,13 @@ + + + + net6.0 + enable + enable + + + + + + + diff --git a/Blog.Core.Serilog/Extensions/LoggerConfigurationExtensions.cs b/Blog.Core.Serilog/Extensions/LoggerConfigurationExtensions.cs new file mode 100644 index 00000000..2736aa1f --- /dev/null +++ b/Blog.Core.Serilog/Extensions/LoggerConfigurationExtensions.cs @@ -0,0 +1,121 @@ +using Blog.Core.Common; +using Blog.Core.Common.LogHelper; +using Serilog; +using Serilog.Events; +using Serilog.Filters; +using SqlSugar; + +namespace Blog.Core.Serilog.Extensions; + +public static class LoggerConfigurationExtensions +{ + public static LoggerConfiguration WriteToSqlServer(this LoggerConfiguration loggerConfiguration) + { + var logConnectionStrings = AppSettings.app("LogConnectionStrings"); + if (logConnectionStrings.IsNullOrEmpty()) return loggerConfiguration; + + //输出SQL + //loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => + // lg.FilterSqlLog().WriteTo.MSSqlServer(logConnectionStrings, new MSSqlServerSinkOptions() + // { + // TableName = "SqlLog", + // AutoCreateSqlTable = true + // })); + + //输出普通日志 + //loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => + // lg.FilterRemoveSqlLog().Filter.ByIncludingOnly(p => p.Level >= LogEventLevel.Error) + // .WriteTo.MSSqlServer(logConnectionStrings, new MSSqlServerSinkOptions() + // { + // TableName = "ErrorLog", + // AutoCreateSqlTable = true + // })); + //loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => + // lg.FilterRemoveSqlLog().Filter.ByIncludingOnly(p => p.Level == LogEventLevel.Warning) + // .WriteTo.MSSqlServer(logConnectionStrings, new MSSqlServerSinkOptions() + // { + // TableName = "WarningLog", + // AutoCreateSqlTable = true + // })); + //loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => + // lg.FilterRemoveSqlLog().Filter.ByIncludingOnly(p => p.Level <= LogEventLevel.Information) + // .WriteTo.MSSqlServer(logConnectionStrings, new MSSqlServerSinkOptions() + // { + // TableName = "InformationLog", + // AutoCreateSqlTable = true + // })); + + return loggerConfiguration; + } + + public static LoggerConfiguration WriteToConsole(this LoggerConfiguration loggerConfiguration) + { + //输出普通日志 + loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => + lg.FilterRemoveSqlLog().WriteTo.Console()); + + //输出SQL + loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => + lg.FilterSqlLog().Filter.ByIncludingOnly(Matching.WithProperty(LogContextStatic.SqlOutToConsole, s => s)) + .WriteTo.Console()); + + return loggerConfiguration; + } + + public static LoggerConfiguration WriteToFile(this LoggerConfiguration loggerConfiguration) + { + //输出SQL + loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => + lg.FilterSqlLog().Filter.ByIncludingOnly(Matching.WithProperty(LogContextStatic.SqlOutToFile, s => s)) + .WriteTo.Async(s => s.File(LogContextStatic.Combine(LogContextStatic.AopSql, @"AopSql.txt"), rollingInterval: RollingInterval.Day, + outputTemplate: LogContextStatic.FileMessageTemplate, retainedFileCountLimit: 31))); + //输出普通日志 + loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => + lg.FilterRemoveSqlLog().WriteTo.Async(s => s.File(LogContextStatic.Combine(LogContextStatic.BasePathLogs, @"Log.txt"), rollingInterval: RollingInterval.Day, + outputTemplate: LogContextStatic.FileMessageTemplate, retainedFileCountLimit: 31))); + return loggerConfiguration; + } + + public static LoggerConfiguration FilterSqlLog(this LoggerConfiguration lc) + { + lc = lc.Filter.ByIncludingOnly(Matching.WithProperty(LogContextStatic.LogSource, s => LogContextStatic.AopSql.Equals(s))); + return lc; + } + + public static IEnumerable FilterSqlLog(this IEnumerable batch) + { + return batch.Where(s => s.WithProperty(LogContextStatic.LogSource, q => LogContextStatic.AopSql.Equals(q))) + .Where(s => s.WithProperty(LogContextStatic.SugarActionType, + q => !new[] { SugarActionType.UnKnown, SugarActionType.Query }.Contains(q))); + } + + public static LoggerConfiguration FilterRemoveSqlLog(this LoggerConfiguration lc) + { + lc = lc.Filter.ByIncludingOnly(WithProperty(LogContextStatic.LogSource, s => !LogContextStatic.AopSql.Equals(s))); + return lc; + } + + public static IEnumerable FilterRemoveOtherLog(this IEnumerable batch) + { + return batch.Where(s => WithProperty(LogContextStatic.LogSource, + q => !LogContextStatic.AopSql.Equals(q))(s)); + } + + public static Func WithProperty(string propertyName, Func predicate) + { + //如果不包含属性 也认为是true + return e => + { + if (!e.Properties.TryGetValue(propertyName, out var propertyValue)) return true; + + return propertyValue is ScalarValue { Value: T value } && predicate(value); + }; + } + + public static bool WithProperty(this LogEvent e, string key, Func predicate) + { + if (!e.Properties.TryGetValue(key, out var propertyValue)) return false; + + return propertyValue is ScalarValue { Value: T value } && predicate(value); + } +} \ No newline at end of file diff --git a/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs b/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs new file mode 100644 index 00000000..cab7ae55 --- /dev/null +++ b/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs @@ -0,0 +1,34 @@ +using Microsoft.AspNetCore.Http; +using Serilog.Events; + +namespace Blog.Core.Serilog.Utility; + +public class SerilogRequestUtility +{ + private static readonly List _ignoreUrl = new() + { + "/job", + }; + + private static LogEventLevel DefaultGetLevel( + HttpContext ctx, + double _, + Exception? ex) + { + return ex is null && ctx.Response.StatusCode <= 499 ? LogEventLevel.Information : LogEventLevel.Error; + } + + public static LogEventLevel GetRequestLevel(HttpContext ctx, double _, Exception? ex) => + ex is null && ctx.Response.StatusCode <= 499 ? IgnoreRequest(ctx) : LogEventLevel.Error; + + private static LogEventLevel IgnoreRequest(HttpContext ctx) + { + var path = ctx.Request.Path.Value; + if (path.IsNullOrEmpty()) + { + return LogEventLevel.Information; + } + + return _ignoreUrl.Any(s => path.StartsWith(s)) ? LogEventLevel.Verbose : LogEventLevel.Information; + } +} \ No newline at end of file diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index 1dcc57ed..1d501c34 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -34,7 +34,7 @@ public async Task Execute(IJobExecutionContext context) } public async Task Run(IJobExecutionContext context) { - + // 可以直接获取 JobDetail 的值 var jobKey = context.JobDetail.Key; var jobId = jobKey.Name; @@ -94,7 +94,7 @@ await _accessTrendLogServices.Add(new AccessTrendLog() Parallel.For(0, 1, e => { - LogLock.OutLogAOP("ACCESSTRENDLOG","",new string[] { activeUserVMs.GetType().ToString(), JsonConvert.SerializeObject(activeUserVMs) }, false); + LogLock.OutLogAOP("ACCESSTRENDLOG", "", new string[] { activeUserVMs.GetType().ToString(), JsonConvert.SerializeObject(activeUserVMs) }, false); }); } diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs index 18c4c298..abcd81ea 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs @@ -17,19 +17,21 @@ namespace Blog.Core.Tasks { public class Job_OperateLog_Quartz : JobBase, IJob { - private readonly IOperateLogServices _operateLogServices; + private readonly IOperateLogServices _operateLogServices; private readonly IWebHostEnvironment _environment; - public Job_OperateLog_Quartz(IOperateLogServices operateLogServices,IWebHostEnvironment environment, ITasksQzServices tasksQzServices,ITasksLogServices tasksLogServices) - :base(tasksQzServices, tasksLogServices) + public Job_OperateLog_Quartz(IOperateLogServices operateLogServices, IWebHostEnvironment environment, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + : base(tasksQzServices, tasksLogServices) { - _operateLogServices = operateLogServices; - _environment = environment; + _operateLogServices = operateLogServices; + _environment = environment; } + public async Task Execute(IJobExecutionContext context) { var executeLog = await ExecuteJob(context, async () => await Run(context)); } + public async Task Run(IJobExecutionContext context) { @@ -78,7 +80,4 @@ public async Task Run(IJobExecutionContext context) } } } - - - -} +} \ No newline at end of file diff --git a/Blog.Core.Tests/DependencyInjection/DI_Test.cs b/Blog.Core.Tests/DependencyInjection/DI_Test.cs index ff2c74cd..d425fa01 100644 --- a/Blog.Core.Tests/DependencyInjection/DI_Test.cs +++ b/Blog.Core.Tests/DependencyInjection/DI_Test.cs @@ -59,7 +59,6 @@ public IContainer DICollections() services.AddAutoMapper(typeof(Startup)); services.AddSingleton(new AppSettings(basePath)); - services.AddSingleton(new LogLock(basePath)); services.AddScoped(); services.AddScoped(); diff --git a/Blog.Core.sln b/Blog.Core.sln index c8f61505..bf4f65cb 100644 --- a/Blog.Core.sln +++ b/Blog.Core.sln @@ -57,6 +57,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blog.Core.Serilog.Es", "Blo EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ocelot.Provider.Nacos", "Ocelot.Provider.Nacos\Ocelot.Provider.Nacos.csproj", "{6463FB13-5F01-4A1D-8B62-A454FB3812EB}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blog.Core.Serilog", "Blog.Core.Serilog\Blog.Core.Serilog.csproj", "{7F9057F0-ED8D-4694-B590-7D75C012DF00}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -119,6 +121,10 @@ Global {6463FB13-5F01-4A1D-8B62-A454FB3812EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {6463FB13-5F01-4A1D-8B62-A454FB3812EB}.Release|Any CPU.ActiveCfg = Release|Any CPU {6463FB13-5F01-4A1D-8B62-A454FB3812EB}.Release|Any CPU.Build.0 = Release|Any CPU + {7F9057F0-ED8D-4694-B590-7D75C012DF00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F9057F0-ED8D-4694-B590-7D75C012DF00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F9057F0-ED8D-4694-B590-7D75C012DF00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F9057F0-ED8D-4694-B590-7D75C012DF00}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 070e441bc02ef0a1e410d176cf953e6549824721 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 2 Apr 2023 15:16:37 +0800 Subject: [PATCH 243/382] feat: :accept: change api param --- Blog.Core.Api/Blog.Core.xml | 50 ++++++++--------- Blog.Core.Api/Controllers/BlogController.cs | 10 ++-- .../Controllers/DepartmentController.cs | 4 +- Blog.Core.Api/Controllers/ModuleController.cs | 2 +- .../Controllers/PermissionController.cs | 55 +++++++------------ Blog.Core.Api/Controllers/RoleController.cs | 2 +- .../Controllers/TasksQzController.cs | 18 +++--- Blog.Core.Api/Controllers/TopicController.cs | 6 +- .../Controllers/TopicDetailController.cs | 8 +-- .../Controllers/TransactionController.cs | 6 +- Blog.Core.Api/Controllers/UserController.cs | 4 +- .../Controllers/UserRoleController.cs | 2 +- Blog.Core.Common/Helper/RecursionHelper.cs | 4 +- Blog.Core.IServices/IBlogArticleServices.cs | 2 +- Blog.Core.IServices/ITasksLogServices.cs | 4 +- Blog.Core.IServices/IUserRoleServices.cs | 4 +- Blog.Core.Model/ViewModels/BlogViewModels.cs | 2 +- Blog.Core.Model/ViewModels/SysUserInfoDto.cs | 6 +- Blog.Core.Services/BlogArticleServices.cs | 2 +- Blog.Core.Services/TasksLogServices.cs | 4 +- Blog.Core.Services/UserRoleServices.cs | 4 +- .../Controller_Test/BlogController_Should.cs | 2 +- 22 files changed, 93 insertions(+), 108 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 79325e37..19f0ad64 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -26,14 +26,14 @@
    - + 获取博客详情 - + 获取详情【无权限】 @@ -67,7 +67,7 @@ - + 删除博客 @@ -276,7 +276,7 @@ - + 删除一条接口 @@ -384,7 +384,7 @@ - + 查询树形 Table @@ -406,7 +406,7 @@ - + 获取菜单树 @@ -428,7 +428,7 @@ - + 通过角色获取菜单 @@ -442,7 +442,7 @@ - + 删除菜单 @@ -456,7 +456,7 @@ - + 系统接口菜单同步接口 @@ -493,7 +493,7 @@ - + 删除角色 @@ -522,42 +522,42 @@ - + 删除一个任务 - + 启动计划任务 - + 停止一个计划任务 - + 暂停一个计划任务 - + 恢复一个计划任务 - + 重启一个计划任务 @@ -570,20 +570,20 @@ - + 立即执行任务 - + 获取任务运行日志 - + 任务概况 @@ -629,7 +629,7 @@ - + 获取详情【无权限】 @@ -650,14 +650,14 @@ - + 删除 bug - + 测试事务在AOP中的使用 @@ -712,7 +712,7 @@ - + 删除用户 @@ -748,7 +748,7 @@ - + 新建用户角色关系 @@ -1203,7 +1203,7 @@ 关键字 - + 获取部门树 diff --git a/Blog.Core.Api/Controllers/BlogController.cs b/Blog.Core.Api/Controllers/BlogController.cs index 83fad967..fbc67e12 100644 --- a/Blog.Core.Api/Controllers/BlogController.cs +++ b/Blog.Core.Api/Controllers/BlogController.cs @@ -83,7 +83,7 @@ public async Task>> Get(int id, int page = 1 [HttpGet("{id}")] //[Authorize(Policy = "Scope_BlogModule_Policy")] [Authorize] - public async Task> Get(int id) + public async Task> Get(long id) { return Success(await _blogArticleServices.GetBlogDetails(id)); } @@ -96,7 +96,7 @@ public async Task> Get(int id) /// [HttpGet] [Route("DetailNuxtNoPer")] - public async Task> DetailNuxtNoPer(int id) + public async Task> DetailNuxtNoPer(long id) { _logger.LogInformation("xxxxxxxxxxxxxxxxxxx"); return Success(await _blogArticleServices.GetBlogDetails(id)); @@ -104,7 +104,7 @@ public async Task> DetailNuxtNoPer(int id) [HttpGet] [Route("GoUrl")] - public async Task GoUrl(int id = 0) + public async Task GoUrl(long id = 0) { var response = await _blogArticleServices.QueryById(id); if (response != null && response.bsubmitter.IsNotEmptyOrNull()) @@ -136,7 +136,7 @@ public async Task>> GetBlogsByTypesForMVP(string [HttpGet] [Route("GetBlogByIdForMVP")] - public async Task> GetBlogByIdForMVP(int id = 0) + public async Task> GetBlogByIdForMVP(long id = 0) { if (id > 0) { @@ -247,7 +247,7 @@ public async Task> Put([FromBody] BlogArticle BlogArticle) [HttpDelete] [Authorize(Permissions.Name)] [Route("Delete")] - public async Task> Delete(int id) + public async Task> Delete(long id) { if (id > 0) { diff --git a/Blog.Core.Api/Controllers/DepartmentController.cs b/Blog.Core.Api/Controllers/DepartmentController.cs index b8174e90..faf1f850 100644 --- a/Blog.Core.Api/Controllers/DepartmentController.cs +++ b/Blog.Core.Api/Controllers/DepartmentController.cs @@ -109,7 +109,7 @@ public async Task>> GetTreeTable(long f = 0, strin /// /// [HttpGet] - public async Task> GetDepartmentTree(int pid = 0) + public async Task> GetDepartmentTree(long pid = 0) { var departments = await _departmentServices.Query(d => d.IsDeleted == false); var departmentTrees = (from child in departments @@ -168,7 +168,7 @@ public async Task> Put([FromBody] Department request) } [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); var model = await _departmentServices.QueryById(id); diff --git a/Blog.Core.Api/Controllers/ModuleController.cs b/Blog.Core.Api/Controllers/ModuleController.cs index 2da284ba..27e6f4db 100644 --- a/Blog.Core.Api/Controllers/ModuleController.cs +++ b/Blog.Core.Api/Controllers/ModuleController.cs @@ -119,7 +119,7 @@ public async Task> Put([FromBody] Modules module) /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { if (id <= 0) return Failed("缺少参数"); diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 059e9b18..7346cc21 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -79,21 +79,6 @@ public async Task>> Get(int page = 1, string key = ""; } - #region 舍弃 - //var permissions = await _permissionServices.Query(a => a.IsDeleted != true); - //if (!string.IsNullOrEmpty(key)) - //{ - // permissions = permissions.Where(t => (t.Name != null && t.Name.Contains(key))).ToList(); - //} - ////筛选后的数据总数 - //totalCount = permissions.Count; - ////筛选后的总页数 - //pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intTotalCount.ObjToDecimal())).ObjToInt(); - //permissions = permissions.OrderByDescending(d => d.Id).Skip((page - 1) * intTotalCount).Take(intTotalCount).ToList(); - #endregion - - - permissions = await _permissionServices.QueryPage(a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key)), page, pageSize, " Id desc "); @@ -162,7 +147,7 @@ public async Task>> Get(int page = 1, string /// [HttpGet] [AllowAnonymous] - public async Task>> GetTreeTable(int f = 0, string key = "") + public async Task>> GetTreeTable(long f = 0, string key = "") { List permissions = new List(); var apiList = await _moduleServices.Query(d => d.IsDeleted == false); @@ -245,7 +230,7 @@ public async Task> Post([FromBody] Permission permission) /// [HttpPost] public async Task> Assign([FromBody] AssignView assignView) - { + { if (assignView.rid > 0) { //开启事务 @@ -258,7 +243,7 @@ public async Task> Assign([FromBody] AssignView assignView) var permissions = await _permissionServices.Query(d => d.IsDeleted == false); List new_rmps = new List(); - var nowTime = _permissionServices.Db.GetDate(); + var nowTime = _permissionServices.Db.GetDate(); foreach (var item in assignView.pids) { var moduleid = permissions.Find(p => p.Id == item)?.Mid; @@ -268,7 +253,7 @@ public async Task> Assign([FromBody] AssignView assignView) { IsDeleted = false, RoleId = assignView.rid, - ModuleId = moduleid.ObjToInt(), + ModuleId = moduleid.ObjToLong(), PermissionId = item, CreateId = find_old_rmps == null ? _user.ID : find_old_rmps.CreateId, CreateBy = find_old_rmps == null ? _user.Name : find_old_rmps.CreateBy, @@ -280,7 +265,7 @@ public async Task> Assign([FromBody] AssignView assignView) }; new_rmps.Add(roleModulePermission); } - if(new_rmps.Count>0) await _roleModulePermissionServices.Add(new_rmps); + if (new_rmps.Count > 0) await _roleModulePermissionServices.Add(new_rmps); _unitOfWorkManage.CommitTran(); } catch (Exception) @@ -294,7 +279,7 @@ public async Task> Assign([FromBody] AssignView assignView) else { return Failed("请选择要操作的角色"); - } + } } @@ -305,7 +290,7 @@ public async Task> Assign([FromBody] AssignView assignView) /// /// [HttpGet] - public async Task> GetPermissionTree(int pid = 0, bool needbtn = false) + public async Task> GetPermissionTree(long pid = 0, bool needbtn = false) { //var data = new MessageModel(); @@ -355,7 +340,7 @@ public async Task> GetNavigationBar(long uid) var data = new MessageModel(); - var uidInHttpcontext1 = 0; + long uidInHttpcontext1 = 0; var roleIds = new List(); // ids4和jwt切换 if (Permissions.IsUseIds4) @@ -363,7 +348,7 @@ public async Task> GetNavigationBar(long uid) // ids4 uidInHttpcontext1 = (from item in _httpContext.HttpContext.User.Claims where item.Type == "sub" - select item.Value).FirstOrDefault().ObjToInt(); + select item.Value).FirstOrDefault().ObjToLong(); roleIds = (from item in _httpContext.HttpContext.User.Claims where item.Type == "role" select item.Value.ObjToLong()).ToList(); @@ -371,7 +356,7 @@ public async Task> GetNavigationBar(long uid) else { // jwt - uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToInt(); + uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToLong(); roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToLong()).Distinct().ToList(); } @@ -446,7 +431,7 @@ public async Task>> GetNavigationBarPro(long { var data = new MessageModel>(); - var uidInHttpcontext1 = 0; + long uidInHttpcontext1 = 0; var roleIds = new List(); // ids4和jwt切换 if (Permissions.IsUseIds4) @@ -454,7 +439,7 @@ public async Task>> GetNavigationBarPro(long // ids4 uidInHttpcontext1 = (from item in _httpContext.HttpContext.User.Claims where item.Type == "sub" - select item.Value).FirstOrDefault().ObjToInt(); + select item.Value).FirstOrDefault().ObjToLong(); roleIds = (from item in _httpContext.HttpContext.User.Claims where item.Type == "role" select item.Value.ObjToLong()).ToList(); @@ -462,7 +447,7 @@ public async Task>> GetNavigationBarPro(long else { // jwt - uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToInt(); + uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToLong(); roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToLong()).Distinct().ToList(); } @@ -519,14 +504,14 @@ orderby item.Id /// [HttpGet] [AllowAnonymous] - public async Task> GetPermissionIdByRoleId(int rid = 0) + public async Task> GetPermissionIdByRoleId(long rid = 0) { //var data = new MessageModel(); var rmps = await _roleModulePermissionServices.Query(d => d.IsDeleted == false && d.RoleId == rid); var permissionTrees = (from child in rmps orderby child.Id - select child.PermissionId.ObjToInt()).ToList(); + select child.PermissionId.ObjToLong()).ToList(); var permissions = await _permissionServices.Query(d => d.IsDeleted == false); List assignbtns = new List(); @@ -592,7 +577,7 @@ public async Task> Put([FromBody] Permission permission) /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); if (id > 0) @@ -654,7 +639,7 @@ public async Task> BatchPost([FromBody] List pe /// 是否执行迁移到数据 /// [HttpGet] - public async Task>> MigratePermission(string action = "", string controllerName = "", int pid = 0, bool isAction = false) + public async Task>> MigratePermission(string action = "", string controllerName = "", long pid = 0, bool isAction = false) { var data = new MessageModel>(); if (controllerName.IsNullOrEmpty()) @@ -776,12 +761,12 @@ public async Task>> MigratePermission(string actio public class AssignView { - public List pids { get; set; } - public int rid { get; set; } + public List pids { get; set; } + public long rid { get; set; } } public class AssignShow { - public List permissionids { get; set; } + public List permissionids { get; set; } public List assignbtns { get; set; } } diff --git a/Blog.Core.Api/Controllers/RoleController.cs b/Blog.Core.Api/Controllers/RoleController.cs index c96502c8..0b93e943 100644 --- a/Blog.Core.Api/Controllers/RoleController.cs +++ b/Blog.Core.Api/Controllers/RoleController.cs @@ -112,7 +112,7 @@ public async Task> Put([FromBody] Role role) /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); diff --git a/Blog.Core.Api/Controllers/TasksQzController.cs b/Blog.Core.Api/Controllers/TasksQzController.cs index ca9d37bc..887cfcfc 100644 --- a/Blog.Core.Api/Controllers/TasksQzController.cs +++ b/Blog.Core.Api/Controllers/TasksQzController.cs @@ -172,7 +172,7 @@ public async Task> Put([FromBody] TasksQz tasksQz) /// /// [HttpDelete] - public async Task> Delete(int jobId) + public async Task> Delete(long jobId) { var data = new MessageModel(); @@ -221,7 +221,7 @@ public async Task> Delete(int jobId) /// /// [HttpGet] - public async Task> StartJob(int jobId) + public async Task> StartJob(long jobId) { var data = new MessageModel(); @@ -278,7 +278,7 @@ public async Task> StartJob(int jobId) /// /// [HttpGet] - public async Task> StopJob(int jobId) + public async Task> StopJob(long jobId) { var data = new MessageModel(); @@ -318,7 +318,7 @@ public async Task> StopJob(int jobId) /// /// [HttpGet] - public async Task> PauseJob(int jobId) + public async Task> PauseJob(long jobId) { var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); @@ -372,7 +372,7 @@ public async Task> PauseJob(int jobId) /// /// [HttpGet] - public async Task> ResumeJob(int jobId) + public async Task> ResumeJob(long jobId) { var data = new MessageModel(); @@ -428,7 +428,7 @@ public async Task> ResumeJob(int jobId) /// /// [HttpGet] - public async Task> ReCovery(int jobId) + public async Task> ReCovery(long jobId) { var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); @@ -507,7 +507,7 @@ public MessageModel> GetTaskNameSpace() /// /// [HttpGet] - public async Task> ExecuteJob(int jobId) + public async Task> ExecuteJob(long jobId) { var data = new MessageModel(); @@ -527,7 +527,7 @@ public async Task> ExecuteJob(int jobId) /// /// [HttpGet] - public async Task>> GetTaskLogs(int jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null) + public async Task>> GetTaskLogs(long jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null) { var model = await _tasksLogServices.GetTaskLogs(jobId, page, pageSize, runTimeStart, runTimeEnd); return MessageModel>.Message(model.dataCount >= 0, "获取成功", model); @@ -537,7 +537,7 @@ public async Task>> GetTaskLogs(int jobId, int /// /// [HttpGet] - public async Task> GetTaskOverview(int jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null, string type = "month") + public async Task> GetTaskOverview(long jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null, string type = "month") { var model = await _tasksLogServices.GetTaskOverview(jobId, runTimeStart, runTimeEnd, type); return MessageModel.Message(true, "获取成功", model); diff --git a/Blog.Core.Api/Controllers/TopicController.cs b/Blog.Core.Api/Controllers/TopicController.cs index 308ad082..253f54ff 100644 --- a/Blog.Core.Api/Controllers/TopicController.cs +++ b/Blog.Core.Api/Controllers/TopicController.cs @@ -44,7 +44,7 @@ public async Task>> Get() // GET: api/Topic/5 [HttpGet("{id}")] - public string Get(int id) + public string Get(long id) { return "value"; } @@ -57,13 +57,13 @@ public void Post([FromBody] string value) // PUT: api/Topic/5 [HttpPut("{id}")] - public void Put(int id, [FromBody] string value) + public void Put(long id, [FromBody] string value) { } // DELETE: api/ApiWithActions/5 [HttpDelete("{id}")] - public void Delete(int id) + public void Delete(long id) { } } diff --git a/Blog.Core.Api/Controllers/TopicDetailController.cs b/Blog.Core.Api/Controllers/TopicDetailController.cs index 55af1a75..374aca24 100644 --- a/Blog.Core.Api/Controllers/TopicDetailController.cs +++ b/Blog.Core.Api/Controllers/TopicDetailController.cs @@ -42,7 +42,7 @@ public TopicDetailController(ITopicServices topicServices, ITopicDetailServices [AllowAnonymous] public async Task>> Get(int page = 1, string tname = "", string key = "", int intPageSize = 12) { - int tid = 0; + long tid = 0; if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { @@ -56,7 +56,7 @@ public async Task>> Get(int page = 1, string if (!string.IsNullOrEmpty(tname)) { - tid = ((await _topicServices.Query(ts => ts.tName == tname)).FirstOrDefault()?.Id).ObjToInt(); + tid = ((await _topicServices.Query(ts => ts.tName == tname)).FirstOrDefault()?.Id).ObjToLong(); } @@ -81,7 +81,7 @@ public async Task>> Get(int page = 1, string // GET: api/TopicDetail/5 [HttpGet("{id}")] [AllowAnonymous] - public async Task> Get(int id) + public async Task> Get(long id) { var data = new MessageModel(); var response = id > 0 ? await _topicDetailServices.QueryById(id) : new TopicDetail(); @@ -154,7 +154,7 @@ public async Task> Update([FromBody] TopicDetail topicDetai /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); if (id > 0) diff --git a/Blog.Core.Api/Controllers/TransactionController.cs b/Blog.Core.Api/Controllers/TransactionController.cs index 67ab576e..9853d985 100644 --- a/Blog.Core.Api/Controllers/TransactionController.cs +++ b/Blog.Core.Api/Controllers/TransactionController.cs @@ -95,7 +95,7 @@ public async Task>> Get() // GET: api/Transaction/5 [HttpGet("{id}")] - public async Task> Get(int id) + public async Task> Get(long id) { return await _guestbookServices.TestTranInRepository(); } @@ -126,7 +126,7 @@ public void Post([FromBody] string value) // PUT: api/Transaction/5 [HttpPut("{id}")] - public void Put(int id, [FromBody] string value) + public void Put(long id, [FromBody] string value) { } @@ -136,7 +136,7 @@ public void Put(int id, [FromBody] string value) /// /// [HttpDelete("{id}")] - public async Task Delete(int id) + public async Task Delete(long id) { return await _guestbookServices.TestTranInRepositoryAOP(); } diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 27989821..95137c8e 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -103,7 +103,7 @@ public async Task>> Get(int page = 1, str return Success(data.ConvertTo(_mapper)); } - private (string, List) GetFullDepartmentName(List departments, int departmentId) + private (string, List) GetFullDepartmentName(List departments, long departmentId) { var departmentModel = departments.FirstOrDefault(d => d.Id == departmentId); if (departmentModel == null) @@ -265,7 +265,7 @@ public async Task> Put([FromBody] SysUserInfoDto sysUserInf /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); if (id > 0) diff --git a/Blog.Core.Api/Controllers/UserRoleController.cs b/Blog.Core.Api/Controllers/UserRoleController.cs index c21ec6f4..693a68b8 100644 --- a/Blog.Core.Api/Controllers/UserRoleController.cs +++ b/Blog.Core.Api/Controllers/UserRoleController.cs @@ -80,7 +80,7 @@ public async Task> AddRole(string roleName) /// /// [HttpGet] - public async Task> AddUserRole(int uid, int rid) + public async Task> AddUserRole(long uid, long rid) { return new MessageModel() { diff --git a/Blog.Core.Common/Helper/RecursionHelper.cs b/Blog.Core.Common/Helper/RecursionHelper.cs index f6f21a38..092a0678 100644 --- a/Blog.Core.Common/Helper/RecursionHelper.cs +++ b/Blog.Core.Common/Helper/RecursionHelper.cs @@ -8,7 +8,7 @@ namespace Blog.Core.Common.Helper /// public static class RecursionHelper { - public static void LoopToAppendChildren(List all, PermissionTree curItem, int pid, bool needbtn) + public static void LoopToAppendChildren(List all, PermissionTree curItem, long pid, bool needbtn) { var subItems = all.Where(ee => ee.Pid == curItem.value).ToList(); @@ -52,7 +52,7 @@ public static void LoopToAppendChildren(List all, PermissionTree LoopToAppendChildren(all, subItem, pid, needbtn); } } - public static void LoopToAppendChildren(List all, DepartmentTree curItem, int pid) + public static void LoopToAppendChildren(List all, DepartmentTree curItem, long pid) { var subItems = all.Where(ee => ee.Pid == curItem.value).ToList(); diff --git a/Blog.Core.IServices/IBlogArticleServices.cs b/Blog.Core.IServices/IBlogArticleServices.cs index 23e6081b..a38826fb 100644 --- a/Blog.Core.IServices/IBlogArticleServices.cs +++ b/Blog.Core.IServices/IBlogArticleServices.cs @@ -9,7 +9,7 @@ namespace Blog.Core.IServices public interface IBlogArticleServices :IBaseServices { Task> GetBlogs(); - Task GetBlogDetails(int id); + Task GetBlogDetails(long id); } diff --git a/Blog.Core.IServices/ITasksLogServices.cs b/Blog.Core.IServices/ITasksLogServices.cs index fb15c8dd..fb6ad8a7 100644 --- a/Blog.Core.IServices/ITasksLogServices.cs +++ b/Blog.Core.IServices/ITasksLogServices.cs @@ -12,8 +12,8 @@ namespace Blog.Core.IServices /// public interface ITasksLogServices :IBaseServices { - public Task> GetTaskLogs(int jobId, int page, int intPageSize,DateTime? runTime,DateTime? endTime); - public Task GetTaskOverview(int jobId, DateTime? runTime, DateTime? endTime, string type); + public Task> GetTaskLogs(long jobId, int page, int intPageSize,DateTime? runTime,DateTime? endTime); + public Task GetTaskOverview(long jobId, DateTime? runTime, DateTime? endTime, string type); } } \ No newline at end of file diff --git a/Blog.Core.IServices/IUserRoleServices.cs b/Blog.Core.IServices/IUserRoleServices.cs index 9e7d3d29..91272a09 100644 --- a/Blog.Core.IServices/IUserRoleServices.cs +++ b/Blog.Core.IServices/IUserRoleServices.cs @@ -10,8 +10,8 @@ namespace Blog.Core.IServices public interface IUserRoleServices :IBaseServices { - Task SaveUserRole(int uid, int rid); - Task GetRoleIdByUid(int uid); + Task SaveUserRole(long uid, long rid); + Task GetRoleIdByUid(long uid); } } diff --git a/Blog.Core.Model/ViewModels/BlogViewModels.cs b/Blog.Core.Model/ViewModels/BlogViewModels.cs index 411a8ef7..86c16618 100644 --- a/Blog.Core.Model/ViewModels/BlogViewModels.cs +++ b/Blog.Core.Model/ViewModels/BlogViewModels.cs @@ -10,7 +10,7 @@ public class BlogViewModels /// /// /// - public int bID { get; set; } + public long bID { get; set; } /// 创建人 /// /// diff --git a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs index 33d84161..3b5451f0 100644 --- a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs +++ b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs @@ -3,13 +3,13 @@ namespace Blog.Core.Model.ViewModels { - public class SysUserInfoDto : SysUserInfoDtoRoot + public class SysUserInfoDto : SysUserInfoDtoRoot { public string uLoginName { get; set; } public string uLoginPWD { get; set; } public string uRealName { get; set; } public int uStatus { get; set; } - public int DepartmentId { get; set; } + public long DepartmentId { get; set; } public string uRemark { get; set; } public System.DateTime uCreateTime { get; set; } = DateTime.Now; public System.DateTime uUpdateTime { get; set; } = DateTime.Now; @@ -22,7 +22,7 @@ public class SysUserInfoDto : SysUserInfoDtoRoot public string addr { get; set; } public bool tdIsDelete { get; set; } public List RoleNames { get; set; } - public List Dids { get; set; } + public List Dids { get; set; } public string DepartmentName { get; set; } } } diff --git a/Blog.Core.Services/BlogArticleServices.cs b/Blog.Core.Services/BlogArticleServices.cs index eeff04e3..67ea2b9e 100644 --- a/Blog.Core.Services/BlogArticleServices.cs +++ b/Blog.Core.Services/BlogArticleServices.cs @@ -23,7 +23,7 @@ public BlogArticleServices(IMapper mapper) /// /// /// - public async Task GetBlogDetails(int id) + public async Task GetBlogDetails(long id) { // 此处想获取上一条下一条数据,因此将全部数据list出来,有好的想法请提出 //var bloglist = await base.Query(a => a.IsDeleted==false, a => a.bID); diff --git a/Blog.Core.Services/TasksLogServices.cs b/Blog.Core.Services/TasksLogServices.cs index 49393cd4..07d95f1f 100644 --- a/Blog.Core.Services/TasksLogServices.cs +++ b/Blog.Core.Services/TasksLogServices.cs @@ -14,7 +14,7 @@ namespace Blog.Core.Services { public partial class TasksLogServices : BaseServices, ITasksLogServices { - public async Task> GetTaskLogs(int jobId, int page, int intPageSize, DateTime? runTime, DateTime? endTime) + public async Task> GetTaskLogs(long jobId, int page, int intPageSize, DateTime? runTime, DateTime? endTime) { RefAsync totalCount = 0; Expression> whereExpression = log => true; @@ -41,7 +41,7 @@ public async Task> GetTaskLogs(int jobId, int page, int intP .ToPageListAsync(page, intPageSize, totalCount); return new PageModel(page, totalCount, intPageSize, data); } - public async Task GetTaskOverview(int jobId, DateTime? runTime, DateTime? endTime, string type) + public async Task GetTaskOverview(long jobId, DateTime? runTime, DateTime? endTime, string type) { //按年 if ("year".Equals(type)) diff --git a/Blog.Core.Services/UserRoleServices.cs b/Blog.Core.Services/UserRoleServices.cs index 38f524da..26194837 100644 --- a/Blog.Core.Services/UserRoleServices.cs +++ b/Blog.Core.Services/UserRoleServices.cs @@ -19,7 +19,7 @@ public class UserRoleServices : BaseServices, IUserRoleServices /// /// /// - public async Task SaveUserRole(int uid, int rid) + public async Task SaveUserRole(long uid, long rid) { UserRole userRole = new UserRole(uid, rid); @@ -42,7 +42,7 @@ public async Task SaveUserRole(int uid, int rid) [Caching(AbsoluteExpiration = 30)] - public async Task GetRoleIdByUid(int uid) + public async Task GetRoleIdByUid(long uid) { return ((await base.Query(d => d.UserId == uid)).OrderByDescending(d => d.Id).LastOrDefault()?.RoleId).ObjToInt(); } diff --git a/Blog.Core.Tests/Controller_Test/BlogController_Should.cs b/Blog.Core.Tests/Controller_Test/BlogController_Should.cs index 3d1e3178..59d42ae0 100644 --- a/Blog.Core.Tests/Controller_Test/BlogController_Should.cs +++ b/Blog.Core.Tests/Controller_Test/BlogController_Should.cs @@ -53,7 +53,7 @@ public async void Get_Blog_Page_Test() [Fact] public async void Get_Blog_Test() { - MessageModel blogVo = await blogController.Get(1); + MessageModel blogVo = await blogController.Get(1.ObjToLong()); Assert.NotNull(blogVo); } From 5e84e11ca84f3bf245ef4307e17b48cd2c20b265 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Sun, 2 Apr 2023 15:56:20 +0800 Subject: [PATCH 244/382] =?UTF-8?q?=E2=9C=A8=20=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + Blog.Core.Api/Blog.Core.Api.csproj | 1 + Blog.Core.Model/Models/PasswordLib.cs | 2 +- Blog.Core.Tests/WMBlog.db | Bin 200704 -> 0 bytes 4 files changed, 3 insertions(+), 1 deletion(-) delete mode 100644 Blog.Core.Tests/WMBlog.db diff --git a/.gitignore b/.gitignore index 4f554bea..fa4a3448 100644 --- a/.gitignore +++ b/.gitignore @@ -358,3 +358,4 @@ Blog.Core.Api/wwwroot/ui/ *.db /Blog.Core.Api/WMBlog.db-journal Logs +*.db diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 3bf64399..0d32998e 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -52,6 +52,7 @@ + diff --git a/Blog.Core.Model/Models/PasswordLib.cs b/Blog.Core.Model/Models/PasswordLib.cs index 2b43c265..9eb9292f 100644 --- a/Blog.Core.Model/Models/PasswordLib.cs +++ b/Blog.Core.Model/Models/PasswordLib.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Model.Models /// 密码库表 /// [SugarTable("PasswordLib", "密码库表")]//('数据库表名','数据库表备注') - [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') + //[TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') public class PasswordLib { [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] diff --git a/Blog.Core.Tests/WMBlog.db b/Blog.Core.Tests/WMBlog.db deleted file mode 100644 index 4931b9674dbdfa61661ba06a34e3c55254029529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200704 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 Date: Sun, 2 Apr 2023 16:01:03 +0800 Subject: [PATCH 245/382] Update SplitDemoController.cs --- Blog.Core.Api/Controllers/SplitDemoController.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Blog.Core.Api/Controllers/SplitDemoController.cs b/Blog.Core.Api/Controllers/SplitDemoController.cs index fb3c03c6..f625b202 100644 --- a/Blog.Core.Api/Controllers/SplitDemoController.cs +++ b/Blog.Core.Api/Controllers/SplitDemoController.cs @@ -77,7 +77,7 @@ public async Task> GetById(long id) public async Task> Post([FromBody] SplitDemo splitDemo) { var data = new MessageModel(); - unitOfWorkManage.BeginTran(); + //unitOfWorkManage.BeginTran(); var id = (await splitDemoServices.AddSplit(splitDemo)); data.success = (id == null ? false : true); try @@ -98,10 +98,10 @@ public async Task> Post([FromBody] SplitDemo splitDemo) } finally { - if (data.success) - unitOfWorkManage.CommitTran(); - else - unitOfWorkManage.RollbackTran(); + //if (data.success) + // unitOfWorkManage.CommitTran(); + //else + // unitOfWorkManage.RollbackTran(); } return data; } From 45d538010be8dc826b128a38bad9ff9c91d429b3 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Sun, 2 Apr 2023 17:33:59 +0800 Subject: [PATCH 246/382] =?UTF-8?q?=E2=9C=A8=20=E6=9A=82=E6=97=B6=E5=85=88?= =?UTF-8?q?=E5=8F=96=E6=B6=88Log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/appsettings.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 3c117375..22b8e84d 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -57,7 +57,7 @@ "Enabled": false }, "LogToDB": { - "Enabled": true + "Enabled": false } }, "TranAOP": { @@ -212,7 +212,7 @@ "Enabled": false }, "LogToDB": { - "Enabled": true + "Enabled": false } }, "IPLog": { @@ -221,7 +221,7 @@ "Enabled": false }, "LogToDB": { - "Enabled": true + "Enabled": false } }, "RecordAccessLogs": { @@ -230,7 +230,7 @@ "Enabled": false }, "LogToDB": { - "Enabled": true + "Enabled": false }, "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," }, From 8cb4df9ac0a7a8ec43b1e2d059a26b57edb3f018 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Thu, 6 Apr 2023 21:43:18 +0800 Subject: [PATCH 247/382] =?UTF-8?q?=E2=9C=A8=20git=20ignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index fa4a3448..de419c90 100644 --- a/.gitignore +++ b/.gitignore @@ -355,7 +355,6 @@ Blog.Core/WMBlog.db Blog.Core/Blog.Core*.xml Blog.Core.Api/WMBlog.db Blog.Core.Api/wwwroot/ui/ +Blog.Core.Api/Logs *.db /Blog.Core.Api/WMBlog.db-journal -Logs -*.db From 7c4b76aeea437eec708ff7083c78cd9ab53669ae Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Thu, 6 Apr 2023 22:40:05 +0800 Subject: [PATCH 248/382] =?UTF-8?q?=E2=9C=A8=20Serilog=20log=20to=20db?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/appsettings.json | 5 +- Blog.Core.Common/DB/BaseDBConfig.cs | 4 +- .../LogHelper/LogContextExtension.cs | 2 +- Blog.Core.Common/Seed/DBSeed.cs | 56 ++++++++ .../HostedService/SeedDataHostedService.cs | 3 + .../ServiceExtensions/SerilogSetup.cs | 5 +- .../ServiceExtensions/SqlsugarSetup.cs | 16 ++- Blog.Core.Model/Base/BaseLog.cs | 22 +++ Blog.Core.Model/Logs/AuditSqlLog.cs | 12 ++ Blog.Core.Model/Logs/GlobalErrorLog.cs | 13 ++ Blog.Core.Model/Logs/GlobalInformationLog.cs | 12 ++ Blog.Core.Model/Logs/GlobalWarningLog.cs | 12 ++ Blog.Core.Serilog/Blog.Core.Serilog.csproj | 4 + .../LogBatchingSinkConfiguration.cs | 31 ++++ .../LoggerConfigurationExtensions.cs | 40 +----- Blog.Core.Serilog/Sink/LogBatchingSink.cs | 135 ++++++++++++++++++ 16 files changed, 320 insertions(+), 52 deletions(-) create mode 100644 Blog.Core.Model/Base/BaseLog.cs create mode 100644 Blog.Core.Model/Logs/AuditSqlLog.cs create mode 100644 Blog.Core.Model/Logs/GlobalErrorLog.cs create mode 100644 Blog.Core.Model/Logs/GlobalInformationLog.cs create mode 100644 Blog.Core.Model/Logs/GlobalWarningLog.cs create mode 100644 Blog.Core.Serilog/Configuration/LogBatchingSinkConfiguration.cs create mode 100644 Blog.Core.Serilog/Sink/LogBatchingSink.cs diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index c712054c..98f6d4b0 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -45,10 +45,11 @@ "MemoryCachingAOP": { "Enabled": true }, + "LogToDb": true, "LogAOP": { "Enabled": true, "LogToFile": { - "Enabled": false + "Enabled": true }, "LogToDB": { "Enabled": true @@ -63,7 +64,7 @@ "Enabled": true }, "LogToDB": { - "Enabled": false + "Enabled": true }, "LogToConsole": { "Enabled": true diff --git a/Blog.Core.Common/DB/BaseDBConfig.cs b/Blog.Core.Common/DB/BaseDBConfig.cs index d8c3ee50..5761d91d 100644 --- a/Blog.Core.Common/DB/BaseDBConfig.cs +++ b/Blog.Core.Common/DB/BaseDBConfig.cs @@ -12,7 +12,9 @@ public class BaseDBConfig * 目前是多库操作,默认加载的是appsettings.json设置为true的第一个db连接。 */ public static (List allDbs, List slaveDbs) MutiConnectionString => MutiInitConn(); - public static ConnectionConfig LogConfig; //日志库 + public static List AllConfig=new(); //所有的库连接 + public static List ValidConfig=new(); //有效的库连接(除去Log库) + public static ConnectionConfig LogConfig; //日志库 private static string DifDBConnOfSecurity(params string[] conn) { diff --git a/Blog.Core.Common/LogHelper/LogContextExtension.cs b/Blog.Core.Common/LogHelper/LogContextExtension.cs index bce80cbb..573ba057 100644 --- a/Blog.Core.Common/LogHelper/LogContextExtension.cs +++ b/Blog.Core.Common/LogHelper/LogContextExtension.cs @@ -24,7 +24,7 @@ public IDisposable SqlAopPushProperty(ISqlSugarClient db) AddStock(LogContext.PushProperty(LogContextStatic.SqlOutToFile, AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToFile", "Enabled" }).ObjToBool())); AddStock(LogContext.PushProperty(LogContextStatic.OutToDb, - AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToDb", "Enabled" }).ObjToBool())); + AppSettings.app(new string[] { "AppSettings", "SqlAOP", "LogToDB", "Enabled" }).ObjToBool())); AddStock(LogContext.PushProperty(LogContextStatic.SugarActionType, db.SugarActionType)); diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 7b594109..5a86f933 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -8,11 +8,13 @@ using SqlSugar; using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; +using Blog.Core.Common.Const; namespace Blog.Core.Common.Seed { @@ -426,6 +428,56 @@ private static async Task SeedDataAsync(ISqlSugarClient db) } } + /// + /// 迁移日志数据库 + /// + /// + public static void MigrationLogs(MyContext myContext) + { + // 创建数据库表,遍历指定命名空间下的class, + // 注意不要把其他命名空间下的也添加进来。 + Console.WriteLine("Create Log Tables..."); + if (!myContext.Db.IsAnyConnection(SqlSugarConst.LogConfigId.ToLower())) + { + throw new ApplicationException("未配置日志数据库,请在appsettings.json中DBS节点中配置"); + } + + var logDb = myContext.Db.GetConnection(SqlSugarConst.LogConfigId.ToLower()); + + var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory; + var referencedAssemblies = System.IO.Directory.GetFiles(path, "Blog.Core.Model.dll").Select(Assembly.LoadFrom).ToArray(); + var modelTypes = referencedAssemblies + .SelectMany(a => a.DefinedTypes) + .Select(type => type.AsType()) + .Where(x => x.IsClass && x.Namespace != null && x.Namespace.StartsWith("Blog.Core.Model.Logs")).ToList(); + Stopwatch sw = Stopwatch.StartNew(); + + var tables = logDb.DbMaintenance.GetTableInfoList(); + + modelTypes.ForEach(t => + { + // 这里只支持添加修改表,不支持删除 + // 如果想要删除,数据库直接右键删除,或者联系SqlSugar作者; + if (!tables.Any(s => s.Name.Contains(t.Name))) + { + Console.WriteLine(t.Name); + if (t.GetCustomAttribute() != null) + { + logDb.CodeFirst.SplitTables().InitTables(t); + } + else + { + logDb.CodeFirst.InitTables(t); + } + } + }); + + sw.Stop(); + + $"Log Tables created successfully! {sw.ElapsedMilliseconds}ms".WriteSuccessLine(); + Console.WriteLine(); + } + /// /// 初始化 多租户 @@ -523,6 +575,8 @@ public static async Task InitTenantSeedAsync(ITenant itenant, ConnectionConfig c #endregion + #region 多租户 种子数据 初始化 + private static async Task TenantSeedDataAsync(ISqlSugarClient db, TenantTypeEnum tenantType) { // 获取所有种子配置-初始化数据 @@ -578,5 +632,7 @@ private static async Task TenantSeedDataAsync(ISqlSugarClient db, TenantTypeEnum } } } + + #endregion } } \ No newline at end of file diff --git a/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs b/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs index 868d750e..e1da3d69 100644 --- a/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs +++ b/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs @@ -39,6 +39,9 @@ private async Task DoWork() { await DBSeed.SeedAsync(_myContext, _webRootPath); + //日志 + DBSeed.MigrationLogs(_myContext); + //多租户 同步 await DBSeed.TenantSeedAsync(_myContext); } diff --git a/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs index a112409c..0d8a0768 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs @@ -1,5 +1,6 @@ using Blog.Core.Common; using Blog.Core.Common.LogHelper; +using Blog.Core.Serilog.Configuration; using Blog.Core.Serilog.Extensions; using Microsoft.Extensions.Hosting; using Serilog; @@ -21,9 +22,9 @@ public static IHostBuilder AddSerilogSetup(this IHostBuilder host) //输出到控制台 .WriteToConsole() //将日志保存到文件中 - .WriteToFile(); + .WriteToFile() //配置日志库 - //.WriteToLogBatching(); + .WriteToLogBatching(); Log.Logger = loggerConfiguration.CreateLogger(); diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 3440b8af..98dd6e24 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -33,8 +33,6 @@ public static void AddSqlsugarSetup(this IServiceCollection services) { var memoryCache = o.GetRequiredService(); - // 连接字符串 - var listConfig = new List(); // 从库 var listConfig_Slave = new List(); BaseDBConfig.MutiConnectionString.slaveDbs.ForEach(s => @@ -77,12 +75,16 @@ public static void AddSqlsugarSetup(this IServiceCollection services) }, InitKeyType = InitKeyType.Attribute }; - if (SqlSugarConst.LogConfigId.Equals(m.ConnId)) + if (SqlSugarConst.LogConfigId.ToLower().Equals(m.ConnId.ToLower())) { BaseDBConfig.LogConfig = config; } + else + { + BaseDBConfig.ValidConfig.Add(config); + } - listConfig.Add(config); + BaseDBConfig.AllConfig.Add(config); }); if (BaseDBConfig.LogConfig is null) @@ -90,14 +92,14 @@ public static void AddSqlsugarSetup(this IServiceCollection services) throw new ApplicationException("未配置Log库连接"); } - return new SqlSugarScope(listConfig, db => + return new SqlSugarScope(BaseDBConfig.AllConfig, db => { - listConfig.ForEach(config => + BaseDBConfig.ValidConfig.ForEach(config => { var dbProvider = db.GetConnectionScope((string)config.ConfigId); // 打印SQL语句 - dbProvider.Aop.OnLogExecuting = (s, parameters) => SqlSugarAop.OnLogExecuting(dbProvider,s, parameters, config); + dbProvider.Aop.OnLogExecuting = (s, parameters) => SqlSugarAop.OnLogExecuting(dbProvider, s, parameters, config); // 数据审计 dbProvider.Aop.DataExecuting = SqlSugarAop.DataExecuting; diff --git a/Blog.Core.Model/Base/BaseLog.cs b/Blog.Core.Model/Base/BaseLog.cs new file mode 100644 index 00000000..829ff09e --- /dev/null +++ b/Blog.Core.Model/Base/BaseLog.cs @@ -0,0 +1,22 @@ +using SqlSugar; +using System; + +namespace Blog.Core.Model.Base; + +public abstract class BaseLog : RootEntityTkey +{ + [SplitField] + public DateTime? DateTime { get; set; } + + [SugarColumn(IsNullable = true)] + public string Level { get; set; } + + [SugarColumn(IsNullable = true, ColumnDataType = "longtext,text,clob")] + public string Message { get; set; } + + [SugarColumn(IsNullable = true, ColumnDataType = "longtext,text,clob")] + public string MessageTemplate { get; set; } + + [SugarColumn(IsNullable = true, ColumnDataType = "longtext,text,clob")] + public string Properties { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Logs/AuditSqlLog.cs b/Blog.Core.Model/Logs/AuditSqlLog.cs new file mode 100644 index 00000000..a6bd4e23 --- /dev/null +++ b/Blog.Core.Model/Logs/AuditSqlLog.cs @@ -0,0 +1,12 @@ +using Blog.Core.Model.Base; +using SqlSugar; + +namespace Blog.Core.Model.Logs; + +[Tenant("log")] +[SplitTable(SplitType.Month)] //按年分表 (自带分表支持 年、季、月、周、日) +[SugarTable($@"{nameof(AuditSqlLog)}_{{year}}{{month}}{{day}}")] +public class AuditSqlLog: BaseLog +{ + +} \ No newline at end of file diff --git a/Blog.Core.Model/Logs/GlobalErrorLog.cs b/Blog.Core.Model/Logs/GlobalErrorLog.cs new file mode 100644 index 00000000..08172eae --- /dev/null +++ b/Blog.Core.Model/Logs/GlobalErrorLog.cs @@ -0,0 +1,13 @@ +using Blog.Core.Model.Base; +using SqlSugar; + +namespace Blog.Core.Model.Logs; + +[Tenant("log")] +[SplitTable(SplitType.Month)] //按年分表 (自带分表支持 年、季、月、周、日) +[SugarTable($@"{nameof(GlobalErrorLog)}_{{year}}{{month}}{{day}}")] +public class GlobalErrorLog : BaseLog +{ + [SugarColumn(IsNullable = true, ColumnDataType = "longtext,text,clob")] + public string Exception { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Logs/GlobalInformationLog.cs b/Blog.Core.Model/Logs/GlobalInformationLog.cs new file mode 100644 index 00000000..14873eed --- /dev/null +++ b/Blog.Core.Model/Logs/GlobalInformationLog.cs @@ -0,0 +1,12 @@ +using Blog.Core.Model.Base; +using SqlSugar; + +namespace Blog.Core.Model.Logs; + +[Tenant("log")] +[SplitTable(SplitType.Month)] //按年分表 (自带分表支持 年、季、月、周、日) +[SugarTable($@"{nameof(GlobalInformationLog)}_{{year}}{{month}}{{day}}")] +public class GlobalInformationLog : BaseLog +{ + +} \ No newline at end of file diff --git a/Blog.Core.Model/Logs/GlobalWarningLog.cs b/Blog.Core.Model/Logs/GlobalWarningLog.cs new file mode 100644 index 00000000..7f4fb945 --- /dev/null +++ b/Blog.Core.Model/Logs/GlobalWarningLog.cs @@ -0,0 +1,12 @@ +using Blog.Core.Model.Base; +using SqlSugar; + +namespace Blog.Core.Model.Logs; + +[Tenant("log")] +[SplitTable(SplitType.Month)] //按年分表 (自带分表支持 年、季、月、周、日) +[SugarTable($@"{nameof(GlobalWarningLog)}_{{year}}{{month}}{{day}}")] +public class GlobalWarningLog: BaseLog +{ + +} \ No newline at end of file diff --git a/Blog.Core.Serilog/Blog.Core.Serilog.csproj b/Blog.Core.Serilog/Blog.Core.Serilog.csproj index 07fa26f3..8df8f16f 100644 --- a/Blog.Core.Serilog/Blog.Core.Serilog.csproj +++ b/Blog.Core.Serilog/Blog.Core.Serilog.csproj @@ -6,6 +6,10 @@ enable + + + + diff --git a/Blog.Core.Serilog/Configuration/LogBatchingSinkConfiguration.cs b/Blog.Core.Serilog/Configuration/LogBatchingSinkConfiguration.cs new file mode 100644 index 00000000..65aacde7 --- /dev/null +++ b/Blog.Core.Serilog/Configuration/LogBatchingSinkConfiguration.cs @@ -0,0 +1,31 @@ +using Blog.Core.Common; +using Blog.Core.Serilog.Sink; +using Serilog; +using Serilog.Sinks.PeriodicBatching; + +namespace Blog.Core.Serilog.Configuration; + +public static class LogBatchingSinkConfiguration +{ + public static LoggerConfiguration WriteToLogBatching(this LoggerConfiguration loggerConfiguration) + { + if (!AppSettings.app("AppSettings", "LogToDb").ObjToBool()) + { + return loggerConfiguration; + } + + var exampleSink = new LogBatchingSink(); + + var batchingOptions = new PeriodicBatchingSinkOptions + { + BatchSizeLimit = 500, + Period = TimeSpan.FromSeconds(1), + EagerlyEmitFirstEvent = true, + QueueLimit = 10000 + }; + + var batchingSink = new PeriodicBatchingSink(exampleSink, batchingOptions); + + return loggerConfiguration.WriteTo.Sink(batchingSink); + } +} \ No newline at end of file diff --git a/Blog.Core.Serilog/Extensions/LoggerConfigurationExtensions.cs b/Blog.Core.Serilog/Extensions/LoggerConfigurationExtensions.cs index 2736aa1f..d70616b4 100644 --- a/Blog.Core.Serilog/Extensions/LoggerConfigurationExtensions.cs +++ b/Blog.Core.Serilog/Extensions/LoggerConfigurationExtensions.cs @@ -9,45 +9,6 @@ namespace Blog.Core.Serilog.Extensions; public static class LoggerConfigurationExtensions { - public static LoggerConfiguration WriteToSqlServer(this LoggerConfiguration loggerConfiguration) - { - var logConnectionStrings = AppSettings.app("LogConnectionStrings"); - if (logConnectionStrings.IsNullOrEmpty()) return loggerConfiguration; - - //输出SQL - //loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => - // lg.FilterSqlLog().WriteTo.MSSqlServer(logConnectionStrings, new MSSqlServerSinkOptions() - // { - // TableName = "SqlLog", - // AutoCreateSqlTable = true - // })); - - //输出普通日志 - //loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => - // lg.FilterRemoveSqlLog().Filter.ByIncludingOnly(p => p.Level >= LogEventLevel.Error) - // .WriteTo.MSSqlServer(logConnectionStrings, new MSSqlServerSinkOptions() - // { - // TableName = "ErrorLog", - // AutoCreateSqlTable = true - // })); - //loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => - // lg.FilterRemoveSqlLog().Filter.ByIncludingOnly(p => p.Level == LogEventLevel.Warning) - // .WriteTo.MSSqlServer(logConnectionStrings, new MSSqlServerSinkOptions() - // { - // TableName = "WarningLog", - // AutoCreateSqlTable = true - // })); - //loggerConfiguration = loggerConfiguration.WriteTo.Logger(lg => - // lg.FilterRemoveSqlLog().Filter.ByIncludingOnly(p => p.Level <= LogEventLevel.Information) - // .WriteTo.MSSqlServer(logConnectionStrings, new MSSqlServerSinkOptions() - // { - // TableName = "InformationLog", - // AutoCreateSqlTable = true - // })); - - return loggerConfiguration; - } - public static LoggerConfiguration WriteToConsole(this LoggerConfiguration loggerConfiguration) { //输出普通日志 @@ -84,6 +45,7 @@ public static LoggerConfiguration FilterSqlLog(this LoggerConfiguration lc) public static IEnumerable FilterSqlLog(this IEnumerable batch) { + //只记录 Insert、Update、Delete语句 return batch.Where(s => s.WithProperty(LogContextStatic.LogSource, q => LogContextStatic.AopSql.Equals(q))) .Where(s => s.WithProperty(LogContextStatic.SugarActionType, q => !new[] { SugarActionType.UnKnown, SugarActionType.Query }.Contains(q))); diff --git a/Blog.Core.Serilog/Sink/LogBatchingSink.cs b/Blog.Core.Serilog/Sink/LogBatchingSink.cs new file mode 100644 index 00000000..0a6e1223 --- /dev/null +++ b/Blog.Core.Serilog/Sink/LogBatchingSink.cs @@ -0,0 +1,135 @@ +using Blog.Core.Common; +using Blog.Core.Model.Logs; +using Blog.Core.Serilog.Extensions; +using Mapster; +using Serilog.Events; +using Serilog.Sinks.PeriodicBatching; +using SqlSugar; + +namespace Blog.Core.Serilog.Sink; + +public class LogBatchingSink : IBatchedLogEventSink +{ + public async Task EmitBatchAsync(IEnumerable batch) + { + var sugar = App.GetService(false); + + await WriteSqlLog(sugar, batch.FilterSqlLog()); + await WriteLogs(sugar, batch.FilterRemoveOtherLog()); + } + + public Task OnEmptyBatchAsync() + { + return Task.CompletedTask; + } + + #region Write Log + + private async Task WriteLogs(ISqlSugarClient db, IEnumerable batch) + { + if (!batch.Any()) + { + return; + } + + var group = batch.GroupBy(s => s.Level); + foreach (var v in group) + { + switch (v.Key) + { + case LogEventLevel.Information: + await WriteInformationLog(db, v); + break; + case LogEventLevel.Warning: + await WriteWarningLog(db, v); + break; + case LogEventLevel.Error: + case LogEventLevel.Fatal: + await WriteErrorLog(db, v); + break; + } + } + } + + private async Task WriteInformationLog(ISqlSugarClient db, IEnumerable batch) + { + if (!batch.Any()) + { + return; + } + + var logs = new List(); + foreach (var logEvent in batch) + { + var log = logEvent.Adapt(); + log.Message = logEvent.RenderMessage(); + log.Properties = logEvent.Properties.ToJson(); + log.DateTime = logEvent.Timestamp.DateTime; + logs.Add(log); + } + + await db.AsTenant().InsertableWithAttr(logs).SplitTable().ExecuteReturnSnowflakeIdAsync(); + } + + private async Task WriteWarningLog(ISqlSugarClient db, IEnumerable batch) + { + if (!batch.Any()) + { + return; + } + + var logs = new List(); + foreach (var logEvent in batch) + { + var log = logEvent.Adapt(); + log.Message = logEvent.RenderMessage(); + log.Properties = logEvent.Properties.ToJson(); + log.DateTime = logEvent.Timestamp.DateTime; + logs.Add(log); + } + + await db.AsTenant().InsertableWithAttr(logs).SplitTable().ExecuteReturnSnowflakeIdAsync(); + } + + private async Task WriteErrorLog(ISqlSugarClient db, IEnumerable batch) + { + if (!batch.Any()) + { + return; + } + + var logs = new List(); + foreach (var logEvent in batch) + { + var log = logEvent.Adapt(); + log.Message = logEvent.RenderMessage(); + log.Properties = logEvent.Properties.ToJson(); + log.DateTime = logEvent.Timestamp.DateTime; + logs.Add(log); + } + + await db.AsTenant().InsertableWithAttr(logs).SplitTable().ExecuteReturnSnowflakeIdAsync(); + } + + private async Task WriteSqlLog(ISqlSugarClient db, IEnumerable batch) + { + if (!batch.Any()) + { + return; + } + + var logs = new List(); + foreach (var logEvent in batch) + { + var log = logEvent.Adapt(); + log.Message = logEvent.RenderMessage(); + log.Properties = logEvent.Properties.ToJson(); + log.DateTime = logEvent.Timestamp.DateTime; + logs.Add(log); + } + + await db.AsTenant().InsertableWithAttr(logs).SplitTable().ExecuteReturnSnowflakeIdAsync(); + } + + #endregion +} \ No newline at end of file From 36a38694b5396c43f143202175889e78678bef43 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 8 Apr 2023 19:07:00 +0800 Subject: [PATCH 249/382] feat: change readme --- Blog.Core.Api/Blog.Core.Api.csproj | 1 - README.md | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 0d32998e..3bf64399 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -52,7 +52,6 @@ - diff --git a/README.md b/README.md index ee36dc2c..a62a2eb6 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x #### 商业授权付费版下🎁🎁🎁 -- [x] 包含下边框架模块中的所有功能; +- [x] 包含开源版 `框架模块/组件模块` 中的所有功能; - [x] 全部表结构主键底层架构改成`string`类型(默认雪花,支持guid),更方便迁移; - [x] 完善部门数据权限,可以基于策略配置查看数据范围; - [x] 优化权限处理器,解决多实例分布式下,权限不同步问题(必须配置Redis); @@ -82,7 +82,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等,并自动持久化到数据库表🎶; - [x] 支持项目事务处理(若要分布式,用cap即可)✨; - [x] 设计4种 AOP 切面编程,功能涵盖:日志、缓存、审计、事务 ✨; -- [x] Log4net 多种日志自动生成到数据库中,目前支持MySql/SqlServer/Sqlite/Oracle/Postgresql🎉; +- [x] 全局统一封装 Serilog 生成多种日志,并自动生成到数据库中,目前支持MySql/SqlServer/Sqlite/Oracle/Postgresql🎉; - [x] 设计并支持按钮级别的RBAC权限控制,同时支持一键同步接口和菜单 🎶; - [x] 支持 T4 代码模板,自动生成每层代码; - [x] 或使用 DbFirst 一键创建自己项目的四层文件(支持多库); @@ -100,7 +100,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 使用 AutoFac 做依赖注入容器,并提供批量服务注入 ✨; - [x] 支持 CORS 跨域; - [x] 封装 JWT 自定义策略授权; -- [x] 使用 Log4Net 日志框架,集成原生 ILogger 接口做日志记录; +- [x] 使用 Serilog 日志框架,集成原生 ILogger 接口做日志记录; - [x] 使用 SignalR 双工通讯 ✨; - [x] 添加 IpRateLimiting 做 API 限流处理; - [x] 使用 Quartz.net 做任务调度(目前单机多任务,集群调度暂不支持); @@ -115,7 +115,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 新增 Kafka 消息队列,并配合实现EventBus ✨; - [x] 新增 微信公众号管理,并集成到Blog.Admin后台 ✨; - [x] 新增 - 数据部门权限; -- [x] 新增 - Log4net集成日志数据持久化到数据库; +- [x] 新增 - Serilog 集成日志数据持久化到数据库; - [x] 新增 - 多租户模式(单表,多表,多库三种模式); From cf97167537a431376c5e55990c4a049f1761a109 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 8 Apr 2023 20:33:42 +0800 Subject: [PATCH 250/382] Update DBSeed.cs --- Blog.Core.Common/Seed/DBSeed.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index f2795b08..000ff976 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -445,7 +445,9 @@ public static void MigrationLogs(MyContext myContext) } var logDb = myContext.Db.GetConnection(SqlSugarConst.LogConfigId.ToLower()); - + Console.WriteLine($"Create log Database(The Db Id:{SqlSugarConst.LogConfigId.ToLower()})..."); + logDb.DbMaintenance.CreateDatabase(); + ConsoleHelper.WriteSuccessLine($"Log Database created successfully!"); var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory; var referencedAssemblies = System.IO.Directory.GetFiles(path, "Blog.Core.Model.dll").Select(Assembly.LoadFrom).ToArray(); var modelTypes = referencedAssemblies From b595ac4a1e36be0de394a853340a881a0a49553c Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Sun, 9 Apr 2023 22:46:53 +0800 Subject: [PATCH 251/382] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=B8=BB=E5=88=86?= =?UTF-8?q?=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 + Blog.Core.Api/Blog.Core.Api.csproj | 5 +- Blog.Core.Api/Blog.Core.Model.xml | 315 +++++++++ Blog.Core.Api/Blog.Core.xml | 201 +++++- Blog.Core.Api/Controllers/BlogController.cs | 16 +- .../Controllers/DbFirst/MigrateController.cs | 30 +- .../Controllers/DepartmentController.cs | 13 +- Blog.Core.Api/Controllers/LoginController.cs | 37 +- Blog.Core.Api/Controllers/ModuleController.cs | 7 +- .../Controllers/MonitorController.cs | 7 - Blog.Core.Api/Controllers/NacosController.cs | 1 - Blog.Core.Api/Controllers/PayController.cs | 4 +- .../Controllers/PermissionController.cs | 158 ++--- Blog.Core.Api/Controllers/RoleController.cs | 5 +- .../Controllers/SplitDemoController.cs | 199 ++++++ .../Controllers/TasksQzController.cs | 85 ++- .../Tenant/TenantByDbController.cs | 50 ++ .../Tenant/TenantByIdController.cs | 49 ++ .../Tenant/TenantByTableController.cs | 57 ++ .../Tenant/TenantManagerController.cs | 87 +++ Blog.Core.Api/Controllers/TopicController.cs | 10 +- .../Controllers/TopicDetailController.cs | 13 +- .../Controllers/TransactionController.cs | 11 +- Blog.Core.Api/Controllers/UserController.cs | 15 +- .../Controllers/UserRoleController.cs | 5 +- Blog.Core.Api/Controllers/ValuesController.cs | 1 - .../Controllers/WeChatCompanyController.cs | 1 - .../Controllers/WeChatConfigController.cs | 1 - Blog.Core.Api/Controllers/WeChatController.cs | 5 +- .../Controllers/WeChatPushLogController.cs | 1 - .../Controllers/WeChatSubController.cs | 1 - Blog.Core.Api/Program.cs | 34 +- Blog.Core.Api/Startup.cs | 43 +- Blog.Core.Api/appsettings.json | 599 +++++++++--------- .../BlogCore.Data.excel/SysUserInfo.xlsx | Bin 11177 -> 11197 bytes .../wwwroot/BlogCore.Data.json/Modules.tsv | 44 ++ .../wwwroot/BlogCore.Data.json/Permission.tsv | 86 ++- .../RoleModulePermission.tsv | 12 +- .../wwwroot/BlogCore.Data.json/TasksQz.tsv | 8 +- Blog.Core.Build.bat | 1 - Blog.Core.Common/App.cs | 19 + Blog.Core.Common/Blog.Core.Common.csproj | 4 + Blog.Core.Common/Core/InternalApp.cs | 17 + Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 130 ++++ Blog.Core.Common/DB/BaseDBConfig.cs | 22 +- Blog.Core.Common/DB/RepositorySetting.cs | 48 ++ Blog.Core.Common/DB/TenantUtil.cs | 102 +++ .../Extensions/AssemblysExtensions.cs | 24 + .../Extensions/ExpressionExtensions.cs | 13 +- .../Extensions/GenericTypeExtensions.cs | 28 +- .../Extensions/UntilExtensions.cs | 18 + Blog.Core.Common/Helper/DynamicLinqFactory.cs | 100 ++- .../Helper/GenericTypeExtensions.cs | 56 ++ Blog.Core.Common/Helper/NumberConverter.cs | 174 +++++ Blog.Core.Common/Helper/RecursionHelper.cs | 16 +- Blog.Core.Common/Helper/SM/SM4.cs | 3 +- Blog.Core.Common/Helper/UtilConvert.cs | 12 + .../HttpContextUser/AspNetUser.cs | 6 +- Blog.Core.Common/HttpContextUser/IUser.cs | 3 +- Blog.Core.Common/Seed/DBSeed.cs | 305 ++++++++- Blog.Core.Common/Seed/IEntitySeedData.cs | 36 ++ .../Seed/SeedData/BusinessDataSeedData.cs | 79 +++ .../SeedData/MultiBusinessDataSeedData.cs | 38 ++ .../SeedData/MultiBusinessSubDataSeedData.cs | 38 ++ .../Seed/SeedData/SubBusinessDataSeedData.cs | 70 ++ .../Seed/SeedData/TenantSeedData.cs | 72 +++ .../Seed/SeedData/UserInfoSeedData.cs | 80 +++ Blog.Core.EventBus/Blog.Core.EventBus.csproj | 2 +- .../Blog.Core.Extensions.csproj | 2 +- .../HostedService/ConsulHostedService.cs | 71 +++ .../HostedService/EventBusHostedService.cs | 45 ++ .../HostedService/QuartzJobHostedService.cs | 67 ++ .../HostedService/SeedDataHostedService.cs | 58 ++ .../Middlewares/RequRespLogMiddleware.cs | 1 - .../ServiceExtensions/EventBusSetup.cs | 21 +- .../InitializationHostServiceSetup.cs | 24 + .../ServiceExtensions/SqlsugarSetup.cs | 17 +- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 6 +- Blog.Core.Gateway/Program.cs | 4 +- .../appsettings.gw.Development.json | 9 + Blog.Core.Gateway/appsettings.gw.json | 103 +++ Blog.Core.IServices/BASE/IBaseServices.cs | 15 +- Blog.Core.IServices/IBlogArticleServices.cs | 2 +- .../IRoleModulePermissionServices.cs | 2 +- Blog.Core.IServices/ISplitDemoServices.cs | 15 + Blog.Core.IServices/ITasksLogServices.cs | 19 + Blog.Core.IServices/ITenantService.cs | 12 + Blog.Core.IServices/IUserRoleServices.cs | 4 +- Blog.Core.Model/Blog.Core.Model.csproj | 6 +- Blog.Core.Model/Models/AccessTrendLog.cs | 2 +- Blog.Core.Model/Models/Advertisement.cs | 2 +- Blog.Core.Model/Models/BlogArticle.cs | 18 +- Blog.Core.Model/Models/BlogArticleComment.cs | 19 + Blog.Core.Model/Models/Department.cs | 2 +- Blog.Core.Model/Models/GblLogAudit.cs | 4 +- Blog.Core.Model/Models/Guestbook.cs | 6 +- Blog.Core.Model/Models/Modules.cs | 2 +- Blog.Core.Model/Models/OperateLog.cs | 2 +- Blog.Core.Model/Models/PasswordLib.cs | 6 +- Blog.Core.Model/Models/Permission.cs | 2 +- Blog.Core.Model/Models/Role.cs | 2 +- .../Models/RoleModulePermission.cs | 2 +- Blog.Core.Model/Models/RootTkey/BaseEntity.cs | 80 +++ .../RootTkey/Interface/IDeleteFilter.cs | 9 + .../Models/RootTkey/RootEntityTkey.cs | 2 - Blog.Core.Model/Models/SplitDemo.cs | 27 + Blog.Core.Model/Models/SysTenant.cs | 67 ++ Blog.Core.Model/Models/TasksLog.cs | 87 +++ Blog.Core.Model/Models/TasksQz.cs | 6 +- .../Models/Tenant/BusinessTable.cs | 27 + .../Models/Tenant/MultiBusinessSubTable.cs | 14 + .../Models/Tenant/MultiBusinessTable.cs | 26 + .../Models/Tenant/SubLibraryBusinessTable.cs | 22 + Blog.Core.Model/Models/TestModels.cs | 6 +- Blog.Core.Model/Models/Topic.cs | 2 +- Blog.Core.Model/Models/TopicDetail.cs | 2 +- Blog.Core.Model/Models/UserRole.cs | 6 +- Blog.Core.Model/Models/WeChatConfig.cs | 4 +- Blog.Core.Model/Models/WeChatPushLog.cs | 2 +- Blog.Core.Model/Models/sysUserInfo.cs | 14 +- Blog.Core.Model/Tenants/ITenantEntity.cs | 15 + .../Tenants/MultiTenantAttribute.cs | 24 + Blog.Core.Model/Tenants/TenantTypeEnum.cs | 29 + Blog.Core.Model/ViewModels/BlogViewModels.cs | 6 +- Blog.Core.Model/ViewModels/SysUserInfoDto.cs | 6 +- Blog.Core.Publish.Linux.sh | 3 +- Blog.Core.Repository/BASE/BaseRepository.cs | 180 ++++-- Blog.Core.Repository/BASE/IBaseRepository.cs | 44 +- .../Blog.Core.Repository.csproj | 6 +- .../IRoleModulePermissionRepository.cs | 2 +- .../RoleModulePermissionRepository.cs | 2 +- Blog.Core.Services/BASE/BaseServices.cs | 96 ++- Blog.Core.Services/BlogArticleServices.cs | 2 +- .../RoleModulePermissionServices.cs | 2 +- Blog.Core.Services/SplitDemoServices.cs | 23 + Blog.Core.Services/TasksLogServices.cs | 137 ++++ Blog.Core.Services/TenantService.cs | 57 ++ Blog.Core.Services/UserRoleServices.cs | 4 +- Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs | 43 +- .../Jobs/Job_AccessTrendLog_Quartz.cs | 3 +- .../QuartzNet/Jobs/Job_Blogs_Quartz.cs | 6 +- .../QuartzNet/Jobs/Job_OperateLog_Quartz.cs | 6 +- .../QuartzNet/Jobs/Job_Trojan_Quartz.cs | 6 +- .../QuartzNet/Jobs/Job_URL_Quartz.cs | 8 +- .../QuartzNet/SchedulerCenterServer.cs | 6 + .../Common_Test/DynamicLambdaTest.cs | 54 +- .../Controller_Test/BlogController_Should.cs | 2 +- .../DependencyInjection/DI_Test.cs | 35 +- Blog.Core.Tests/Repository_Test/OrmTest.cs | 73 +++ README.md | 17 +- 150 files changed, 4694 insertions(+), 914 deletions(-) create mode 100644 Blog.Core.Api/Controllers/SplitDemoController.cs create mode 100644 Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs create mode 100644 Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs create mode 100644 Blog.Core.Api/Controllers/Tenant/TenantByTableController.cs create mode 100644 Blog.Core.Api/Controllers/Tenant/TenantManagerController.cs create mode 100644 Blog.Core.Common/App.cs create mode 100644 Blog.Core.Common/Core/InternalApp.cs create mode 100644 Blog.Core.Common/DB/Aop/SqlsugarAop.cs create mode 100644 Blog.Core.Common/DB/RepositorySetting.cs create mode 100644 Blog.Core.Common/DB/TenantUtil.cs create mode 100644 Blog.Core.Common/Extensions/AssemblysExtensions.cs create mode 100644 Blog.Core.Common/Extensions/UntilExtensions.cs create mode 100644 Blog.Core.Common/Helper/GenericTypeExtensions.cs create mode 100644 Blog.Core.Common/Helper/NumberConverter.cs create mode 100644 Blog.Core.Common/Seed/IEntitySeedData.cs create mode 100644 Blog.Core.Common/Seed/SeedData/BusinessDataSeedData.cs create mode 100644 Blog.Core.Common/Seed/SeedData/MultiBusinessDataSeedData.cs create mode 100644 Blog.Core.Common/Seed/SeedData/MultiBusinessSubDataSeedData.cs create mode 100644 Blog.Core.Common/Seed/SeedData/SubBusinessDataSeedData.cs create mode 100644 Blog.Core.Common/Seed/SeedData/TenantSeedData.cs create mode 100644 Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs create mode 100644 Blog.Core.Extensions/HostedService/ConsulHostedService.cs create mode 100644 Blog.Core.Extensions/HostedService/EventBusHostedService.cs create mode 100644 Blog.Core.Extensions/HostedService/QuartzJobHostedService.cs create mode 100644 Blog.Core.Extensions/HostedService/SeedDataHostedService.cs create mode 100644 Blog.Core.Extensions/ServiceExtensions/InitializationHostServiceSetup.cs create mode 100644 Blog.Core.Gateway/appsettings.gw.Development.json create mode 100644 Blog.Core.Gateway/appsettings.gw.json create mode 100644 Blog.Core.IServices/ISplitDemoServices.cs create mode 100644 Blog.Core.IServices/ITasksLogServices.cs create mode 100644 Blog.Core.IServices/ITenantService.cs create mode 100644 Blog.Core.Model/Models/BlogArticleComment.cs create mode 100644 Blog.Core.Model/Models/RootTkey/BaseEntity.cs create mode 100644 Blog.Core.Model/Models/RootTkey/Interface/IDeleteFilter.cs create mode 100644 Blog.Core.Model/Models/SplitDemo.cs create mode 100644 Blog.Core.Model/Models/SysTenant.cs create mode 100644 Blog.Core.Model/Models/TasksLog.cs create mode 100644 Blog.Core.Model/Models/Tenant/BusinessTable.cs create mode 100644 Blog.Core.Model/Models/Tenant/MultiBusinessSubTable.cs create mode 100644 Blog.Core.Model/Models/Tenant/MultiBusinessTable.cs create mode 100644 Blog.Core.Model/Models/Tenant/SubLibraryBusinessTable.cs create mode 100644 Blog.Core.Model/Tenants/ITenantEntity.cs create mode 100644 Blog.Core.Model/Tenants/MultiTenantAttribute.cs create mode 100644 Blog.Core.Model/Tenants/TenantTypeEnum.cs create mode 100644 Blog.Core.Services/SplitDemoServices.cs create mode 100644 Blog.Core.Services/TasksLogServices.cs create mode 100644 Blog.Core.Services/TenantService.cs create mode 100644 Blog.Core.Tests/Repository_Test/OrmTest.cs diff --git a/.gitignore b/.gitignore index b98046c6..b7645c45 100644 --- a/.gitignore +++ b/.gitignore @@ -35,6 +35,9 @@ bld/ # Visual Studio 2017 auto generated files Generated\ Files/ +# Visual Studio Code +.vscode + # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* @@ -352,3 +355,4 @@ Blog.Core/WMBlog.db Blog.Core/Blog.Core*.xml Blog.Core.Api/WMBlog.db Blog.Core.Api/wwwroot/ui/ +*.db diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 38575a55..77d681f1 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -26,18 +26,22 @@ + + + + @@ -94,7 +98,6 @@ - diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index ea9857bc..8423cb6b 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -301,6 +301,16 @@ 逻辑删除 + + + 评论 + + + + + 博客文章 评论 + + 部门表 @@ -822,6 +832,122 @@ 修改时间 + + + 状态
    + 中立字段,某些表可使用某些表不使用 +
    +
    + + + 中立字段,某些表可使用某些表不使用
    + 逻辑上的删除,非物理删除
    + 例如:单据删除并非直接删除 +
    +
    + + + 中立字段
    + 是否内置数据 +
    +
    + + + 创建ID + + + + + 创建者 + + + + + 创建时间 + + + + + 修改ID + + + + + 更新者 + + + + + 修改日期 + + + + + 数据版本 + + + + + 软删除 过滤器 + + + + + 系统租户表
    + 根据TenantType 分为两种方案:
    + 1.按租户字段区分
    + 2.按租户分库
    + +
    + + 注意:
    + 使用租户Id方案,无需配置分库的连接 +
    +
    + + + 名称 + + + + + 租户类型 + + + + + 数据库/租户标识 不可重复
    + 使用Id方案,可无需配置 +
    +
    + + + 主机
    + 使用Id方案,可无需配置 +
    +
    + + + 数据库类型
    + 使用Id方案,可无需配置 +
    +
    + + + 数据库连接
    + 使用Id方案,可无需配置 +
    +
    + + + 状态 + + + + + 备注 + + 用户信息表 @@ -887,6 +1013,96 @@ 登录账号 + + + 租户Id + + + + + 任务日志表 + + + + + 任务ID + + + + + 任务耗时 + + + + + 执行结果(0-失败 1-成功) + + + + + 运行时间 + + + + + 结束时间 + + + + + 执行参数 + + + + + 异常信息 + + + + + 异常堆栈 + + + + + 创建ID + + + + + 创建者 + + + + + 创建时间 + + + + + 修改ID + + + + + 修改者 + + + + + 修改时间 + + + + + 任务名称 + + + + + 任务分组 + + 任务计划表 @@ -952,6 +1168,11 @@ 循环执行次数 + + + 已循环次数 + + 是否启动 @@ -972,6 +1193,63 @@ 任务内存中的状态 + + + 业务数据
    + 多租户 (Id 隔离) +
    +
    + + + 无需手动赋值 + + + + + 名称 + + + + + 金额 + + + + + 多租户-多表方案 业务表 子表
    +
    +
    + + + 多租户-多表方案 业务表
    +
    +
    + + + 名称 + + + + + 金额 + + + + + 多租户-多库方案 业务表
    + 公共库无需标记[MultiTenant]特性 +
    +
    + + + 名称 + + + + + 金额 + + Tibug 类别 @@ -1779,6 +2057,43 @@ 返回数据集 + + + 租户模型接口 + + + + + 租户Id + + + + + 标识 多租户 的业务表
    + 默认设置是多库
    + 公共表无需区分 直接使用主库 各自业务在各自库中
    +
    +
    + + + 租户隔离方案 + + + + + Id隔离 + + + + + 库隔离 + + + + + 表隔离 + + 广告类 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index a14a9006..c6b33db9 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -26,14 +26,14 @@ - + 获取博客详情 - + 获取详情【无权限】 @@ -67,7 +67,7 @@ - + 删除博客 @@ -276,7 +276,7 @@ - + 删除一条接口 @@ -361,7 +361,7 @@ 菜单管理 - + 构造函数 @@ -369,20 +369,22 @@ + - + 获取菜单 + - + 查询树形 Table @@ -404,7 +406,7 @@ - + 获取菜单树 @@ -412,21 +414,21 @@ - + 获取路由树 - + 获取路由树 - + 通过角色获取菜单 @@ -440,7 +442,7 @@ - + 删除菜单 @@ -454,7 +456,7 @@ - + 系统接口菜单同步接口 @@ -491,7 +493,7 @@ - + 删除角色 @@ -520,42 +522,42 @@ - + 删除一个任务 - + 启动计划任务 - + 停止一个计划任务 - + 暂停一个计划任务 - + 恢复一个计划任务 - + 重启一个计划任务 @@ -568,13 +570,25 @@ - + 立即执行任务 + + + 获取任务运行日志 + + + + + + 任务概况 + + + 类别管理【无权限】 @@ -615,7 +629,7 @@ - + 获取详情【无权限】 @@ -636,14 +650,14 @@ - + 删除 bug - + 测试事务在AOP中的使用 @@ -851,7 +865,7 @@ - + 删除用户 @@ -887,7 +901,7 @@ - + 新建用户角色关系 @@ -1349,7 +1363,7 @@ 关键字 - + 获取部门树 @@ -1396,6 +1410,139 @@ + + + 分表demo + + + + + 分页获取数据 + + + + + + + + + + + 根据ID获取信息 + + + + + + + 添加一条测试数据 + + + + + + + 修改一条测试数据 + + + + + + + 根据id删除数据 + + + + + + + 多租户-多库方案 测试 + + + + + 获取租户下全部业务数据
    +
    + +
    + + + 新增数据 + + + + + + 多租户-Id方案 测试 + + + + + 获取租户下全部业务数据
    +
    + +
    + + + 新增业务数据 + + + + + + 多租户-多表方案 测试 + + + + + 获取租户下全部业务数据
    +
    + +
    + + + 新增数据 + + + + + + 租户管理 + + + + + 获取全部租户 + + + + + + 获取租户信息 + + + + + + 新增租户信息
    + 此处只做演示,具体要以实际业务为准 +
    + +
    + + + 修改租户信息
    + 此处只做演示,具体要以实际业务为准 +
    + +
    + + + 删除租户
    + 此处只做演示,具体要以实际业务为准 +
    + +
    自定义路由 /api/{version}/[controler]/[action] diff --git a/Blog.Core.Api/Controllers/BlogController.cs b/Blog.Core.Api/Controllers/BlogController.cs index 6525448e..fbc67e12 100644 --- a/Blog.Core.Api/Controllers/BlogController.cs +++ b/Blog.Core.Api/Controllers/BlogController.cs @@ -1,8 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Linq.Expressions; +using System.Linq.Expressions; using System.Text.RegularExpressions; -using System.Threading.Tasks; using Blog.Core.Common.Helper; using Blog.Core.IServices; using Blog.Core.Model; @@ -11,7 +8,6 @@ using Blog.Core.SwaggerHelper; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; using StackExchange.Profiling; using static Blog.Core.Extensions.CustomApiVersion; @@ -87,7 +83,7 @@ public async Task>> Get(int id, int page = 1 [HttpGet("{id}")] //[Authorize(Policy = "Scope_BlogModule_Policy")] [Authorize] - public async Task> Get(int id) + public async Task> Get(long id) { return Success(await _blogArticleServices.GetBlogDetails(id)); } @@ -100,7 +96,7 @@ public async Task> Get(int id) /// [HttpGet] [Route("DetailNuxtNoPer")] - public async Task> DetailNuxtNoPer(int id) + public async Task> DetailNuxtNoPer(long id) { _logger.LogInformation("xxxxxxxxxxxxxxxxxxx"); return Success(await _blogArticleServices.GetBlogDetails(id)); @@ -108,7 +104,7 @@ public async Task> DetailNuxtNoPer(int id) [HttpGet] [Route("GoUrl")] - public async Task GoUrl(int id = 0) + public async Task GoUrl(long id = 0) { var response = await _blogArticleServices.QueryById(id); if (response != null && response.bsubmitter.IsNotEmptyOrNull()) @@ -140,7 +136,7 @@ public async Task>> GetBlogsByTypesForMVP(string [HttpGet] [Route("GetBlogByIdForMVP")] - public async Task> GetBlogByIdForMVP(int id = 0) + public async Task> GetBlogByIdForMVP(long id = 0) { if (id > 0) { @@ -251,7 +247,7 @@ public async Task> Put([FromBody] BlogArticle BlogArticle) [HttpDelete] [Authorize(Permissions.Name)] [Route("Delete")] - public async Task> Delete(int id) + public async Task> Delete(long id) { if (id > 0) { diff --git a/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs b/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs index 8006d1fb..7865cc69 100644 --- a/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs +++ b/Blog.Core.Api/Controllers/DbFirst/MigrateController.cs @@ -81,7 +81,7 @@ public async Task> DataMigrateFromOld2New() InitPermissionTree(permissions, permissionsAllList, apiList); var actionPermissionIds = permissionsAllList.Where(d => d.Id >= filterPermissionId).Select(d => d.Id).ToList(); - List filterPermissionIds = new(); + List filterPermissionIds = new(); FilterPermissionTree(permissionsAllList, actionPermissionIds, filterPermissionIds); permissions = permissions.Where(d => filterPermissionIds.Contains(d.Id)).ToList(); @@ -93,10 +93,10 @@ public async Task> DataMigrateFromOld2New() // 1、保持菜单和接口 await SavePermissionTreeAsync(permissions, pms); - var rid = 0; - var pid = 0; - var mid = 0; - var rpmid = 0; + long rid = 0; + long pid = 0; + long mid = 0; + long rpmid = 0; // 2、保存关系表 foreach (var item in rmps) @@ -116,8 +116,8 @@ public async Task> DataMigrateFromOld2New() } } - pid = (pms.FirstOrDefault(d => d.PidOld == item.PermissionId)?.PidNew).ObjToInt(); - mid = (pms.FirstOrDefault(d => d.MidOld == item.ModuleId)?.MidNew).ObjToInt(); + pid = (pms.FirstOrDefault(d => d.PidOld == item.PermissionId)?.PidNew).ObjToLong(); + mid = (pms.FirstOrDefault(d => d.MidOld == item.ModuleId)?.MidNew).ObjToLong(); // 关系 if (rid > 0 && pid > 0) { @@ -282,7 +282,7 @@ private void InitPermissionTree(List permissionsTree, List permissionsAll, List actionPermissionId, List filterPermissionIds) + private void FilterPermissionTree(List permissionsAll, List actionPermissionId, List filterPermissionIds) { actionPermissionId = actionPermissionId.Distinct().ToList(); var doneIds = permissionsAll.Where(d => actionPermissionId.Contains(d.Id) && d.Pid == 0).Select(d => d.Id).ToList(); @@ -295,7 +295,7 @@ private void FilterPermissionTree(List permissionsAll, List act } } - private async Task SavePermissionTreeAsync(List permissionsTree, List pms, int permissionId = 0) + private async Task SavePermissionTreeAsync(List permissionsTree, List pms, long permissionId = 0) { var parendId = permissionId; @@ -304,9 +304,9 @@ private async Task SavePermissionTreeAsync(List permissionsTree, Lis PM pm = new PM(); // 保留原始主键id pm.PidOld = item.Id; - pm.MidOld = (item.Module?.Id).ObjToInt(); + pm.MidOld = (item.Module?.Id).ObjToLong(); - var mid = 0; + long mid = 0; // 接口 if (item.Module != null) { @@ -351,9 +351,9 @@ private async Task SavePermissionTreeAsync(List permissionsTree, Lis public class PM { - public int PidOld { get; set; } - public int MidOld { get; set; } - public int PidNew { get; set; } - public int MidNew { get; set; } + public long PidOld { get; set; } + public long MidOld { get; set; } + public long PidNew { get; set; } + public long MidNew { get; set; } } } diff --git a/Blog.Core.Api/Controllers/DepartmentController.cs b/Blog.Core.Api/Controllers/DepartmentController.cs index 1674883f..faf1f850 100644 --- a/Blog.Core.Api/Controllers/DepartmentController.cs +++ b/Blog.Core.Api/Controllers/DepartmentController.cs @@ -4,17 +4,10 @@ using Blog.Core.Model; using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Hosting; using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; using System.Linq.Expressions; using System.Text; -using System.Threading.Tasks; namespace Blog.Core.Api.Controllers { @@ -90,7 +83,7 @@ public async Task>> GetTreeTable(long f = 0, strin foreach (var item in departments) { - List pidarr = new() { }; + List pidarr = new() { }; var parent = departmentList.FirstOrDefault(d => d.Id == item.Pid); while (parent != null) @@ -116,7 +109,7 @@ public async Task>> GetTreeTable(long f = 0, strin /// /// [HttpGet] - public async Task> GetDepartmentTree(int pid = 0) + public async Task> GetDepartmentTree(long pid = 0) { var departments = await _departmentServices.Query(d => d.IsDeleted == false); var departmentTrees = (from child in departments @@ -175,7 +168,7 @@ public async Task> Put([FromBody] Department request) } [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); var model = await _departmentServices.QueryById(id); diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index 25818c13..87f5c0c9 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.IdentityModel.Tokens.Jwt; -using System.Linq; -using System.Security.Claims; -using System.Threading.Tasks; -using Blog.Core.AuthHelper; +using Blog.Core.AuthHelper; using Blog.Core.AuthHelper.OverWrite; using Blog.Core.Common.Helper; using Blog.Core.IServices; @@ -12,8 +6,9 @@ using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; namespace Blog.Core.Controllers @@ -52,6 +47,7 @@ public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServic #region 获取token的第1种方法 + /// /// 获取JWT的方法1 /// @@ -62,7 +58,6 @@ public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServic [Route("Token")] public async Task> GetJwtStr(string name, string pass) { - string jwtStr = string.Empty; bool suc = false; //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 @@ -70,7 +65,6 @@ public async Task> GetJwtStr(string name, string pass) var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass)); if (user != null) { - TokenModelJwt tokenModel = new TokenModelJwt { Uid = 1, Role = user }; jwtStr = JwtHelper.IssueJwt(tokenModel); @@ -119,6 +113,7 @@ public MessageModel GetJwtStrForNuxt(string name, string pass) { jwtStr = "login fail!!!"; } + var result = new { data = new { success = suc, token = jwtStr } @@ -131,8 +126,8 @@ public MessageModel GetJwtStrForNuxt(string name, string pass) response = jwtStr }; } - #endregion + #endregion /// @@ -157,11 +152,14 @@ public async Task> GetJwtToken3(string name = " { var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(name, pass); //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 - var claims = new List { + var claims = new List + { new Claim(ClaimTypes.Name, name), new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().Id.ToString()), + new Claim("TenantId", user.FirstOrDefault().TenantId.ToString()), new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), - new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; + new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) + }; claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); @@ -218,11 +216,13 @@ public async Task> RefreshToken(string token = { var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(user.LoginName, user.LoginPWD); //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 - var claims = new List { - new Claim(ClaimTypes.Name, user.LoginName), - new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), - new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; + var claims = new List + { + new Claim(ClaimTypes.Name, user.LoginName), + new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), + new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) + }; claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); //用户标识 @@ -233,6 +233,7 @@ public async Task> RefreshToken(string token = return Success(refreshToken, "获取成功"); } } + return Failed("认证失败!"); } diff --git a/Blog.Core.Api/Controllers/ModuleController.cs b/Blog.Core.Api/Controllers/ModuleController.cs index 334a8ea4..27e6f4db 100644 --- a/Blog.Core.Api/Controllers/ModuleController.cs +++ b/Blog.Core.Api/Controllers/ModuleController.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq.Expressions; -using System.Threading.Tasks; +using System.Linq.Expressions; using Blog.Core.Common.HttpContextUser; using Blog.Core.IServices; using Blog.Core.Model; @@ -122,7 +119,7 @@ public async Task> Put([FromBody] Modules module) /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { if (id <= 0) return Failed("缺少参数"); diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index c0dbed52..77b4e5bf 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -6,19 +6,12 @@ using Blog.Core.Model; using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.SignalR; -using Microsoft.Extensions.Logging; using Newtonsoft.Json; -using System; -using System.Collections.Generic; using System.Diagnostics; -using System.IO; -using System.Linq; using System.Runtime.InteropServices; using System.Text; -using System.Threading.Tasks; using Blog.Core.Extensions.Middlewares; namespace Blog.Core.Controllers diff --git a/Blog.Core.Api/Controllers/NacosController.cs b/Blog.Core.Api/Controllers/NacosController.cs index a8701b39..e5223851 100644 --- a/Blog.Core.Api/Controllers/NacosController.cs +++ b/Blog.Core.Api/Controllers/NacosController.cs @@ -4,7 +4,6 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Nacos.V2; -using System.Threading.Tasks; namespace Blog.Core.Api.Controllers { diff --git a/Blog.Core.Api/Controllers/PayController.cs b/Blog.Core.Api/Controllers/PayController.cs index 0cbe0541..6c05c249 100644 --- a/Blog.Core.Api/Controllers/PayController.cs +++ b/Blog.Core.Api/Controllers/PayController.cs @@ -1,10 +1,8 @@ -using System.Threading.Tasks; -using Blog.Core.IServices; +using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; namespace Blog.Core.Controllers { diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index d3000766..7346cc21 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -6,6 +6,8 @@ using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; +using Blog.Core.Repository.UnitOfWorks; +using Blog.Core.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; @@ -21,6 +23,7 @@ namespace Blog.Core.Controllers [Authorize(Permissions.Name)] public class PermissionController : BaseApiController { + readonly IUnitOfWorkManage _unitOfWorkManage; readonly IPermissionServices _permissionServices; readonly IModuleServices _moduleServices; readonly IRoleModulePermissionServices _roleModulePermissionServices; @@ -37,16 +40,19 @@ public class PermissionController : BaseApiController /// /// /// + /// /// /// /// /// public PermissionController(IPermissionServices permissionServices, IModuleServices moduleServices, IRoleModulePermissionServices roleModulePermissionServices, IUserRoleServices userRoleServices, + IUnitOfWorkManage unitOfWorkManage, IHttpClientFactory httpClientFactory, IHttpContextAccessor httpContext, IUser user, PermissionRequirement requirement) { _permissionServices = permissionServices; + _unitOfWorkManage = unitOfWorkManage; _moduleServices = moduleServices; _roleModulePermissionServices = roleModulePermissionServices; _userRoleServices = userRoleServices; @@ -61,34 +67,19 @@ public PermissionController(IPermissionServices permissionServices, IModuleServi /// /// /// + /// /// // GET: api/User [HttpGet] - public async Task>> Get(int page = 1, string key = "") + public async Task>> Get(int page = 1, string key = "", int pageSize = 50) { PageModel permissions = new PageModel(); - int intPageSize = 50; if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { key = ""; } - #region 舍弃 - //var permissions = await _permissionServices.Query(a => a.IsDeleted != true); - //if (!string.IsNullOrEmpty(key)) - //{ - // permissions = permissions.Where(t => (t.Name != null && t.Name.Contains(key))).ToList(); - //} - ////筛选后的数据总数 - //totalCount = permissions.Count; - ////筛选后的总页数 - //pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intTotalCount.ObjToDecimal())).ObjToInt(); - //permissions = permissions.OrderByDescending(d => d.Id).Skip((page - 1) * intTotalCount).Take(intTotalCount).ToList(); - #endregion - - - - permissions = await _permissionServices.QueryPage(a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key)), page, intPageSize, " Id desc "); + permissions = await _permissionServices.QueryPage(a => a.IsDeleted != true && (a.Name != null && a.Name.Contains(key)), page, pageSize, " Id desc "); #region 单独处理 @@ -99,7 +90,7 @@ public async Task>> Get(int page = 1, string var permissionAll = await _permissionServices.Query(d => d.IsDeleted != true); foreach (var item in permissionsView) { - List pidarr = new List + List pidarr = new() { item.Pid }; @@ -156,7 +147,7 @@ public async Task>> Get(int page = 1, string /// [HttpGet] [AllowAnonymous] - public async Task>> GetTreeTable(int f = 0, string key = "") + public async Task>> GetTreeTable(long f = 0, string key = "") { List permissions = new List(); var apiList = await _moduleServices.Query(d => d.IsDeleted == false); @@ -177,7 +168,7 @@ public async Task>> GetTreeTable(int f = 0, string foreach (var item in permissions) { - List pidarr = new List { }; + List pidarr = new() { }; var parent = permissionsList.FirstOrDefault(d => d.Id == item.Pid); while (parent != null) @@ -240,64 +231,55 @@ public async Task> Post([FromBody] Permission permission) [HttpPost] public async Task> Assign([FromBody] AssignView assignView) { - var data = new MessageModel(); - - if (assignView.rid > 0) { - data.success = true; - - var roleModulePermissions = await _roleModulePermissionServices.Query(d => d.RoleId == assignView.rid); + //开启事务 + try + { + var old_rmps = await _roleModulePermissionServices.Query(d => d.RoleId == assignView.rid); - var remove = roleModulePermissions.Where(d => !assignView.pids.Contains(d.PermissionId.ObjToInt())).Select(c => (object)c.Id); - data.success &= remove.Any() ? await _roleModulePermissionServices.DeleteByIds(remove.ToArray()) : true; + _unitOfWorkManage.BeginTran(); + await _permissionServices.Db.Deleteable(t => t.RoleId == assignView.rid).ExecuteCommandAsync(); + var permissions = await _permissionServices.Query(d => d.IsDeleted == false); - foreach (var item in assignView.pids) - { - var rmpitem = roleModulePermissions.Where(d => d.PermissionId == item); - var moduleid = (await _permissionServices.Query(p => p.Id == item)).FirstOrDefault()?.Mid; - if (!rmpitem.Any()) + List new_rmps = new List(); + var nowTime = _permissionServices.Db.GetDate(); + foreach (var item in assignView.pids) { + var moduleid = permissions.Find(p => p.Id == item)?.Mid; + var find_old_rmps = old_rmps.Find(p => p.PermissionId == item); RoleModulePermission roleModulePermission = new RoleModulePermission() { IsDeleted = false, RoleId = assignView.rid, - ModuleId = moduleid.ObjToInt(), + ModuleId = moduleid.ObjToLong(), PermissionId = item, - }; - - - roleModulePermission.CreateId = _user.ID; - roleModulePermission.CreateBy = _user.Name; + CreateId = find_old_rmps == null ? _user.ID : find_old_rmps.CreateId, + CreateBy = find_old_rmps == null ? _user.Name : find_old_rmps.CreateBy, + CreateTime = find_old_rmps == null ? nowTime : find_old_rmps.CreateTime, + ModifyId = _user.ID, + ModifyBy = _user.Name, + ModifyTime = nowTime - data.success &= (await _roleModulePermissionServices.Add(roleModulePermission)) > 0; - - } - else - { - foreach (var role in rmpitem) - { - if (!role.ModuleId.Equals(moduleid)) - { - role.ModuleId = moduleid.Value; - await _roleModulePermissionServices.Update(role, new List { "ModuleId" }); - } - } + }; + new_rmps.Add(roleModulePermission); } + if (new_rmps.Count > 0) await _roleModulePermissionServices.Add(new_rmps); + _unitOfWorkManage.CommitTran(); } - - if (data.success) + catch (Exception) { - _requirement.Permissions.Clear(); - data.response = ""; - data.msg = "保存成功"; + _unitOfWorkManage.RollbackTran(); + throw; } - + _requirement.Permissions.Clear(); + return Success("保存成功"); + } + else + { + return Failed("请选择要操作的角色"); } - - - return data; } @@ -308,7 +290,7 @@ public async Task> Assign([FromBody] AssignView assignView) /// /// [HttpGet] - public async Task> GetPermissionTree(int pid = 0, bool needbtn = false) + public async Task> GetPermissionTree(long pid = 0, bool needbtn = false) { //var data = new MessageModel(); @@ -353,29 +335,29 @@ orderby child.Id /// /// [HttpGet] - public async Task> GetNavigationBar(int uid) + public async Task> GetNavigationBar(long uid) { var data = new MessageModel(); - var uidInHttpcontext1 = 0; - var roleIds = new List(); + long uidInHttpcontext1 = 0; + var roleIds = new List(); // ids4和jwt切换 if (Permissions.IsUseIds4) { // ids4 uidInHttpcontext1 = (from item in _httpContext.HttpContext.User.Claims where item.Type == "sub" - select item.Value).FirstOrDefault().ObjToInt(); + select item.Value).FirstOrDefault().ObjToLong(); roleIds = (from item in _httpContext.HttpContext.User.Claims where item.Type == "role" - select item.Value.ObjToInt()).ToList(); + select item.Value.ObjToLong()).ToList(); } else { // jwt - uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToInt(); - roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToInt()).Distinct().ToList(); + uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToLong(); + roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToLong()).Distinct().ToList(); } @@ -383,7 +365,7 @@ public async Task> GetNavigationBar(int uid) { if (roleIds.Any()) { - var pids = (await _roleModulePermissionServices.Query(d => d.IsDeleted == false && roleIds.Contains(d.RoleId))).Select(d => d.PermissionId.ObjToInt()).Distinct(); + var pids = (await _roleModulePermissionServices.Query(d => d.IsDeleted == false && roleIds.Contains(d.RoleId))).Select(d => d.PermissionId.ObjToLong()).Distinct(); if (pids.Any()) { var rolePermissionMoudles = (await _permissionServices.Query(d => pids.Contains(d.Id))).OrderBy(c => c.OrderSort); @@ -445,28 +427,28 @@ orderby child.Id /// /// [HttpGet] - public async Task>> GetNavigationBarPro(int uid) + public async Task>> GetNavigationBarPro(long uid) { var data = new MessageModel>(); - var uidInHttpcontext1 = 0; - var roleIds = new List(); + long uidInHttpcontext1 = 0; + var roleIds = new List(); // ids4和jwt切换 if (Permissions.IsUseIds4) { // ids4 uidInHttpcontext1 = (from item in _httpContext.HttpContext.User.Claims where item.Type == "sub" - select item.Value).FirstOrDefault().ObjToInt(); + select item.Value).FirstOrDefault().ObjToLong(); roleIds = (from item in _httpContext.HttpContext.User.Claims where item.Type == "role" - select item.Value.ObjToInt()).ToList(); + select item.Value.ObjToLong()).ToList(); } else { // jwt - uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToInt(); - roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToInt()).Distinct().ToList(); + uidInHttpcontext1 = ((JwtHelper.SerializeJwt(_httpContext.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", "")))?.Uid).ObjToLong(); + roleIds = (await _userRoleServices.Query(d => d.IsDeleted == false && d.UserId == uid)).Select(d => d.RoleId.ObjToLong()).Distinct().ToList(); } if (uid > 0 && uid == uidInHttpcontext1) @@ -474,7 +456,7 @@ public async Task>> GetNavigationBarPro(int if (roleIds.Any()) { var pids = (await _roleModulePermissionServices.Query(d => d.IsDeleted == false && roleIds.Contains(d.RoleId))) - .Select(d => d.PermissionId.ObjToInt()).Distinct(); + .Select(d => d.PermissionId.ObjToLong()).Distinct(); if (pids.Any()) { var rolePermissionMoudles = (await _permissionServices.Query(d => pids.Contains(d.Id) && d.IsButton == false)).OrderBy(c => c.OrderSort); @@ -522,14 +504,14 @@ orderby item.Id /// [HttpGet] [AllowAnonymous] - public async Task> GetPermissionIdByRoleId(int rid = 0) + public async Task> GetPermissionIdByRoleId(long rid = 0) { //var data = new MessageModel(); var rmps = await _roleModulePermissionServices.Query(d => d.IsDeleted == false && d.RoleId == rid); var permissionTrees = (from child in rmps orderby child.Id - select child.PermissionId.ObjToInt()).ToList(); + select child.PermissionId.ObjToLong()).ToList(); var permissions = await _permissionServices.Query(d => d.IsDeleted == false); List assignbtns = new List(); @@ -595,7 +577,7 @@ public async Task> Put([FromBody] Permission permission) /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); if (id > 0) @@ -657,7 +639,7 @@ public async Task> BatchPost([FromBody] List pe /// 是否执行迁移到数据 /// [HttpGet] - public async Task>> MigratePermission(string action = "", string controllerName = "", int pid = 0, bool isAction = false) + public async Task>> MigratePermission(string action = "", string controllerName = "", long pid = 0, bool isAction = false) { var data = new MessageModel>(); if (controllerName.IsNullOrEmpty()) @@ -757,11 +739,11 @@ public async Task>> MigratePermission(string actio List modules = await _moduleServices.Query(d => d.LinkUrl != null && d.LinkUrl.ToLower() == item.Module.LinkUrl); if (!modules.Any()) { - int mid = await _moduleServices.Add(item.Module); + var mid = await _moduleServices.Add(item.Module); if (mid > 0) { item.Mid = mid; - int permissionid = await _permissionServices.Add(item); + var permissionid = await _permissionServices.Add(item); } } @@ -779,12 +761,12 @@ public async Task>> MigratePermission(string actio public class AssignView { - public List pids { get; set; } - public int rid { get; set; } + public List pids { get; set; } + public long rid { get; set; } } public class AssignShow { - public List permissionids { get; set; } + public List permissionids { get; set; } public List assignbtns { get; set; } } diff --git a/Blog.Core.Api/Controllers/RoleController.cs b/Blog.Core.Api/Controllers/RoleController.cs index 36df73a4..0b93e943 100644 --- a/Blog.Core.Api/Controllers/RoleController.cs +++ b/Blog.Core.Api/Controllers/RoleController.cs @@ -1,5 +1,4 @@ -using System.Threading.Tasks; -using Blog.Core.Common.HttpContextUser; +using Blog.Core.Common.HttpContextUser; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; @@ -113,7 +112,7 @@ public async Task> Put([FromBody] Role role) /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); diff --git a/Blog.Core.Api/Controllers/SplitDemoController.cs b/Blog.Core.Api/Controllers/SplitDemoController.cs new file mode 100644 index 00000000..f625b202 --- /dev/null +++ b/Blog.Core.Api/Controllers/SplitDemoController.cs @@ -0,0 +1,199 @@ +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Repository.UnitOfWorks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System.Linq.Expressions; + +namespace Blog.Core.Api.Controllers +{ + /// + /// 分表demo + /// + [Route("api/[controller]/[action]")] + [ApiController] + [Authorize(Permissions.Name)] + public class SplitDemoController : ControllerBase + { + readonly ISplitDemoServices splitDemoServices; + readonly IUnitOfWorkManage unitOfWorkManage; + public SplitDemoController(ISplitDemoServices _splitDemoServices, IUnitOfWorkManage _unitOfWorkManage) + { + splitDemoServices = _splitDemoServices; + unitOfWorkManage = _unitOfWorkManage; + } + + /// + /// 分页获取数据 + /// + /// + /// + /// + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task>> Get(DateTime beginTime, DateTime endTime, int page = 1, string key = "", int pageSize = 10) + { + if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) + { + key = ""; + } + Expression> whereExpression = a => (a.Name != null && a.Name.Contains(key)); + var data = await splitDemoServices.QueryPageSplit(whereExpression, beginTime, endTime, page, pageSize, " Id desc "); + return MessageModel>.Message(data.dataCount >= 0, "获取成功", data); + } + + /// + /// 根据ID获取信息 + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task> GetById(long id) + { + var data = new MessageModel(); + var model = await splitDemoServices.QueryByIdSplit(id); + if (model != null) + { + return MessageModel.Success("获取成功", model); + } + else + { + return MessageModel.Fail("获取失败"); + } + } + + /// + /// 添加一条测试数据 + /// + /// + /// + [HttpPost] + [AllowAnonymous] + public async Task> Post([FromBody] SplitDemo splitDemo) + { + var data = new MessageModel(); + //unitOfWorkManage.BeginTran(); + var id = (await splitDemoServices.AddSplit(splitDemo)); + data.success = (id == null ? false : true); + try + { + if (data.success) + { + data.response = id.FirstOrDefault().ToString(); + data.msg = "添加成功"; + } + else + { + data.msg = "添加失败"; + } + } + catch (Exception) + { + throw; + } + finally + { + //if (data.success) + // unitOfWorkManage.CommitTran(); + //else + // unitOfWorkManage.RollbackTran(); + } + return data; + } + + /// + /// 修改一条测试数据 + /// + /// + /// + [HttpPut] + [AllowAnonymous] + public async Task> Put([FromBody] SplitDemo splitDemo) + { + var data = new MessageModel(); + if (splitDemo != null && splitDemo.Id > 0) + { + unitOfWorkManage.BeginTran(); + data.success = await splitDemoServices.UpdateSplit(splitDemo, splitDemo.CreateTime); + try + { + if (data.success) + { + data.msg = "修改成功"; + data.response = splitDemo?.Id.ObjToString(); + } + else + { + data.msg = "修改失败"; + } + } + catch (Exception) + { + throw; + } + finally + { + if (data.success) + unitOfWorkManage.CommitTran(); + else + unitOfWorkManage.RollbackTran(); + } + } + return data; + } + + /// + /// 根据id删除数据 + /// + /// + /// + [HttpDelete] + [AllowAnonymous] + public async Task> Delete(long id) + { + var data = new MessageModel(); + + var model = await splitDemoServices.QueryByIdSplit(id); + if (model != null) + { + unitOfWorkManage.BeginTran(); + data.success = await splitDemoServices.DeleteSplit(model,model.CreateTime); + try + { + data.response = id.ObjToString(); + if (data.success) + { + data.msg = "删除成功"; + } + else + { + data.msg = "删除失败"; + } + + } + catch (Exception) + { + throw; + } + finally + { + if (data.success) + unitOfWorkManage.CommitTran(); + else + unitOfWorkManage.RollbackTran(); + } + } + else + { + data.msg = "不存在"; + } + return data; + + } + } +} diff --git a/Blog.Core.Api/Controllers/TasksQzController.cs b/Blog.Core.Api/Controllers/TasksQzController.cs index 264fa195..887cfcfc 100644 --- a/Blog.Core.Api/Controllers/TasksQzController.cs +++ b/Blog.Core.Api/Controllers/TasksQzController.cs @@ -1,9 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; +using System.Linq.Expressions; using System.Reflection; -using System.Threading.Tasks; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; @@ -22,14 +18,16 @@ namespace Blog.Core.Controllers public class TasksQzController : ControllerBase { private readonly ITasksQzServices _tasksQzServices; + private readonly ITasksLogServices _tasksLogServices; private readonly ISchedulerCenter _schedulerCenter; private readonly IUnitOfWorkManage _unitOfWorkManage; - public TasksQzController(ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, IUnitOfWorkManage unitOfWorkManage) + public TasksQzController(ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, IUnitOfWorkManage unitOfWorkManage, ITasksLogServices tasksLogServices) { _unitOfWorkManage = unitOfWorkManage; _tasksQzServices = tasksQzServices; _schedulerCenter = schedulerCenter; + _tasksLogServices = tasksLogServices; } /// @@ -58,7 +56,7 @@ public async Task>> Get(int page = 1, string key item.Triggers = await _schedulerCenter.GetTaskStaus(item); } } - return MessageModel>.Message(data.dataCount >= 0, "获取成功", data); + return MessageModel>.Message(data.dataCount >= 0, "获取成功", data); } /// @@ -86,32 +84,33 @@ public async Task> Post([FromBody] TasksQz tasksQz) var ResuleModel = await _schedulerCenter.AddScheduleJobAsync(tasksQz); data.success = ResuleModel.success; if (ResuleModel.success) - { + { data.msg = $"{data.msg}=>启动成功=>{ResuleModel.msg}"; } else - { + { data.msg = $"{data.msg}=>启动失败=>{ResuleModel.msg}"; } } } else - { + { data.msg = "添加失败"; - } + } } catch (Exception) { throw; } finally - { if(data.success) + { + if (data.success) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); } - return data; + return data; } @@ -135,7 +134,7 @@ public async Task> Put([FromBody] TasksQz tasksQz) data.msg = "修改成功"; data.response = tasksQz?.Id.ObjToString(); if (tasksQz.IsStart) - { + { var ResuleModelStop = await _schedulerCenter.StopScheduleJobAsync(tasksQz); data.msg = $"{data.msg}=>停止:{ResuleModelStop.msg}"; var ResuleModelStar = await _schedulerCenter.AddScheduleJobAsync(tasksQz); @@ -163,7 +162,7 @@ public async Task> Put([FromBody] TasksQz tasksQz) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } return data; } @@ -173,7 +172,7 @@ public async Task> Put([FromBody] TasksQz tasksQz) /// /// [HttpDelete] - public async Task> Delete(int jobId) + public async Task> Delete(long jobId) { var data = new MessageModel(); @@ -207,7 +206,7 @@ public async Task> Delete(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -222,14 +221,14 @@ public async Task> Delete(int jobId) /// /// [HttpGet] - public async Task> StartJob(int jobId) + public async Task> StartJob(long jobId) { var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); if (model != null) { - _unitOfWorkManage.BeginTran(); + _unitOfWorkManage.BeginTran(); try { model.IsStart = true; @@ -265,7 +264,7 @@ public async Task> StartJob(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -279,7 +278,7 @@ public async Task> StartJob(int jobId) /// /// [HttpGet] - public async Task> StopJob(int jobId) + public async Task> StopJob(long jobId) { var data = new MessageModel(); @@ -319,12 +318,12 @@ public async Task> StopJob(int jobId) /// /// [HttpGet] - public async Task> PauseJob(int jobId) + public async Task> PauseJob(long jobId) { - var data = new MessageModel(); + var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); if (model != null) - { + { _unitOfWorkManage.BeginTran(); try { @@ -359,7 +358,7 @@ public async Task> PauseJob(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -373,13 +372,13 @@ public async Task> PauseJob(int jobId) /// /// [HttpGet] - public async Task> ResumeJob(int jobId) + public async Task> ResumeJob(long jobId) { var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); if (model != null) - { + { _unitOfWorkManage.BeginTran(); try { @@ -415,7 +414,7 @@ public async Task> ResumeJob(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -429,7 +428,7 @@ public async Task> ResumeJob(int jobId) /// /// [HttpGet] - public async Task> ReCovery(int jobId) + public async Task> ReCovery(long jobId) { var data = new MessageModel(); var model = await _tasksQzServices.QueryById(jobId); @@ -475,7 +474,7 @@ public async Task> ReCovery(int jobId) _unitOfWorkManage.CommitTran(); else _unitOfWorkManage.RollbackTran(); - } + } } else { @@ -488,7 +487,7 @@ public async Task> ReCovery(int jobId) /// 获取任务命名空间 /// /// - [HttpGet] + [HttpGet] public MessageModel> GetTaskNameSpace() { var baseType = typeof(IJob); @@ -501,14 +500,14 @@ public MessageModel> GetTaskNameSpace() var implementTypes = types.Where(x => x.IsClass).Select(item => new QuartzReflectionViewModel { nameSpace = item.Namespace, nameClass = item.Name, remark = "" }).ToList(); return MessageModel>.Success("获取成功", implementTypes); } - + /// /// 立即执行任务 /// /// /// [HttpGet] - public async Task> ExecuteJob(int jobId) + public async Task> ExecuteJob(long jobId) { var data = new MessageModel(); @@ -523,6 +522,26 @@ public async Task> ExecuteJob(int jobId) } return data; } + /// + /// 获取任务运行日志 + /// + /// + [HttpGet] + public async Task>> GetTaskLogs(long jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null) + { + var model = await _tasksLogServices.GetTaskLogs(jobId, page, pageSize, runTimeStart, runTimeEnd); + return MessageModel>.Message(model.dataCount >= 0, "获取成功", model); + } + /// + /// 任务概况 + /// + /// + [HttpGet] + public async Task> GetTaskOverview(long jobId, int page = 1, int pageSize = 10, DateTime? runTimeStart = null, DateTime? runTimeEnd = null, string type = "month") + { + var model = await _tasksLogServices.GetTaskOverview(jobId, runTimeStart, runTimeEnd, type); + return MessageModel.Message(true, "获取成功", model); + } } } diff --git a/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs b/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs new file mode 100644 index 00000000..046f7f7b --- /dev/null +++ b/Blog.Core.Api/Controllers/Tenant/TenantByDbController.cs @@ -0,0 +1,50 @@ +using Blog.Core.Common.HttpContextUser; +using Blog.Core.Controllers; +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Api.Controllers.Tenant; + +/// +/// 多租户-多库方案 测试 +/// +[Produces("application/json")] +[Route("api/Tenant/ByDb")] +[Authorize] +public class TenantByDbController : BaseApiController +{ + private readonly IBaseServices _services; + private readonly IUser _user; + + public TenantByDbController(IUser user, IBaseServices services) + { + _user = user; + _services = services; + } + + /// + /// 获取租户下全部业务数据
    + ///
    + /// + [HttpGet] + public async Task>> GetAll() + { + var data = await _services.Query(); + return Success(data); + } + + /// + /// 新增数据 + /// + /// + [HttpPost] + public async Task Post(SubLibraryBusinessTable data) + { + await _services.Db.Insertable(data).ExecuteReturnSnowflakeIdAsync(); + + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs b/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs new file mode 100644 index 00000000..b015bc6d --- /dev/null +++ b/Blog.Core.Api/Controllers/Tenant/TenantByIdController.cs @@ -0,0 +1,49 @@ +using Blog.Core.Common.HttpContextUser; +using Blog.Core.Controllers; +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Api.Controllers.Tenant; + +/// +/// 多租户-Id方案 测试 +/// +[Produces("application/json")] +[Route("api/Tenant/ById")] +[Authorize] +public class TenantByIdController : BaseApiController +{ + private readonly IBaseServices _services; + private readonly IUser _user; + + public TenantByIdController(IUser user, IBaseServices services) + { + _user = user; + _services = services; + } + + /// + /// 获取租户下全部业务数据
    + ///
    + /// + [HttpGet] + public async Task>> GetAll() + { + var data = await _services.Query(); + return Success(data); + } + + /// + /// 新增业务数据 + /// + /// + [HttpPost] + public async Task Post([FromBody] BusinessTable data) + { + await _services.Db.Insertable(data).ExecuteReturnSnowflakeIdAsync(); + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/Tenant/TenantByTableController.cs b/Blog.Core.Api/Controllers/Tenant/TenantByTableController.cs new file mode 100644 index 00000000..6c0b110e --- /dev/null +++ b/Blog.Core.Api/Controllers/Tenant/TenantByTableController.cs @@ -0,0 +1,57 @@ +using Blog.Core.Common.HttpContextUser; +using Blog.Core.Controllers; +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Api.Controllers.Tenant; + +/// +/// 多租户-多表方案 测试 +/// +[Produces("application/json")] +[Route("api/Tenant/ByTable")] +[Authorize] +public class TenantByTableController : BaseApiController +{ + private readonly IBaseServices _services; + private readonly IUser _user; + + public TenantByTableController(IUser user, IBaseServices services) + { + _user = user; + _services = services; + } + + /// + /// 获取租户下全部业务数据
    + ///
    + /// + [HttpGet] + public async Task>> GetAll() + { + //查询 + // var data = await _services.Query(); + + //关联查询 + var data = await _services.Db + .Queryable() + .Includes(s => s.Child) + .ToListAsync(); + return Success(data); + } + + /// + /// 新增数据 + /// + /// + [HttpPost] + public async Task Post(MultiBusinessTable data) + { + await _services.Db.Insertable(data).ExecuteReturnSnowflakeIdAsync(); + + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/Tenant/TenantManagerController.cs b/Blog.Core.Api/Controllers/Tenant/TenantManagerController.cs new file mode 100644 index 00000000..90133fdb --- /dev/null +++ b/Blog.Core.Api/Controllers/Tenant/TenantManagerController.cs @@ -0,0 +1,87 @@ +using Blog.Core.Controllers; +using Blog.Core.IServices; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Api.Controllers.Tenant; + +/// +/// 租户管理 +/// +[Produces("application/json")] +[Route("api/TenantManager")] +[Authorize] +public class TenantManagerController : BaseApiController +{ + private readonly ITenantService _services; + + public TenantManagerController(ITenantService services) + { + _services = services; + } + + + /// + /// 获取全部租户 + /// + /// + [HttpGet] + public async Task>> GetAll() + { + var data = await _services.Query(); + return Success(data); + } + + + /// + /// 获取租户信息 + /// + /// + [HttpGet("{id}")] + public async Task> GetInfo(long id) + { + var data = await _services.QueryById(id); + return Success(data); + } + + /// + /// 新增租户信息
    + /// 此处只做演示,具体要以实际业务为准 + ///
    + /// + [HttpPost] + public async Task Post(SysTenant tenant) + { + await _services.SaveTenant(tenant); + return Success(); + } + + /// + /// 修改租户信息
    + /// 此处只做演示,具体要以实际业务为准 + ///
    + /// + [HttpPut] + public async Task Put(SysTenant tenant) + { + await _services.SaveTenant(tenant); + return Success(); + } + + /// + /// 删除租户
    + /// 此处只做演示,具体要以实际业务为准 + ///
    + /// + [HttpDelete] + public async Task Delete(long id) + { + //是否删除租户库? + //要根据实际情况而定 + //例如直接删除租户库、备份租户库到xx + await _services.DeleteById(id); + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/TopicController.cs b/Blog.Core.Api/Controllers/TopicController.cs index 1fe2d4a3..253f54ff 100644 --- a/Blog.Core.Api/Controllers/TopicController.cs +++ b/Blog.Core.Api/Controllers/TopicController.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Blog.Core.IServices; +using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; using Microsoft.AspNetCore.Authorization; @@ -46,7 +44,7 @@ public async Task>> Get() // GET: api/Topic/5 [HttpGet("{id}")] - public string Get(int id) + public string Get(long id) { return "value"; } @@ -59,13 +57,13 @@ public void Post([FromBody] string value) // PUT: api/Topic/5 [HttpPut("{id}")] - public void Put(int id, [FromBody] string value) + public void Put(long id, [FromBody] string value) { } // DELETE: api/ApiWithActions/5 [HttpDelete("{id}")] - public void Delete(int id) + public void Delete(long id) { } } diff --git a/Blog.Core.Api/Controllers/TopicDetailController.cs b/Blog.Core.Api/Controllers/TopicDetailController.cs index 264fe2df..374aca24 100644 --- a/Blog.Core.Api/Controllers/TopicDetailController.cs +++ b/Blog.Core.Api/Controllers/TopicDetailController.cs @@ -1,7 +1,4 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using Blog.Core.Common.Helper; +using Blog.Core.Common.Helper; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; @@ -45,7 +42,7 @@ public TopicDetailController(ITopicServices topicServices, ITopicDetailServices [AllowAnonymous] public async Task>> Get(int page = 1, string tname = "", string key = "", int intPageSize = 12) { - int tid = 0; + long tid = 0; if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { @@ -59,7 +56,7 @@ public async Task>> Get(int page = 1, string if (!string.IsNullOrEmpty(tname)) { - tid = ((await _topicServices.Query(ts => ts.tName == tname)).FirstOrDefault()?.Id).ObjToInt(); + tid = ((await _topicServices.Query(ts => ts.tName == tname)).FirstOrDefault()?.Id).ObjToLong(); } @@ -84,7 +81,7 @@ public async Task>> Get(int page = 1, string // GET: api/TopicDetail/5 [HttpGet("{id}")] [AllowAnonymous] - public async Task> Get(int id) + public async Task> Get(long id) { var data = new MessageModel(); var response = id > 0 ? await _topicDetailServices.QueryById(id) : new TopicDetail(); @@ -157,7 +154,7 @@ public async Task> Update([FromBody] TopicDetail topicDetai /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); if (id > 0) diff --git a/Blog.Core.Api/Controllers/TransactionController.cs b/Blog.Core.Api/Controllers/TransactionController.cs index dd6b0384..9853d985 100644 --- a/Blog.Core.Api/Controllers/TransactionController.cs +++ b/Blog.Core.Api/Controllers/TransactionController.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Blog.Core.IServices; +using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; using Blog.Core.Repository.UnitOfWorks; @@ -98,7 +95,7 @@ public async Task>> Get() // GET: api/Transaction/5 [HttpGet("{id}")] - public async Task> Get(int id) + public async Task> Get(long id) { return await _guestbookServices.TestTranInRepository(); } @@ -129,7 +126,7 @@ public void Post([FromBody] string value) // PUT: api/Transaction/5 [HttpPut("{id}")] - public void Put(int id, [FromBody] string value) + public void Put(long id, [FromBody] string value) { } @@ -139,7 +136,7 @@ public void Put(int id, [FromBody] string value) /// /// [HttpDelete("{id}")] - public async Task Delete(int id) + public async Task Delete(long id) { return await _guestbookServices.TestTranInRepositoryAOP(); } diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 6a2a18fa..95137c8e 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using AutoMapper; +using AutoMapper; using Blog.Core.AuthHelper.OverWrite; using Blog.Core.Common.Helper; using Blog.Core.Common.HttpContextUser; @@ -13,7 +9,6 @@ using Blog.Core.Repository.UnitOfWorks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; namespace Blog.Core.Controllers { @@ -108,15 +103,15 @@ public async Task>> Get(int page = 1, str return Success(data.ConvertTo(_mapper)); } - private (string, List) GetFullDepartmentName(List departments, int departmentId) + private (string, List) GetFullDepartmentName(List departments, long departmentId) { var departmentModel = departments.FirstOrDefault(d => d.Id == departmentId); if (departmentModel == null) { - return ("", new List()); + return ("", new List()); } - var pids = departmentModel.CodeRelationship?.TrimEnd(',').Split(',').Select(d => d.ObjToInt()).ToList(); + var pids = departmentModel.CodeRelationship?.TrimEnd(',').Split(',').Select(d => d.ObjToLong()).ToList(); pids.Add(departmentModel.Id); var pnams = departments.Where(d => pids.Contains(d.Id)).ToList().Select(d => d.Name).ToArray(); var fullName = string.Join("/", pnams); @@ -270,7 +265,7 @@ public async Task> Put([FromBody] SysUserInfoDto sysUserInf /// // DELETE: api/ApiWithActions/5 [HttpDelete] - public async Task> Delete(int id) + public async Task> Delete(long id) { var data = new MessageModel(); if (id > 0) diff --git a/Blog.Core.Api/Controllers/UserRoleController.cs b/Blog.Core.Api/Controllers/UserRoleController.cs index d14d6a73..693a68b8 100644 --- a/Blog.Core.Api/Controllers/UserRoleController.cs +++ b/Blog.Core.Api/Controllers/UserRoleController.cs @@ -1,5 +1,4 @@ -using System.Threading.Tasks; -using AutoMapper; +using AutoMapper; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; @@ -81,7 +80,7 @@ public async Task> AddRole(string roleName) /// /// [HttpGet] - public async Task> AddUserRole(int uid, int rid) + public async Task> AddUserRole(long uid, long rid) { return new MessageModel() { diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 52eb0ea1..1347ca16 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -298,7 +298,6 @@ public object Post([FromBody] BlogArticle blogArticle, int id) /// /// [HttpPost] - [Route("TestPostPara")] [AllowAnonymous] public object TestPostPara(string name) { diff --git a/Blog.Core.Api/Controllers/WeChatCompanyController.cs b/Blog.Core.Api/Controllers/WeChatCompanyController.cs index 4fa6eea5..dc12930b 100644 --- a/Blog.Core.Api/Controllers/WeChatCompanyController.cs +++ b/Blog.Core.Api/Controllers/WeChatCompanyController.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Controllers/WeChatConfigController.cs b/Blog.Core.Api/Controllers/WeChatConfigController.cs index c597cb3f..1f3b705d 100644 --- a/Blog.Core.Api/Controllers/WeChatConfigController.cs +++ b/Blog.Core.Api/Controllers/WeChatConfigController.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Controllers/WeChatController.cs b/Blog.Core.Api/Controllers/WeChatController.cs index c215f563..a27762e8 100644 --- a/Blog.Core.Api/Controllers/WeChatController.cs +++ b/Blog.Core.Api/Controllers/WeChatController.cs @@ -1,11 +1,8 @@ -using System.IO; -using System.Threading.Tasks; -using Blog.Core.IServices; +using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; namespace Blog.Core.Controllers { diff --git a/Blog.Core.Api/Controllers/WeChatPushLogController.cs b/Blog.Core.Api/Controllers/WeChatPushLogController.cs index 1fe1603d..af168091 100644 --- a/Blog.Core.Api/Controllers/WeChatPushLogController.cs +++ b/Blog.Core.Api/Controllers/WeChatPushLogController.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Controllers/WeChatSubController.cs b/Blog.Core.Api/Controllers/WeChatSubController.cs index bd8d1759..94f982d2 100644 --- a/Blog.Core.Api/Controllers/WeChatSubController.cs +++ b/Blog.Core.Api/Controllers/WeChatSubController.cs @@ -1,4 +1,3 @@ -using System.Threading.Tasks; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 8ab4b93d..2a75498e 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -1,19 +1,22 @@ - -// 以下为asp.net 6.0的写法,如果用5.0,请看Program.five.cs文件 +// 以下为asp.net 6.0的写法,如果用5.0,请看Program.five.cs文件 +using System.IdentityModel.Tokens.Jwt; +using System.Reflection; +using System.Text; using Autofac; using Autofac.Extensions.DependencyInjection; using Blog.Core; using Blog.Core.Common; +using Blog.Core.Common.Core; +using Blog.Core.Common.Helper; using Blog.Core.Common.LogHelper; -using Blog.Core.Common.Seed; using Blog.Core.Extensions; using Blog.Core.Extensions.Apollo; using Blog.Core.Extensions.Middlewares; using Blog.Core.Filter; using Blog.Core.Hubs; using Blog.Core.IServices; +using Blog.Core.Model; using Blog.Core.Tasks; -using FluentValidation.AspNetCore; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; @@ -21,9 +24,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; -using System.IdentityModel.Tokens.Jwt; -using System.Reflection; -using System.Text; var builder = WebApplication.CreateBuilder(args); @@ -49,7 +49,6 @@ config.AddConfigurationApollo("appsettings.apollo.json"); }); - // 2、配置服务 builder.Services.AddSingleton(new AppSettings(builder.Configuration)); builder.Services.AddSingleton(new LogLock(builder.Environment.ContentRootPath)); @@ -79,7 +78,7 @@ builder.Services.AddKafkaSetup(builder.Configuration); builder.Services.AddEventBusSetup(); builder.Services.AddNacosSetup(builder.Configuration); - +builder.Services.AddInitializationHostServiceSetup(); builder.Services.AddAuthorizationSetup(); if (Permissions.IsUseIds4 || Permissions.IsUseAuthing) { @@ -114,6 +113,8 @@ //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; options.SerializerSettings.Converters.Add(new StringEnumConverter()); + //将long类型转为string + options.SerializerSettings.Converters.Add(new NumberConverter(NumberConverterShip.Int64)); }) //.AddFluentValidation(config => //{ @@ -129,9 +130,9 @@ builder.Services.Replace(ServiceDescriptor.Transient()); Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); - // 3、配置中间件 var app = builder.Build(); +app.ConfigureApplication(); if (app.Environment.IsDevelopment()) { @@ -182,16 +183,5 @@ endpoints.MapHub("/api2/chatHub"); }); - -var scope = app.Services.GetRequiredService().CreateScope(); -var myContext = scope.ServiceProvider.GetRequiredService(); -var tasksQzServices = scope.ServiceProvider.GetRequiredService(); -var schedulerCenter = scope.ServiceProvider.GetRequiredService(); -var lifetime = scope.ServiceProvider.GetRequiredService(); -app.UseSeedDataMiddle(myContext, builder.Environment.WebRootPath); -app.UseQuartzJobMiddleware(tasksQzServices, schedulerCenter); -app.UseConsulMiddle(builder.Configuration, lifetime); -app.ConfigureEventBus(); - // 4、运行 -app.Run(); +app.Run(); \ No newline at end of file diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index b341819e..4f99b621 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -1,34 +1,30 @@ -using Autofac; +using System.IdentityModel.Tokens.Jwt; +using System.Reflection; +using System.Text; +using Autofac; using Blog.Core.Common; +using Blog.Core.Common.Helper; using Blog.Core.Common.LogHelper; using Blog.Core.Common.Seed; using Blog.Core.Extensions; +using Blog.Core.Extensions.Middlewares; using Blog.Core.Filter; using Blog.Core.Hubs; using Blog.Core.IServices; +using Blog.Core.Model; using Blog.Core.Tasks; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Hosting; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; -using System.IdentityModel.Tokens.Jwt; -using System.Reflection; -using System.Text; -using Blog.Core.Extensions.Middlewares; namespace Blog.Core { public class Startup { - private IServiceCollection _services; public Startup(IConfiguration configuration, IWebHostEnvironment env) @@ -75,7 +71,7 @@ public void ConfigureServices(IServiceCollection services) services.AddEventBusSetup(); services.AddNacosSetup(Configuration); - + services.AddInitializationHostServiceSetup(); // 授权+认证 (jwt or ids4) services.AddAuthorizationSetup(); if (Permissions.IsUseIds4) @@ -95,7 +91,7 @@ public void ConfigureServices(IServiceCollection services) services.Configure(x => x.AllowSynchronousIO = true) .Configure(x => x.AllowSynchronousIO = true); - + services.AddDistributedMemoryCache(); services.AddSession(); services.AddHttpPollySetup(); @@ -129,12 +125,14 @@ public void ConfigureServices(IServiceCollection services) options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; //添加Enum转string options.SerializerSettings.Converters.Add(new StringEnumConverter()); + //将long类型转为string + options.SerializerSettings.Converters.Add(new NumberConverter(NumberConverterShip.Int64)); }); services.Replace(ServiceDescriptor.Transient()); _services = services; - //支持编码大全 例如:支持 System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030") + //支持编码大全 例如:支持 System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030") Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); } @@ -150,11 +148,11 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex { // Ip限流,尽量放管道外层 app.UseIpLimitMiddle(); - // 记录请求与返回数据 + // 记录请求与返回数据 app.UseRequestResponseLogMiddle(); // 用户访问记录(必须放到外层,不然如果遇到异常,会报错,因为不能返回流) app.UseRecordAccessLogsMiddle(); - // signalr + // signalr app.UseSignalRSendMiddle(); // 记录ip请求 app.UseIpLogMiddle(); @@ -214,7 +212,6 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex // 开启异常中间件,要放到最后 //app.UseExceptionHandlerMidd(); - app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( @@ -225,15 +222,13 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContex }); // 生成种子数据 - app.UseSeedDataMiddle(myContext, Env.WebRootPath); + //app.UseSeedDataMiddle(myContext, Env.WebRootPath); // 开启QuartzNetJob调度服务 - app.UseQuartzJobMiddleware(tasksQzServices, schedulerCenter); + //app.UseQuartzJobMiddleware(tasksQzServices, schedulerCenter); // 服务注册 - app.UseConsulMiddle(Configuration, lifetime); + //app.UseConsulMiddle(Configuration, lifetime); // 事件总线,订阅服务 - app.ConfigureEventBus(); - + //app.ConfigureEventBus(); } - } -} +} \ No newline at end of file diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index ea678174..dd2f2990 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -1,98 +1,98 @@ { - "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 - "Logging": { - "LogLevel": { - "Default": "Information", //加入Default否则log4net本地写入不了日志 - "Blog.Core.AuthHelper.ApiResponseHandler": "Error" + "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 + "Logging": { + "LogLevel": { + "Default": "Information", //加入Default否则log4net本地写入不了日志 + "Blog.Core.AuthHelper.ApiResponseHandler": "Error" + }, + "Debug": { + "IncludeScopes": false, + "LogLevel": { + "Default": "Warning" + } + }, + "Console": { + "IncludeScopes": false, + "LogLevel": { + "Default": "Warning", + "Microsoft.Hosting.Lifetime": "Debug" + } + }, + "Log4Net": { + "Name": "Blog.Core" + } }, - "Debug": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Warning" - } + "AllowedHosts": "*", + "Redis": { + "ConnectionString": "127.0.0.1:6319,password=admin" }, - "Console": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Warning", - "Microsoft.Hosting.Lifetime": "Debug" - } + "RabbitMQ": { + "Enabled": false, + "Connection": "118.25.251.13", + "UserName": "", + "Password": "!", + "RetryCount": 3 }, - "Log4Net": { - "Name": "Blog.Core" - } - }, - "AllowedHosts": "*", - "Redis": { - "ConnectionString": "127.0.0.1:6319,password=admin" - }, - "RabbitMQ": { - "Enabled": false, - "Connection": "118.25.251.13", - "UserName": "", - "Password": "!", - "RetryCount": 3 - }, - "Kafka": { - "Enabled": false, - "Servers": "localhost:9092", - "Topic": "blog", - "GroupId": "blog-consumer", - "NumPartitions": 3 //主题分区数量 - }, - "EventBus": { - "Enabled": false, - "SubscriptionClientName": "Blog.Core" - }, - "AppSettings": { - "RedisCachingAOP": { - "Enabled": false - }, - "MemoryCachingAOP": { - "Enabled": true - }, - "LogAOP": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - } + "Kafka": { + "Enabled": false, + "Servers": "localhost:9092", + "Topic": "blog", + "GroupId": "blog-consumer", + "NumPartitions": 3 //主题分区数量 }, - "TranAOP": { - "Enabled": true + "EventBus": { + "Enabled": false, + "SubscriptionClientName": "Blog.Core" }, - "SqlAOP": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": false - }, - "LogToConsole": { - "Enabled": true - } + "AppSettings": { + "RedisCachingAOP": { + "Enabled": false + }, + "MemoryCachingAOP": { + "Enabled": true + }, + "LogAOP": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": false + } + }, + "TranAOP": { + "Enabled": true + }, + "SqlAOP": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": false + }, + "LogToConsole": { + "Enabled": true + } + }, + "Date": "2018-08-28", + "SeedDBEnabled": true, //只生成表结构 + "SeedDBDataEnabled": true, //生成表,并初始化数据 + "Author": "Blog.Core", + "SvcName": "", // /svc/blog + "UseLoadTest": false }, - "Date": "2018-08-28", - "SeedDBEnabled": true, //只生成表结构 - "SeedDBDataEnabled": true, //生成表,并初始化数据 - "Author": "Blog.Core", - "SvcName": "", // /svc/blog - "UseLoadTest": false - }, - // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; - // *** 单库操作,把 MutiDBEnabled 设为false ***; - // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; - // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 + // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; + // *** 单库操作,把 MutiDBEnabled 设为false ***; + // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; + // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 - "MainDB": "WMBLOG_SQLITE", //当前项目的主库,所对应的连接字符串的Enabled必须为true - "MutiDBEnabled": false, //是否开启多库模式 - "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer - "DBS": [ - /* + "MainDB": "WMBLOG_MYSQL", //当前项目的主库,所对应的连接字符串的Enabled必须为true + "MutiDBEnabled": true, //是否开启多库模式 + "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer + "DBS": [ + /* 对应下边的 DBType MySql = 0, SqlServer = 1, @@ -102,225 +102,230 @@ Dm = 5,//达梦 Kdbndp = 6,//人大金仓 */ - { - "ConnId": "WMBLOG_SQLITE", - "DBType": 2, - "Enabled": true, - "HitRate": 50, // 值越大,优先级越高 - "Connection": "WMBlog.db" //sqlite只写数据库名就行 - }, - { - "ConnId": "WMBLOG_MSSQL_1", - "DBType": 1, - "Enabled": false, - "HitRate": 40, - "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", - "ProviderName": "System.Data.SqlClient" - }, - { - "ConnId": "WMBLOG_MSSQL_2", - "DBType": 1, - "Enabled": false, - "HitRate": 30, - "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", - "ProviderName": "System.Data.SqlClient" + { + "ConnId": "WMBLOG_SQLITE", + "DBType": 2, + "Enabled": false, + "HitRate": 50, // 值越大,优先级越高 + "Connection": "WMBlog.db" //sqlite只写数据库名就行 + }, + { + "ConnId": "WMBLOG_MSSQL_1", + "DBType": 1, + "Enabled": false, + "HitRate": 40, + "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ProviderName": "System.Data.SqlClient" + }, + { + "ConnId": "WMBLOG_MSSQL_2", + "DBType": 1, + "Enabled": false, + "HitRate": 30, + "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ProviderName": "System.Data.SqlClient" + }, + { + "ConnId": "WMBLOG_MYSQL", + "DBType": 0, + "Enabled": true, + "HitRate": 20, + "Connection": "server=localhost;Database=blog;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" + }, + { + "ConnId": "WMBLOG_MYSQL_2", + "DBType": 0, + "Enabled": true, + "HitRate": 20, + "Connection": "server=localhost;Database=trojan;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" + }, + { + "ConnId": "WMBLOG_ORACLE", + "DBType": 3, + "Enabled": false, + "HitRate": 10, + "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" + }, + { + "ConnId": "WMBLOG_DM", + "DBType": 5, + "Enabled": false, + "HitRate": 10, + "Connection": "PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA;" + }, + { + "ConnId": "WMBLOG_KDBNDP", + "DBType": 6, + "Enabled": false, + "HitRate": 10, + "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" + } + ], + "Audience": { + "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //不要太短,16位+ + "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", //安全。内容就是Secret + "Issuer": "Blog.Core", + "Audience": "wr" }, - { - "ConnId": "WMBLOG_MYSQL", - "DBType": 0, - "Enabled": false, - "HitRate": 20, - "Connection": "server=.;Database=ddd;Uid=root;Pwd=123456;Port=10060;Allow User Variables=True;" - }, - { - "ConnId": "WMBLOG_MYSQL_2", - "DBType": 0, - "Enabled": true, - "HitRate": 20, - "Connection": "server=localhost;Database=blogcore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" - }, - { - "ConnId": "WMBLOG_ORACLE", - "DBType": 3, - "Enabled": false, - "HitRate": 10, - "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" - }, - { - "ConnId": "WMBLOG_DM", - "DBType": 5, - "Enabled": false, - "HitRate": 10, - "Connection": "PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA;" - }, - { - "ConnId": "WMBLOG_KDBNDP", - "DBType": 6, - "Enabled": true, - "HitRate": 10, - "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" - } - ], - "Audience": { - "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //不要太短,16位+ - "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", //安全。内容就是Secret - "Issuer": "Blog.Core", - "Audience": "wr" - }, - "Mongo": { - "ConnectionString": "mongodb://nosql.data", - "Database": "BlogCoreDb" - }, - "Startup": { - "Domain": "http://localhost:9291", - "Cors": { - "PolicyName": "CorsIpAccess", //策略名称 - "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 - // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 - // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 - "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688" + "Mongo": { + "ConnectionString": "mongodb://nosql.data", + "Database": "BlogCoreDb" }, - "AppConfigAlert": { - "Enabled": true + "Startup": { + "Domain": "http://localhost:9291", + "Cors": { + "PolicyName": "CorsIpAccess", //策略名称 + "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 + // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 + // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 + "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688" + }, + "AppConfigAlert": { + "Enabled": true + }, + "ApiName": "Blog.Core", + "IdentityServer4": { + "Enabled": false, // 这里默认是false,表示使用jwt,如果设置为true,则表示系统使用Ids4模式 + "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 + "ApiName": "blog.core.api" // 资源服务器 + }, + "Authing": { + "Enabled": false, + "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", + "Audience": "63d51c4205c2849803be5178", + "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" + }, + "RedisMq": { + "Enabled": false //redis 消息队列 + }, + "MiniProfiler": { + "Enabled": false //性能分析开启 + }, + "Nacos": { + "Enabled": false //Nacos注册中心 + } }, - "ApiName": "Blog.Core", - "IdentityServer4": { - "Enabled": false, // 这里默认是false,表示使用jwt,如果设置为true,则表示系统使用Ids4模式 - "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 - "ApiName": "blog.core.api" // 资源服务器 + "Middleware": { + "RequestResponseLog": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": false + } + }, + "IPLog": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": false + } + }, + "RecordAccessLogs": { + "Enabled": true, + "LogToFile": { + "Enabled": false + }, + "LogToDB": { + "Enabled": false + }, + "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," + }, + "SignalR": { + "Enabled": false + }, + "SignalRSendLog": { + "Enabled": false + }, + "QuartzNetJob": { + "Enabled": true + }, + "Consul": { + "Enabled": false + }, + "IpRateLimit": { + "Enabled": true + } }, - "Authing": { - "Enabled": false, - "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", - "Audience": "63d51c4205c2849803be5178", - "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" - }, - "RedisMq": { - "Enabled": false //redis 消息队列 - }, - "MiniProfiler": { - "Enabled": false //性能分析开启 - }, - "Nacos": { - "Enabled": false //Nacos注册中心 - } - }, - "Middleware": { - "RequestResponseLog": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - } - }, - "IPLog": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - } - }, - "RecordAccessLogs": { - "Enabled": true, - "LogToFile": { - "Enabled": false - }, - "LogToDB": { - "Enabled": true - }, - "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," + "IpRateLimiting": { + "EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each + "StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter + "RealIpHeader": "X-Real-IP", + "ClientIdHeader": "X-ClientId", + "IpWhitelist": [], //白名单 + "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], + "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], + "QuotaExceededResponse": { + "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", + "ContentType": "application/json", + "StatusCode": 429 + }, + "HttpStatusCode": 429, //返回状态码 + "GeneralRules": [ //api规则,结尾一定要带* + { + "Endpoint": "*:/api/blog*", + "Period": "1m", + "Limit": 20 + }, + { + "Endpoint": "*/api/*", + "Period": "1s", + "Limit": 3 + }, + { + "Endpoint": "*/api/*", + "Period": "1m", + "Limit": 30 + }, + { + "Endpoint": "*/api/*", + "Period": "12h", + "Limit": 500 + } + ] + }, - "SignalR": { - "Enabled": false + "ConsulSetting": { + "ServiceName": "BlogCoreService", + "ServiceIP": "localhost", + "ServicePort": "9291", + "ServiceHealthCheck": "/healthcheck", + "ConsulAddress": "http://localhost:8500" }, - "SignalRSendLog": { - "Enabled": false + "PayInfo": { //建行聚合支付信息 + "MERCHANTID": "", //商户号 + "POSID": "", //柜台号 + "BRANCHID": "", //分行号 + "pubKey": "", //公钥 + "USER_ID": "", //操作员号 + "PASSWORD": "", //密码 + "OutAddress": "http://127.0.0.1:12345" //外联地址 }, - "QuartzNetJob": { - "Enabled": true + "nacos": { + "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 + "DefaultTimeOut": 15000, // 默认超时时间 + "Namespace": "public", // 命名空间 + "ListenInterval": 10000, // 监听的频率 + "ServiceName": "blog.Core.Api", // 服务名 + "Port": "9291", // 服务端口号 + "RegisterEnabled": true // 是否直接注册nacos }, - "Consul": { - "Enabled": false + "LogFiedOutPutConfigs": { + "tcpAddressHost": "", // 输出elk的tcp连接地址 + "tcpAddressPort": 0, // 输出elk的tcp端口号 + "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 + { + "FiedName": "applicationName", + "FiedValue": "Blog.Core.Api" + } + ] }, - "IpRateLimit": { - "Enabled": true + "trojan": { //科学上网订阅 + "normalApi": "https://apiurl/api/Trojan/RSS?id=", + "clashApi": "https://clashurl/sub?target=clash&insert=false&url=", + "clashApiBackup": "https://clashurl/sub?target=clash&insert=false&url=" } - }, - "IpRateLimiting": { - "EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each - "StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter - "RealIpHeader": "X-Real-IP", - "ClientIdHeader": "X-ClientId", - "IpWhitelist": [], //白名单 - "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], - "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], - "QuotaExceededResponse": { - "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", - "ContentType": "application/json", - "StatusCode": 429 - }, - "HttpStatusCode": 429, //返回状态码 - "GeneralRules": [ //api规则,结尾一定要带* - { - "Endpoint": "*:/api/blog*", - "Period": "1m", - "Limit": 20 - }, - { - "Endpoint": "*/api/*", - "Period": "1s", - "Limit": 3 - }, - { - "Endpoint": "*/api/*", - "Period": "1m", - "Limit": 30 - }, - { - "Endpoint": "*/api/*", - "Period": "12h", - "Limit": 500 - } - ] - - }, - "ConsulSetting": { - "ServiceName": "BlogCoreService", - "ServiceIP": "localhost", - "ServicePort": "9291", - "ServiceHealthCheck": "/healthcheck", - "ConsulAddress": "http://localhost:8500" - }, - "PayInfo": { //建行聚合支付信息 - "MERCHANTID": "", //商户号 - "POSID": "", //柜台号 - "BRANCHID": "", //分行号 - "pubKey": "", //公钥 - "USER_ID": "", //操作员号 - "PASSWORD": "", //密码 - "OutAddress": "http://127.0.0.1:12345" //外联地址 - }, - "nacos": { - "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 - "DefaultTimeOut": 15000, // 默认超时时间 - "Namespace": "public", // 命名空间 - "ListenInterval": 10000, // 监听的频率 - "ServiceName": "blog.Core.Api", // 服务名 - "Port": "9291", // 服务端口号 - "RegisterEnabled": true // 是否直接注册nacos - }, - "LogFiedOutPutConfigs": { - "tcpAddressHost": "", // 输出elk的tcp连接地址 - "tcpAddressPort": 0, // 输出elk的tcp端口号 - "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 - { - "FiedName": "applicationName", - "FiedValue": "Blog.Core.Api" - } - ] - } } diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.excel/SysUserInfo.xlsx b/Blog.Core.Api/wwwroot/BlogCore.Data.excel/SysUserInfo.xlsx index 51c0e125ec7a2b31b7d3e932bee4a0cde662b4d0..6a1e4ca6b01b92e1ab3095a7090a48ed41119a21 100644 GIT binary patch delta 4254 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 delta 4220 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 InternalApp.RootServices ; + + /// + /// 获取请求上下文 + /// + public static HttpContext HttpContext => RootServices?.GetService()?.HttpContext; + + public static IUser User => HttpContext == null ? null : RootServices?.GetService(); +} \ No newline at end of file diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 43f65ab9..fc0abb9d 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -43,4 +43,8 @@ + + + + diff --git a/Blog.Core.Common/Core/InternalApp.cs b/Blog.Core.Common/Core/InternalApp.cs new file mode 100644 index 00000000..c1ae8dcd --- /dev/null +++ b/Blog.Core.Common/Core/InternalApp.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Builder; +using System; + +namespace Blog.Core.Common.Core; + +public static class InternalApp +{ + /// 根服务 + public static IServiceProvider RootServices; + + public static void ConfigureApplication(this WebApplication app) + { + app.Lifetime.ApplicationStarted.Register(() => { InternalApp.RootServices = app.Services; }); + + app.Lifetime.ApplicationStopped.Register(() => { InternalApp.RootServices = null; }); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs new file mode 100644 index 00000000..9ab494a4 --- /dev/null +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -0,0 +1,130 @@ +using Blog.Core.Model; +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Tenants; +using SqlSugar; +using System; + +namespace Blog.Core.Common.DB.Aop; + +public static class SqlSugarAop +{ + public static void DataExecuting(object oldValue, DataFilterModel entityInfo) + { + if (entityInfo.EntityValue is RootEntityTkey rootEntity) + { + if (rootEntity.Id == 0) + { + rootEntity.Id = SnowFlakeSingle.Instance.NextId(); + } + } + + if (entityInfo.EntityValue is BaseEntity baseEntity) + { + // 新增操作 + if (entityInfo.OperationType == DataFilterType.InsertByObject) + { + if (baseEntity.CreateTime == DateTime.MinValue) + { + baseEntity.CreateTime = DateTime.Now; + } + } + + if (entityInfo.OperationType == DataFilterType.UpdateByObject) + { + baseEntity.ModifyTime = DateTime.Now; + } + + + if (App.User?.ID > 0) + { + if (baseEntity is ITenantEntity tenant && App.User.TenantId > 0) + { + if (tenant.TenantId == 0) + { + tenant.TenantId = App.User.TenantId; + } + } + + switch (entityInfo.OperationType) + { + case DataFilterType.UpdateByObject: + baseEntity.ModifyId = App.User.ID; + baseEntity.ModifyBy = App.User.Name; + break; + case DataFilterType.InsertByObject: + if (baseEntity.CreateBy.IsNullOrEmpty() || baseEntity.CreateId is null or <= 0) + { + baseEntity.CreateId = App.User.ID; + baseEntity.CreateBy = App.User.Name; + } + + break; + } + } + } + else + { + //兼容以前的表 + //这里要小心 在AOP里用反射 数据量多性能就会有问题 + //要么都统一使用基类 + //要么考虑老的表没必要兼容老的表 + // + + var getType = entityInfo.EntityValue.GetType(); + + switch (entityInfo.OperationType) + { + case DataFilterType.InsertByObject: + var dyCreateBy = getType.GetProperty("CreateBy"); + var dyCreateId = getType.GetProperty("CreateId"); + var dyCreateTime = getType.GetProperty("CreateTime"); + + if (App.User?.ID > 0 && dyCreateBy != null && dyCreateBy.GetValue(entityInfo.EntityValue) == null) + dyCreateBy.SetValue(entityInfo.EntityValue, App.User.Name); + + if (App.User?.ID > 0 && dyCreateId != null && dyCreateId.GetValue(entityInfo.EntityValue) == null) + dyCreateId.SetValue(entityInfo.EntityValue, App.User.ID); + + if (dyCreateTime != null && (DateTime)dyCreateTime.GetValue(entityInfo.EntityValue) == DateTime.MinValue) + dyCreateTime.SetValue(entityInfo.EntityValue, DateTime.Now); + + break; + case DataFilterType.UpdateByObject: + var dyModifyBy = getType.GetProperty("ModifyBy"); + var dyModifyId = getType.GetProperty("ModifyId"); + var dyModifyTime = getType.GetProperty("ModifyTime"); + + if (App.User?.ID > 0 && dyModifyBy != null) + dyModifyBy.SetValue(entityInfo.EntityValue, App.User.Name); + + if (App.User?.ID > 0 && dyModifyId != null) + dyModifyId.SetValue(entityInfo.EntityValue, App.User.ID); + + if (dyModifyTime != null) + dyModifyTime.SetValue(entityInfo.EntityValue, DateTime.Now); + break; + } + } + } + + private static string GetWholeSql(SugarParameter[] paramArr, string sql) + { + foreach (var param in paramArr) + { + sql = sql.Replace(param.ParameterName, $@"'{param.Value.ObjToString()}'"); + } + + return sql; + } + + private static string GetParas(SugarParameter[] pars) + { + string key = "【SQL参数】:"; + foreach (var param in pars) + { + key += $"{param.ParameterName}:{param.Value}\n"; + } + + return key; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/BaseDBConfig.cs b/Blog.Core.Common/DB/BaseDBConfig.cs index dc7fee4e..1d86369a 100644 --- a/Blog.Core.Common/DB/BaseDBConfig.cs +++ b/Blog.Core.Common/DB/BaseDBConfig.cs @@ -1,4 +1,5 @@ -using System; +using SqlSugar; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -11,6 +12,7 @@ public class BaseDBConfig * 目前是多库操作,默认加载的是appsettings.json设置为true的第一个db连接。 */ public static (List allDbs, List slaveDbs) MutiConnectionString => MutiInitConn(); + private static string DifDBConnOfSecurity(params string[] conn) { foreach (var item in conn) @@ -22,7 +24,9 @@ private static string DifDBConnOfSecurity(params string[] conn) return File.ReadAllText(item).Trim(); } } - catch (System.Exception) { } + catch (System.Exception) + { + } } return conn[conn.Length - 1]; @@ -37,8 +41,9 @@ public static (List, List) MutiInitConn() { SpecialDbString(i); } - List listdatabaseSimpleDB = new List();//单库 - List listdatabaseSlaveDB = new List();//从库 + + List listdatabaseSimpleDB = new List(); //单库 + List listdatabaseSlaveDB = new List(); //从库 // 单库,且不开启读写分离,只保留一个 if (!AppSettings.app(new string[] { "CQRSEnabled" }).ObjToBool() && !AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool()) @@ -54,6 +59,7 @@ public static (List, List) MutiInitConn() { dbFirst = listdatabase.FirstOrDefault(); } + listdatabaseSimpleDB.Add(dbFirst); return (listdatabaseSimpleDB, listdatabaseSlaveDB); } @@ -70,7 +76,6 @@ public static (List, List) MutiInitConn() } - return (listdatabase, listdatabaseSlaveDB); //} } @@ -102,6 +107,8 @@ private static MutiDBOperate SpecialDbString(MutiDBOperate mutiDBOperate) return mutiDBOperate; } + + } @@ -115,24 +122,29 @@ public enum DataBaseType Dm = 5, Kdbndp = 6, } + public class MutiDBOperate { /// /// 连接启用开关 /// public bool Enabled { get; set; } + /// /// 连接ID /// public string ConnId { get; set; } + /// /// 从库执行级别,越大越先执行 /// public int HitRate { get; set; } + /// /// 连接字符串 /// public string Connection { get; set; } + /// /// 数据库类型 /// diff --git a/Blog.Core.Common/DB/RepositorySetting.cs b/Blog.Core.Common/DB/RepositorySetting.cs new file mode 100644 index 00000000..bfca7174 --- /dev/null +++ b/Blog.Core.Common/DB/RepositorySetting.cs @@ -0,0 +1,48 @@ +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Models.RootTkey.Interface; +using Blog.Core.Model.Tenants; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Blog.Core.Common.DB; + +public class RepositorySetting +{ + private static readonly Lazy> AllEntitys = new(() => + { + return typeof(BaseEntity).Assembly + .GetTypes() + .Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(BaseEntity))) + .Where(it => it.FullName != null && it.FullName.StartsWith("Blog.Core.Model.Models")); + }); + + public static IEnumerable Entitys => AllEntitys.Value; + + /// + /// 配置实体软删除过滤器
    + /// 统一过滤 软删除 无需自己写条件 + ///
    + public static void SetDeletedEntityFilter(SqlSugarScopeProvider db) + { + db.QueryFilter.AddTableFilter(it => it.IsDeleted == false); + } + + /// + /// 配置租户 + /// + public static void SetTenantEntityFilter(SqlSugarScopeProvider db) + { + if (App.User is not { ID: > 0, TenantId: > 0 }) + { + return; + } + + //多租户 单表 + db.QueryFilter.AddTableFilter(it => it.TenantId == App.User.TenantId || it.TenantId == 0); + + //多租户 多表 + db.SetTenantTable(App.User.TenantId.ToString()); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/TenantUtil.cs b/Blog.Core.Common/DB/TenantUtil.cs new file mode 100644 index 00000000..8d57189b --- /dev/null +++ b/Blog.Core.Common/DB/TenantUtil.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using Blog.Core.Model.Models; +using Blog.Core.Model.Tenants; +using SqlSugar; + +namespace Blog.Core.Common.DB; + +public static class TenantUtil +{ + public static SysTenant DefaultTenantConfig(this SysTenant tenant) + { + tenant.DbType ??= DbType.Sqlite; + + //如果没有配置连接 + if (tenant.Connection.IsNullOrEmpty()) + { + //此处默认配置 Sqlite 地址 + //实际业务中 也会有运维、系统管理员等来维护 + switch (tenant.DbType.Value) + { + case DbType.Sqlite: + tenant.Connection = $"DataSource={Path.Combine(Environment.CurrentDirectory, tenant.ConfigId)}.db"; + break; + } + } + + return tenant; + } + + public static ConnectionConfig GetConnectionConfig(this SysTenant tenant) + { + if (tenant.DbType is null) + { + throw new ArgumentException("Tenant DbType Must"); + } + + + return new ConnectionConfig() + { + ConfigId = tenant.ConfigId, + DbType = tenant.DbType.Value, + ConnectionString = tenant.Connection, + IsAutoCloseConnection = true, + MoreSettings = new ConnMoreSettings() + { + IsAutoRemoveDataCache = true + }, + }; + } + + public static List GetTenantEntityTypes(TenantTypeEnum? tenantType = null) + { + return RepositorySetting.Entitys + .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass) + .Where(s => IsTenantEntity(s, tenantType)) + .ToList(); + } + + public static bool IsTenantEntity(this Type u, TenantTypeEnum? tenantType = null) + { + var mta = u.GetCustomAttribute(); + if (mta is null) + { + return false; + } + + if (tenantType != null) + { + if (mta.TenantType != tenantType) + { + return false; + } + } + + return true; + } + + public static string GetTenantTableName(this Type type, ISqlSugarClient db, string id) + { + var entityInfo = db.EntityMaintenance.GetEntityInfo(type); + return $@"{entityInfo.DbTableName}_{id}"; + } + + public static string GetTenantTableName(this Type type, ISqlSugarClient db, SysTenant tenant) + { + return GetTenantTableName(type, db, tenant.Id.ToString()); + } + + public static void SetTenantTable(this ISqlSugarClient db, string id) + { + var types = GetTenantEntityTypes(TenantTypeEnum.Tables); + + foreach (var type in types) + { + db.MappingTables.Add(type.Name, type.GetTenantTableName(db, id)); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/AssemblysExtensions.cs b/Blog.Core.Common/Extensions/AssemblysExtensions.cs new file mode 100644 index 00000000..5e5d4349 --- /dev/null +++ b/Blog.Core.Common/Extensions/AssemblysExtensions.cs @@ -0,0 +1,24 @@ +using Microsoft.Extensions.DependencyModel; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Runtime.Loader; + +namespace Blog.Core.Common.Extensions; + +public static class AssemblysExtensions +{ + public static List GetAllAssemblies() + { + var list = new List(); + var deps = DependencyContext.Default; + var libs = deps.CompileLibraries.Where(lib => !lib.Serviceable && lib.Type != "package" ); + foreach (var lib in libs) + { + var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(lib.Name)); + list.Add(assembly); + } + + return list; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/ExpressionExtensions.cs b/Blog.Core.Common/Extensions/ExpressionExtensions.cs index 7f9e69e5..4058b95a 100644 --- a/Blog.Core.Common/Extensions/ExpressionExtensions.cs +++ b/Blog.Core.Common/Extensions/ExpressionExtensions.cs @@ -151,6 +151,16 @@ public static Expression Contains(this Expression left, Expression right) return left.Call("Contains", right); } + public static Expression StartContains(this Expression left, Expression right) + { + return left.Call("StartsWith", right); + } + + public static Expression EndContains(this Expression left, Expression right) + { + return left.Call("EndsWith", right); + } + /// /// > /// @@ -201,5 +211,4 @@ public static Expression NotEqual(this Expression left, Expression right) #endregion } - -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/GenericTypeExtensions.cs b/Blog.Core.Common/Extensions/GenericTypeExtensions.cs index 368b6676..6c067773 100644 --- a/Blog.Core.Common/Extensions/GenericTypeExtensions.cs +++ b/Blog.Core.Common/Extensions/GenericTypeExtensions.cs @@ -26,5 +26,31 @@ public static string GetGenericTypeName(this object @object) { return @object.GetType().GetGenericTypeName(); } + + /// + /// 判断类型是否实现某个泛型 + /// + /// 类型 + /// 泛型类型 + /// bool + // public static bool HasImplementedRawGeneric(this Type type, Type generic) + // { + // // 检查接口类型 + // var isTheRawGenericType = type.GetInterfaces().Any(IsTheRawGenericType); + // if (isTheRawGenericType) return true; + + // // 检查类型 + // while (type != null && type != typeof(object)) + // { + // isTheRawGenericType = IsTheRawGenericType(type); + // if (isTheRawGenericType) return true; + // type = type.BaseType; + // } + + // return false; + + // // 判断逻辑 + // bool IsTheRawGenericType(Type type) => generic == (type.IsGenericType ? type.GetGenericTypeDefinition() : type); + // } } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/UntilExtensions.cs b/Blog.Core.Common/Extensions/UntilExtensions.cs new file mode 100644 index 00000000..1ae503b2 --- /dev/null +++ b/Blog.Core.Common/Extensions/UntilExtensions.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; + +namespace Blog.Core.Common.Extensions; + +public static class UntilExtensions +{ + public static void AddOrModify(this IDictionary dic, TKey key, TValue value) + { + if (dic.TryGetValue(key, out _)) + { + dic[key] = value; + } + else + { + dic.Add(key, value); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/DynamicLinqFactory.cs b/Blog.Core.Common/Helper/DynamicLinqFactory.cs index 43fdd7e3..7d45bbd2 100644 --- a/Blog.Core.Common/Helper/DynamicLinqFactory.cs +++ b/Blog.Core.Common/Helper/DynamicLinqFactory.cs @@ -1,15 +1,11 @@ -using Microsoft.AspNetCore.Http; -using System; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Linq.Expressions; -using System.Net.Http; -using System.Net.Http.Headers; using System.Reflection; using System.Text; using System.Text.RegularExpressions; -using System.Threading.Tasks; namespace Blog.Core.Common.Helper { @@ -20,10 +16,10 @@ namespace Blog.Core.Common.Helper /// public static class DynamicLinqFactory { - private static readonly Dictionary _operatingSystems = new(); + private static readonly Dictionary _operatingSystems = new Dictionary(); public static Dictionary OperatingSystems => GetOperationSymbol(); - private static readonly Dictionary _linkSymbols = new(); + private static readonly Dictionary _linkSymbols = new Dictionary(); public static Dictionary LinkSymbols => GetLinkSymbol(); /// @@ -70,11 +66,16 @@ public static Expression ExpressionStudio(Expression left, DynamicLinqHelper Dyn var properties = DynamicLinq.Left.Split('.'); - // 从1开始,是不想用自定义种子,外层种子已经定义好了 - // 暂时也不会有多个自定义种子,先这样 - for (var i = 0; i < properties.Length; i++) + int index = 0; + foreach (var t in properties) { - mainExpression = mainExpression.Property(properties[i]); + if (mainExpression.Type.HasImplementedRawGeneric(typeof(IEnumerable<>))) + { + return ExpressionStudioEnumerable(left, mainExpression, DynamicLinq.Clone(), properties.Skip(index).ToArray()); + } + + mainExpression = mainExpression.Property(t); + index++; } left = left == null @@ -85,6 +86,32 @@ public static Expression ExpressionStudio(Expression left, DynamicLinqHelper Dyn return left; } + public static Expression ExpressionStudioEnumerable(Expression left, Expression property, DynamicLinqHelper dynamicLinq, string[] properties) + { + var realType = property.Type.GenericTypeArguments[0]; + + var parameter = Expression.Parameter(realType, "z"); + Expression mainExpression = property; + if (!properties.Any()) + { + throw new ApplicationException("条件表达式错误,属性为集合时,需要明确具体属性"); + } + + dynamicLinq.Left = string.Join(".", properties); + mainExpression = ExpressionStudio(null, dynamicLinq, parameter); + + var lambda = Expression.Lambda(mainExpression, parameter); + + mainExpression = Expression.Call(typeof(Enumerable), "Any", new[] { realType }, property, lambda); + + left = left == null + ? mainExpression + : ChangeLinkSymbol(dynamicLinq.LinkSymbol, left, mainExpression); + + return left; + } + + /// /// 将字符串装换成动态帮助类(内含递归) /// @@ -132,6 +159,7 @@ public static List SplitOperationSymbol(string str) { var outList = new List(); var tokens = Regex.Matches(FormatString(str), _pattern, RegexOptions.Compiled) + .Cast() .Select(m => m.Groups[1].Value.Trim()) .ToList(); @@ -139,7 +167,7 @@ public static List SplitOperationSymbol(string str) int lastOperatingSymbolIndex = -1; for (int i = tokens.Count - 1; i >= 0; i--) { - var token = tokens[i]; + var token = tokens[i].ToLower(); if (OperatingSystems.ContainsKey(token)) { @@ -189,6 +217,7 @@ public static List SplitOperationSymbol(string str) } } + outList.Reverse(); return outList; } @@ -259,7 +288,7 @@ public static Dictionary GetOperationSymbol() { foreach (var name in attr.Name.Split(';')) { - _operatingSystems.Add(name, (OperationSymbol)item.GetValue(null)); + _operatingSystems.Add(name.ToLower(), (OperationSymbol)item.GetValue(null)); } } } @@ -353,7 +382,14 @@ public static string FormatString(string str) public static readonly string _pattern = @"\s*(" + string.Join("|", new string[] { // operators and punctuation that are longer than one char: longest first - string.Join("|", new[] { "||", "&&", "==", "!=", "<=", ">=", "like", "contains" }.Select(Regex.Escape)), + string.Join("|", new[] + { + "||", "&&", "==", "!=", "<=", ">=", + "in", + "like", "contains", "%=", + "startslike", "startscontains", "%>", + "endlike", "endcontains", "%<", + }.Select(Regex.Escape)), @"""(?:\\.|[^""])*""", // string @"\d+(?:\.\d+)?", // number with optional decimal part @"\w+", // word @@ -365,7 +401,7 @@ public static string FormatString(string str) /// public static OperationSymbol ChangeOperationSymbol(string str) { - switch (str) + switch (str.ToLower()) { case "<": return OperationSymbol.LessThan; @@ -382,7 +418,16 @@ public static OperationSymbol ChangeOperationSymbol(string str) return OperationSymbol.NotEqual; case "contains": case "like": + case "%=": return OperationSymbol.Contains; + case "startslike": + case "startscontains": + case "%>": + return OperationSymbol.StartsContains; + case "endlike": + case "endcontains": + case "%<": + return OperationSymbol.EndContains; } throw new Exception("OperationSymbol IS NULL"); @@ -451,6 +496,10 @@ public static Expression ChangeOperationSymbol(OperationSymbol symbol, Expressio return key.NotEqual(Expression.Constant(newTypeRight)); case OperationSymbol.Contains: return key.Contains(Expression.Constant(newTypeRight)); + case OperationSymbol.StartsContains: + return key.StartContains(Expression.Constant(newTypeRight)); + case OperationSymbol.EndContains: + return key.EndContains(Expression.Constant(newTypeRight)); case OperationSymbol.In: var contains = typeof(Enumerable).GetMethods(BindingFlags.Static | BindingFlags.Public) .Single(x => x.Name == "Contains" && x.GetParameters().Length == 2) @@ -480,6 +529,17 @@ public class DynamicLinqHelper [Display(Name = "连接符")] public LinkSymbol LinkSymbol { get; set; } + + public DynamicLinqHelper Clone() + { + return new DynamicLinqHelper() + { + Left = this.Left, + Right = this.Right, + OperationSymbol = this.OperationSymbol, + LinkSymbol = this.LinkSymbol, + }; + } } /// @@ -504,9 +564,15 @@ public enum OperationSymbol [Display(Name = "in")] In, - [Display(Name = "like;contains")] + [Display(Name = "like;contains;%=")] Contains, + [Display(Name = "StartsLike;StartsContains;%>")] + StartsContains, + + [Display(Name = "EndLike;EndContains;%<")] + EndContains, + [Display(Name = ">")] GreaterThan, @@ -528,7 +594,7 @@ public enum OperationSymbol #endregion - + /// /// Queryable扩展 /// diff --git a/Blog.Core.Common/Helper/GenericTypeExtensions.cs b/Blog.Core.Common/Helper/GenericTypeExtensions.cs new file mode 100644 index 00000000..aa095e2a --- /dev/null +++ b/Blog.Core.Common/Helper/GenericTypeExtensions.cs @@ -0,0 +1,56 @@ +using System; +using System.Linq; + +namespace Blog.Core.Common.Helper +{ + public static class GenericTypeExtensions + { + /// + /// 判断类型是否实现某个泛型 + /// + /// 类型 + /// 泛型类型 + /// bool + public static bool HasImplementedRawGeneric(this Type type, Type generic) + { + // 检查接口类型 + var isTheRawGenericType = type.GetInterfaces().Any(IsTheRawGenericType); + if (isTheRawGenericType) return true; + + // 检查类型 + while (type != null && type != typeof(object)) + { + isTheRawGenericType = IsTheRawGenericType(type); + if (isTheRawGenericType) return true; + type = type.BaseType; + } + + return false; + + // 判断逻辑 + bool IsTheRawGenericType(Type t) => generic == (t.IsGenericType ? t.GetGenericTypeDefinition() : t); + } + + public static string GetGenericTypeName(this Type type) + { + var typeName = string.Empty; + + if (type.IsGenericType) + { + var genericTypes = string.Join(",", type.GetGenericArguments().Select(t => t.Name).ToArray()); + typeName = $"{type.Name.Remove(type.Name.IndexOf('`'))}<{genericTypes}>"; + } + else + { + typeName = type.Name; + } + + return typeName; + } + + public static string GetGenericTypeName(this object @object) + { + return @object.GetType().GetGenericTypeName(); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/NumberConverter.cs b/Blog.Core.Common/Helper/NumberConverter.cs new file mode 100644 index 00000000..27890faf --- /dev/null +++ b/Blog.Core.Common/Helper/NumberConverter.cs @@ -0,0 +1,174 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Helper +{ + /// + /// + /// 大数据json序列化重写 + /// + public sealed class NumberConverter : JsonConverter + { + /// + /// 转换成字符串的类型 + /// + private readonly NumberConverterShip _ship; + + /// + /// 大数据json序列化重写实例化 + /// + public NumberConverter() + { + _ship = (NumberConverterShip)0xFF; + } + + /// + /// 大数据json序列化重写实例化 + /// + /// 转换成字符串的类型 + public NumberConverter(NumberConverterShip ship) + { + _ship = ship; + } + + /// + /// + /// 确定此实例是否可以转换指定的对象类型。 + /// + /// 对象的类型。 + /// 如果此实例可以转换指定的对象类型,则为:true,否则为:false + public override bool CanConvert(Type objectType) + { + var typecode = Type.GetTypeCode(objectType.Name.Equals("Nullable`1") ? objectType.GetGenericArguments().First() : objectType); + switch (typecode) + { + case TypeCode.Decimal: + return (_ship & NumberConverterShip.Decimal) == NumberConverterShip.Decimal; + case TypeCode.Double: + return (_ship & NumberConverterShip.Double) == NumberConverterShip.Double; + case TypeCode.Int64: + return (_ship & NumberConverterShip.Int64) == NumberConverterShip.Int64; + case TypeCode.UInt64: + return (_ship & NumberConverterShip.UInt64) == NumberConverterShip.UInt64; + case TypeCode.Single: + return (_ship & NumberConverterShip.Single) == NumberConverterShip.Single; + default: return false; + } + } + + /// + /// + /// 读取对象的JSON表示。 + /// + /// 中读取。 + /// 对象的类型。 + /// 正在读取的对象的现有值。 + /// 调用的序列化器实例。 + /// 对象值。 + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + return AsType(reader.Value.ToString(), objectType); + } + + /// + /// 字符串格式数据转其他类型数据 + /// + /// 输入的字符串 + /// 目标格式 + /// 转换结果 + public static object AsType(string input, Type destinationType) + { + try + { + var converter = TypeDescriptor.GetConverter(destinationType); + if (converter.CanConvertFrom(typeof(string))) + { + return converter.ConvertFrom(null, null, input); + } + + converter = TypeDescriptor.GetConverter(typeof(string)); + if (converter.CanConvertTo(destinationType)) + { + return converter.ConvertTo(null, null, input, destinationType); + } + } + catch + { + return null; + } + return null; + } + + /// + /// + /// 写入对象的JSON表示形式。 + /// + /// 要写入的 。 + /// 要写入对象值 + /// 调用的序列化器实例。 + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + if (value == null) + { + writer.WriteNull(); + } + else + { + var objectType = value.GetType(); + var typeCode = Type.GetTypeCode(objectType.Name.Equals("Nullable`1") ? objectType.GetGenericArguments().First() : objectType); + switch (typeCode) + { + case TypeCode.Decimal: + writer.WriteValue(((decimal)value).ToString("f6")); + break; + case TypeCode.Double: + writer.WriteValue(((double)value).ToString("f4")); + break; + case TypeCode.Single: + writer.WriteValue(((float)value).ToString("f2")); + break; + default: + writer.WriteValue(value.ToString()); + break; + } + } + } + } + + /// + /// 转换成字符串的类型 + /// + [Flags] + public enum NumberConverterShip + { + /// + /// 长整数 + /// + Int64 = 1, + + /// + /// 无符号长整数 + /// + UInt64 = 2, + + /// + /// 浮点数 + /// + Single = 4, + + /// + /// 双精度浮点数 + /// + Double = 8, + + /// + /// 大数字 + /// + Decimal =16 + } +} diff --git a/Blog.Core.Common/Helper/RecursionHelper.cs b/Blog.Core.Common/Helper/RecursionHelper.cs index 9b27a37d..092a0678 100644 --- a/Blog.Core.Common/Helper/RecursionHelper.cs +++ b/Blog.Core.Common/Helper/RecursionHelper.cs @@ -8,7 +8,7 @@ namespace Blog.Core.Common.Helper /// public static class RecursionHelper { - public static void LoopToAppendChildren(List all, PermissionTree curItem, int pid, bool needbtn) + public static void LoopToAppendChildren(List all, PermissionTree curItem, long pid, bool needbtn) { var subItems = all.Where(ee => ee.Pid == curItem.value).ToList(); @@ -52,7 +52,7 @@ public static void LoopToAppendChildren(List all, PermissionTree LoopToAppendChildren(all, subItem, pid, needbtn); } } - public static void LoopToAppendChildren(List all, DepartmentTree curItem, int pid) + public static void LoopToAppendChildren(List all, DepartmentTree curItem, long pid) { var subItems = all.Where(ee => ee.Pid == curItem.value).ToList(); @@ -117,8 +117,8 @@ public static void LoopToAppendChildrenT(List all, T curItem, string paren public class PermissionTree { - public int value { get; set; } - public int Pid { get; set; } + public long value { get; set; } + public long Pid { get; set; } public string label { get; set; } public int order { get; set; } public bool isbtn { get; set; } @@ -139,8 +139,8 @@ public class DepartmentTree public class NavigationBar { - public int id { get; set; } - public int pid { get; set; } + public long id { get; set; } + public long pid { get; set; } public int order { get; set; } public string name { get; set; } public bool IsHide { get; set; } = false; @@ -165,8 +165,8 @@ public class NavigationBarMeta public class NavigationBarPro { - public int id { get; set; } - public int parentId { get; set; } + public long id { get; set; } + public long parentId { get; set; } public int order { get; set; } public string name { get; set; } public bool IsHide { get; set; } = false; diff --git a/Blog.Core.Common/Helper/SM/SM4.cs b/Blog.Core.Common/Helper/SM/SM4.cs index 4b1f1996..b4aa3ebf 100644 --- a/Blog.Core.Common/Helper/SM/SM4.cs +++ b/Blog.Core.Common/Helper/SM/SM4.cs @@ -10,7 +10,9 @@ public class SM4 private long GET_ULONG_BE(SByte[] b, int i) { +#pragma warning disable CS0675 // 对进行了带符号扩展的操作数使用了按位或运算符 long n2 = (b[i] & 0xFF) << 24 | (b[(i + 1)] & 0xFF) << 16 | (b[(i + 2)] & 0xFF) << 8 | b[(i + 3)] & 0xFF & 0xFFFFFFFF; +#pragma warning restore CS0675 // 对进行了带符号扩展的操作数使用了按位或运算符 return n2; } @@ -207,7 +209,6 @@ public SByte[] sm4_crypt_ecb(SM4_Context ctx, SByte[] input) int length = input.Length; SByte[] bins = new SByte[length]; SByte[] bous = new SByte[length]; - SByte[] output = null; Array.Copy(input, 0, bins, 0, length); diff --git a/Blog.Core.Common/Helper/UtilConvert.cs b/Blog.Core.Common/Helper/UtilConvert.cs index 282989e3..ea3b7c05 100644 --- a/Blog.Core.Common/Helper/UtilConvert.cs +++ b/Blog.Core.Common/Helper/UtilConvert.cs @@ -43,6 +43,18 @@ public static int ObjToInt(this object thisValue, int errorValue) return errorValue; } + public static long ObjToLong(this object thisValue) + { + long reval = 0; + if (thisValue == null) return 0; + if (thisValue != DBNull.Value && long.TryParse(thisValue.ToString(), out reval)) + { + return reval; + } + + return reval; + } + /// /// /// diff --git a/Blog.Core.Common/HttpContextUser/AspNetUser.cs b/Blog.Core.Common/HttpContextUser/AspNetUser.cs index e4e27d87..b37e4a24 100644 --- a/Blog.Core.Common/HttpContextUser/AspNetUser.cs +++ b/Blog.Core.Common/HttpContextUser/AspNetUser.cs @@ -5,6 +5,7 @@ using Blog.Core.Model; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; +using SqlSugar.Extensions; namespace Blog.Core.Common.HttpContextUser { @@ -40,6 +41,7 @@ private string GetName() } public int ID => GetClaimValueByType("jti").FirstOrDefault().ObjToInt(); + public long TenantId => GetClaimValueByType("TenantId").FirstOrDefault().ObjToLong(); public bool IsAuthenticated() { @@ -87,11 +89,9 @@ public IEnumerable GetClaimsIdentity() public List GetClaimValueByType(string ClaimType) { - return (from item in GetClaimsIdentity() where item.Type == ClaimType select item.Value).ToList(); - } } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/HttpContextUser/IUser.cs b/Blog.Core.Common/HttpContextUser/IUser.cs index beef3b7d..3849bd38 100644 --- a/Blog.Core.Common/HttpContextUser/IUser.cs +++ b/Blog.Core.Common/HttpContextUser/IUser.cs @@ -8,6 +8,7 @@ public interface IUser { string Name { get; } int ID { get; } + long TenantId { get; } bool IsAuthenticated(); IEnumerable GetClaimsIdentity(); List GetClaimValueByType(string ClaimType); @@ -17,4 +18,4 @@ public interface IUser MessageModel MessageModel { get; set; } } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index da313e3c..cb6acc59 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -1,8 +1,11 @@ using Blog.Core.Common.DB; +using Blog.Core.Common.Extensions; using Blog.Core.Common.Helper; using Blog.Core.Model.Models; +using Blog.Core.Model.Tenants; using Magicodes.ExporterAndImporter.Excel; using Newtonsoft.Json; +using SqlSugar; using System; using System.Collections.Generic; using System.IO; @@ -96,7 +99,9 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) var modelTypes = referencedAssemblies .SelectMany(a => a.DefinedTypes) .Select(type => type.AsType()) - .Where(x => x.IsClass && x.Namespace != null && x.Namespace.Equals("Blog.Core.Model.Models")).ToList(); + .Where(x => x.IsClass && x.Namespace is "Blog.Core.Model.Models") + .Where(s => !s.IsDefined(typeof(MultiTenantAttribute), false)) + .ToList(); modelTypes.ForEach(t => { // 这里只支持添加表,不支持删除 @@ -104,14 +109,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!myContext.Db.DbMaintenance.IsAnyTable(t.Name)) { Console.WriteLine(t.Name); - myContext.Db.CodeFirst.InitTables(t); + myContext.Db.CodeFirst.SplitTables().InitTables(t); } }); ConsoleHelper.WriteSuccessLine($"Tables created successfully!"); Console.WriteLine(); - - if (AppSettings.app(new string[] { "AppSettings", "SeedDBDataEnabled" }).ObjToBool()) { JsonSerializerSettings setting = new JsonSerializerSettings(); @@ -135,6 +138,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) var importer = new ExcelImporter(); #region BlogArticle + if (!await myContext.Db.Queryable().AnyAsync()) { myContext.GetEntityDB().InsertRange(JsonHelper.ParseFormByJson>(FileHelper.ReadFile(string.Format(SeedDataFolder, "BlogArticle"), Encoding.UTF8))); @@ -144,15 +148,14 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:BlogArticle already exists..."); } + #endregion #region Modules + if (!await myContext.Db.Queryable().AnyAsync()) { - - - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Modules"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); @@ -162,31 +165,39 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:Modules already exists..."); } + #endregion #region Permission + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Permission"), Encoding.UTF8), setting); - myContext.GetEntityDB().InsertRange(data); + foreach (var item in data) + { + Console.WriteLine($"{item.Name}:{item.Id}"); + myContext.GetEntityDB().Insert(item); + } Console.WriteLine("Table:Permission created success!"); } else { Console.WriteLine("Table:Permission already exists..."); } + #endregion #region Role + if (!await myContext.Db.Queryable().AnyAsync()) { - //var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Role"), Encoding.UTF8), setting); - using var stream = new FileStream(Path.Combine(WebRootPath, "BlogCore.Data.excel", "Role.xlsx"), FileMode.Open); - var result = await importer.Import(stream); - var data = result.Data.ToList(); + var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Role"), Encoding.UTF8), setting); + //using var stream = new FileStream(Path.Combine(WebRootPath, "BlogCore.Data.excel", "Role.xlsx"), FileMode.Open); + //var result = await importer.Import(stream); + //var data = result.Data.ToList(); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:Role created success!"); @@ -195,25 +206,33 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:Role already exists..."); } + #endregion #region RoleModulePermission + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "RoleModulePermission"), Encoding.UTF8), setting); - myContext.GetEntityDB().InsertRange(data); + foreach (var item in data) + { + Console.WriteLine($"{item.Id}"); + myContext.GetEntityDB().Insert(item); + } Console.WriteLine("Table:RoleModulePermission created success!"); } else { Console.WriteLine("Table:RoleModulePermission already exists..."); } + #endregion #region Topic + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Topic"), Encoding.UTF8), setting); @@ -225,10 +244,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:Topic already exists..."); } + #endregion #region TopicDetail + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "TopicDetail"), Encoding.UTF8), setting); @@ -240,16 +261,15 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:TopicDetail already exists..."); } + #endregion #region UserRole + if (!await myContext.Db.Queryable().AnyAsync()) { - //var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "UserRole"), Encoding.UTF8), setting); - using var stream = new FileStream(Path.Combine(WebRootPath, "BlogCore.Data.excel", "UserRole.xlsx"), FileMode.Open); - var result = await importer.Import(stream); - var data = result.Data.ToList(); + var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "UserRole"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:UserRole created success!"); @@ -258,16 +278,15 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:UserRole already exists..."); } + #endregion #region sysUserInfo + if (!await myContext.Db.Queryable().AnyAsync()) { - //var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "sysUserInfo"), Encoding.UTF8), setting); - using var stream = new FileStream(Path.Combine(WebRootPath, "BlogCore.Data.excel", "SysUserInfo.xlsx"), FileMode.Open); - var result = await importer.Import(stream); - var data = result.Data.ToList(); + var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "sysUserInfo"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:sysUserInfo created success!"); @@ -276,10 +295,12 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:sysUserInfo already exists..."); } + #endregion #region TasksQz + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "TasksQz"), Encoding.UTF8), setting); @@ -291,9 +312,24 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:TasksQz already exists..."); } + + #endregion + + #region TasksLog + + if (!await myContext.Db.Queryable().AnyAsync()) + { + Console.WriteLine("Table:TasksLog created success!"); + } + else + { + Console.WriteLine("Table:TasksLog already exists..."); + } + #endregion #region Department + if (!await myContext.Db.Queryable().AnyAsync()) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Department"), Encoding.UTF8), setting); @@ -305,13 +341,16 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { Console.WriteLine("Table:Department already exists..."); } + #endregion + //种子初始化 + await SeedDataAsync(myContext.Db); + ConsoleHelper.WriteSuccessLine($"Done seeding database!"); } Console.WriteLine(); - } catch (Exception ex) { @@ -321,5 +360,225 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) "3、其他错误:" + ex.Message); } } + + /// + /// 种子初始化数据 + /// + /// + /// + private static async Task SeedDataAsync(ISqlSugarClient db) + { + // 获取所有种子配置-初始化数据 + var seedDataTypes = AssemblysExtensions.GetAllAssemblies().SelectMany(s => s.DefinedTypes) + .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass) + .Where(u => + { + var esd = u.GetInterfaces().FirstOrDefault(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>))); + if (esd is null) + { + return false; + } + + var eType = esd.GenericTypeArguments[0]; + if (eType.GetCustomAttribute() is null) + { + return true; + } + + return false; + }); + + if (!seedDataTypes.Any()) return; + foreach (var seedType in seedDataTypes) + { + dynamic instance = Activator.CreateInstance(seedType); + //初始化数据 + { + var seedData = instance.InitSeedData(); + if (seedData != null && Enumerable.Any(seedData)) + { + var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); + var entity = db.EntityMaintenance.GetEntityInfo(entityType); + + if (!await db.Queryable(entity.DbTableName, "").AnyAsync()) + { + await db.Insertable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + Console.WriteLine($"Table:{entity.DbTableName} init success!"); + } + } + } + + //种子数据 + { + var seedData = instance.SeedData(); + if (seedData != null && Enumerable.Any(seedData)) + { + var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); + var entity = db.EntityMaintenance.GetEntityInfo(entityType); + + await db.Storageable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + Console.WriteLine($"Table:{entity.DbTableName} seedData success!"); + } + } + + //自定义处理 + { + await instance.CustomizeSeedData(db); + } + } + } + + + /// + /// 初始化 多租户 + /// + /// + /// + public static async Task TenantSeedAsync(MyContext myContext) + { + var tenants = await myContext.Db.Queryable().Where(s => s.TenantType == TenantTypeEnum.Db).ToListAsync(); + if (tenants.Any()) + { + Console.WriteLine($@"Init Multi Tenant Db"); + foreach (var tenant in tenants) + { + Console.WriteLine($@"Init Multi Tenant Db : {tenant.ConfigId}/{tenant.Name}"); + await InitTenantSeedAsync(myContext.Db.AsTenant(), tenant.GetConnectionConfig()); + } + } + + tenants = await myContext.Db.Queryable().Where(s => s.TenantType == TenantTypeEnum.Tables).ToListAsync(); + if (tenants.Any()) + { + await InitTenantSeedAsync(myContext, tenants); + } + } + + #region 多租户 多表 初始化 + + private static async Task InitTenantSeedAsync(MyContext myContext, List tenants) + { + ConsoleHelper.WriteInfoLine($"Init Multi Tenant Tables : {myContext.Db.CurrentConnectionConfig.ConfigId}"); + + // 获取所有实体表-初始化租户业务表 + var entityTypes = TenantUtil.GetTenantEntityTypes(TenantTypeEnum.Tables); + if (!entityTypes.Any()) return; + + foreach (var sysTenant in tenants) + { + foreach (var entityType in entityTypes) + { + myContext.Db.CodeFirst + .As(entityType, entityType.GetTenantTableName(myContext.Db, sysTenant)) + .InitTables(entityType); + + Console.WriteLine($@"Init Tables:{entityType.GetTenantTableName(myContext.Db, sysTenant)}"); + } + + myContext.Db.SetTenantTable(sysTenant.Id.ToString()); + //多租户初始化种子数据 + await TenantSeedDataAsync(myContext.Db, TenantTypeEnum.Tables); + } + + ConsoleHelper.WriteSuccessLine($"Init Multi Tenant Tables : {myContext.Db.CurrentConnectionConfig.ConfigId} created successfully!"); + } + + #endregion + + #region 多租户 多库 初始化 + + /// + /// 初始化多库 + /// + /// + /// + /// + public static async Task InitTenantSeedAsync(ITenant itenant, ConnectionConfig config) + { + itenant.RemoveConnection(config.ConfigId); + itenant.AddConnection(config); + + var db = itenant.GetConnectionScope(config.ConfigId); + + db.DbMaintenance.CreateDatabase(); + ConsoleHelper.WriteSuccessLine($"Init Multi Tenant Db : {config.ConfigId} Database created successfully!"); + + Console.WriteLine($@"Init Multi Tenant Db : {config.ConfigId} Create Tables"); + + // 获取所有实体表-初始化租户业务表 + var entityTypes = TenantUtil.GetTenantEntityTypes(TenantTypeEnum.Db); + if (!entityTypes.Any()) return; + foreach (var entityType in entityTypes) + { + var splitTable = entityType.GetCustomAttribute(); + if (splitTable == null) + db.CodeFirst.InitTables(entityType); + else + db.CodeFirst.SplitTables().InitTables(entityType); + + Console.WriteLine(entityType.Name); + } + + //多租户初始化种子数据 + await TenantSeedDataAsync(db, TenantTypeEnum.Db); + } + + #endregion + + private static async Task TenantSeedDataAsync(ISqlSugarClient db, TenantTypeEnum tenantType) + { + // 获取所有种子配置-初始化数据 + var seedDataTypes = AssemblysExtensions.GetAllAssemblies().SelectMany(s => s.DefinedTypes) + .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass) + .Where(u => + { + var esd = u.GetInterfaces().FirstOrDefault(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>))); + if (esd is null) + { + return false; + } + + var eType = esd.GenericTypeArguments[0]; + return eType.IsTenantEntity(tenantType); + }); + if (!seedDataTypes.Any()) return; + foreach (var seedType in seedDataTypes) + { + dynamic instance = Activator.CreateInstance(seedType); + //初始化数据 + { + var seedData = instance.InitSeedData(); + if (seedData != null && Enumerable.Any(seedData)) + { + var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); + var entity = db.EntityMaintenance.GetEntityInfo(entityType); + + if (!await db.Queryable(entity.DbTableName, "").AnyAsync()) + { + await db.Insertable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + Console.WriteLine($"Table:{entity.DbTableName} init success!"); + } + } + } + + //种子数据 + { + var seedData = instance.SeedData(); + if (seedData != null && Enumerable.Any(seedData)) + { + var entityType = seedType.GetInterfaces().First().GetGenericArguments().First(); + var entity = db.EntityMaintenance.GetEntityInfo(entityType); + + await db.Storageable(Enumerable.ToList(seedData)).ExecuteCommandAsync(); + Console.WriteLine($"Table:{entity.DbTableName} seedData success!"); + } + } + + //自定义处理 + { + await instance.CustomizeSeedData(db); + } + } + } } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/IEntitySeedData.cs b/Blog.Core.Common/Seed/IEntitySeedData.cs new file mode 100644 index 00000000..3e2f4859 --- /dev/null +++ b/Blog.Core.Common/Seed/IEntitySeedData.cs @@ -0,0 +1,36 @@ +using SqlSugar; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Seed; + +/// +/// 种子数据 接口 +/// +/// +public interface IEntitySeedData + where T : class, new() +{ + /// + /// 初始化种子数据
    + /// 只要表不存在数据,程序启动就会自动初始化 + ///
    + /// + IEnumerable InitSeedData(); + + /// + /// 种子数据
    + /// 存在不操作、不存在Insert
    + /// 适合系统内置数据,项目开发后续增加内置数据 + ///
    + /// + IEnumerable SeedData(); + + /// + /// 自定义操作
    + /// 以上满不足了,可以自己编写 + ///
    + /// + /// + Task CustomizeSeedData(ISqlSugarClient db); +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/BusinessDataSeedData.cs b/Blog.Core.Common/Seed/SeedData/BusinessDataSeedData.cs new file mode 100644 index 00000000..361cd725 --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/BusinessDataSeedData.cs @@ -0,0 +1,79 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Blog.Core.Model.Models; +using SqlSugar; + +namespace Blog.Core.Common.Seed.SeedData; + +/// +/// 初始化 业务数据 +/// +public class BusinessDataSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return new[] + { + new BusinessTable() + { + Id = 1, + TenantId = 1000001, + Name = "张三的数据01", + Amount = 150, + IsDeleted = true, + }, + new BusinessTable() + { + Id = 2, + TenantId = 1000001, + Name = "张三的数据02", + Amount = 200, + }, + new BusinessTable() + { + Id = 3, + TenantId = 1000001, + Name = "张三的数据03", + Amount = 250, + }, + new BusinessTable() + { + Id = 4, + TenantId = 1000002, + Name = "李四的数据01", + Amount = 300, + }, + new BusinessTable() + { + Id = 5, + TenantId = 1000002, + Name = "李四的数据02", + Amount = 500, + }, + new BusinessTable() + { + Id = 6, + TenantId = 0, + Name = "公共数据01", + Amount = 16600, + }, + new BusinessTable() + { + Id = 7, + TenantId = 0, + Name = "公共数据02", + Amount = 19800, + }, + }; + } + + public IEnumerable SeedData() + { + return default; + } + + public Task CustomizeSeedData(ISqlSugarClient db) + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/MultiBusinessDataSeedData.cs b/Blog.Core.Common/Seed/SeedData/MultiBusinessDataSeedData.cs new file mode 100644 index 00000000..4ca1a7dd --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/MultiBusinessDataSeedData.cs @@ -0,0 +1,38 @@ +using Blog.Core.Model.Models; +using SqlSugar; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Seed.SeedData; + +public class MultiBusinessDataSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return new List() + { + new() + { + Id = 1001, + Name = "业务数据1", + Amount = 100, + }, + new() + { + Id = 1002, + Name = "业务数据2", + Amount = 1000, + }, + }; + } + + public IEnumerable SeedData() + { + return default; + } + + public Task CustomizeSeedData(ISqlSugarClient db) + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/MultiBusinessSubDataSeedData.cs b/Blog.Core.Common/Seed/SeedData/MultiBusinessSubDataSeedData.cs new file mode 100644 index 00000000..e73d4603 --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/MultiBusinessSubDataSeedData.cs @@ -0,0 +1,38 @@ +using Blog.Core.Model.Models; +using SqlSugar; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Seed.SeedData; + +public class MultiBusinessSubDataSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return new List() + { + new() + { + Id = 100, + MainId = 1001, + Memo = "子数据", + }, + new() + { + Id = 1001, + MainId = 1001, + Memo = "子数据2", + }, + }; + } + + public IEnumerable SeedData() + { + return default; + } + + public Task CustomizeSeedData(ISqlSugarClient db) + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/SubBusinessDataSeedData.cs b/Blog.Core.Common/Seed/SeedData/SubBusinessDataSeedData.cs new file mode 100644 index 00000000..be8462e8 --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/SubBusinessDataSeedData.cs @@ -0,0 +1,70 @@ +using Blog.Core.Model.Models; +using SqlSugar; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Blog.Core.Common.Seed.SeedData; + +public class SubBusinessDataSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return default; + } + + public IEnumerable SeedData() + { + return default; + } + + public async Task CustomizeSeedData(ISqlSugarClient db) + { + //初始化分库数据 + //只是用于测试 + if (db.CurrentConnectionConfig.ConfigId == "Tenant_3") + { + if (!await db.Queryable().AnyAsync()) + { + await db.Insertable(new List() + { + new() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "王五业务数据1", + Amount = 100, + }, + new() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "王五业务数据2", + Amount = 1000, + }, + }).ExecuteReturnSnowflakeIdListAsync(); + } + } + else if (db.CurrentConnectionConfig.ConfigId == "Tenant_4") + { + if (!await db.Queryable().AnyAsync()) + { + await db.Insertable(new List() + { + new() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "赵六业务数据1", + Amount = 50, + }, + new() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "赵六业务数据2", + Amount = 60, + }, + }).ExecuteReturnSnowflakeIdListAsync(); + } + } + + + await Task.Delay(1); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs b/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs new file mode 100644 index 00000000..f33f83b2 --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/TenantSeedData.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using Blog.Core.Common.DB; +using Blog.Core.Model.Models; +using Blog.Core.Model.Tenants; +using SqlSugar; + +namespace Blog.Core.Common.Seed.SeedData; + +/// +/// 租户 种子数据 +/// +public class TenantSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return new[] + { + new SysTenant() + { + Id = 1000001, + ConfigId = "Tenant_1", + Name = "张三", + TenantType = TenantTypeEnum.Id + }, + new SysTenant() + { + Id = 1000002, + ConfigId = "Tenant_2", + Name = "李四", + TenantType = TenantTypeEnum.Id + }, + new SysTenant() + { + Id = 1000003, + ConfigId = "Tenant_3", + Name = "王五", + TenantType = TenantTypeEnum.Db, + DbType = DbType.Sqlite, + Connection = $"DataSource=" + Path.Combine(Environment.CurrentDirectory, "WangWu.db"), + }, + new SysTenant() + { + Id = 1000004, + ConfigId = "Tenant_4", + Name = "赵六", + TenantType = TenantTypeEnum.Db, + DbType = DbType.Sqlite, + Connection = $"DataSource=" + Path.Combine(Environment.CurrentDirectory, "ZhaoLiu.db"), + }, + new SysTenant() + { + Id = 1000005, + ConfigId = "Tenant_5", + Name = "孙七", + TenantType = TenantTypeEnum.Tables, + }, + }; + } + + public IEnumerable SeedData() + { + return default; + } + + public Task CustomizeSeedData(ISqlSugarClient db) + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs b/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs new file mode 100644 index 00000000..414a506b --- /dev/null +++ b/Blog.Core.Common/Seed/SeedData/UserInfoSeedData.cs @@ -0,0 +1,80 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Blog.Core.Model.Models; +using SqlSugar; + +namespace Blog.Core.Common.Seed.SeedData; + +public class UserInfoSeedData : IEntitySeedData +{ + public IEnumerable InitSeedData() + { + return default; + } + + public IEnumerable SeedData() + { + return default; + } + + public async Task CustomizeSeedData(ISqlSugarClient db) + { + var data = new List() + { + new SysUserInfo() + { + Id = 10001, + LoginName = "zhangsan", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "张三", + TenantId = 1000001, //租户Id + }, + new SysUserInfo() + { + Id = 10002, + LoginName = "lisi", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "李四", + TenantId = 1000002, //租户Id + }, + new SysUserInfo() + { + Id = 10003, + LoginName = "wangwu", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "王五", + TenantId = 1000003, //租户Id + }, + new SysUserInfo() + { + Id = 10004, + LoginName = "zhaoliu", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "赵六", + TenantId = 1000004, //租户Id + }, + new SysUserInfo() + { + Id = 10005, + LoginName = "sunqi", + LoginPWD = "E10ADC3949BA59ABBE56E057F20F883E", + Name = "孙七", + TenantId = 1000005, //租户Id + }, + }; + + var names = data.Select(s => s.LoginName).ToList(); + names = await db.Queryable() + .Where(s => names.Contains(s.LoginName)) + .Select(s => s.LoginName).ToListAsync(); + + var sysUserInfos = data.Where(s => !names.Contains(s.LoginName)).ToList(); + if (sysUserInfos.Any()) + { + await db.Insertable(sysUserInfos).ExecuteReturnIdentityAsync(); + } + + await Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.EventBus/Blog.Core.EventBus.csproj b/Blog.Core.EventBus/Blog.Core.EventBus.csproj index 070c0a48..09d4e6a2 100644 --- a/Blog.Core.EventBus/Blog.Core.EventBus.csproj +++ b/Blog.Core.EventBus/Blog.Core.EventBus.csproj @@ -12,7 +12,7 @@ - + diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 50969b05..451d24f1 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -21,7 +21,7 @@ - + diff --git a/Blog.Core.Extensions/HostedService/ConsulHostedService.cs b/Blog.Core.Extensions/HostedService/ConsulHostedService.cs new file mode 100644 index 00000000..df866e6a --- /dev/null +++ b/Blog.Core.Extensions/HostedService/ConsulHostedService.cs @@ -0,0 +1,71 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Consul; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Blog.Core.Extensions.HostedService; + +public class ConsulHostedService : IHostedService +{ + private readonly IConfiguration _configuration; + private readonly IHostApplicationLifetime _hostApplicationLifetime; + private readonly ILogger _logger; + + public ConsulHostedService(IConfiguration configuration, IHostApplicationLifetime hostApplicationLifetime, ILogger logger) + { + _configuration = configuration; + _hostApplicationLifetime = hostApplicationLifetime; + _logger = logger; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Start Consul Service!"); + await DoWork(); + } + + public async Task DoWork() + { + if (_configuration["Middleware:Consul:Enabled"].ObjToBool()) + { + var consulClient = new ConsulClient(c => + { + //consul地址 + c.Address = new Uri(_configuration["ConsulSetting:ConsulAddress"]); + }); + + var registration = new AgentServiceRegistration() + { + ID = Guid.NewGuid().ToString(),//服务实例唯一标识 + Name = _configuration["ConsulSetting:ServiceName"],//服务名 + Address = _configuration["ConsulSetting:ServiceIP"], //服务IP + Port = int.Parse(_configuration["ConsulSetting:ServicePort"]),//服务端口 + Check = new AgentServiceCheck() + { + DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//服务启动多久后注册 + Interval = TimeSpan.FromSeconds(10),//健康检查时间间隔 + HTTP = $"http://{_configuration["ConsulSetting:ServiceIP"]}:{_configuration["ConsulSetting:ServicePort"]}{_configuration["ConsulSetting:ServiceHealthCheck"]}",//健康检查地址 + Timeout = TimeSpan.FromSeconds(5)//超时时间 + } + }; + + //服务注册 + await consulClient.Agent.ServiceRegister(registration); + + //应用程序终止时,取消注册 + _hostApplicationLifetime.ApplicationStopping.Register(async () => + { + await consulClient.Agent.ServiceDeregister(registration.ID); + }); + } + } + + public Task StopAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Stop Consul Service!"); + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/HostedService/EventBusHostedService.cs b/Blog.Core.Extensions/HostedService/EventBusHostedService.cs new file mode 100644 index 00000000..7f18ed19 --- /dev/null +++ b/Blog.Core.Extensions/HostedService/EventBusHostedService.cs @@ -0,0 +1,45 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Blog.Core.Common; +using Blog.Core.EventBus; +using Blog.Core.EventBus.EventHandling; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Blog.Core.Extensions.HostedService; + +public class EventBusHostedService : IHostedService +{ + private readonly IServiceProvider _serviceProvider; + private readonly ILogger _logger; + + public EventBusHostedService(IServiceProvider serviceProvider, ILogger logger) + { + _serviceProvider = serviceProvider; + _logger = logger; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Start EventBus Service!"); + await DoWork(); + } + + private Task DoWork() + { + if (AppSettings.app(new string[] { "EventBus", "Enabled" }).ObjToBool()) + { + var eventBus = _serviceProvider.GetRequiredService(); + eventBus.Subscribe(); + } + return Task.CompletedTask; + } + + public Task StopAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Stop EventBus Service!"); + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/HostedService/QuartzJobHostedService.cs b/Blog.Core.Extensions/HostedService/QuartzJobHostedService.cs new file mode 100644 index 00000000..d8f4d602 --- /dev/null +++ b/Blog.Core.Extensions/HostedService/QuartzJobHostedService.cs @@ -0,0 +1,67 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Blog.Core.Common; +using Blog.Core.IServices; +using Blog.Core.Tasks; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Blog.Core.Extensions.HostedService; + +public class QuartzJobHostedService : IHostedService +{ + private readonly ITasksQzServices _tasksQzServices; + private readonly ISchedulerCenter _schedulerCenter; + private readonly ILogger _logger; + + public QuartzJobHostedService(ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, ILogger logger) + { + _tasksQzServices = tasksQzServices; + _schedulerCenter = schedulerCenter; + _logger = logger; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Start QuartzJob Service!"); + await DoWork(); + } + + private async Task DoWork() + { + try + { + if (AppSettings.app("Middleware", "QuartzNetJob", "Enabled").ObjToBool()) + { + var allQzServices = await _tasksQzServices.Query(); + foreach (var item in allQzServices) + { + if (item.IsStart) + { + var result = await _schedulerCenter.AddScheduleJobAsync(item); + if (result.success) + { + Console.WriteLine($"QuartzNetJob{item.Name}启动成功!"); + } + else + { + Console.WriteLine($"QuartzNetJob{item.Name}启动失败!错误信息:{result.msg}"); + } + } + } + } + } + catch (Exception e) + { + _logger.LogError(e, "An error was reported when starting the job service."); + throw; + } + } + + public Task StopAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Stop QuartzJob Service!"); + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs b/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs new file mode 100644 index 00000000..868d750e --- /dev/null +++ b/Blog.Core.Extensions/HostedService/SeedDataHostedService.cs @@ -0,0 +1,58 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Blog.Core.Common; +using Blog.Core.Common.Seed; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace Blog.Core.Extensions; + +public sealed class SeedDataHostedService : IHostedService +{ + private readonly MyContext _myContext; + private readonly ILogger _logger; + private readonly string _webRootPath; + + public SeedDataHostedService( + MyContext myContext, + IWebHostEnvironment webHostEnvironment, + ILogger logger) + { + _myContext = myContext; + _logger = logger; + _webRootPath = webHostEnvironment.WebRootPath; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Start Initialization Db Seed Service!"); + await DoWork(); + } + + private async Task DoWork() + { + try + { + if (AppSettings.app("AppSettings", "SeedDBEnabled").ObjToBool() || AppSettings.app("AppSettings", "SeedDBDataEnabled").ObjToBool()) + { + await DBSeed.SeedAsync(_myContext, _webRootPath); + + //多租户 同步 + await DBSeed.TenantSeedAsync(_myContext); + } + } + catch (Exception ex) + { + _logger.LogError(ex, "Error occured seeding the Database."); + throw; + } + } + + public Task StopAsync(CancellationToken cancellationToken) + { + _logger.LogInformation("Stop Initialization Db Seed Service!"); + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs index 6ff8d044..4c61ed3b 100644 --- a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs @@ -7,7 +7,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Newtonsoft.Json; -using Ubiety.Dns.Core.Common; namespace Blog.Core.Extensions.Middlewares { diff --git a/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs b/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs index 1aae5ed5..4ae98830 100644 --- a/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/EventBusSetup.cs @@ -1,11 +1,9 @@ -using Autofac; +using System; +using Autofac; using Blog.Core.Common; using Blog.Core.EventBus; -using Blog.Core.EventBus.EventHandling; -using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using System; namespace Blog.Core.Extensions { @@ -43,23 +41,12 @@ public static void AddEventBusSetup(this IServiceCollection services) return new EventBusRabbitMQ(rabbitMQPersistentConnection, logger, iLifetimeScope, eventBusSubcriptionsManager, subscriptionClientName, retryCount); }); } - if(AppSettings.app(new string[] { "Kafka", "Enabled" }).ObjToBool()) + if (AppSettings.app(new string[] { "Kafka", "Enabled" }).ObjToBool()) { services.AddHostedService(); services.AddSingleton(); } } } - - - public static void ConfigureEventBus(this IApplicationBuilder app) - { - if (AppSettings.app(new string[] { "EventBus", "Enabled" }).ObjToBool()) - { - var eventBus = app.ApplicationServices.GetRequiredService(); - - eventBus.Subscribe(); - } - } } -} +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/InitializationHostServiceSetup.cs b/Blog.Core.Extensions/ServiceExtensions/InitializationHostServiceSetup.cs new file mode 100644 index 00000000..fea6a5ad --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/InitializationHostServiceSetup.cs @@ -0,0 +1,24 @@ +using System; +using Blog.Core.Extensions.HostedService; +using Microsoft.Extensions.DependencyInjection; + +namespace Blog.Core.Extensions; + +public static class InitializationHostServiceSetup +{ + /// + /// 应用初始化服务注入 + /// + /// + public static void AddInitializationHostServiceSetup(this IServiceCollection services) + { + if (services is null) + { + ArgumentNullException.ThrowIfNull(nameof(services)); + } + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index b3eb4bdc..3ecf224a 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using Blog.Core.Common.DB.Aop; namespace Blog.Core.Extensions { @@ -101,7 +102,21 @@ public static void AddSqlsugarSetup(this IServiceCollection services) } ); }); - return new SqlSugarScope(listConfig); + return new SqlSugarScope(listConfig, db => + { + listConfig.ForEach(config => + { + var dbProvider = db.GetConnectionScope((string)config.ConfigId); + + // 数据审计 + dbProvider.Aop.DataExecuting = SqlSugarAop.DataExecuting; + + // 配置实体假删除过滤器 + RepositorySetting.SetDeletedEntityFilter(dbProvider); + // 配置实体数据权限 + RepositorySetting.SetTenantEntityFilter(dbProvider); + }); + }); }); } diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index 47398520..f784da5c 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -15,9 +15,9 @@ - - - + + + diff --git a/Blog.Core.Gateway/Program.cs b/Blog.Core.Gateway/Program.cs index 1ba46816..9c1ba1ce 100644 --- a/Blog.Core.Gateway/Program.cs +++ b/Blog.Core.Gateway/Program.cs @@ -15,7 +15,9 @@ public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, config) => { - config.AddJsonFile("ocelot.json", optional: true, reloadOnChange: true) + config.AddJsonFile("appsettings.gw.json", optional: true, reloadOnChange: false) + .AddJsonFile($"appsettings.gw.{hostingContext.HostingEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: false) + .AddJsonFile("ocelot.json", optional: true, reloadOnChange: true) .AddJsonFile($"ocelot.{hostingContext.HostingEnvironment.EnvironmentName}.json", true, true); }) .ConfigureWebHostDefaults(webBuilder => diff --git a/Blog.Core.Gateway/appsettings.gw.Development.json b/Blog.Core.Gateway/appsettings.gw.Development.json new file mode 100644 index 00000000..8983e0fc --- /dev/null +++ b/Blog.Core.Gateway/appsettings.gw.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/Blog.Core.Gateway/appsettings.gw.json b/Blog.Core.Gateway/appsettings.gw.json new file mode 100644 index 00000000..33b99ee8 --- /dev/null +++ b/Blog.Core.Gateway/appsettings.gw.json @@ -0,0 +1,103 @@ +{ + "Logging": { + "IncludeScopes": false, + "Debug": { + "LogLevel": { + "Default": "Warning" + } + }, + "Console": { + "LogLevel": { + "Default": "Warning", + "Microsoft.Hosting.Lifetime": "Debug" + } + } + }, + "AllowedHosts": "*", + "Startup": { + "Cors": { + "PolicyName": "CorsIpAccess", + "EnableAllIPs": false, + "IPs": "http://127.0.0.1:2364,http://localhost:2364" + } + }, + "Audience": { + "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", + "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", + "Issuer": "Blog.Core", + "Audience": "wr" + }, + "WhiteList": [ + { "url": "/" }, + { "url": "/illagal/****" }, + { "url": "/api3/****" }, + { "url": "/baseapi/swagger.json" } + ], + "BlackList": [ + { "url": "/favicon.ico" } + ], + "ApiGateWay": { + "OcelotConfig": "OcelotConfig.json", + "OcelotConfigGroup": "DEFAULT_GROUP", + "AppConfig": "****.****.Gateway.json", + "AppConfigGroup": "DEFAULT_GROUP", + "PermissionServName": "****.****.Api", + "PermissionServGroup": "DEFAULT_GROUP", + "PermissionServUrl": "/api/Permission/GetPermissionlist" + }, + "Influxdb": { + "Endpoint": "http://*******:9328", + "uid": "root", + "pwd": "*****", + "dbname": "mndata" + }, + "nacos": { + "ServerAddresses": [ "http://******:8848/" ], + "ServiceName": "*****.****.Gateway", + "DefaultTimeOut": 15000, + "Namespace": "****", + "ListenInterval": 1000, + "GroupName": "DEFAULT_GROUP", + "ClusterName": "DEFAULT", + "Ip": "", + "PreferredNetworks": "", + "Port": 8090, + "Weight": 100, + "RegisterEnabled": true, + "InstanceEnabled": true, + "Ephemeral": true, + "Secure": false, + "AccessKey": "", + "SecretKey": "", + "UserName": "****", + "Password": "*****", + "NamingUseRpc": true, + "NamingLoadCacheAtStart": "", + "LBStrategy": "WeightRandom", + "Metadata": { + "aa": "bb", + "cc": "dd", + "endpoint33": "******:8090" + } + }, + "nacosConfig": { + "ServiceName": "*****.*****.Gateway", + "Optional": false, + "DataId": "options1", + "Tenant": "******", + "Group": "DEFAULT_GROUP", + "Namespace": "*****", + "ServerAddresses": [ "http://******:8848/" ], + "UserName": "****", + "Password": "*****", + "AccessKey": "", + "SecretKey": "", + "EndPoint": "", + "ConfigUseRpc": true, + "ConfigFilterAssemblies": [ "apigateway" ], + "ConfigFilterExtInfo": "{\"JsonPaths\":[\"ConnectionStrings.Default\"],\"Other\":\"xxxxxx\"}" + } + + + +} diff --git a/Blog.Core.IServices/BASE/IBaseServices.cs b/Blog.Core.IServices/BASE/IBaseServices.cs index de4a7a06..a496b59f 100644 --- a/Blog.Core.IServices/BASE/IBaseServices.cs +++ b/Blog.Core.IServices/BASE/IBaseServices.cs @@ -10,19 +10,20 @@ namespace Blog.Core.IServices.BASE { public interface IBaseServices where TEntity : class { + ISqlSugarClient Db { get; } Task QueryById(object objId); Task QueryById(object objId, bool blnUseCache = false); Task> QueryByIDs(object[] lstIds); - Task Add(TEntity model); + Task Add(TEntity model); - Task Add(List listEntity); + Task> Add(List listEntity); Task DeleteById(object id); Task Delete(TEntity model); - + Task DeleteByIds(object[] ids); Task Update(TEntity model); @@ -59,6 +60,14 @@ Task> QueryMuch( Expression> selectExpression, Expression> whereLambda = null) where T : class, new(); Task> QueryPage(PaginationModel pagination); + + #region 分表 + Task QueryByIdSplit(object objId); + Task> AddSplit(TEntity entity); + Task DeleteSplit(TEntity entity, DateTime dateTime); + Task UpdateSplit(TEntity entity, DateTime dateTime); + Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, int pageIndex = 1, int pageSize = 20, string orderByFields = null); + #endregion } } diff --git a/Blog.Core.IServices/IBlogArticleServices.cs b/Blog.Core.IServices/IBlogArticleServices.cs index 23e6081b..a38826fb 100644 --- a/Blog.Core.IServices/IBlogArticleServices.cs +++ b/Blog.Core.IServices/IBlogArticleServices.cs @@ -9,7 +9,7 @@ namespace Blog.Core.IServices public interface IBlogArticleServices :IBaseServices { Task> GetBlogs(); - Task GetBlogDetails(int id); + Task GetBlogDetails(long id); } diff --git a/Blog.Core.IServices/IRoleModulePermissionServices.cs b/Blog.Core.IServices/IRoleModulePermissionServices.cs index 22532479..2a5c7345 100644 --- a/Blog.Core.IServices/IRoleModulePermissionServices.cs +++ b/Blog.Core.IServices/IRoleModulePermissionServices.cs @@ -21,6 +21,6 @@ public interface IRoleModulePermissionServices :IBaseServices˵ /// ӿ /// - Task UpdateModuleId(int permissionId, int moduleId); + Task UpdateModuleId(long permissionId, long moduleId); } } diff --git a/Blog.Core.IServices/ISplitDemoServices.cs b/Blog.Core.IServices/ISplitDemoServices.cs new file mode 100644 index 00000000..55215761 --- /dev/null +++ b/Blog.Core.IServices/ISplitDemoServices.cs @@ -0,0 +1,15 @@ + + +using Blog.Core.IServices.BASE; +using Blog.Core.Model.Models; +using System.Threading.Tasks; + +namespace Blog.Core.IServices +{ + /// + /// sysUserInfoServices + /// + public interface ISplitDemoServices : IBaseServices + { + } +} diff --git a/Blog.Core.IServices/ITasksLogServices.cs b/Blog.Core.IServices/ITasksLogServices.cs new file mode 100644 index 00000000..fb6ad8a7 --- /dev/null +++ b/Blog.Core.IServices/ITasksLogServices.cs @@ -0,0 +1,19 @@ + +using System; +using System.Threading.Tasks; +using Blog.Core.IServices.BASE; +using Blog.Core.Model; +using Blog.Core.Model.Models; + +namespace Blog.Core.IServices +{ + /// + /// ITasksLogServices + /// + public interface ITasksLogServices :IBaseServices + { + public Task> GetTaskLogs(long jobId, int page, int intPageSize,DateTime? runTime,DateTime? endTime); + public Task GetTaskOverview(long jobId, DateTime? runTime, DateTime? endTime, string type); + } +} + \ No newline at end of file diff --git a/Blog.Core.IServices/ITenantService.cs b/Blog.Core.IServices/ITenantService.cs new file mode 100644 index 00000000..0927b793 --- /dev/null +++ b/Blog.Core.IServices/ITenantService.cs @@ -0,0 +1,12 @@ +using System.Threading.Tasks; +using Blog.Core.IServices.BASE; +using Blog.Core.Model.Models; + +namespace Blog.Core.IServices; + +public interface ITenantService : IBaseServices +{ + public Task SaveTenant(SysTenant tenant); + + public Task InitTenantDb(SysTenant tenant); +} \ No newline at end of file diff --git a/Blog.Core.IServices/IUserRoleServices.cs b/Blog.Core.IServices/IUserRoleServices.cs index 9e7d3d29..91272a09 100644 --- a/Blog.Core.IServices/IUserRoleServices.cs +++ b/Blog.Core.IServices/IUserRoleServices.cs @@ -10,8 +10,8 @@ namespace Blog.Core.IServices public interface IUserRoleServices :IBaseServices { - Task SaveUserRole(int uid, int rid); - Task GetRoleIdByUid(int uid); + Task SaveUserRole(long uid, long rid); + Task GetRoleIdByUid(long uid); } } diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index de7e6467..e66c5c5b 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -16,9 +16,13 @@ - + + + + + diff --git a/Blog.Core.Model/Models/AccessTrendLog.cs b/Blog.Core.Model/Models/AccessTrendLog.cs index 4a87b13e..fd6dbae7 100644 --- a/Blog.Core.Model/Models/AccessTrendLog.cs +++ b/Blog.Core.Model/Models/AccessTrendLog.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 用户访问趋势日志 /// - public class AccessTrendLog : RootEntityTkey + public class AccessTrendLog : RootEntityTkey { /// /// 用户 diff --git a/Blog.Core.Model/Models/Advertisement.cs b/Blog.Core.Model/Models/Advertisement.cs index c2babd74..3b11b21f 100644 --- a/Blog.Core.Model/Models/Advertisement.cs +++ b/Blog.Core.Model/Models/Advertisement.cs @@ -3,7 +3,7 @@ namespace Blog.Core.Model.Models { - public class Advertisement : RootEntityTkey + public class Advertisement : RootEntityTkey { /// diff --git a/Blog.Core.Model/Models/BlogArticle.cs b/Blog.Core.Model/Models/BlogArticle.cs index 52176190..8b75c8df 100644 --- a/Blog.Core.Model/Models/BlogArticle.cs +++ b/Blog.Core.Model/Models/BlogArticle.cs @@ -1,5 +1,6 @@ using SqlSugar; using System; +using System.Collections.Generic; namespace Blog.Core.Model.Models { @@ -12,14 +13,18 @@ public class BlogArticle /// 主键 /// /// 这里之所以没用RootEntity,是想保持和之前的数据库一致,主键是bID,不是Id - [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int bID { get; set; } + [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = false)] + public long bID { get; set; } + /// /// 创建人 /// [SugarColumn(Length = 600, IsNullable = true)] public string bsubmitter { get; set; } + [Navigate(NavigateType.OneToOne, nameof(bsubmitter))] + public SysUserInfo User { get; set; } + /// /// 标题blog /// @@ -57,6 +62,7 @@ public class BlogArticle /// 创建时间 /// public System.DateTime bCreateTime { get; set; } + /// /// 备注 /// @@ -69,5 +75,11 @@ public class BlogArticle [SugarColumn(IsNullable = true)] public bool? IsDeleted { get; set; } + + /// + /// 评论 + /// + [Navigate(NavigateType.OneToMany, nameof(BlogArticleComment.bID))] + public List Comments { get; set; } } -} +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/BlogArticleComment.cs b/Blog.Core.Model/Models/BlogArticleComment.cs new file mode 100644 index 00000000..519fb003 --- /dev/null +++ b/Blog.Core.Model/Models/BlogArticleComment.cs @@ -0,0 +1,19 @@ +using SqlSugar; + +namespace Blog.Core.Model.Models; + +/// +/// 博客文章 评论 +/// +public class BlogArticleComment : RootEntityTkey +{ + public long bID { get; set; } + + public string Comment { get; set; } + + + public string UserId { get; set; } + + [Navigate(NavigateType.OneToOne, nameof(UserId))] + public SysUserInfo User { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/Department.cs b/Blog.Core.Model/Models/Department.cs index 3583bcff..424bcf44 100644 --- a/Blog.Core.Model/Models/Department.cs +++ b/Blog.Core.Model/Models/Department.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Model.Models /// /// 部门表 /// - public class Department : DepartmentRoot + public class Department : DepartmentRoot { /// /// Desc:部门关系编码 diff --git a/Blog.Core.Model/Models/GblLogAudit.cs b/Blog.Core.Model/Models/GblLogAudit.cs index 4b1bd9cd..2cecce8b 100644 --- a/Blog.Core.Model/Models/GblLogAudit.cs +++ b/Blog.Core.Model/Models/GblLogAudit.cs @@ -12,8 +12,8 @@ public class GblLogAudit /// ///ID /// - [SugarColumn(ColumnDescription = "ID", IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int Id { get; set; } + [SugarColumn(ColumnDescription = "ID", IsNullable = false, IsPrimaryKey = true, IsIdentity = false)] + public long Id { get; set; } /// ///HttpContext.TraceIdentifier 事件链路ID(获取或设置一个唯一标识符,用于在跟踪日志中表示此请求。) diff --git a/Blog.Core.Model/Models/Guestbook.cs b/Blog.Core.Model/Models/Guestbook.cs index d1f671c0..0cd5dcef 100644 --- a/Blog.Core.Model/Models/Guestbook.cs +++ b/Blog.Core.Model/Models/Guestbook.cs @@ -3,13 +3,13 @@ namespace Blog.Core.Model.Models { - public class Guestbook:RootEntityTkey + public class Guestbook : RootEntityTkey { - + /// 博客ID /// /// - public int? blogId { get; set; } + public long? blogId { get; set; } /// 创建时间 /// /// diff --git a/Blog.Core.Model/Models/Modules.cs b/Blog.Core.Model/Models/Modules.cs index b62c0a47..6e41aaac 100644 --- a/Blog.Core.Model/Models/Modules.cs +++ b/Blog.Core.Model/Models/Modules.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 接口API地址信息表 /// - public class Modules : ModulesRoot + public class Modules : ModulesRoot { public Modules() { diff --git a/Blog.Core.Model/Models/OperateLog.cs b/Blog.Core.Model/Models/OperateLog.cs index 4086781c..3c2fb54c 100644 --- a/Blog.Core.Model/Models/OperateLog.cs +++ b/Blog.Core.Model/Models/OperateLog.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 日志记录 /// - public class OperateLog : RootEntityTkey + public class OperateLog : RootEntityTkey { /// diff --git a/Blog.Core.Model/Models/PasswordLib.cs b/Blog.Core.Model/Models/PasswordLib.cs index 2b43c265..b8b633d6 100644 --- a/Blog.Core.Model/Models/PasswordLib.cs +++ b/Blog.Core.Model/Models/PasswordLib.cs @@ -7,11 +7,11 @@ namespace Blog.Core.Model.Models /// 密码库表 /// [SugarTable("PasswordLib", "密码库表")]//('数据库表名','数据库表备注') - [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') + [Tenant("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') public class PasswordLib { - [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int PLID { get; set; } + [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = false)] + public long PLID { get; set; } /// ///获取或设置是否禁用,逻辑上的删除,非物理删除 diff --git a/Blog.Core.Model/Models/Permission.cs b/Blog.Core.Model/Models/Permission.cs index c650cb5e..deece0c0 100644 --- a/Blog.Core.Model/Models/Permission.cs +++ b/Blog.Core.Model/Models/Permission.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Model.Models /// /// 路由菜单表 /// - public class Permission : PermissionRoot + public class Permission : PermissionRoot { public Permission() { diff --git a/Blog.Core.Model/Models/Role.cs b/Blog.Core.Model/Models/Role.cs index e34ccdd9..1357afb0 100644 --- a/Blog.Core.Model/Models/Role.cs +++ b/Blog.Core.Model/Models/Role.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 角色表 /// - public class Role : RootEntityTkey + public class Role : RootEntityTkey { public Role() { diff --git a/Blog.Core.Model/Models/RoleModulePermission.cs b/Blog.Core.Model/Models/RoleModulePermission.cs index 13d82a80..482b9b4e 100644 --- a/Blog.Core.Model/Models/RoleModulePermission.cs +++ b/Blog.Core.Model/Models/RoleModulePermission.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// 按钮跟权限关联表 /// - public class RoleModulePermission : RoleModulePermissionRoot + public class RoleModulePermission : RoleModulePermissionRoot { public RoleModulePermission() { diff --git a/Blog.Core.Model/Models/RootTkey/BaseEntity.cs b/Blog.Core.Model/Models/RootTkey/BaseEntity.cs new file mode 100644 index 00000000..b6dabe54 --- /dev/null +++ b/Blog.Core.Model/Models/RootTkey/BaseEntity.cs @@ -0,0 +1,80 @@ +using Blog.Core.Model.Models.RootTkey.Interface; +using SqlSugar; +using System; + +namespace Blog.Core.Model.Models.RootTkey; + +public class BaseEntity : RootEntityTkey, IDeleteFilter +{ + #region 数据状态管理 + + /// + /// 状态
    + /// 中立字段,某些表可使用某些表不使用 + ///
    + public bool Enabled { get; set; } = true; + + /// + /// 中立字段,某些表可使用某些表不使用
    + /// 逻辑上的删除,非物理删除
    + /// 例如:单据删除并非直接删除 + ///
    + public bool IsDeleted { get; set; } + + /// + /// 中立字段
    + /// 是否内置数据 + ///
    + public bool IsInternal { get; set; } + + #endregion + + #region 创建 + + /// + /// 创建ID + /// + [SugarColumn(IsNullable = true, IsOnlyIgnoreUpdate = true)] + public long? CreateId { get; set; } + + /// + /// 创建者 + /// + [SugarColumn(IsNullable = true, IsOnlyIgnoreUpdate = true)] + public string CreateBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(IsOnlyIgnoreUpdate = true)] + public DateTime CreateTime { get; set; } = DateTime.Now; + + #endregion + + #region 修改 + + /// + /// 修改ID + /// + [SugarColumn(IsNullable = true)] + public long? ModifyId { get; set; } + + /// + /// 更新者 + /// + [SugarColumn(IsNullable = true)] + public string ModifyBy { get; set; } + + /// + /// 修改日期 + /// + public DateTime? ModifyTime { get; set; } = DateTime.Now; + + /// + /// 数据版本 + /// + [SugarColumn(DefaultValue = "0", IsEnableUpdateVersionValidation = true)] //标识版本字段 + public long Version { get; set; } + + #endregion +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/RootTkey/Interface/IDeleteFilter.cs b/Blog.Core.Model/Models/RootTkey/Interface/IDeleteFilter.cs new file mode 100644 index 00000000..57d421e9 --- /dev/null +++ b/Blog.Core.Model/Models/RootTkey/Interface/IDeleteFilter.cs @@ -0,0 +1,9 @@ +namespace Blog.Core.Model.Models.RootTkey.Interface; + +/// +/// 软删除 过滤器 +/// +public interface IDeleteFilter +{ + public bool IsDeleted { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/RootTkey/RootEntityTkey.cs b/Blog.Core.Model/Models/RootTkey/RootEntityTkey.cs index afecdec9..20bdda0d 100644 --- a/Blog.Core.Model/Models/RootTkey/RootEntityTkey.cs +++ b/Blog.Core.Model/Models/RootTkey/RootEntityTkey.cs @@ -11,7 +11,5 @@ public class RootEntityTkey where Tkey : IEquatable ///
    [SugarColumn(IsNullable = false, IsPrimaryKey = true)] public Tkey Id { get; set; } - - } } \ No newline at end of file diff --git a/Blog.Core.Model/Models/SplitDemo.cs b/Blog.Core.Model/Models/SplitDemo.cs new file mode 100644 index 00000000..26329935 --- /dev/null +++ b/Blog.Core.Model/Models/SplitDemo.cs @@ -0,0 +1,27 @@ +using Newtonsoft.Json; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; + +namespace Blog.Core.Model.Models +{ + [SplitTable(SplitType.Day)]//按年分表 (自带分表支持 年、季、月、周、日) + [SugarTable("SplitDemo_{year}{month}{day}")]//3个变量必须要有,这么设计为了兼容开始按年,后面改成按月、按日 + public class SplitDemo + { + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + + public string Name { get; set; } + + [SugarColumn(IsNullable = true)]//设置为可空字段 (更多用法看文档 迁移) + public DateTime UpdateTime { get; set; } + + [SplitField] //分表字段 在插入的时候会根据这个字段插入哪个表,在更新删除的时候用这个字段找出相关表 + public DateTime CreateTime { get; set; } + } +} diff --git a/Blog.Core.Model/Models/SysTenant.cs b/Blog.Core.Model/Models/SysTenant.cs new file mode 100644 index 00000000..61d03866 --- /dev/null +++ b/Blog.Core.Model/Models/SysTenant.cs @@ -0,0 +1,67 @@ +using Blog.Core.Model.Tenants; +using SqlSugar; + +namespace Blog.Core.Model.Models; + +/// +/// 系统租户表
    +/// 根据TenantType 分为两种方案:
    +/// 1.按租户字段区分
    +/// 2.按租户分库
    +/// +///
    +/// +/// 注意:
    +/// 使用租户Id方案,无需配置分库的连接 +///
    +public class SysTenant : RootEntityTkey +{ + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 租户类型 + /// + public TenantTypeEnum TenantType { get; set; } + + /// + /// 数据库/租户标识 不可重复
    + /// 使用Id方案,可无需配置 + ///
    + [SugarColumn(Length = 64)] + public string ConfigId { get; set; } + + /// + /// 主机
    + /// 使用Id方案,可无需配置 + ///
    + [SugarColumn(IsNullable = true)] + public string Host { get; set; } + + /// + /// 数据库类型
    + /// 使用Id方案,可无需配置 + ///
    + [SugarColumn(IsNullable = true)] + public SqlSugar.DbType? DbType { get; set; } + + /// + /// 数据库连接
    + /// 使用Id方案,可无需配置 + ///
    + [SugarColumn(IsNullable = true)] + public string Connection { get; set; } + + /// + /// 状态 + /// + public bool Status { get; set; } = true; + + /// + /// 备注 + /// + [SugarColumn(IsNullable = true)] + public string Remark { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/TasksLog.cs b/Blog.Core.Model/Models/TasksLog.cs new file mode 100644 index 00000000..c79e8077 --- /dev/null +++ b/Blog.Core.Model/Models/TasksLog.cs @@ -0,0 +1,87 @@ +using SqlSugar; +using System; + +namespace Blog.Core.Model.Models +{ + /// + /// 任务日志表 + /// + public class TasksLog : RootEntityTkey + { + /// + /// 任务ID + /// + public long JobId { get; set; } + /// + /// 任务耗时 + /// + public double TotalTime { get; set; } + /// + /// 执行结果(0-失败 1-成功) + /// + public bool RunResult { get; set; } + /// + /// 运行时间 + /// + public DateTime RunTime { get; set; } + /// + /// 结束时间 + /// + public DateTime EndTime { get; set; } + /// + /// 执行参数 + /// + [SugarColumn(Length = 500, IsNullable = true)] + public string RunPars { get; set; } + /// + /// 异常信息 + /// + [SugarColumn(Length = 500, IsNullable = true)] + public string ErrMessage { get; set; } + /// + /// 异常堆栈 + /// + [SugarColumn(Length = 2000, IsNullable = true)] + public string ErrStackTrace { get; set; } + /// + /// 创建ID + /// + [SugarColumn(IsNullable = true)] + public int? CreateId { get; set; } + /// + /// 创建者 + /// + [SugarColumn(Length = 50, IsNullable = true)] + public string CreateBy { get; set; } + /// + /// 创建时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime CreateTime { get; set; } = DateTime.Now; + /// + /// 修改ID + /// + [SugarColumn(IsNullable = true)] + public int? ModifyId { get; set; } + /// + /// 修改者 + /// + [SugarColumn(Length = 100, IsNullable = true)] + public string ModifyBy { get; set; } + /// + /// 修改时间 + /// + [SugarColumn(IsNullable = true)] + public DateTime? ModifyTime { get; set; } = DateTime.Now; + /// + /// 任务名称 + /// + [SugarColumn(IsIgnore = true)] + public string Name { get; set; } + /// + /// 任务分组 + /// + [SugarColumn(IsIgnore = true)] + public string JobGroup { get; set; } + } +} diff --git a/Blog.Core.Model/Models/TasksQz.cs b/Blog.Core.Model/Models/TasksQz.cs index 5c812f79..b029a995 100644 --- a/Blog.Core.Model/Models/TasksQz.cs +++ b/Blog.Core.Model/Models/TasksQz.cs @@ -8,7 +8,7 @@ namespace Blog.Core.Model.Models /// /// 任务计划表 /// - public class TasksQz : RootEntityTkey + public class TasksQz : RootEntityTkey { /// /// 任务名称 @@ -65,6 +65,10 @@ public class TasksQz : RootEntityTkey /// public int CycleRunTimes { get; set; } /// + /// 已循环次数 + /// + public int CycleHasRunTimes { get; set; } + /// /// 是否启动 /// public bool IsStart { get; set; } = false; diff --git a/Blog.Core.Model/Models/Tenant/BusinessTable.cs b/Blog.Core.Model/Models/Tenant/BusinessTable.cs new file mode 100644 index 00000000..b3b0140a --- /dev/null +++ b/Blog.Core.Model/Models/Tenant/BusinessTable.cs @@ -0,0 +1,27 @@ +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Tenants; + +namespace Blog.Core.Model.Models; + +/// +/// 业务数据
    +/// 多租户 (Id 隔离) +///
    +public class BusinessTable : BaseEntity, ITenantEntity +{ + /// + /// 无需手动赋值 + /// + public long TenantId { get; set; } + + + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 金额 + /// + public decimal Amount { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/Tenant/MultiBusinessSubTable.cs b/Blog.Core.Model/Models/Tenant/MultiBusinessSubTable.cs new file mode 100644 index 00000000..1ada394d --- /dev/null +++ b/Blog.Core.Model/Models/Tenant/MultiBusinessSubTable.cs @@ -0,0 +1,14 @@ +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Tenants; + +namespace Blog.Core.Model.Models; + +/// +/// 多租户-多表方案 业务表 子表
    +///
    +[MultiTenant(TenantTypeEnum.Tables)] +public class MultiBusinessSubTable : BaseEntity +{ + public long MainId { get; set; } + public string Memo { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/Tenant/MultiBusinessTable.cs b/Blog.Core.Model/Models/Tenant/MultiBusinessTable.cs new file mode 100644 index 00000000..619bdaaf --- /dev/null +++ b/Blog.Core.Model/Models/Tenant/MultiBusinessTable.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Tenants; +using SqlSugar; + +namespace Blog.Core.Model.Models; + +/// +/// 多租户-多表方案 业务表
    +///
    +[MultiTenant(TenantTypeEnum.Tables)] +public class MultiBusinessTable : BaseEntity +{ + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 金额 + /// + public decimal Amount { get; set; } + + [Navigate(NavigateType.OneToMany, nameof(MultiBusinessSubTable.MainId))] + public List Child { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/Tenant/SubLibraryBusinessTable.cs b/Blog.Core.Model/Models/Tenant/SubLibraryBusinessTable.cs new file mode 100644 index 00000000..446fb436 --- /dev/null +++ b/Blog.Core.Model/Models/Tenant/SubLibraryBusinessTable.cs @@ -0,0 +1,22 @@ +using Blog.Core.Model.Models.RootTkey; +using Blog.Core.Model.Tenants; + +namespace Blog.Core.Model.Models; + +/// +/// 多租户-多库方案 业务表
    +/// 公共库无需标记[MultiTenant]特性 +///
    +[MultiTenant] +public class SubLibraryBusinessTable : BaseEntity +{ + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 金额 + /// + public decimal Amount { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/TestModels.cs b/Blog.Core.Model/Models/TestModels.cs index f5fa7dc7..8a8d123c 100644 --- a/Blog.Core.Model/Models/TestModels.cs +++ b/Blog.Core.Model/Models/TestModels.cs @@ -5,9 +5,9 @@ public class TestMuchTableResult { public string moduleName { get; set; } public string permName { get; set; } - public int rid { get; set; } - public int mid { get; set; } - public int? pid { get; set; } + public long rid { get; set; } + public long mid { get; set; } + public long? pid { get; set; } } } diff --git a/Blog.Core.Model/Models/Topic.cs b/Blog.Core.Model/Models/Topic.cs index 16bf7dad..e57bd561 100644 --- a/Blog.Core.Model/Models/Topic.cs +++ b/Blog.Core.Model/Models/Topic.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Model.Models /// /// Tibug 类别 /// - public class Topic : RootEntityTkey + public class Topic : RootEntityTkey { public Topic() { diff --git a/Blog.Core.Model/Models/TopicDetail.cs b/Blog.Core.Model/Models/TopicDetail.cs index 87e16ebf..1a98f3af 100644 --- a/Blog.Core.Model/Models/TopicDetail.cs +++ b/Blog.Core.Model/Models/TopicDetail.cs @@ -6,7 +6,7 @@ namespace Blog.Core.Model.Models /// /// Tibug 博文 /// - public class TopicDetail : TopicDetailRoot + public class TopicDetail : TopicDetailRoot { public TopicDetail() { diff --git a/Blog.Core.Model/Models/UserRole.cs b/Blog.Core.Model/Models/UserRole.cs index 996eea2c..7ed9c6be 100644 --- a/Blog.Core.Model/Models/UserRole.cs +++ b/Blog.Core.Model/Models/UserRole.cs @@ -6,11 +6,11 @@ namespace Blog.Core.Model.Models /// /// 用户跟角色关联表 /// - public class UserRole : UserRoleRoot + public class UserRole : UserRoleRoot { public UserRole() { } - public UserRole(int uid, int rid) + public UserRole(long uid, long rid) { UserId = uid; RoleId = rid; @@ -31,7 +31,7 @@ public UserRole(int uid, int rid) /// 创建ID ///
    [SugarColumn(IsNullable = true)] - public int? CreateId { get; set; } + public long? CreateId { get; set; } /// /// 创建者 /// diff --git a/Blog.Core.Model/Models/WeChatConfig.cs b/Blog.Core.Model/Models/WeChatConfig.cs index f0aa97c4..16910487 100644 --- a/Blog.Core.Model/Models/WeChatConfig.cs +++ b/Blog.Core.Model/Models/WeChatConfig.cs @@ -51,13 +51,13 @@ public class WeChatConfig /// /// 公众号推送token /// - [SugarColumn(Length = 100, IsNullable = true)] + [SugarColumn(Length = 500, IsNullable = true)] public string token { get; set; } /// /// 验证秘钥(验证消息是否真实) /// - [SugarColumn(Length = 100, IsNullable = false)] + [SugarColumn(Length = 500, IsNullable = false)] public string interactiveToken { get; set; } /// diff --git a/Blog.Core.Model/Models/WeChatPushLog.cs b/Blog.Core.Model/Models/WeChatPushLog.cs index b2b6752e..5368c806 100644 --- a/Blog.Core.Model/Models/WeChatPushLog.cs +++ b/Blog.Core.Model/Models/WeChatPushLog.cs @@ -50,7 +50,7 @@ public partial class WeChatPushLog /// /// 推送内容 /// - [SugarColumn(IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string PushLogContent { get; set; } /// diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index c60e4bce..2a417a16 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -8,8 +8,8 @@ namespace Blog.Core.Model.Models /// 用户信息表 /// //[SugarTable("SysUserInfo")] - [SugarTable("SysUserInfo", "用户表")]//('数据库表名','数据库表备注') - public class SysUserInfo : SysUserInfoRoot + [SugarTable("SysUserInfo", "用户表")] //('数据库表名','数据库表备注') + public class SysUserInfo : SysUserInfoRoot { public SysUserInfo() { @@ -120,12 +120,20 @@ public SysUserInfo(string loginName, string loginPWD) [SugarColumn(IsNullable = true)] public bool IsDeleted { get; set; } + /// + /// 租户Id + /// + [SugarColumn(IsNullable = false,DefaultValue = "0")] + public long TenantId { get; set; } + + [Navigate(NavigateType.OneToOne, nameof(TenantId))] + public SysTenant Tenant { get; set; } [SugarColumn(IsIgnore = true)] public List RoleNames { get; set; } [SugarColumn(IsIgnore = true)] - public List Dids { get; set; } + public List Dids { get; set; } [SugarColumn(IsIgnore = true)] public string DepartmentName { get; set; } diff --git a/Blog.Core.Model/Tenants/ITenantEntity.cs b/Blog.Core.Model/Tenants/ITenantEntity.cs new file mode 100644 index 00000000..2d0c5dc9 --- /dev/null +++ b/Blog.Core.Model/Tenants/ITenantEntity.cs @@ -0,0 +1,15 @@ +using SqlSugar; + +namespace Blog.Core.Model.Tenants; + +/// +/// 租户模型接口 +/// +public interface ITenantEntity +{ + /// + /// 租户Id + /// + [SugarColumn(DefaultValue = "0")] + public long TenantId { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Tenants/MultiTenantAttribute.cs b/Blog.Core.Model/Tenants/MultiTenantAttribute.cs new file mode 100644 index 00000000..443745bf --- /dev/null +++ b/Blog.Core.Model/Tenants/MultiTenantAttribute.cs @@ -0,0 +1,24 @@ +using System; + +namespace Blog.Core.Model.Tenants; + +/// +/// 标识 多租户 的业务表
    +/// 默认设置是多库
    +/// 公共表无需区分 直接使用主库 各自业务在各自库中
    +///
    +[AttributeUsage(AttributeTargets.Class)] +public class MultiTenantAttribute : Attribute +{ + public MultiTenantAttribute() + { + } + + public MultiTenantAttribute(TenantTypeEnum tenantType) + { + TenantType = tenantType; + } + + + public TenantTypeEnum TenantType { get; set; } = TenantTypeEnum.Db; +} \ No newline at end of file diff --git a/Blog.Core.Model/Tenants/TenantTypeEnum.cs b/Blog.Core.Model/Tenants/TenantTypeEnum.cs new file mode 100644 index 00000000..f4af3bda --- /dev/null +++ b/Blog.Core.Model/Tenants/TenantTypeEnum.cs @@ -0,0 +1,29 @@ +using System.ComponentModel; + +namespace Blog.Core.Model.Tenants; + +/// +/// 租户隔离方案 +/// +public enum TenantTypeEnum +{ + None = 0, + + /// + /// Id隔离 + /// + [Description("Id隔离")] + Id = 1, + + /// + /// 库隔离 + /// + [Description("库隔离")] + Db = 2, + + /// + /// 表隔离 + /// + [Description("表隔离")] + Tables = 3, +} \ No newline at end of file diff --git a/Blog.Core.Model/ViewModels/BlogViewModels.cs b/Blog.Core.Model/ViewModels/BlogViewModels.cs index f959270c..86c16618 100644 --- a/Blog.Core.Model/ViewModels/BlogViewModels.cs +++ b/Blog.Core.Model/ViewModels/BlogViewModels.cs @@ -10,7 +10,7 @@ public class BlogViewModels /// /// /// - public int bID { get; set; } + public long bID { get; set; } /// 创建人 /// /// @@ -34,7 +34,7 @@ public class BlogViewModels /// /// 上一篇id /// - public int previousID { get; set; } + public long previousID { get; set; } /// /// 下一篇 @@ -44,7 +44,7 @@ public class BlogViewModels /// /// 下一篇id /// - public int nextID { get; set; } + public long nextID { get; set; } /// 类别 /// diff --git a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs index 33d84161..3b5451f0 100644 --- a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs +++ b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs @@ -3,13 +3,13 @@ namespace Blog.Core.Model.ViewModels { - public class SysUserInfoDto : SysUserInfoDtoRoot + public class SysUserInfoDto : SysUserInfoDtoRoot { public string uLoginName { get; set; } public string uLoginPWD { get; set; } public string uRealName { get; set; } public int uStatus { get; set; } - public int DepartmentId { get; set; } + public long DepartmentId { get; set; } public string uRemark { get; set; } public System.DateTime uCreateTime { get; set; } = DateTime.Now; public System.DateTime uUpdateTime { get; set; } = DateTime.Now; @@ -22,7 +22,7 @@ public class SysUserInfoDto : SysUserInfoDtoRoot public string addr { get; set; } public bool tdIsDelete { get; set; } public List RoleNames { get; set; } - public List Dids { get; set; } + public List Dids { get; set; } public string DepartmentName { get; set; } } } diff --git a/Blog.Core.Publish.Linux.sh b/Blog.Core.Publish.Linux.sh index 05eb8103..7599f204 100644 --- a/Blog.Core.Publish.Linux.sh +++ b/Blog.Core.Publish.Linux.sh @@ -1,8 +1,9 @@ -git pull; + find .PublishFiles/ -type f -and ! -path '*/wwwroot/images/*' ! -name 'appsettings.*' |xargs rm -rf dotnet build; rm -rf /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles; dotnet publish -o /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles; +rm -rf /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles/WMBlog.db; # cp -r /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles ./; awk 'BEGIN { cmd="cp -ri /home/Blog.Core/Blog.Core.Api/bin/Debug/.PublishFiles ./"; print "n" |cmd; }' echo "Successfully!!!! ^ please see the file .PublishFiles"; \ No newline at end of file diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index ead9f9af..9d926ee4 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -1,6 +1,11 @@ using Blog.Core.Common; +using Blog.Core.Common.DB; using Blog.Core.IRepository.Base; using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.Tenants; +using Blog.Core.Repository.UnitOfWorks; +using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using SqlSugar; using System; using System.Collections.Generic; @@ -8,7 +13,6 @@ using System.Linq.Expressions; using System.Reflection; using System.Threading.Tasks; -using Blog.Core.Repository.UnitOfWorks; namespace Blog.Core.Repository.Base { @@ -22,11 +26,12 @@ private ISqlSugarClient _db get { ISqlSugarClient db = _dbBase; + /* 如果要开启多库支持, * 1、在appsettings.json 中开启MutiDBEnabled节点为true,必填 * 2、设置一个主连接的数据库ID,节点MainDB,对应的连接字符串的Enabled也必须true,必填 */ - if (AppSettings.app(new[] {"MutiDBEnabled"}).ObjToBool()) + if (AppSettings.app(new[] { "MutiDBEnabled" }).ObjToBool()) { //修改使用 model备注字段作为切换数据库条件,使用sqlsugar TenantAttribute存放数据库ConnId //参考 https://www.donet5.com/Home/Doc?typeId=2246 @@ -35,6 +40,28 @@ private ISqlSugarClient _db { //统一处理 configId 小写 db = _dbBase.GetConnectionScope(tenantAttr.configId.ToString().ToLower()); + return db; + } + } + + //多租户 + var mta = typeof(TEntity).GetCustomAttribute(); + if (mta is { TenantType: TenantTypeEnum.Db }) + { + //获取租户信息 租户信息可以提前缓存下来 + if (App.User is { TenantId: > 0 }) + { + var tenant = db.Queryable().WithCache().Where(s => s.Id == App.User.TenantId).First(); + if (tenant != null) + { + var iTenant = db.AsTenant(); + if (!iTenant.IsAnyConnection(tenant.ConfigId)) + { + iTenant.AddConnection(tenant.GetConnectionConfig()); + } + + return iTenant.GetConnectionScope(tenant.ConfigId); + } } } @@ -51,12 +78,12 @@ public BaseRepository(IUnitOfWorkManage unitOfWorkManage) } - public async Task QueryById(object objId) { //return await Task.Run(() => _db.Queryable().InSingle(objId)); return await _db.Queryable().In(objId).SingleAsync(); } + /// /// 功能描述:根据ID查询一条数据 /// 作  者:Blog.Core @@ -87,7 +114,7 @@ public async Task> QueryByIDs(object[] lstIds) /// /// 博文实体类 /// - public async Task Add(TEntity entity) + public async Task Add(TEntity entity) { //var i = await Task.Run(() => _db.Insertable(entity).ExecuteReturnBigIdentity()); ////返回的i是long类型,这里你可以根据你的业务需要进行处理 @@ -98,26 +125,25 @@ public async Task Add(TEntity entity) //这里你可以返回TEntity,这样的话就可以获取id值,无论主键是什么类型 //var return3 = await insert.ExecuteReturnEntityAsync(); - return await insert.ExecuteReturnIdentityAsync(); + return await insert.ExecuteReturnSnowflakeIdAsync(); } - /// /// 写入实体数据 /// /// 实体类 /// 指定只插入列 /// 返回自增量列 - public async Task Add(TEntity entity, Expression> insertColumns = null) + public async Task Add(TEntity entity, Expression> insertColumns = null) { var insert = _db.Insertable(entity); if (insertColumns == null) { - return await insert.ExecuteReturnIdentityAsync(); + return await insert.ExecuteReturnSnowflakeIdAsync(); } else { - return await insert.InsertColumns(insertColumns).ExecuteReturnIdentityAsync(); + return await insert.InsertColumns(insertColumns).ExecuteReturnSnowflakeIdAsync(); } } @@ -126,9 +152,9 @@ public async Task Add(TEntity entity, Expression> ins /// /// 实体集合 /// 影响行数 - public async Task Add(List listEntity) + public async Task> Add(List listEntity) { - return await _db.Insertable(listEntity.ToArray()).ExecuteCommandAsync(); + return await _db.Insertable(listEntity.ToArray()).ExecuteReturnSnowflakeIdListAsync(); } /// @@ -151,10 +177,6 @@ public async Task Update(TEntity entity) /// public async Task Update(List entity) { - ////这种方式会以主键为条件 - //var i = await Task.Run(() => _db.Updateable(entity).ExecuteCommand()); - //return i > 0; - //这种方式会以主键为条件 return await _db.Updateable(entity).ExecuteCommandHasChangeAsync(); } @@ -174,25 +196,28 @@ public async Task Update(object operateAnonymousObjects) } public async Task Update( - TEntity entity, - List lstColumns = null, - List lstIgnoreColumns = null, - string where = "" - ) + TEntity entity, + List lstColumns = null, + List lstIgnoreColumns = null, + string where = "" + ) { IUpdateable up = _db.Updateable(entity); if (lstIgnoreColumns != null && lstIgnoreColumns.Count > 0) { up = up.IgnoreColumns(lstIgnoreColumns.ToArray()); } + if (lstColumns != null && lstColumns.Count > 0) { up = up.UpdateColumns(lstColumns.ToArray()); } + if (!string.IsNullOrEmpty(where)) { up = up.Where(where); } + return await up.ExecuteCommandHasChangeAsync(); } @@ -227,7 +252,6 @@ public async Task DeleteByIds(object[] ids) } - /// /// 功能描述:查询所有数据 /// 作  者:Blog.Core @@ -297,6 +321,7 @@ public async Task> Query(Expression> whereExpr { return await _db.Queryable().WhereIF(whereExpression != null, whereExpression).OrderByIF(orderByFields != null, orderByFields).ToListAsync(); } + /// /// 功能描述:查询一个列表 /// @@ -406,18 +431,16 @@ public async Task> Query( /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( - string where, - int pageIndex, - int pageSize, - - string orderByFields) + string where, + int pageIndex, + int pageSize, + string orderByFields) { return await _db.Queryable().OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) .WhereIF(!string.IsNullOrEmpty(where), where).ToPageListAsync(pageIndex, pageSize); } - /// /// 分页查询[使用版本,其他分页未测试] /// @@ -428,12 +451,11 @@ public async Task> Query( /// public async Task> QueryPage(Expression> whereExpression, int pageIndex = 1, int pageSize = 20, string orderByFields = null) { - RefAsync totalCount = 0; var list = await _db.Queryable() - .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) - .WhereIF(whereExpression != null, whereExpression) - .ToPageListAsync(pageIndex, pageSize, totalCount); + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(whereExpression != null, whereExpression) + .ToPageListAsync(pageIndex, pageSize, totalCount); return new PageModel(pageIndex, totalCount, pageSize, list); } @@ -459,6 +481,7 @@ public async Task> QueryMuch( { return await _db.Queryable(joinExpression).Select(selectExpression).ToListAsync(); } + return await _db.Queryable(joinExpression).Where(whereLambda).Select(selectExpression).ToListAsync(); } @@ -484,13 +507,12 @@ public async Task> QueryTabsPage( int pageSize = 20, string orderByFields = null) { - RefAsync totalCount = 0; var list = await _db.Queryable(joinExpression) - .Select(selectExpression) - .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) - .WhereIF(whereExpression != null, whereExpression) - .ToPageListAsync(pageIndex, pageSize, totalCount); + .Select(selectExpression) + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(whereExpression != null, whereExpression) + .ToPageListAsync(pageIndex, pageSize, totalCount); return new PageModel(pageIndex, totalCount, pageSize, list); } @@ -519,10 +541,10 @@ public async Task> QueryTabsPage( { RefAsync totalCount = 0; var list = await _db.Queryable(joinExpression).GroupBy(groupExpression) - .Select(selectExpression) - .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) - .WhereIF(whereExpression != null, whereExpression) - .ToPageListAsync(pageIndex, pageSize, totalCount); + .Select(selectExpression) + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(whereExpression != null, whereExpression) + .ToPageListAsync(pageIndex, pageSize, totalCount); return new PageModel(pageIndex, totalCount, pageSize, list); } @@ -545,6 +567,80 @@ public async Task> QueryTabsPage( // jobName = s.jobName // }, exp, s => new { s.uID, s.uRealName, s.groupName, s.jobName }, model.currentPage, model.pageSize, model.orderField + " " + model.orderType); - } + #region Split分表基础接口 (基础CRUD) -} + /// + /// 分页查询[使用版本,其他分页未测试] + /// + /// 条件表达式 + /// 页码(下标0) + /// 页大小 + /// 排序字段,如name asc,age desc + /// + public async Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, int pageIndex = 1, int pageSize = 20, string orderByFields = null) + { + RefAsync totalCount = 0; + var list = await _db.Queryable().SplitTable(beginTime, endTime) + .OrderByIF(!string.IsNullOrEmpty(orderByFields), orderByFields) + .WhereIF(whereExpression != null, whereExpression) + .ToPageListAsync(pageIndex, pageSize, totalCount); + var data = new PageModel(pageIndex, totalCount, pageSize, list); + return data; + } + + /// + /// 写入实体数据 + /// + /// 数据实体 + /// + public async Task> AddSplit(TEntity entity) + { + var insert = _db.Insertable(entity).SplitTable(); + //插入并返回雪花ID并且自动赋值ID  + return await insert.ExecuteReturnSnowflakeIdListAsync(); + } + + /// + /// 更新实体数据 + /// + /// 数据实体 + /// + public async Task UpdateSplit(TEntity entity, DateTime dateTime) + { + //直接根据实体集合更新 (全自动 找表更新) + //return await _db.Updateable(entity).SplitTable().ExecuteCommandAsync();//,SplitTable不能少 + + //精准找单个表 + var tableName = _db.SplitHelper().GetTableName(dateTime); //根据时间获取表名 + return await _db.Updateable(entity).AS(tableName).ExecuteCommandHasChangeAsync(); + } + + /// + /// 删除数据 + /// + /// + /// + /// + public async Task DeleteSplit(TEntity entity, DateTime dateTime) + { + ////直接根据实体集合删除 (全自动 找表插入),返回受影响数 + //return await _db.Deleteable(entity).SplitTable().ExecuteCommandAsync();//,SplitTable不能少 + + //精准找单个表 + var tableName = _db.SplitHelper().GetTableName(dateTime); //根据时间获取表名 + return await _db.Deleteable().AS(tableName).Where(entity).ExecuteCommandHasChangeAsync(); + } + + /// + /// 根据ID查找数据 + /// + /// + /// + public async Task QueryByIdSplit(object objId) + { + return await _db.Queryable().In(objId).SplitTable(tabs => tabs).SingleAsync(); + } + + #endregion + } +} \ No newline at end of file diff --git a/Blog.Core.Repository/BASE/IBaseRepository.cs b/Blog.Core.Repository/BASE/IBaseRepository.cs index 9b72a00d..77e9a808 100644 --- a/Blog.Core.Repository/BASE/IBaseRepository.cs +++ b/Blog.Core.Repository/BASE/IBaseRepository.cs @@ -33,14 +33,14 @@ public interface IBaseRepository where TEntity : class /// /// /// - Task Add(TEntity model); + Task Add(TEntity model); /// /// 批量添加 /// /// /// - Task Add(List listEntity); + Task> Add(List listEntity); /// /// 根据id 删除某一实体 @@ -214,5 +214,45 @@ Task> QueryTabsPage( int pageIndex = 1, int pageSize = 20, string orderByFields = null); + + #region 分表 + /// + /// 通过ID查询 + /// + /// + /// + Task QueryByIdSplit(object objId); + /// + /// 自动分表插入 + /// + /// + /// + Task> AddSplit(TEntity entity); + /// + /// 删除 + /// + /// + /// + /// + Task DeleteSplit(TEntity entity, DateTime dateTime); + /// + /// 更新 + /// + /// + /// + /// + Task UpdateSplit(TEntity entity, DateTime dateTime); + /// + /// 分页查询 + /// + /// + /// + /// + /// + /// + /// + /// + Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, int pageIndex = 1, int pageSize = 20, string orderByFields = null); + #endregion } } diff --git a/Blog.Core.Repository/Blog.Core.Repository.csproj b/Blog.Core.Repository/Blog.Core.Repository.csproj index 5c9764b0..df05250e 100644 --- a/Blog.Core.Repository/Blog.Core.Repository.csproj +++ b/Blog.Core.Repository/Blog.Core.Repository.csproj @@ -6,9 +6,9 @@ - - - + + + diff --git a/Blog.Core.Repository/IRoleModulePermissionRepository.cs b/Blog.Core.Repository/IRoleModulePermissionRepository.cs index c66448f0..9ba3d4ed 100644 --- a/Blog.Core.Repository/IRoleModulePermissionRepository.cs +++ b/Blog.Core.Repository/IRoleModulePermissionRepository.cs @@ -19,6 +19,6 @@ public interface IRoleModulePermissionRepository : IBaseRepository菜单主键 /// 接口主键 /// - Task UpdateModuleId(int permissionId, int moduleId); + Task UpdateModuleId(long permissionId, long moduleId); } } diff --git a/Blog.Core.Repository/RoleModulePermissionRepository.cs b/Blog.Core.Repository/RoleModulePermissionRepository.cs index 1cb21ebf..9438ff50 100644 --- a/Blog.Core.Repository/RoleModulePermissionRepository.cs +++ b/Blog.Core.Repository/RoleModulePermissionRepository.cs @@ -99,7 +99,7 @@ public async Task> GetRMPMapsPage() /// 菜单主键 /// 接口主键 /// - public async Task UpdateModuleId(int permissionId, int moduleId) + public async Task UpdateModuleId(long permissionId, long moduleId) { await Db.Updateable(it => it.ModuleId == moduleId).Where( it => it.PermissionId == permissionId).ExecuteCommandAsync(); diff --git a/Blog.Core.Services/BASE/BaseServices.cs b/Blog.Core.Services/BASE/BaseServices.cs index 232c6fae..44042382 100644 --- a/Blog.Core.Services/BASE/BaseServices.cs +++ b/Blog.Core.Services/BASE/BaseServices.cs @@ -17,13 +17,17 @@ public BaseServices(IBaseRepository BaseDal = null) { this.BaseDal = BaseDal; } + //public IBaseRepository baseDal = new BaseRepository(); - public IBaseRepository BaseDal { get; set; }//通过在子类的构造函数中注入,这里是基类,不用构造函数 + public IBaseRepository BaseDal { get; set; } //通过在子类的构造函数中注入,这里是基类,不用构造函数 + + public ISqlSugarClient Db => BaseDal.Db; public async Task QueryById(object objId) { return await BaseDal.QueryById(objId); } + /// /// 功能描述:根据ID查询一条数据 /// 作  者:AZLinli.Blog.Core @@ -52,7 +56,7 @@ public async Task> QueryByIDs(object[] lstIds) /// /// 博文实体类 /// - public async Task Add(TEntity entity) + public async Task Add(TEntity entity) { return await BaseDal.Add(entity); } @@ -62,7 +66,7 @@ public async Task Add(TEntity entity) /// /// 实体集合 /// 影响行数 - public async Task Add(List listEntity) + public async Task> Add(List listEntity) { return await BaseDal.Add(listEntity); } @@ -85,21 +89,23 @@ public async Task Update(List entity) { return await BaseDal.Update(entity); } + public async Task Update(TEntity entity, string where) { return await BaseDal.Update(entity, where); } + public async Task Update(object operateAnonymousObjects) { return await BaseDal.Update(operateAnonymousObjects); } public async Task Update( - TEntity entity, - List lstColumns = null, - List lstIgnoreColumns = null, - string where = "" - ) + TEntity entity, + List lstColumns = null, + List lstIgnoreColumns = null, + string where = "" + ) { return await BaseDal.Update(entity, lstColumns, lstIgnoreColumns, where); } @@ -136,7 +142,6 @@ public async Task DeleteByIds(object[] ids) } - /// /// 功能描述:查询所有数据 /// 作  者:AZLinli.Blog.Core @@ -190,7 +195,7 @@ public async Task> Query(Expression查询实体条件 /// 排序条件 /// - public async Task> Query(Expression> expression, Expression> whereExpression,string orderByFileds) + public async Task> Query(Expression> expression, Expression> whereExpression, string orderByFileds) { return await BaseDal.Query(expression, whereExpression, orderByFileds); } @@ -233,7 +238,6 @@ public async Task> Query(string where, string orderByFileds) public async Task> QuerySql(string sql, SugarParameter[] parameters = null) { return await BaseDal.QuerySql(sql, parameters); - } /// @@ -245,8 +249,8 @@ public async Task> QuerySql(string sql, SugarParameter[] parameter public async Task QueryTable(string sql, SugarParameter[] parameters = null) { return await BaseDal.QueryTable(sql, parameters); - } + /// /// 功能描述:查询前N条数据 /// 作  者:AZLinli.Blog.Core @@ -292,10 +296,10 @@ public async Task> Query( string orderByFileds) { return await BaseDal.Query( - whereExpression, - pageIndex, - pageSize, - orderByFileds); + whereExpression, + pageIndex, + pageSize, + orderByFileds); } /// @@ -308,34 +312,70 @@ public async Task> Query( /// 排序字段,如name asc,age desc /// 数据列表 public async Task> Query( - string where, - int pageIndex, - int pageSize, - string orderByFileds) + string where, + int pageIndex, + int pageSize, + string orderByFileds) { return await BaseDal.Query( - where, - pageIndex, - pageSize, - orderByFileds); + where, + pageIndex, + pageSize, + orderByFileds); } public async Task> QueryPage(Expression> whereExpression, - int pageIndex = 1, int pageSize = 20, string orderByFileds = null) + int pageIndex = 1, int pageSize = 20, string orderByFileds = null) { return await BaseDal.QueryPage(whereExpression, - pageIndex, pageSize, orderByFileds); + pageIndex, pageSize, orderByFileds); } public async Task> QueryMuch(Expression> joinExpression, Expression> selectExpression, Expression> whereLambda = null) where T : class, new() { return await BaseDal.QueryMuch(joinExpression, selectExpression, whereLambda); } + public async Task> QueryPage(PaginationModel pagination) { var express = DynamicLinqFactory.CreateLambda(pagination.Conditions); return await QueryPage(express, pagination.PageIndex, pagination.PageSize, pagination.OrderByFileds); } - } -} + #region 分表 + + public async Task> AddSplit(TEntity entity) + { + return await BaseDal.AddSplit(entity); + } + + public async Task UpdateSplit(TEntity entity, DateTime dateTime) + { + return await BaseDal.UpdateSplit(entity, dateTime); + } + + /// + /// 根据实体删除一条数据 + /// + /// 博文实体类 + /// + public async Task DeleteSplit(TEntity entity, DateTime dateTime) + { + return await BaseDal.DeleteSplit(entity, dateTime); + } + + public async Task QueryByIdSplit(object objId) + { + return await BaseDal.QueryByIdSplit(objId); + } + + public async Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, + int pageIndex = 1, int pageSize = 20, string orderByFields = null) + { + return await BaseDal.QueryPageSplit(whereExpression, beginTime, endTime, + pageIndex, pageSize, orderByFields); + } + + #endregion + } +} \ No newline at end of file diff --git a/Blog.Core.Services/BlogArticleServices.cs b/Blog.Core.Services/BlogArticleServices.cs index eeff04e3..67ea2b9e 100644 --- a/Blog.Core.Services/BlogArticleServices.cs +++ b/Blog.Core.Services/BlogArticleServices.cs @@ -23,7 +23,7 @@ public BlogArticleServices(IMapper mapper) /// /// /// - public async Task GetBlogDetails(int id) + public async Task GetBlogDetails(long id) { // 此处想获取上一条下一条数据,因此将全部数据list出来,有好的想法请提出 //var bloglist = await base.Query(a => a.IsDeleted==false, a => a.bID); diff --git a/Blog.Core.Services/RoleModulePermissionServices.cs b/Blog.Core.Services/RoleModulePermissionServices.cs index c0248e17..d3834f89 100644 --- a/Blog.Core.Services/RoleModulePermissionServices.cs +++ b/Blog.Core.Services/RoleModulePermissionServices.cs @@ -83,7 +83,7 @@ public async Task> GetRMPMaps() /// 菜单主键 /// 接口主键 /// - public async Task UpdateModuleId(int permissionId, int moduleId) + public async Task UpdateModuleId(long permissionId, long moduleId) { await _dal.UpdateModuleId(permissionId, moduleId); } diff --git a/Blog.Core.Services/SplitDemoServices.cs b/Blog.Core.Services/SplitDemoServices.cs new file mode 100644 index 00000000..cf8e2cc1 --- /dev/null +++ b/Blog.Core.Services/SplitDemoServices.cs @@ -0,0 +1,23 @@ +using Blog.Core.IRepository.Base; +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Blog.Core.Services.BASE; +using System.Linq; +using System.Threading.Tasks; + +namespace Blog.Core.FrameWork.Services +{ + /// + /// sysUserInfoServices + /// + public class SplitDemoServices : BaseServices, ISplitDemoServices + { + private readonly IBaseRepository _splitDemoRepository; + public SplitDemoServices(IBaseRepository splitDemoRepository) + { + _splitDemoRepository = splitDemoRepository; + } + + + } +} diff --git a/Blog.Core.Services/TasksLogServices.cs b/Blog.Core.Services/TasksLogServices.cs new file mode 100644 index 00000000..07d95f1f --- /dev/null +++ b/Blog.Core.Services/TasksLogServices.cs @@ -0,0 +1,137 @@ +using System.Linq.Expressions; +using System; +using System.Threading.Tasks; +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Blog.Core.Services.BASE; +using Blog.Core.Common.Extensions; +using SqlSugar; +using Blog.Core.Model; +using System.Collections.Generic; +using System.Linq; + +namespace Blog.Core.Services +{ + public partial class TasksLogServices : BaseServices, ITasksLogServices + { + public async Task> GetTaskLogs(long jobId, int page, int intPageSize, DateTime? runTime, DateTime? endTime) + { + RefAsync totalCount = 0; + Expression> whereExpression = log => true; + if (jobId > 0) whereExpression = whereExpression.And(log => log.JobId == jobId); + var data = await this.Db.Queryable() + .LeftJoin((log, qz) => log.JobId == qz.Id) + .OrderByDescending((log) => log.RunTime) + .WhereIF(jobId > 0, (log) => log.JobId == jobId) + .WhereIF(runTime != null, (log) => log.RunTime >= runTime.Value) + .WhereIF(endTime != null, (log) => log.RunTime <= endTime.Value) + .Select((log, qz) => new TasksLog + { + RunPars = log.RunPars, + RunResult = log.RunResult, + RunTime = log.RunTime, + EndTime = log.EndTime, + ErrMessage = log.ErrMessage, + ErrStackTrace = log.ErrStackTrace, + TotalTime = log.TotalTime, + Name = qz.Name, + JobGroup = qz.JobGroup + + }) + .ToPageListAsync(page, intPageSize, totalCount); + return new PageModel(page, totalCount, intPageSize, data); + } + public async Task GetTaskOverview(long jobId, DateTime? runTime, DateTime? endTime, string type) + { + //按年 + if ("year".Equals(type)) + { + + var days = endTime.Value.Year - runTime.Value.Year; + var dayArray = new List(); + while (days >= 0) + { + dayArray.Add(new DateTime(runTime.Value.Year + days, 1, 1)); + days--; + } + var queryableLeft = this.Db.Reportable(dayArray).ToQueryable(); + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime.Year >= runTime.Value.Year && x.RunTime.Year <= endTime.Value.Year); ; ; //声名表 + + var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left, + (x1, x2) => x1.ColumnName.Year == x2.RunTime.Year) + .GroupBy((x1, x2) => x1.ColumnName) + .Select((x1, x2) => new + { + 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), + date = x1.ColumnName.Year.ToString() + "年" + }).ToList().OrderBy(t => t.date); + return list; + } + else if ("month".Equals(type)) + { + //按月 + var queryableLeft = this.Db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable(); //生成月份 //ReportableDateType.MonthsInLast1yea 表式近一年月份 并且queryable之后还能在where过滤 + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime.Year == runTime.Value.Year); //声名表 + + //月份和表JOIN + var list = queryableLeft + .LeftJoin(queryableRight, (x1, x2) => x2.RunTime.ToString("MM月") == x1.ColumnName.ToString("MM月")) + + .GroupBy((x1, x2) => x1.ColumnName) + .Select((x1, x2) => new + { + //null的数据要为0所以不能用count + 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), + date = x1.ColumnName.ToString("MM月") + } + ).ToList().OrderBy(t => t.date); + await Task.CompletedTask; + return list; + } + else if ("day".Equals(type)) + { + //按日 + var time = runTime.Value; + var days = DateTime.DaysInMonth(time.Year, time.Month); + var dayArray = Enumerable.Range(1, days).Select(it => Convert.ToDateTime(time.ToString("yyyy-MM-" + it))).ToList();//转成时间数组 + var queryableLeft = this.Db.Reportable(dayArray).ToQueryable(); + var star = Convert.ToDateTime(runTime.Value.ToString("yyyy-MM-01 00:00:00")); + var end = Convert.ToDateTime(runTime.Value.ToString($"yyyy-MM-{days} 23:59:59")); + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime >= star && x.RunTime <= end); ; ; //声名表 + + var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left, + (x1, x2) => x1.ColumnName.Date == x2.RunTime.Date) + .GroupBy((x1, x2) => x1.ColumnName) + .Select((x1, x2) => new + { + 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), + date = x1.ColumnName.Day + }).ToList().OrderBy(t => t.date); + await Task.CompletedTask; + return list; + } + else if ("hour".Equals(type)) + { + //按小时 + var time = runTime.Value; + var days = 24; + var dayArray = Enumerable.Range(0, days).Select(it => Convert.ToDateTime(time.ToString($"yyyy-MM-dd {it.ToString().PadLeft(2, '0')}:00:00"))).ToList();//转成时间数组 + var queryableLeft = this.Db.Reportable(dayArray).ToQueryable(); + var queryableRight = this.Db.Queryable().Where((x) => x.RunTime >= runTime.Value.Date && x.RunTime <= runTime.Value.Date.AddDays(1).AddMilliseconds(-1)); //声名表 + + var list = this.Db.Queryable(queryableLeft, queryableRight, JoinType.Left, + (x1, x2) => x1.ColumnName.Hour == x2.RunTime.Hour) + .GroupBy((x1, x2) => x1.ColumnName) + .Select((x1, x2) => new + { + 执行次数 = SqlFunc.AggregateSum(SqlFunc.IIF(x2.Id > 0, 1, 0)), + date = x1.ColumnName.Hour + }).ToList().OrderBy(t => t.date); + await Task.CompletedTask; + return list; + } + await Task.CompletedTask; + return null; + } + } +} diff --git a/Blog.Core.Services/TenantService.cs b/Blog.Core.Services/TenantService.cs new file mode 100644 index 00000000..a552442b --- /dev/null +++ b/Blog.Core.Services/TenantService.cs @@ -0,0 +1,57 @@ +using Blog.Core.Common.DB; +using Blog.Core.Common.Seed; +using Blog.Core.IServices; +using Blog.Core.Model.Models; +using Blog.Core.Repository.UnitOfWorks; +using Blog.Core.Services.BASE; +using System.Threading.Tasks; + +namespace Blog.Core.Services; + +public class TenantService : BaseServices, ITenantService +{ + private readonly IUnitOfWorkManage _uowManager; + + public TenantService(IUnitOfWorkManage uowManage) + { + this._uowManager = uowManage; + } + + + public async Task SaveTenant(SysTenant tenant) + { + bool initDb = tenant.Id == 0; + using (var uow = _uowManager.CreateUnitOfWork()) + { + + tenant.DefaultTenantConfig(); + + if (tenant.Id == 0) + { + await Db.Insertable(tenant).ExecuteReturnSnowflakeIdAsync(); + } + else + { + var oldTenant = await QueryById(tenant.Id); + if (oldTenant.Connection != tenant.Connection) + { + initDb = true; + } + + await Db.Updateable(tenant).ExecuteCommandAsync(); + } + + uow.Commit(); + } + + if (initDb) + { + await InitTenantDb(tenant); + } + } + + public async Task InitTenantDb(SysTenant tenant) + { + await DBSeed.InitTenantSeedAsync(Db.AsTenant(), tenant.GetConnectionConfig()); + } +} \ No newline at end of file diff --git a/Blog.Core.Services/UserRoleServices.cs b/Blog.Core.Services/UserRoleServices.cs index 38f524da..26194837 100644 --- a/Blog.Core.Services/UserRoleServices.cs +++ b/Blog.Core.Services/UserRoleServices.cs @@ -19,7 +19,7 @@ public class UserRoleServices : BaseServices, IUserRoleServices /// /// /// - public async Task SaveUserRole(int uid, int rid) + public async Task SaveUserRole(long uid, long rid) { UserRole userRole = new UserRole(uid, rid); @@ -42,7 +42,7 @@ public async Task SaveUserRole(int uid, int rid) [Caching(AbsoluteExpiration = 30)] - public async Task GetRoleIdByUid(int uid) + public async Task GetRoleIdByUid(long uid) { return ((await base.Query(d => d.UserId == uid)).OrderByDescending(d => d.Id).LastOrDefault()?.RoleId).ObjToInt(); } diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs b/Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs index 4a71fbf5..b4486dfc 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/JobBase.cs @@ -1,5 +1,6 @@ using Blog.Core.Common.Helper; using Blog.Core.IServices; +using Blog.Core.Model.Models; using Quartz; using System; using System.Diagnostics; @@ -10,6 +11,12 @@ namespace Blog.Core.Tasks public class JobBase { public ITasksQzServices _tasksQzServices; + public ITasksLogServices _tasksLogServices; + public JobBase(ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + { + _tasksQzServices = tasksQzServices; + _tasksLogServices = tasksLogServices; + } /// /// 执行指定任务 /// @@ -17,40 +24,50 @@ public class JobBase /// public async Task ExecuteJob(IJobExecutionContext context, Func func) { - //记录Job时间 - Stopwatch stopwatch = new Stopwatch(); + //记录Job + TasksLog tasksLog = new TasksLog(); //JOBID int jobid = context.JobDetail.Key.Name.ObjToInt(); //JOB组名 string groupName = context.JobDetail.Key.Group; //日志 - string jobHistory = $"【{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}】【执行开始】【Id:{jobid},组别:{groupName}】"; - //耗时 - double taskSeconds = 0; + tasksLog.JobId = jobid; + tasksLog.RunTime = DateTime.Now; + string jobHistory = $"【{tasksLog.RunTime.ToString("yyyy-MM-dd HH:mm:ss")}】【执行开始】【Id:{jobid},组别:{groupName}】"; try { - stopwatch.Start(); await func();//执行任务 - stopwatch.Stop(); - jobHistory += $",【{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}】【执行成功】"; + tasksLog.EndTime = DateTime.Now; + tasksLog.RunResult = true; + jobHistory += $",【{tasksLog.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}】【执行成功】"; + + JobDataMap jobPars = context.JobDetail.JobDataMap; + tasksLog.RunPars = jobPars.GetString("JobParam"); } catch (Exception ex) { - JobExecutionException e2 = new JobExecutionException(ex); + tasksLog.EndTime = DateTime.Now; + tasksLog.RunResult = false; + //JobExecutionException e2 = new JobExecutionException(ex); //true 是立即重新执行任务 - e2.RefireImmediately = true; - jobHistory += $",【{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}】【执行失败:{ex.Message}】"; + //e2.RefireImmediately = true; + tasksLog.ErrMessage = ex.Message; + tasksLog.ErrStackTrace = ex.StackTrace; + jobHistory += $",【{tasksLog.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}】【执行失败:{ex.Message}】"; } finally { - taskSeconds = Math.Round(stopwatch.Elapsed.TotalSeconds, 3); - jobHistory += $",【{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}】【执行结束】(耗时:{taskSeconds}秒)"; + tasksLog.TotalTime = Math.Round((tasksLog.EndTime - tasksLog.RunTime).TotalSeconds,3); + jobHistory += $"(耗时:{tasksLog.TotalTime}秒)"; if (_tasksQzServices != null) { var model = await _tasksQzServices.QueryById(jobid); if (model != null) { + if(_tasksLogServices != null) await _tasksLogServices.Add(tasksLog); model.RunTimes += 1; + if (model.TriggerType == 0) model.CycleHasRunTimes += 1; + if (model.TriggerType == 0 && model.CycleRunTimes != 0 && model.CycleHasRunTimes >= model.CycleRunTimes) model.IsStart = false;//循环完善,当循环任务完成后,停止该任务,防止下次启动再次执行 var separator = "
    "; // 这里注意数据库字段的长度问题,超过限制,会造成数据库remark不更新问题。 model.Remark = diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index 743180c3..1dcc57ed 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -21,7 +21,8 @@ public class Job_AccessTrendLog_Quartz : JobBase, IJob private readonly IAccessTrendLogServices _accessTrendLogServices; private readonly IWebHostEnvironment _environment; - public Job_AccessTrendLog_Quartz(IAccessTrendLogServices accessTrendLogServices, ITasksQzServices tasksQzServices, IWebHostEnvironment environment) + public Job_AccessTrendLog_Quartz(IAccessTrendLogServices accessTrendLogServices, IWebHostEnvironment environment, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + : base(tasksQzServices, tasksLogServices) { _accessTrendLogServices = accessTrendLogServices; _environment = environment; diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs index 173e996e..f116fe05 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Blogs_Quartz.cs @@ -1,5 +1,6 @@ using Blog.Core.IServices; using Quartz; +using System; using System.Threading.Tasks; /// @@ -11,10 +12,10 @@ public class Job_Blogs_Quartz : JobBase, IJob { private readonly IBlogArticleServices _blogArticleServices; - public Job_Blogs_Quartz(IBlogArticleServices blogArticleServices, ITasksQzServices tasksQzServices) + public Job_Blogs_Quartz(IBlogArticleServices blogArticleServices, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + : base(tasksQzServices, tasksLogServices) { _blogArticleServices = blogArticleServices; - _tasksQzServices = tasksQzServices; } public async Task Execute(IJobExecutionContext context) { @@ -22,6 +23,7 @@ public async Task Execute(IJobExecutionContext context) } public async Task Run(IJobExecutionContext context) { + System.Console.WriteLine($"Job_Blogs_Quartz 执行 {DateTime.Now.ToShortTimeString()}"); var list = await _blogArticleServices.Query(); // 也可以通过数据库配置,获取传递过来的参数 JobDataMap data = context.JobDetail.JobDataMap; diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs index 8e9b3847..18c4c298 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_OperateLog_Quartz.cs @@ -20,11 +20,11 @@ public class Job_OperateLog_Quartz : JobBase, IJob private readonly IOperateLogServices _operateLogServices; private readonly IWebHostEnvironment _environment; - public Job_OperateLog_Quartz(IOperateLogServices operateLogServices, ITasksQzServices tasksQzServices, IWebHostEnvironment environment) + public Job_OperateLog_Quartz(IOperateLogServices operateLogServices,IWebHostEnvironment environment, ITasksQzServices tasksQzServices,ITasksLogServices tasksLogServices) + :base(tasksQzServices, tasksLogServices) { _operateLogServices = operateLogServices; - _environment = environment; - _tasksQzServices = tasksQzServices; + _environment = environment; } public async Task Execute(IJobExecutionContext context) { diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs index f9640749..9d2d4cea 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs @@ -1,7 +1,8 @@ -using Blog.Core.Repository.UnitOfWorks; + using Blog.Core.IServices; using Blog.Core.IServices.BASE; using Blog.Core.Model.Models; +using Blog.Core.Repository.UnitOfWorks; using Microsoft.Extensions.Logging; using Quartz; using System; @@ -20,7 +21,8 @@ public class Job_Trojan_Quartz : JobBase, IJob private readonly ITrojanUsersServices _TrojanUsers; private readonly ILogger _logger; - public Job_Trojan_Quartz(IUnitOfWorkManage unitOfWorkManage, IBaseServices iusers_DetailServices, ITrojanUsersServices trojanUsers, ITasksQzServices tasksQzServices, ILogger logger) + public Job_Trojan_Quartz(IUnitOfWorkManage unitOfWorkManage, IBaseServices iusers_DetailServices, ITrojanUsersServices trojanUsers, ILogger logger, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + : base(tasksQzServices, tasksLogServices) { _tasksQzServices = tasksQzServices; _unitOfWorkManage = unitOfWorkManage; diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_URL_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_URL_Quartz.cs index 666a8d41..1ec225c3 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_URL_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_URL_Quartz.cs @@ -1,12 +1,7 @@ using Blog.Core.Common.Helper; -using Blog.Core.Repository.UnitOfWorks; using Blog.Core.IServices; -using Blog.Core.IServices.BASE; -using Blog.Core.Model.Models; using Microsoft.Extensions.Logging; using Quartz; -using System; -using System.Collections.Generic; using System.Threading.Tasks; /// @@ -18,7 +13,8 @@ public class Job_URL_Quartz : JobBase, IJob { private readonly ILogger _logger; - public Job_URL_Quartz(ITasksQzServices tasksQzServices, ILogger logger) + public Job_URL_Quartz(ILogger logger, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) + : base(tasksQzServices, tasksLogServices) { _tasksQzServices = tasksQzServices; _logger = logger; diff --git a/Blog.Core.Tasks/QuartzNet/SchedulerCenterServer.cs b/Blog.Core.Tasks/QuartzNet/SchedulerCenterServer.cs index 8c21115c..474a2a9a 100644 --- a/Blog.Core.Tasks/QuartzNet/SchedulerCenterServer.cs +++ b/Blog.Core.Tasks/QuartzNet/SchedulerCenterServer.cs @@ -125,6 +125,12 @@ public async Task> AddScheduleJobAsync(TasksQz tasksQz) result.msg = $"该任务计划已经在执行:【{tasksQz.Name}】,请勿重复启动!"; return result; } + if(tasksQz.TriggerType == 0 && tasksQz.CycleRunTimes != 0 && tasksQz.CycleHasRunTimes>=tasksQz.CycleRunTimes) + { + result.success = false; + result.msg = $"该任务计划已完成:【{tasksQz.Name}】,无需重复启动,如需启动请修改已循环次数再提交"; + return result; + } #region 设置开始时间和结束时间 if (tasksQz.BeginTime == null) diff --git a/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs b/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs index 99757e4f..8f6ad096 100644 --- a/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs +++ b/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs @@ -3,6 +3,7 @@ using Blog.Core.Common.Helper; using Blog.Core.IRepository.Base; using Blog.Core.Model.Models; +using SqlSugar; using Xunit; using Xunit.Abstractions; @@ -21,13 +22,42 @@ public DynamicLambdaTest(ITestOutputHelper testOutputHelper) var container = dI_Test.DICollections(); _baseRepository = container.Resolve>(); - + _baseRepository.Db.Aop.OnLogExecuting = (sql, p) => + { + _testOutputHelper.WriteLine(""); + _testOutputHelper.WriteLine("==================FullSql=====================", "", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); + _testOutputHelper.WriteLine("【SQL语句】:" + sql); + _testOutputHelper.WriteLine(GetParas(p)); + _testOutputHelper.WriteLine("=============================================="); + _testOutputHelper.WriteLine(""); + }; //DbContext.Init(BaseDBConfig.ConnectionString,(DbType)BaseDBConfig.DbType); + + Init(); + } + + private static string GetParas(SugarParameter[] pars) + { + string key = "【SQL参数】:"; + foreach (var param in pars) + { + key += $"{param.ParameterName}:{param.Value}\n"; + } + + return key; + } + + private void Init() + { + _baseRepository.Db.CodeFirst.InitTables(); + _baseRepository.Db.CodeFirst.InitTables(); } [Fact] public async void Get_Blogs_DynamicTest() { + //方便前端自定义条件查询 + //语法更舒服 var data = await _baseRepository.Query(); _testOutputHelper.WriteLine(data.ToJson()); @@ -39,12 +69,26 @@ public async void Get_Blogs_DynamicTest() await TestConditions("btitle like \"测试数据\" && bId>0"); await TestConditions("btitle like \"测试!@#$%^&*()_+|}{\":<>?LP\"数据\" && bId>0"); await TestConditions("btitle like \"测试!@+)(*()_&%^&^$^%$IUYWIQOJVLXKZM>?Z<>??LP\"数据\" && bId>0"); - - //比如文章下 过滤创建人 - //await TestConditions("btitle.user.name like \"老张\""); - await TestConditions("IsDeleted == false"); await TestConditions("IsDeleted == true"); + + //导航属性 + + //一对一 + + //查询 老张的文章 + await TestConditions("User.RealName like \"老张\""); + //查询 2019年后的老张文章 + await TestConditions("User.RealName like \"老张\" && bUpdateTime>=\"2019-01-01 01:01:01\""); + + //一对多 + + //查询 评论中有"写的不错"的文章 + await TestConditions("Comments.Comment like \"写的不错\""); + //查询 2019后的 评论中有"写的不错"的文章 + await TestConditions("Comments.Comment like \"写的不错\" && bUpdateTime>=\"2019-01-01 01:01:01\""); + //查询 有老张评论的文章 + await TestConditions("Comments.User.LoginName like \"老张\""); } private async Task TestConditions(string conditions) diff --git a/Blog.Core.Tests/Controller_Test/BlogController_Should.cs b/Blog.Core.Tests/Controller_Test/BlogController_Should.cs index 3d1e3178..59d42ae0 100644 --- a/Blog.Core.Tests/Controller_Test/BlogController_Should.cs +++ b/Blog.Core.Tests/Controller_Test/BlogController_Should.cs @@ -53,7 +53,7 @@ public async void Get_Blog_Page_Test() [Fact] public async void Get_Blog_Test() { - MessageModel blogVo = await blogController.Get(1); + MessageModel blogVo = await blogController.Get(1.ObjToLong()); Assert.NotNull(blogVo); } diff --git a/Blog.Core.Tests/DependencyInjection/DI_Test.cs b/Blog.Core.Tests/DependencyInjection/DI_Test.cs index 6fad1f45..ff2c74cd 100644 --- a/Blog.Core.Tests/DependencyInjection/DI_Test.cs +++ b/Blog.Core.Tests/DependencyInjection/DI_Test.cs @@ -74,13 +74,13 @@ public IContainer DICollections() var permission = new List(); var permissionRequirement = new PermissionRequirement( - "/api/denied", - permission, - ClaimTypes.Role, - AppSettings.app(new string[] { "Audience", "Issuer" }), - AppSettings.app(new string[] { "Audience", "Audience" }), - signingCredentials,//签名凭据 - expiration: TimeSpan.FromSeconds(60 * 60)//接口的过期时间 + "/api/denied", + permission, + ClaimTypes.Role, + AppSettings.app(new string[] { "Audience", "Issuer" }), + AppSettings.app(new string[] { "Audience", "Audience" }), + signingCredentials, //签名凭据 + expiration: TimeSpan.FromSeconds(60 * 60) //接口的过期时间 ); services.AddSingleton(permissionRequirement); @@ -88,17 +88,16 @@ public IContainer DICollections() services.AddAuthorization(options => { options.AddPolicy(Permissions.Name, - policy => policy.Requirements.Add(permissionRequirement)); + policy => policy.Requirements.Add(permissionRequirement)); }); services.AddScoped(o => { return new SqlSugar.SqlSugarScope(new SqlSugar.ConnectionConfig() { - ConnectionString = GetMainConnectionDb().Connection,//必填, 数据库连接字符串 - DbType = (SqlSugar.DbType)GetMainConnectionDb().DbType,//必填, 数据库类型 - IsAutoCloseConnection = true,//默认false, 时候知道关闭数据库连接, 设置为true无需使用using或者Close操作 - InitKeyType = SqlSugar.InitKeyType.SystemTable//默认SystemTable, 字段信息读取, 如:该属性是不是主键,标识列等等信息 + ConnectionString = GetMainConnectionDb().Connection, //必填, 数据库连接字符串 + DbType = (SqlSugar.DbType)GetMainConnectionDb().DbType, //必填, 数据库类型 + IsAutoCloseConnection = true, //默认false, 时候知道关闭数据库连接, 设置为true无需使用using或者Close操作 }); }); @@ -121,19 +120,19 @@ public IContainer DICollections() builder.RegisterAssemblyTypes(typeof(Startup).Assembly) .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType) .PropertiesAutowired(); - + var servicesDllFile = Path.Combine(basePath, "Blog.Core.Services.dll"); var assemblysServices = Assembly.LoadFrom(servicesDllFile); builder.RegisterAssemblyTypes(assemblysServices) - .AsImplementedInterfaces() - .InstancePerLifetimeScope() - .PropertiesAutowired() - .EnableInterfaceInterceptors(); + .AsImplementedInterfaces() + .InstancePerLifetimeScope() + .PropertiesAutowired() + .EnableInterfaceInterceptors(); var repositoryDllFile = Path.Combine(basePath, "Blog.Core.Repository.dll"); var assemblysRepository = Assembly.LoadFrom(repositoryDllFile); builder.RegisterAssemblyTypes(assemblysRepository) - .PropertiesAutowired().AsImplementedInterfaces(); + .PropertiesAutowired().AsImplementedInterfaces(); services.Replace(ServiceDescriptor.Transient()); diff --git a/Blog.Core.Tests/Repository_Test/OrmTest.cs b/Blog.Core.Tests/Repository_Test/OrmTest.cs new file mode 100644 index 00000000..fa4629f7 --- /dev/null +++ b/Blog.Core.Tests/Repository_Test/OrmTest.cs @@ -0,0 +1,73 @@ +using System; +using Autofac; +using Blog.Core.Common.Extensions; +using Blog.Core.IRepository.Base; +using Blog.Core.Model.Models; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; +using SqlSugar; +using Xunit; +using Xunit.Abstractions; + +namespace Blog.Core.Tests; + +public class OrmTest +{ + private readonly ITestOutputHelper _testOutputHelper; + private readonly IBaseRepository _baseRepository; + DI_Test dI_Test = new DI_Test(); + + public OrmTest(ITestOutputHelper testOutputHelper) + { + _testOutputHelper = testOutputHelper; + + var container = dI_Test.DICollections(); + + _baseRepository = container.Resolve>(); + _baseRepository.Db.Aop.OnLogExecuting = (sql, p) => + { + _testOutputHelper.WriteLine(""); + _testOutputHelper.WriteLine("==================FullSql=====================", "", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); + _testOutputHelper.WriteLine("【SQL语句】:" + sql); + _testOutputHelper.WriteLine(GetParas(p)); + _testOutputHelper.WriteLine("=============================================="); + _testOutputHelper.WriteLine(""); + }; + } + + private static string GetParas(SugarParameter[] pars) + { + string key = "【SQL参数】:"; + foreach (var param in pars) + { + key += $"{param.ParameterName}:{param.Value}\n"; + } + + return key; + } + + [Fact] + public void MultiTables() + { + var sql = _baseRepository.Db.Queryable() + .AS($@"{nameof(BlogArticle)}_TenantA") + .ToSqlString(); + //_testOutputHelper.WriteLine(sql); + + _baseRepository.Db.MappingTables.Add(nameof(BlogArticle), $@"{nameof(BlogArticle)}_TenantA"); + + var query = _baseRepository.Db.Queryable() + .LeftJoin((a, c) => a.bID == c.bID); + // query.QueryBuilder.AsTables.AddOrModify(nameof(BlogArticle), $@"{nameof(BlogArticle)}_TenantA"); + //query.QueryBuilder.AsTables.AddOrModify(nameof(BlogArticleComment), $@"{nameof(BlogArticleComment)}_TenantA"); + // query.QueryBuilder.AsTables.AddOrModify(nameof(BlogArticleComment), $@"{nameof(BlogArticleComment)}_TenantA"); + // query.QueryBuilder.AsTables.AddOrModify(nameof(SysUserInfo), $@"{nameof(SysUserInfo)}_TenantA"); + + + sql = query.ToSqlString(); + + _testOutputHelper.WriteLine(sql); + + sql = _baseRepository.Db.Deleteable().ToSqlString(); + _testOutputHelper.WriteLine(sql); + } +} \ No newline at end of file diff --git a/README.md b/README.md index 7f37ce66..ee36dc2c 100644 --- a/README.md +++ b/README.md @@ -73,20 +73,24 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x #### 框架模块: - [x] 采用`仓储+服务+接口`的形式封装框架; -- [x] 异步 async/await 开发; -- [x] 接入国产数据库ORM组件 —— SqlSugar,封装数据库操作; +- [x] 自定义项目模板 `CreateYourProject.bat` ,可以一键生成自己的项目;🎶 +- [x] 异步 async/await 开发; +- [x] 接入国产数据库ORM组件 —— SqlSugar,封装数据库操作,支持级联操作; - [x] 支持自由切换多种数据库,MySql/SqlServer/Sqlite/Oracle/Postgresql/达梦/人大金仓; - [x] 实现项目启动,自动生成种子数据 ✨; - [x] 实现数据库主键类型配置化,什么类型都可以自定义 ✨; - [x] 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等,并自动持久化到数据库表🎶; - [x] 支持项目事务处理(若要分布式,用cap即可)✨; - [x] 设计4种 AOP 切面编程,功能涵盖:日志、缓存、审计、事务 ✨; +- [x] Log4net 多种日志自动生成到数据库中,目前支持MySql/SqlServer/Sqlite/Oracle/Postgresql🎉; - [x] 设计并支持按钮级别的RBAC权限控制,同时支持一键同步接口和菜单 🎶; - [x] 支持 T4 代码模板,自动生成每层代码; - [x] 或使用 DbFirst 一键创建自己项目的四层文件(支持多库); - [x] 封装`Blog.Core.Webapi.Template`项目模板,一键重建自己的项目 ✨; - [x] 搭配多个前端案例供参考和借鉴:Blog.Vue、Blog.Admin、Nuxt.tbug、Blog.Mvp.Blazor ✨; - [x] 统一集成 IdentityServer4 认证 ✨; +- [x] 统一实现多租户; + 组件模块: - [x] 提供 Redis 做缓存处理; @@ -111,6 +115,9 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 新增 Kafka 消息队列,并配合实现EventBus ✨; - [x] 新增 微信公众号管理,并集成到Blog.Admin后台 ✨; - [x] 新增 - 数据部门权限; +- [x] 新增 - Log4net集成日志数据持久化到数据库; +- [x] 新增 - 多租户模式(单表,多表,多库三种模式); + 微服务模块: - [x] 可配合 Docker 实现容器化; @@ -229,9 +236,9 @@ Contributions of any kind are welcome! ## 售后服务与支持 -鼓励作者,简单打赏,入微信群,随时随地解答我框架中(NetCore、Vue、DDD、IdentityServer4等)的疑难杂症。 -注意主要是帮忙解决bug和思路,不会远程授课,但是可以适当发我代码,我帮忙调试, -打赏的时候,备注自己的微信号,我拉你进群,两天内没回应,QQ私聊我(3143422472); +鼓励作者,简单打赏~~ +打赏的时候,备注自己的微信号,加个微信,交个朋友,两天内没回应,QQ私聊我(3143422472); +目前精力有限,主要针对企业级用户答疑,或者购买授权版的个人用户。 [赞赏列表](http://apk.neters.club/.doc/Contribution/) From 7b8d60d9d07ce02cc80102fa1fb3795278a2a0e8 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Fri, 14 Apr 2023 11:20:10 +0800 Subject: [PATCH 252/382] =?UTF-8?q?=E2=9C=A8=20=E4=BC=98=E5=8C=96Http?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=A8=A1=E7=89=88=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=BF=E4=BA=9B=E9=99=84=E5=8A=A0=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Program.cs | 58 +++++++++---------- .../Extensions/HttpRequestExtension.cs | 28 +++++++++ .../Policys/PermissionHandler.cs | 4 +- .../Utility/SerilogRequestUtility.cs | 37 +++++++++++- 4 files changed, 90 insertions(+), 37 deletions(-) create mode 100644 Blog.Core.Common/Extensions/HttpRequestExtension.cs diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 6f326a7c..b36a02ac 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -29,7 +29,6 @@ var builder = WebApplication.CreateBuilder(args); - // 1、配置host与容器 builder.Host .UseServiceProviderFactory(new AutofacServiceProviderFactory()) @@ -50,7 +49,6 @@ builder.Services.AddSingleton(new AppSettings(builder.Configuration)); - builder.Services.AddUiFilesZipSetup(builder.Environment); Permissions.IsUseIds4 = AppSettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool(); @@ -102,30 +100,30 @@ builder.Services.AddSession(); builder.Services.AddHttpPollySetup(); builder.Services.AddControllers(o => -{ - o.Filters.Add(typeof(GlobalExceptionsFilter)); - //o.Conventions.Insert(0, new GlobalRouteAuthorizeConvention()); - o.Conventions.Insert(0, new GlobalRoutePrefixFilter(new RouteAttribute(RoutePrefix.Name))); -}) -.AddNewtonsoftJson(options => -{ - options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; - options.SerializerSettings.ContractResolver = new DefaultContractResolver(); - options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; - //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; - options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; - options.SerializerSettings.Converters.Add(new StringEnumConverter()); - //将long类型转为string - options.SerializerSettings.Converters.Add(new NumberConverter(NumberConverterShip.Int64)); -}) -//.AddFluentValidation(config => -//{ -// //程序集方式添加验证 -// config.RegisterValidatorsFromAssemblyContaining(typeof(UserRegisterVoValidator)); -// //是否与MvcValidation共存 -// config.DisableDataAnnotationsValidation = true; -//}) -; + { + o.Filters.Add(typeof(GlobalExceptionsFilter)); + //o.Conventions.Insert(0, new GlobalRouteAuthorizeConvention()); + o.Conventions.Insert(0, new GlobalRoutePrefixFilter(new RouteAttribute(RoutePrefix.Name))); + }) + .AddNewtonsoftJson(options => + { + options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; + options.SerializerSettings.ContractResolver = new DefaultContractResolver(); + options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; + //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; + options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; + options.SerializerSettings.Converters.Add(new StringEnumConverter()); + //将long类型转为string + options.SerializerSettings.Converters.Add(new NumberConverter(NumberConverterShip.Int64)); + }) + //.AddFluentValidation(config => + //{ + // //程序集方式添加验证 + // config.RegisterValidatorsFromAssemblyContaining(typeof(UserRegisterVoValidator)); + // //是否与MvcValidation共存 + // config.DisableDataAnnotationsValidation = true; + //}) + ; builder.Services.AddEndpointsApiExplorer(); @@ -167,13 +165,9 @@ app.UseStatusCodePages(); app.UseSerilogRequestLogging(options => { + options.MessageTemplate = SerilogRequestUtility.HttpMessageTemplate; options.GetLevel = SerilogRequestUtility.GetRequestLevel; - options.EnrichDiagnosticContext = (diagnosticContext, httpContext) => - { - diagnosticContext.Set("RequestHost", httpContext.Request.Host.Value); - diagnosticContext.Set("RequestScheme", httpContext.Request.Scheme); - diagnosticContext.Set("RequestIp", httpContext.GetRequestIp()); - }; + options.EnrichDiagnosticContext = SerilogRequestUtility.EnrichFromRequest; }); app.UseRouting(); diff --git a/Blog.Core.Common/Extensions/HttpRequestExtension.cs b/Blog.Core.Common/Extensions/HttpRequestExtension.cs new file mode 100644 index 00000000..7e87fd28 --- /dev/null +++ b/Blog.Core.Common/Extensions/HttpRequestExtension.cs @@ -0,0 +1,28 @@ +using Microsoft.AspNetCore.Http; +using System.IO; +using System.Text; + +namespace Blog.Core.Common.Extensions; + +public static class HttpRequestExtension +{ + public static string GetRequestBody(this HttpRequest request) + { + if (request.Body.Length < 1) + { + return default; + } + + var bodyStr = ""; + // 启用倒带功能,就可以让 Request.Body 可以再次读取 + request.Body.Seek(0, SeekOrigin.Begin); + using (StreamReader reader + = new StreamReader(request.Body, Encoding.UTF8, true, 1024, true)) + { + bodyStr = reader.ReadToEnd(); + } + + request.Body.Position = 0; + return bodyStr; + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs index 4ed55525..121b9b10 100644 --- a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs +++ b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs @@ -1,6 +1,8 @@ using Blog.Core.Common; using Blog.Core.Common.Helper; +using Blog.Core.Common.HttpContextUser; using Blog.Core.IServices; +using Blog.Core.Model; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; @@ -12,8 +14,6 @@ using System.Security.Claims; using System.Text.RegularExpressions; using System.Threading.Tasks; -using Blog.Core.Common.HttpContextUser; -using Blog.Core.Model; namespace Blog.Core.AuthHelper { diff --git a/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs b/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs index cab7ae55..61b652dd 100644 --- a/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs +++ b/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs @@ -1,17 +1,22 @@ -using Microsoft.AspNetCore.Http; +using Blog.Core.Common.Extensions; +using Blog.Core.Common.Https; +using Microsoft.AspNetCore.Http; +using Serilog; using Serilog.Events; namespace Blog.Core.Serilog.Utility; public class SerilogRequestUtility { + public const string HttpMessageTemplate = + "HTTP {RequestMethod} {RequestPath} QueryString:{QueryString} Body:{Body} responded {StatusCode} in {Elapsed:0.0000} ms"; + private static readonly List _ignoreUrl = new() { "/job", }; - private static LogEventLevel DefaultGetLevel( - HttpContext ctx, + private static LogEventLevel DefaultGetLevel(HttpContext ctx, double _, Exception? ex) { @@ -31,4 +36,30 @@ private static LogEventLevel IgnoreRequest(HttpContext ctx) return _ignoreUrl.Any(s => path.StartsWith(s)) ? LogEventLevel.Verbose : LogEventLevel.Information; } + + /// + /// 从Request中增加附属属性 + /// + /// + /// + public static void EnrichFromRequest(IDiagnosticContext diagnosticContext, HttpContext httpContext) + { + var request = httpContext.Request; + + diagnosticContext.Set("RequestHost", request.Host); + diagnosticContext.Set("RequestScheme", request.Scheme); + diagnosticContext.Set("Protocol", request.Protocol); + diagnosticContext.Set("RequestIp", httpContext.GetRequestIp()); + + diagnosticContext.Set("QueryString", request.QueryString.HasValue ? request.QueryString.Value : string.Empty); + diagnosticContext.Set("Body", request.ContentLength > 0 ? request.GetRequestBody() : string.Empty); + + diagnosticContext.Set("ContentType", httpContext.Response.ContentType); + + var endpoint = httpContext.GetEndpoint(); + if (endpoint != null) + { + diagnosticContext.Set("EndpointName", endpoint.DisplayName); + } + } } \ No newline at end of file From 90157e470ded0a785bb7dee34de32bc780d26265 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Fri, 14 Apr 2023 11:46:44 +0800 Subject: [PATCH 253/382] =?UTF-8?q?=E2=9C=A8=20=E6=B7=BB=E5=8A=A0Seq?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Api.csproj | 5 +++++ Blog.Core.Api/appsettings.json | 5 +++++ Blog.Core.Extensions/Blog.Core.Extensions.csproj | 1 + .../ServiceExtensions/SerilogSetup.cs | 16 +++++++++++++++- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 3bf64399..5ff619d1 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -52,6 +52,11 @@ + + + + + diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 78ede19b..0523d64d 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -324,5 +324,10 @@ "FiedValue": "Blog.Core.Api" } ] + }, + "Seq": { + "Enabled": true, + "Address": "http://localhost:5341/", + "ApiKey": "" } } \ No newline at end of file diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 9eae3d92..1dfbbc48 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -22,6 +22,7 @@ + diff --git a/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs index 0d8a0768..94975918 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.Hosting; using Serilog; using Serilog.Debugging; +using Serilog.Events; using System; using System.IO; @@ -26,8 +27,21 @@ public static IHostBuilder AddSerilogSetup(this IHostBuilder host) //配置日志库 .WriteToLogBatching(); + //配置Seq日志中心 + if (AppSettings.app("Seq", "Enabled").ObjToBool()) + { + var address = AppSettings.app("Seq", "Address"); + var apiKey = AppSettings.app("Seq", "ApiKey"); + if (!address.IsNullOrEmpty()) + { + loggerConfiguration = + loggerConfiguration.WriteTo.Seq(address, restrictedToMinimumLevel: LogEventLevel.Verbose, + apiKey: apiKey, eventBodyLimitBytes: 10485760); + } + } + Log.Logger = loggerConfiguration.CreateLogger(); - + //Serilog 内部日志 var file = File.CreateText(LogContextStatic.Combine($"SerilogDebug{DateTime.Now:yyyyMMdd}.txt")); SelfLog.Enable(TextWriter.Synchronized(file)); From 86e5d6f845d9bc98c5c850759b8c886c7a21f628 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 21 Apr 2023 22:13:41 +0800 Subject: [PATCH 254/382] Update swg-login.html --- Blog.Core.Api/wwwroot/swg-login.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/wwwroot/swg-login.html b/Blog.Core.Api/wwwroot/swg-login.html index 6e7c6b09..022fec49 100644 --- a/Blog.Core.Api/wwwroot/swg-login.html +++ b/Blog.Core.Api/wwwroot/swg-login.html @@ -3,7 +3,7 @@ 登录 - 接口文档 - + From 720ef2472ada7c5f8bb88a3c3fa39a7f03a9ec04 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 21 Apr 2023 22:15:45 +0800 Subject: [PATCH 255/382] Update swg-login.html --- Blog.Core.Api/wwwroot/swg-login.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/wwwroot/swg-login.html b/Blog.Core.Api/wwwroot/swg-login.html index 6e7c6b09..022fec49 100644 --- a/Blog.Core.Api/wwwroot/swg-login.html +++ b/Blog.Core.Api/wwwroot/swg-login.html @@ -3,7 +3,7 @@ 登录 - 接口文档 - + From 50a936bdebfa752b92784192a0aed2b311d0e7c7 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Sat, 22 Apr 2023 11:10:30 +0800 Subject: [PATCH 256/382] =?UTF-8?q?=E2=9C=A8=20=E5=A2=9E=E5=8A=A0IOption?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原有AppSetting 手写字符串去读取,极容易出错,扩展性也低:如果要修改或者增加值 就要到处都写 保留AppSetting基础上增加IOption方便读取配置,可反序列对象 增加IConfigurableOptions接口 可参考SeqOptions配置 配置文件名为Option或Options结尾,匹配时会忽略Option或Options SeqOptions->对应 AppSetting中Seq节点 可直接在控制器中注入使用 参考ValuesController private readonly SeqOptions _seqOptions; cto(IOptions seqOptions){ _seqOptions = seqOptions.Value; } --- Blog.Core.Api/Blog.Core.Api.csproj | 9 +- Blog.Core.Api/Blog.Core.xml | 2 +- Blog.Core.Api/Controllers/ValuesController.cs | 39 ++++-- Blog.Core.Api/Program.cs | 7 +- Blog.Core.Common/App.cs | 114 +++++++++++++++++- Blog.Core.Common/Core/InternalApp.cs | 8 ++ .../Extensions/RuntimeExtension.cs | 84 +++++++++++++ Blog.Core.Common/Helper/Appsettings.cs | 21 ++-- .../Option/Core/ConfigurableOptions.cs | 61 ++++++++++ .../Option/Core/IConfigurableOptions.cs | 11 ++ Blog.Core.Common/Option/SeqOptions.cs | 18 +++ .../ServiceExtensions/AllOptionRegister.cs | 21 ++++ .../ServiceExtensions/ApplicationSetup.cs | 24 ++++ .../ServiceExtensions/SerilogSetup.cs | 8 +- 14 files changed, 396 insertions(+), 31 deletions(-) create mode 100644 Blog.Core.Common/Extensions/RuntimeExtension.cs create mode 100644 Blog.Core.Common/Option/Core/ConfigurableOptions.cs create mode 100644 Blog.Core.Common/Option/Core/IConfigurableOptions.cs create mode 100644 Blog.Core.Common/Option/SeqOptions.cs create mode 100644 Blog.Core.Extensions/ServiceExtensions/AllOptionRegister.cs create mode 100644 Blog.Core.Extensions/ServiceExtensions/ApplicationSetup.cs diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 5ff619d1..f3f9befa 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -5,10 +5,11 @@ Exe net6.0 - enable + enable Linux true + @@ -65,8 +66,8 @@ - - + + @@ -114,4 +115,4 @@ - + \ No newline at end of file diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 3cf56019..e664ed17 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -761,7 +761,7 @@ Values控制器 - + ValuesController diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 677eb138..03b37556 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -2,6 +2,7 @@ using Blog.Core.Common; using Blog.Core.Common.HttpContextUser; using Blog.Core.Common.Https.HttpPolly; +using Blog.Core.Common.Option; using Blog.Core.Common.WebApiClients.HttpApis; using Blog.Core.EventBus; using Blog.Core.EventBus.EventHandling; @@ -13,6 +14,7 @@ using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; using System.ComponentModel.DataAnnotations; using System.Linq.Expressions; @@ -40,6 +42,7 @@ public class ValuesController : ControllerBase private readonly IDoubanApi _doubanApi; readonly IBlogArticleServices _blogArticleServices; private readonly IHttpPollyHelper _httpPollyHelper; + private readonly SeqOptions _seqOptions; /// /// ValuesController @@ -62,7 +65,8 @@ public ValuesController(IBlogArticleServices blogArticleServices , IUser user, IPasswordLibServices passwordLibServices , IBlogApi blogApi , IDoubanApi doubanApi - , IHttpPollyHelper httpPollyHelper) + , IHttpPollyHelper httpPollyHelper + , IOptions seqOptions) { // 测试 Authorize 和 mapper _mapper = mapper; @@ -82,6 +86,7 @@ public ValuesController(IBlogArticleServices blogArticleServices _blogArticleServices = blogArticleServices; // httpPolly _httpPollyHelper = httpPollyHelper; + _seqOptions = seqOptions.Value; } [HttpGet] @@ -127,7 +132,9 @@ public async Task> Get() /* * 测试 sql 查询 */ - var queryBySql = await _blogArticleServices.QuerySql("SELECT bsubmitter,btitle,bcontent,bCreateTime FROM BlogArticle WHERE bID>5"); + var queryBySql = + await _blogArticleServices.QuerySql( + "SELECT bsubmitter,btitle,bcontent,bCreateTime FROM BlogArticle WHERE bID>5"); /* * 测试按照指定列查询 @@ -151,7 +158,8 @@ public async Task> Get() * 【SQL语句】:UPDATE `BlogArticle` SET * `bsubmitter`=@bsubmitter,`IsDeleted`=@IsDeleted WHERE `bID`=@bID */ - var updateSql = await _blogArticleServices.Update(new { bsubmitter = $"laozhang{DateTime.Now.Millisecond}", IsDeleted = false, bID = 5 }); + var updateSql = await _blogArticleServices.Update(new + { bsubmitter = $"laozhang{DateTime.Now.Millisecond}", IsDeleted = false, bID = 5 }); // 测试模拟异常,全局异常过滤器拦截 @@ -364,6 +372,7 @@ public async Task FluentVaTest([FromBody] UserRegisterVo param) public void Put(int id, [FromBody] string value) { } + /// /// Delete方法 /// @@ -375,15 +384,18 @@ public void Delete(int id) } #region Apollo 配置 + /// /// 测试接入Apollo获取配置信息 /// [HttpGet("/apollo")] [AllowAnonymous] - public async Task>> GetAllConfigByAppllo([FromServices] IConfiguration configuration) + public async Task>> GetAllConfigByAppllo( + [FromServices] IConfiguration configuration) { return await Task.FromResult(configuration.AsEnumerable()); } + /// /// 通过此处的key格式为 xx:xx:x /// @@ -393,14 +405,17 @@ public async Task GetConfigByAppllo(string key) { return await Task.FromResult(AppSettings.app(key)); } + #endregion #region HttpPolly + [HttpPost] [AllowAnonymous] public async Task HttpPollyPost() { - var response = await _httpPollyHelper.PostAsync(HttpEnum.LocalHost, "/api/ElasticDemo/EsSearchTest", "{\"from\": 0,\"size\": 10,\"word\": \"非那雄安\"}"); + var response = await _httpPollyHelper.PostAsync(HttpEnum.LocalHost, "/api/ElasticDemo/EsSearchTest", + "{\"from\": 0,\"size\": 10,\"word\": \"非那雄安\"}"); return response; } @@ -409,17 +424,27 @@ public async Task HttpPollyPost() [AllowAnonymous] public async Task HttpPollyGet() { - return await _httpPollyHelper.GetAsync(HttpEnum.LocalHost, "/api/ElasticDemo/GetDetailInfo?esid=3130&esindex=chinacodex"); + return await _httpPollyHelper.GetAsync(HttpEnum.LocalHost, + "/api/ElasticDemo/GetDetailInfo?esid=3130&esindex=chinacodex"); } + #endregion [HttpPost] [AllowAnonymous] public string TestEnum(EnumDemoDto dto) => dto.Type.ToString(); + + [HttpGet] + [AllowAnonymous] + public string TestOption() + { + return _seqOptions.ToJson(); + } } + public class ClaimDto { public string Type { get; set; } public string Value { get; set; } } -} +} \ No newline at end of file diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index b36a02ac..b4929cc7 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -12,6 +12,7 @@ using Blog.Core.Extensions.ServiceExtensions; using Blog.Core.Filter; using Blog.Core.Hubs; +using Blog.Core.Serilog.Utility; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; @@ -23,8 +24,6 @@ using System.IdentityModel.Tokens.Jwt; using System.Reflection; using System.Text; -using Blog.Core.Common.Https; -using Blog.Core.Serilog.Utility; var builder = WebApplication.CreateBuilder(args); @@ -39,6 +38,7 @@ }) .ConfigureAppConfiguration((hostingContext, config) => { + hostingContext.Configuration.ConfigureApplication(); config.Sources.Clear(); config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false); config.AddConfigurationApollo("appsettings.apollo.json"); @@ -47,7 +47,7 @@ // 2、配置服务 builder.Services.AddSingleton(new AppSettings(builder.Configuration)); - +builder.Services.AddAllOptionRegister(); builder.Services.AddUiFilesZipSetup(builder.Environment); @@ -133,6 +133,7 @@ // 3、配置中间件 var app = builder.Build(); app.ConfigureApplication(); +app.UseApplicationSetup(); if (app.Environment.IsDevelopment()) { diff --git a/Blog.Core.Common/App.cs b/Blog.Core.Common/App.cs index c2e2e706..07abee9f 100644 --- a/Blog.Core.Common/App.cs +++ b/Blog.Core.Common/App.cs @@ -1,18 +1,45 @@ using Blog.Core.Common.Core; +using Blog.Core.Common.Extensions; using Blog.Core.Common.HttpContextUser; +using Blog.Core.Common.Option.Core; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using System; +using System.Collections.Generic; using System.Linq; +using System.Reflection; namespace Blog.Core.Common; public class App { - public static IServiceProvider RootServices => InternalApp.RootServices; + static App() + { + EffectiveTypes = Assemblies.SelectMany(GetTypes); + } + + private static bool _isRun; + + /// 是否正在运行 + public static bool IsBuild { get; set; } + + public static bool IsRun + { + get => _isRun; + set => _isRun = IsBuild = value; + } + + /// 应用有效程序集 + public static readonly IEnumerable Assemblies = RuntimeExtension.GetAllAssemblies(); + + /// 有效程序集类型 + public static readonly IEnumerable EffectiveTypes; + + public static IServiceProvider RootServices => IsRun || IsBuild ? InternalApp.RootServices : null; /// 获取Web主机环境,如,是否是开发环境,生产环境等 public static IWebHostEnvironment WebHostEnvironment => InternalApp.WebHostEnvironment; @@ -20,6 +47,9 @@ public class App /// 获取泛型主机环境,如,是否是开发环境,生产环境等 public static IHostEnvironment HostEnvironment => InternalApp.HostEnvironment; + /// 全局配置选项 + public static IConfiguration Configuration => InternalApp.Configuration; + /// /// 获取请求上下文 /// @@ -27,6 +57,8 @@ public class App public static IUser User => HttpContext == null ? null : RootServices?.GetService(); + #region Service + /// 解析服务提供器 /// /// @@ -34,7 +66,9 @@ public static IServiceProvider GetServiceProvider(Type serviceType, bool mustBui { if (App.HostEnvironment == null || App.RootServices != null && InternalApp.InternalServices - .Where((u => u.ServiceType == (serviceType.IsGenericType ? serviceType.GetGenericTypeDefinition() : serviceType))) + .Where((u => + u.ServiceType == + (serviceType.IsGenericType ? serviceType.GetGenericTypeDefinition() : serviceType))) .Any((u => u.Lifetime == ServiceLifetime.Singleton))) return App.RootServices; HttpContext httpContext = App.HttpContext; @@ -56,25 +90,95 @@ public static IServiceProvider GetServiceProvider(Type serviceType, bool mustBui } - public static TService GetService(bool mustBuild = true) where TService : class => App.GetService(typeof(TService), null, mustBuild) as TService; + public static TService GetService(bool mustBuild = true) where TService : class => + App.GetService(typeof(TService), null, mustBuild) as TService; /// 获取请求生存周期的服务 /// /// /// /// - public static TService GetService(IServiceProvider serviceProvider, bool mustBuild = true) where TService : class => App.GetService(typeof(TService), serviceProvider, mustBuild) as TService; + public static TService GetService(IServiceProvider serviceProvider, bool mustBuild = true) + where TService : class => App.GetService(typeof(TService), serviceProvider, mustBuild) as TService; /// 获取请求生存周期的服务 /// /// /// /// - public static object GetService(Type type, IServiceProvider serviceProvider = null, bool mustBuild = true) => (serviceProvider ?? App.GetServiceProvider(type, mustBuild)).GetService(type); + public static object GetService(Type type, IServiceProvider serviceProvider = null, bool mustBuild = true) => + (serviceProvider ?? App.GetServiceProvider(type, mustBuild)).GetService(type); + + #endregion + #region private + + /// 加载程序集中的所有类型 + /// + /// + private static IEnumerable GetTypes(Assembly ass) + { + Type[] source = Array.Empty(); + try + { + source = ass.GetTypes(); + } + catch + { + $@"Error load `{ass.FullName}` assembly.".WriteErrorLine(); + } + + return source.Where(u => u.IsPublic); + } + + #endregion + + #region Options + + /// 获取配置 + /// 强类型选项类 + /// TOptions + public static TOptions GetConfig() + where TOptions : class, IConfigurableOptions + { + TOptions instance = App.Configuration + .GetSection(ConfigurableOptions.GetConfigurationPath(typeof(TOptions))) + .Get(); + return instance; + } + + /// 获取选项 + /// 强类型选项类 + /// + /// TOptions public static TOptions GetOptions(IServiceProvider serviceProvider = null) where TOptions : class, new() { IOptions service = App.GetService>(serviceProvider ?? App.RootServices, false); return service?.Value; } + + /// 获取选项 + /// 强类型选项类 + /// + /// TOptions + public static TOptions GetOptionsMonitor(IServiceProvider serviceProvider = null) + where TOptions : class, new() + { + IOptionsMonitor service = + App.GetService>(serviceProvider ?? App.RootServices, false); + return service?.CurrentValue; + } + + /// 获取选项 + /// 强类型选项类 + /// + /// TOptions + public static TOptions GetOptionsSnapshot(IServiceProvider serviceProvider = null) + where TOptions : class, new() + { + IOptionsSnapshot service = App.GetService>(serviceProvider, false); + return service?.Value; + } + + #endregion } \ No newline at end of file diff --git a/Blog.Core.Common/Core/InternalApp.cs b/Blog.Core.Common/Core/InternalApp.cs index 62e04724..df16c911 100644 --- a/Blog.Core.Common/Core/InternalApp.cs +++ b/Blog.Core.Common/Core/InternalApp.cs @@ -3,6 +3,7 @@ using System; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; namespace Blog.Core.Common.Core; @@ -19,6 +20,9 @@ public static class InternalApp /// 获取泛型主机环境 public static IHostEnvironment HostEnvironment; + /// 配置对象 + public static IConfiguration Configuration; + public static void ConfigureApplication(this WebApplicationBuilder wab) { HostEnvironment = wab.Environment; @@ -26,6 +30,10 @@ public static void ConfigureApplication(this WebApplicationBuilder wab) InternalServices = wab.Services; } + public static void ConfigureApplication(this IConfiguration configuration) + { + Configuration = configuration; + } public static void ConfigureApplication(this IHost app) { diff --git a/Blog.Core.Common/Extensions/RuntimeExtension.cs b/Blog.Core.Common/Extensions/RuntimeExtension.cs new file mode 100644 index 00000000..c4ddb0c8 --- /dev/null +++ b/Blog.Core.Common/Extensions/RuntimeExtension.cs @@ -0,0 +1,84 @@ +using Microsoft.Extensions.DependencyModel; +using Serilog; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Runtime.Loader; + +namespace Blog.Core.Common.Extensions; + +public static class RuntimeExtension +{ + /// + /// 获取项目程序集,排除所有的系统程序集(Microsoft.***、System.***等)、Nuget下载包 + /// + /// + public static IList GetAllAssemblies() + { + var list = new List(); + var deps = DependencyContext.Default; + var libs = deps.CompileLibraries.Where(lib => !lib.Serviceable && lib.Type != "package"); //排除所有的系统程序集、Nuget下载包 + foreach (var lib in libs) + { + try + { + var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(lib.Name)); + list.Add(assembly); + } + catch (Exception e) + { + Log.Debug(e, "GetAllAssemblies Exception:{ex}", e.Message); + } + } + return list; + } + + public static Assembly GetAssembly(string assemblyName) + { + return GetAllAssemblies().FirstOrDefault(assembly => assembly.FullName.Contains(assemblyName)); + } + + public static IList GetAllTypes() + { + var list = new List(); + foreach (var assembly in GetAllAssemblies()) + { + var typeInfos = assembly.DefinedTypes; + foreach (var typeInfo in typeInfos) + { + list.Add(typeInfo.AsType()); + } + } + + return list; + } + + public static IList GetTypesByAssembly(string assemblyName) + { + var list = new List(); + var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(assemblyName)); + var typeInfos = assembly.DefinedTypes; + foreach (var typeInfo in typeInfos) + { + list.Add(typeInfo.AsType()); + } + + return list; + } + + public static Type GetImplementType(string typeName, Type baseInterfaceType) + { + return GetAllTypes().FirstOrDefault(t => + { + if (t.Name == typeName && + t.GetTypeInfo().GetInterfaces().Any(b => b.Name == baseInterfaceType.Name)) + { + var typeInfo = t.GetTypeInfo(); + return typeInfo.IsClass && !typeInfo.IsAbstract && !typeInfo.IsGenericType; + } + + return false; + }); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/Appsettings.cs b/Blog.Core.Common/Helper/Appsettings.cs index d6d06651..83e3d7e7 100644 --- a/Blog.Core.Common/Helper/Appsettings.cs +++ b/Blog.Core.Common/Helper/Appsettings.cs @@ -22,9 +22,12 @@ public AppSettings(string contentPath) //Path = $"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json"; Configuration = new ConfigurationBuilder() - .SetBasePath(contentPath) - .Add(new JsonConfigurationSource { Path = Path, Optional = false, ReloadOnChange = true })//这样的话,可以直接读目录里的json文件,而不是 bin 文件夹下的,所以不用修改复制属性 - .Build(); + .SetBasePath(contentPath) + .Add(new JsonConfigurationSource + { + Path = Path, Optional = false, ReloadOnChange = true + }) //这样的话,可以直接读目录里的json文件,而不是 bin 文件夹下的,所以不用修改复制属性 + .Build(); } public AppSettings(IConfiguration configuration) @@ -41,13 +44,14 @@ public static string app(params string[] sections) { try { - if (sections.Any()) { return Configuration[string.Join(":", sections)]; } } - catch (Exception) { } + catch (Exception) + { + } return ""; } @@ -78,10 +82,11 @@ public static string GetValue(string sectionsPath) { return Configuration[sectionsPath]; } - catch (Exception) { } + catch (Exception) + { + } return ""; - } } -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Option/Core/ConfigurableOptions.cs b/Blog.Core.Common/Option/Core/ConfigurableOptions.cs new file mode 100644 index 00000000..adeea98a --- /dev/null +++ b/Blog.Core.Common/Option/Core/ConfigurableOptions.cs @@ -0,0 +1,61 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using System; + +namespace Blog.Core.Common.Option.Core; + +public static class ConfigurableOptions +{ + /// 添加选项配置 + /// 选项类型 + /// 服务集合 + /// 服务集合 + public static IServiceCollection AddConfigurableOptions(this IServiceCollection services) + where TOptions : class, IConfigurableOptions + { + Type optionsType = typeof(TOptions); + string path = GetConfigurationPath(optionsType); + services.Configure(App.Configuration.GetSection(path)); + + return services; + } + + public static IServiceCollection AddConfigurableOptions(this IServiceCollection services, Type type) + { + string path = GetConfigurationPath(type); + var config = App.Configuration.GetSection(path); + + Type iOptionsChangeTokenSource = typeof(IOptionsChangeTokenSource<>); + Type iConfigureOptions = typeof(IConfigureOptions<>); + Type configurationChangeTokenSource = typeof(ConfigurationChangeTokenSource<>); + Type namedConfigureFromConfigurationOptions = typeof(NamedConfigureFromConfigurationOptions<>); + iOptionsChangeTokenSource = iOptionsChangeTokenSource.MakeGenericType(type); + iConfigureOptions = iConfigureOptions.MakeGenericType(type); + configurationChangeTokenSource = configurationChangeTokenSource.MakeGenericType(type); + namedConfigureFromConfigurationOptions = namedConfigureFromConfigurationOptions.MakeGenericType(type); + + services.AddOptions(); + services.AddSingleton(iOptionsChangeTokenSource, + Activator.CreateInstance(configurationChangeTokenSource, Options.DefaultName, config) ?? throw new InvalidOperationException()); + return services.AddSingleton(iConfigureOptions, + Activator.CreateInstance(namedConfigureFromConfigurationOptions, Options.DefaultName, config) ?? throw new InvalidOperationException()); + } + + /// 获取配置路径 + /// 选项类型 + /// + public static string GetConfigurationPath(Type optionsType) + { + var endPath = new[] {"Option", "Options"}; + var configurationPath = optionsType.Name; + foreach (var s in endPath) + { + if (configurationPath.EndsWith(s)) + { + return configurationPath[..^s.Length]; + } + } + + return configurationPath; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Option/Core/IConfigurableOptions.cs b/Blog.Core.Common/Option/Core/IConfigurableOptions.cs new file mode 100644 index 00000000..71568268 --- /dev/null +++ b/Blog.Core.Common/Option/Core/IConfigurableOptions.cs @@ -0,0 +1,11 @@ +namespace Blog.Core.Common.Option.Core; + +/// +/// 应用选项依赖接口
    +/// 自动注入配置文件
    +/// 文件名为Option或Options结尾 +///
    +public interface IConfigurableOptions +{ + +} \ No newline at end of file diff --git a/Blog.Core.Common/Option/SeqOptions.cs b/Blog.Core.Common/Option/SeqOptions.cs new file mode 100644 index 00000000..944aa7bc --- /dev/null +++ b/Blog.Core.Common/Option/SeqOptions.cs @@ -0,0 +1,18 @@ +using Blog.Core.Common.Option.Core; + +namespace Blog.Core.Common.Option; + +public class SeqOptions : IConfigurableOptions +{ + /// + /// 是否启用 + /// + public bool Enabled { get; set; } + + /// + /// 地址 + /// + public string Address { get; set; } + + public string ApiKey { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/AllOptionRegister.cs b/Blog.Core.Extensions/ServiceExtensions/AllOptionRegister.cs new file mode 100644 index 00000000..28e1739b --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/AllOptionRegister.cs @@ -0,0 +1,21 @@ +using Blog.Core.Common; +using Blog.Core.Common.Option.Core; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Linq; + +namespace Blog.Core.Extensions.ServiceExtensions; + +public static class AllOptionRegister +{ + public static void AddAllOptionRegister(this IServiceCollection services) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + foreach (var optionType in App.EffectiveTypes.Where(s => + !s.IsInterface && typeof(IConfigurableOptions).IsAssignableFrom(s))) + { + services.AddConfigurableOptions(optionType); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/ApplicationSetup.cs b/Blog.Core.Extensions/ServiceExtensions/ApplicationSetup.cs new file mode 100644 index 00000000..793df2c8 --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/ApplicationSetup.cs @@ -0,0 +1,24 @@ +using Blog.Core.Common; +using Microsoft.AspNetCore.Builder; +using Serilog; + +namespace Blog.Core.Extensions.ServiceExtensions; + +public static class ApplicationSetup +{ + public static void UseApplicationSetup(this WebApplication app) + { + app.Lifetime.ApplicationStarted.Register(() => + { + App.IsRun = true; + }); + + app.Lifetime.ApplicationStopped.Register(() => + { + App.IsRun = false; + + //清除日志 + Log.CloseAndFlush(); + }); + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs index 94975918..30ab29f8 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs @@ -8,6 +8,7 @@ using Serilog.Events; using System; using System.IO; +using Blog.Core.Common.Option; namespace Blog.Core.Extensions.ServiceExtensions; @@ -27,11 +28,12 @@ public static IHostBuilder AddSerilogSetup(this IHostBuilder host) //配置日志库 .WriteToLogBatching(); + var option = App.GetOptions(); //配置Seq日志中心 - if (AppSettings.app("Seq", "Enabled").ObjToBool()) + if (option.Enabled) { - var address = AppSettings.app("Seq", "Address"); - var apiKey = AppSettings.app("Seq", "ApiKey"); + var address = option.Address; + var apiKey = option.ApiKey; if (!address.IsNullOrEmpty()) { loggerConfiguration = From 014ab8de749b3b1c62408ec91727cabbd2379018 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Sat, 29 Apr 2023 12:03:12 +0800 Subject: [PATCH 257/382] remove extra code --- Blog.Core.Api/Blog.Core.xml | 2 -- Blog.Core.Api/Controllers/WeChatController.cs | 2 -- 2 files changed, 4 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index c6b33db9..45e38404 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1147,8 +1147,6 @@ 微信公众号管理 - 作者:胡丁文 - 时间:2020-3-29 21:24:12 diff --git a/Blog.Core.Api/Controllers/WeChatController.cs b/Blog.Core.Api/Controllers/WeChatController.cs index a27762e8..5c7e5c6f 100644 --- a/Blog.Core.Api/Controllers/WeChatController.cs +++ b/Blog.Core.Api/Controllers/WeChatController.cs @@ -8,8 +8,6 @@ namespace Blog.Core.Controllers { /// /// 微信公众号管理 - /// 作者:胡丁文 - /// 时间:2020-3-29 21:24:12 /// [Route("api/[controller]/[action]")] [ApiController] From 7ddec93479903b713b63b0fdd63eead3c15dcf70 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Sat, 29 Apr 2023 12:03:12 +0800 Subject: [PATCH 258/382] remove extra code --- Blog.Core.Api/Blog.Core.Model.xml | 137 ------ Blog.Core.Api/Blog.Core.xml | 155 ------ Blog.Core.Api/Controllers/TrojanController.cs | 456 ------------------ Blog.Core.Api/Controllers/WeChatController.cs | 2 - Blog.Core.IServices/ITrojanUsersServices.cs | 14 - Blog.Core.Model/Models/TrojanCusServers.cs | 26 - Blog.Core.Model/Models/TrojanDetails.cs | 63 --- Blog.Core.Model/Models/TrojanServers.cs | 31 -- Blog.Core.Model/Models/TrojanUrlServers.cs | 26 - Blog.Core.Model/Models/TrojanUsers.cs | 39 -- .../ViewModels/TrojanLimitFlowDto.cs | 23 - Blog.Core.Model/ViewModels/TrojanServerDto.cs | 14 - .../ViewModels/TrojanServerSpliceDto.cs | 28 -- .../ViewModels/TrojanUseDetailDto.cs | 35 -- Blog.Core.Services/TrojanUsersServices.cs | 18 - .../QuartzNet/Jobs/Job_Trojan_Quartz.cs | 81 ---- 16 files changed, 1148 deletions(-) delete mode 100644 Blog.Core.Api/Controllers/TrojanController.cs delete mode 100644 Blog.Core.IServices/ITrojanUsersServices.cs delete mode 100644 Blog.Core.Model/Models/TrojanCusServers.cs delete mode 100644 Blog.Core.Model/Models/TrojanDetails.cs delete mode 100644 Blog.Core.Model/Models/TrojanServers.cs delete mode 100644 Blog.Core.Model/Models/TrojanUrlServers.cs delete mode 100644 Blog.Core.Model/Models/TrojanUsers.cs delete mode 100644 Blog.Core.Model/ViewModels/TrojanLimitFlowDto.cs delete mode 100644 Blog.Core.Model/ViewModels/TrojanServerDto.cs delete mode 100644 Blog.Core.Model/ViewModels/TrojanServerSpliceDto.cs delete mode 100644 Blog.Core.Model/ViewModels/TrojanUseDetailDto.cs delete mode 100644 Blog.Core.Services/TrojanUsersServices.cs delete mode 100644 Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index bf3d350d..79666d28 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -1260,76 +1260,6 @@ Tibug 博文
    - - - users自定义服务器 - - - - - 用户流量每月汇总表 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Trojan服务器 - - - - - users自定义URL服务器 - - - - - Trojan用户 - - - - - 历史流量记录 - - 用户跟角色关联表 @@ -2787,73 +2717,6 @@ - - - 限制流量dto - 作者:胡丁文 - 时间:2020-4-27 16:57:07 - - - - - 用户 - - - - - 流量(-1为无限,单位为最小单位byte) - - - - - Trojan服务器拼接服务器和订阅地址 - - - - - 普通订阅连接 - - - - - clash订阅连接 - - - - - 备用clash订阅连接 - - - - - Trojan用户流量统计分组 - - - - - 用户ID - - - - - 月度 - - - - - 上传流量 - - - - - 下载流量 - - - - - 下载流量 - - 微信接口消息DTO diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index c6b33db9..05783a69 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -664,159 +664,6 @@ - - - 获取Trojan用户 - - - - - - - - - 获取Trojan用户-下拉列表用 - - - - - - 添加Trojan用户 - - - - - - - 更新Trojan用户 - - - - - - - 删除用户 - - - - - - - 重置流量 - - - - - - - 限制流量 - - - - - - - 重置链接密码 - - - - - - - 获取Trojan服务器 - - - - - - 获取拼接后的Trojan服务器 - - passwordshow - - - - - 删除Trojan服务器 - - - - - - - 更新Trojan服务器 - - - - - - - 添加Trojan服务器 - - - - - - - 获取Cus服务器 - - - - - - 删除Cus服务器 - - - - - - - 更新Cus服务器 - - - - - - - 添加Cus服务器 - - - - - - - 获取Url服务器 - - - - - - 删除Url服务器 - - - - - - - 更新Url服务器 - - - - - - - 添加Url服务器 - - - - - - - 获取订阅数据 - - 链接密码 - 是否使用base64加密 - - 用户管理 @@ -1147,8 +994,6 @@ 微信公众号管理 - 作者:胡丁文 - 时间:2020-3-29 21:24:12 diff --git a/Blog.Core.Api/Controllers/TrojanController.cs b/Blog.Core.Api/Controllers/TrojanController.cs deleted file mode 100644 index d8d005dc..00000000 --- a/Blog.Core.Api/Controllers/TrojanController.cs +++ /dev/null @@ -1,456 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Blog.Core.Common; -using Blog.Core.Common.Extensions; -using Blog.Core.Common.Helper; -using Blog.Core.Common.HttpContextUser; -using Blog.Core.IServices; -using Blog.Core.IServices.BASE; -using Blog.Core.Model; -using Blog.Core.Model.Models; -using Blog.Core.Model.ViewModels; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; - -namespace Blog.Core.Controllers -{ - [Route("api/[controller]/[action]")] - [ApiController] - [Authorize(Permissions.Name)] - public class TrojanController : ControllerBase - { - private ITrojanUsersServices _trojanUsersServices; - public IBaseServices _baseServicesServers; - public IBaseServices _baseServicesDetails; - public IBaseServices _baseServicesCusServers; - public IBaseServices _baseServicesUrlServers; - private IUser _user; - public TrojanController(ITrojanUsersServices trojanUsersServices,IUser user - , IBaseServices baseServicesServers - , IBaseServices baseServicesDetails - , IBaseServices baseServicesCusServers - , IBaseServices baseServicesUrlServers) - { - _baseServicesDetails = baseServicesDetails; - _baseServicesServers = baseServicesServers; - _trojanUsersServices = trojanUsersServices; - _baseServicesCusServers = baseServicesCusServers; - _baseServicesUrlServers = baseServicesUrlServers; - _user = user; - } - /// - /// 获取Trojan用户 - /// - /// - /// - /// - /// - [HttpGet] - public async Task>> GetUser([FromQuery]PaginationModel pagination, [FromQuery] string name, [FromQuery] bool isuse) - { - var whereFind = LinqHelper.True(); - if (!string.IsNullOrEmpty(name)) - whereFind = whereFind.And(t=>t.username.Contains(name)); - if (isuse) - whereFind = whereFind.And(t => t.upload > 0 || t.download > 0); - var data = await _trojanUsersServices.QueryPage(whereFind, pagination.PageIndex, pagination.PageSize); - if (data.data.Count > 0) - { - var ids = data.data.Select(t => t.id).ToList(); - var where = LinqHelper.True(); - where = where.And(t => ids.Contains(t.userId));//.And(t => t.calDate < DateTime.Now).And(t => t.calDate > DateTime.Now.AddMonths(-12)); - var userDetails = await _baseServicesDetails.Query(where); - foreach (var trojanUser in data.data) - { - var ls = from t in userDetails - where t.userId == trojanUser.id - group t by new { moth = t.calDate.ToString("yyyy-MM"), id = t.userId } into g - orderby g.Key.moth descending - select new TrojanUseDetailDto { userId = g.Key.id, moth = g.Key.moth, up = g.Sum(t => Convert.ToDecimal(t.upload)), down = g.Sum(t => Convert.ToDecimal(t.download)) }; - var lsData = ls.ToList(); - trojanUser.useList = lsData; - } - } - return MessageModel>.Success("获取成功", data); - } - - /// - /// 获取Trojan用户-下拉列表用 - /// - /// - [HttpGet] - public async Task> GetAllTrojanUser() - { - var data = await _trojanUsersServices.QueryTable("select id,username from users"); - return MessageModel.Success("获取成功", data); - } - /// - /// 添加Trojan用户 - /// - /// - /// - [HttpPost] - public async Task> AddUser([FromBody]TrojanUsers user) - { - var find = await _trojanUsersServices.Query(t => t.username == user.username); - if(find!=null && find.Count>0) return MessageModel.Fail("用户名已存在"); - var pass = StringHelper.GetGUID(); - var passEcrypt = ShaHelper.Sha224(pass); - //user.quota = 0; - user.upload = 0; - user.download = 0; - user.password = passEcrypt; - user.passwordshow = pass; - var data = await _trojanUsersServices.Add(user); - return MessageModel.Success("添加成功", data); - } - /// - /// 更新Trojan用户 - /// - /// - /// - [HttpPut] - public async Task> UpdateUser([FromBody]TrojanUsers user) - { - var find = await _trojanUsersServices.QueryById(user.id); - if (find == null) return MessageModel.Fail("用户名不存在"); - find.username = user.username; - var data = await _trojanUsersServices.Update(find, new List { "username" }); - return MessageModel.Success("更新成功", data); - } - - /// - /// 删除用户 - /// - /// - /// - [HttpPut] - public async Task> DelUser([FromBody]int[] users) - { - var data = await _trojanUsersServices.Query(t => users.Contains(t.id)); - var list = data.Select(t => t.id.ToString()).ToArray(); - await _trojanUsersServices.DeleteByIds(list); - return MessageModel.Success("删除成功"); - } - /// - /// 重置流量 - /// - /// - /// - [HttpPut] - public async Task> ResetFlow([FromBody]int[] users) - { - var data = await _trojanUsersServices.Query(t => users.Contains(t.id)); - foreach (var item in data) - { - item.upload = 0; - item.download = 0; - await _trojanUsersServices.Update(item, new List { "upload", "download" }); - } - return MessageModel.Success("重置流量成功"); - } - /// - /// 限制流量 - /// - /// - /// - [HttpPut] - public async Task> LimitFlow([FromBody] TrojanLimitFlowDto limit) - { - var data = await _trojanUsersServices.Query(t => limit.users.Contains(t.id)); - foreach (var item in data) - { - item.quota = limit.quota; - await _trojanUsersServices.Update(item, new List { "quota" }); - } - return MessageModel.Success("限制流量成功"); - } - /// - /// 重置链接密码 - /// - /// - /// - [HttpPut] - public async Task> ResetPass([FromBody]int[] users) - { - var data = await _trojanUsersServices.Query(t => users.Contains(t.id)); - var pass = StringHelper.GetGUID(); - var passEcrypt = ShaHelper.Sha224(pass); - foreach (var item in data) - { - item.password = passEcrypt; - item.passwordshow = pass; - await _trojanUsersServices.Update(item, new List { "password" , "passwordshow" }); - } - return MessageModel.Success("重置链接密码成功"); - } - /// - /// 获取Trojan服务器 - /// - /// - [HttpGet] - public async Task>> GetServers() - { - var data = await _baseServicesServers.Query(); - data = data.OrderBy(t => t.servername).ToList(); - return MessageModel>.Success("获取成功", data); - } - /// - /// 获取拼接后的Trojan服务器 - /// - /// passwordshow - /// - [HttpGet] - public async Task> GetSpliceServers(string id) - { - var data = await _baseServicesServers.Query(); - data = data.OrderBy(t => t.servername).ToList(); - var res = new TrojanServerSpliceDto(); - res.normalApi = AppSettings.app(new string[] { "trojan", "normalApi" }).ObjToString(); - res.clashApi = AppSettings.app(new string[] { "trojan", "clashApi" }).ObjToString(); - res.clashApiBackup = AppSettings.app(new string[] { "trojan", "clashApiBackup" }).ObjToString(); - foreach (var item in data) - { - var serverSplice = GetSplice(item, id); - res.list.Add(new TrojanServerDto { name = item.servername, value = serverSplice }); - } - return MessageModel.Success("获取成功", res); ; - - } - /// - /// 删除Trojan服务器 - /// - /// - /// - [HttpPut] - public async Task>> DelServers([FromBody]int[] servers) - { - var data = await _baseServicesServers.DeleteByIds(servers.Select(t=>t.ToString()).ToArray()); - if (data) - return MessageModel>.Success("删除成功"); - else - return MessageModel>.Fail("删除失败"); - } - /// - /// 更新Trojan服务器 - /// - /// - /// - [HttpPut] - public async Task>> UpdateServers(TrojanServers server) - { - var data = await _baseServicesServers.Update(server); - return MessageModel>.Success("更新成功"); - } - /// - /// 添加Trojan服务器 - /// - /// - /// - [HttpPost] - public async Task>> AddServers(TrojanServers server) - { - var data = await _baseServicesServers.Add(server); - return MessageModel>.Success("添加成功"); - } - - /// - /// 获取Cus服务器 - /// - /// - [HttpGet] - public async Task>> GetCusServers() - { - var data = await _baseServicesCusServers.Query(); - data = data.OrderBy(t => t.servername).ToList(); - return MessageModel>.Success("获取成功", data); - } - /// - /// 删除Cus服务器 - /// - /// - /// - [HttpPut] - public async Task>> DelCusServers([FromBody] int[] servers) - { - var data = await _baseServicesCusServers.DeleteByIds(servers.Select(t => t.ToString()).ToArray()); - if (data) - return MessageModel>.Success("删除成功"); - else - return MessageModel>.Fail("删除失败"); - } - /// - /// 更新Cus服务器 - /// - /// - /// - [HttpPut] - public async Task>> UpdateCusServers(TrojanCusServers server) - { - var data = await _baseServicesCusServers.Update(server); - return MessageModel>.Success("更新成功"); - } - /// - /// 添加Cus服务器 - /// - /// - /// - [HttpPost] - public async Task>> AddCusServers(TrojanCusServers server) - { - var data = await _baseServicesCusServers.Add(server); - return MessageModel>.Success("添加成功"); - } - - - /// - /// 获取Url服务器 - /// - /// - [HttpGet] - public async Task>> GetUrlServers() - { - var data = await _baseServicesUrlServers.Query(); - data = data.OrderBy(t => t.servername).ToList(); - return MessageModel>.Success("获取成功", data); - } - /// - /// 删除Url服务器 - /// - /// - /// - [HttpPut] - public async Task>> DelUrlServers([FromBody] int[] servers) - { - var data = await _baseServicesUrlServers.DeleteByIds(servers.Select(t => t.ToString()).ToArray()); - if (data) - return MessageModel>.Success("删除成功"); - else - return MessageModel>.Fail("删除失败"); - } - /// - /// 更新Url服务器 - /// - /// - /// - [HttpPut] - public async Task>> UpdateUrlServers(TrojanUrlServers server) - { - var data = await _baseServicesUrlServers.Update(server); - return MessageModel>.Success("更新成功"); - } - /// - /// 添加Url服务器 - /// - /// - /// - [HttpPost] - public async Task>> AddUrlServers(TrojanUrlServers server) - { - var data = await _baseServicesUrlServers.Add(server); - return MessageModel>.Success("添加成功"); - } - private string GetSplice(TrojanServers item,string passwordshow) - { - var sni = string.IsNullOrEmpty(item.serverpeer) ? item.serveraddress : item.serverpeer; - if ("0".Equals(item.servertype)) - return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?allowinsecure=0&tfo=0&fp=chrome&peer={sni}&host={sni}&sni={sni}#{item.servername}"; - else if ("1".Equals(item.servertype)) - { - - return $"trojan://{passwordshow}@{item.serveraddress}:{item.serverport}?wspath={item.serverpath}&ws=1&peer={sni}&path={item.serverpath}&host={sni}&fp=chrome&type=ws&sni={sni}#{item.servername}"; - } - else - return $"servertype:({item.servertype})错误"; - } - private List GetSplice(List items, string passwordshow) - { - List ls = new List(); - foreach (var item in items) - { - ls.Add(GetSplice(item, passwordshow)); - } - return ls; - } - /// - /// 获取订阅数据 - /// - /// 链接密码 - /// 是否使用base64加密 - /// - [HttpGet] - [AllowAnonymous] - public async Task RSS(string id,bool isUseBase64=true) - { - StringBuilder sb = new StringBuilder(); - try - { - var user = (await _trojanUsersServices.Query(t => t.passwordshow == id)).FirstOrDefault(); - if (user == null) throw new Exception("用户不存在"); - var data = await _baseServicesServers.Query(t => (t.userid == user.id || t.userid <= 0) && t.serverenable); - if (data != null) - { - data = data.OrderBy(t => t.servername).ToList(); - foreach (var item in data) - { - sb.AppendLine(GetSplice(item, user.passwordshow)); - } - } - var cusData = await _baseServicesCusServers.Query(t=> (t.userid == user.id || t.userid <=0) && t.serverenable); - if (cusData != null) - { - cusData = cusData.OrderBy(t => t.servername).ToList(); - foreach (var item in cusData) - { - sb.AppendLine(item.serveraddress); - } - } - var urlData = await _baseServicesUrlServers.Query(t => (t.userid == user.id || t.userid <= 0) && t.serverenable); - if (urlData != null) - { - urlData = urlData.OrderBy(t => t.servername).ToList(); - foreach (var item in urlData) - { - try - { - var urlStrObj = await HttpHelper.GetAsync(item.serveraddress); - var lines = ""; - try - { - lines = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(urlStrObj)); - } - catch (Exception) - { - lines = urlStrObj; - } - finally - { - sb.AppendLine(lines); - } - } - catch (Exception ex) - { - sb.AppendLine($"trojan://xxxxxx@xxxxxx.xx:443?allowinsecure=0&tfo=0#{ex.Message}"); - } - } - } - } - catch (Exception ex) - { - sb.AppendLine($"trojan://xxxxxx@xxxxxx.xx:443?allowinsecure=0&tfo=0#{ex.Message}"); - } - if (isUseBase64) - { - return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sb.ToString())); - } - else{ - return sb.ToString(); - } - } - } -} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/WeChatController.cs b/Blog.Core.Api/Controllers/WeChatController.cs index a27762e8..5c7e5c6f 100644 --- a/Blog.Core.Api/Controllers/WeChatController.cs +++ b/Blog.Core.Api/Controllers/WeChatController.cs @@ -8,8 +8,6 @@ namespace Blog.Core.Controllers { /// /// 微信公众号管理 - /// 作者:胡丁文 - /// 时间:2020-3-29 21:24:12 /// [Route("api/[controller]/[action]")] [ApiController] diff --git a/Blog.Core.IServices/ITrojanUsersServices.cs b/Blog.Core.IServices/ITrojanUsersServices.cs deleted file mode 100644 index 92bac1d8..00000000 --- a/Blog.Core.IServices/ITrojanUsersServices.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Blog.Core.IServices.BASE; -using Blog.Core.Model.Models; - -namespace Blog.Core.IServices -{ - /// - /// TrojanUsersServices - /// - public interface ITrojanUsersServices : IBaseServices - { - - } -} - diff --git a/Blog.Core.Model/Models/TrojanCusServers.cs b/Blog.Core.Model/Models/TrojanCusServers.cs deleted file mode 100644 index 03f02539..00000000 --- a/Blog.Core.Model/Models/TrojanCusServers.cs +++ /dev/null @@ -1,26 +0,0 @@ - -using System; -using System.Linq; -using System.Text; -using SqlSugar; - -namespace Blog.Core.Model.Models -{ - /// - ///users自定义服务器 - /// - [SugarTable("users_cus", "users自定义服务器")] - [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') - public partial class TrojanCusServers - { - - [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int id { set; get; } - public int userid { get; set; } - public string servername { set; get; } - public string serveraddress { set; get; } - [SugarColumn(IsNullable = true)] - public string serverremark { get; set; } - public bool serverenable { get; set; } - } -} diff --git a/Blog.Core.Model/Models/TrojanDetails.cs b/Blog.Core.Model/Models/TrojanDetails.cs deleted file mode 100644 index dda53d9b..00000000 --- a/Blog.Core.Model/Models/TrojanDetails.cs +++ /dev/null @@ -1,63 +0,0 @@ - -//模板自动生成(请勿修改) -//作者:胡丁文 -using System; -using System.Linq; -using System.Text; -using SqlSugar; - -namespace Blog.Core.Model.Models -{ - /// - ///用户流量每月汇总表 - /// - [SugarTable("users_detail", "用户流量每月汇总表")] - [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') - public partial class TrojanDetails - { - - /// - /// - /// - [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] - public int id { get; set; } - - /// - /// - /// - public int userId { get; set; } - - /// - /// - /// - public DateTime calDate { get; set; } - - /// - /// - /// - public ulong download { get; set; } - - /// - /// - /// - public ulong upload { get; set; } - - /// - /// - /// - [SugarColumn(IsNullable = true)] - public int? CreateId { get; set; } - - /// - /// - /// - [SugarColumn(IsNullable = true)] - public string CreateBy { get; set; } - - /// - /// - /// - [SugarColumn(IsNullable = true)] - public DateTime? CreateTime { get; set; } - } -} diff --git a/Blog.Core.Model/Models/TrojanServers.cs b/Blog.Core.Model/Models/TrojanServers.cs deleted file mode 100644 index d9d8275f..00000000 --- a/Blog.Core.Model/Models/TrojanServers.cs +++ /dev/null @@ -1,31 +0,0 @@ - -using System; -using System.Linq; -using System.Text; -using SqlSugar; - -namespace Blog.Core.Model.Models -{ - /// - ///Trojan服务器 - /// - [SugarTable("servers", "Trojan服务器")] - [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') - public partial class TrojanServers - { - - [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int id { set; get; } - public int userid { get; set; } - public string servername { set; get; } - public string serveraddress { set; get; } - public int serverport { get; set; } - [SugarColumn(IsNullable = true)] - public string serverremark { get; set; } - public bool serverenable { get; set; } - public string serverpeer { get; set; } - [SugarColumn(IsNullable = true)] - public string serverpath { get; set; } - public string servertype { get; set; } - } -} diff --git a/Blog.Core.Model/Models/TrojanUrlServers.cs b/Blog.Core.Model/Models/TrojanUrlServers.cs deleted file mode 100644 index db48343a..00000000 --- a/Blog.Core.Model/Models/TrojanUrlServers.cs +++ /dev/null @@ -1,26 +0,0 @@ - -using System; -using System.Linq; -using System.Text; -using SqlSugar; - -namespace Blog.Core.Model.Models -{ - /// - ///users自定义URL服务器 - /// - [SugarTable("users_url", "users自定义URL服务器")] - [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') - public partial class TrojanUrlServers - { - - [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int id { set; get; } - public int userid { get; set; } - public string servername { set; get; } - public string serveraddress { set; get; } - [SugarColumn(IsNullable = true)] - public string serverremark { get; set; } - public bool serverenable { get; set; } - } -} diff --git a/Blog.Core.Model/Models/TrojanUsers.cs b/Blog.Core.Model/Models/TrojanUsers.cs deleted file mode 100644 index 796c044e..00000000 --- a/Blog.Core.Model/Models/TrojanUsers.cs +++ /dev/null @@ -1,39 +0,0 @@ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Blog.Core.Model.ViewModels; -using SqlSugar; - -namespace Blog.Core.Model.Models -{ - /// - ///Trojan用户 - /// - [SugarTable("users", "Trojan用户表")] - [TenantAttribute("WMBLOG_MYSQL_2")] //('代表是哪个数据库,名字是appsettings.json 的 ConnId') - public partial class TrojanUsers - { - - [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)] - public int id { set; get; } - public string username { set; get; } - public string password { set; get; } - public Int64 quota { set; get; } - public UInt64 download { set; get; } - public UInt64 upload { set; get; } - public string passwordshow { set; get; } - [SugarColumn(IsNullable = true)] - public int CreateId { get; set; } - [SugarColumn(IsNullable = true)] - public string CreateBy { get; set; } - [SugarColumn(IsNullable = true)] - public DateTime? CreateTime { get; set; } - /// - /// 历史流量记录 - /// - [SugarColumn(IsIgnore = true)] - public List useList { get; set; } - } -} diff --git a/Blog.Core.Model/ViewModels/TrojanLimitFlowDto.cs b/Blog.Core.Model/ViewModels/TrojanLimitFlowDto.cs deleted file mode 100644 index c0efd347..00000000 --- a/Blog.Core.Model/ViewModels/TrojanLimitFlowDto.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Blog.Core.Model.ViewModels -{ - /// - /// 限制流量dto - /// 作者:胡丁文 - /// 时间:2020-4-27 16:57:07 - /// - public class TrojanLimitFlowDto - { - /// - /// 用户 - /// - public int[] users { get; set; } - /// - /// 流量(-1为无限,单位为最小单位byte) - /// - public Int64 quota { get; set; } - } -} diff --git a/Blog.Core.Model/ViewModels/TrojanServerDto.cs b/Blog.Core.Model/ViewModels/TrojanServerDto.cs deleted file mode 100644 index 89cb87e3..00000000 --- a/Blog.Core.Model/ViewModels/TrojanServerDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Blog.Core.Model.ViewModels -{ - public class TrojanServerDto - { - public string name { get; set; } - public string value { get; set; } - } -} diff --git a/Blog.Core.Model/ViewModels/TrojanServerSpliceDto.cs b/Blog.Core.Model/ViewModels/TrojanServerSpliceDto.cs deleted file mode 100644 index e83adfd5..00000000 --- a/Blog.Core.Model/ViewModels/TrojanServerSpliceDto.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Blog.Core.Model.ViewModels -{ - /// - /// Trojan服务器拼接服务器和订阅地址 - /// - public class TrojanServerSpliceDto - { - /// - /// 普通订阅连接 - /// - public string normalApi { get; set; } - /// - /// clash订阅连接 - /// - public string clashApi { get; set; } - /// - /// 备用clash订阅连接 - /// - public string clashApiBackup { get; set; } - public List list { get; set; } = new List(); - } -} diff --git a/Blog.Core.Model/ViewModels/TrojanUseDetailDto.cs b/Blog.Core.Model/ViewModels/TrojanUseDetailDto.cs deleted file mode 100644 index 7746b105..00000000 --- a/Blog.Core.Model/ViewModels/TrojanUseDetailDto.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Blog.Core.Model.ViewModels -{ - /// - /// Trojan用户流量统计分组 - /// - public class TrojanUseDetailDto - { - /// - /// 用户ID - /// - public int userId { get; set; } - /// - /// 月度 - /// - public string moth { get; set; } - /// - /// 上传流量 - /// - public decimal up { get; set; } - /// - /// 下载流量 - /// - public decimal down { get; set; } - /// - /// 下载流量 - /// - public decimal total { get { return up + down; } } - } -} diff --git a/Blog.Core.Services/TrojanUsersServices.cs b/Blog.Core.Services/TrojanUsersServices.cs deleted file mode 100644 index f42f51d9..00000000 --- a/Blog.Core.Services/TrojanUsersServices.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Blog.Core.Common; -using Blog.Core.IRepository.Base; -using Blog.Core.IServices; -using Blog.Core.Model.Models; -using Blog.Core.Services.BASE; -using System.Linq; -using System.Threading.Tasks; - -namespace Blog.Core.Services -{ - /// - /// TrojanUsersServices - /// - public class TrojanUsersServices : BaseServices, ITrojanUsersServices - { - - } -} diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs deleted file mode 100644 index 9d2d4cea..00000000 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_Trojan_Quartz.cs +++ /dev/null @@ -1,81 +0,0 @@ - -using Blog.Core.IServices; -using Blog.Core.IServices.BASE; -using Blog.Core.Model.Models; -using Blog.Core.Repository.UnitOfWorks; -using Microsoft.Extensions.Logging; -using Quartz; -using System; -using System.Collections.Generic; -using System.Threading.Tasks; - -/// -/// 这里要注意下,命名空间和程序集是一样的,不然反射不到(任务类要去JobSetup添加注入) -/// -namespace Blog.Core.Tasks -{ - public class Job_Trojan_Quartz : JobBase, IJob - { - private readonly IUnitOfWorkManage _unitOfWorkManage; - public IBaseServices_DetailServices; - private readonly ITrojanUsersServices _TrojanUsers; - private readonly ILogger _logger; - - public Job_Trojan_Quartz(IUnitOfWorkManage unitOfWorkManage, IBaseServices iusers_DetailServices, ITrojanUsersServices trojanUsers, ILogger logger, ITasksQzServices tasksQzServices, ITasksLogServices tasksLogServices) - : base(tasksQzServices, tasksLogServices) - { - _tasksQzServices = tasksQzServices; - _unitOfWorkManage = unitOfWorkManage; - _DetailServices = iusers_DetailServices; - _TrojanUsers = trojanUsers; - _logger = logger; - } - public async Task Execute(IJobExecutionContext context) - { - //var param = context.MergedJobDataMap; - // 可以直接获取 JobDetail 的值 - var jobKey = context.JobDetail.Key; - var jobId = jobKey.Name; - var executeLog = await ExecuteJob(context, async () => await Run(context, jobId.ObjToInt())); - - } - public async Task Run(IJobExecutionContext context, int jobid) - { - if (jobid > 0) - { - try - { - //获取每月用户的数据 - _unitOfWorkManage.BeginTran(); - var now = DateTime.Now.AddMonths(-1); - - var list = await _TrojanUsers.Query(); - List ls = new List(); - foreach (var us in list) - { - TrojanDetails u = new TrojanDetails(); - u.calDate = now; - u.userId = us.id; - u.download = us.download; - u.upload = us.upload; - //清零 - us.download = 0; - us.upload = 0; - ls.Add(u); - } - await _TrojanUsers.Update(list); - await _DetailServices.Add(ls); - _unitOfWorkManage.CommitTran(); - } - catch (Exception) - { - _unitOfWorkManage.RollbackTran(); - throw; - } - } - } - } - - - -} From f062eb09831838fec80b069fbd7157d976c5db9b Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Wed, 3 May 2023 17:57:02 +0800 Subject: [PATCH 259/382] =?UTF-8?q?=E2=9C=A8=20=E4=BC=98=E5=8C=96Http?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Serilog/Utility/SerilogRequestUtility.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs b/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs index 61b652dd..289f0aae 100644 --- a/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs +++ b/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs @@ -51,9 +51,15 @@ public static void EnrichFromRequest(IDiagnosticContext diagnosticContext, HttpC diagnosticContext.Set("Protocol", request.Protocol); diagnosticContext.Set("RequestIp", httpContext.GetRequestIp()); - diagnosticContext.Set("QueryString", request.QueryString.HasValue ? request.QueryString.Value : string.Empty); - diagnosticContext.Set("Body", request.ContentLength > 0 ? request.GetRequestBody() : string.Empty); - + if (request.Method == HttpMethods.Get) + { + diagnosticContext.Set("QueryString", request.QueryString.HasValue ? request.QueryString.Value : string.Empty); + } + else + { + diagnosticContext.Set("QueryString", request.QueryString.HasValue ? request.QueryString.Value : string.Empty); + diagnosticContext.Set("Body", request.ContentLength > 0 ? request.GetRequestBody() : string.Empty); + } diagnosticContext.Set("ContentType", httpContext.Response.ContentType); var endpoint = httpContext.GetEndpoint(); From 8662047671c771f5717e8c44aa65f11678c70f54 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 5 May 2023 18:11:24 +0800 Subject: [PATCH 260/382] feat: new user login --- Blog.Core.Common/HttpContextUser/AspNetUser.cs | 2 +- Blog.Core.Common/HttpContextUser/IUser.cs | 2 +- Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs | 2 +- Blog.Core.Model/Models/Modules.cs | 4 ++-- Blog.Core.Model/Models/Permission.cs | 4 ++-- Blog.Core.Model/Models/Role.cs | 4 ++-- Blog.Core.Model/Models/RoleModulePermission.cs | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Blog.Core.Common/HttpContextUser/AspNetUser.cs b/Blog.Core.Common/HttpContextUser/AspNetUser.cs index b37e4a24..590fda59 100644 --- a/Blog.Core.Common/HttpContextUser/AspNetUser.cs +++ b/Blog.Core.Common/HttpContextUser/AspNetUser.cs @@ -40,7 +40,7 @@ private string GetName() return ""; } - public int ID => GetClaimValueByType("jti").FirstOrDefault().ObjToInt(); + public long ID => GetClaimValueByType("jti").FirstOrDefault().ObjToLong(); public long TenantId => GetClaimValueByType("TenantId").FirstOrDefault().ObjToLong(); public bool IsAuthenticated() diff --git a/Blog.Core.Common/HttpContextUser/IUser.cs b/Blog.Core.Common/HttpContextUser/IUser.cs index 3849bd38..aa6094b1 100644 --- a/Blog.Core.Common/HttpContextUser/IUser.cs +++ b/Blog.Core.Common/HttpContextUser/IUser.cs @@ -7,7 +7,7 @@ namespace Blog.Core.Common.HttpContextUser public interface IUser { string Name { get; } - int ID { get; } + long ID { get; } long TenantId { get; } bool IsAuthenticated(); IEnumerable GetClaimsIdentity(); diff --git a/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs b/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs index 018f4c39..b9659029 100644 --- a/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs +++ b/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs @@ -90,7 +90,7 @@ public static TokenModelJwt SerializeJwt(string jwtStr) tokenModelJwt = new TokenModelJwt { - Uid = (jwtToken.Id).ObjToInt(), + Uid = (jwtToken.Id).ObjToLong(), Role = role != null ? role.ObjToString() : "", }; } diff --git a/Blog.Core.Model/Models/Modules.cs b/Blog.Core.Model/Models/Modules.cs index 6e41aaac..684cfcd0 100644 --- a/Blog.Core.Model/Models/Modules.cs +++ b/Blog.Core.Model/Models/Modules.cs @@ -78,7 +78,7 @@ public Modules() /// 创建ID /// [SugarColumn(IsNullable = true)] - public int? CreateId { get; set; } + public long? CreateId { get; set; } /// /// 创建者 /// @@ -93,7 +93,7 @@ public Modules() /// 修改ID /// [SugarColumn(IsNullable = true)] - public int? ModifyId { get; set; } + public long? ModifyId { get; set; } /// /// 修改者 /// diff --git a/Blog.Core.Model/Models/Permission.cs b/Blog.Core.Model/Models/Permission.cs index deece0c0..9dd6238d 100644 --- a/Blog.Core.Model/Models/Permission.cs +++ b/Blog.Core.Model/Models/Permission.cs @@ -69,7 +69,7 @@ public Permission() /// 创建ID /// [SugarColumn(IsNullable = true)] - public int? CreateId { get; set; } + public long? CreateId { get; set; } /// /// 创建者 /// @@ -84,7 +84,7 @@ public Permission() /// 修改ID /// [SugarColumn(IsNullable = true)] - public int? ModifyId { get; set; } + public long? ModifyId { get; set; } /// /// 修改者 /// diff --git a/Blog.Core.Model/Models/Role.cs b/Blog.Core.Model/Models/Role.cs index 1357afb0..0e65bcaf 100644 --- a/Blog.Core.Model/Models/Role.cs +++ b/Blog.Core.Model/Models/Role.cs @@ -64,7 +64,7 @@ public Role(string name) /// 创建ID /// [SugarColumn(IsNullable = true)] - public int? CreateId { get; set; } + public long? CreateId { get; set; } /// /// 创建者 /// @@ -79,7 +79,7 @@ public Role(string name) /// 修改ID /// [SugarColumn(IsNullable = true)] - public int? ModifyId { get; set; } + public long? ModifyId { get; set; } /// /// 修改者 /// diff --git a/Blog.Core.Model/Models/RoleModulePermission.cs b/Blog.Core.Model/Models/RoleModulePermission.cs index 482b9b4e..f33c1080 100644 --- a/Blog.Core.Model/Models/RoleModulePermission.cs +++ b/Blog.Core.Model/Models/RoleModulePermission.cs @@ -26,7 +26,7 @@ public RoleModulePermission() /// 创建ID /// [SugarColumn(IsNullable = true)] - public int? CreateId { get; set; } + public long? CreateId { get; set; } /// /// 创建者 /// @@ -41,7 +41,7 @@ public RoleModulePermission() /// 修改ID /// [SugarColumn(IsNullable = true)] - public int? ModifyId { get; set; } + public long? ModifyId { get; set; } /// /// 修改者 /// From 48a4adcd371864b3c533bdc981177e6909cfe0aa Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Sat, 6 May 2023 09:47:20 +0800 Subject: [PATCH 261/382] =?UTF-8?q?=E2=9C=A8=20=E4=BC=98=E5=8C=96Http?= =?UTF-8?q?=E6=97=A5=E5=BF=97=EF=BC=8C=E8=AE=B0=E5=BD=95RequestBody?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Common/Extensions/HttpRequestExtension.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Blog.Core.Common/Extensions/HttpRequestExtension.cs b/Blog.Core.Common/Extensions/HttpRequestExtension.cs index 7e87fd28..285a4a9e 100644 --- a/Blog.Core.Common/Extensions/HttpRequestExtension.cs +++ b/Blog.Core.Common/Extensions/HttpRequestExtension.cs @@ -8,6 +8,16 @@ public static class HttpRequestExtension { public static string GetRequestBody(this HttpRequest request) { + if (!request.Body.CanRead) + { + return default; + } + + if (!request.Body.CanSeek) + { + return default; + } + if (request.Body.Length < 1) { return default; From ddb326763b26ff5b540c310c8d83cb251b73dbb4 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 6 May 2023 10:58:18 +0800 Subject: [PATCH 262/382] feat: change file upload api --- Blog.Core.Api/Controllers/ImgController.cs | 6 +++--- Blog.Core.Model/ViewModels/UploadFileDto.cs | 7 +------ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Blog.Core.Api/Controllers/ImgController.cs b/Blog.Core.Api/Controllers/ImgController.cs index 11d9d209..5ba85388 100644 --- a/Blog.Core.Api/Controllers/ImgController.cs +++ b/Blog.Core.Api/Controllers/ImgController.cs @@ -54,11 +54,11 @@ public FileStreamResult DownImg() public async Task> InsertPicture([FromForm]UploadFileDto dto) { - if (dto.Files == null || !dto.Files.Any()) return Failed("请选择上传的文件。"); + if (dto.file == null || !dto.file.Any()) return Failed("请选择上传的文件。"); //格式限制 var allowType = new string[] { "image/jpg", "image/png", "image/jpeg" }; - var allowedFile = dto.Files.Where(c => allowType.Contains(c.ContentType)); + var allowedFile = dto.file.Where(c => allowType.Contains(c.ContentType)); if (!allowedFile.Any()) return Failed("图片格式错误"); if (allowedFile.Sum(c => c.Length) > 1024 * 1024 * 4) return Failed("图片过大"); @@ -79,7 +79,7 @@ public async Task> InsertPicture([FromForm]UploadFileDto dt } } - var excludeFiles = dto.Files.Except(allowedFile); + var excludeFiles = dto.file.Except(allowedFile); if (excludeFiles.Any()) { diff --git a/Blog.Core.Model/ViewModels/UploadFileDto.cs b/Blog.Core.Model/ViewModels/UploadFileDto.cs index fc2b3cf7..dd0f51bb 100644 --- a/Blog.Core.Model/ViewModels/UploadFileDto.cs +++ b/Blog.Core.Model/ViewModels/UploadFileDto.cs @@ -1,10 +1,5 @@ using Microsoft.AspNetCore.Http; -using System; -using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Blog.Core.Model.ViewModels { @@ -12,7 +7,7 @@ public class UploadFileDto { //多文件 [Required] - public IFormFileCollection Files { get; set; } + public IFormFileCollection file { get; set; } //单文件 //public IFormFile File { get; set; } From 8183be9d5888a8cd07f300e6e8d4a44e1dda117e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 8 May 2023 16:55:41 +0800 Subject: [PATCH 263/382] feat: change maindb sort --- Blog.Core.Common/DB/BaseDBConfig.cs | 9 +++++++-- Blog.Core.Common/DB/TenantUtil.cs | 3 ++- Blog.Core.Common/Seed/DBSeed.cs | 6 +++--- Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs | 3 ++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Blog.Core.Common/DB/BaseDBConfig.cs b/Blog.Core.Common/DB/BaseDBConfig.cs index 5761d91d..313b8a00 100644 --- a/Blog.Core.Common/DB/BaseDBConfig.cs +++ b/Blog.Core.Common/DB/BaseDBConfig.cs @@ -12,8 +12,8 @@ public class BaseDBConfig * 目前是多库操作,默认加载的是appsettings.json设置为true的第一个db连接。 */ public static (List allDbs, List slaveDbs) MutiConnectionString => MutiInitConn(); - public static List AllConfig=new(); //所有的库连接 - public static List ValidConfig=new(); //有效的库连接(除去Log库) + public static List AllConfig = new(); //所有的库连接 + public static List ValidConfig = new(); //有效的库连接(除去Log库) public static ConnectionConfig LogConfig; //日志库 private static string DifDBConnOfSecurity(params string[] conn) @@ -40,6 +40,11 @@ public static (List, List) MutiInitConn() { List listdatabase = AppSettings.app("DBS") .Where(i => i.Enabled).ToList(); + var mainDbId = AppSettings.app(new string[] { "MainDB" }).ObjToString(); + var mainDbModel = listdatabase.Single(d => d.ConnId == mainDbId); + listdatabase.Remove(mainDbModel); + listdatabase.Insert(0, mainDbModel); + foreach (var i in listdatabase) { SpecialDbString(i); diff --git a/Blog.Core.Common/DB/TenantUtil.cs b/Blog.Core.Common/DB/TenantUtil.cs index 8d57189b..8395c271 100644 --- a/Blog.Core.Common/DB/TenantUtil.cs +++ b/Blog.Core.Common/DB/TenantUtil.cs @@ -47,7 +47,8 @@ public static ConnectionConfig GetConnectionConfig(this SysTenant tenant) IsAutoCloseConnection = true, MoreSettings = new ConnMoreSettings() { - IsAutoRemoveDataCache = true + IsAutoRemoveDataCache = true, + SqlServerCodeFirstNvarchar = true, }, }; } diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 000ff976..e7eb4e27 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -44,9 +44,9 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) Console.WriteLine($"Is multi-DataBase: {AppSettings.app(new string[] { "MutiDBEnabled" })}"); Console.WriteLine($"Is CQRS: {AppSettings.app(new string[] { "CQRSEnabled" })}"); Console.WriteLine(); - Console.WriteLine($"Master DB ConId: {MyContext.ConnId}"); - Console.WriteLine($"Master DB Type: {MyContext.DbType}"); - Console.WriteLine($"Master DB ConnectString: {MyContext.ConnectionString}"); + Console.WriteLine($"Master DB ConId: {myContext.Db.CurrentConnectionConfig.ConfigId}"); + Console.WriteLine($"Master DB Type: {myContext.Db.CurrentConnectionConfig.DbType}"); + Console.WriteLine($"Master DB ConnectString: {myContext.Db.CurrentConnectionConfig.ConnectionString}"); Console.WriteLine(); if (AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool()) { diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 98dd6e24..83dff774 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -57,7 +57,8 @@ public static void AddSqlsugarSetup(this IServiceCollection services) MoreSettings = new ConnMoreSettings() { //IsWithNoLockQuery = true, - IsAutoRemoveDataCache = true + IsAutoRemoveDataCache = true, + SqlServerCodeFirstNvarchar = true, }, // 从库 SlaveConnectionConfigs = listConfig_Slave, From e9f1ef5c01a29dbfea9bf0c0050115216f4a9b06 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Fri, 14 Apr 2023 10:43:47 +0800 Subject: [PATCH 264/382] =?UTF-8?q?=E2=9C=A8=20=E5=A2=9E=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Api.csproj | 1 + Blog.Core.Api/Blog.Core.Model.xml | 5 + Blog.Core.Api/Blog.Core.xml | 40 ++ .../Controllers/BaseApiController.cs | 155 +++---- .../Controllers/Systems/DataBaseController.cs | 188 ++++++++ Blog.Core.Common/Blog.Core.Common.csproj | 3 + Blog.Core.Common/DB/BaseDBConfig.cs | 19 +- Blog.Core.Common/DB/EntityUtility.cs | 53 +++ .../Extensions/DictionaryExtensions.cs | 18 + .../Policys/PermissionHandler.cs | 427 +++++++++--------- .../ServiceExtensions/SqlsugarSetup.cs | 248 +++++----- .../Systems/DataBase/DataBaseReadType.cs | 10 + .../Systems/DataBase/DatabaseOutput.cs | 10 + .../Systems/DataBase/DbColumnInfoOutput.cs | 36 ++ .../Systems/DataBase/EditColumnInput.cs | 9 + .../Systems/DataBase/EditTableInput.cs | 10 + 16 files changed, 822 insertions(+), 410 deletions(-) create mode 100644 Blog.Core.Api/Controllers/Systems/DataBaseController.cs create mode 100644 Blog.Core.Common/DB/EntityUtility.cs create mode 100644 Blog.Core.Common/Extensions/DictionaryExtensions.cs create mode 100644 Blog.Core.Model/Systems/DataBase/DataBaseReadType.cs create mode 100644 Blog.Core.Model/Systems/DataBase/DatabaseOutput.cs create mode 100644 Blog.Core.Model/Systems/DataBase/DbColumnInfoOutput.cs create mode 100644 Blog.Core.Model/Systems/DataBase/EditColumnInput.cs create mode 100644 Blog.Core.Model/Systems/DataBase/EditTableInput.cs diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index f3f9befa..2f8c41e9 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -106,6 +106,7 @@ + diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 79666d28..1eb3423b 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -1957,6 +1957,11 @@ 找不到指定资源 + + + 数据库读取类型 + + 表格数据,支持分页 diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index b47bbf53..51ffc1f2 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1299,6 +1299,46 @@ + + + 数据库管理 + + + + + 获取库配置 + + + + + + 获取表信息 + + 配置Id + 读取类型 + + + + + 获取表字段 + + 表名 + ConfigId + 读取类型 + + + + + 编辑表备注 + + + + + + 编辑列备注 + + + 多租户-多库方案 测试 diff --git a/Blog.Core.Api/Controllers/BaseApiController.cs b/Blog.Core.Api/Controllers/BaseApiController.cs index 5a374ded..97a938ea 100644 --- a/Blog.Core.Api/Controllers/BaseApiController.cs +++ b/Blog.Core.Api/Controllers/BaseApiController.cs @@ -4,82 +4,85 @@ namespace Blog.Core.Controllers { - public class BaseApiController : Controller - { - [NonAction] - public MessageModel Success(T data, string msg = "成功") - { - return new MessageModel() - { - success = true, - msg = msg, - response = data, - }; - } - // [NonAction] - //public MessageModel Success(T data, string msg = "成功",bool success = true) - //{ - // return new MessageModel() - // { - // success = success, - // msg = msg, - // response = data, - // }; - //} - [NonAction] - public MessageModel Success(string msg = "成功") - { - return new MessageModel() - { - success = true, - msg = msg, - response = null, - }; - } - [NonAction] - public MessageModel Failed(string msg = "失败", int status = 500) - { - return new MessageModel() - { - success = false, - status = status, - msg = msg, - response = null, - }; - } - [NonAction] - public MessageModel Failed(string msg = "失败", int status = 500) - { - return new MessageModel() - { - success = false, - status = status, - msg = msg, - response = default, - }; - } - [NonAction] - public MessageModel> SuccessPage(int page, int dataCount, int pageSize, List data, int pageCount, string msg = "获取成功") - { + public class BaseApiController : Controller + { + [NonAction] + public MessageModel Success(T data, string msg = "成功") + { + return new MessageModel() + { + success = true, + msg = msg, + response = data, + }; + } - return new MessageModel>() - { - success = true, - msg = msg, - response = new PageModel(page, dataCount, pageSize, data) + // [NonAction] + //public MessageModel Success(T data, string msg = "成功",bool success = true) + //{ + // return new MessageModel() + // { + // success = success, + // msg = msg, + // response = data, + // }; + //} + [NonAction] + public MessageModel Success(string msg = "成功") + { + return new MessageModel() + { + success = true, + msg = msg, + response = null, + }; + } + + [NonAction] + public MessageModel Failed(string msg = "失败", int status = 500) + { + return new MessageModel() + { + success = false, + status = status, + msg = msg, + response = null, + }; + } - }; - } - [NonAction] - public MessageModel> SuccessPage(PageModel pageModel, string msg = "获取成功") - { + [NonAction] + public MessageModel Failed(string msg = "失败", int status = 500) + { + return new MessageModel() + { + success = false, + status = status, + msg = msg, + response = default, + }; + } - return new MessageModel>() - { - success = true, - msg = msg, - response = pageModel - }; - } - } -} + [NonAction] + public MessageModel> SuccessPage(int page, int dataCount, int pageSize, List data, + int pageCount, string msg = "获取成功") + { + return new MessageModel>() + { + success = true, + msg = msg, + response = new PageModel(page, dataCount, pageSize, data) + }; + } + + [NonAction] + public MessageModel> SuccessPage(PageModel pageModel, string msg = "获取成功") + { + return new MessageModel>() + { + success = true, + msg = msg, + response = pageModel + }; + } + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Controllers/Systems/DataBaseController.cs b/Blog.Core.Api/Controllers/Systems/DataBaseController.cs new file mode 100644 index 00000000..434bd195 --- /dev/null +++ b/Blog.Core.Api/Controllers/Systems/DataBaseController.cs @@ -0,0 +1,188 @@ +using System.Diagnostics.CodeAnalysis; +using Blog.Core.Common; +using Blog.Core.Common.DB; +using Blog.Core.Controllers; +using Blog.Core.Model; +using Blog.Core.Model.Models; +using Blog.Core.Model.Systems.DataBase; +using Blog.Core.Model.Tenants; +using Mapster; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using SqlSugar; + +namespace Blog.Core.Api.Controllers.Systems; + +/// +/// 数据库管理 +/// +[Route("api/Systems/[controller]/[action]")] +[ApiController] +[Authorize(Permissions.Name)] +public class DataBaseController : BaseApiController +{ + private readonly ISqlSugarClient _db; + + public DataBaseController(ISqlSugarClient db) + { + _db = db; + } + + [return: NotNull] + public ISqlSugarClient GetTenantDb(string configId) + { + if (!_db.AsTenant().IsAnyConnection(configId)) + { + var tenant = _db.Queryable().WithCache() + .Where(s => s.TenantType == TenantTypeEnum.Db) + .Where(s => s.ConfigId == configId) + .First(); + if (tenant != null) + { + _db.AsTenant().AddConnection(tenant.GetConnectionConfig()); + } + } + + var db = _db.AsTenant().GetConnectionScope(configId); + if (db is null) + { + throw new ApplicationException("无效的数据库配置"); + } + + return db; + } + + /// + /// 获取库配置 + /// + /// + [HttpGet] + public async Task>> GetAllConfig() + { + //增加多租户的连接 + var allConfigs = new List(BaseDBConfig.AllConfigs); + var tenants = await _db.Queryable().WithCache() + .Where(s => s.TenantType == TenantTypeEnum.Db) + .ToListAsync(); + if (tenants.Any()) + { + allConfigs.AddRange(tenants.Select(tenant => tenant.GetConnectionConfig())); + } + + var configs = await Task.FromResult(allConfigs); + return Success(configs.Adapt>()); + } + + /// + /// 获取表信息 + /// + /// 配置Id + /// 读取类型 + /// + [HttpGet] + public MessageModel> GetTableInfoList(string configId, + DataBaseReadType readType = DataBaseReadType.Db) + { + if (configId.IsNullOrEmpty()) + { + configId = MainDb.CurrentDbConnId; + } + + var provider = GetTenantDb(configId); + List data = null; + switch (readType) + { + case DataBaseReadType.Db: + data = provider.DbMaintenance.GetTableInfoList(false); + break; + case DataBaseReadType.Entity: + if (EntityUtility.TenantEntitys.TryGetValue(configId, out var types)) + { + data = types.Select(s => provider.EntityMaintenance.GetEntityInfo(s)) + .Select(s => new {Name = s.DbTableName, Description = s.TableDescription}) + .Adapt>(); + } + + break; + } + + + return Success(data); + } + + /// + /// 获取表字段 + /// + /// 表名 + /// ConfigId + /// 读取类型 + /// + [HttpGet] + public MessageModel> GetColumnInfosByTableName(string tableName, string configId = null, + DataBaseReadType readType = DataBaseReadType.Db) + { + if (string.IsNullOrWhiteSpace(tableName)) + return Failed>("表名不能为空"); + + if (configId.IsNullOrEmpty()) + { + configId = MainDb.CurrentDbConnId; + } + + List data = null; + var provider = GetTenantDb(configId); + switch (readType) + { + case DataBaseReadType.Db: + data = provider.DbMaintenance.GetColumnInfosByTableName(tableName, false) + .Adapt>(); + break; + case DataBaseReadType.Entity: + if (EntityUtility.TenantEntitys.TryGetValue(configId, out var types)) + { + var type = types.FirstOrDefault(s => s.Name == tableName); + data = provider.EntityMaintenance.GetEntityInfo(type).Columns.Adapt>(); + } + + break; + } + + + return Success(data); + } + + /// + /// 编辑表备注 + /// + /// + [HttpPut] + public MessageModel PutTableEditRemark([FromBody] EditTableInput input) + { + var provider = GetTenantDb(input.ConfigId); + if (provider.DbMaintenance.IsAnyTableRemark(input.TableName)) + { + provider.DbMaintenance.DeleteTableRemark(input.TableName); + } + + provider.DbMaintenance.AddTableRemark(input.TableName, input.Description); + return Success(); + } + + /// + /// 编辑列备注 + /// + /// + [HttpPut] + public MessageModel PutColumnEditRemark([FromBody] EditColumnInput input) + { + var provider = GetTenantDb(input.ConfigId); + if (provider.DbMaintenance.IsAnyColumnRemark(input.DbColumnName, input.TableName)) + { + provider.DbMaintenance.DeleteColumnRemark(input.DbColumnName, input.TableName); + } + + provider.DbMaintenance.AddColumnRemark(input.DbColumnName, input.TableName, input.ColumnDescription); + + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 0662bac5..aeba8476 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -18,6 +18,9 @@ + + + diff --git a/Blog.Core.Common/DB/BaseDBConfig.cs b/Blog.Core.Common/DB/BaseDBConfig.cs index 313b8a00..495414fb 100644 --- a/Blog.Core.Common/DB/BaseDBConfig.cs +++ b/Blog.Core.Common/DB/BaseDBConfig.cs @@ -3,18 +3,23 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using SqlSugar; namespace Blog.Core.Common.DB { public class BaseDBConfig { + public static readonly List AllConfigs = new(); //所有库配置 + public static readonly List AllSlaveConfigs = new(); //从库配置 + public static List ValidConfig = new(); //有效的库连接(除去Log库) + public static ConnectionConfig LogConfig; //日志库 + /* 之前的单库操作已经删除,如果想要之前的代码,可以查看我的GitHub的历史记录 * 目前是多库操作,默认加载的是appsettings.json设置为true的第一个db连接。 */ public static (List allDbs, List slaveDbs) MutiConnectionString => MutiInitConn(); - public static List AllConfig = new(); //所有的库连接 - public static List ValidConfig = new(); //有效的库连接(除去Log库) - public static ConnectionConfig LogConfig; //日志库 + + private static string DifDBConnOfSecurity(params string[] conn) { @@ -54,7 +59,7 @@ public static (List, List) MutiInitConn() List listdatabaseSlaveDB = new List(); //从库 // 单库,且不开启读写分离,只保留一个 - if (!AppSettings.app(new string[] { "CQRSEnabled" }).ObjToBool() && !AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool()) + if (!AppSettings.app(new string[] {"CQRSEnabled"}).ObjToBool() && !AppSettings.app(new string[] {"MutiDBEnabled"}).ObjToBool()) { if (listdatabase.Count == 1) { @@ -62,7 +67,7 @@ public static (List, List) MutiInitConn() } else { - var dbFirst = listdatabase.FirstOrDefault(d => d.ConnId == AppSettings.app(new string[] { "MainDB" }).ObjToString()); + var dbFirst = listdatabase.FirstOrDefault(d => d.ConnId == AppSettings.app(new string[] {"MainDB"}).ObjToString()); if (dbFirst == null) { dbFirst = listdatabase.FirstOrDefault(); @@ -75,11 +80,11 @@ public static (List, List) MutiInitConn() // 读写分离,且必须是单库模式,获取从库 - if (AppSettings.app(new string[] { "CQRSEnabled" }).ObjToBool() && !AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool()) + if (AppSettings.app(new string[] {"CQRSEnabled"}).ObjToBool() && !AppSettings.app(new string[] {"MutiDBEnabled"}).ObjToBool()) { if (listdatabase.Count > 1) { - listdatabaseSlaveDB = listdatabase.Where(d => d.ConnId != AppSettings.app(new string[] { "MainDB" }).ObjToString()).ToList(); + listdatabaseSlaveDB = listdatabase.Where(d => d.ConnId != AppSettings.app(new string[] {"MainDB"}).ObjToString()).ToList(); } } diff --git a/Blog.Core.Common/DB/EntityUtility.cs b/Blog.Core.Common/DB/EntityUtility.cs new file mode 100644 index 00000000..f997a1eb --- /dev/null +++ b/Blog.Core.Common/DB/EntityUtility.cs @@ -0,0 +1,53 @@ +using Blog.Core.Common.Extensions; +using Blog.Core.Model; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; + +namespace Blog.Core.Common.DB; + +public class EntityUtility +{ + private static readonly Lazy>> _tenantEntitys = new(() => + { + Dictionary> dic = new Dictionary>(); + var assembly = Assembly.Load("Blog.Core.Model"); + //扫描 实体 + foreach (var type in assembly.GetTypes().Where(s => s.IsClass && !s.IsAbstract)) + { + var tenant = type.GetCustomAttribute(); + if (tenant != null) + { + dic.TryAdd(tenant.configId.ToString(), type); + continue; + } + + if (type.IsSubclassOf(typeof(RootEntityTkey<>))) + { + dic.TryAdd(MainDb.CurrentDbConnId, type); + continue; + } + + var table = type.GetCustomAttribute(); + if (table != null) + { + dic.TryAdd(MainDb.CurrentDbConnId, type); + continue; + } + + Debug.Assert(type.Namespace != null, "type.Namespace != null"); + if (type.Namespace.StartsWith("Blog.Core.Model.Models")) + { + dic.TryAdd(MainDb.CurrentDbConnId, type); + continue; + } + } + + return dic; + }); + + public static Dictionary> TenantEntitys => _tenantEntitys.Value; +} \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/DictionaryExtensions.cs b/Blog.Core.Common/Extensions/DictionaryExtensions.cs new file mode 100644 index 00000000..ffcf910c --- /dev/null +++ b/Blog.Core.Common/Extensions/DictionaryExtensions.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; + +namespace Blog.Core.Common.Extensions; + +public static class DictionaryExtensions +{ + public static void TryAdd(this IDictionary> dic, TKey key, TValue value) + { + if (dic.TryGetValue(key, out var old)) + { + old.Add(value); + } + else + { + dic.Add(key, new List {value}); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs index 121b9b10..23627ccd 100644 --- a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs +++ b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs @@ -14,212 +14,229 @@ using System.Security.Claims; using System.Text.RegularExpressions; using System.Threading.Tasks; +using Blog.Core.Model.Models; namespace Blog.Core.AuthHelper { - /// - /// 权限授权处理器 - /// - public class PermissionHandler : AuthorizationHandler - { - /// - /// 验证方案提供对象 - /// - public IAuthenticationSchemeProvider Schemes { get; set; } - - private readonly IRoleModulePermissionServices _roleModulePermissionServices; - private readonly IHttpContextAccessor _accessor; - private readonly ISysUserInfoServices _userServices; - private readonly IUser _user; - - /// - /// 构造函数注入 - /// - /// - /// - /// - /// - /// - public PermissionHandler(IAuthenticationSchemeProvider schemes, IRoleModulePermissionServices roleModulePermissionServices, IHttpContextAccessor accessor, ISysUserInfoServices userServices, IUser user) - { - _accessor = accessor; - _userServices = userServices; - _user = user; - Schemes = schemes; - _roleModulePermissionServices = roleModulePermissionServices; - } - - // 重写异步处理程序 - protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requirement) - { - var httpContext = _accessor.HttpContext; - - // 获取系统中所有的角色和菜单的关系集合 - if (!requirement.Permissions.Any()) - { - var data = await _roleModulePermissionServices.RoleModuleMaps(); - var list = new List(); - // ids4和jwt切换 - // ids4 - if (Permissions.IsUseIds4) - { - list = (from item in data - where item.IsDeleted == false - orderby item.Id - select new PermissionItem - { - Url = item.Module?.LinkUrl, - Role = item.Role?.Id.ObjToString(), - }).ToList(); - } - // jwt - else - { - list = (from item in data - where item.IsDeleted == false - orderby item.Id - select new PermissionItem - { - Url = item.Module?.LinkUrl, - Role = item.Role?.Name.ObjToString(), - }).ToList(); - } - - requirement.Permissions = list; - } - - if (httpContext != null) - { - var questUrl = httpContext.Request.Path.Value.ToLower(); - - // 整体结构类似认证中间件UseAuthentication的逻辑,具体查看开源地址 - // https://github.com/dotnet/aspnetcore/blob/master/src/Security/Authentication/Core/src/AuthenticationMiddleware.cs - httpContext.Features.Set(new AuthenticationFeature - { - OriginalPath = httpContext.Request.Path, - OriginalPathBase = httpContext.Request.PathBase - }); - - // Give any IAuthenticationRequestHandler schemes a chance to handle the request - // 主要作用是: 判断当前是否需要进行远程验证,如果是就进行远程验证 - var handlers = httpContext.RequestServices.GetRequiredService(); - foreach (var scheme in await Schemes.GetRequestHandlerSchemesAsync()) - { - if (await handlers.GetHandlerAsync(httpContext, scheme.Name) is IAuthenticationRequestHandler handler && await handler.HandleRequestAsync()) - { - context.Fail(); - return; - } - } - - - //判断请求是否拥有凭据,即有没有登录 - var defaultAuthenticate = await Schemes.GetDefaultAuthenticateSchemeAsync(); - if (defaultAuthenticate != null) - { - var result = await httpContext.AuthenticateAsync(defaultAuthenticate.Name); - - // 是否开启测试环境 - var isTestCurrent = AppSettings.app(new string[] { "AppSettings", "UseLoadTest" }).ObjToBool(); - - //result?.Principal不为空即登录成功 - if (result?.Principal != null || isTestCurrent) - { - if (!isTestCurrent) httpContext.User = result.Principal; - - // 获取当前用户的角色信息 - var currentUserRoles = new List(); - // ids4和jwt切换 - // ids4 - if (Permissions.IsUseIds4) - { - currentUserRoles = (from item in httpContext.User.Claims - where item.Type == "role" - select item.Value).ToList(); - } - else - { - // jwt - currentUserRoles = (from item in httpContext.User.Claims - where item.Type == requirement.ClaimType - select item.Value).ToList(); - } - - var isMatchRole = false; - var permisssionRoles = requirement.Permissions.Where(w => currentUserRoles.Contains(w.Role)); - foreach (var item in permisssionRoles) - { - try - { - if (Regex.Match(questUrl, item.Url?.ObjToString().ToLower())?.Value == questUrl) - { - isMatchRole = true; - break; - } - } - catch (Exception) - { - // ignored - } - } - - //验证权限 - if (currentUserRoles.Count <= 0 || !isMatchRole) - { - context.Fail(); - return; - } - - // 判断token是否过期,过期则重新登录 - var isExp = false; - // ids4和jwt切换 - // ids4 - if (Permissions.IsUseIds4) - { - isExp = (httpContext.User.Claims.SingleOrDefault(s => s.Type == "exp")?.Value) != null && DateHelper.StampToDateTime(httpContext.User.Claims.SingleOrDefault(s => s.Type == "exp")?.Value) >= DateTime.Now; - } - else - { - // jwt - isExp = (httpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Expiration)?.Value) != null && DateTime.Parse(httpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Expiration)?.Value) >= DateTime.Now; - } - - if (!isExp) - { - context.Fail(new AuthorizationFailureReason(this, "授权已过期,请重新授权")); - return; - } - - //校验签发时间 - if (!Permissions.IsUseIds4) - { - var value = httpContext.User.Claims.SingleOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; - if (value != null) - { - var user = await _userServices.QueryById(_user.ID, true); - if (user.CriticalModifyTime > value.ObjToDate()) - { - _user.MessageModel = new ApiResponse(StatusCode.CODE401, "很抱歉,授权已失效,请重新授权").MessageModel; - context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); - return; - } - } - } - - context.Succeed(requirement); - return; - } - } - - //判断没有登录时,是否访问登录的url,并且是Post请求,并且是form表单提交类型,否则为失败 - if (!(questUrl.Equals(requirement.LoginPath.ToLower(), StringComparison.Ordinal) && (!httpContext.Request.Method.Equals("POST") || !httpContext.Request.HasFormContentType))) - { - context.Fail(); - return; - } - } - - //context.Succeed(requirement); - } - } + /// + /// 权限授权处理器 + /// + public class PermissionHandler : AuthorizationHandler + { + /// + /// 验证方案提供对象 + /// + public IAuthenticationSchemeProvider Schemes { get; set; } + + private readonly IRoleModulePermissionServices _roleModulePermissionServices; + private readonly IHttpContextAccessor _accessor; + private readonly ISysUserInfoServices _userServices; + private readonly IUser _user; + + /// + /// 构造函数注入 + /// + /// + /// + /// + /// + /// + public PermissionHandler(IAuthenticationSchemeProvider schemes, + IRoleModulePermissionServices roleModulePermissionServices, IHttpContextAccessor accessor, + ISysUserInfoServices userServices, IUser user) + { + _accessor = accessor; + _userServices = userServices; + _user = user; + Schemes = schemes; + _roleModulePermissionServices = roleModulePermissionServices; + } + + // 重写异步处理程序 + protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, + PermissionRequirement requirement) + { + var httpContext = _accessor.HttpContext; + + // 获取系统中所有的角色和菜单的关系集合 + if (!requirement.Permissions.Any()) + { + var data = await _roleModulePermissionServices.RoleModuleMaps(); + var list = new List(); + // ids4和jwt切换 + // ids4 + if (Permissions.IsUseIds4) + { + list = (from item in data + where item.IsDeleted == false + orderby item.Id + select new PermissionItem + { + Url = item.Module?.LinkUrl, + Role = item.Role?.Id.ObjToString(), + }).ToList(); + } + // jwt + else + { + list = (from item in data + where item.IsDeleted == false + orderby item.Id + select new PermissionItem + { + Url = item.Module?.LinkUrl, + Role = item.Role?.Name.ObjToString(), + }).ToList(); + } + + requirement.Permissions = list; + } + + if (httpContext != null) + { + var questUrl = httpContext.Request.Path.Value.ToLower(); + + // 整体结构类似认证中间件UseAuthentication的逻辑,具体查看开源地址 + // https://github.com/dotnet/aspnetcore/blob/master/src/Security/Authentication/Core/src/AuthenticationMiddleware.cs + httpContext.Features.Set(new AuthenticationFeature + { + OriginalPath = httpContext.Request.Path, + OriginalPathBase = httpContext.Request.PathBase + }); + + // Give any IAuthenticationRequestHandler schemes a chance to handle the request + // 主要作用是: 判断当前是否需要进行远程验证,如果是就进行远程验证 + var handlers = httpContext.RequestServices.GetRequiredService(); + foreach (var scheme in await Schemes.GetRequestHandlerSchemesAsync()) + { + if (await handlers.GetHandlerAsync(httpContext, scheme.Name) is IAuthenticationRequestHandler + handler && await handler.HandleRequestAsync()) + { + context.Fail(); + return; + } + } + + //判断请求是否拥有凭据,即有没有登录 + var defaultAuthenticate = await Schemes.GetDefaultAuthenticateSchemeAsync(); + if (defaultAuthenticate != null) + { + var result = await httpContext.AuthenticateAsync(defaultAuthenticate.Name); + + // 是否开启测试环境 + var isTestCurrent = AppSettings.app(new string[] {"AppSettings", "UseLoadTest"}).ObjToBool(); + + //result?.Principal不为空即登录成功 + if (result?.Principal != null || isTestCurrent) + { + if (!isTestCurrent) httpContext.User = result.Principal; + + // 获取当前用户的角色信息 + var currentUserRoles = new List(); + // ids4和jwt切换 + // ids4 + if (Permissions.IsUseIds4) + { + currentUserRoles = (from item in httpContext.User.Claims + where item.Type == "role" + select item.Value).ToList(); + } + else + { + // jwt + currentUserRoles = (from item in httpContext.User.Claims + where item.Type == requirement.ClaimType + select item.Value).ToList(); + } + + //超级管理员 默认拥有所有权限 + if (currentUserRoles.All(s => s != "SuperAdmin")) + { + var isMatchRole = false; + var permisssionRoles = requirement.Permissions.Where(w => currentUserRoles.Contains(w.Role)); + foreach (var item in permisssionRoles) + { + try + { + if (Regex.Match(questUrl, item.Url?.ObjToString().ToLower())?.Value == questUrl) + { + isMatchRole = true; + break; + } + } + catch (Exception) + { + // ignored + } + } + + //验证权限 + if (currentUserRoles.Count <= 0 || !isMatchRole) + { + context.Fail(); + return; + } + } + + // 判断token是否过期,过期则重新登录 + var isExp = false; + // ids4和jwt切换 + // ids4 + if (Permissions.IsUseIds4) + { + isExp = (httpContext.User.Claims.SingleOrDefault(s => s.Type == "exp")?.Value) != null && + DateHelper.StampToDateTime(httpContext.User.Claims + .SingleOrDefault(s => s.Type == "exp")?.Value) >= DateTime.Now; + } + else + { + // jwt + isExp = + (httpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Expiration) + ?.Value) != null && + DateTime.Parse(httpContext.User.Claims + .SingleOrDefault(s => s.Type == ClaimTypes.Expiration)?.Value) >= DateTime.Now; + } + + if (!isExp) + { + context.Fail(new AuthorizationFailureReason(this, "授权已过期,请重新授权")); + return; + } + + //校验签发时间 + if (!Permissions.IsUseIds4) + { + var value = httpContext.User.Claims + .SingleOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; + if (value != null) + { + var user = await _userServices.QueryById(_user.ID, true); + if (user.CriticalModifyTime > value.ObjToDate()) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "很抱歉,授权已失效,请重新授权") + .MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } + } + } + + context.Succeed(requirement); + return; + } + } + + //判断没有登录时,是否访问登录的url,并且是Post请求,并且是form表单提交类型,否则为失败 + if (!(questUrl.Equals(requirement.LoginPath.ToLower(), StringComparison.Ordinal) && + (!httpContext.Request.Method.Equals("POST") || !httpContext.Request.HasFormContentType))) + { + context.Fail(); + return; + } + } + + //context.Succeed(requirement); + } + } } \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 83dff774..4ac2d2e8 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -13,126 +13,130 @@ namespace Blog.Core.Extensions { - /// - /// SqlSugar 启动服务 - /// - public static class SqlsugarSetup - { - private static readonly MemoryCache Cache = new MemoryCache(new MemoryCacheOptions()); - - public static void AddSqlsugarSetup(this IServiceCollection services) - { - if (services == null) throw new ArgumentNullException(nameof(services)); - - // 默认添加主数据库连接 - MainDb.CurrentDbConnId = AppSettings.app(new string[] { "MainDB" }); - - // SqlSugarScope是线程安全,可使用单例注入 - // 参考:https://www.donet5.com/Home/Doc?typeId=1181 - services.AddSingleton(o => - { - var memoryCache = o.GetRequiredService(); - - // 从库 - var listConfig_Slave = new List(); - BaseDBConfig.MutiConnectionString.slaveDbs.ForEach(s => - { - listConfig_Slave.Add(new SlaveConnectionConfig() - { - HitRate = s.HitRate, - ConnectionString = s.Connection - }); - }); - - BaseDBConfig.MutiConnectionString.allDbs.ForEach(m => - { - var config = new ConnectionConfig() - { - ConfigId = m.ConnId.ObjToString().ToLower(), - ConnectionString = m.Connection, - DbType = (DbType)m.DbType, - IsAutoCloseConnection = true, - // Check out more information: https://github.com/anjoy8/Blog.Core/issues/122 - //IsShardSameThread = false, - MoreSettings = new ConnMoreSettings() - { - //IsWithNoLockQuery = true, - IsAutoRemoveDataCache = true, - SqlServerCodeFirstNvarchar = true, - }, - // 从库 - SlaveConnectionConfigs = listConfig_Slave, - // 自定义特性 - ConfigureExternalServices = new ConfigureExternalServices() - { - DataInfoCacheService = new SqlSugarMemoryCacheService(memoryCache), - EntityService = (property, column) => - { - if (column.IsPrimarykey && property.PropertyType == typeof(int)) - { - column.IsIdentity = true; - } - } - }, - InitKeyType = InitKeyType.Attribute - }; - if (SqlSugarConst.LogConfigId.ToLower().Equals(m.ConnId.ToLower())) - { - BaseDBConfig.LogConfig = config; - } - else - { - BaseDBConfig.ValidConfig.Add(config); - } - - BaseDBConfig.AllConfig.Add(config); - }); - - if (BaseDBConfig.LogConfig is null) - { - throw new ApplicationException("未配置Log库连接"); - } - - return new SqlSugarScope(BaseDBConfig.AllConfig, db => - { - BaseDBConfig.ValidConfig.ForEach(config => - { - var dbProvider = db.GetConnectionScope((string)config.ConfigId); - - // 打印SQL语句 - dbProvider.Aop.OnLogExecuting = (s, parameters) => SqlSugarAop.OnLogExecuting(dbProvider, s, parameters, config); - - // 数据审计 - dbProvider.Aop.DataExecuting = SqlSugarAop.DataExecuting; - - // 配置实体假删除过滤器 - RepositorySetting.SetDeletedEntityFilter(dbProvider); - // 配置实体数据权限 - RepositorySetting.SetTenantEntityFilter(dbProvider); - }); - }); - }); - } - - private static string GetWholeSql(SugarParameter[] paramArr, string sql) - { - foreach (var param in paramArr) - { - sql.Replace(param.ParameterName, param.Value.ObjToString()); - } - - return sql; - } - - private static string GetParas(SugarParameter[] pars) - { - string key = "【SQL参数】:"; - foreach (var param in pars) - { - key += $"{param.ParameterName}:{param.Value}\n"; - } - - return key; - } - } + /// + /// SqlSugar 启动服务 + /// + public static class SqlsugarSetup + { + private static readonly MemoryCache Cache = new MemoryCache(new MemoryCacheOptions()); + + public static void AddSqlsugarSetup(this IServiceCollection services) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + // 默认添加主数据库连接 + MainDb.CurrentDbConnId = AppSettings.app(new string[] {"MainDB"}); + + BaseDBConfig.MutiConnectionString.slaveDbs.ForEach(s => + { + BaseDBConfig.AllSlaveConfigs.Add(new SlaveConnectionConfig() + { + HitRate = s.HitRate, + ConnectionString = s.Connection + }); + }); + + BaseDBConfig.MutiConnectionString.allDbs.ForEach(m => + { + var config = new ConnectionConfig() + { + ConfigId = m.ConnId.ObjToString().ToLower(), + ConnectionString = m.Connection, + DbType = (DbType) m.DbType, + IsAutoCloseConnection = true, + // Check out more information: https://github.com/anjoy8/Blog.Core/issues/122 + //IsShardSameThread = false, + MoreSettings = new ConnMoreSettings() + { + //IsWithNoLockQuery = true, + IsAutoRemoveDataCache = true, + SqlServerCodeFirstNvarchar = true, + }, + // 从库 + SlaveConnectionConfigs = BaseDBConfig.AllSlaveConfigs, + // 自定义特性 + ConfigureExternalServices = new ConfigureExternalServices() + { + EntityService = (property, column) => + { + if (column.IsPrimarykey && property.PropertyType == typeof(int)) + { + column.IsIdentity = true; + } + } + }, + InitKeyType = InitKeyType.Attribute + }; + if (SqlSugarConst.LogConfigId.ToLower().Equals(m.ConnId.ToLower())) + { + BaseDBConfig.LogConfig = config; + } + else + { + BaseDBConfig.ValidConfig.Add(config); + } + + BaseDBConfig.AllConfigs.Add(config); + }); + + if (BaseDBConfig.LogConfig is null) + { + throw new ApplicationException("未配置Log库连接"); + } + + + // SqlSugarScope是线程安全,可使用单例注入 + // 参考:https://www.donet5.com/Home/Doc?typeId=1181 + services.AddSingleton(o => + { + var memoryCache = o.GetRequiredService(); + + foreach (var config in BaseDBConfig.AllConfigs) + { + config.ConfigureExternalServices.DataInfoCacheService = new SqlSugarMemoryCacheService(memoryCache); + } + + return new SqlSugarScope(BaseDBConfig.AllConfigs, db => + { + BaseDBConfig.ValidConfig.ForEach(config => + { + var dbProvider = db.GetConnectionScope((string) config.ConfigId); + + // 打印SQL语句 + dbProvider.Aop.OnLogExecuting = (s, parameters) => + SqlSugarAop.OnLogExecuting(dbProvider, s, parameters, config); + + // 数据审计 + dbProvider.Aop.DataExecuting = SqlSugarAop.DataExecuting; + + // 配置实体假删除过滤器 + RepositorySetting.SetDeletedEntityFilter(dbProvider); + // 配置实体数据权限 + RepositorySetting.SetTenantEntityFilter(dbProvider); + }); + }); + }); + } + + private static string GetWholeSql(SugarParameter[] paramArr, string sql) + { + foreach (var param in paramArr) + { + sql.Replace(param.ParameterName, param.Value.ObjToString()); + } + + return sql; + } + + private static string GetParas(SugarParameter[] pars) + { + string key = "【SQL参数】:"; + foreach (var param in pars) + { + key += $"{param.ParameterName}:{param.Value}\n"; + } + + return key; + } + } } \ No newline at end of file diff --git a/Blog.Core.Model/Systems/DataBase/DataBaseReadType.cs b/Blog.Core.Model/Systems/DataBase/DataBaseReadType.cs new file mode 100644 index 00000000..f2ae1ed0 --- /dev/null +++ b/Blog.Core.Model/Systems/DataBase/DataBaseReadType.cs @@ -0,0 +1,10 @@ +namespace Blog.Core.Model.Systems.DataBase; + +/// +/// 数据库读取类型 +/// +public enum DataBaseReadType +{ + Db, + Entity +} \ No newline at end of file diff --git a/Blog.Core.Model/Systems/DataBase/DatabaseOutput.cs b/Blog.Core.Model/Systems/DataBase/DatabaseOutput.cs new file mode 100644 index 00000000..8cefaeb6 --- /dev/null +++ b/Blog.Core.Model/Systems/DataBase/DatabaseOutput.cs @@ -0,0 +1,10 @@ +using SqlSugar; + +namespace Blog.Core.Model.Systems.DataBase; + +public class DatabaseOutput +{ + public string ConfigId { get; set; } + + public DbType DbType { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Systems/DataBase/DbColumnInfoOutput.cs b/Blog.Core.Model/Systems/DataBase/DbColumnInfoOutput.cs new file mode 100644 index 00000000..6cada2ff --- /dev/null +++ b/Blog.Core.Model/Systems/DataBase/DbColumnInfoOutput.cs @@ -0,0 +1,36 @@ +namespace Blog.Core.Model.Systems.DataBase; + +public class DbColumnInfoOutput +{ + public string TableName { get; set; } + + public int TableId { get; set; } + + public string DbColumnName { get; set; } + + public string PropertyName { get; set; } + + public string DataType { get; set; } + + public int Length { get; set; } + + public string ColumnDescription { get; set; } + + public string DefaultValue { get; set; } + + public bool IsNullable { get; set; } + + public bool IsIdentity { get; set; } + + public bool IsPrimarykey { get; set; } + + public object Value { get; set; } + + public int DecimalDigits { get; set; } + + public int Scale { get; set; } + + public bool IsArray { get; set; } + + internal bool IsJson { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Systems/DataBase/EditColumnInput.cs b/Blog.Core.Model/Systems/DataBase/EditColumnInput.cs new file mode 100644 index 00000000..88c66973 --- /dev/null +++ b/Blog.Core.Model/Systems/DataBase/EditColumnInput.cs @@ -0,0 +1,9 @@ +namespace Blog.Core.Model.Systems.DataBase; + +public class EditColumnInput +{ + public string ConfigId { get; set; } + public string TableName { get; set; } + public string DbColumnName { get; set; } + public string ColumnDescription { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Model/Systems/DataBase/EditTableInput.cs b/Blog.Core.Model/Systems/DataBase/EditTableInput.cs new file mode 100644 index 00000000..496a6dd2 --- /dev/null +++ b/Blog.Core.Model/Systems/DataBase/EditTableInput.cs @@ -0,0 +1,10 @@ +namespace Blog.Core.Model.Systems.DataBase; + +public class EditTableInput +{ + public string ConfigId { get; set; } + + public string TableName { get; set; } + + public string Description { get; set; } +} \ No newline at end of file From a17d6eeb358317e77ed5219e6a0477131111919b Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 13 May 2023 12:20:47 +0800 Subject: [PATCH 265/382] Update DataBaseController.cs --- Blog.Core.Api/Controllers/Systems/DataBaseController.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Controllers/Systems/DataBaseController.cs b/Blog.Core.Api/Controllers/Systems/DataBaseController.cs index 434bd195..1f7b3089 100644 --- a/Blog.Core.Api/Controllers/Systems/DataBaseController.cs +++ b/Blog.Core.Api/Controllers/Systems/DataBaseController.cs @@ -29,7 +29,7 @@ public DataBaseController(ISqlSugarClient db) } [return: NotNull] - public ISqlSugarClient GetTenantDb(string configId) + private ISqlSugarClient GetTenantDb(string configId) { if (!_db.AsTenant().IsAnyConnection(configId)) { @@ -88,6 +88,8 @@ public MessageModel> GetTableInfoList(string configId, configId = MainDb.CurrentDbConnId; } + configId = configId.ToLower(); + var provider = GetTenantDb(configId); List data = null; switch (readType) @@ -129,7 +131,9 @@ public MessageModel> GetColumnInfosByTableName(string t configId = MainDb.CurrentDbConnId; } - List data = null; + configId = configId.ToLower(); + + List data = null; var provider = GetTenantDb(configId); switch (readType) { From ca0dda2d0471ab5e0e2d47cbb1b1f93012aaae9a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 15 May 2023 14:48:20 +0800 Subject: [PATCH 266/382] Update appsettings.json --- Blog.Core.Api/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 0523d64d..cabddf53 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -105,7 +105,7 @@ "Connection": "WMBlog.db" //sqlite只写数据库名就行 }, { - "ConnId": "Log", + "ConnId": "Log", //日志库连接固定名称,不要改,其他的可以改 "DBType": 2, "Enabled": true, "HitRate": 50, // 值越大,优先级越高 From 42146e2a04999a37fab456c91f6c35965e81254a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 15 May 2023 15:03:14 +0800 Subject: [PATCH 267/382] Update launchSettings.json --- Blog.Core.Api/Properties/launchSettings.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Api/Properties/launchSettings.json b/Blog.Core.Api/Properties/launchSettings.json index 425ec45f..e3113d39 100644 --- a/Blog.Core.Api/Properties/launchSettings.json +++ b/Blog.Core.Api/Properties/launchSettings.json @@ -13,8 +13,8 @@ "commandName": "Project", "launchBrowser": true, "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development", - "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore" + "ASPNETCORE_ENVIRONMENT": "Development" + //"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"// 如果要开始skywalking,请取消此行注释 }, "applicationUrl": "http://localhost:9291" }, From 1e4e3ee52df856808a313f6a9acfa88503261f1b Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 19 May 2023 14:08:33 +0800 Subject: [PATCH 268/382] Update RoleModulePermission.tsv --- .../RoleModulePermission.tsv | 1391 +++++++++++++++++ 1 file changed, 1391 insertions(+) diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv index eb727383..5626b81f 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/RoleModulePermission.tsv @@ -1703,5 +1703,1396 @@ "ModuleId": 72, "PermissionId": 122, "Id": 233 + }, + { + "Id": 1658115520798527489, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 1 + }, + { + "Id": 1658115520798527490, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 114 + }, + { + "Id": 1658115520798527491, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 66, + "PermissionId": 115 + }, + { + "Id": 1658115520798527492, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 2 + }, + { + "Id": 1658115520798527493, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 22, + "PermissionId": 3 + }, + { + "Id": 1658115520798527494, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 7, + "PermissionId": 4 + }, + { + "Id": 1658115520798527495, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 5 + }, + { + "Id": 1658115520798527496, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 13, + "PermissionId": 6 + }, + { + "Id": 1658115520798527497, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 17, + "PermissionId": 7 + }, + { + "Id": 1658115520798527498, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 34 + }, + { + "Id": 1658115520798527499, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 10 + }, + { + "Id": 1658115520798527500, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 11 + }, + { + "Id": 1658115520798527501, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 12 + }, + { + "Id": 1658115520798527502, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 29 + }, + { + "Id": 1658115520798527503, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 27, + "PermissionId": 43 + }, + { + "Id": 1658115520798527504, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 67 + }, + { + "Id": 1658115520798527505, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 37 + }, + { + "Id": 1658115520798527506, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 38 + }, + { + "Id": 1658115520798527507, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 39 + }, + { + "Id": 1658115520798527508, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 41 + }, + { + "Id": 1658115520798527509, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 40 + }, + { + "Id": 1658115520798527510, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 42 + }, + { + "Id": 1658115520798527511, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 26, + "PermissionId": 28 + }, + { + "Id": 1658115520798527512, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 44 + }, + { + "Id": 1658115520798527513, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 45 + }, + { + "Id": 1658115520798527514, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 46 + }, + { + "Id": 1658115520798527515, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 47 + }, + { + "Id": 1658115520798527516, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 48 + }, + { + "Id": 1658115520798527517, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 49 + }, + { + "Id": 1658115520798527518, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 65 + }, + { + "Id": 1658115520798527519, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 33, + "PermissionId": 66 + }, + { + "Id": 1658115520798527520, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 68 + }, + { + "Id": 1658115520798527521, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 69 + }, + { + "Id": 1658115520798527522, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 8 + }, + { + "Id": 1658115520798527523, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 75 + }, + { + "Id": 1658115520798527524, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 37, + "PermissionId": 76 + }, + { + "Id": 1658115520798527525, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 87 + }, + { + "Id": 1658115520798527526, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 88 + }, + { + "Id": 1658115520798527527, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 89 + }, + { + "Id": 1658115520798527528, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 90 + }, + { + "Id": 1658115520798527529, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 91 + }, + { + "Id": 1658115520798527530, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 95 + }, + { + "Id": 1658115520798527531, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 93 + }, + { + "Id": 1658115520798527532, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 94 + }, + { + "Id": 1658115520798527533, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 0, + "PermissionId": 92 + }, + { + "Id": 1658115520798527534, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 7, + "PermissionId": 9 + }, + { + "Id": 1658115520798527535, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 10, + "PermissionId": 13 + }, + { + "Id": 1658115520798527536, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 12, + "PermissionId": 14 + }, + { + "Id": 1658115520798527537, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 11, + "PermissionId": 15 + }, + { + "Id": 1658115520798527538, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 22, + "PermissionId": 16 + }, + { + "Id": 1658115520798527539, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 25, + "PermissionId": 17 + }, + { + "Id": 1658115520798527540, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 24, + "PermissionId": 18 + }, + { + "Id": 1658115520798527541, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 23, + "PermissionId": 19 + }, + { + "Id": 1658115520798527542, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 13, + "PermissionId": 20 + }, + { + "Id": 1658115520798527543, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 16, + "PermissionId": 21 + }, + { + "Id": 1658115520798527544, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 15, + "PermissionId": 22 + }, + { + "Id": 1658115520798527545, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 14, + "PermissionId": 23 + }, + { + "Id": 1658115520798527546, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 17, + "PermissionId": 24 + }, + { + "Id": 1658115520798527547, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 20, + "PermissionId": 25 + }, + { + "Id": 1658115520798527548, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 19, + "PermissionId": 26 + }, + { + "Id": 1658115520798527549, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 18, + "PermissionId": 27 + }, + { + "Id": 1658115520798527550, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 5, + "PermissionId": 30 + }, + { + "Id": 1658115520798527551, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 6, + "PermissionId": 31 + }, + { + "Id": 1658115520798527552, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 26, + "PermissionId": 32 + }, + { + "Id": 1658115520798527553, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 21, + "PermissionId": 33 + }, + { + "Id": 1658115520798527554, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 28, + "PermissionId": 35 + }, + { + "Id": 1658115520798527555, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 29, + "PermissionId": 36 + }, + { + "Id": 1658115520798527556, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 66, + "PermissionId": 116 + }, + { + "Id": 1658115520798527557, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 69, + "PermissionId": 117 + }, + { + "Id": 1658115520798527558, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 68, + "PermissionId": 118 + }, + { + "Id": 1658115520798527559, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 67, + "PermissionId": 119 + }, + { + "Id": 1658115520798527560, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-03-23 19:21:58", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 70, + "PermissionId": 120 + }, + { + "Id": 1658115520798527561, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 32, + "PermissionId": 64 + }, + { + "Id": 1658115520798527562, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 36, + "PermissionId": 72 + }, + { + "Id": 1658115520798527563, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 27, + "PermissionId": 73 + }, + { + "Id": 1658115520798527564, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 27, + "PermissionId": 74 + }, + { + "Id": 1658115520798527565, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2019-01-01 00:00:00", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 71, + "PermissionId": 121 + }, + { + "Id": 1658115520798527566, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2022-04-11 16:08:49", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 72, + "PermissionId": 122 + }, + { + "Id": 1658115520798527567, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 37, + "PermissionId": 77 + }, + { + "Id": 1658115520798527568, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 38, + "PermissionId": 78 + }, + { + "Id": 1658115520798527569, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 39, + "PermissionId": 79 + }, + { + "Id": 1658115520798527570, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 40, + "PermissionId": 80 + }, + { + "Id": 1658115520798527571, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 41, + "PermissionId": 81 + }, + { + "Id": 1658115520798527572, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 42, + "PermissionId": 82 + }, + { + "Id": 1658115520798527573, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 43, + "PermissionId": 83 + }, + { + "Id": 1658115520798527574, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 44, + "PermissionId": 84 + }, + { + "Id": 1658115520798527575, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 45, + "PermissionId": 85 + }, + { + "Id": 1658115520798527576, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 46, + "PermissionId": 86 + }, + { + "Id": 1658115520798527577, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 73, + "PermissionId": 123 + }, + { + "Id": 1658115520798527578, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 74, + "PermissionId": 124 + }, + { + "Id": 1658115520798527579, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 55, + "PermissionId": 108 + }, + { + "Id": 1658115520798527580, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 61, + "PermissionId": 109 + }, + { + "Id": 1658115520798527581, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 50, + "PermissionId": 103 + }, + { + "Id": 1658115520798527582, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 49, + "PermissionId": 104 + }, + { + "Id": 1658115520798527583, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 48, + "PermissionId": 105 + }, + { + "Id": 1658115520798527584, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 51, + "PermissionId": 106 + }, + { + "Id": 1658115520798527585, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 52, + "PermissionId": 107 + }, + { + "Id": 1658115520798527586, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 54, + "PermissionId": 96 + }, + { + "Id": 1658115520798527587, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 64, + "PermissionId": 98 + }, + { + "Id": 1658115520798527588, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 59, + "PermissionId": 99 + }, + { + "Id": 1658115520798527589, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 58, + "PermissionId": 100 + }, + { + "Id": 1658115520798527590, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 53, + "PermissionId": 101 + }, + { + "Id": 1658115520798527591, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 60, + "PermissionId": 102 + }, + { + "Id": 1658115520798527592, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 57, + "PermissionId": 110 + }, + { + "Id": 1658115520798527593, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 56, + "PermissionId": 112 + }, + { + "Id": 1658115520798527594, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 62, + "PermissionId": 111 + }, + { + "Id": 1658115520798527595, + "IsDeleted": 0, + "CreateId": 12, + "CreateBy": "blogadmin", + "CreateTime": "2023-05-15 14:20:12", + "ModifyId": 12, + "ModifyBy": "blogadmin", + "ModifyTime": "2023-05-15 14:20:12", + "RoleId": 4, + "ModuleId": 63, + "PermissionId": 113 } ] From f0bbf06c4725bd29abdf047ce199aab03367c574 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sun, 21 May 2023 18:22:28 +0800 Subject: [PATCH 269/382] Update SqlsugarAop.cs --- Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs index 369fc482..3a595e67 100644 --- a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -113,7 +113,7 @@ public static void DataExecuting(object oldValue, DataFilterModel entityInfo) if (App.User?.ID > 0 && dyCreateId != null && dyCreateId.GetValue(entityInfo.EntityValue) == null) dyCreateId.SetValue(entityInfo.EntityValue, App.User.ID); - if (dyCreateTime != null && (DateTime)dyCreateTime.GetValue(entityInfo.EntityValue) == DateTime.MinValue) + if (dyCreateTime != null && dyCreateTime.GetValue(entityInfo.EntityValue) != null && (DateTime)dyCreateTime.GetValue(entityInfo.EntityValue) == DateTime.MinValue) dyCreateTime.SetValue(entityInfo.EntityValue, DateTime.Now); break; @@ -155,4 +155,4 @@ private static string GetParas(SugarParameter[] pars) return key; } -} \ No newline at end of file +} From a979d3646129fd2009517f6f98c7da85e11c3994 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sun, 21 May 2023 19:23:01 +0800 Subject: [PATCH 270/382] Update NumberConverter.cs --- Blog.Core.Common/Helper/NumberConverter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Common/Helper/NumberConverter.cs b/Blog.Core.Common/Helper/NumberConverter.cs index 27890faf..4232a75f 100644 --- a/Blog.Core.Common/Helper/NumberConverter.cs +++ b/Blog.Core.Common/Helper/NumberConverter.cs @@ -72,7 +72,7 @@ public override bool CanConvert(Type objectType) /// 对象值。 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { - return AsType(reader.Value.ToString(), objectType); + return AsType(reader.Value.ObjToString(), objectType); } /// From 0cea9672b5f1ed8ae8ac1bbca221a127be35d2cd Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Wed, 24 May 2023 11:19:36 +0800 Subject: [PATCH 271/382] =?UTF-8?q?=E2=9C=A8=20=E4=BC=98=E5=8C=96Swagger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.swagger登录可以用用户账号登录,如果登录成功 token存在session中 之前默认admin感觉没什么用 当然也可以扩展User 加个字段是否开发者帐户等类似的 2.优化权限校验 优先读取Header->没有读取Session 中token解析用户 --- Blog.Core.Api/Blog.Core.xml | 2 +- Blog.Core.Api/Controllers/LoginController.cs | 621 +++++++++--------- Blog.Core.Api/appsettings.json | 2 +- Blog.Core.Api/wwwroot/swg-login.html | 225 ++++--- .../Extensions/HttpContextExtension.cs | 19 + .../HttpContextUser/AspNetUser.cs | 41 +- .../Swagger/SwaggerContextExtension.cs | 48 ++ .../Policys/PermissionHandler.cs | 120 ++-- .../Middlewares/SwaggerAuthMiddleware.cs | 5 +- Blog.Core.Model/Models/sysUserInfo.cs | 271 ++++---- .../Controller_Test/LoginController_Should.cs | 136 ++-- 11 files changed, 833 insertions(+), 657 deletions(-) create mode 100644 Blog.Core.Common/Extensions/HttpContextExtension.cs create mode 100644 Blog.Core.Common/Swagger/SwaggerContextExtension.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 51ffc1f2..672ea21f 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -177,7 +177,7 @@ 登录管理【无权限】 - + 构造函数注入 diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index 87f5c0c9..8313507d 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -9,307 +9,330 @@ using Microsoft.AspNetCore.Mvc; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; +using Blog.Core.Common.Swagger; +using Serilog; namespace Blog.Core.Controllers { - /// - /// 登录管理【无权限】 - /// - [Produces("application/json")] - [Route("api/Login")] - [AllowAnonymous] - public class LoginController : BaseApiController - { - readonly ISysUserInfoServices _sysUserInfoServices; - readonly IUserRoleServices _userRoleServices; - readonly IRoleServices _roleServices; - readonly PermissionRequirement _requirement; - private readonly IRoleModulePermissionServices _roleModulePermissionServices; - - - /// - /// 构造函数注入 - /// - /// - /// - /// - /// - /// - public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, IRoleServices roleServices, PermissionRequirement requirement, IRoleModulePermissionServices roleModulePermissionServices) - { - this._sysUserInfoServices = sysUserInfoServices; - this._userRoleServices = userRoleServices; - this._roleServices = roleServices; - _requirement = requirement; - _roleModulePermissionServices = roleModulePermissionServices; - } - - - #region 获取token的第1种方法 - - /// - /// 获取JWT的方法1 - /// - /// - /// - /// - [HttpGet] - [Route("Token")] - public async Task> GetJwtStr(string name, string pass) - { - string jwtStr = string.Empty; - bool suc = false; - //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 - - var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass)); - if (user != null) - { - TokenModelJwt tokenModel = new TokenModelJwt { Uid = 1, Role = user }; - - jwtStr = JwtHelper.IssueJwt(tokenModel); - suc = true; - } - else - { - jwtStr = "login fail!!!"; - } - - return new MessageModel() - { - success = suc, - msg = suc ? "获取成功" : "获取失败", - response = jwtStr - }; - } - - - /// - /// 获取JWT的方法2:给Nuxt提供 - /// - /// - /// - /// - [HttpGet] - [Route("GetTokenNuxt")] - public MessageModel GetJwtStrForNuxt(string name, string pass) - { - string jwtStr = string.Empty; - bool suc = false; - //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 - //这里直接写死了 - if (name == "admins" && pass == "admins") - { - TokenModelJwt tokenModel = new TokenModelJwt - { - Uid = 1, - Role = "Admin" - }; - - jwtStr = JwtHelper.IssueJwt(tokenModel); - suc = true; - } - else - { - jwtStr = "login fail!!!"; - } - - var result = new - { - data = new { success = suc, token = jwtStr } - }; - - return new MessageModel() - { - success = suc, - msg = suc ? "获取成功" : "获取失败", - response = jwtStr - }; - } - - #endregion - - - /// - /// 获取JWT的方法3:整个系统主要方法 - /// - /// - /// - /// - [HttpGet] - [Route("JWTToken3.0")] - public async Task> GetJwtToken3(string name = "", string pass = "") - { - string jwtStr = string.Empty; - - if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass)) - return Failed("用户名或密码不能为空"); - - pass = MD5Helper.MD5Encrypt32(pass); - - var user = await _sysUserInfoServices.Query(d => d.LoginName == name && d.LoginPWD == pass && d.IsDeleted == false); - if (user.Count > 0) - { - var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(name, pass); - //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 - var claims = new List - { - new Claim(ClaimTypes.Name, name), - new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().Id.ToString()), - new Claim("TenantId", user.FirstOrDefault().TenantId.ToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), - new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) - }; - claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); - - - // ids4和jwt切换 - // jwt - if (!Permissions.IsUseIds4) - { - var data = await _roleModulePermissionServices.RoleModuleMaps(); - var list = (from item in data - where item.IsDeleted == false - orderby item.Id - select new PermissionItem - { - Url = item.Module?.LinkUrl, - Role = item.Role?.Name.ObjToString(), - }).ToList(); - - _requirement.Permissions = list; - } - - var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); - return Success(token, "获取成功"); - } - else - { - return Failed("认证失败"); - } - } - - /// - /// 请求刷新Token(以旧换新) - /// - /// - /// - [HttpGet] - [Route("RefreshToken")] - public async Task> RefreshToken(string token = "") - { - string jwtStr = string.Empty; - - if (string.IsNullOrEmpty(token)) - return Failed("token无效,请重新登录!"); - var tokenModel = JwtHelper.SerializeJwt(token); - if (tokenModel != null && JwtHelper.customSafeVerify(token) && tokenModel.Uid > 0) - { - var user = await _sysUserInfoServices.QueryById(tokenModel.Uid); - var value = User.Claims.SingleOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; - if (value != null && user.CriticalModifyTime > value.ObjToDate()) - { - return Failed("很抱歉,授权已失效,请重新授权!"); - } - - if (user != null && !(value != null && user.CriticalModifyTime > value.ObjToDate())) - { - var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(user.LoginName, user.LoginPWD); - //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 - var claims = new List - { - new Claim(ClaimTypes.Name, user.LoginName), - new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), - new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) - }; - claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); - - //用户标识 - var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme); - identity.AddClaims(claims); - - var refreshToken = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); - return Success(refreshToken, "获取成功"); - } - } - - return Failed("认证失败!"); - } - - /// - /// 获取JWT的方法4:给 JSONP 测试 - /// - /// - /// - /// - /// - /// - /// - [HttpGet] - [Route("jsonp")] - public void Getjsonp(string callBack, long id = 1, string sub = "Admin", int expiresSliding = 30, int expiresAbsoulute = 30) - { - TokenModelJwt tokenModel = new TokenModelJwt - { - Uid = id, - Role = sub - }; - - string jwtStr = JwtHelper.IssueJwt(tokenModel); - - string response = string.Format("\"value\":\"{0}\"", jwtStr); - string call = callBack + "({" + response + "})"; - Response.WriteAsync(call); - } - - - /// - /// 测试 MD5 加密字符串 - /// - /// - /// - [HttpGet] - [Route("Md5Password")] - public string Md5Password(string password = "") - { - return MD5Helper.MD5Encrypt32(password); - } - - /// - /// swagger登录 - /// - /// - /// - [HttpPost] - [Route("/api/Login/swgLogin")] - public dynamic SwgLogin([FromBody] SwaggerLoginRequest loginRequest) - { - // 这里可以查询数据库等各种校验 - if (loginRequest?.name == "admin" && loginRequest?.pwd == "admin") - { - HttpContext.Session.SetString("swagger-code", "success"); - return new { result = true }; - } - - return new { result = false }; - } - - /// - /// weixin登录 - /// - /// - [HttpGet] - [Route("wxLogin")] - public dynamic WxLogin(string g = "", string token = "") - { - return new { g, token }; - } - } - - public class SwaggerLoginRequest - { - public string name { get; set; } - public string pwd { get; set; } - } + /// + /// 登录管理【无权限】 + /// + [Produces("application/json")] + [Route("api/Login")] + [AllowAnonymous] + public class LoginController : BaseApiController + { + readonly ISysUserInfoServices _sysUserInfoServices; + readonly IUserRoleServices _userRoleServices; + readonly IRoleServices _roleServices; + readonly PermissionRequirement _requirement; + private readonly IRoleModulePermissionServices _roleModulePermissionServices; + private readonly ILogger _logger; + + /// + /// 构造函数注入 + /// + /// + /// + /// + /// + /// + public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, + IRoleServices roleServices, PermissionRequirement requirement, + IRoleModulePermissionServices roleModulePermissionServices, ILogger logger) + { + this._sysUserInfoServices = sysUserInfoServices; + this._userRoleServices = userRoleServices; + this._roleServices = roleServices; + _requirement = requirement; + _roleModulePermissionServices = roleModulePermissionServices; + _logger = logger; + } + + + #region 获取token的第1种方法 + + /// + /// 获取JWT的方法1 + /// + /// + /// + /// + [HttpGet] + [Route("Token")] + public async Task> GetJwtStr(string name, string pass) + { + string jwtStr = string.Empty; + bool suc = false; + //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 + + var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass)); + if (user != null) + { + TokenModelJwt tokenModel = new TokenModelJwt {Uid = 1, Role = user}; + + jwtStr = JwtHelper.IssueJwt(tokenModel); + suc = true; + } + else + { + jwtStr = "login fail!!!"; + } + + return new MessageModel() + { + success = suc, + msg = suc ? "获取成功" : "获取失败", + response = jwtStr + }; + } + + + /// + /// 获取JWT的方法2:给Nuxt提供 + /// + /// + /// + /// + [HttpGet] + [Route("GetTokenNuxt")] + public MessageModel GetJwtStrForNuxt(string name, string pass) + { + string jwtStr = string.Empty; + bool suc = false; + //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 + //这里直接写死了 + if (name == "admins" && pass == "admins") + { + TokenModelJwt tokenModel = new TokenModelJwt + { + Uid = 1, + Role = "Admin" + }; + + jwtStr = JwtHelper.IssueJwt(tokenModel); + suc = true; + } + else + { + jwtStr = "login fail!!!"; + } + + var result = new + { + data = new {success = suc, token = jwtStr} + }; + + return new MessageModel() + { + success = suc, + msg = suc ? "获取成功" : "获取失败", + response = jwtStr + }; + } + + #endregion + + + /// + /// 获取JWT的方法3:整个系统主要方法 + /// + /// + /// + /// + [HttpGet] + [Route("JWTToken3.0")] + public async Task> GetJwtToken3(string name = "", string pass = "") + + { + string jwtStr = string.Empty; + + if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass)) + return Failed("用户名或密码不能为空"); + + pass = MD5Helper.MD5Encrypt32(pass); + + var user = await _sysUserInfoServices.Query(d => + d.LoginName == name && d.LoginPWD == pass && d.IsDeleted == false); + if (user.Count > 0) + { + var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(name, pass); + //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 + var claims = new List + { + new Claim(ClaimTypes.Name, name), + new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().Id.ToString()), + new Claim("TenantId", user.FirstOrDefault().TenantId.ToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), + new Claim(ClaimTypes.Expiration, + DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) + }; + claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); + + + // ids4和jwt切换 + // jwt + if (!Permissions.IsUseIds4) + { + var data = await _roleModulePermissionServices.RoleModuleMaps(); + var list = (from item in data + where item.IsDeleted == false + orderby item.Id + select new PermissionItem + { + Url = item.Module?.LinkUrl, + Role = item.Role?.Name.ObjToString(), + }).ToList(); + + _requirement.Permissions = list; + } + + var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); + return Success(token, "获取成功"); + } + else + { + return Failed("认证失败"); + } + } + + /// + /// 请求刷新Token(以旧换新) + /// + /// + /// + [HttpGet] + [Route("RefreshToken")] + public async Task> RefreshToken(string token = "") + { + string jwtStr = string.Empty; + + if (string.IsNullOrEmpty(token)) + return Failed("token无效,请重新登录!"); + var tokenModel = JwtHelper.SerializeJwt(token); + if (tokenModel != null && JwtHelper.customSafeVerify(token) && tokenModel.Uid > 0) + { + var user = await _sysUserInfoServices.QueryById(tokenModel.Uid); + var value = User.Claims.SingleOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; + if (value != null && user.CriticalModifyTime > value.ObjToDate()) + { + return Failed("很抱歉,授权已失效,请重新授权!"); + } + + if (user != null && !(value != null && user.CriticalModifyTime > value.ObjToDate())) + { + var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(user.LoginName, user.LoginPWD); + //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 + var claims = new List + { + new Claim(ClaimTypes.Name, user.LoginName), + new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), + new Claim(ClaimTypes.Expiration, + DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) + }; + claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); + + //用户标识 + var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme); + identity.AddClaims(claims); + + var refreshToken = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); + return Success(refreshToken, "获取成功"); + } + } + + return Failed("认证失败!"); + } + + /// + /// 获取JWT的方法4:给 JSONP 测试 + /// + /// + /// + /// + /// + /// + /// + [HttpGet] + [Route("jsonp")] + public void Getjsonp(string callBack, long id = 1, string sub = "Admin", int expiresSliding = 30, + int expiresAbsoulute = 30) + { + TokenModelJwt tokenModel = new TokenModelJwt + { + Uid = id, + Role = sub + }; + + string jwtStr = JwtHelper.IssueJwt(tokenModel); + + string response = string.Format("\"value\":\"{0}\"", jwtStr); + string call = callBack + "({" + response + "})"; + Response.WriteAsync(call); + } + + + /// + /// 测试 MD5 加密字符串 + /// + /// + /// + [HttpGet] + [Route("Md5Password")] + public string Md5Password(string password = "") + { + return MD5Helper.MD5Encrypt32(password); + } + + /// + /// swagger登录 + /// + /// + /// + [HttpPost] + [Route("/api/Login/swgLogin")] + public async Task SwgLogin([FromBody] SwaggerLoginRequest loginRequest) + { + if (loginRequest is null) + { + return new {result = false}; + } + + try + { + var result = await GetJwtToken3(loginRequest.name, loginRequest.pwd); + if (result.success) + { + HttpContext.SuccessSwagger(); + HttpContext.SuccessSwaggerJwt(result.response.token); + return new {result = true}; + } + } + catch (Exception ex) + { + _logger.LogWarning(ex, "Swagger登录异常"); + } + + return new {result = false}; + } + + /// + /// weixin登录 + /// + /// + [HttpGet] + [Route("wxLogin")] + public dynamic WxLogin(string g = "", string token = "") + { + return new {g, token}; + } + } + + public class SwaggerLoginRequest + { + public string name { get; set; } + public string pwd { get; set; } + } } \ No newline at end of file diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index cabddf53..cef87bed 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -47,7 +47,7 @@ }, "LogToDb": true, "LogAOP": { - "Enabled": true, + "Enabled": false, "LogToFile": { "Enabled": true }, diff --git a/Blog.Core.Api/wwwroot/swg-login.html b/Blog.Core.Api/wwwroot/swg-login.html index 022fec49..93653957 100644 --- a/Blog.Core.Api/wwwroot/swg-login.html +++ b/Blog.Core.Api/wwwroot/swg-login.html @@ -1,128 +1,141 @@  - + 登录 - 接口文档 - + -
    -
    -
    -
    +
    +
    +
    +
    - -
    欢迎使用!
    -
    用户名:admin,密码:admin
    -
    -
    - - - - - - - - - -
    - - - - - -
    + +
    欢迎使用!
    +
    使用用户账号登录
    +
    +
    + + + + + + + + + +
    + + + + +
    +
    - + } + }); + } + \ No newline at end of file diff --git a/Blog.Core.Common/Extensions/HttpContextExtension.cs b/Blog.Core.Common/Extensions/HttpContextExtension.cs new file mode 100644 index 00000000..0de018a0 --- /dev/null +++ b/Blog.Core.Common/Extensions/HttpContextExtension.cs @@ -0,0 +1,19 @@ +using System; +using Microsoft.AspNetCore.Http; + +namespace Blog.Core.Common.Extensions; + +public static class HttpContextExtension +{ + public static ISession GetSession(this HttpContext context) + { + try + { + return context.Session; + } + catch (Exception) + { + return default; + } + } +} \ No newline at end of file diff --git a/Blog.Core.Common/HttpContextUser/AspNetUser.cs b/Blog.Core.Common/HttpContextUser/AspNetUser.cs index 590fda59..ba21889e 100644 --- a/Blog.Core.Common/HttpContextUser/AspNetUser.cs +++ b/Blog.Core.Common/HttpContextUser/AspNetUser.cs @@ -1,7 +1,9 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; using System.Linq; using System.Security.Claims; +using Blog.Core.Common.Swagger; using Blog.Core.Model; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; @@ -51,7 +53,25 @@ public bool IsAuthenticated() public string GetToken() { - return _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", ""); + var token = _accessor.HttpContext?.Request?.Headers["Authorization"].ObjToString().Replace("Bearer ", ""); + if (!token.IsNullOrEmpty()) + { + return token; + } + + if (_accessor.HttpContext?.IsSuccessSwagger() == true) + { + token = _accessor.HttpContext.GetSuccessSwaggerJwt(); + if (token.IsNotEmptyOrNull()) + { + var claims = new ClaimsIdentity(GetClaimsIdentity(token)); + _accessor.HttpContext.User.AddIdentity(claims); + + return token; + } + } + + return token; } public List GetUserInfoFromToken(string ClaimType) @@ -77,6 +97,10 @@ public List GetUserInfoFromToken(string ClaimType) public IEnumerable GetClaimsIdentity() { + if (_accessor.HttpContext == null) return ArraySegment.Empty; + + if (!IsAuthenticated()) return GetClaimsIdentity(GetToken()); + var claims = _accessor.HttpContext.User.Claims.ToList(); var headers = _accessor.HttpContext.Request.Headers; foreach (var header in headers) @@ -86,6 +110,19 @@ public IEnumerable GetClaimsIdentity() return claims; } + public IEnumerable GetClaimsIdentity(string token) + { + var jwtHandler = new JwtSecurityTokenHandler(); + // token校验 + if (token.IsNotEmptyOrNull() && jwtHandler.CanReadToken(token)) + { + var jwtToken = jwtHandler.ReadJwtToken(token); + + return jwtToken.Claims; + } + + return new List(); + } public List GetClaimValueByType(string ClaimType) { diff --git a/Blog.Core.Common/Swagger/SwaggerContextExtension.cs b/Blog.Core.Common/Swagger/SwaggerContextExtension.cs new file mode 100644 index 00000000..ad89344d --- /dev/null +++ b/Blog.Core.Common/Swagger/SwaggerContextExtension.cs @@ -0,0 +1,48 @@ +using Blog.Core.Common.Extensions; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Extensions; + +namespace Blog.Core.Common.Swagger; + +public static class SwaggerContextExtension +{ + public const string SwaggerCodeKey = "swagger-code"; + public const string SwaggerJwt = "swagger-jwt"; + + public static bool IsSuccessSwagger() + { + return App.HttpContext?.GetSession()?.GetString(SwaggerCodeKey) == "success"; + } + + public static bool IsSuccessSwagger(this HttpContext context) + { + return context.GetSession()?.GetString(SwaggerCodeKey) == "success"; + } + + public static void SuccessSwagger() + { + App.HttpContext?.GetSession()?.SetString(SwaggerCodeKey, "success"); + } + + public static void SuccessSwagger(this HttpContext context) + { + context.GetSession()?.SetString(SwaggerCodeKey, "success"); + } + + public static void SuccessSwaggerJwt(this HttpContext context, string token) + { + context.GetSession()?.SetString(SwaggerJwt, token); + } + + public static string GetSuccessSwaggerJwt(this HttpContext context) + { + return context.GetSession()?.GetString(SwaggerJwt); + } + + + public static void RedirectSwaggerLogin(this HttpContext context) + { + var returnUrl = context.Request.GetDisplayUrl(); //获取当前url地址 + context.Response.Redirect("/swg-login.html?returnUrl=" + returnUrl); + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs index 23627ccd..d2dbfdf7 100644 --- a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs +++ b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs @@ -14,6 +14,7 @@ using System.Security.Claims; using System.Text.RegularExpressions; using System.Threading.Tasks; +using Blog.Core.Common.Swagger; using Blog.Core.Model.Models; namespace Blog.Core.AuthHelper @@ -116,7 +117,7 @@ orderby item.Id return; } } - + //判断请求是否拥有凭据,即有没有登录 var defaultAuthenticate = await Schemes.GetDefaultAuthenticateSchemeAsync(); if (defaultAuthenticate != null) @@ -127,10 +128,79 @@ orderby item.Id var isTestCurrent = AppSettings.app(new string[] {"AppSettings", "UseLoadTest"}).ObjToBool(); //result?.Principal不为空即登录成功 - if (result?.Principal != null || isTestCurrent) + if (result?.Principal != null || isTestCurrent || httpContext.IsSuccessSwagger()) { if (!isTestCurrent) httpContext.User = result.Principal; + //应该要先校验用户的信息 再校验菜单权限相关的 + + //校验用户 + var user = await _userServices.QueryById(_user.ID, true); + if (user == null) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "用户不存在或已被删除").MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } + + if (user.IsDeleted) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "用户已被删除,禁止登陆!").MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } + + if (!user.Enable) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "用户已被禁用!禁止登陆!").MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } + + // 判断token是否过期,过期则重新登录 + var isExp = false; + // ids4和jwt切换 + // ids4 + if (Permissions.IsUseIds4) + { + isExp = (httpContext.User.Claims.FirstOrDefault(s => s.Type == "exp")?.Value) != null && + DateHelper.StampToDateTime(httpContext.User.Claims + .FirstOrDefault(s => s.Type == "exp")?.Value) >= DateTime.Now; + } + else + { + // jwt + isExp = + (httpContext.User.Claims.FirstOrDefault(s => s.Type == ClaimTypes.Expiration) + ?.Value) != null && + DateTime.Parse(httpContext.User.Claims + .FirstOrDefault(s => s.Type == ClaimTypes.Expiration)?.Value) >= DateTime.Now; + } + + if (!isExp) + { + context.Fail(new AuthorizationFailureReason(this, "授权已过期,请重新授权")); + return; + } + + + //校验签发时间 + if (!Permissions.IsUseIds4) + { + var value = httpContext.User.Claims + .FirstOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; + if (value != null) + { + if (user.CriticalModifyTime > value.ObjToDate()) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "很抱歉,授权已失效,请重新授权") + .MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } + } + } + // 获取当前用户的角色信息 var currentUserRoles = new List(); // ids4和jwt切换 @@ -153,7 +223,8 @@ orderby item.Id if (currentUserRoles.All(s => s != "SuperAdmin")) { var isMatchRole = false; - var permisssionRoles = requirement.Permissions.Where(w => currentUserRoles.Contains(w.Role)); + var permisssionRoles = + requirement.Permissions.Where(w => currentUserRoles.Contains(w.Role)); foreach (var item in permisssionRoles) { try @@ -177,50 +248,7 @@ orderby item.Id return; } } - - // 判断token是否过期,过期则重新登录 - var isExp = false; - // ids4和jwt切换 - // ids4 - if (Permissions.IsUseIds4) - { - isExp = (httpContext.User.Claims.SingleOrDefault(s => s.Type == "exp")?.Value) != null && - DateHelper.StampToDateTime(httpContext.User.Claims - .SingleOrDefault(s => s.Type == "exp")?.Value) >= DateTime.Now; - } - else - { - // jwt - isExp = - (httpContext.User.Claims.SingleOrDefault(s => s.Type == ClaimTypes.Expiration) - ?.Value) != null && - DateTime.Parse(httpContext.User.Claims - .SingleOrDefault(s => s.Type == ClaimTypes.Expiration)?.Value) >= DateTime.Now; - } - if (!isExp) - { - context.Fail(new AuthorizationFailureReason(this, "授权已过期,请重新授权")); - return; - } - - //校验签发时间 - if (!Permissions.IsUseIds4) - { - var value = httpContext.User.Claims - .SingleOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; - if (value != null) - { - var user = await _userServices.QueryById(_user.ID, true); - if (user.CriticalModifyTime > value.ObjToDate()) - { - _user.MessageModel = new ApiResponse(StatusCode.CODE401, "很抱歉,授权已失效,请重新授权") - .MessageModel; - context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); - return; - } - } - } context.Succeed(requirement); return; diff --git a/Blog.Core.Extensions/Middlewares/SwaggerAuthMiddleware.cs b/Blog.Core.Extensions/Middlewares/SwaggerAuthMiddleware.cs index 1438588c..3cc284a1 100644 --- a/Blog.Core.Extensions/Middlewares/SwaggerAuthMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/SwaggerAuthMiddleware.cs @@ -1,5 +1,6 @@ using System.Net; using System.Threading.Tasks; +using Blog.Core.Common.Swagger; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; @@ -28,7 +29,7 @@ public async Task InvokeAsync(HttpContext context) } // 无权限,跳转swagger登录页 - context.Response.Redirect("/swg-login.html"); + context.RedirectSwaggerLogin(); } else { @@ -40,7 +41,7 @@ public bool IsAuthorized(HttpContext context) { // 使用session模式 // 可以使用其他的 - return context.Session.GetString("swagger-code") == "success"; + return context.IsSuccessSwagger(); } /// diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index 2a417a16..574ea311 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -4,138 +4,141 @@ namespace Blog.Core.Model.Models { - /// - /// 用户信息表 - /// - //[SugarTable("SysUserInfo")] - [SugarTable("SysUserInfo", "用户表")] //('数据库表名','数据库表备注') - public class SysUserInfo : SysUserInfoRoot - { - public SysUserInfo() - { - } - - public SysUserInfo(string loginName, string loginPWD) - { - LoginName = loginName; - LoginPWD = loginPWD; - RealName = LoginName; - Status = 0; - CreateTime = DateTime.Now; - UpdateTime = DateTime.Now; - LastErrorTime = DateTime.Now; - ErrorCount = 0; - Name = ""; - } - - /// - /// 登录账号 - /// - [SugarColumn(Length = 200, IsNullable = true, ColumnDescription = "登录账号")] - //:eg model 根据sqlsugar的完整定义可以如下定义,ColumnDescription可定义表字段备注 - //[SugarColumn(IsNullable = false, ColumnDescription = "登录账号", IsPrimaryKey = false, IsIdentity = false, Length = 50)] - //ColumnDescription 表字段备注, 已在MSSQL测试,配合 [SugarTable("SysUserInfo", "用户表")]//('数据库表名','数据库表备注') - //可以完整生成 表备注和各个字段的中文备注 - //2022/10/11 - //测试mssql 发现 不写ColumnDescription,写好注释在mssql下也能生成表字段备注 - public string LoginName { get; set; } - - /// - /// 登录密码 - /// - [SugarColumn(Length = 200, IsNullable = true)] - public string LoginPWD { get; set; } - - /// - /// 真实姓名 - /// - [SugarColumn(Length = 200, IsNullable = true)] - public string RealName { get; set; } - - /// - /// 状态 - /// - public int Status { get; set; } - - /// - /// 部门 - /// - [SugarColumn(IsNullable = true)] - public int DepartmentId { get; set; } = -1; - - /// - /// 备注 - /// - [SugarColumn(Length = 2000, IsNullable = true)] - public string Remark { get; set; } - - /// - /// 创建时间 - /// - public DateTime CreateTime { get; set; } = DateTime.Now; - - /// - /// 更新时间 - /// - public DateTime UpdateTime { get; set; } = DateTime.Now; - - /// - /// 关键业务修改时间 - /// - public DateTime CriticalModifyTime { get; set; } = DateTime.Now; - - /// - ///最后异常时间 - /// - public DateTime LastErrorTime { get; set; } = DateTime.Now; - - /// - ///错误次数 - /// - public int ErrorCount { get; set; } - - - /// - /// 登录账号 - /// - [SugarColumn(Length = 200, IsNullable = true)] - public string Name { get; set; } - - // 性别 - [SugarColumn(IsNullable = true)] - public int Sex { get; set; } = 0; - - // 年龄 - [SugarColumn(IsNullable = true)] - public int Age { get; set; } - - // 生日 - [SugarColumn(IsNullable = true)] - public DateTime Birth { get; set; } = DateTime.Now; - - // 地址 - [SugarColumn(Length = 200, IsNullable = true)] - public string Address { get; set; } - - [SugarColumn(IsNullable = true)] - public bool IsDeleted { get; set; } - - /// - /// 租户Id - /// - [SugarColumn(IsNullable = false,DefaultValue = "0")] - public long TenantId { get; set; } - - [Navigate(NavigateType.OneToOne, nameof(TenantId))] - public SysTenant Tenant { get; set; } - - [SugarColumn(IsIgnore = true)] - public List RoleNames { get; set; } - - [SugarColumn(IsIgnore = true)] - public List Dids { get; set; } - - [SugarColumn(IsIgnore = true)] - public string DepartmentName { get; set; } - } + /// + /// 用户信息表 + /// + //[SugarTable("SysUserInfo")] + [SugarTable("SysUserInfo", "用户表")] //('数据库表名','数据库表备注') + public class SysUserInfo : SysUserInfoRoot + { + public SysUserInfo() + { + } + + public SysUserInfo(string loginName, string loginPWD) + { + LoginName = loginName; + LoginPWD = loginPWD; + RealName = LoginName; + Status = 0; + CreateTime = DateTime.Now; + UpdateTime = DateTime.Now; + LastErrorTime = DateTime.Now; + ErrorCount = 0; + Name = ""; + } + + /// + /// 登录账号 + /// + [SugarColumn(Length = 200, IsNullable = true, ColumnDescription = "登录账号")] + //:eg model 根据sqlsugar的完整定义可以如下定义,ColumnDescription可定义表字段备注 + //[SugarColumn(IsNullable = false, ColumnDescription = "登录账号", IsPrimaryKey = false, IsIdentity = false, Length = 50)] + //ColumnDescription 表字段备注, 已在MSSQL测试,配合 [SugarTable("SysUserInfo", "用户表")]//('数据库表名','数据库表备注') + //可以完整生成 表备注和各个字段的中文备注 + //2022/10/11 + //测试mssql 发现 不写ColumnDescription,写好注释在mssql下也能生成表字段备注 + public string LoginName { get; set; } + + /// + /// 登录密码 + /// + [SugarColumn(Length = 200, IsNullable = true)] + public string LoginPWD { get; set; } + + /// + /// 真实姓名 + /// + [SugarColumn(Length = 200, IsNullable = true)] + public string RealName { get; set; } + + /// + /// 状态 + /// + public int Status { get; set; } + + /// + /// 部门 + /// + [SugarColumn(IsNullable = true)] + public int DepartmentId { get; set; } = -1; + + /// + /// 备注 + /// + [SugarColumn(Length = 2000, IsNullable = true)] + public string Remark { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } = DateTime.Now; + + /// + /// 更新时间 + /// + public DateTime UpdateTime { get; set; } = DateTime.Now; + + /// + /// 关键业务修改时间 + /// + public DateTime CriticalModifyTime { get; set; } = DateTime.Now; + + /// + ///最后异常时间 + /// + public DateTime LastErrorTime { get; set; } = DateTime.Now; + + /// + ///错误次数 + /// + public int ErrorCount { get; set; } + + + /// + /// 登录账号 + /// + [SugarColumn(Length = 200, IsNullable = true)] + public string Name { get; set; } + + // 性别 + [SugarColumn(IsNullable = true)] + public int Sex { get; set; } = 0; + + // 年龄 + [SugarColumn(IsNullable = true)] + public int Age { get; set; } + + // 生日 + [SugarColumn(IsNullable = true)] + public DateTime Birth { get; set; } = DateTime.Now; + + // 地址 + [SugarColumn(Length = 200, IsNullable = true)] + public string Address { get; set; } + + [SugarColumn(DefaultValue = "1")] + public bool Enable { get; set; } = true; + + [SugarColumn(IsNullable = true)] + public bool IsDeleted { get; set; } + + /// + /// 租户Id + /// + [SugarColumn(IsNullable = false, DefaultValue = "0")] + public long TenantId { get; set; } + + [Navigate(NavigateType.OneToOne, nameof(TenantId))] + public SysTenant Tenant { get; set; } + + [SugarColumn(IsIgnore = true)] + public List RoleNames { get; set; } + + [SugarColumn(IsIgnore = true)] + public List Dids { get; set; } + + [SugarColumn(IsIgnore = true)] + public string DepartmentName { get; set; } + } } \ No newline at end of file diff --git a/Blog.Core.Tests/Controller_Test/LoginController_Should.cs b/Blog.Core.Tests/Controller_Test/LoginController_Should.cs index 7c0cb1bb..c9387f72 100644 --- a/Blog.Core.Tests/Controller_Test/LoginController_Should.cs +++ b/Blog.Core.Tests/Controller_Test/LoginController_Should.cs @@ -3,72 +3,76 @@ using Xunit; using Autofac; using Blog.Core.AuthHelper; +using Microsoft.Extensions.Logging; namespace Blog.Core.Tests { - public class LoginController_Should - { - LoginController loginController; - - private readonly ISysUserInfoServices _sysUserInfoServices; - private readonly IUserRoleServices _userRoleServices; - private readonly IRoleServices _roleServices; - private readonly PermissionRequirement _requirement; - private readonly IRoleModulePermissionServices _roleModulePermissionServices; - - DI_Test dI_Test = new DI_Test(); - - - - public LoginController_Should() - { - var container = dI_Test.DICollections(); - _sysUserInfoServices = container.Resolve(); - _userRoleServices = container.Resolve(); - _roleServices = container.Resolve(); - _requirement = container.Resolve(); - _roleModulePermissionServices = container.Resolve(); - loginController = new LoginController(_sysUserInfoServices,_userRoleServices,_roleServices,_requirement, _roleModulePermissionServices); - } - - [Fact] - public void GetJwtStrTest() - { - var data = loginController.GetJwtStr("test", "test"); - - Assert.NotNull(data); - } - [Fact] - public void GetJwtStrForNuxtTest() - { - object blogs = loginController.GetJwtStrForNuxt("test", "test"); - - Assert.NotNull(blogs); - } - - [Fact] - public async void GetJwtToken3Test() - { - - var res = await loginController.GetJwtToken3("test", "test"); - - Assert.NotNull(res); - } - - [Fact] - public async void RefreshTokenTest() - { - var res = await loginController.RefreshToken("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoidGVzdCIsImp0aSI6IjgiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL2V4cGlyYXRpb24iOiIyMDE5LzEwLzE4IDIzOjI2OjQ5IiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiQWRtaW5UZXN0IiwibmJmIjoxNTcxNDA4ODA5LCJleHAiOjE1NzE0MTI0MDksImlzcyI6IkJsb2cuQ29yZSIsImF1ZCI6IndyIn0.oz-SPz6UCL78fM09bUecw5rmjcNYEY9dWGtuPs2gdBg"); - - Assert.NotNull(res); - } - - [Fact] - public void Md5PasswordTest() - { - var res = loginController.Md5Password("test"); - - Assert.NotNull(res); - } - } -} + public class LoginController_Should + { + LoginController loginController; + + private readonly ISysUserInfoServices _sysUserInfoServices; + private readonly IUserRoleServices _userRoleServices; + private readonly IRoleServices _roleServices; + private readonly PermissionRequirement _requirement; + private readonly IRoleModulePermissionServices _roleModulePermissionServices; + private readonly ILogger _logger; + + DI_Test dI_Test = new DI_Test(); + + + public LoginController_Should() + { + var container = dI_Test.DICollections(); + _sysUserInfoServices = container.Resolve(); + _userRoleServices = container.Resolve(); + _roleServices = container.Resolve(); + _requirement = container.Resolve(); + _roleModulePermissionServices = container.Resolve(); + _logger = container.Resolve>(); + loginController = new LoginController(_sysUserInfoServices, _userRoleServices, _roleServices, _requirement, + _roleModulePermissionServices, _logger); + } + + [Fact] + public void GetJwtStrTest() + { + var data = loginController.GetJwtStr("test", "test"); + + Assert.NotNull(data); + } + + [Fact] + public void GetJwtStrForNuxtTest() + { + object blogs = loginController.GetJwtStrForNuxt("test", "test"); + + Assert.NotNull(blogs); + } + + [Fact] + public async void GetJwtToken3Test() + { + var res = await loginController.GetJwtToken3("test", "test"); + + Assert.NotNull(res); + } + + [Fact] + public async void RefreshTokenTest() + { + var res = await loginController.RefreshToken( + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoidGVzdCIsImp0aSI6IjgiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL2V4cGlyYXRpb24iOiIyMDE5LzEwLzE4IDIzOjI2OjQ5IiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiQWRtaW5UZXN0IiwibmJmIjoxNTcxNDA4ODA5LCJleHAiOjE1NzE0MTI0MDksImlzcyI6IkJsb2cuQ29yZSIsImF1ZCI6IndyIn0.oz-SPz6UCL78fM09bUecw5rmjcNYEY9dWGtuPs2gdBg"); + + Assert.NotNull(res); + } + + [Fact] + public void Md5PasswordTest() + { + var res = loginController.Md5Password("test"); + + Assert.NotNull(res); + } + } +} \ No newline at end of file From 1c700fd90d8a2032114c5390a6681dc3d8689e9e Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Fri, 26 May 2023 15:20:26 +0800 Subject: [PATCH 272/382] =?UTF-8?q?=E2=9C=A8=20=E4=BC=98=E5=8C=96=E5=A4=9A?= =?UTF-8?q?=E6=AC=A1=E8=A7=A3=E6=9E=90Token=E9=87=8D=E5=A4=8D=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0Claims?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HttpContextUser/AspNetUser.cs | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/Blog.Core.Common/HttpContextUser/AspNetUser.cs b/Blog.Core.Common/HttpContextUser/AspNetUser.cs index ba21889e..1ceaa45f 100644 --- a/Blog.Core.Common/HttpContextUser/AspNetUser.cs +++ b/Blog.Core.Common/HttpContextUser/AspNetUser.cs @@ -1,13 +1,12 @@ -using System; +using Blog.Core.Common.Swagger; +using Blog.Core.Model; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Logging; +using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; using System.Linq; using System.Security.Claims; -using Blog.Core.Common.Swagger; -using Blog.Core.Model; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Logging; -using SqlSugar.Extensions; namespace Blog.Core.Common.HttpContextUser { @@ -34,7 +33,9 @@ private string GetName() { if (!string.IsNullOrEmpty(GetToken())) { - var getNameType = Permissions.IsUseIds4 ? "name" : "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"; + var getNameType = Permissions.IsUseIds4 + ? "name" + : "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"; return GetUserInfoFromToken(getNameType).FirstOrDefault().ObjToString(); } } @@ -58,15 +59,19 @@ public string GetToken() { return token; } - + if (_accessor.HttpContext?.IsSuccessSwagger() == true) { token = _accessor.HttpContext.GetSuccessSwaggerJwt(); if (token.IsNotEmptyOrNull()) { + if (_accessor.HttpContext.User.Claims.Any(s => s.Type == JwtRegisteredClaimNames.Jti)) + { + return token; + } + var claims = new ClaimsIdentity(GetClaimsIdentity(token)); _accessor.HttpContext.User.AddIdentity(claims); - return token; } } @@ -86,8 +91,8 @@ public List GetUserInfoFromToken(string ClaimType) JwtSecurityToken jwtToken = jwtHandler.ReadJwtToken(token); return (from item in jwtToken.Claims - where item.Type == ClaimType - select item.Value).ToList(); + where item.Type == ClaimType + select item.Value).ToList(); } return new List() { }; @@ -100,7 +105,7 @@ public IEnumerable GetClaimsIdentity() if (_accessor.HttpContext == null) return ArraySegment.Empty; if (!IsAuthenticated()) return GetClaimsIdentity(GetToken()); - + var claims = _accessor.HttpContext.User.Claims.ToList(); var headers = _accessor.HttpContext.Request.Headers; foreach (var header in headers) @@ -110,6 +115,7 @@ public IEnumerable GetClaimsIdentity() return claims; } + public IEnumerable GetClaimsIdentity(string token) { var jwtHandler = new JwtSecurityTokenHandler(); @@ -127,8 +133,8 @@ public IEnumerable GetClaimsIdentity(string token) public List GetClaimValueByType(string ClaimType) { return (from item in GetClaimsIdentity() - where item.Type == ClaimType - select item.Value).ToList(); + where item.Type == ClaimType + select item.Value).ToList(); } } } \ No newline at end of file From 3f24902521fe64385198bbd4f4f5effb662727c3 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 30 May 2023 10:27:43 +0800 Subject: [PATCH 273/382] Update PermissionHandler.cs --- .../Policys/PermissionHandler.cs | 451 +++++++++--------- 1 file changed, 228 insertions(+), 223 deletions(-) diff --git a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs index d2dbfdf7..27099b7b 100644 --- a/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs +++ b/Blog.Core.Extensions/Authorizations/Policys/PermissionHandler.cs @@ -19,252 +19,257 @@ namespace Blog.Core.AuthHelper { - /// - /// 权限授权处理器 - /// - public class PermissionHandler : AuthorizationHandler - { - /// - /// 验证方案提供对象 - /// - public IAuthenticationSchemeProvider Schemes { get; set; } + /// + /// 权限授权处理器 + /// + public class PermissionHandler : AuthorizationHandler + { + /// + /// 验证方案提供对象 + /// + public IAuthenticationSchemeProvider Schemes { get; set; } - private readonly IRoleModulePermissionServices _roleModulePermissionServices; - private readonly IHttpContextAccessor _accessor; - private readonly ISysUserInfoServices _userServices; - private readonly IUser _user; + private readonly IRoleModulePermissionServices _roleModulePermissionServices; + private readonly IHttpContextAccessor _accessor; + private readonly ISysUserInfoServices _userServices; + private readonly IUser _user; - /// - /// 构造函数注入 - /// - /// - /// - /// - /// - /// - public PermissionHandler(IAuthenticationSchemeProvider schemes, - IRoleModulePermissionServices roleModulePermissionServices, IHttpContextAccessor accessor, - ISysUserInfoServices userServices, IUser user) - { - _accessor = accessor; - _userServices = userServices; - _user = user; - Schemes = schemes; - _roleModulePermissionServices = roleModulePermissionServices; - } + /// + /// 构造函数注入 + /// + /// + /// + /// + /// + /// + public PermissionHandler(IAuthenticationSchemeProvider schemes, + IRoleModulePermissionServices roleModulePermissionServices, IHttpContextAccessor accessor, + ISysUserInfoServices userServices, IUser user) + { + _accessor = accessor; + _userServices = userServices; + _user = user; + Schemes = schemes; + _roleModulePermissionServices = roleModulePermissionServices; + } - // 重写异步处理程序 - protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, - PermissionRequirement requirement) - { - var httpContext = _accessor.HttpContext; + // 重写异步处理程序 + protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, + PermissionRequirement requirement) + { + var httpContext = _accessor.HttpContext; - // 获取系统中所有的角色和菜单的关系集合 - if (!requirement.Permissions.Any()) - { - var data = await _roleModulePermissionServices.RoleModuleMaps(); - var list = new List(); - // ids4和jwt切换 - // ids4 - if (Permissions.IsUseIds4) - { - list = (from item in data - where item.IsDeleted == false - orderby item.Id - select new PermissionItem - { - Url = item.Module?.LinkUrl, - Role = item.Role?.Id.ObjToString(), - }).ToList(); - } - // jwt - else - { - list = (from item in data - where item.IsDeleted == false - orderby item.Id - select new PermissionItem - { - Url = item.Module?.LinkUrl, - Role = item.Role?.Name.ObjToString(), - }).ToList(); - } + // 获取系统中所有的角色和菜单的关系集合 + if (!requirement.Permissions.Any()) + { + var data = await _roleModulePermissionServices.RoleModuleMaps(); + var list = new List(); + // ids4和jwt切换 + // ids4 + if (Permissions.IsUseIds4) + { + list = (from item in data + where item.IsDeleted == false + orderby item.Id + select new PermissionItem + { + Url = item.Module?.LinkUrl, + Role = item.Role?.Id.ObjToString(), + }).ToList(); + } + // jwt + else + { + list = (from item in data + where item.IsDeleted == false + orderby item.Id + select new PermissionItem + { + Url = item.Module?.LinkUrl, + Role = item.Role?.Name.ObjToString(), + }).ToList(); + } - requirement.Permissions = list; - } + requirement.Permissions = list; + } - if (httpContext != null) - { - var questUrl = httpContext.Request.Path.Value.ToLower(); + if (httpContext != null) + { + var questUrl = httpContext.Request.Path.Value.ToLower(); - // 整体结构类似认证中间件UseAuthentication的逻辑,具体查看开源地址 - // https://github.com/dotnet/aspnetcore/blob/master/src/Security/Authentication/Core/src/AuthenticationMiddleware.cs - httpContext.Features.Set(new AuthenticationFeature - { - OriginalPath = httpContext.Request.Path, - OriginalPathBase = httpContext.Request.PathBase - }); + // 整体结构类似认证中间件UseAuthentication的逻辑,具体查看开源地址 + // https://github.com/dotnet/aspnetcore/blob/master/src/Security/Authentication/Core/src/AuthenticationMiddleware.cs + httpContext.Features.Set(new AuthenticationFeature + { + OriginalPath = httpContext.Request.Path, + OriginalPathBase = httpContext.Request.PathBase + }); - // Give any IAuthenticationRequestHandler schemes a chance to handle the request - // 主要作用是: 判断当前是否需要进行远程验证,如果是就进行远程验证 - var handlers = httpContext.RequestServices.GetRequiredService(); - foreach (var scheme in await Schemes.GetRequestHandlerSchemesAsync()) - { - if (await handlers.GetHandlerAsync(httpContext, scheme.Name) is IAuthenticationRequestHandler - handler && await handler.HandleRequestAsync()) - { - context.Fail(); - return; - } - } + // Give any IAuthenticationRequestHandler schemes a chance to handle the request + // 主要作用是: 判断当前是否需要进行远程验证,如果是就进行远程验证 + var handlers = httpContext.RequestServices.GetRequiredService(); + foreach (var scheme in await Schemes.GetRequestHandlerSchemesAsync()) + { + if (await handlers.GetHandlerAsync(httpContext, scheme.Name) is IAuthenticationRequestHandler + handler && await handler.HandleRequestAsync()) + { + context.Fail(); + return; + } + } - //判断请求是否拥有凭据,即有没有登录 - var defaultAuthenticate = await Schemes.GetDefaultAuthenticateSchemeAsync(); - if (defaultAuthenticate != null) - { - var result = await httpContext.AuthenticateAsync(defaultAuthenticate.Name); + //判断请求是否拥有凭据,即有没有登录 + var defaultAuthenticate = await Schemes.GetDefaultAuthenticateSchemeAsync(); + if (defaultAuthenticate != null) + { + var result = await httpContext.AuthenticateAsync(defaultAuthenticate.Name); - // 是否开启测试环境 - var isTestCurrent = AppSettings.app(new string[] {"AppSettings", "UseLoadTest"}).ObjToBool(); + // 是否开启测试环境 + var isTestCurrent = AppSettings.app(new string[] { "AppSettings", "UseLoadTest" }).ObjToBool(); - //result?.Principal不为空即登录成功 - if (result?.Principal != null || isTestCurrent || httpContext.IsSuccessSwagger()) - { - if (!isTestCurrent) httpContext.User = result.Principal; + //result?.Principal不为空即登录成功 + if (result?.Principal != null || isTestCurrent || httpContext.IsSuccessSwagger()) + { + if (!isTestCurrent) httpContext.User = result.Principal; - //应该要先校验用户的信息 再校验菜单权限相关的 + //应该要先校验用户的信息 再校验菜单权限相关的 + // JWT模式下校验当前用户状态 + // IDS4也可以校验,可以通过服务或者接口形式 + SysUserInfo user = new(); + if (!Permissions.IsUseIds4) + { + //校验用户 + user = await _userServices.QueryById(_user.ID, true); + if (user == null) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "用户不存在或已被删除").MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } - //校验用户 - var user = await _userServices.QueryById(_user.ID, true); - if (user == null) - { - _user.MessageModel = new ApiResponse(StatusCode.CODE401, "用户不存在或已被删除").MessageModel; - context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); - return; - } + if (user.IsDeleted) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "用户已被删除,禁止登陆!").MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } - if (user.IsDeleted) - { - _user.MessageModel = new ApiResponse(StatusCode.CODE401, "用户已被删除,禁止登陆!").MessageModel; - context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); - return; - } + if (!user.Enable) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "用户已被禁用!禁止登陆!").MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } + } - if (!user.Enable) - { - _user.MessageModel = new ApiResponse(StatusCode.CODE401, "用户已被禁用!禁止登陆!").MessageModel; - context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); - return; - } + // 判断token是否过期,过期则重新登录 + var isExp = false; + // ids4和jwt切换 + // ids4 + if (Permissions.IsUseIds4) + { + isExp = (httpContext.User.Claims.FirstOrDefault(s => s.Type == "exp")?.Value) != null && + DateHelper.StampToDateTime(httpContext.User.Claims + .FirstOrDefault(s => s.Type == "exp")?.Value) >= DateTime.Now; + } + else + { + // jwt + isExp = + (httpContext.User.Claims.FirstOrDefault(s => s.Type == ClaimTypes.Expiration) + ?.Value) != null && + DateTime.Parse(httpContext.User.Claims + .FirstOrDefault(s => s.Type == ClaimTypes.Expiration)?.Value) >= DateTime.Now; + } - // 判断token是否过期,过期则重新登录 - var isExp = false; - // ids4和jwt切换 - // ids4 - if (Permissions.IsUseIds4) - { - isExp = (httpContext.User.Claims.FirstOrDefault(s => s.Type == "exp")?.Value) != null && - DateHelper.StampToDateTime(httpContext.User.Claims - .FirstOrDefault(s => s.Type == "exp")?.Value) >= DateTime.Now; - } - else - { - // jwt - isExp = - (httpContext.User.Claims.FirstOrDefault(s => s.Type == ClaimTypes.Expiration) - ?.Value) != null && - DateTime.Parse(httpContext.User.Claims - .FirstOrDefault(s => s.Type == ClaimTypes.Expiration)?.Value) >= DateTime.Now; - } + if (!isExp) + { + context.Fail(new AuthorizationFailureReason(this, "授权已过期,请重新授权")); + return; + } - if (!isExp) - { - context.Fail(new AuthorizationFailureReason(this, "授权已过期,请重新授权")); - return; - } + //校验签发时间 + if (!Permissions.IsUseIds4) + { + var value = httpContext.User.Claims + .FirstOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; + if (value != null) + { + if (user.CriticalModifyTime > value.ObjToDate()) + { + _user.MessageModel = new ApiResponse(StatusCode.CODE401, "很抱歉,授权已失效,请重新授权") + .MessageModel; + context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); + return; + } + } + } - //校验签发时间 - if (!Permissions.IsUseIds4) - { - var value = httpContext.User.Claims - .FirstOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; - if (value != null) - { - if (user.CriticalModifyTime > value.ObjToDate()) - { - _user.MessageModel = new ApiResponse(StatusCode.CODE401, "很抱歉,授权已失效,请重新授权") - .MessageModel; - context.Fail(new AuthorizationFailureReason(this, _user.MessageModel.msg)); - return; - } - } - } + // 获取当前用户的角色信息 + var currentUserRoles = new List(); + // ids4和jwt切换 + // ids4 + if (Permissions.IsUseIds4) + { + currentUserRoles = (from item in httpContext.User.Claims + where item.Type == "role" + select item.Value).ToList(); + } + else + { + // jwt + currentUserRoles = (from item in httpContext.User.Claims + where item.Type == requirement.ClaimType + select item.Value).ToList(); + } - // 获取当前用户的角色信息 - var currentUserRoles = new List(); - // ids4和jwt切换 - // ids4 - if (Permissions.IsUseIds4) - { - currentUserRoles = (from item in httpContext.User.Claims - where item.Type == "role" - select item.Value).ToList(); - } - else - { - // jwt - currentUserRoles = (from item in httpContext.User.Claims - where item.Type == requirement.ClaimType - select item.Value).ToList(); - } + //超级管理员 默认拥有所有权限 + if (currentUserRoles.All(s => s != "SuperAdmin")) + { + var isMatchRole = false; + var permisssionRoles = + requirement.Permissions.Where(w => currentUserRoles.Contains(w.Role)); + foreach (var item in permisssionRoles) + { + try + { + if (Regex.Match(questUrl, item.Url?.ObjToString().ToLower())?.Value == questUrl) + { + isMatchRole = true; + break; + } + } + catch (Exception) + { + // ignored + } + } - //超级管理员 默认拥有所有权限 - if (currentUserRoles.All(s => s != "SuperAdmin")) - { - var isMatchRole = false; - var permisssionRoles = - requirement.Permissions.Where(w => currentUserRoles.Contains(w.Role)); - foreach (var item in permisssionRoles) - { - try - { - if (Regex.Match(questUrl, item.Url?.ObjToString().ToLower())?.Value == questUrl) - { - isMatchRole = true; - break; - } - } - catch (Exception) - { - // ignored - } - } + //验证权限 + if (currentUserRoles.Count <= 0 || !isMatchRole) + { + context.Fail(); + return; + } + } - //验证权限 - if (currentUserRoles.Count <= 0 || !isMatchRole) - { - context.Fail(); - return; - } - } + context.Succeed(requirement); + return; + } + } - context.Succeed(requirement); - return; - } - } + //判断没有登录时,是否访问登录的url,并且是Post请求,并且是form表单提交类型,否则为失败 + if (!(questUrl.Equals(requirement.LoginPath.ToLower(), StringComparison.Ordinal) && + (!httpContext.Request.Method.Equals("POST") || !httpContext.Request.HasFormContentType))) + { + context.Fail(); + return; + } + } - //判断没有登录时,是否访问登录的url,并且是Post请求,并且是form表单提交类型,否则为失败 - if (!(questUrl.Equals(requirement.LoginPath.ToLower(), StringComparison.Ordinal) && - (!httpContext.Request.Method.Equals("POST") || !httpContext.Request.HasFormContentType))) - { - context.Fail(); - return; - } - } - - //context.Succeed(requirement); - } - } + //context.Succeed(requirement); + } + } } \ No newline at end of file From 7629527ee987b3d2d081a7423f9a2873cd48d2ee Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Thu, 1 Jun 2023 17:54:54 +0800 Subject: [PATCH 274/382] =?UTF-8?q?=E2=9C=A8=F0=9F=8E=A8=20=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E7=9A=84=E5=AE=8C=E5=96=84=E4=BC=98=E5=8C=96=201.?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=B0=81=E8=A3=85=E5=9F=BA=E4=BA=8E=E5=BE=AE?= =?UTF-8?q?=E8=BD=AF=E5=88=86=E5=B8=83=E5=BC=8F=E7=BC=93=E5=AD=98=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3IDistributedCache=E4=BD=BF=E7=94=A8=202.IDistributedCa?= =?UTF-8?q?che=E5=8F=AA=E9=80=82=E5=90=88=E6=99=AE=E9=80=9A=E7=9A=84?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E4=BD=BF=E7=94=A8,=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E8=A6=81=E4=BD=BF=E7=94=A8redis=E9=98=9F=E5=88=97=E3=80=81?= =?UTF-8?q?=E8=AE=A2=E9=98=85redis=E6=B6=88=E6=81=AF=E7=AD=89,=E5=B0=B1?= =?UTF-8?q?=E8=A6=81=E4=BD=BF=E7=94=A8redis=E5=8E=9F=E7=94=9F=E5=BA=93=203?= =?UTF-8?q?.=E5=A2=9E=E5=8A=A0=E7=BC=93=E5=AD=98=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3[Systems/CacheManageController]=204.=E7=9B=AE?= =?UTF-8?q?=E5=89=8D=E6=94=AF=E6=8C=81=E5=86=85=E5=AD=98=E3=80=81redis?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E5=AE=9E=E7=8E=B0,=E7=90=86=E8=AE=BA?= =?UTF-8?q?=E5=8F=AF=E9=9A=8F=E6=84=8F=E6=89=A9=E5=B1=95=E7=94=9A=E8=87=B3?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AE=9E=E7=8E=B0=205.=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E4=BD=BF=E7=94=A8=E5=86=85=E5=AD=98=E7=BC=93=E5=AD=98?= =?UTF-8?q?,=E5=8F=AF=E5=9C=A8appsetting.json=E4=B8=AD=E9=85=8D=E7=BD=AERe?= =?UTF-8?q?dis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 切换到IDistributedCache好处如下 默认session使用IDistributedCache进行存储,如果你搭配使用IDistributedCache+外部缓存(如Redis),可实现应用程序重启session不丢失 更直观就是,调试的时候登录swagger后即使重启调试也无需在登陆 --- Blog.Core.Api/Blog.Core.Api.csproj | 1 - Blog.Core.Api/Blog.Core.xml | 35 ++ .../Systems/CacheManageController.cs | 81 ++++ Blog.Core.Api/Program.cs | 3 +- Blog.Core.Api/Startup.cs | 5 +- Blog.Core.Api/appsettings.json | 4 +- Blog.Core.Common/Blog.Core.Common.csproj | 1 - Blog.Core.Common/Caches/Caching.cs | 328 ++++++++++++++ Blog.Core.Common/Caches/ICaching.cs | 53 +++ .../Caches/SqlSugarCacheService.cs | 62 +++ Blog.Core.Common/Const/CacheConst.cs | 87 ++++ Blog.Core.Common/DB/BaseDBConfig.cs | 1 - .../Extensions/ExpressionExtensions.cs | 410 +++++++++--------- .../MemoryCache/ICachingProvider.cs | 12 - Blog.Core.Common/MemoryCache/MemoryCaching.cs | 30 -- Blog.Core.Common/Option/RedisOptions.cs | 24 + Blog.Core.Extensions/AOP/BlogCacheAOP.cs | 8 +- .../Blog.Core.Extensions.csproj | 1 + .../Redis/IRedisBasketRepository.cs | 1 + .../Redis/RedisBasketRepository.cs | 1 + .../ServiceExtensions/CacheSetup.cs | 45 ++ .../ServiceExtensions/HttpRuntimeCache.cs | 67 --- .../ServiceExtensions/MemoryCacheSetup.cs | 27 -- .../ServiceExtensions/RedisCacheSetup.cs | 34 -- .../ServiceExtensions/SqlsugarSetup.cs | 12 +- .../Helper/CustomJwtTokenAuthMiddleware.cs | 1 + .../Utility/SerilogRequestUtility.cs | 104 ++--- 27 files changed, 992 insertions(+), 446 deletions(-) create mode 100644 Blog.Core.Api/Controllers/Systems/CacheManageController.cs create mode 100644 Blog.Core.Common/Caches/Caching.cs create mode 100644 Blog.Core.Common/Caches/ICaching.cs create mode 100644 Blog.Core.Common/Caches/SqlSugarCacheService.cs create mode 100644 Blog.Core.Common/Const/CacheConst.cs delete mode 100644 Blog.Core.Common/MemoryCache/ICachingProvider.cs delete mode 100644 Blog.Core.Common/MemoryCache/MemoryCaching.cs create mode 100644 Blog.Core.Common/Option/RedisOptions.cs create mode 100644 Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs delete mode 100644 Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs delete mode 100644 Blog.Core.Extensions/ServiceExtensions/MemoryCacheSetup.cs delete mode 100644 Blog.Core.Extensions/ServiceExtensions/RedisCacheSetup.cs diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 2f8c41e9..f3f9befa 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -106,7 +106,6 @@ - diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 672ea21f..69d3f9b2 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1299,6 +1299,41 @@ + + + 缓存管理 + + + + + 获取全部缓存 + + + + + + 获取缓存 + + + + + + 新增 + + + + + + 删除全部缓存 + + + + + + 删除缓存 + + + 数据库管理 diff --git a/Blog.Core.Api/Controllers/Systems/CacheManageController.cs b/Blog.Core.Api/Controllers/Systems/CacheManageController.cs new file mode 100644 index 00000000..4f400e8f --- /dev/null +++ b/Blog.Core.Api/Controllers/Systems/CacheManageController.cs @@ -0,0 +1,81 @@ +using Blog.Core.Common.Caches; +using Blog.Core.Controllers; +using Blog.Core.Model; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Core.Api.Controllers.Systems; + +/// +/// 缓存管理 +/// +[Route("api/Systems/[controller]")] +[ApiController] +[Authorize(Permissions.Name)] +public class CacheManageController : BaseApiController +{ + private readonly ICaching _caching; + + public CacheManageController(ICaching caching) + { + _caching = caching; + } + + /// + /// 获取全部缓存 + /// + /// + [HttpGet] + public async Task>> Get() + { + return Success(await _caching.GetAllCacheKeysAsync()); + } + + /// + /// 获取缓存 + /// + /// + [HttpGet("{key}")] + public async Task> Get(string key) + { + return Success(await _caching.GetStringAsync(key)); + } + + /// + /// 新增 + /// + /// + [HttpPost] + public async Task Post([FromQuery] string key, [FromQuery] string value, [FromQuery] int? expire) + { + if (expire.HasValue) + await _caching.SetStringAsync(key, value, TimeSpan.FromMilliseconds(expire.Value)); + else + await _caching.SetStringAsync(key, value); + + return Success(); + } + + /// + /// 删除全部缓存 + /// + /// + [HttpDelete] + public async Task Delete() + { + await _caching.RemoveAllAsync(); + return Success(); + } + + /// + /// 删除缓存 + /// + /// + [Route("{key}")] + [HttpDelete] + public async Task Delete(string key) + { + await _caching.RemoveAsync(key); + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index b4929cc7..4311c97c 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -57,8 +57,7 @@ JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); -builder.Services.AddMemoryCacheSetup(); -builder.Services.AddRedisCacheSetup(); +builder.Services.AddCacheSetup(); builder.Services.AddSqlsugarSetup(); builder.Services.AddDbSetup(); diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs index 64e5ee78..2911625d 100644 --- a/Blog.Core.Api/Startup.cs +++ b/Blog.Core.Api/Startup.cs @@ -8,6 +8,7 @@ using Blog.Core.Common.Seed; using Blog.Core.Extensions; using Blog.Core.Extensions.Middlewares; +using Blog.Core.Extensions.ServiceExtensions; using Blog.Core.Filter; using Blog.Core.Hubs; using Blog.Core.IServices; @@ -49,9 +50,7 @@ public void ConfigureServices(IServiceCollection services) // 确保从认证中心返回的ClaimType不被更改,不使用Map映射 JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); - services.AddMemoryCacheSetup(); - services.AddRedisCacheSetup(); - + services.AddCacheSetup(); services.AddSqlsugarSetup(); services.AddDbSetup(); services.AddAutoMapperSetup(); diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index cef87bed..d220a034 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -18,7 +18,9 @@ }, "AllowedHosts": "*", "Redis": { - "ConnectionString": "127.0.0.1:6319,password=admin" + "Enable": true, + "ConnectionString": "127.0.0.1:6379", + "InstanceName": "" //前缀 }, "RabbitMQ": { "Enabled": false, diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index aeba8476..5f249870 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -51,7 +51,6 @@ - diff --git a/Blog.Core.Common/Caches/Caching.cs b/Blog.Core.Common/Caches/Caching.cs new file mode 100644 index 00000000..e7b4ab07 --- /dev/null +++ b/Blog.Core.Common/Caches/Caching.cs @@ -0,0 +1,328 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Blog.Core.Common.Const; +using Microsoft.Extensions.Caching.Distributed; +using Newtonsoft.Json; + +namespace Blog.Core.Common.Caches; + +public class Caching : ICaching +{ + private readonly IDistributedCache _cache; + + public Caching(IDistributedCache cache) + { + _cache = cache; + } + + private byte[] GetBytes(T source) + { + return Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(source)); + } + + public IDistributedCache Cache => _cache; + + public void AddCacheKey(string cacheKey) + { + var res = _cache.GetString(CacheConst.KeyAll); + var allkeys = string.IsNullOrWhiteSpace(res) ? new List() : JsonConvert.DeserializeObject>(res); + if (!allkeys.Any(m => m == cacheKey)) + { + allkeys.Add(cacheKey); + _cache.SetString(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys)); + } + } + + /// + /// 增加缓存Key + /// + /// + /// + public async Task AddCacheKeyAsync(string cacheKey) + { + var res = await _cache.GetStringAsync(CacheConst.KeyAll); + var allkeys = string.IsNullOrWhiteSpace(res) ? new List() : JsonConvert.DeserializeObject>(res); + if (!allkeys.Any(m => m == cacheKey)) + { + allkeys.Add(cacheKey); + await _cache.SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys)); + } + } + + public void DelByPattern(string key) + { + var allkeys = GetAllCacheKeys(); + if (allkeys == null) return; + + var delAllkeys = allkeys.Where(u => u.Contains(key)).ToList(); + delAllkeys.ForEach(u => { _cache.Remove(u); }); + + // 更新所有缓存键 + allkeys = allkeys.Where(u => !u.Contains(key)).ToList(); + _cache.SetString(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys)); + } + + /// + /// 删除某特征关键字缓存 + /// + /// + /// + public async Task DelByPatternAsync(string key) + { + var allkeys = await GetAllCacheKeysAsync(); + if (allkeys == null) return; + + var delAllkeys = allkeys.Where(u => u.Contains(key)).ToList(); + delAllkeys.ForEach(u => { _cache.Remove(u); }); + + // 更新所有缓存键 + allkeys = allkeys.Where(u => !u.Contains(key)).ToList(); + await _cache.SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys)); + } + + public void DelCacheKey(string cacheKey) + { + var res = _cache.GetString(CacheConst.KeyAll); + var allkeys = string.IsNullOrWhiteSpace(res) ? new List() : JsonConvert.DeserializeObject>(res); + if (allkeys.Any(m => m == cacheKey)) + { + allkeys.Remove(cacheKey); + _cache.SetString(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys)); + } + } + + /// + /// 删除缓存 + /// + /// + /// + public async Task DelCacheKeyAsync(string cacheKey) + { + var res = await _cache.GetStringAsync(CacheConst.KeyAll); + var allkeys = string.IsNullOrWhiteSpace(res) ? new List() : JsonConvert.DeserializeObject>(res); + if (allkeys.Any(m => m == cacheKey)) + { + allkeys.Remove(cacheKey); + await _cache.SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys)); + } + } + + public bool Exists(string cacheKey) + { + var res = _cache.Get(cacheKey); + return res != null; + } + + /// + /// 检查给定 key 是否存在 + /// + /// 键 + /// + public async Task ExistsAsync(string cacheKey) + { + var res = await _cache.GetAsync(cacheKey); + return res != null; + } + + public List GetAllCacheKeys() + { + var res = _cache.GetString(CacheConst.KeyAll); + return string.IsNullOrWhiteSpace(res) ? null : JsonConvert.DeserializeObject>(res); + } + + /// + /// 获取所有缓存列表 + /// + /// + public async Task> GetAllCacheKeysAsync() + { + var res = await _cache.GetStringAsync(CacheConst.KeyAll); + return string.IsNullOrWhiteSpace(res) ? null : JsonConvert.DeserializeObject>(res); + } + + public T Get(string cacheKey) + { + var res = _cache.Get(cacheKey); + return res == null ? default : JsonConvert.DeserializeObject(Encoding.UTF8.GetString(res)); + } + + /// + /// 获取缓存 + /// + /// + /// + /// + public async Task GetAsync(string cacheKey) + { + var res = await _cache.GetAsync(cacheKey); + return res == null ? default : JsonConvert.DeserializeObject(Encoding.UTF8.GetString(res)); + } + + public string GetString(string cacheKey) + { + return _cache.GetString(cacheKey); + } + + /// + /// 获取缓存 + /// + /// + /// + public async Task GetStringAsync(string cacheKey) + { + return await _cache.GetStringAsync(cacheKey); + } + + public void Remove(string key) + { + _cache.Remove(key); + DelCacheKey(key); + } + + /// + /// 删除缓存 + /// + /// + /// + public async Task RemoveAsync(string key) + { + await _cache.RemoveAsync(key); + await DelCacheKeyAsync(key); + } + + public void RemoveAll() + { + var catches = GetAllCacheKeys(); + foreach (var @catch in catches) Remove(@catch); + + catches.Clear(); + _cache.SetString(CacheConst.KeyAll, JsonConvert.SerializeObject(catches)); + } + + public async Task RemoveAllAsync() + { + var catches = await GetAllCacheKeysAsync(); + foreach (var @catch in catches) await RemoveAsync(@catch); + + catches.Clear(); + await _cache.SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(catches)); + } + + + public void Set(string cacheKey, T value, TimeSpan? expire = null) + { + _cache.Set(cacheKey, GetBytes(value), expire == null ? new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6)} : new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = expire}); + + AddCacheKey(cacheKey); + } + + /// + /// 增加对象缓存 + /// + /// + /// + /// + public async Task SetAsync(string cacheKey, T value) + { + await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6)}); + + await AddCacheKeyAsync(cacheKey); + } + + /// + /// 增加对象缓存,并设置过期时间 + /// + /// + /// + /// + /// + public async Task SetAsync(string cacheKey, T value, TimeSpan expire) + { + await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = expire}); + + await AddCacheKeyAsync(cacheKey); + } + + public void SetPermanent(string cacheKey, T value) + { + _cache.Set(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value))); + AddCacheKey(cacheKey); + } + public async Task SetPermanentAsync(string cacheKey, T value) + { + await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value))); + await AddCacheKeyAsync(cacheKey); + } + + public void SetString(string cacheKey, string value, TimeSpan? expire = null) + { + if (expire == null) + _cache.SetString(cacheKey, value, new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6)}); + else + _cache.SetString(cacheKey, value, new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = expire}); + + AddCacheKey(cacheKey); + } + + /// + /// 增加字符串缓存 + /// + /// + /// + /// + public async Task SetStringAsync(string cacheKey, string value) + { + await _cache.SetStringAsync(cacheKey, value, new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6)}); + + await AddCacheKeyAsync(cacheKey); + } + + /// + /// 增加字符串缓存,并设置过期时间 + /// + /// + /// + /// + /// + public async Task SetStringAsync(string cacheKey, string value, TimeSpan expire) + { + await _cache.SetStringAsync(cacheKey, value, new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = expire}); + + await AddCacheKeyAsync(cacheKey); + } + + + /// + /// 缓存最大角色数据范围 + /// + /// + /// + /// + public async Task SetMaxDataScopeType(long userId, int dataScopeType) + { + var cacheKey = CacheConst.KeyMaxDataScopeType + userId; + await SetStringAsync(cacheKey, dataScopeType.ToString()); + + await AddCacheKeyAsync(cacheKey); + } + + /// + /// 根据父键清空 + /// + /// + /// + public async Task DelByParentKeyAsync(string key) + { + var allkeys = await GetAllCacheKeysAsync(); + if (allkeys == null) return; + + var delAllkeys = allkeys.Where(u => u.StartsWith(key)).ToList(); + delAllkeys.ForEach(Remove); + // 更新所有缓存键 + allkeys = allkeys.Where(u => !u.StartsWith(key)).ToList(); + await SetStringAsync(CacheConst.KeyAll, JsonConvert.SerializeObject(allkeys)); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Caches/ICaching.cs b/Blog.Core.Common/Caches/ICaching.cs new file mode 100644 index 00000000..f856aeb6 --- /dev/null +++ b/Blog.Core.Common/Caches/ICaching.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.Extensions.Caching.Distributed; + +namespace Blog.Core.Common.Caches; + +/// +/// 缓存抽象接口,基于IDistributedCache封装 +/// +public interface ICaching +{ + public IDistributedCache Cache { get; } + void AddCacheKey(string cacheKey); + Task AddCacheKeyAsync(string cacheKey); + + void DelByPattern(string key); + Task DelByPatternAsync(string key); + + void DelCacheKey(string cacheKey); + Task DelCacheKeyAsync(string cacheKey); + + bool Exists(string cacheKey); + Task ExistsAsync(string cacheKey); + + List GetAllCacheKeys(); + Task> GetAllCacheKeysAsync(); + + T Get(string cacheKey); + Task GetAsync(string cacheKey); + + string GetString(string cacheKey); + Task GetStringAsync(string cacheKey); + + void Remove(string key); + Task RemoveAsync(string key); + + void RemoveAll(); + Task RemoveAllAsync(); + + void Set(string cacheKey, T value, TimeSpan? expire = null); + Task SetAsync(string cacheKey, T value); + Task SetAsync(string cacheKey, T value, TimeSpan expire); + + void SetPermanent(string cacheKey, T value); + Task SetPermanentAsync(string cacheKey, T value); + + void SetString(string cacheKey, string value, TimeSpan? expire = null); + Task SetStringAsync(string cacheKey, string value); + Task SetStringAsync(string cacheKey, string value, TimeSpan expire); + + Task DelByParentKeyAsync(string key); +} \ No newline at end of file diff --git a/Blog.Core.Common/Caches/SqlSugarCacheService.cs b/Blog.Core.Common/Caches/SqlSugarCacheService.cs new file mode 100644 index 00000000..c26a164d --- /dev/null +++ b/Blog.Core.Common/Caches/SqlSugarCacheService.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using SqlSugar; + +namespace Blog.Core.Common.Caches; + +/// +/// 实现SqlSugar的ICacheService接口 +/// +public class SqlSugarCacheService : ICacheService +{ + private readonly Lazy _caching = new(() => App.GetService(false)); + private ICaching Caching => _caching.Value; + + public void Add(string key, V value) + { + Caching.Set(key, value); + } + + public void Add(string key, V value, int cacheDurationInSeconds) + { + Caching.Set(key, value, TimeSpan.FromSeconds(cacheDurationInSeconds)); + } + + public bool ContainsKey(string key) + { + return Caching.Exists(key); + } + + public V Get(string key) + { + return Caching.Get(key); + } + + public IEnumerable GetAllKey() + { + return Caching.GetAllCacheKeys(); + } + + public V GetOrCreate(string cacheKey, Func create, int cacheDurationInSeconds = int.MaxValue) + { + if (!ContainsKey(cacheKey)) + { + var value = create(); + Caching.Set(cacheKey, value, TimeSpan.FromSeconds(cacheDurationInSeconds)); + return value; + } + + return Caching.Get(cacheKey); + } + + public void Remove(string key) + { + Caching.Remove(key); + } + + public bool RemoveAll() + { + Caching.RemoveAll(); + return true; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Const/CacheConst.cs b/Blog.Core.Common/Const/CacheConst.cs new file mode 100644 index 00000000..92f0e633 --- /dev/null +++ b/Blog.Core.Common/Const/CacheConst.cs @@ -0,0 +1,87 @@ +namespace Blog.Core.Common.Const; + +/// +/// 缓存相关常量 +/// +public class CacheConst +{ + /// + /// 用户缓存 + /// + public const string KeyUser = "user:"; + + /// + /// 用户部门缓存 + /// + public const string KeyUserDepart = "userDepart:"; + + /// + /// 菜单缓存 + /// + public const string KeyMenu = "menu:"; + + /// + /// 菜单 + /// + public const string KeyPermissions = "permissions"; + + /// + /// 权限缓存 + /// + public const string KeyPermission = "permission:"; + + /// + /// 接口路由 + /// + public const string KeyModules = "modules"; + + /// + /// 系统配置 + /// + public const string KeySystemConfig = "sysConfig"; + + /// + /// 查询过滤器缓存 + /// + public const string KeyQueryFilter = "queryFilter:"; + + /// + /// 机构Id集合缓存 + /// + public const string KeyOrgIdList = "org:"; + + /// + /// 最大角色数据范围缓存 + /// + public const string KeyMaxDataScopeType = "maxDataScopeType:"; + + /// + /// 验证码缓存 + /// + public const string KeyVerCode = "verCode:"; + + /// + /// 所有缓存关键字集合 + /// + public const string KeyAll = "keys"; + + /// + /// 定时任务缓存 + /// + public const string KeyTimer = "timer:"; + + /// + /// 在线用户缓存 + /// + public const string KeyOnlineUser = "onlineuser:"; + + /// + /// 常量下拉框 + /// + public const string KeyConstSelector = "selector:"; + + /// + /// swagger登录缓存 + /// + public const string SwaggerLogin = "swaggerLogin:"; +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/BaseDBConfig.cs b/Blog.Core.Common/DB/BaseDBConfig.cs index 495414fb..b7153766 100644 --- a/Blog.Core.Common/DB/BaseDBConfig.cs +++ b/Blog.Core.Common/DB/BaseDBConfig.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using SqlSugar; namespace Blog.Core.Common.DB { diff --git a/Blog.Core.Common/Extensions/ExpressionExtensions.cs b/Blog.Core.Common/Extensions/ExpressionExtensions.cs index 4058b95a..6591923f 100644 --- a/Blog.Core.Common/Extensions/ExpressionExtensions.cs +++ b/Blog.Core.Common/Extensions/ExpressionExtensions.cs @@ -4,211 +4,213 @@ using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; +using Blog.Core.Common.Caches; namespace Blog.Core.Common.Helper { - /// - /// Linq扩展 - /// - public static class ExpressionExtensions - { - #region HttpContext - - /// - /// 返回请求上下文 - /// - /// - /// - /// - /// - /// - public static async Task Cof_SendResponse(this HttpContext context, System.Net.HttpStatusCode code, string message, string ContentType = "text/html;charset=utf-8") - { - context.Response.StatusCode = (int)code; - context.Response.ContentType = ContentType; - await context.Response.WriteAsync(message); - } - - #endregion - - #region ICaching - - /// - /// 从缓存里取数据,如果不存在则执行查询方法, - /// - /// 类型 - /// ICaching - /// 键值 - /// 查询方法 - /// 有效期 单位分钟/param> - /// - public static T Cof_GetICaching(this ICaching cache, string key, Func GetFun, int timeSpanMin) where T : class - { - var obj = cache.Get(key); - obj = GetFun(); - if (obj == null) - { - obj = GetFun(); - cache.Set(key, obj, timeSpanMin); - } - - return obj as T; - } - - /// - /// 异步从缓存里取数据,如果不存在则执行查询方法 - /// - /// 类型 - /// ICaching - /// 键值 - /// 查询方法 - /// 有效期 单位分钟/param> - /// - public static async Task Cof_AsyncGetICaching(this ICaching cache, string key, Func> GetFun, int timeSpanMin) where T : class - { - var obj = cache.Get(key); - if (obj == null) - { - obj = await GetFun(); - cache.Set(key, obj, timeSpanMin); - } - - return obj as T; - } - - #endregion - - #region 常用扩展方法 - - public static bool Cof_CheckAvailable(this IEnumerable Tlist) - { - return Tlist != null && Tlist.Count() > 0; - } - - /// - /// 调用内部方法 - /// - public static Expression Call(this Expression instance, string methodName, params Expression[] arguments) - { - if (instance.Type == typeof(string)) - return Expression.Call(instance, instance.Type.GetMethod(methodName, new Type[] { typeof(string) }), arguments); //修复string contains 出现的问题 Ambiguous match found. - else - return Expression.Call(instance, instance.Type.GetMethod(methodName), arguments); - } - - /// - /// 获取内部成员 - /// - public static Expression Property(this Expression expression, string propertyName) - { - // Todo:左边条件如果是dynamic, - // 则Expression.Property无法获取子内容 - // 报错在这里,由于expression内的对象为Object,所以无法解析到 - // var x = (expression as IQueryable).ElementType; - var exp = Expression.Property(expression, propertyName); - if (exp.Type.IsGenericType && exp.Type.GetGenericTypeDefinition() == typeof(Nullable<>)) - { - return Expression.Convert(exp, exp.Type.GetGenericArguments()[0]); - } - - return exp; - } - - /// - /// 转Lambda - /// - public static Expression ToLambda(this Expression body, - params ParameterExpression[] parameters) - { - return Expression.Lambda(body, parameters); - } - - #endregion - - #region 常用运算符 [ > , >= , == , < , <= , != , || , && ] - - /// - /// && - /// - public static Expression AndAlso(this Expression left, Expression right) - { - return Expression.AndAlso(left, right); - } - - /// - /// || - /// - public static Expression OrElse(this Expression left, Expression right) - { - return Expression.OrElse(left, right); - } - - /// - /// Contains - /// - public static Expression Contains(this Expression left, Expression right) - { - return left.Call("Contains", right); - } - - public static Expression StartContains(this Expression left, Expression right) - { - return left.Call("StartsWith", right); - } - - public static Expression EndContains(this Expression left, Expression right) - { - return left.Call("EndsWith", right); - } - - /// - /// > - /// - public static Expression GreaterThan(this Expression left, Expression right) - { - return Expression.GreaterThan(left, right); - } - - /// - /// >= - /// - public static Expression GreaterThanOrEqual(this Expression left, Expression right) - { - return Expression.GreaterThanOrEqual(left, right); - } - - /// - /// < - /// - public static Expression LessThan(this Expression left, Expression right) - { - return Expression.LessThan(left, right); - } - - /// - /// <= - /// - public static Expression LessThanOrEqual(this Expression left, Expression right) - { - return Expression.LessThanOrEqual(left, right); - } - - /// - /// == - /// - public static Expression Equal(this Expression left, Expression right) - { - return Expression.Equal(left, right); - } - - /// - /// != - /// - public static Expression NotEqual(this Expression left, Expression right) - { - return Expression.NotEqual(left, right); - } - - #endregion - } + /// + /// Linq扩展 + /// + public static class ExpressionExtensions + { + #region HttpContext + + /// + /// 返回请求上下文 + /// + /// + /// + /// + /// + /// + public static async Task Cof_SendResponse(this HttpContext context, System.Net.HttpStatusCode code, string message, + string ContentType = "text/html;charset=utf-8") + { + context.Response.StatusCode = (int) code; + context.Response.ContentType = ContentType; + await context.Response.WriteAsync(message); + } + + #endregion + + #region ICaching + + /// + /// 从缓存里取数据,如果不存在则执行查询方法, + /// + /// 类型 + /// ICaching + /// 键值 + /// 查询方法 + /// 有效期 单位分钟/param> + /// + public static T Cof_GetICaching(this ICaching cache, string key, Func GetFun, int timeSpanMin) where T : class + { + var obj = cache.Get(key); + if (obj == null) + { + obj = GetFun(); + cache.Set(key, obj, TimeSpan.FromMinutes(timeSpanMin)); + } + + return obj; + } + + /// + /// 异步从缓存里取数据,如果不存在则执行查询方法 + /// + /// 类型 + /// ICaching + /// 键值 + /// 查询方法 + /// 有效期 单位分钟/param> + /// + public static async Task Cof_AsyncGetICaching(this ICaching cache, string key, Func> GetFun, int timeSpanMin) where T : class + { + var obj = await cache.GetAsync(key); + if (obj == null) + { + obj = await GetFun(); + cache.Set(key, obj, TimeSpan.FromMinutes(timeSpanMin)); + } + + return obj; + } + + #endregion + + #region 常用扩展方法 + + public static bool Cof_CheckAvailable(this IEnumerable Tlist) + { + return Tlist != null && Tlist.Count() > 0; + } + + /// + /// 调用内部方法 + /// + public static Expression Call(this Expression instance, string methodName, params Expression[] arguments) + { + if (instance.Type == typeof(string)) + return Expression.Call(instance, instance.Type.GetMethod(methodName, new Type[] {typeof(string)}), + arguments); //修复string contains 出现的问题 Ambiguous match found. + else + return Expression.Call(instance, instance.Type.GetMethod(methodName), arguments); + } + + /// + /// 获取内部成员 + /// + public static Expression Property(this Expression expression, string propertyName) + { + // Todo:左边条件如果是dynamic, + // 则Expression.Property无法获取子内容 + // 报错在这里,由于expression内的对象为Object,所以无法解析到 + // var x = (expression as IQueryable).ElementType; + var exp = Expression.Property(expression, propertyName); + if (exp.Type.IsGenericType && exp.Type.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + return Expression.Convert(exp, exp.Type.GetGenericArguments()[0]); + } + + return exp; + } + + /// + /// 转Lambda + /// + public static Expression ToLambda(this Expression body, + params ParameterExpression[] parameters) + { + return Expression.Lambda(body, parameters); + } + + #endregion + + #region 常用运算符 [ > , >= , == , < , <= , != , || , && ] + + /// + /// && + /// + public static Expression AndAlso(this Expression left, Expression right) + { + return Expression.AndAlso(left, right); + } + + /// + /// || + /// + public static Expression OrElse(this Expression left, Expression right) + { + return Expression.OrElse(left, right); + } + + /// + /// Contains + /// + public static Expression Contains(this Expression left, Expression right) + { + return left.Call("Contains", right); + } + + public static Expression StartContains(this Expression left, Expression right) + { + return left.Call("StartsWith", right); + } + + public static Expression EndContains(this Expression left, Expression right) + { + return left.Call("EndsWith", right); + } + + /// + /// > + /// + public static Expression GreaterThan(this Expression left, Expression right) + { + return Expression.GreaterThan(left, right); + } + + /// + /// >= + /// + public static Expression GreaterThanOrEqual(this Expression left, Expression right) + { + return Expression.GreaterThanOrEqual(left, right); + } + + /// + /// < + /// + public static Expression LessThan(this Expression left, Expression right) + { + return Expression.LessThan(left, right); + } + + /// + /// <= + /// + public static Expression LessThanOrEqual(this Expression left, Expression right) + { + return Expression.LessThanOrEqual(left, right); + } + + /// + /// == + /// + public static Expression Equal(this Expression left, Expression right) + { + return Expression.Equal(left, right); + } + + /// + /// != + /// + public static Expression NotEqual(this Expression left, Expression right) + { + return Expression.NotEqual(left, right); + } + + #endregion + } } \ No newline at end of file diff --git a/Blog.Core.Common/MemoryCache/ICachingProvider.cs b/Blog.Core.Common/MemoryCache/ICachingProvider.cs deleted file mode 100644 index e6a06529..00000000 --- a/Blog.Core.Common/MemoryCache/ICachingProvider.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Blog.Core.Common -{ - /// - /// 简单的缓存接口,只有查询和添加,以后会进行扩展 - /// - public interface ICaching - { - object Get(string cacheKey); - - void Set(string cacheKey, object cacheValue, int timeSpan); - } -} diff --git a/Blog.Core.Common/MemoryCache/MemoryCaching.cs b/Blog.Core.Common/MemoryCache/MemoryCaching.cs deleted file mode 100644 index fc9a60c9..00000000 --- a/Blog.Core.Common/MemoryCache/MemoryCaching.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Microsoft.Extensions.Caching.Memory; -using System; - -namespace Blog.Core.Common -{ - /// - /// 实例化缓存接口ICaching - /// - public class MemoryCaching : ICaching - { - //引用Microsoft.Extensions.Caching.Memory;这个和.net 还是不一样,没有了Httpruntime了 - private readonly IMemoryCache _cache; - //还是通过构造函数的方法,获取 - public MemoryCaching(IMemoryCache cache) - { - _cache = cache; - } - - public object Get(string cacheKey) - { - return _cache.Get(cacheKey); - } - - public void Set(string cacheKey, object cacheValue,int timeSpan) - { - _cache.Set(cacheKey, cacheValue, TimeSpan.FromSeconds(timeSpan * 60)); - } - } - -} diff --git a/Blog.Core.Common/Option/RedisOptions.cs b/Blog.Core.Common/Option/RedisOptions.cs new file mode 100644 index 00000000..27326595 --- /dev/null +++ b/Blog.Core.Common/Option/RedisOptions.cs @@ -0,0 +1,24 @@ +using Blog.Core.Common.Option.Core; + +namespace Blog.Core.Common.Option; + +/// +/// 缓存配置选项 +/// +public sealed class RedisOptions : IConfigurableOptions +{ + /// + /// 是否启用 + /// + public bool Enable { get; set; } + + /// + /// Redis连接 + /// + public string ConnectionString { get; set; } + + /// + /// 键值前缀 + /// + public string InstanceName { get; set; } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/AOP/BlogCacheAOP.cs b/Blog.Core.Extensions/AOP/BlogCacheAOP.cs index a3a52f58..d872bab5 100644 --- a/Blog.Core.Extensions/AOP/BlogCacheAOP.cs +++ b/Blog.Core.Extensions/AOP/BlogCacheAOP.cs @@ -1,6 +1,8 @@ -using Blog.Core.Common; +using System; +using Blog.Core.Common; using Castle.DynamicProxy; using System.Linq; +using Blog.Core.Common.Caches; namespace Blog.Core.AOP { @@ -28,7 +30,7 @@ public override void Intercept(IInvocation invocation) //获取自定义缓存键 var cacheKey = CustomCacheKey(invocation); //根据key获取相应的缓存值 - var cacheValue = _cache.Get(cacheKey); + var cacheValue = _cache.Get(cacheKey); if (cacheValue != null) { //将当前获取到的缓存值,赋值给当前执行方法 @@ -40,7 +42,7 @@ public override void Intercept(IInvocation invocation) //存入缓存 if (!string.IsNullOrWhiteSpace(cacheKey)) { - _cache.Set(cacheKey, invocation.ReturnValue, qCachingAttribute.AbsoluteExpiration); + _cache.Set(cacheKey, invocation.ReturnValue, TimeSpan.FromMinutes(qCachingAttribute.AbsoluteExpiration)); } } else diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index 1dfbbc48..b0c2408d 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -15,6 +15,7 @@ + diff --git a/Blog.Core.Extensions/Redis/IRedisBasketRepository.cs b/Blog.Core.Extensions/Redis/IRedisBasketRepository.cs index ca1827fd..08effd1b 100644 --- a/Blog.Core.Extensions/Redis/IRedisBasketRepository.cs +++ b/Blog.Core.Extensions/Redis/IRedisBasketRepository.cs @@ -8,6 +8,7 @@ namespace Blog.Core.Extensions /// /// Redis缓存接口 /// + [Obsolete("普通缓存考虑直接使用ICaching,如果要使用Redis队列等还是使用此类")] public interface IRedisBasketRepository { diff --git a/Blog.Core.Extensions/Redis/RedisBasketRepository.cs b/Blog.Core.Extensions/Redis/RedisBasketRepository.cs index 31c7a030..7f1356e2 100644 --- a/Blog.Core.Extensions/Redis/RedisBasketRepository.cs +++ b/Blog.Core.Extensions/Redis/RedisBasketRepository.cs @@ -9,6 +9,7 @@ namespace Blog.Core.Extensions { + [Obsolete("普通缓存考虑直接使用ICaching,如果要使用Redis队列等还是使用此类")] public class RedisBasketRepository : IRedisBasketRepository { private readonly ILogger _logger; diff --git a/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs b/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs new file mode 100644 index 00000000..3744acd9 --- /dev/null +++ b/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs @@ -0,0 +1,45 @@ +using Blog.Core.Common; +using Blog.Core.Common.Caches; +using Blog.Core.Common.Option; +using Microsoft.Extensions.DependencyInjection; +using StackExchange.Redis; + +namespace Blog.Core.Extensions.ServiceExtensions; + +public static class CacheSetup +{ + /// + /// 统一注册缓存 + /// + /// + public static void AddCacheSetup(this IServiceCollection services) + { + var cacheOptions = App.GetOptions(); + if (cacheOptions.Enable) + { + //使用Redis + services.AddStackExchangeRedisCache(options => + { + options.Configuration = cacheOptions.ConnectionString; + if (!cacheOptions.InstanceName.IsNullOrEmpty()) options.InstanceName = cacheOptions.InstanceName; + }); + + services.AddTransient(); + // 配置启动Redis服务,虽然可能影响项目启动速度,但是不能在运行的时候报错,所以是合理的 + services.AddSingleton(sp => + { + //获取连接字符串 + var configuration = ConfigurationOptions.Parse(cacheOptions.ConnectionString, true); + configuration.ResolveDns = true; + return ConnectionMultiplexer.Connect(configuration); + }); + } + else + { + //使用内存 + services.AddDistributedMemoryCache(); + } + + services.AddSingleton(); + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs b/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs deleted file mode 100644 index b9b4d7b3..00000000 --- a/Blog.Core.Extensions/ServiceExtensions/HttpRuntimeCache.cs +++ /dev/null @@ -1,67 +0,0 @@ -using Microsoft.Extensions.Caching.Memory; -using SqlSugar; -using System; -using System.Collections; -using System.Collections.Generic; -using System.Reflection; - -namespace Blog.Core.Extensions -{ - /// - /// 实现SqlSugar的ICacheService接口 - /// - public class SqlSugarMemoryCacheService : ICacheService - { - protected IMemoryCache _memoryCache; - public SqlSugarMemoryCacheService(IMemoryCache memoryCache) - { - _memoryCache = memoryCache; - } - public void Add(string key, V value) - { - _memoryCache.Set(key, value); - } - public void Add(string key, V value, int cacheDurationInSeconds) - { - _memoryCache.Set(key, value, DateTimeOffset.Now.AddSeconds(cacheDurationInSeconds)); - } - public bool ContainsKey(string key) - { - return _memoryCache.TryGetValue(key, out _); - } - - public V Get(string key) - { - return _memoryCache.Get(key); - } - - public IEnumerable GetAllKey() - { - const BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic; - var entries = _memoryCache.GetType().GetField("_entries", flags).GetValue(_memoryCache); - var cacheItems = entries as IDictionary; - var keys = new List(); - if (cacheItems == null) return keys; - foreach (DictionaryEntry cacheItem in cacheItems) - { - keys.Add(cacheItem.Key.ToString()); - } - return keys; - } - - public V GetOrCreate(string cacheKey, Func create, int cacheDurationInSeconds = int.MaxValue) - { - if (!_memoryCache.TryGetValue(cacheKey, out V value)) - { - value = create(); - _memoryCache.Set(cacheKey, value, DateTime.Now.AddSeconds(cacheDurationInSeconds)); - } - return value; - } - - public void Remove(string key) - { - _memoryCache.Remove(key); - } - } -} diff --git a/Blog.Core.Extensions/ServiceExtensions/MemoryCacheSetup.cs b/Blog.Core.Extensions/ServiceExtensions/MemoryCacheSetup.cs deleted file mode 100644 index 0e489681..00000000 --- a/Blog.Core.Extensions/ServiceExtensions/MemoryCacheSetup.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Blog.Core.Common; -using Microsoft.Extensions.Caching.Memory; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -using System; - -namespace Blog.Core.Extensions -{ - /// - /// Memory缓存 启动服务 - /// - public static class MemoryCacheSetup - { - public static void AddMemoryCacheSetup(this IServiceCollection services) - { - if (services == null) throw new ArgumentNullException(nameof(services)); - - services.AddScoped(); - services.AddSingleton(factory => - { - var value = factory.GetRequiredService>(); - var cache = new MemoryCache(value); - return cache; - }); - } - } -} diff --git a/Blog.Core.Extensions/ServiceExtensions/RedisCacheSetup.cs b/Blog.Core.Extensions/ServiceExtensions/RedisCacheSetup.cs deleted file mode 100644 index e070cbd6..00000000 --- a/Blog.Core.Extensions/ServiceExtensions/RedisCacheSetup.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Blog.Core.Common; -using Microsoft.Extensions.DependencyInjection; -using StackExchange.Redis; -using System; - -namespace Blog.Core.Extensions -{ - /// - /// Redis缓存 启动服务 - /// - public static class RedisCacheSetup - { - public static void AddRedisCacheSetup(this IServiceCollection services) - { - if (services == null) throw new ArgumentNullException(nameof(services)); - - services.AddTransient(); - - // 配置启动Redis服务,虽然可能影响项目启动速度,但是不能在运行的时候报错,所以是合理的 - services.AddSingleton(sp => - { - //获取连接字符串 - string redisConfiguration = AppSettings.app(new string[] { "Redis", "ConnectionString" }); - - var configuration = ConfigurationOptions.Parse(redisConfiguration, true); - - configuration.ResolveDns = true; - - return ConnectionMultiplexer.Connect(configuration); - }); - - } - } -} diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 4ac2d2e8..dd5c02b3 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -10,6 +10,7 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using Blog.Core.Common.Caches; namespace Blog.Core.Extensions { @@ -57,6 +58,7 @@ public static void AddSqlsugarSetup(this IServiceCollection services) // 自定义特性 ConfigureExternalServices = new ConfigureExternalServices() { + DataInfoCacheService = new SqlSugarCacheService(), EntityService = (property, column) => { if (column.IsPrimarykey && property.PropertyType == typeof(int)) @@ -83,19 +85,11 @@ public static void AddSqlsugarSetup(this IServiceCollection services) { throw new ApplicationException("未配置Log库连接"); } - - + // SqlSugarScope是线程安全,可使用单例注入 // 参考:https://www.donet5.com/Home/Doc?typeId=1181 services.AddSingleton(o => { - var memoryCache = o.GetRequiredService(); - - foreach (var config in BaseDBConfig.AllConfigs) - { - config.ConfigureExternalServices.DataInfoCacheService = new SqlSugarMemoryCacheService(memoryCache); - } - return new SqlSugarScope(BaseDBConfig.AllConfigs, db => { BaseDBConfig.ValidConfig.ForEach(config => diff --git a/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs b/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs index 88181bc3..b00db95d 100644 --- a/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs +++ b/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; using Blog.Core.Common; +using Blog.Core.Common.Caches; using Blog.Core.Common.Helper; using Nacos.V2; using Newtonsoft.Json.Linq; diff --git a/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs b/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs index 289f0aae..888d2dc7 100644 --- a/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs +++ b/Blog.Core.Serilog/Utility/SerilogRequestUtility.cs @@ -8,64 +8,66 @@ namespace Blog.Core.Serilog.Utility; public class SerilogRequestUtility { - public const string HttpMessageTemplate = - "HTTP {RequestMethod} {RequestPath} QueryString:{QueryString} Body:{Body} responded {StatusCode} in {Elapsed:0.0000} ms"; + public const string HttpMessageTemplate = + "HTTP {RequestMethod} {RequestPath} QueryString:{QueryString} Body:{Body} responded {StatusCode} in {Elapsed:0.0000} ms"; - private static readonly List _ignoreUrl = new() - { - "/job", - }; + private static readonly List _ignoreUrl = new() + { + "/job", + }; - private static LogEventLevel DefaultGetLevel(HttpContext ctx, - double _, - Exception? ex) - { - return ex is null && ctx.Response.StatusCode <= 499 ? LogEventLevel.Information : LogEventLevel.Error; - } + private static LogEventLevel DefaultGetLevel(HttpContext ctx, + double _, + Exception? ex) + { + return ex is null && ctx.Response.StatusCode <= 499 ? LogEventLevel.Information : LogEventLevel.Error; + } - public static LogEventLevel GetRequestLevel(HttpContext ctx, double _, Exception? ex) => - ex is null && ctx.Response.StatusCode <= 499 ? IgnoreRequest(ctx) : LogEventLevel.Error; + public static LogEventLevel GetRequestLevel(HttpContext ctx, double _, Exception? ex) => + ex is null && ctx.Response.StatusCode <= 499 ? IgnoreRequest(ctx) : LogEventLevel.Error; - private static LogEventLevel IgnoreRequest(HttpContext ctx) - { - var path = ctx.Request.Path.Value; - if (path.IsNullOrEmpty()) - { - return LogEventLevel.Information; - } + private static LogEventLevel IgnoreRequest(HttpContext ctx) + { + var path = ctx.Request.Path.Value; + if (path.IsNullOrEmpty()) + { + return LogEventLevel.Information; + } - return _ignoreUrl.Any(s => path.StartsWith(s)) ? LogEventLevel.Verbose : LogEventLevel.Information; - } + return _ignoreUrl.Any(s => path.StartsWith(s)) ? LogEventLevel.Verbose : LogEventLevel.Information; + } - /// - /// 从Request中增加附属属性 - /// - /// - /// - public static void EnrichFromRequest(IDiagnosticContext diagnosticContext, HttpContext httpContext) - { - var request = httpContext.Request; + /// + /// 从Request中增加附属属性 + /// + /// + /// + public static void EnrichFromRequest(IDiagnosticContext diagnosticContext, HttpContext httpContext) + { + var request = httpContext.Request; - diagnosticContext.Set("RequestHost", request.Host); - diagnosticContext.Set("RequestScheme", request.Scheme); - diagnosticContext.Set("Protocol", request.Protocol); - diagnosticContext.Set("RequestIp", httpContext.GetRequestIp()); + diagnosticContext.Set("RequestHost", request.Host); + diagnosticContext.Set("RequestScheme", request.Scheme); + diagnosticContext.Set("Protocol", request.Protocol); + diagnosticContext.Set("RequestIp", httpContext.GetRequestIp()); - if (request.Method == HttpMethods.Get) - { - diagnosticContext.Set("QueryString", request.QueryString.HasValue ? request.QueryString.Value : string.Empty); - } - else - { - diagnosticContext.Set("QueryString", request.QueryString.HasValue ? request.QueryString.Value : string.Empty); - diagnosticContext.Set("Body", request.ContentLength > 0 ? request.GetRequestBody() : string.Empty); - } - diagnosticContext.Set("ContentType", httpContext.Response.ContentType); + if (request.Method == HttpMethods.Get) + { + diagnosticContext.Set("QueryString", request.QueryString.HasValue ? request.QueryString.Value : string.Empty); + diagnosticContext.Set("Body", string.Empty); + } + else + { + diagnosticContext.Set("QueryString", request.QueryString.HasValue ? request.QueryString.Value : string.Empty); + diagnosticContext.Set("Body", request.ContentLength > 0 ? request.GetRequestBody() : string.Empty); + } - var endpoint = httpContext.GetEndpoint(); - if (endpoint != null) - { - diagnosticContext.Set("EndpointName", endpoint.DisplayName); - } - } + diagnosticContext.Set("ContentType", httpContext.Response.ContentType); + + var endpoint = httpContext.GetEndpoint(); + if (endpoint != null) + { + diagnosticContext.Set("EndpointName", endpoint.DisplayName); + } + } } \ No newline at end of file From 1f35642400667046aaca2b9ef8ae9ac552996712 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Thu, 1 Jun 2023 17:58:46 +0800 Subject: [PATCH 275/382] =?UTF-8?q?=F0=9F=8E=A8=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=A4=9A=E4=BD=99=E7=9A=84=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Program.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 4311c97c..74bcd311 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -95,7 +95,6 @@ builder.Services.Configure(x => x.AllowSynchronousIO = true) .Configure(x => x.AllowSynchronousIO = true); -builder.Services.AddDistributedMemoryCache(); builder.Services.AddSession(); builder.Services.AddHttpPollySetup(); builder.Services.AddControllers(o => From 4e23f086542b3dbe29e02e8b0036119de28d91db Mon Sep 17 00:00:00 2001 From: Nine Date: Fri, 2 Jun 2023 14:11:09 +0800 Subject: [PATCH 276/382] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmini-profiler=20?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=B8=8D=E4=B8=80=E8=87=B4=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E4=B8=80=E4=BA=9Bswagger=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E6=9D=83=E9=99=90=E5=B0=8F=E9=94=81=EF=BC=8C?= =?UTF-8?q?=E6=9D=83=E9=99=90=E8=AE=A4=E8=AF=81=E6=8C=89=E9=92=AE..?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/index.html | 103 ++++++++++++++++++++++++++++++++++----- 1 file changed, 92 insertions(+), 11 deletions(-) diff --git a/Blog.Core.Api/index.html b/Blog.Core.Api/index.html index b0092a62..609a60cf 100644 --- a/Blog.Core.Api/index.html +++ b/Blog.Core.Api/index.html @@ -1,8 +1,6 @@  - + @@ -10,14 +8,25 @@ - + %(DocumentTitle) + %(HeadContent) @@ -95,10 +123,16 @@ From e9b4531ff8bfa0393dd4247376177c6cdea9d930 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 2 Jun 2023 16:34:07 +0800 Subject: [PATCH 277/382] Update index.html --- Blog.Core.Api/index.html | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/Blog.Core.Api/index.html b/Blog.Core.Api/index.html index 609a60cf..388d79ad 100644 --- a/Blog.Core.Api/index.html +++ b/Blog.Core.Api/index.html @@ -178,25 +178,27 @@ //修改权限小锁样式,由于这个单页面没去获取token,采取直接修改样式的方法 $(document).ready(function () { - document.querySelector('.auth-wrapper svg use').href.baseVal = '#locked' - let divList = document.querySelectorAll('.opblock-tag') - for (let div of divList) { - //debugger - div.addEventListener('click', function () { - setTimeout(() => { - //修改锁状态 locked 为已认证token unlocked为未认证 - let list = document.querySelectorAll(' .unlocked svg use') - for (let item of list) { - item.href.baseVal = '#locked' - } - //修改锁颜色 locked 黑色 unlocked灰色 - let btnlist = document.querySelectorAll('.authorization__btn') - for (let item of btnlist) { - item.classList = 'authorization__btn locked' - } - }, 0) - }) - } + setTimeout(() => { + document.querySelector('.auth-wrapper svg use').href.baseVal = '#locked' + let divList = document.querySelectorAll('.opblock-tag') + for (let div of divList) { + //debugger + div.addEventListener('click', function () { + setTimeout(() => { + //修改锁状态 locked 为已认证token unlocked为未认证 + let list = document.querySelectorAll(' .unlocked svg use') + for (let item of list) { + item.href.baseVal = '#locked' + } + //修改锁颜色 locked 黑色 unlocked灰色 + let btnlist = document.querySelectorAll('.authorization__btn') + for (let item of btnlist) { + item.classList = 'authorization__btn locked' + } + }, 0) + }) + } + }, 500) }); }, 1000) // 文档logo From 2c74a716ca342f20359e181a27ce0f2f4bbfcd11 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 5 Jun 2023 11:55:23 +0800 Subject: [PATCH 278/382] Update swg-login.html --- Blog.Core.Api/wwwroot/swg-login.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/wwwroot/swg-login.html b/Blog.Core.Api/wwwroot/swg-login.html index 93653957..d361cdef 100644 --- a/Blog.Core.Api/wwwroot/swg-login.html +++ b/Blog.Core.Api/wwwroot/swg-login.html @@ -15,7 +15,7 @@
    欢迎使用!
    -
    使用用户账号登录
    +
    使用真实用户账号登录,测试账号: blogadmin/blogadmin
    From 96e21474bcb66c7ffc1379f39c0da06081841788 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Wed, 7 Jun 2023 15:25:13 +0800 Subject: [PATCH 279/382] =?UTF-8?q?=F0=9F=8E=A8=E4=BC=98=E5=8C=96=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E6=B3=A8=E5=85=A5=E3=80=81=E7=A7=BB=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Redis/IRedisCacheManager.cs | 29 --- .../Redis/RedisCacheManager.cs | 165 ------------------ .../ServiceExtensions/CacheSetup.cs | 73 ++++---- 3 files changed, 38 insertions(+), 229 deletions(-) delete mode 100644 Blog.Core.Extensions/Redis/IRedisCacheManager.cs delete mode 100644 Blog.Core.Extensions/Redis/RedisCacheManager.cs diff --git a/Blog.Core.Extensions/Redis/IRedisCacheManager.cs b/Blog.Core.Extensions/Redis/IRedisCacheManager.cs deleted file mode 100644 index 56cd4f84..00000000 --- a/Blog.Core.Extensions/Redis/IRedisCacheManager.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; - -namespace Blog.Core.Extensions -{ - /// - /// Redis缓存接口 - /// - public interface IRedisCacheManager - { - - //获取 Reids 缓存值 - string GetValue(string key); - - //获取值,并序列化 - TEntity Get(string key); - - //保存 - void Set(string key, object value, TimeSpan cacheTime); - - //判断是否存在 - bool Get(string key); - - //移除某一个缓存值 - void Remove(string key); - - //全部清除 - void Clear(); - } -} diff --git a/Blog.Core.Extensions/Redis/RedisCacheManager.cs b/Blog.Core.Extensions/Redis/RedisCacheManager.cs deleted file mode 100644 index 0e5d7819..00000000 --- a/Blog.Core.Extensions/Redis/RedisCacheManager.cs +++ /dev/null @@ -1,165 +0,0 @@ -using Blog.Core.Common; -using StackExchange.Redis; -using System; - -namespace Blog.Core.Extensions -{ - public class RedisCacheManager : IRedisCacheManager - { - - private readonly string redisConnenctionString; - - public volatile ConnectionMultiplexer redisConnection; - - private readonly object redisConnectionLock = new object(); - - public RedisCacheManager() - { - string redisConfiguration = AppSettings.app(new string[] { "AppSettings", "RedisCachingAOP", "ConnectionString" });//获取连接字符串 - - if (string.IsNullOrWhiteSpace(redisConfiguration)) - { - throw new ArgumentException("redis config is empty", nameof(redisConfiguration)); - } - this.redisConnenctionString = redisConfiguration; - this.redisConnection = GetRedisConnection(); - } - - /// - /// 核心代码,获取连接实例 - /// 通过双if 夹lock的方式,实现单例模式 - /// - /// - private ConnectionMultiplexer GetRedisConnection() - { - //如果已经连接实例,直接返回 - if (this.redisConnection != null && this.redisConnection.IsConnected) - { - return this.redisConnection; - } - //加锁,防止异步编程中,出现单例无效的问题 - lock (redisConnectionLock) - { - if (this.redisConnection != null) - { - //释放redis连接 - this.redisConnection.Dispose(); - } - try - { - var config = new ConfigurationOptions - { - AbortOnConnectFail = false, - AllowAdmin = true, - ConnectTimeout = 15000,//改成15s - SyncTimeout = 5000, - //Password = "Pwd",//Redis数据库密码 - EndPoints = { redisConnenctionString }// connectionString 为IP:Port 如”192.168.2.110:6379” - }; - this.redisConnection = ConnectionMultiplexer.Connect(config); - } - catch (Exception) - { - throw new Exception("Redis服务未启用,请开启该服务,并且请注意端口号,本项目使用的的6319,而且我的是没有设置密码。"); - } - } - return this.redisConnection; - } - /// - /// 清除 - /// - public void Clear() - { - foreach (var endPoint in this.GetRedisConnection().GetEndPoints()) - { - var server = this.GetRedisConnection().GetServer(endPoint); - foreach (var key in server.Keys()) - { - redisConnection.GetDatabase().KeyDelete(key); - } - } - } - /// - /// 判断是否存在 - /// - /// - /// - public bool Get(string key) - { - return redisConnection.GetDatabase().KeyExists(key); - } - - /// - /// 查询 - /// - /// - /// - public string GetValue(string key) - { - return redisConnection.GetDatabase().StringGet(key); - } - - /// - /// 获取 - /// - /// - /// - /// - public TEntity Get(string key) - { - var value = redisConnection.GetDatabase().StringGet(key); - if (value.HasValue) - { - //需要用的反序列化,将Redis存储的Byte[],进行反序列化 - return SerializeHelper.Deserialize(value); - } - else - { - return default(TEntity); - } - } - - /// - /// 移除 - /// - /// - public void Remove(string key) - { - redisConnection.GetDatabase().KeyDelete(key); - } - /// - /// 设置 - /// - /// - /// - /// - public void Set(string key, object value, TimeSpan cacheTime) - { - if (value != null) - { - if (value is string cacheValue) - { - // 字符串无需序列化 - redisConnection.GetDatabase().StringSet(key, cacheValue, cacheTime); - } - else - { - //序列化,将object值生成RedisValue - redisConnection.GetDatabase().StringSet(key, SerializeHelper.Serialize(value), cacheTime); - } - } - } - - /// - /// 增加/修改 - /// - /// - /// - /// - public bool SetValue(string key, byte[] value) - { - return redisConnection.GetDatabase().StringSet(key, value, TimeSpan.FromSeconds(120)); - } - - } -} diff --git a/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs b/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs index 3744acd9..579da785 100644 --- a/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs @@ -1,4 +1,5 @@ -using Blog.Core.Common; +using System.Threading.Tasks; +using Blog.Core.Common; using Blog.Core.Common.Caches; using Blog.Core.Common.Option; using Microsoft.Extensions.DependencyInjection; @@ -8,38 +9,40 @@ namespace Blog.Core.Extensions.ServiceExtensions; public static class CacheSetup { - /// - /// 统一注册缓存 - /// - /// - public static void AddCacheSetup(this IServiceCollection services) - { - var cacheOptions = App.GetOptions(); - if (cacheOptions.Enable) - { - //使用Redis - services.AddStackExchangeRedisCache(options => - { - options.Configuration = cacheOptions.ConnectionString; - if (!cacheOptions.InstanceName.IsNullOrEmpty()) options.InstanceName = cacheOptions.InstanceName; - }); - - services.AddTransient(); - // 配置启动Redis服务,虽然可能影响项目启动速度,但是不能在运行的时候报错,所以是合理的 - services.AddSingleton(sp => - { - //获取连接字符串 - var configuration = ConfigurationOptions.Parse(cacheOptions.ConnectionString, true); - configuration.ResolveDns = true; - return ConnectionMultiplexer.Connect(configuration); - }); - } - else - { - //使用内存 - services.AddDistributedMemoryCache(); - } - - services.AddSingleton(); - } + /// + /// 统一注册缓存 + /// + /// + public static void AddCacheSetup(this IServiceCollection services) + { + var cacheOptions = App.GetOptions(); + if (cacheOptions.Enable) + { + // 配置启动Redis服务,虽然可能影响项目启动速度,但是不能在运行的时候报错,所以是合理的 + services.AddSingleton(sp => + { + //获取连接字符串 + var configuration = ConfigurationOptions.Parse(cacheOptions.ConnectionString, true); + configuration.ResolveDns = true; + return ConnectionMultiplexer.Connect(configuration); + }); + services.AddSingleton(p => p.GetService() as ConnectionMultiplexer); + //使用Redis + services.AddStackExchangeRedisCache(options => + { + options.ConnectionMultiplexerFactory = () => Task.FromResult(App.GetService()); + if (!cacheOptions.InstanceName.IsNullOrEmpty()) options.InstanceName = cacheOptions.InstanceName; + }); + + services.AddTransient(); + } + else + { + //使用内存 + services.AddMemoryCache(); + services.AddDistributedMemoryCache(); + } + + services.AddSingleton(); + } } \ No newline at end of file From da6a7546aa56b49c90b19ef23f10b136d82f3213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E6=8B=BE=E7=8E=96?= Date: Fri, 9 Jun 2023 17:55:20 +0800 Subject: [PATCH 280/382] =?UTF-8?q?Update=20index.html=20=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E6=8E=A5=E5=8F=A3=E5=90=8D=E7=A7=B0=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E5=A4=8D=E5=88=B6=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E5=8E=BB=E9=99=A4=E6=8E=A5=E5=8F=A3border=E9=80=89?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E9=BB=91=E8=89=B2=E8=BE=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/index.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Api/index.html b/Blog.Core.Api/index.html index 388d79ad..eca0b424 100644 --- a/Blog.Core.Api/index.html +++ b/Blog.Core.Api/index.html @@ -17,6 +17,9 @@ %(HeadContent) - + From 3a25de3fc30f91fde762353f072cc5d1b995bc45 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Sat, 10 Jun 2023 11:23:54 +0800 Subject: [PATCH 281/382] =?UTF-8?q?=E2=9C=A8=20=E4=BC=98=E5=8C=96Redis?= =?UTF-8?q?=E6=B3=A8=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs b/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs index 579da785..eb810f52 100644 --- a/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/CacheSetup.cs @@ -30,7 +30,7 @@ public static void AddCacheSetup(this IServiceCollection services) //使用Redis services.AddStackExchangeRedisCache(options => { - options.ConnectionMultiplexerFactory = () => Task.FromResult(App.GetService()); + options.ConnectionMultiplexerFactory = () => Task.FromResult(App.GetService(false)); if (!cacheOptions.InstanceName.IsNullOrEmpty()) options.InstanceName = cacheOptions.InstanceName; }); From 7ea8d3565d8888ca8a66d716ab890a753cdd013f Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 10 Jun 2023 11:27:27 +0800 Subject: [PATCH 282/382] Update appsettings.json --- Blog.Core.Api/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index d220a034..73637e19 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -18,7 +18,7 @@ }, "AllowedHosts": "*", "Redis": { - "Enable": true, + "Enable": false, "ConnectionString": "127.0.0.1:6379", "InstanceName": "" //前缀 }, From 70134714669c1bcf0fedf179f034d09b1859aaa6 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Sat, 10 Jun 2023 11:53:12 +0800 Subject: [PATCH 283/382] =?UTF-8?q?=F0=9F=90=9B=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=B7=B2=E7=9F=A5=E7=9A=84DynamicLambda?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在双引号后又空格会解析错误 --- Blog.Core.Common/Helper/DynamicLinqFactory.cs | 1 + Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/Blog.Core.Common/Helper/DynamicLinqFactory.cs b/Blog.Core.Common/Helper/DynamicLinqFactory.cs index 7d45bbd2..248b18ff 100644 --- a/Blog.Core.Common/Helper/DynamicLinqFactory.cs +++ b/Blog.Core.Common/Helper/DynamicLinqFactory.cs @@ -348,6 +348,7 @@ public static string FormatString(string str) } else { + if (i == firstIndex) continue; if (i == str.Length - 1 || str[i + 1].IsNullOrEmpty()) { lastIndex = i; diff --git a/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs b/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs index 8f6ad096..d67a67e0 100644 --- a/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs +++ b/Blog.Core.Tests/Common_Test/DynamicLambdaTest.cs @@ -66,6 +66,7 @@ public async void Get_Blogs_DynamicTest() await TestConditions("bId=2"); await TestConditions("bId in (1,2,3,4,5)"); await TestConditions("bId in (1,2,3,4,5)|| bUpdateTime>=\"2019-01-01 01:01:01\""); + await TestConditions("btitle like \" 测试数据\""); await TestConditions("btitle like \"测试数据\" && bId>0"); await TestConditions("btitle like \"测试!@#$%^&*()_+|}{\":<>?LP\"数据\" && bId>0"); await TestConditions("btitle like \"测试!@+)(*()_&%^&^$^%$IUYWIQOJVLXKZM>?Z<>??LP\"数据\" && bId>0"); From 04d3cd4865e2c018202cc07c99ba6ab3d2ec7c9b Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Sat, 10 Jun 2023 11:59:11 +0800 Subject: [PATCH 284/382] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20=E5=8D=87=E7=BA=A7?= =?UTF-8?q?SqlSugar=E4=BE=9D=E8=B5=96=205.1.3.49=20->=205.1.4.83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化Aop Sql日志记录 原有的UtilMethods.GetSqlString 有较大的性能影响,参数越多影响越大 使用最新的建议的 UtilMethods.GetNativeSql 参考 https://www.donet5.com/home/doc?masterId=1&typeId=1204 --- Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 2 +- Blog.Core.Model/Blog.Core.Model.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs index 3a595e67..f165ef43 100644 --- a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -26,7 +26,7 @@ public static void OnLogExecuting(ISqlSugarClient sqlSugarScopeProvider, string using (LogContextExtension.Create.SqlAopPushProperty(sqlSugarScopeProvider)) { Log.Information("------------------ \r\n ConnId:[{ConnId}]【SQL语句】: \r\n {Sql}", - config.ConfigId, UtilMethods.GetSqlString(config.DbType, sql, p)); + config.ConfigId, UtilMethods.GetNativeSql( sql, p)); } } } diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index e66c5c5b..ac851de2 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -16,7 +16,7 @@ - + From 0ddaa35bed9ba0536688f356c1766972380c8cf4 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Mon, 12 Jun 2023 10:52:11 +0800 Subject: [PATCH 285/382] =?UTF-8?q?=F0=9F=8E=A8=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E9=9B=86=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extensions/RuntimeExtension.cs | 130 +++++++++--------- 1 file changed, 66 insertions(+), 64 deletions(-) diff --git a/Blog.Core.Common/Extensions/RuntimeExtension.cs b/Blog.Core.Common/Extensions/RuntimeExtension.cs index c4ddb0c8..d66f1183 100644 --- a/Blog.Core.Common/Extensions/RuntimeExtension.cs +++ b/Blog.Core.Common/Extensions/RuntimeExtension.cs @@ -10,75 +10,77 @@ namespace Blog.Core.Common.Extensions; public static class RuntimeExtension { - /// - /// 获取项目程序集,排除所有的系统程序集(Microsoft.***、System.***等)、Nuget下载包 - /// - /// - public static IList GetAllAssemblies() - { - var list = new List(); - var deps = DependencyContext.Default; - var libs = deps.CompileLibraries.Where(lib => !lib.Serviceable && lib.Type != "package"); //排除所有的系统程序集、Nuget下载包 - foreach (var lib in libs) - { - try - { - var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(lib.Name)); - list.Add(assembly); - } - catch (Exception e) - { - Log.Debug(e, "GetAllAssemblies Exception:{ex}", e.Message); - } - } - return list; - } + /// + /// 获取项目程序集,排除所有的系统程序集(Microsoft.***、System.***等)、Nuget下载包 + /// + /// + public static IList GetAllAssemblies() + { + var list = new List(); + var deps = DependencyContext.Default; + //只加载项目中的程序集 + var libs = deps.CompileLibraries.Where(lib => !lib.Serviceable && lib.Type == "project"); //排除所有的系统程序集、Nuget下载包 + foreach (var lib in libs) + { + try + { + var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(lib.Name)); + list.Add(assembly); + } + catch (Exception e) + { + Log.Debug(e, "GetAllAssemblies Exception:{ex}", e.Message); + } + } - public static Assembly GetAssembly(string assemblyName) - { - return GetAllAssemblies().FirstOrDefault(assembly => assembly.FullName.Contains(assemblyName)); - } + return list; + } - public static IList GetAllTypes() - { - var list = new List(); - foreach (var assembly in GetAllAssemblies()) - { - var typeInfos = assembly.DefinedTypes; - foreach (var typeInfo in typeInfos) - { - list.Add(typeInfo.AsType()); - } - } + public static Assembly GetAssembly(string assemblyName) + { + return GetAllAssemblies().FirstOrDefault(assembly => assembly.FullName.Contains(assemblyName)); + } - return list; - } + public static IList GetAllTypes() + { + var list = new List(); + foreach (var assembly in GetAllAssemblies()) + { + var typeInfos = assembly.DefinedTypes; + foreach (var typeInfo in typeInfos) + { + list.Add(typeInfo.AsType()); + } + } - public static IList GetTypesByAssembly(string assemblyName) - { - var list = new List(); - var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(assemblyName)); - var typeInfos = assembly.DefinedTypes; - foreach (var typeInfo in typeInfos) - { - list.Add(typeInfo.AsType()); - } + return list; + } - return list; - } + public static IList GetTypesByAssembly(string assemblyName) + { + var list = new List(); + var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(assemblyName)); + var typeInfos = assembly.DefinedTypes; + foreach (var typeInfo in typeInfos) + { + list.Add(typeInfo.AsType()); + } - public static Type GetImplementType(string typeName, Type baseInterfaceType) - { - return GetAllTypes().FirstOrDefault(t => - { - if (t.Name == typeName && - t.GetTypeInfo().GetInterfaces().Any(b => b.Name == baseInterfaceType.Name)) - { - var typeInfo = t.GetTypeInfo(); - return typeInfo.IsClass && !typeInfo.IsAbstract && !typeInfo.IsGenericType; - } + return list; + } - return false; - }); - } + public static Type GetImplementType(string typeName, Type baseInterfaceType) + { + return GetAllTypes().FirstOrDefault(t => + { + if (t.Name == typeName && + t.GetTypeInfo().GetInterfaces().Any(b => b.Name == baseInterfaceType.Name)) + { + var typeInfo = t.GetTypeInfo(); + return typeInfo.IsClass && !typeInfo.IsAbstract && !typeInfo.IsGenericType; + } + + return false; + }); + } } \ No newline at end of file From 60cade83d4da87642e70720ad42be85de4cc85e6 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Mon, 12 Jun 2023 11:16:45 +0800 Subject: [PATCH 286/382] =?UTF-8?q?=F0=9F=8E=A8=20=E4=BC=98=E5=8C=96AOP?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Common/Caches/Caching.cs | 32 ++++-- Blog.Core.Common/Caches/ICaching.cs | 5 +- Blog.Core.Extensions/AOP/BlogCacheAOP.cs | 122 ++++++++++++++--------- 3 files changed, 104 insertions(+), 55 deletions(-) diff --git a/Blog.Core.Common/Caches/Caching.cs b/Blog.Core.Common/Caches/Caching.cs index e7b4ab07..36e4ce3a 100644 --- a/Blog.Core.Common/Caches/Caching.cs +++ b/Blog.Core.Common/Caches/Caching.cs @@ -142,13 +142,13 @@ public async Task> GetAllCacheKeysAsync() var res = await _cache.GetStringAsync(CacheConst.KeyAll); return string.IsNullOrWhiteSpace(res) ? null : JsonConvert.DeserializeObject>(res); } - + public T Get(string cacheKey) { var res = _cache.Get(cacheKey); return res == null ? default : JsonConvert.DeserializeObject(Encoding.UTF8.GetString(res)); } - + /// /// 获取缓存 /// @@ -161,6 +161,18 @@ public async Task GetAsync(string cacheKey) return res == null ? default : JsonConvert.DeserializeObject(Encoding.UTF8.GetString(res)); } + public object Get(Type type, string cacheKey) + { + var res = _cache.Get(cacheKey); + return res == null ? default : JsonConvert.DeserializeObject(Encoding.UTF8.GetString(res), type); + } + + public async Task GetAsync(Type type, string cacheKey) + { + var res = await _cache.GetAsync(cacheKey); + return res == null ? default : JsonConvert.DeserializeObject(Encoding.UTF8.GetString(res), type); + } + public string GetString(string cacheKey) { return _cache.GetString(cacheKey); @@ -175,7 +187,7 @@ public async Task GetStringAsync(string cacheKey) { return await _cache.GetStringAsync(cacheKey); } - + public void Remove(string key) { _cache.Remove(key); @@ -214,7 +226,10 @@ public async Task RemoveAllAsync() public void Set(string cacheKey, T value, TimeSpan? expire = null) { - _cache.Set(cacheKey, GetBytes(value), expire == null ? new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6)} : new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = expire}); + _cache.Set(cacheKey, GetBytes(value), + expire == null + ? new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6)} + : new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = expire}); AddCacheKey(cacheKey); } @@ -227,7 +242,8 @@ public void Set(string cacheKey, T value, TimeSpan? expire = null) /// public async Task SetAsync(string cacheKey, T value) { - await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6)}); + await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), + new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6)}); await AddCacheKeyAsync(cacheKey); } @@ -241,7 +257,8 @@ public async Task SetAsync(string cacheKey, T value) /// public async Task SetAsync(string cacheKey, T value, TimeSpan expire) { - await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = expire}); + await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value)), + new DistributedCacheEntryOptions() {AbsoluteExpirationRelativeToNow = expire}); await AddCacheKeyAsync(cacheKey); } @@ -251,6 +268,7 @@ public void SetPermanent(string cacheKey, T value) _cache.Set(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value))); AddCacheKey(cacheKey); } + public async Task SetPermanentAsync(string cacheKey, T value) { await _cache.SetAsync(cacheKey, Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(value))); @@ -293,7 +311,7 @@ public async Task SetStringAsync(string cacheKey, string value, TimeSpan expire) await AddCacheKeyAsync(cacheKey); } - + /// /// 缓存最大角色数据范围 diff --git a/Blog.Core.Common/Caches/ICaching.cs b/Blog.Core.Common/Caches/ICaching.cs index f856aeb6..9ce92632 100644 --- a/Blog.Core.Common/Caches/ICaching.cs +++ b/Blog.Core.Common/Caches/ICaching.cs @@ -25,10 +25,13 @@ public interface ICaching List GetAllCacheKeys(); Task> GetAllCacheKeysAsync(); - + T Get(string cacheKey); Task GetAsync(string cacheKey); + object Get(Type type, string cacheKey); + Task GetAsync(Type type, string cacheKey); + string GetString(string cacheKey); Task GetStringAsync(string cacheKey); diff --git a/Blog.Core.Extensions/AOP/BlogCacheAOP.cs b/Blog.Core.Extensions/AOP/BlogCacheAOP.cs index d872bab5..d3d91f2a 100644 --- a/Blog.Core.Extensions/AOP/BlogCacheAOP.cs +++ b/Blog.Core.Extensions/AOP/BlogCacheAOP.cs @@ -2,54 +2,82 @@ using Blog.Core.Common; using Castle.DynamicProxy; using System.Linq; +using System.Threading.Tasks; using Blog.Core.Common.Caches; namespace Blog.Core.AOP { - /// - /// 面向切面的缓存使用 - /// - public class BlogCacheAOP : CacheAOPbase - { - //通过注入的方式,把缓存操作接口通过构造函数注入 - private readonly ICaching _cache; - public BlogCacheAOP(ICaching cache) - { - _cache = cache; - } - - //Intercept方法是拦截的关键所在,也是IInterceptor接口中的唯一定义 - public override void Intercept(IInvocation invocation) - { - var method = invocation.MethodInvocationTarget ?? invocation.Method; - //对当前方法的特性验证 - //如果需要验证 - var CachingAttribute = method.GetCustomAttributes(true).FirstOrDefault(x => x.GetType() == typeof(CachingAttribute)); - if (CachingAttribute is CachingAttribute qCachingAttribute) - { - //获取自定义缓存键 - var cacheKey = CustomCacheKey(invocation); - //根据key获取相应的缓存值 - var cacheValue = _cache.Get(cacheKey); - if (cacheValue != null) - { - //将当前获取到的缓存值,赋值给当前执行方法 - invocation.ReturnValue = cacheValue; - return; - } - //去执行当前的方法 - invocation.Proceed(); - //存入缓存 - if (!string.IsNullOrWhiteSpace(cacheKey)) - { - _cache.Set(cacheKey, invocation.ReturnValue, TimeSpan.FromMinutes(qCachingAttribute.AbsoluteExpiration)); - } - } - else - { - invocation.Proceed();//直接执行被拦截方法 - } - } - } - -} + /// + /// 面向切面的缓存使用 + /// + public class BlogCacheAOP : CacheAOPbase + { + //通过注入的方式,把缓存操作接口通过构造函数注入 + private readonly ICaching _cache; + + public BlogCacheAOP(ICaching cache) + { + _cache = cache; + } + + //Intercept方法是拦截的关键所在,也是IInterceptor接口中的唯一定义 + public override void Intercept(IInvocation invocation) + { + var method = invocation.MethodInvocationTarget ?? invocation.Method; + //对当前方法的特性验证 + //如果需要验证 + var CachingAttribute = method.GetCustomAttributes(true).FirstOrDefault(x => x.GetType() == typeof(CachingAttribute)); + if (CachingAttribute is CachingAttribute qCachingAttribute) + { + //获取自定义缓存键 + var cacheKey = CustomCacheKey(invocation); + if (_cache.Exists(cacheKey)) + { + //将当前获取到的缓存值,赋值给当前执行方法 + Type returnType; + if (typeof(Task).IsAssignableFrom(method.ReturnType)) + { + returnType = method.ReturnType.GenericTypeArguments.FirstOrDefault(); + } + else + { + returnType = method.ReturnType; + } + + //根据key获取相应的缓存值 + dynamic cacheValue = _cache.Get(returnType, cacheKey); + invocation.ReturnValue = (typeof(Task).IsAssignableFrom(method.ReturnType)) ? Task.FromResult(cacheValue) : cacheValue; + return; + } + + //去执行当前的方法 + invocation.Proceed(); + //存入缓存 + if (!string.IsNullOrWhiteSpace(cacheKey)) + { + object response; + + //Type type = invocation.ReturnValue?.GetType(); + var type = invocation.Method.ReturnType; + if (typeof(Task).IsAssignableFrom(type)) + { + var resultProperty = type.GetProperty("Result"); + response = resultProperty?.GetValue(invocation.ReturnValue); + } + else + { + response = invocation.ReturnValue; + } + + if (response == null) response = string.Empty; + + _cache.Set(cacheKey, response, TimeSpan.FromMinutes(qCachingAttribute.AbsoluteExpiration)); + } + } + else + { + invocation.Proceed(); //直接执行被拦截方法 + } + } + } +} \ No newline at end of file From c1ce9e59728b8f0592fa7bd100466fd2c393ad1b Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Mon, 12 Jun 2023 11:34:39 +0800 Subject: [PATCH 287/382] =?UTF-8?q?=F0=9F=8E=A8=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=8E=9F=E6=9C=89=E7=9A=84RedisCacheAop=20=E4=B8=8ECacheAop?= =?UTF-8?q?=E6=9C=89=E4=BA=9B=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/ValuesController.cs | 2 +- Blog.Core.Api/appsettings.json | 5 +- Blog.Core.Extensions/AOP/BlogCacheAOP.cs | 4 +- Blog.Core.Extensions/AOP/BlogRedisCacheAOP.cs | 89 ------------------- .../Redis/IRedisBasketRepository.cs | 3 +- .../ServiceExtensions/AppConfigSetup.cs | 22 ++--- .../AutofacModuleRegister.cs | 8 +- Blog.Core.Services/AdvertisementServices.cs | 2 +- Blog.Core.Tests/appsettings.json | 5 +- 9 files changed, 14 insertions(+), 126 deletions(-) delete mode 100644 Blog.Core.Extensions/AOP/BlogRedisCacheAOP.cs diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 03b37556..ae5cc81f 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -164,7 +164,7 @@ await _blogArticleServices.QuerySql( // 测试模拟异常,全局异常过滤器拦截 var i = 0; - var d = 3 / i; + // var d = 3 / i; // 测试 AOP 缓存 diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 73637e19..def53cfc 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -41,10 +41,7 @@ "SubscriptionClientName": "Blog.Core" }, "AppSettings": { - "RedisCachingAOP": { - "Enabled": false - }, - "MemoryCachingAOP": { + "CachingAOP": { "Enabled": true }, "LogToDb": true, diff --git a/Blog.Core.Extensions/AOP/BlogCacheAOP.cs b/Blog.Core.Extensions/AOP/BlogCacheAOP.cs index d3d91f2a..1d52a2de 100644 --- a/Blog.Core.Extensions/AOP/BlogCacheAOP.cs +++ b/Blog.Core.Extensions/AOP/BlogCacheAOP.cs @@ -61,8 +61,8 @@ public override void Intercept(IInvocation invocation) var type = invocation.Method.ReturnType; if (typeof(Task).IsAssignableFrom(type)) { - var resultProperty = type.GetProperty("Result"); - response = resultProperty?.GetValue(invocation.ReturnValue); + dynamic result = invocation.ReturnValue; + response = result.Result; } else { diff --git a/Blog.Core.Extensions/AOP/BlogRedisCacheAOP.cs b/Blog.Core.Extensions/AOP/BlogRedisCacheAOP.cs deleted file mode 100644 index 9bc7f7f7..00000000 --- a/Blog.Core.Extensions/AOP/BlogRedisCacheAOP.cs +++ /dev/null @@ -1,89 +0,0 @@ -using Blog.Core.Common; -using Blog.Core.Extensions; -using Castle.DynamicProxy; -using System; -using System.Linq; -using System.Threading.Tasks; - -namespace Blog.Core.AOP -{ - /// - /// 面向切面的缓存使用 - /// - public class BlogRedisCacheAOP : CacheAOPbase - { - //通过注入的方式,把缓存操作接口通过构造函数注入 - private readonly IRedisBasketRepository _cache; - public BlogRedisCacheAOP(IRedisBasketRepository cache) - { - _cache = cache; - } - - //Intercept方法是拦截的关键所在,也是IInterceptor接口中的唯一定义 - //代码已经合并 ,学习pr流程 - public override void Intercept(IInvocation invocation) - { - var method = invocation.MethodInvocationTarget ?? invocation.Method; - if (method.ReturnType == typeof(void) || method.ReturnType == typeof(Task)) - { - invocation.Proceed(); - return; - } - //对当前方法的特性验证 - var qCachingAttribute = method.GetCustomAttributes(true).FirstOrDefault(x => x.GetType() == typeof(CachingAttribute)) as CachingAttribute; - - if (qCachingAttribute != null) - { - //获取自定义缓存键 - var cacheKey = CustomCacheKey(invocation); - //注意是 string 类型,方法GetValue - var cacheValue = _cache.GetValue(cacheKey).Result; - if (cacheValue != null) - { - //将当前获取到的缓存值,赋值给当前执行方法 - Type returnType; - if (typeof(Task).IsAssignableFrom(method.ReturnType)) - { - returnType = method.ReturnType.GenericTypeArguments.FirstOrDefault(); - } - else - { - returnType = method.ReturnType; - } - - dynamic _result = Newtonsoft.Json.JsonConvert.DeserializeObject(cacheValue, returnType); - invocation.ReturnValue = (typeof(Task).IsAssignableFrom(method.ReturnType)) ? Task.FromResult(_result) : _result; - return; - } - //去执行当前的方法 - invocation.Proceed(); - - //存入缓存 - if (!string.IsNullOrWhiteSpace(cacheKey)) - { - object response; - - //Type type = invocation.ReturnValue?.GetType(); - var type = invocation.Method.ReturnType; - if (typeof(Task).IsAssignableFrom(type)) - { - var resultProperty = type.GetProperty("Result"); - response = resultProperty.GetValue(invocation.ReturnValue); - } - else - { - response = invocation.ReturnValue; - } - if (response == null) response = string.Empty; - - _cache.Set(cacheKey, response, TimeSpan.FromMinutes(qCachingAttribute.AbsoluteExpiration)).Wait(); - } - } - else - { - invocation.Proceed();//直接执行被拦截方法 - } - } - } - -} diff --git a/Blog.Core.Extensions/Redis/IRedisBasketRepository.cs b/Blog.Core.Extensions/Redis/IRedisBasketRepository.cs index 08effd1b..85408160 100644 --- a/Blog.Core.Extensions/Redis/IRedisBasketRepository.cs +++ b/Blog.Core.Extensions/Redis/IRedisBasketRepository.cs @@ -1,6 +1,7 @@ using StackExchange.Redis; using System; using System.Collections.Generic; +using System.ComponentModel; using System.Threading.Tasks; namespace Blog.Core.Extensions @@ -8,7 +9,7 @@ namespace Blog.Core.Extensions /// /// Redis缓存接口 /// - [Obsolete("普通缓存考虑直接使用ICaching,如果要使用Redis队列等还是使用此类")] + [Description("普通缓存考虑直接使用ICaching,如果要使用Redis队列等还是使用此类")] public interface IRedisBasketRepository { diff --git a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs index 0336567f..d7a1f90d 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs @@ -40,25 +40,14 @@ public static void AddAppConfigSetup(this IServiceCollection services, IHostEnvi { Console.WriteLine($"Current authorization scheme: " + (Permissions.IsUseIds4 ? "Ids4" : "JWT")); } - - // Redis缓存AOP - if (!AppSettings.app(new string[] { "AppSettings", "RedisCachingAOP", "Enabled" }).ObjToBool()) - { - Console.WriteLine($"Redis Caching AOP: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"Redis Caching AOP: True"); - } - - // 内存缓存AOP - if (!AppSettings.app(new string[] { "AppSettings", "MemoryCachingAOP", "Enabled" }).ObjToBool()) + // 缓存AOP + if (!AppSettings.app(new string[] { "AppSettings", "CachingAOP", "Enabled" }).ObjToBool()) { - Console.WriteLine($"Memory Caching AOP: False"); + Console.WriteLine($"Caching AOP: False"); } else { - ConsoleHelper.WriteSuccessLine($"Memory Caching AOP: True"); + ConsoleHelper.WriteSuccessLine($"Caching AOP: True"); } // 服务日志AOP @@ -259,8 +248,7 @@ public static void AddAppTableConfigSetup(this IServiceCollection services, IHos List aopInfos = new() { - new string[] { "Redis缓存AOP", AppSettings.app("AppSettings", "RedisCachingAOP", "Enabled") }, - new string[] { "内存缓存AOP", AppSettings.app("AppSettings", "MemoryCachingAOP", "Enabled") }, + new string[] { "缓存AOP", AppSettings.app("AppSettings", "CachingAOP", "Enabled") }, new string[] { "服务日志AOP", AppSettings.app("AppSettings", "LogAOP", "Enabled") }, new string[] { "事务AOP", AppSettings.app("AppSettings", "TranAOP", "Enabled") }, new string[] { "Sql执行AOP", AppSettings.app("AppSettings", "SqlAOP", "Enabled") }, diff --git a/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs b/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs index 4351962b..4836c402 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs @@ -39,13 +39,7 @@ protected override void Load(ContainerBuilder builder) // AOP 开关,如果想要打开指定的功能,只需要在 appsettigns.json 对应对应 true 就行。 var cacheType = new List(); - if (AppSettings.app(new string[] { "AppSettings", "RedisCachingAOP", "Enabled" }).ObjToBool()) - { - builder.RegisterType(); - cacheType.Add(typeof(BlogRedisCacheAOP)); - } - - if (AppSettings.app(new string[] { "AppSettings", "MemoryCachingAOP", "Enabled" }).ObjToBool()) + if (AppSettings.app(new string[] { "AppSettings", "CachingAOP", "Enabled" }).ObjToBool()) { builder.RegisterType(); cacheType.Add(typeof(BlogCacheAOP)); diff --git a/Blog.Core.Services/AdvertisementServices.cs b/Blog.Core.Services/AdvertisementServices.cs index c95f4142..348048e8 100644 --- a/Blog.Core.Services/AdvertisementServices.cs +++ b/Blog.Core.Services/AdvertisementServices.cs @@ -13,7 +13,7 @@ public void ReturnExp() int a = 1; int b = 0; - int c = a / b; + // int c = a / b; } //public IAdvertisementRepository dal = new AdvertisementRepository(); diff --git a/Blog.Core.Tests/appsettings.json b/Blog.Core.Tests/appsettings.json index 23ab9c65..8c0305c7 100644 --- a/Blog.Core.Tests/appsettings.json +++ b/Blog.Core.Tests/appsettings.json @@ -45,10 +45,7 @@ "SubscriptionClientName": "Blog.Core" }, "AppSettings": { - "RedisCachingAOP": { - "Enabled": false - }, - "MemoryCachingAOP": { + "CachingAOP": { "Enabled": true }, "LogAOP": { From a338c56e7ae43d657c23bc3374aba4332ea86c56 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Mon, 12 Jun 2023 17:45:15 +0800 Subject: [PATCH 288/382] =?UTF-8?q?=E2=9C=A8=F0=9F=8E=A8=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=90=9E=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98=E3=80=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96HttpResponse=20Body=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.处理掉中间件过度try catch 吞掉异常,建议直接往上抛不要过度try 2.优雅处理HttpResponse读取问题,原生[HttpResponseStream]实际上只是个包装类,内部包装了[HttpResponsePipeWriter]来进行写入响应数据,由此封装一个[FluentHttpResponseStream],内部扩展使用[MemoryStream]来读取 --- Blog.Core.Api/Program.cs | 1 + .../Extensions/HttpResponseExceptions.cs | 34 ++ .../Https/FluentHttpResponseStream.cs | 75 +++ Blog.Core.Extensions/AOP/BlogLogAOP.cs | 486 +++++++++--------- .../Middlewares/ExceptionHandlerMiddleware.cs | 89 ++-- .../FluentResponseBodyMiddleware.cs | 21 + .../Middlewares/IpLogMiddleware.cs | 241 +++++---- .../Middlewares/RecordAccessLogsMiddleware.cs | 262 +++++----- .../Middlewares/RequRespLogMiddleware.cs | 245 +++++---- .../Redis/RedisBasketRepository.cs | 3 +- 10 files changed, 784 insertions(+), 673 deletions(-) create mode 100644 Blog.Core.Common/Extensions/HttpResponseExceptions.cs create mode 100644 Blog.Core.Common/Https/FluentHttpResponseStream.cs create mode 100644 Blog.Core.Extensions/Middlewares/FluentResponseBodyMiddleware.cs diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 74bcd311..67d4524e 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -132,6 +132,7 @@ var app = builder.Build(); app.ConfigureApplication(); app.UseApplicationSetup(); +app.UseResponseBodyRead(); if (app.Environment.IsDevelopment()) { diff --git a/Blog.Core.Common/Extensions/HttpResponseExceptions.cs b/Blog.Core.Common/Extensions/HttpResponseExceptions.cs new file mode 100644 index 00000000..b9d25f81 --- /dev/null +++ b/Blog.Core.Common/Extensions/HttpResponseExceptions.cs @@ -0,0 +1,34 @@ +using System; +using System.IO; +using Blog.Core.Common.Https; +using Microsoft.AspNetCore.Http; + +namespace Blog.Core.Common.Extensions; + +public static class HttpResponseExceptions +{ + public static string GetResponseBody(this HttpResponse response) + { + if (response is null) + { + return default; + } + + if (response.Body is FluentHttpResponseStream responseBody) + { + response.Body.Position = 0; + using StreamReader stream = new StreamReader(responseBody); + string body = stream.ReadToEnd(); + response.Body.Position = 0; + return body; + } + else + { + //原始HttpResponseStream 无法读取 + //实际上只是个包装类,内部使用了HttpResponsePipeWriter write + throw new ApplicationException("The response body is not a FluentHttpResponseStream"); + } + + return default; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/Https/FluentHttpResponseStream.cs b/Blog.Core.Common/Https/FluentHttpResponseStream.cs new file mode 100644 index 00000000..c668f47d --- /dev/null +++ b/Blog.Core.Common/Https/FluentHttpResponseStream.cs @@ -0,0 +1,75 @@ +using System; +using System.IO; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http.Features; + +namespace Blog.Core.Common.Https; + +/// +/// 扩展 HttpResponseStream
    +/// 原始[HttpResponseStream]实际上只是个包装类,内部包装了[HttpResponsePipeWriter]来进行写入响应数据 +/// +public class FluentHttpResponseStream : Stream +{ + private readonly IHttpBodyControlFeature _bodyControl; + private readonly IHttpResponseBodyFeature _pipeWriter; + private readonly MemoryStream _stream = new(); + + public FluentHttpResponseStream(IHttpResponseBodyFeature pipeWriter, IHttpBodyControlFeature bodyControl) + { + _pipeWriter = pipeWriter; + _bodyControl = bodyControl; + } + + public override bool CanRead => _stream.CanRead; + + public override bool CanSeek => _stream.CanSeek; + + public override bool CanWrite => _stream.CanWrite; + + public override long Length => _stream.Length; + + public override long Position { get => _stream.Position; set => _stream.Position = value; } + + public override void Flush() + { + if (!_bodyControl.AllowSynchronousIO) + { + throw new InvalidOperationException("SynchronousWritesDisallowed "); + } + _stream.Flush(); + } + + public override int Read(byte[] buffer, int offset, int count) + { + return _stream.Read(buffer, offset, count); + } + + public override long Seek(long offset, SeekOrigin origin) + { + return _stream.Seek(offset, origin); + } + + public override void SetLength(long value) + { + _stream.SetLength(value); + } + + public override void Write(byte[] buffer, int offset, int count) + { + WriteAsync(buffer, offset, count, default).GetAwaiter().GetResult(); + } + + public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) + { + _stream.Write(buffer, offset, count); + return _pipeWriter.Writer.WriteAsync(new ReadOnlyMemory(buffer, offset, count), cancellationToken).AsTask(); + } + + protected override void Dispose(bool disposing) + { + _stream.Dispose(); + base.Dispose(disposing); + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/AOP/BlogLogAOP.cs b/Blog.Core.Extensions/AOP/BlogLogAOP.cs index 29861578..09d798bf 100644 --- a/Blog.Core.Extensions/AOP/BlogLogAOP.cs +++ b/Blog.Core.Extensions/AOP/BlogLogAOP.cs @@ -13,271 +13,279 @@ namespace Blog.Core.AOP { - /// - /// 拦截器BlogLogAOP 继承IInterceptor接口 - /// - public class BlogLogAOP : IInterceptor - { - private readonly IHubContext _hubContext; - private readonly IHttpContextAccessor _accessor; + /// + /// 拦截器BlogLogAOP 继承IInterceptor接口 + /// + public class BlogLogAOP : IInterceptor + { + private readonly IHubContext _hubContext; + private readonly IHttpContextAccessor _accessor; - public BlogLogAOP(IHubContext hubContext, IHttpContextAccessor accessor) - { - _hubContext = hubContext; - _accessor = accessor; - } + public BlogLogAOP(IHubContext hubContext, IHttpContextAccessor accessor) + { + _hubContext = hubContext; + _accessor = accessor; + } - /// - /// 实例化IInterceptor唯一方法 - /// - /// 包含被拦截方法的信息 - public void Intercept(IInvocation invocation) - { - string UserName = _accessor.HttpContext?.User?.Identity?.Name; - string json; - try - { - json = JsonConvert.SerializeObject(invocation.Arguments); - } - catch (Exception ex) - { - json = "无法序列化,可能是兰姆达表达式等原因造成,按照框架优化代码" + ex.ToString(); - } - DateTime startTime = DateTime.Now; - AOPLogInfo apiLogAopInfo = new AOPLogInfo - { - RequestTime = startTime.ToString("yyyy-MM-dd hh:mm:ss fff"), - OpUserName = UserName, - RequestMethodName = invocation.Method.Name, - RequestParamsName = string.Join(", ", invocation.Arguments.Select(a => (a ?? "").ToString()).ToArray()), - ResponseJsonData = json - }; + /// + /// 实例化IInterceptor唯一方法 + /// + /// 包含被拦截方法的信息 + public void Intercept(IInvocation invocation) + { + string UserName = _accessor.HttpContext?.User?.Identity?.Name; + string json; + try + { + json = JsonConvert.SerializeObject(invocation.Arguments); + } + catch (Exception ex) + { + json = "无法序列化,可能是兰姆达表达式等原因造成,按照框架优化代码" + ex.ToString(); + } - //测试异常记录 - //Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")); + DateTime startTime = DateTime.Now; + AOPLogInfo apiLogAopInfo = new AOPLogInfo + { + RequestTime = startTime.ToString("yyyy-MM-dd hh:mm:ss fff"), + OpUserName = UserName, + RequestMethodName = invocation.Method.Name, + RequestParamsName = string.Join(", ", invocation.Arguments.Select(a => (a ?? "").ToString()).ToArray()), + ResponseJsonData = json + }; - //记录被拦截方法信息的日志信息 - //var dataIntercept = "" + - // $"【当前操作用户】:{ UserName} \r\n" + - // $"【当前执行方法】:{ invocation.Method.Name} \r\n" + - // $"【携带的参数有】: {string.Join(", ", invocation.Arguments.Select(a => (a ?? "").ToString()).ToArray())} \r\n"; + //测试异常记录 + //Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff")); - try - { - MiniProfiler.Current.Step($"执行Service方法:{invocation.Method.Name}() -> "); - //在被拦截的方法执行完毕后 继续执行当前方法,注意是被拦截的是异步的 - invocation.Proceed(); + //记录被拦截方法信息的日志信息 + //var dataIntercept = "" + + // $"【当前操作用户】:{ UserName} \r\n" + + // $"【当前执行方法】:{ invocation.Method.Name} \r\n" + + // $"【携带的参数有】: {string.Join(", ", invocation.Arguments.Select(a => (a ?? "").ToString()).ToArray())} \r\n"; + try + { + MiniProfiler.Current.Step($"执行Service方法:{invocation.Method.Name}() -> "); + //在被拦截的方法执行完毕后 继续执行当前方法,注意是被拦截的是异步的 + invocation.Proceed(); - // 异步获取异常,先执行 - if (IsAsyncMethod(invocation.Method)) - { - #region 方案一 - //Wait task execution and modify return value - if (invocation.Method.ReturnType == typeof(Task)) - { - invocation.ReturnValue = InternalAsyncHelper.AwaitTaskWithPostActionAndFinally( - (Task)invocation.ReturnValue, - async () => await SuccessAction(invocation, apiLogAopInfo, startTime),/*成功时执行*/ - ex => - { - LogEx(ex, apiLogAopInfo); - }); - } - //Task - else - { - invocation.ReturnValue = InternalAsyncHelper.CallAwaitTaskWithPostActionAndFinallyAndGetResult( - invocation.Method.ReturnType.GenericTypeArguments[0], - invocation.ReturnValue, - //async () => await SuccessAction(invocation, dataIntercept),/*成功时执行*/ - async (o) => await SuccessAction(invocation, apiLogAopInfo, startTime, o),/*成功时执行*/ - ex => - { - LogEx(ex, apiLogAopInfo); - }); - } - #endregion + // 异步获取异常,先执行 + if (IsAsyncMethod(invocation.Method)) + { + #region 方案一 + //Wait task execution and modify return value + if (invocation.Method.ReturnType == typeof(Task)) + { + invocation.ReturnValue = InternalAsyncHelper.AwaitTaskWithPostActionAndFinally( + (Task) invocation.ReturnValue, + async () => await SuccessAction(invocation, apiLogAopInfo, startTime), /*成功时执行*/ + ex => + { + LogEx(ex, apiLogAopInfo); + }); + } + //Task + else + { + invocation.ReturnValue = InternalAsyncHelper.CallAwaitTaskWithPostActionAndFinallyAndGetResult( + invocation.Method.ReturnType.GenericTypeArguments[0], + invocation.ReturnValue, + //async () => await SuccessAction(invocation, dataIntercept),/*成功时执行*/ + async (o) => await SuccessAction(invocation, apiLogAopInfo, startTime, o), /*成功时执行*/ + ex => + { + LogEx(ex, apiLogAopInfo); + }); + } - // 如果方案一不行,试试这个方案 - //#region 方案二 + #endregion - //var type = invocation.Method.ReturnType; - //var resultProperty = type.GetProperty("Result"); - //DateTime endTime = DateTime.Now; - //string ResponseTime = (endTime - startTime).Milliseconds.ToString(); - //apiLogAopInfo.ResponseTime = endTime.ToString("yyyy-MM-dd hh:mm:ss fff"); - //apiLogAopInfo.ResponseIntervalTime = ResponseTime + "ms"; - //apiLogAopInfo.ResponseJsonData = JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue)); - ////dataIntercept += ($"【响应时间】:{ResponseTime}ms\r\n"); - ////dataIntercept += ($"【执行完成时间】:{endTime.ToString("yyyy-MM-dd hh:mm:ss fff")}\r\n"); - ////dataIntercept += ($"【执行完成结果】:{JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue))}\r\n"); + // 如果方案一不行,试试这个方案 + //#region 方案二 - //Parallel.For(0, 1, e => - //{ - // //LogLock.OutLogAOP("AOPLog", new string[] { dataIntercept }); - // LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString() + " - ResponseJsonDataType:" + type, JsonConvert.SerializeObject(apiLogAopInfo) }); - //}); + //var type = invocation.Method.ReturnType; + //var resultProperty = type.GetProperty("Result"); + //DateTime endTime = DateTime.Now; + //string ResponseTime = (endTime - startTime).Milliseconds.ToString(); + //apiLogAopInfo.ResponseTime = endTime.ToString("yyyy-MM-dd hh:mm:ss fff"); + //apiLogAopInfo.ResponseIntervalTime = ResponseTime + "ms"; + //apiLogAopInfo.ResponseJsonData = JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue)); - //#endregion - } - else - { - // 同步1 - string jsonResult; - try - { - jsonResult = JsonConvert.SerializeObject(invocation.ReturnValue); - } - catch (Exception ex) - { - jsonResult = "无法序列化,可能是兰姆达表达式等原因造成,按照框架优化代码" + ex.ToString(); - } - var type = invocation.Method.ReturnType; - var resultProperty = type.GetProperty("Result"); - DateTime endTime = DateTime.Now; - string ResponseTime = (endTime - startTime).Milliseconds.ToString(); - apiLogAopInfo.ResponseTime = endTime.ToString("yyyy-MM-dd hh:mm:ss fff"); - apiLogAopInfo.ResponseIntervalTime = ResponseTime + "ms"; - //apiLogAopInfo.ResponseJsonData = JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue)); - apiLogAopInfo.ResponseJsonData = jsonResult; - //dataIntercept += ($"【执行完成结果】:{jsonResult}"); - Parallel.For(0, 1, e => - { - //LogLock.OutLogAOP("AOPLog", new string[] { dataIntercept }); - LogLock.OutLogAOP("AOPLog", _accessor.HttpContext?.TraceIdentifier, new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); - }); - } - } - catch (Exception ex)// 同步2 - { - LogEx(ex, apiLogAopInfo); - } - if (AppSettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) - { - _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); - } - } + ////dataIntercept += ($"【响应时间】:{ResponseTime}ms\r\n"); + ////dataIntercept += ($"【执行完成时间】:{endTime.ToString("yyyy-MM-dd hh:mm:ss fff")}\r\n"); + ////dataIntercept += ($"【执行完成结果】:{JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue))}\r\n"); - private async Task SuccessAction(IInvocation invocation, AOPLogInfo apiLogAopInfo, DateTime startTime, object o = null) - { - //invocation.ReturnValue = o; - //var type = invocation.Method.ReturnType; - //if (typeof(Task).IsAssignableFrom(type)) - //{ - // //var resultProperty = type.GetProperty("Result"); - // //类型错误 都可以不要invocation参数,直接将o系列化保存到日记中 - // dataIntercept += ($"【执行完成结果】:{JsonConvert.SerializeObject(invocation.ReturnValue)}"); - //} - //else - //{ - // dataIntercept += ($"【执行完成结果】:{invocation.ReturnValue}"); - //} - DateTime endTime = DateTime.Now; - string ResponseTime = (endTime - startTime).Milliseconds.ToString(); - apiLogAopInfo.ResponseTime = endTime.ToString("yyyy-MM-dd hh:mm:ss fff"); - apiLogAopInfo.ResponseIntervalTime = ResponseTime + "ms"; - apiLogAopInfo.ResponseJsonData = JsonConvert.SerializeObject(o); + //Parallel.For(0, 1, e => + //{ + // //LogLock.OutLogAOP("AOPLog", new string[] { dataIntercept }); + // LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString() + " - ResponseJsonDataType:" + type, JsonConvert.SerializeObject(apiLogAopInfo) }); + //}); + //#endregion + } + else + { + // 同步1 + string jsonResult; + try + { + jsonResult = JsonConvert.SerializeObject(invocation.ReturnValue); + } + catch (Exception ex) + { + jsonResult = "无法序列化,可能是兰姆达表达式等原因造成,按照框架优化代码" + ex.ToString(); + } - await Task.Run(() => - { - Parallel.For(0, 1, e => - { - //LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); - LogLock.OutLogAOP("AOPLog", _accessor.HttpContext?.TraceIdentifier, new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) }); - }); - }); - } + var type = invocation.Method.ReturnType; + var resultProperty = type.GetProperty("Result"); + DateTime endTime = DateTime.Now; + string ResponseTime = (endTime - startTime).Milliseconds.ToString(); + apiLogAopInfo.ResponseTime = endTime.ToString("yyyy-MM-dd hh:mm:ss fff"); + apiLogAopInfo.ResponseIntervalTime = ResponseTime + "ms"; + //apiLogAopInfo.ResponseJsonData = JsonConvert.SerializeObject(resultProperty.GetValue(invocation.ReturnValue)); + apiLogAopInfo.ResponseJsonData = jsonResult; + //dataIntercept += ($"【执行完成结果】:{jsonResult}"); + Parallel.For(0, 1, e => + { + //LogLock.OutLogAOP("AOPLog", new string[] { dataIntercept }); + LogLock.OutLogAOP("AOPLog", _accessor.HttpContext?.TraceIdentifier, + new string[] {apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo)}); + }); + } + } + catch (Exception ex) // 同步2 + { + LogEx(ex, apiLogAopInfo); + throw; + } - private void LogEx(Exception ex, AOPLogInfo dataIntercept) - { - if (ex != null) - { - //执行的 service 中,收录异常 - MiniProfiler.Current.CustomTiming("Errors:", ex.Message); - //执行的 service 中,捕获异常 - //dataIntercept += ($"【执行完成结果】:方法中出现异常:{ex.Message + ex.InnerException}\r\n"); - AOPLogExInfo apiLogAopExInfo = new AOPLogExInfo - { - ExMessage = ex.Message, - InnerException = "InnerException-内部异常:\r\n" + (ex.InnerException == null ? "" : ex.InnerException.InnerException.ToString()) + ("\r\nStackTrace-堆栈跟踪:\r\n") + (ex.StackTrace == null ? "" : ex.StackTrace.ToString()), - ApiLogAopInfo = dataIntercept - }; - // 异常日志里有详细的堆栈信息 - Parallel.For(0, 1, e => - { - //LogLock.OutLogAOP("AOPLogEx", new string[] { dataIntercept }); - LogLock.OutLogAOP("AOPLogEx", _accessor.HttpContext?.TraceIdentifier, new string[] { apiLogAopExInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopExInfo) }); + if (AppSettings.app(new string[] {"Middleware", "SignalRSendLog", "Enabled"}).ObjToBool()) + { + _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait(); + } + } - }); - } - } + private async Task SuccessAction(IInvocation invocation, AOPLogInfo apiLogAopInfo, DateTime startTime, object o = null) + { + //invocation.ReturnValue = o; + //var type = invocation.Method.ReturnType; + //if (typeof(Task).IsAssignableFrom(type)) + //{ + // //var resultProperty = type.GetProperty("Result"); + // //类型错误 都可以不要invocation参数,直接将o系列化保存到日记中 + // dataIntercept += ($"【执行完成结果】:{JsonConvert.SerializeObject(invocation.ReturnValue)}"); + //} + //else + //{ + // dataIntercept += ($"【执行完成结果】:{invocation.ReturnValue}"); + //} + DateTime endTime = DateTime.Now; + string ResponseTime = (endTime - startTime).Milliseconds.ToString(); + apiLogAopInfo.ResponseTime = endTime.ToString("yyyy-MM-dd hh:mm:ss fff"); + apiLogAopInfo.ResponseIntervalTime = ResponseTime + "ms"; + apiLogAopInfo.ResponseJsonData = JsonConvert.SerializeObject(o); - public static bool IsAsyncMethod(MethodInfo method) - { - return ( - method.ReturnType == typeof(Task) || - (method.ReturnType.IsGenericType && method.ReturnType.GetGenericTypeDefinition() == typeof(Task<>)) - ); - } + await Task.Run(() => + { + Parallel.For(0, 1, e => + { + //LogLock.OutSql2Log("AOPLog", new string[] { JsonConvert.SerializeObject(apiLogAopInfo) }); + LogLock.OutLogAOP("AOPLog", _accessor.HttpContext?.TraceIdentifier, + new string[] {apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo)}); + }); + }); + } - } + private void LogEx(Exception ex, AOPLogInfo dataIntercept) + { + if (ex != null) + { + //执行的 service 中,收录异常 + MiniProfiler.Current.CustomTiming("Errors:", ex.Message); + //执行的 service 中,捕获异常 + //dataIntercept += ($"【执行完成结果】:方法中出现异常:{ex.Message + ex.InnerException}\r\n"); + AOPLogExInfo apiLogAopExInfo = new AOPLogExInfo + { + ExMessage = ex.Message, + InnerException = "InnerException-内部异常:\r\n" + (ex.InnerException == null ? "" : ex.InnerException.InnerException.ToString()) + + ("\r\nStackTrace-堆栈跟踪:\r\n") + (ex.StackTrace == null ? "" : ex.StackTrace.ToString()), + ApiLogAopInfo = dataIntercept + }; + // 异常日志里有详细的堆栈信息 + Parallel.For(0, 1, e => + { + //LogLock.OutLogAOP("AOPLogEx", new string[] { dataIntercept }); + LogLock.OutLogAOP("AOPLogEx", _accessor.HttpContext?.TraceIdentifier, + new string[] {apiLogAopExInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopExInfo)}); + }); + } + } - internal static class InternalAsyncHelper - { - public static async Task AwaitTaskWithPostActionAndFinally(Task actualReturnValue, Func postAction, Action finalAction) - { - Exception exception = null; + public static bool IsAsyncMethod(MethodInfo method) + { + return ( + method.ReturnType == typeof(Task) || + (method.ReturnType.IsGenericType && method.ReturnType.GetGenericTypeDefinition() == typeof(Task<>)) + ); + } + } - try - { - await actualReturnValue; - await postAction(); - } - catch (Exception ex) - { - exception = ex; - } - finally - { - finalAction(exception); - } - } - public static async Task AwaitTaskWithPostActionAndFinallyAndGetResult(Task actualReturnValue, Func postAction, Action finalAction) - { - Exception exception = null; - try - { - var result = await actualReturnValue; - await postAction(result); - return result; - } - catch (Exception ex) - { - exception = ex; - throw; - } - finally - { - finalAction(exception); - } - } + internal static class InternalAsyncHelper + { + public static async Task AwaitTaskWithPostActionAndFinally(Task actualReturnValue, Func postAction, Action finalAction) + { + Exception exception = null; - public static object CallAwaitTaskWithPostActionAndFinallyAndGetResult(Type taskReturnType, object actualReturnValue, Func action, Action finalAction) - { - return typeof(InternalAsyncHelper) - .GetMethod("AwaitTaskWithPostActionAndFinallyAndGetResult", BindingFlags.Public | BindingFlags.Static) - .MakeGenericMethod(taskReturnType) - .Invoke(null, new object[] { actualReturnValue, action, finalAction }); - } - } + try + { + await actualReturnValue; + await postAction(); + } + catch (Exception ex) + { + exception = ex; + } + finally + { + finalAction(exception); + } + } -} + public static async Task AwaitTaskWithPostActionAndFinallyAndGetResult(Task actualReturnValue, Func postAction, + Action finalAction) + { + Exception exception = null; + try + { + var result = await actualReturnValue; + await postAction(result); + return result; + } + catch (Exception ex) + { + exception = ex; + throw; + } + finally + { + finalAction(exception); + } + } + + public static object CallAwaitTaskWithPostActionAndFinallyAndGetResult(Type taskReturnType, object actualReturnValue, + Func action, Action finalAction) + { + return typeof(InternalAsyncHelper) + .GetMethod("AwaitTaskWithPostActionAndFinallyAndGetResult", BindingFlags.Public | BindingFlags.Static) + .MakeGenericMethod(taskReturnType) + .Invoke(null, new object[] {actualReturnValue, action, finalAction}); + } + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs index aed57769..7a7e1fb6 100644 --- a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs @@ -8,48 +8,49 @@ namespace Blog.Core.Extensions.Middlewares { - public class ExceptionHandlerMiddleware - { - private readonly RequestDelegate _next; - - public ExceptionHandlerMiddleware(RequestDelegate next) - { - _next = next; - } - - public async Task Invoke(HttpContext context) - { - try - { - await _next(context); - } - catch (Exception ex) - { - await HandleExceptionAsync(context, ex); - } - } - - private async Task HandleExceptionAsync(HttpContext context, Exception e) - { - if (e == null) return; - - Log.Error(e.GetBaseException().ToString()); - - await WriteExceptionAsync(context, e).ConfigureAwait(false); - } - - private static async Task WriteExceptionAsync(HttpContext context, Exception e) - { - if (e is UnauthorizedAccessException) - context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; - else if (e is Exception) - context.Response.StatusCode = (int)HttpStatusCode.BadRequest; - - context.Response.ContentType = "application/json"; - - await context.Response - .WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, e.Message).MessageModel)) - .ConfigureAwait(false); - } - } + public class ExceptionHandlerMiddleware + { + private readonly RequestDelegate _next; + + public ExceptionHandlerMiddleware(RequestDelegate next) + { + _next = next; + } + + public async Task Invoke(HttpContext context) + { + try + { + await _next(context); + } + catch (Exception ex) + { + await HandleExceptionAsync(context, ex); + throw; + } + } + + private async Task HandleExceptionAsync(HttpContext context, Exception e) + { + if (e == null) return; + + Log.Error(e.GetBaseException().ToString()); + + await WriteExceptionAsync(context, e).ConfigureAwait(false); + } + + private static async Task WriteExceptionAsync(HttpContext context, Exception e) + { + if (e is UnauthorizedAccessException) + context.Response.StatusCode = (int) HttpStatusCode.Unauthorized; + else if (e is Exception) + context.Response.StatusCode = (int) HttpStatusCode.BadRequest; + + context.Response.ContentType = "application/json"; + + await context.Response + .WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, e.Message).MessageModel)) + .ConfigureAwait(false); + } + } } \ No newline at end of file diff --git a/Blog.Core.Extensions/Middlewares/FluentResponseBodyMiddleware.cs b/Blog.Core.Extensions/Middlewares/FluentResponseBodyMiddleware.cs new file mode 100644 index 00000000..dfb5d19e --- /dev/null +++ b/Blog.Core.Extensions/Middlewares/FluentResponseBodyMiddleware.cs @@ -0,0 +1,21 @@ +using System.IO; +using Blog.Core.Common.Https; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http.Features; + +namespace Blog.Core.Extensions.Middlewares; + +public static class FluentResponseBodyMiddleware +{ + public static IApplicationBuilder UseResponseBodyRead(this IApplicationBuilder app) + { + return app.Use(async (context, next) => + { + await using var swapStream = new FluentHttpResponseStream(context!.Features!.Get()!, + context!.Features!.Get()!); + context.Response.Body = swapStream; + await next(context); + context.Response.Body.Seek(0, SeekOrigin.Begin); + }); + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs index ccd0d7af..61e9861c 100644 --- a/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/IpLogMiddleware.cs @@ -8,139 +8,134 @@ namespace Blog.Core.Extensions.Middlewares { - /// - /// 中间件 - /// 记录IP请求数据 - /// - public class IpLogMiddleware - { - /// - /// - /// - private readonly RequestDelegate _next; - private readonly IWebHostEnvironment _environment; + /// + /// 中间件 + /// 记录IP请求数据 + /// + public class IpLogMiddleware + { + /// + /// + /// + private readonly RequestDelegate _next; - /// - /// - /// - /// - public IpLogMiddleware(RequestDelegate next, IWebHostEnvironment environment) - { - _next = next; - _environment = environment; - } + private readonly IWebHostEnvironment _environment; - public async Task InvokeAsync(HttpContext context) - { - if (AppSettings.app("Middleware", "IPLog", "Enabled").ObjToBool()) - { - // 过滤,只有接口 - if (context.Request.Path.Value.Contains("api")) - { - context.Request.EnableBuffering(); + /// + /// + /// + /// + public IpLogMiddleware(RequestDelegate next, IWebHostEnvironment environment) + { + _next = next; + _environment = environment; + } - try - { - // 存储请求数据 - var request = context.Request; + public async Task InvokeAsync(HttpContext context) + { + if (AppSettings.app("Middleware", "IPLog", "Enabled").ObjToBool()) + { + // 过滤,只有接口 + if (context.Request.Path.Value.Contains("api")) + { + context.Request.EnableBuffering(); - var requestInfo = JsonConvert.SerializeObject(new RequestInfo() - { - Ip = GetClientIP(context), - Url = request.Path.ObjToString().TrimEnd('/').ToLower(), - Datetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), - Date = DateTime.Now.ToString("yyyy-MM-dd"), - Week = GetWeek(), - }); - if (!string.IsNullOrEmpty(requestInfo)) - { - // 自定义log输出 - Parallel.For(0, 1, e => - { - //LogLock.OutSql2Log("RequestIpInfoLog", new string[] { requestInfo + "," }, false); - LogLock.OutLogAOP("RequestIpInfoLog", context.TraceIdentifier, new string[] { requestInfo.GetType().ToString(), requestInfo }, false); - }); + // 存储请求数据 + var request = context.Request; - //try - //{ - // var testLogMatchRequestInfo = JsonConvert.DeserializeObject(requestInfo); - // if (testLogMatchRequestInfo != null) - // { - // var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RequestIpInfoLog"); - // SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false, "", true); - // } - //} - //catch (Exception e) - //{ - // log.Error(requestInfo + "\r\n" + e.GetBaseException().ToString()); - //} + var requestInfo = JsonConvert.SerializeObject(new RequestInfo() + { + Ip = GetClientIP(context), + Url = request.Path.ObjToString().TrimEnd('/').ToLower(), + Datetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + Date = DateTime.Now.ToString("yyyy-MM-dd"), + Week = GetWeek(), + }); + if (!string.IsNullOrEmpty(requestInfo)) + { + // 自定义log输出 + Parallel.For(0, 1, e => + { + //LogLock.OutSql2Log("RequestIpInfoLog", new string[] { requestInfo + "," }, false); + LogLock.OutLogAOP("RequestIpInfoLog", context.TraceIdentifier, + new string[] {requestInfo.GetType().ToString(), requestInfo}, false); + }); - request.Body.Position = 0; - } + //try + //{ + // var testLogMatchRequestInfo = JsonConvert.DeserializeObject(requestInfo); + // if (testLogMatchRequestInfo != null) + // { + // var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RequestIpInfoLog"); + // SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false, "", true); + // } + //} + //catch (Exception e) + //{ + // log.Error(requestInfo + "\r\n" + e.GetBaseException().ToString()); + //} + + request.Body.Position = 0; + } - await _next(context); - } - catch (Exception) - { - // ignored - } - } - else - { - await _next(context); - } - } - else - { - await _next(context); - } - } + await _next(context); + } + else + { + await _next(context); + } + } + else + { + await _next(context); + } + } - private string GetWeek() - { - string week = string.Empty; - switch (DateTime.Now.DayOfWeek) - { - case DayOfWeek.Monday: - week = "周一"; - break; - case DayOfWeek.Tuesday: - week = "周二"; - break; - case DayOfWeek.Wednesday: - week = "周三"; - break; - case DayOfWeek.Thursday: - week = "周四"; - break; - case DayOfWeek.Friday: - week = "周五"; - break; - case DayOfWeek.Saturday: - week = "周六"; - break; - case DayOfWeek.Sunday: - week = "周日"; - break; - default: - week = "N/A"; - break; - } - return week; - } + private string GetWeek() + { + string week = string.Empty; + switch (DateTime.Now.DayOfWeek) + { + case DayOfWeek.Monday: + week = "周一"; + break; + case DayOfWeek.Tuesday: + week = "周二"; + break; + case DayOfWeek.Wednesday: + week = "周三"; + break; + case DayOfWeek.Thursday: + week = "周四"; + break; + case DayOfWeek.Friday: + week = "周五"; + break; + case DayOfWeek.Saturday: + week = "周六"; + break; + case DayOfWeek.Sunday: + week = "周日"; + break; + default: + week = "N/A"; + break; + } - public static string GetClientIP(HttpContext context) - { - var ip = context.Request.Headers["X-Forwarded-For"].ObjToString(); - if (string.IsNullOrEmpty(ip)) - { - ip = context.Connection.RemoteIpAddress.ObjToString(); - } - return ip; - } + return week; + } - } -} + public static string GetClientIP(HttpContext context) + { + var ip = context.Request.Headers["X-Forwarded-For"].ObjToString(); + if (string.IsNullOrEmpty(ip)) + { + ip = context.Connection.RemoteIpAddress.ObjToString(); + } + return ip; + } + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs b/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs index 4e12dd93..5c203fb3 100644 --- a/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RecordAccessLogsMiddleware.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using System.Web; using Blog.Core.Common; +using Blog.Core.Common.Extensions; using Blog.Core.Common.Helper; using Blog.Core.Common.HttpContextUser; using Blog.Core.Common.LogHelper; @@ -15,146 +16,121 @@ namespace Blog.Core.Extensions.Middlewares { - /// - /// 中间件 - /// 记录用户方访问数据 - /// - public class RecordAccessLogsMiddleware - { - /// - /// - /// - private readonly RequestDelegate _next; - private readonly IUser _user; - private readonly ILogger _logger; - private readonly IWebHostEnvironment _environment; - private Stopwatch _stopwatch; - - /// - /// - /// - /// - public RecordAccessLogsMiddleware(RequestDelegate next, IUser user, ILogger logger, IWebHostEnvironment environment) - { - _next = next; - _user = user; - _logger = logger; - _environment = environment; - _stopwatch = new Stopwatch(); - } - - public async Task InvokeAsync(HttpContext context) - { - if (AppSettings.app("Middleware", "RecordAccessLogs", "Enabled").ObjToBool()) - { - var api = context.Request.Path.ObjToString().TrimEnd('/').ToLower(); - var ignoreApis = AppSettings.app("Middleware", "RecordAccessLogs", "IgnoreApis"); - - // 过滤,只有接口 - if (api.Contains("api") && !ignoreApis.Contains(api)) - { - _stopwatch.Restart(); - var userAccessModel = new UserAccessModel(); - - HttpRequest request = context.Request; - - userAccessModel.API = api; - userAccessModel.User = _user.Name; - userAccessModel.IP = IpLogMiddleware.GetClientIP(context); - userAccessModel.BeginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - userAccessModel.RequestMethod = request.Method; - userAccessModel.Agent = request.Headers["User-Agent"].ObjToString(); - - - // 获取请求body内容 - if (request.Method.ToLower().Equals("post") || request.Method.ToLower().Equals("put")) - { - // 启用倒带功能,就可以让 Request.Body 可以再次读取 - request.EnableBuffering(); - - Stream stream = request.Body; - byte[] buffer = new byte[request.ContentLength.Value]; - stream.Read(buffer, 0, buffer.Length); - userAccessModel.RequestData = Encoding.UTF8.GetString(buffer); - - request.Body.Position = 0; - } - else if (request.Method.ToLower().Equals("get") || request.Method.ToLower().Equals("delete")) - { - userAccessModel.RequestData = HttpUtility.UrlDecode(request.QueryString.ObjToString(), Encoding.UTF8); - } - - // 获取Response.Body内容 - var originalBodyStream = context.Response.Body; - using (var responseBody = new MemoryStream()) - { - context.Response.Body = responseBody; - - await _next(context); - - var responseBodyData = await GetResponse(context.Response); - - await responseBody.CopyToAsync(originalBodyStream); - } - - // 响应完成记录时间和存入日志 - context.Response.OnCompleted(() => - { - _stopwatch.Stop(); - - userAccessModel.OPTime = _stopwatch.ElapsedMilliseconds + "ms"; - - // 自定义log输出 - var requestInfo = JsonConvert.SerializeObject(userAccessModel); - Parallel.For(0, 1, e => - { - //LogLock.OutSql2Log("RecordAccessLogs", new string[] { requestInfo + "," }, false); - LogLock.OutLogAOP("RecordAccessLogs", context.TraceIdentifier, new string[] { userAccessModel.GetType().ToString(), requestInfo }, false); - }); - //var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RecordAccessLogs"); - //SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false); - return Task.CompletedTask; - }); - - } - else - { - await _next(context); - } - } - else - { - await _next(context); - } - } - - - /// - /// 获取响应内容 - /// - /// - /// - public async Task GetResponse(HttpResponse response) - { - response.Body.Seek(0, SeekOrigin.Begin); - var text = await new StreamReader(response.Body).ReadToEndAsync(); - response.Body.Seek(0, SeekOrigin.Begin); - return text; - } - } - - public class UserAccessModel - { - public string User { get; set; } - public string IP { get; set; } - public string API { get; set; } - public string BeginTime { get; set; } - public string OPTime { get; set; } - public string RequestMethod { get; set; } - public string RequestData { get; set; } - public string Agent { get; set; } - - } - -} - + /// + /// 中间件 + /// 记录用户方访问数据 + /// + public class RecordAccessLogsMiddleware + { + /// + /// + /// + private readonly RequestDelegate _next; + + private readonly IUser _user; + private readonly ILogger _logger; + private readonly IWebHostEnvironment _environment; + private Stopwatch _stopwatch; + + /// + /// + /// + /// + public RecordAccessLogsMiddleware(RequestDelegate next, IUser user, ILogger logger, + IWebHostEnvironment environment) + { + _next = next; + _user = user; + _logger = logger; + _environment = environment; + _stopwatch = new Stopwatch(); + } + + public async Task InvokeAsync(HttpContext context) + { + if (AppSettings.app("Middleware", "RecordAccessLogs", "Enabled").ObjToBool()) + { + var api = context.Request.Path.ObjToString().TrimEnd('/').ToLower(); + var ignoreApis = AppSettings.app("Middleware", "RecordAccessLogs", "IgnoreApis"); + + // 过滤,只有接口 + if (api.Contains("api") && !ignoreApis.Contains(api)) + { + _stopwatch.Restart(); + var userAccessModel = new UserAccessModel(); + + HttpRequest request = context.Request; + + userAccessModel.API = api; + userAccessModel.User = _user.Name; + userAccessModel.IP = IpLogMiddleware.GetClientIP(context); + userAccessModel.BeginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + userAccessModel.RequestMethod = request.Method; + userAccessModel.Agent = request.Headers["User-Agent"].ObjToString(); + + + // 获取请求body内容 + if (request.Method.ToLower().Equals("post") || request.Method.ToLower().Equals("put")) + { + // 启用倒带功能,就可以让 Request.Body 可以再次读取 + request.EnableBuffering(); + + Stream stream = request.Body; + byte[] buffer = new byte[request.ContentLength.Value]; + stream.Read(buffer, 0, buffer.Length); + userAccessModel.RequestData = Encoding.UTF8.GetString(buffer); + + request.Body.Position = 0; + } + else if (request.Method.ToLower().Equals("get") || request.Method.ToLower().Equals("delete")) + { + userAccessModel.RequestData = HttpUtility.UrlDecode(request.QueryString.ObjToString(), Encoding.UTF8); + } + + await _next(context); + + // 响应完成记录时间和存入日志 + context.Response.OnCompleted(() => + { + _stopwatch.Stop(); + + userAccessModel.OPTime = _stopwatch.ElapsedMilliseconds + "ms"; + + // 自定义log输出 + var requestInfo = JsonConvert.SerializeObject(userAccessModel); + Parallel.For(0, 1, e => + { + //LogLock.OutSql2Log("RecordAccessLogs", new string[] { requestInfo + "," }, false); + LogLock.OutLogAOP("RecordAccessLogs", context.TraceIdentifier, + new string[] {userAccessModel.GetType().ToString(), requestInfo}, false); + }); + //var logFileName = FileHelper.GetAvailableFileNameWithPrefixOrderSize(_environment.ContentRootPath, "RecordAccessLogs"); + //SerilogServer.WriteLog(logFileName, new string[] { requestInfo + "," }, false); + return Task.CompletedTask; + }); + } + else + { + await _next(context); + } + } + else + { + await _next(context); + } + } + + } + + public class UserAccessModel + { + public string User { get; set; } + public string IP { get; set; } + public string API { get; set; } + public string BeginTime { get; set; } + public string OPTime { get; set; } + public string RequestMethod { get; set; } + public string RequestData { get; set; } + public string Agent { get; set; } + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs index 4c61ed3b..26971a3a 100644 --- a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs @@ -3,6 +3,7 @@ using System.Text.RegularExpressions; using System.Threading.Tasks; using Blog.Core.Common; +using Blog.Core.Common.Extensions; using Blog.Core.Common.LogHelper; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; @@ -10,126 +11,124 @@ namespace Blog.Core.Extensions.Middlewares { - /// - /// 中间件 - /// 记录请求和响应数据 - /// - public class RequRespLogMiddleware - { - /// - /// - /// - private readonly RequestDelegate _next; - private readonly ILogger _logger; - - /// - /// - /// - /// - public RequRespLogMiddleware(RequestDelegate next, ILogger logger) - { - _next = next; - _logger = logger; - } - - - - public async Task InvokeAsync(HttpContext context) - { - if (AppSettings.app("Middleware", "RequestResponseLog", "Enabled").ObjToBool()) - { - // 过滤,只有接口 - if (context.Request.Path.Value.Contains("api")) - { - context.Request.EnableBuffering(); - Stream originalBody = context.Response.Body; - - try - { - // 存储请求数据 - await RequestDataLog(context); - - using (var ms = new MemoryStream()) - { - context.Response.Body = ms; - - await _next(context); - - // 存储响应数据 - ResponseDataLog(context.Response, ms); - - ms.Position = 0; - await ms.CopyToAsync(originalBody); - } - } - catch (Exception ex) - { - // 记录异常 - _logger.LogError(ex.Message + "" + ex.InnerException); - } - finally - { - context.Response.Body = originalBody; - } - } - else - { - await _next(context); - } - } - else - { - await _next(context); - } - } - - private async Task RequestDataLog(HttpContext context) - { - var request = context.Request; - var sr = new StreamReader(request.Body); - RequestLogInfo requestResponse = new RequestLogInfo() - { - Path = request.Path, - QueryString = request.QueryString.ToString(), - BodyData = await sr.ReadToEndAsync() - }; - var content = JsonConvert.SerializeObject(requestResponse); - //var content = $" QueryData:{request.Path + request.QueryString}\r\n BodyData:{await sr.ReadToEndAsync()}"; - - if (!string.IsNullOrEmpty(content)) - { - Parallel.For(0, 1, e => - { - //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Request Data:", content }); - LogLock.OutLogAOP("RequestResponseLog", context.TraceIdentifier, new string[] { "Request Data - RequestJsonDataType:" + requestResponse.GetType().ToString(), content }); - - }); - //SerilogServer.WriteLog("RequestResponseLog", new string[] { "Request Data:", content }); - - request.Body.Position = 0; - } - } - - private void ResponseDataLog(HttpResponse response, MemoryStream ms) - { - ms.Position = 0; - var responseBody = new StreamReader(ms).ReadToEnd(); - - // 去除 Html - var reg = "<[^>]+>"; - var isHtml = Regex.IsMatch(responseBody, reg); - - if (!string.IsNullOrEmpty(responseBody)) - { - Parallel.For(0, 1, e => - { - //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); - LogLock.OutLogAOP("RequestResponseLog", response.HttpContext.TraceIdentifier, new string[] { "Response Data - ResponseJsonDataType:" + responseBody.GetType().ToString(), responseBody }); - - }); - //SerilogServer.WriteLog("RequestResponseLog", new string[] { "Response Data:", responseBody }); - } - } - } -} - + /// + /// 中间件 + /// 记录请求和响应数据 + /// + public class RequRespLogMiddleware + { + /// + /// + /// + private readonly RequestDelegate _next; + + private readonly ILogger _logger; + + /// + /// + /// + /// + public RequRespLogMiddleware(RequestDelegate next, ILogger logger) + { + _next = next; + _logger = logger; + } + + + public async Task InvokeAsync(HttpContext context) + { + if (AppSettings.app("Middleware", "RequestResponseLog", "Enabled").ObjToBool()) + { + // 过滤,只有接口 + if (context.Request.Path.Value.Contains("api")) + { + context.Request.EnableBuffering(); + + // 存储请求数据 + await RequestDataLog(context); + + await _next(context); + + // 存储响应数据 + ResponseDataLog(context.Response); + } + else + { + await _next(context); + } + } + else + { + await _next(context); + } + } + + private async Task RequestDataLog(HttpContext context) + { + var request = context.Request; + var sr = new StreamReader(request.Body); + RequestLogInfo requestResponse = new RequestLogInfo() + { + Path = request.Path, + QueryString = request.QueryString.ToString(), + BodyData = await sr.ReadToEndAsync() + }; + var content = JsonConvert.SerializeObject(requestResponse); + //var content = $" QueryData:{request.Path + request.QueryString}\r\n BodyData:{await sr.ReadToEndAsync()}"; + + if (!string.IsNullOrEmpty(content)) + { + Parallel.For(0, 1, e => + { + //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Request Data:", content }); + LogLock.OutLogAOP("RequestResponseLog", context.TraceIdentifier, + new string[] {"Request Data - RequestJsonDataType:" + requestResponse.GetType().ToString(), content}); + }); + //SerilogServer.WriteLog("RequestResponseLog", new string[] { "Request Data:", content }); + + request.Body.Position = 0; + } + } + + private void ResponseDataLog(HttpResponse response) + { + var responseBody = response.GetResponseBody(); + + // 去除 Html + var reg = "<[^>]+>"; + var isHtml = Regex.IsMatch(responseBody, reg); + + if (!string.IsNullOrEmpty(responseBody)) + { + Parallel.For(0, 1, e => + { + //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); + LogLock.OutLogAOP("RequestResponseLog", response.HttpContext.TraceIdentifier, + new string[] {"Response Data - ResponseJsonDataType:" + responseBody.GetType().ToString(), responseBody}); + }); + //SerilogServer.WriteLog("RequestResponseLog", new string[] { "Response Data:", responseBody }); + } + } + + private void ResponseDataLog(HttpResponse response, MemoryStream ms) + { + ms.Position = 0; + var responseBody = new StreamReader(ms).ReadToEnd(); + + // 去除 Html + var reg = "<[^>]+>"; + var isHtml = Regex.IsMatch(responseBody, reg); + + if (!string.IsNullOrEmpty(responseBody)) + { + Parallel.For(0, 1, e => + { + //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); + LogLock.OutLogAOP("RequestResponseLog", response.HttpContext.TraceIdentifier, + new string[] {"Response Data - ResponseJsonDataType:" + responseBody.GetType().ToString(), responseBody}); + }); + //SerilogServer.WriteLog("RequestResponseLog", new string[] { "Response Data:", responseBody }); + } + } + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/Redis/RedisBasketRepository.cs b/Blog.Core.Extensions/Redis/RedisBasketRepository.cs index 7f1356e2..822f9253 100644 --- a/Blog.Core.Extensions/Redis/RedisBasketRepository.cs +++ b/Blog.Core.Extensions/Redis/RedisBasketRepository.cs @@ -4,12 +4,13 @@ using StackExchange.Redis; using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Threading.Tasks; namespace Blog.Core.Extensions { - [Obsolete("普通缓存考虑直接使用ICaching,如果要使用Redis队列等还是使用此类")] + [Description("普通缓存考虑直接使用ICaching,如果要使用Redis队列等还是使用此类")] public class RedisBasketRepository : IRedisBasketRepository { private readonly ILogger _logger; From 45116fe5afbd480d85c1bec233ac67293b6a04fd Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Tue, 13 Jun 2023 17:29:41 +0800 Subject: [PATCH 289/382] =?UTF-8?q?=F0=9F=8E=A8=20=E5=90=AF=E7=94=A8?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=E4=B8=AD=E9=97=B4=E4=BB=B6?= =?UTF-8?q?,=E7=BB=9F=E4=B8=80=E6=8B=A6=E6=88=AA=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Program.cs | 1 + .../Middlewares/ExceptionHandlerMiddleware.cs | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 67d4524e..eee48a6e 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -144,6 +144,7 @@ //app.UseHsts(); } +app.UseExceptionHandlerMiddle(); app.UseIpLimitMiddle(); app.UseRequestResponseLogMiddle(); app.UseRecordAccessLogsMiddle(); diff --git a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs index 7a7e1fb6..03168882 100644 --- a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs @@ -26,7 +26,6 @@ public async Task Invoke(HttpContext context) catch (Exception ex) { await HandleExceptionAsync(context, ex); - throw; } } @@ -34,22 +33,26 @@ private async Task HandleExceptionAsync(HttpContext context, Exception e) { if (e == null) return; - Log.Error(e.GetBaseException().ToString()); - await WriteExceptionAsync(context, e).ConfigureAwait(false); } private static async Task WriteExceptionAsync(HttpContext context, Exception e) { - if (e is UnauthorizedAccessException) - context.Response.StatusCode = (int) HttpStatusCode.Unauthorized; - else if (e is Exception) - context.Response.StatusCode = (int) HttpStatusCode.BadRequest; + var message = e.Message; + switch (e) + { + case UnauthorizedAccessException: + context.Response.StatusCode = (int) HttpStatusCode.Unauthorized; + break; + default: + context.Response.StatusCode = (int) HttpStatusCode.BadRequest; + break; + } context.Response.ContentType = "application/json"; await context.Response - .WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, e.Message).MessageModel)) + .WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, message).MessageModel)) .ConfigureAwait(false); } } From 0c837cd50e9c4b0f86e81ca75a11da0f0a929a23 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 13 Jun 2023 17:58:57 +0800 Subject: [PATCH 290/382] :a: change MigratePermission api --- Blog.Core.Api/Blog.Core.xml | 6 +--- .../Controllers/PermissionController.cs | 36 +++++++++---------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 69d3f9b2..ad812e58 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -456,14 +456,10 @@ - + 系统接口菜单同步接口 - - 接口module的控制器名称 - 菜单permission的父id - 是否执行迁移到数据 diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index 7346cc21..a3429163 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -7,7 +7,6 @@ using Blog.Core.Model; using Blog.Core.Model.Models; using Blog.Core.Repository.UnitOfWorks; -using Blog.Core.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; @@ -633,13 +632,9 @@ public async Task> BatchPost([FromBody] List pe /// /// 系统接口菜单同步接口 /// - /// - /// 接口module的控制器名称 - /// 菜单permission的父id - /// 是否执行迁移到数据 /// [HttpGet] - public async Task>> MigratePermission(string action = "", string controllerName = "", long pid = 0, bool isAction = false) + public async Task>> MigratePermission(string action = "", string token = "", string gatewayPrefix = "", string swaggerDomain = "", string controllerName = "", long pid = 0, bool isAction = false) { var data = new MessageModel>(); if (controllerName.IsNullOrEmpty()) @@ -648,18 +643,23 @@ public async Task>> MigratePermission(string actio return data; } - controllerName = controllerName.ToLower(); + controllerName = controllerName.TrimEnd('/').ToLower(); - using var client = _httpClientFactory.CreateClient(); - var jsonFileDomain = AppSettings.GetValue("Startup:Domain"); + gatewayPrefix = gatewayPrefix.Trim(); + swaggerDomain = swaggerDomain.Trim(); + controllerName = controllerName.Trim(); - if (jsonFileDomain.IsNullOrEmpty()) + using var client = _httpClientFactory.CreateClient(); + var Configuration = swaggerDomain.IsNotEmptyOrNull() ? swaggerDomain : AppSettings.GetValue("SystemCfg:Domain"); + var url = $"{Configuration}/swagger/V2/swagger.json"; + if (Configuration.IsNullOrEmpty()) { data.msg = "Swagger.json在线文件域名不能为空"; return data; } - - var url = $"{jsonFileDomain}/swagger/V2/swagger.json"; + if (token.IsNullOrEmpty()) token = Request.Headers.Authorization; + token = token.Trim(); + client.DefaultRequestHeaders.Add("Authorization", $"{token}"); var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); @@ -671,9 +671,10 @@ public async Task>> MigratePermission(string actio List permissions = new List(); foreach (JProperty jProperty in pathsJObj.Properties()) { - var apiPath = jProperty.Name.ToLower(); + var apiPath = gatewayPrefix + jProperty.Name.ToLower(); if (action.IsNotEmptyOrNull()) { + action = action.Trim(); if (!apiPath.Contains(action.ToLower())) { continue; @@ -697,12 +698,12 @@ public async Task>> MigratePermission(string actio httpmethod = "delete"; } - var summary = jProperty.Value.SelectToken($"{httpmethod}.summary").ObjToString(); + var summary = jProperty.Value?.SelectToken($"{httpmethod}.summary")?.ObjToString() ?? ""; var subIx = summary.IndexOf("(Auth"); - if (subIx > 0) + if (subIx >= 0) { - summary = summary.Substring(0, subIx - 1); + summary = summary.Substring(0, subIx); } permissions.Add(new Permission() @@ -715,7 +716,6 @@ public async Task>> MigratePermission(string actio CreateTime = DateTime.Now, IsDeleted = false, Pid = pid, - MName = apiPath ?? "", Module = new Modules() { LinkUrl = apiPath ?? "", @@ -748,6 +748,7 @@ public async Task>> MigratePermission(string actio } } + data.msg = "同步完成"; } data.response = permissions; @@ -756,7 +757,6 @@ public async Task>> MigratePermission(string actio return data; } - } public class AssignView From bb0150e96a1d605382a917b173cccb91fb903c59 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Mon, 19 Jun 2023 16:43:29 +0800 Subject: [PATCH 291/382] =?UTF-8?q?=F0=9F=8E=A8=20=E4=B8=8D=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E5=BA=95=E5=B1=82=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Common/Extensions/HttpResponseExceptions.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Blog.Core.Common/Extensions/HttpResponseExceptions.cs b/Blog.Core.Common/Extensions/HttpResponseExceptions.cs index b9d25f81..67deee45 100644 --- a/Blog.Core.Common/Extensions/HttpResponseExceptions.cs +++ b/Blog.Core.Common/Extensions/HttpResponseExceptions.cs @@ -17,7 +17,8 @@ public static string GetResponseBody(this HttpResponse response) if (response.Body is FluentHttpResponseStream responseBody) { response.Body.Position = 0; - using StreamReader stream = new StreamReader(responseBody); + //不关闭底层流 + using StreamReader stream = new StreamReader(responseBody, leaveOpen: true); string body = stream.ReadToEnd(); response.Body.Position = 0; return body; From 0d967086d9d3742328bd07dd4f293735340ec689 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 21 Jun 2023 17:35:13 +0800 Subject: [PATCH 292/382] :accept: feat: add request access etc. log --- Blog.Core.Api/Controllers/ValuesController.cs | 22 ++++++++++++++++--- Blog.Core.Api/appsettings.json | 6 ++--- Blog.Core.Common/LogHelper/LogLock.cs | 9 ++++---- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index ae5cc81f..072ab39e 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -30,7 +30,7 @@ namespace Blog.Core.Controllers //[Authorize(Policy = "SystemOrAdmin")] //[Authorize(PermissionNames.Permission)] [Authorize] - public class ValuesController : ControllerBase + public class ValuesController : BaseApiController { private IMapper _mapper; private readonly IAdvertisementServices _advertisementServices; @@ -159,12 +159,12 @@ await _blogArticleServices.QuerySql( * `bsubmitter`=@bsubmitter,`IsDeleted`=@IsDeleted WHERE `bID`=@bID */ var updateSql = await _blogArticleServices.Update(new - { bsubmitter = $"laozhang{DateTime.Now.Millisecond}", IsDeleted = false, bID = 5 }); + { bsubmitter = $"laozhang{DateTime.Now.Millisecond}", IsDeleted = false, bID = 5 }); // 测试模拟异常,全局异常过滤器拦截 var i = 0; - // var d = 3 / i; + // var d = 3 / i; // 测试 AOP 缓存 @@ -188,6 +188,22 @@ await _blogArticleServices.QuerySql( return data; } + + [HttpGet] + [AllowAnonymous] + public async Task>> Test_Aop_Cache() + { + // 测试 AOP 缓存 + var blogArticles = await _blogArticleServices.GetBlogs(); + + if (blogArticles.Any()) + { + return Success(blogArticles); + } + + return Failed>(); + } + /// /// 测试Redis消息队列 /// diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index def53cfc..941d0125 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -210,7 +210,7 @@ "RequestResponseLog": { "Enabled": true, "LogToFile": { - "Enabled": false + "Enabled": true }, "LogToDB": { "Enabled": true @@ -219,7 +219,7 @@ "IPLog": { "Enabled": true, "LogToFile": { - "Enabled": false + "Enabled": true }, "LogToDB": { "Enabled": true @@ -228,7 +228,7 @@ "RecordAccessLogs": { "Enabled": true, "LogToFile": { - "Enabled": false + "Enabled": true }, "LogToDB": { "Enabled": true diff --git a/Blog.Core.Common/LogHelper/LogLock.cs b/Blog.Core.Common/LogHelper/LogLock.cs index 2c9be9a9..e03c6366 100644 --- a/Blog.Core.Common/LogHelper/LogLock.cs +++ b/Blog.Core.Common/LogHelper/LogLock.cs @@ -195,26 +195,25 @@ public static void OutSql2LogToDB(string prefix, string traceId, string[] dataPa { //DEBUG | INFO | WARN | ERROR | FATAL case "AOPLog": - //TODO 是否需要输出? - //Log.Information(logContent); + Log.Information(logContent); break; case "AOPLogEx": Log.Error(logContent); break; case "RequestIpInfoLog": //TODO 是否需要Debug输出? - //Log.Debug(logContent); + Log.Information(logContent); break; case "RecordAccessLogs": //TODO 是否需要Debug输出? - //Log.Debug(logContent); + Log.Information(logContent); break; case "SqlLog": Log.Information(logContent); break; case "RequestResponseLog": //TODO 是否需要Debug输出? - //Log.Debug(logContent); + Log.Information(logContent); break; default: break; From 274f3c1760cf80532c76fafc38cdb5c32ff7f813 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 25 Jun 2023 16:44:16 +0800 Subject: [PATCH 293/382] Update Program.cs --- Blog.Core.Api/Program.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index eee48a6e..876a83a8 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -180,7 +180,6 @@ app.UseAuthentication(); app.UseAuthorization(); app.UseMiniProfilerMiddleware(); -//app.UseExceptionHandlerMidd(); app.UseEndpoints(endpoints => { From 990dcfd756d520600501ca9deba0878d36c4fd72 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 25 Jun 2023 17:01:14 +0800 Subject: [PATCH 294/382] Update ExceptionHandlerMiddleware.cs --- .../Middlewares/ExceptionHandlerMiddleware.cs | 97 +++++++++---------- 1 file changed, 48 insertions(+), 49 deletions(-) diff --git a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs index 03168882..dc2cd17d 100644 --- a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs @@ -4,56 +4,55 @@ using Blog.Core.Model; using Microsoft.AspNetCore.Http; using Newtonsoft.Json; -using Serilog; namespace Blog.Core.Extensions.Middlewares { - public class ExceptionHandlerMiddleware - { - private readonly RequestDelegate _next; - - public ExceptionHandlerMiddleware(RequestDelegate next) - { - _next = next; - } - - public async Task Invoke(HttpContext context) - { - try - { - await _next(context); - } - catch (Exception ex) - { - await HandleExceptionAsync(context, ex); - } - } - - private async Task HandleExceptionAsync(HttpContext context, Exception e) - { - if (e == null) return; - - await WriteExceptionAsync(context, e).ConfigureAwait(false); - } - - private static async Task WriteExceptionAsync(HttpContext context, Exception e) - { - var message = e.Message; - switch (e) - { - case UnauthorizedAccessException: - context.Response.StatusCode = (int) HttpStatusCode.Unauthorized; - break; - default: - context.Response.StatusCode = (int) HttpStatusCode.BadRequest; - break; - } - - context.Response.ContentType = "application/json"; - - await context.Response - .WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, message).MessageModel)) - .ConfigureAwait(false); - } - } + public class ExceptionHandlerMiddleware + { + private readonly RequestDelegate _next; + + public ExceptionHandlerMiddleware(RequestDelegate next) + { + _next = next; + } + + public async Task Invoke(HttpContext context) + { + try + { + await _next(context); + } + catch (Exception ex) + { + await HandleExceptionAsync(context, ex); + } + } + + private async Task HandleExceptionAsync(HttpContext context, Exception e) + { + if (e == null) return; + + await WriteExceptionAsync(context, e).ConfigureAwait(false); + } + + private static async Task WriteExceptionAsync(HttpContext context, Exception e) + { + var message = e.Message; + switch (e) + { + case UnauthorizedAccessException: + context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; + break; + default: + context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; + break; + } + + context.Response.ContentType = "application/json"; + + await context.Response + .WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, message).MessageModel)) + .ConfigureAwait(false); + } + } } \ No newline at end of file From f5a2631d7ef31f004234563743f805c73ebbdfab Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Wed, 5 Jul 2023 17:34:40 +0800 Subject: [PATCH 295/382] =?UTF-8?q?=E2=9C=A8=20SignalR=20Demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化SignalR,通过传递token确认身份 --- Blog.Core.Api/Blog.Core.xml | 21 ++++++++ .../Controllers/SignalRTestController.cs | 49 +++++++++++++++++++ Blog.Core.Api/appsettings.json | 4 +- Blog.Core.Common/Hubs/ChatHub.cs | 31 ++++++++---- .../Authentication_JWTSetup.cs | 14 ++++++ 5 files changed, 108 insertions(+), 11 deletions(-) create mode 100644 Blog.Core.Api/Controllers/SignalRTestController.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index ad812e58..6dd7f16b 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1251,6 +1251,27 @@ + + + SignalR测试 + + + + + 向指定用户发送消息 + + + + + + + + 向指定角色发送消息 + + + + + 分表demo diff --git a/Blog.Core.Api/Controllers/SignalRTestController.cs b/Blog.Core.Api/Controllers/SignalRTestController.cs new file mode 100644 index 00000000..16ba47f0 --- /dev/null +++ b/Blog.Core.Api/Controllers/SignalRTestController.cs @@ -0,0 +1,49 @@ +using Blog.Core.Controllers; +using Blog.Core.Hubs; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.SignalR; + +namespace Blog.Core.Api.Controllers; + +/// +/// SignalR测试 +/// +[Route("api/[controller]/[action]")] +[ApiController] +[Authorize] +public class SignalRTestController : BaseApiController +{ + private readonly IHubContext _hubContext; + + public SignalRTestController(IHubContext hubContext) + { + _hubContext = hubContext; + } + + /// + /// 向指定用户发送消息 + /// + /// + /// + /// + [HttpPost] + public async Task SendMessageToUser(string user, string message) + { + await _hubContext.Clients.Group(user).ReceiveMessage(user, message); + return Ok(); + } + + /// + /// 向指定角色发送消息 + /// + /// + /// + /// + [HttpPost] + public async Task SendMessageToRole(string role, string message) + { + await _hubContext.Clients.Group(role).ReceiveMessage(role, message); + return Ok(); + } +} \ No newline at end of file diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 941d0125..5fdf0000 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -236,10 +236,10 @@ "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," }, "SignalR": { - "Enabled": false + "Enabled": true }, "SignalRSendLog": { - "Enabled": false + "Enabled": true }, "QuartzNetJob": { "Enabled": true diff --git a/Blog.Core.Common/Hubs/ChatHub.cs b/Blog.Core.Common/Hubs/ChatHub.cs index 1c58c8a0..f30e6b7b 100644 --- a/Blog.Core.Common/Hubs/ChatHub.cs +++ b/Blog.Core.Common/Hubs/ChatHub.cs @@ -1,4 +1,6 @@ -using System.Threading.Tasks; +using System.Linq; +using System.Security.Claims; +using System.Threading.Tasks; using Blog.Core.Common; using Blog.Core.Common.LogHelper; using Microsoft.AspNetCore.SignalR; @@ -53,10 +55,23 @@ public async Task SendPrivateMessage(string user, string message) /// 当连接建立时运行 /// /// - public override Task OnConnectedAsync() + public override async Task OnConnectedAsync() { - //TODO.. - return base.OnConnectedAsync(); + await base.OnConnectedAsync(); + if (Context.User?.Identity?.IsAuthenticated == true) + { + //按用户分组 + //是有必要的 例如多个浏览器、多个标签页使用同个用户登录 应当归属于一组 + await AddToGroup(Context.User.Identity.Name); + + //加入角色组 + //根据角色分组 例如管理员分组发送管理员的消息 + var roles = Context.User.Claims.Where(s => s.Type == ClaimTypes.Role).ToList(); + foreach (var role in roles) + { + await AddToGroup(role.Value); + } + } } /// @@ -81,16 +96,14 @@ public async Task SendMessage(string user, string message) public async Task GetLatestCount(string random) { //2、服务端主动向客户端发送数据,名字千万不能错 - if (AppSettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool()) + if (AppSettings.app(new string[] {"Middleware", "SignalRSendLog", "Enabled"}).ObjToBool()) { //TODO 主动发送错误消息 - //await Clients.All.ReceiveUpdate(LogLock.GetLogData()); + await Clients.All.ReceiveUpdate(LogLock.GetLogData()); } - //3、客户端再通过 ReceiveUpdate ,来接收 - } } -} +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/Authentication_JWTSetup.cs b/Blog.Core.Extensions/ServiceExtensions/Authentication_JWTSetup.cs index 930bfb6e..98fa0b82 100644 --- a/Blog.Core.Extensions/ServiceExtensions/Authentication_JWTSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/Authentication_JWTSetup.cs @@ -58,6 +58,20 @@ public static void AddAuthentication_JWTSetup(this IServiceCollection services) o.TokenValidationParameters = tokenValidationParameters; o.Events = new JwtBearerEvents { + OnMessageReceived = context => + { + var accessToken = context.Request.Query["access_token"]; + + // If the request is for our hub... + var path = context.HttpContext.Request.Path; + if (!string.IsNullOrEmpty(accessToken) && + (path.StartsWithSegments("/api2/chathub"))) + { + // Read the token out of the query string + context.Token = accessToken; + } + return Task.CompletedTask; + }, OnChallenge = context => { context.Response.Headers.Add("Token-Error", context.ErrorDescription); From b9e24a84e652f217a28b98ea1beaf899ac3b9be3 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Tue, 11 Jul 2023 12:14:16 +0800 Subject: [PATCH 296/382] =?UTF-8?q?=E2=9C=A8=E2=9C=A8=E2=9C=A8=20=E5=8F=B2?= =?UTF-8?q?=E8=AF=97=E7=BA=A7=E6=9B=B4=E6=96=B0,=E5=AE=8C=E7=BE=8E?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=90=84=E7=A7=8D=E5=A4=8D=E6=9D=82=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 例子看单元测试DynamicLambdaTest 支持复杂链表 动态条件拼接 从此后端可只定义一种接口,条件交给前端拼接 后端接口就不在需要定义一堆参数等 --- Blog.Core.Common/Helper/DynamicLinqFactory.cs | 367 +++++++----------- .../Common_Test/DynamicLambdaTest.cs | 108 ++++-- 2 files changed, 227 insertions(+), 248 deletions(-) diff --git a/Blog.Core.Common/Helper/DynamicLinqFactory.cs b/Blog.Core.Common/Helper/DynamicLinqFactory.cs index 248b18ff..adb57074 100644 --- a/Blog.Core.Common/Helper/DynamicLinqFactory.cs +++ b/Blog.Core.Common/Helper/DynamicLinqFactory.cs @@ -6,6 +6,7 @@ using System.Reflection; using System.Text; using System.Text.RegularExpressions; +using Mapster; namespace Blog.Core.Common.Helper { @@ -40,10 +41,9 @@ public static Expression> CreateLambda(string prope // 第一个判断条件,固定一个判断条件作为最左边 - Expression mainExpressin = ExpressionStudio(null, strArr.FirstOrDefault(x => x.LinkSymbol == LinkSymbol.Empty), parameter); - + Expression mainExpressin = ExpressionStudio(null, strArr[0], parameter); // 将需要放置在最左边的判断条件从列表中去除,因为已经合成到表达式最左边了 - strArr.Remove(strArr.FirstOrDefault(x => x.LinkSymbol == LinkSymbol.Empty)); + strArr.RemoveAt(0); foreach (var x in strArr) { @@ -57,32 +57,50 @@ public static Expression> CreateLambda(string prope /// 组合条件判断表达式 /// /// 左边的表达式 - /// + /// /// /// - public static Expression ExpressionStudio(Expression left, DynamicLinqHelper DynamicLinq, ParameterExpression key) + public static Expression ExpressionStudio(Expression left, DynamicLinqHelper dynamicLinq, ParameterExpression key) { Expression mainExpression = key; - var properties = DynamicLinq.Left.Split('.'); - - int index = 0; - foreach (var t in properties) + if (!dynamicLinq.Left.IsNullOrEmpty()) { - if (mainExpression.Type.HasImplementedRawGeneric(typeof(IEnumerable<>))) + var properties = dynamicLinq.Left.Split('.'); + + int index = 0; + foreach (var t in properties) { - return ExpressionStudioEnumerable(left, mainExpression, DynamicLinq.Clone(), properties.Skip(index).ToArray()); + if (mainExpression.Type.HasImplementedRawGeneric(typeof(IEnumerable<>))) + { + return ExpressionStudioEnumerable(left, mainExpression, dynamicLinq.Adapt(), + properties.Skip(index).ToArray()); + } + + mainExpression = mainExpression.Property(t); + index++; } + } - mainExpression = mainExpression.Property(t); - index++; + Expression right = null; + if (dynamicLinq.IsMerge && dynamicLinq.Child.Any()) + { + right = ExpressionStudio(null, dynamicLinq.Child[0], key); + for (var i = 1; i < dynamicLinq.Child.Count; i++) + { + right = ChangeLinkSymbol(dynamicLinq.Child[i].LinkSymbol, right, ExpressionStudio(null, dynamicLinq.Child[i], key)); + } + } + else + { + right = ChangeOperationSymbol(dynamicLinq.OperationSymbol, mainExpression, dynamicLinq.Right); } left = left == null // 如果左边表达式为空,则当前的表达式就为最左边 - ? ChangeOperationSymbol(DynamicLinq.OperationSymbol, mainExpression, DynamicLinq.Right) + ? right // 如果不为空,则将当前的表达式连接到左边 - : ChangeLinkSymbol(DynamicLinq.LinkSymbol, left, ChangeOperationSymbol(DynamicLinq.OperationSymbol, mainExpression, DynamicLinq.Right)); + : ChangeLinkSymbol(dynamicLinq.LinkSymbol, left, right); return left; } @@ -102,7 +120,7 @@ public static Expression ExpressionStudioEnumerable(Expression left, Expression var lambda = Expression.Lambda(mainExpression, parameter); - mainExpression = Expression.Call(typeof(Enumerable), "Any", new[] { realType }, property, lambda); + mainExpression = Expression.Call(typeof(Enumerable), "Any", new[] {realType}, property, lambda); left = left == null ? mainExpression @@ -112,155 +130,112 @@ public static Expression ExpressionStudioEnumerable(Expression left, Expression } - /// - /// 将字符串装换成动态帮助类(内含递归) - /// - public static List SpiltStrings(string propertyStr) - { - // 定义返回用List - var outList = new List(); - - // 当最后已经没有连接运算符的时候,进入该条件 - if (!propertyStr.Contains("&") & !propertyStr.Contains("|")) - { - // 当前的条件是不具备连接符号的 - var lastStr = propertyStr.Trim().Split(' '); - outList.Add(new DynamicLinqHelper - { - LinkSymbol = LinkSymbol.Empty, - Left = lastStr[0], - Right = lastStr[2], - OperationSymbol = ChangeOperationSymbol(lastStr[1]) - }); - return outList; - } - - // 判断当前 & | 哪个符号在最后一个判断逻辑内 - var key = propertyStr.LastIndexOf('&') > propertyStr.LastIndexOf('|') ? '&' : '|'; - - var nowStrArr = propertyStr.Substring(propertyStr.LastIndexOf(key)).Trim().Split(' '); - - outList.Add(new DynamicLinqHelper - { - LinkSymbol = ChangeLinkSymbol(nowStrArr[0]), - Left = nowStrArr[1], - OperationSymbol = ChangeOperationSymbol(nowStrArr[2]), - Right = nowStrArr[3] - }); - // 将剩余部分继续切割 - propertyStr = propertyStr.Substring(0, propertyStr.LastIndexOf(key)).Trim(); - // 递归 由后彺前 - outList.AddRange(SpiltStrings(propertyStr)); - - return outList; - } - public static List SplitOperationSymbol(string str) { var outList = new List(); var tokens = Regex.Matches(FormatString(str), _pattern, RegexOptions.Compiled) - .Cast() .Select(m => m.Groups[1].Value.Trim()) .ToList(); + SplitOperationSymbol(tokens, outList); + return outList; + } - int lastIndex = tokens.Count - 1; - int lastOperatingSymbolIndex = -1; - for (int i = tokens.Count - 1; i >= 0; i--) + private static void SplitOperationSymbol(List tokens, List outList, int start = 0, int end = 0) + { + var dys = new Stack(); + var dynamicLinqHelper = new DynamicLinqHelper(); + if (end == 0) { - var token = tokens[i].ToLower(); + end = tokens.Count - 1; + } - if (OperatingSystems.ContainsKey(token)) - { - //比较运算符 - lastOperatingSymbolIndex = i; - } - else if (LinkSymbols.ContainsKey(token)) + for (int i = start; i <= end; i++) + { + var token = tokens[i]; + + if (LinkSymbols.TryGetValue(token, out var symbol)) { - var left = ""; - for (int j = i + 1; j < lastOperatingSymbolIndex; j++) + if (dys.Count > 0) { - left += tokens[j]; + var linqHelper = dys.Peek(); + linqHelper.Child.Add(dynamicLinqHelper); } - - var right = ""; - for (int j = lastOperatingSymbolIndex + 1; j <= lastIndex; j++) + else { - right += tokens[j]; + outList.Add(dynamicLinqHelper); } - outList.Add(GetDynamicLinqHelper(LinkSymbols[token], - OperatingSystems[tokens[lastOperatingSymbolIndex]], - left, - right)); - lastIndex = i - 1; - lastOperatingSymbolIndex = -1; + dynamicLinqHelper = new DynamicLinqHelper() + { + LinkSymbol = symbol, + }; + continue; } - else if (i == 0 && lastOperatingSymbolIndex != -1) + + if (OperatingSystems.TryGetValue(token.ToLower(), out var system)) { - var left = ""; - for (int j = i; j < lastOperatingSymbolIndex; j++) - { - left += tokens[j]; - } + dynamicLinqHelper!.OperationSymbol = system; + continue; + } + - var right = ""; - for (int j = lastOperatingSymbolIndex + 1; j <= lastIndex; j++) + if (dynamicLinqHelper!.OperationSymbol != OperationSymbol.In) + { + if (string.Equals(token.Trim(), "(")) { - right += tokens[j]; + dynamicLinqHelper!.IsMerge = true; + dynamicLinqHelper.Child = new List(); + dys.Push(dynamicLinqHelper); + dynamicLinqHelper = new DynamicLinqHelper(); + continue; } + if (string.Equals(token.Trim(), ")")) + { + if (dys.Count > 1) + { + var dya = dys.Pop(); + dya.Child.Add(dynamicLinqHelper); - outList.Add(GetDynamicLinqHelper(LinkSymbol.Empty, - OperatingSystems[tokens[lastOperatingSymbolIndex]], - left, - right)); + dynamicLinqHelper = dya; + continue; + } + else + { + var dya = dys.Pop(); + dya.Child.Add(dynamicLinqHelper); + outList.Add(dya); + dynamicLinqHelper = null; + continue; + } + } } - } - outList.Reverse(); - return outList; - } - public static DynamicLinqHelper GetDynamicLinqHelper(LinkSymbol linkSymbol, OperationSymbol operationSymbol, string left, string right) - { - var dynamic = new DynamicLinqHelper - { - LinkSymbol = linkSymbol, - OperationSymbol = operationSymbol, - Left = left, - Right = right - }; + if (dynamicLinqHelper!.OperationSymbol is null) + { + dynamicLinqHelper.Left += token; + } + else + { + dynamicLinqHelper.Right += FormatValue(token); + } - if (dynamic.Right.StartsWith("\"") && dynamic.Right.EndsWith("\"")) - { - dynamic.Right = dynamic.Right.Remove(0, 1) - .Remove(dynamic.Right.Length - 2, 1) - .Replace(@"\""", @""""); + if (i == end) + { + outList.Add(dynamicLinqHelper); + dynamicLinqHelper = null; + } } - - return dynamic; } - - /// - /// 将字符串符号转成运算枚举符号 - /// - public static LinkSymbol ChangeLinkSymbol(string str) + public static string FormatValue(string str) { - // 这里判断链接符号 - // 当链接符号为Empty,则说明当前对象为表达式的最左边 - // 如果一个表达式出现两次链接符号为空,则说明输入的字符串格式有问题 - switch (str) - { - case "|": - return LinkSymbol.OrElse; - case "&": - return LinkSymbol.AndAlso; - default: - return LinkSymbol.Empty; - } + return str.TrimStart('"').TrimEnd('"'); + // return str.TrimStart('"').TrimEnd('"').Replace(@"\""", @""""); } + /// /// 将运算枚举符号转成具体使用方法 /// @@ -288,7 +263,7 @@ public static Dictionary GetOperationSymbol() { foreach (var name in attr.Name.Split(';')) { - _operatingSystems.Add(name.ToLower(), (OperationSymbol)item.GetValue(null)); + _operatingSystems.Add(name.ToLower(), (OperationSymbol) item.GetValue(null)); } } } @@ -307,7 +282,7 @@ public static Dictionary GetLinkSymbol() { foreach (var name in attr.Name.Split(';')) { - _linkSymbols.Add(name, (LinkSymbol)item.GetValue(null)); + _linkSymbols.Add(name, (LinkSymbol) item.GetValue(null)); } } } @@ -318,22 +293,18 @@ public static Dictionary GetLinkSymbol() public static string FormatString(string str) { - StringBuilder sb = new StringBuilder(); - int firstIndex = -1; - int lastIndex = -1; - for (int i = 0; i < str.Length; i++) + var sb = new StringBuilder(); + var firstIndex = -1; + var lastIndex = -1; + for (var i = 0; i < str.Length; i++) { var character = str[i]; if (firstIndex == -1) { if (character.IsNullOrEmpty() && i < str.Length - 2) - { if ('"'.Equals(str[i + 1])) - { firstIndex = i + 1; - } - } } else { @@ -341,7 +312,9 @@ public static string FormatString(string str) { var andIndex = str.IndexOf("\" &", firstIndex); var orIndex = str.IndexOf("\" |", firstIndex); - var andOrIndex = andIndex > 0 ? andIndex : orIndex; + var andOrIndex = Math.Min(andIndex, orIndex); + andOrIndex = andOrIndex == -1 ? Math.Max(andOrIndex, orIndex) : andOrIndex; + if (andOrIndex != -1) { lastIndex = andOrIndex; @@ -349,10 +322,7 @@ public static string FormatString(string str) else { if (i == firstIndex) continue; - if (i == str.Length - 1 || str[i + 1].IsNullOrEmpty()) - { - lastIndex = i; - } + if (i == str.Length - 1 || str[i + 1].IsNullOrEmpty()) lastIndex = i; } } @@ -368,10 +338,7 @@ public static string FormatString(string str) } } - if (firstIndex != -1) - { - continue; - } + if (firstIndex != -1) continue; sb.Append(character); } @@ -388,8 +355,8 @@ public static string FormatString(string str) "||", "&&", "==", "!=", "<=", ">=", "in", "like", "contains", "%=", - "startslike", "startscontains", "%>", - "endlike", "endcontains", "%<", + "startslike", "StartsLike", "startscontains", "StartsContains", "%>", + "endlike", "EndLike", "endcontains", "EndContains", "%<", }.Select(Regex.Escape)), @"""(?:\\.|[^""])*""", // string @"\d+(?:\.\d+)?", // number with optional decimal part @@ -397,47 +364,11 @@ public static string FormatString(string str) @"\S", // other 1-char tokens (or eat up one character in case of an error) }) + @")\s*"; - /// - /// 将字符串符号转成运算枚举符号 - /// - public static OperationSymbol ChangeOperationSymbol(string str) - { - switch (str.ToLower()) - { - case "<": - return OperationSymbol.LessThan; - case "<=": - return OperationSymbol.LessThanOrEqual; - case ">": - return OperationSymbol.GreaterThan; - case ">=": - return OperationSymbol.GreaterThanOrEqual; - case "==": - case "=": - return OperationSymbol.Equal; - case "!=": - return OperationSymbol.NotEqual; - case "contains": - case "like": - case "%=": - return OperationSymbol.Contains; - case "startslike": - case "startscontains": - case "%>": - return OperationSymbol.StartsContains; - case "endlike": - case "endcontains": - case "%<": - return OperationSymbol.EndContains; - } - - throw new Exception("OperationSymbol IS NULL"); - } /// /// 将运算枚举符号转成具体使用方法 /// - public static Expression ChangeOperationSymbol(OperationSymbol symbol, Expression key, object right) + public static Expression ChangeOperationSymbol(OperationSymbol? symbol, Expression key, object right) { // 将右边数据类型强行转换成左边一样的类型 // 两者如果Type不匹配则无法接下去的运算操作,抛出异常 @@ -468,30 +399,26 @@ public static Expression ChangeOperationSymbol(OperationSymbol symbol, Expressio { if (key.Type == typeof(string)) return key.Contains(Expression.Constant(newTypeRight)); //对string 特殊处理 由于string - else - return key.GreaterThan(Expression.Constant((newTypeRight))); + return key.GreaterThan(Expression.Constant((newTypeRight))); } case OperationSymbol.GreaterThanOrEqual: { if (key.Type == typeof(string)) return key.Contains(Expression.Constant(newTypeRight, typeof(string))); - else - return key.GreaterThanOrEqual(Expression.Constant(newTypeRight)); + return key.GreaterThanOrEqual(Expression.Constant(newTypeRight)); } case OperationSymbol.LessThan: { if (key.Type == typeof(string)) return key.Contains(Expression.Constant(newTypeRight, typeof(string))); - else - return key.LessThan(Expression.Constant((newTypeRight))); + return key.LessThan(Expression.Constant((newTypeRight))); } case OperationSymbol.LessThanOrEqual: { if (key.Type == typeof(string)) return key.Contains(Expression.Constant(newTypeRight, typeof(string))); - else - return key.LessThanOrEqual(Expression.Constant((newTypeRight))); + return key.LessThanOrEqual(Expression.Constant((newTypeRight))); } case OperationSymbol.NotEqual: return key.NotEqual(Expression.Constant(newTypeRight)); @@ -502,15 +429,10 @@ public static Expression ChangeOperationSymbol(OperationSymbol symbol, Expressio case OperationSymbol.EndContains: return key.EndContains(Expression.Constant(newTypeRight)); case OperationSymbol.In: - var contains = typeof(Enumerable).GetMethods(BindingFlags.Static | BindingFlags.Public) - .Single(x => x.Name == "Contains" && x.GetParameters().Length == 2) - .MakeGenericMethod(key.Type); return Expression.Constant(newTypeRight).Contains(key); - - //return Expression.Call(contains, , key); + default: + throw new ArgumentException("OperationSymbol IS NULL"); } - - throw new NotImplementedException("OperationSymbol IS NULL"); } } @@ -526,21 +448,20 @@ public class DynamicLinqHelper public string Right { get; set; } [Display(Name = "运算符")] - public OperationSymbol OperationSymbol { get; set; } + public OperationSymbol? OperationSymbol { get; set; } [Display(Name = "连接符")] public LinkSymbol LinkSymbol { get; set; } - public DynamicLinqHelper Clone() - { - return new DynamicLinqHelper() - { - Left = this.Left, - Right = this.Right, - OperationSymbol = this.OperationSymbol, - LinkSymbol = this.LinkSymbol, - }; - } + /// + /// 是否是合并 用于括号 + /// + public bool IsMerge { get; set; } = false; + + /// + /// 再有括号时候使用 + /// + public List Child { get; set; } } /// @@ -638,8 +559,9 @@ public static IOrderedQueryable ISort(this IQueryable var parameter = Expression.Parameter(type, "p"); var propertyAccess = Expression.MakeMemberAccess(parameter, property); var orderByExpression = Expression.Lambda(propertyAccess, parameter); - var resultExpression = Expression.Call(typeof(Queryable), command, new Type[] { type, property.PropertyType }, source.Expression, Expression.Quote(orderByExpression)); - return (IOrderedQueryable)source.Provider.CreateQuery(resultExpression); + var resultExpression = Expression.Call(typeof(Queryable), command, new Type[] {type, property.PropertyType}, source.Expression, + Expression.Quote(orderByExpression)); + return (IOrderedQueryable) source.Provider.CreateQuery(resultExpression); } /// @@ -666,7 +588,7 @@ public static IQueryable ISkip(this IQueryable source // 调用的方法 "Skip", // 元素类别 - new Type[] { source.ElementType }, + new Type[] {source.ElementType}, // 调用的表达树 source.Expression, // 参数 @@ -684,7 +606,7 @@ public static IQueryable ITake(this IQueryable source // 调用的方法 "Take", // 元素类别 - new Type[] { source.ElementType }, + new Type[] {source.ElementType}, // 调用的表达树 source.Expression, // 参数 @@ -716,7 +638,8 @@ public static IEnumerable IDistinctBy(this IEnumerable>(); _baseRepository.Db.Aop.OnLogExecuting = (sql, p) => { - _testOutputHelper.WriteLine(""); - _testOutputHelper.WriteLine("==================FullSql=====================", "", new string[] { sql.GetType().ToString(), GetParas(p), "【SQL语句】:" + sql }); - _testOutputHelper.WriteLine("【SQL语句】:" + sql); - _testOutputHelper.WriteLine(GetParas(p)); - _testOutputHelper.WriteLine("=============================================="); - _testOutputHelper.WriteLine(""); + _testOutputHelper.WriteLine(UtilMethods.GetNativeSql(sql, p)); }; - //DbContext.Init(BaseDBConfig.ConnectionString,(DbType)BaseDBConfig.DbType); Init(); } - - private static string GetParas(SugarParameter[] pars) - { - string key = "【SQL参数】:"; - foreach (var param in pars) - { - key += $"{param.ParameterName}:{param.Value}\n"; - } - - return key; - } - + private void Init() { _baseRepository.Db.CodeFirst.InitTables(); _baseRepository.Db.CodeFirst.InitTables(); + _baseRepository.Db.CodeFirst.InitTables(); } + /// + /// 普通查询 例子
    + /// 没有复杂链表 主要使用导航属性
    + /// 推荐将条件拼接交给前端 后端只定义个接口就很方便 维护也很简单
    + ///
    [Fact] public async void Get_Blogs_DynamicTest() { @@ -69,34 +59,100 @@ public async void Get_Blogs_DynamicTest() await TestConditions("btitle like \" 测试数据\""); await TestConditions("btitle like \"测试数据\" && bId>0"); await TestConditions("btitle like \"测试!@#$%^&*()_+|}{\":<>?LP\"数据\" && bId>0"); - await TestConditions("btitle like \"测试!@+)(*()_&%^&^$^%$IUYWIQOJVLXKZM>?Z<>??LP\"数据\" && bId>0"); + await TestConditions( + "btitle like \"测试!@+)(*()_&%^&^$^%$IUYWIQOJVLXKZM>?Z<>??LP\"数据\" && bId>0"); await TestConditions("IsDeleted == false"); await TestConditions("IsDeleted == true"); + await TestConditions("IsDeleted == true && ( btitle like \"张三\" || btitle like \"李四\" )"); + await TestConditions( + "IsDeleted == true && ( btitle like \"张三\" || btitle like \"李四\" || ( btitle StartsLike \"王五\" && btitle EndLike \"赵六\" ) )"); //导航属性 //一对一 //查询 老张的文章 - await TestConditions("User.RealName like \"老张\""); + await TestConditions("User.RealName like \"老张\""); //查询 2019年后的老张文章 - await TestConditions("User.RealName like \"老张\" && bUpdateTime>=\"2019-01-01 01:01:01\""); + await TestConditions("User.RealName like \"老张\" && bUpdateTime>=\"2019-01-01 01:01:01\""); //一对多 //查询 评论中有"写的不错"的文章 - await TestConditions("Comments.Comment like \"写的不错\""); + await TestConditions("Comments.Comment like \"写的不错\""); //查询 2019后的 评论中有"写的不错"的文章 - await TestConditions("Comments.Comment like \"写的不错\" && bUpdateTime>=\"2019-01-01 01:01:01\""); + await TestConditions("Comments.Comment like \"写的不错\" && bUpdateTime>=\"2019-01-01 01:01:01\""); //查询 有老张评论的文章 await TestConditions("Comments.User.LoginName like \"老张\""); } + /// + /// 复杂链表 也能使用动态条件
    + /// 存在复杂的链表 left join等 + ///
    + [Fact] + public async void Get_Blogs_DynamicJoinTest() + { + //方便前端自定义条件查询 + //语法更舒服 + var data = await _baseRepository.Query(); + _testOutputHelper.WriteLine(data.ToJson()); + + await TestJoinConditions(""); + await TestJoinConditions("bId=1"); + await TestJoinConditions("bId=2"); + await TestJoinConditions("bId in (1,2,3,4,5)"); + await TestJoinConditions("bId in (1,2,3,4,5)|| bUpdateTime>=\"2019-01-01 01:01:01\""); + await TestJoinConditions("btitle like \" 测试数据\""); + await TestJoinConditions("btitle like \"测试数据\" && bId>0"); + await TestJoinConditions("btitle like \"测试!@#$%^&*()_+|}{\":<>?LP\"数据\" && bId>0"); + await TestJoinConditions( + "btitle like \"测试!@+)(*()_&%^&^$^%$IUYWIQOJVLXKZM>?Z<>??LP\"数据\" && bId>0"); + await TestJoinConditions("IsDeleted == false"); + await TestJoinConditions("IsDeleted == true"); + await TestJoinConditions("IsDeleted == true && ( btitle like \"张三\" || btitle like \"李四\" )"); + await TestJoinConditions( + "IsDeleted == true && ( btitle like \"张三\" || btitle like \"李四\" || ( btitle StartsLike \"王五\" && btitle EndLike \"赵六\" ) )"); + + //导航属性 + + //一对一 + + //查询 老张的文章 + await TestJoinConditions("User.RealName like \"老张\""); + //查询 2019年后的老张文章 + await TestJoinConditions("User.RealName like \"老张\" && bUpdateTime>=\"2019-01-01 01:01:01\""); + + //一对多 + + //查询 评论中有"写的不错"的文章 + await TestJoinConditions("Comments.Comment like \"写的不错\""); + //查询 2019后的 评论中有"写的不错"的文章 + await TestJoinConditions("Comments.Comment like \"写的不错\" && bUpdateTime>=\"2019-01-01 01:01:01\""); + //查询 有老张评论的文章 + await TestJoinConditions("Comments.User.LoginName like \"老张\""); + } + + private async Task TestConditions(string conditions) { var express = DynamicLinqFactory.CreateLambda(conditions); + _testOutputHelper.WriteLine(new string('=', 100)); var product = await _baseRepository.Query(express); + _testOutputHelper.WriteLine($"条件:{DynamicLinqFactory.FormatString(conditions)}\r\nLambda:{express}\r\n结果:{product.Count}"); + _testOutputHelper.WriteLine(new string('=', 100)); + } + + private async Task TestJoinConditions(string conditions) + { + var express = DynamicLinqFactory.CreateLambda(conditions); + _testOutputHelper.WriteLine(new string('=', 100)); + var product = await _baseRepository.Db.Queryable() + .LeftJoin((b, u) => Convert.ToInt64(b.bsubmitter) == u.Id) + .MergeTable() + .Where(express) + .ToListAsync(); + _testOutputHelper.WriteLine($"条件:{DynamicLinqFactory.FormatString(conditions)}\r\nLambda:{express}\r\n结果:{product.Count}"); _testOutputHelper.WriteLine(new string('=', 100)); - _testOutputHelper.WriteLine($"原条件:{conditions}\r\nLambda:{express}\r\n结果:{product.Count}"); } } \ No newline at end of file From 8b4e378a4931bb17849bb21a66698afe651b5c04 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 20 Jul 2023 12:48:49 +0800 Subject: [PATCH 297/382] feat: dm database --- Blog.Core.Api/wwwroot/BlogCore.Data.json/TopicDetail.tsv | 2 +- Blog.Core.Common/Seed/DBSeed.cs | 4 ++-- Blog.Core.Model/Models/GblLogAudit.cs | 4 ++-- Blog.Core.Model/Models/TopicDetail.cs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Blog.Core.Api/wwwroot/BlogCore.Data.json/TopicDetail.tsv b/Blog.Core.Api/wwwroot/BlogCore.Data.json/TopicDetail.tsv index 2cee8073..ff5f8d68 100644 --- a/Blog.Core.Api/wwwroot/BlogCore.Data.json/TopicDetail.tsv +++ b/Blog.Core.Api/wwwroot/BlogCore.Data.json/TopicDetail.tsv @@ -3,7 +3,7 @@ "TopicId": 1, "tdLogo": null, "tdName": "第一章 罗马的诞生 第一节 传说的年代", - "tdContent": "

    第一节 传说的年代<\/p>

    每个民族都有自己的神话传说。大概希望知道本民族的来源是个很自然的愿望吧。但这是一个难题,因为这几乎不可能用科学的方法来解释清楚。不过所有的民族都没有这样的奢求。他们只要有一个具有一定的条理性,而又能振奋其民族精神的浪漫故事就行,别抬杠,象柏杨那样将中国的三皇五帝都来个科学分析,来评论他们的执政之优劣是大可不必的。<\/p>

    对於罗马人,他们有一个和特洛伊城的陷落相关的传说。<\/p>

    位於小亚细亚西岸的繁荣的城市特洛伊,在遭受了阿加美农统帅的希腊联军的十年围攻之後,仍未陷落。希腊联军於是留下一个巨大的木马後假装撤兵。特洛伊人以为那是希腊联军留给自己的礼物,就将它拉入城内。<\/p>

    当庆祝胜利的狂欢结束,特洛伊人满怀对明日的和平生活的希望熟睡後,藏在木马内的希腊士兵一个又一个地爬了出来。就在这天夜里,特洛伊城便在火光和叫喊中陷落了。全城遭到大屠杀 ,幸免於死的人全都沦为奴隶。混乱之中只有特洛伊国王的驸马阿伊尼阿斯带着老父,儿子等数人在女神维娜斯的帮助下成功地逃了出来。这驸马爷乃是女神维娜斯与凡人男子之间的儿子,女神维娜斯不忍心看着自己的儿子被希腊士兵屠杀 。<\/p>

    这阿驸马一行人分乘几条船,离开了火光冲天的特洛伊城。在女神维娜斯的指引下,浪迹地中海,最後在意大利西岸登陆。当地的国王看上了阿伊尼阿斯并把自己的女儿嫁给了他。他又是驸马了,与他的新妻过起了幸福的生活。难民们也安定了下来。<\/p>

    阿伊尼阿斯死後,跟随他逃难来的儿子继承了王位。新王在位三十年後,离开了这块地方,到台伯河(Tiber)下游建了一个新城亚尔巴龙迦城。这便是罗马城的前身了。<\/p>

    罗马人自古相信罗马城是公元前731年4月21日由罗莫路和勒莫(Romulus and Remus)建设的。而这两个孪生兄弟是从特洛伊逃出的阿伊尼阿斯的子孙。後来,罗马人接触了希腊文化後才知道特洛伊的陷落是在公元前十三世纪,老早的事了。罗马人好象并没有对这段空白有任何烦恼,随手编出一串传说,把那空白给填补了。反正传说这事荒唐一点的更受欢迎。经过了一堆搞不清谁是谁的王的统治,出现了一个什麽王的公主。<\/p>

    公主的叔父在篡夺了王位後,为了防止公主结婚生子威胁自己的王位,便任命未婚的公主为巫女。这是主管祭神的职位,象修女一样不得结婚。<\/p>

    不巧一日这美丽的公主在祭事的空余,来到小河边午睡。也是合当有事,被过往的战神玛尔斯(Mars)一见钟情。这玛尔斯本是靠挑起战争混饭吃的,但也常勾引 良家妇女。这天战神也没错过机会,立刻由天而降,与公主一试云雨。据说战神的技术特神,公主还没来得及醒便完事升天去了。後来公主生了一双胞胎,起名罗莫路和勒莫。<\/p>

    叔父闻知此事大怒,将公主投入大牢,又把那双胞胎放在篮子里抛入台伯河,指望那篮子漂入大海将那双胞胎淹死。类似的故事在旧约圣经里也有,那是关於摩西的事,好象这类传说在当地十分流行。<\/p>

    再说那兄弟俩的篮子被河口附近茂密的灌木丛钩住而停了下来,俩人哭声引来的一只过路的母狼。意大利的狼都带点慈悲心,不但没吃了俩人当点心,还用自己的奶去喂他们,这才救了俩小命。<\/p>

    不过,总是由狼养活也没法交 待,於是又一日一放羊的在这地盘上溜哒,发现了兄弟俩,将他们抱了回去扶养成人 。据说现在这一带仍有许多放羊的。<\/p>

    兄弟俩长大後成了这一带放羊人的头,在与别的放羊人的圈子的打斗中不断地扩展自己的势力范围。圈子大了,情报也就多了,终于有一天,罗莫路和勒莫知道了自己身事。<\/p>

    兄弟俩就带着手下的放羊人呼啸着去打破了亚尔巴龙迦城,杀了那国王,将王位又交 还给了自己祖父。他们的母亲似乎已经死在了大牢里。但兄弟俩也没在亚尔巴龙迦城多住,他们认为亚尔巴龙迦城位於山地,虽然易守难攻,却不利发展。加上兄弟俩是在台伯河的下游长大的,所以便回到原地,建了个新城。除了手下的放羊人又加上了附近的放羊人和农民。<\/p>

    消灭了共同的敌人後,兄弟俩的关系开始恶化。有人说是为了新城的命名,有人说是为了新城的城址,也有人说是为了争夺王位。兄弟俩於是分割统治,各占一小山包。但纷争又开始了,勒莫跳过了罗莫路为表示势力范围而挖的沟。对於这种侵犯他人权力的行为,罗莫路大义灭亲地在自己兄弟的後脑上重重地来了一锄头,勒莫便被灭了。<\/p>

    <\/p>

    於是这城便以罗莫路的名字命名为罗马,这就是公元前731年4月21日的事了,到现在这天仍是意大利的节日,罗马人会欢天喜地的庆祝罗莫路杀了自己的…不,是庆祝罗马建城。王位当然也得由罗莫路来坐,一切问题都没了。这时四年一度的奥林匹克运动会在希腊已经开了六回,罗马也从传说的时代走出,近入了历史时代。<\/p>


    <\/p>", + "tdContent": "

    第一节 传说的年代<\/p>

    每个民族都有自己的神话传说。大概希望知道本民族的来源是个很自然的愿望吧。但这是一个难题,因为这几乎不可能用科学的方法来解释清楚。", "tdDetail": "标题", "tdSectendDetail": null, "tdIsDelete": 0, diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index e7eb4e27..6fa8f901 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -81,7 +81,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) // 创建数据库 Console.WriteLine($"Create Database(The Db Id:{MyContext.ConnId})..."); - if (MyContext.DbType != SqlSugar.DbType.Oracle) + if (MyContext.DbType != SqlSugar.DbType.Oracle && MyContext.DbType != SqlSugar.DbType.Dm) { myContext.Db.DbMaintenance.CreateDatabase(); ConsoleHelper.WriteSuccessLine($"Database created successfully!"); @@ -89,7 +89,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) else { //Oracle 数据库不支持该操作 - ConsoleHelper.WriteSuccessLine($"Oracle 数据库不支持该操作,可手动创建Oracle数据库!"); + ConsoleHelper.WriteSuccessLine($"Oracle 数据库不支持该操作,可手动创建Oracle/Dm数据库!"); } // 创建数据库表,遍历指定命名空间下的class, diff --git a/Blog.Core.Model/Models/GblLogAudit.cs b/Blog.Core.Model/Models/GblLogAudit.cs index 2cecce8b..d4a85411 100644 --- a/Blog.Core.Model/Models/GblLogAudit.cs +++ b/Blog.Core.Model/Models/GblLogAudit.cs @@ -57,13 +57,13 @@ public class GblLogAudit ///

    ///错误信息 /// - [SugarColumn(ColumnDescription = "错误信息", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, Length = 5000)] + [SugarColumn(ColumnDescription = "错误信息", IsNullable = false, IsPrimaryKey = false, IsIdentity = false, Length = 2000)] public string Message { get; set; } /// ///异常 /// - [SugarColumn(ColumnDescription = "异常", IsNullable = true, IsPrimaryKey = false, IsIdentity = false, Length = 5000)] + [SugarColumn(ColumnDescription = "异常", IsNullable = true, IsPrimaryKey = false, IsIdentity = false, Length = 2000)] public string Exception { get; set; } } diff --git a/Blog.Core.Model/Models/TopicDetail.cs b/Blog.Core.Model/Models/TopicDetail.cs index 1a98f3af..6cb69c67 100644 --- a/Blog.Core.Model/Models/TopicDetail.cs +++ b/Blog.Core.Model/Models/TopicDetail.cs @@ -19,7 +19,7 @@ public TopicDetail() [SugarColumn(Length = 200, IsNullable = true)] public string tdName { get; set; } - [SugarColumn(Length = 6000, IsNullable = true)] + [SugarColumn(Length = 2000, IsNullable = true)] public string tdContent { get; set; } [SugarColumn(Length = 2000, IsNullable = true)] From e360a4bbe747942c236daa1e50e9b98c93daac0f Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 20 Jul 2023 17:13:08 +0800 Subject: [PATCH 298/382] =?UTF-8?q?feat=EF=BC=9Achange=20access=20trend=20?= =?UTF-8?q?log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Api.csproj | 2 -- Blog.Core.Api/Blog.Core.Model.xml | 2 +- Blog.Core.Model/Blog.Core.Model.csproj | 2 +- Blog.Core.Model/Models/AccessTrendLog.cs | 2 +- .../QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs | 8 ++++---- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index f3f9befa..dc7680ca 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -61,8 +61,6 @@ - - diff --git a/Blog.Core.Api/Blog.Core.Model.xml b/Blog.Core.Api/Blog.Core.Model.xml index 1eb3423b..8de49a7b 100644 --- a/Blog.Core.Api/Blog.Core.Model.xml +++ b/Blog.Core.Api/Blog.Core.Model.xml @@ -200,7 +200,7 @@ 用户访问趋势日志
    - + 用户 diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index ac851de2..f1e8764d 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -16,7 +16,7 @@ - + diff --git a/Blog.Core.Model/Models/AccessTrendLog.cs b/Blog.Core.Model/Models/AccessTrendLog.cs index fd6dbae7..bc4848cf 100644 --- a/Blog.Core.Model/Models/AccessTrendLog.cs +++ b/Blog.Core.Model/Models/AccessTrendLog.cs @@ -12,7 +12,7 @@ public class AccessTrendLog : RootEntityTkey /// 用户 ///
    [SugarColumn(Length = 128, IsNullable = true)] - public string User { get; set; } + public string UserInfo { get; set; } /// /// 次数 diff --git a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs index 1d501c34..68a9aa53 100644 --- a/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs +++ b/Blog.Core.Tasks/QuartzNet/Jobs/Job_AccessTrendLog_Quartz.cs @@ -60,7 +60,7 @@ public async Task Run(IJobExecutionContext context) foreach (var item in activeUsers) { - var user = (await _accessTrendLogServices.Query(d => d.User != "" && d.User == item.user)).FirstOrDefault(); + var user = (await _accessTrendLogServices.Query(d => d.UserInfo != "" && d.UserInfo == item.user)).FirstOrDefault(); if (user != null) { user.Count += item.count; @@ -73,13 +73,13 @@ await _accessTrendLogServices.Add(new AccessTrendLog() { Count = item.count, UpdateTime = logUpdate, - User = item.user + UserInfo = item.user }); } } // 重新拉取 - var actUsers = await _accessTrendLogServices.Query(d => d.User != "", d => d.Count, false); + var actUsers = await _accessTrendLogServices.Query(d => d.UserInfo != "", d => d.Count, false); actUsers = actUsers.Take(15).ToList(); List activeUserVMs = new(); @@ -87,7 +87,7 @@ await _accessTrendLogServices.Add(new AccessTrendLog() { activeUserVMs.Add(new ActiveUserVM() { - user = item.User, + user = item.UserInfo, count = item.Count }); } From 3396b6b34d09ab097fd56d4aaee34cf4a1cbc363 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 21 Jul 2023 10:53:32 +0800 Subject: [PATCH 299/382] Update appsettings.json --- Blog.Core.Api/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 5fdf0000..52229055 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -152,7 +152,7 @@ "DBType": 5, "Enabled": false, "HitRate": 10, - "Connection": "PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA;" + "Connection": "Server=49.232.247.202:5236;User Id=TESTDBA;PWD=TESTDBA123654;SCHEMA=TESTDBA;" }, { "ConnId": "WMBLOG_KDBNDP", From b5ea86faa3717b91e02dc4b365f3f69077119529 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 21 Jul 2023 11:13:44 +0800 Subject: [PATCH 300/382] Update appsettings.json --- Blog.Core.Api/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 52229055..d94a7606 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -152,7 +152,7 @@ "DBType": 5, "Enabled": false, "HitRate": 10, - "Connection": "Server=49.232.247.202:5236;User Id=TESTDBA;PWD=TESTDBA123654;SCHEMA=TESTDBA;" + "Connection": "Server=xxxxx:5236;User Id=xxxxx;PWD=xxxxx;SCHEMA=TESTDBA;" }, { "ConnId": "WMBLOG_KDBNDP", From 7cf94998c294291e676dbbb85f25726fd43b0341 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Fri, 21 Jul 2023 18:03:09 +0800 Subject: [PATCH 301/382] test --- .../Systems/DynamicCodeFirstController.cs | 35 +++++++++++++ .../DB/Extension/DynamicBuildException.cs | 50 +++++++++++++++++++ Blog.Core.Model/Models/RootTkey/BaseEntity.cs | 2 + 3 files changed, 87 insertions(+) create mode 100644 Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs create mode 100644 Blog.Core.Common/DB/Extension/DynamicBuildException.cs diff --git a/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs b/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs new file mode 100644 index 00000000..e2d56377 --- /dev/null +++ b/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs @@ -0,0 +1,35 @@ +using Blog.Core.Controllers; +using Blog.Core.Model; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using SqlSugar; + +namespace Blog.Core.Api.Controllers.Systems; + +/// +/// 缓存管理 +/// +[Route("api/Systems/[controller]/[action]")] +[ApiController] +[Authorize(Permissions.Name)] +public class DynamicCodeFirstController : BaseApiController +{ + private readonly ISqlSugarClient _db; + + public DynamicCodeFirstController(ISqlSugarClient db) + { + _db = db; + } + + + /// + /// 测试建表 + /// + /// + [HttpPost] + public MessageModel TestCreateTable() + { + _db.DynamicBuilder(); + return Success(); + } +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/Extension/DynamicBuildException.cs b/Blog.Core.Common/DB/Extension/DynamicBuildException.cs new file mode 100644 index 00000000..6f3a1bad --- /dev/null +++ b/Blog.Core.Common/DB/Extension/DynamicBuildException.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Reflection.Emit; +using Blog.Core.Common.Extensions; +using SqlSugar; + +namespace Blog.Core.Common.DB.Extension; + +public static class DynamicBuildException +{ + private static List GetEntityAttr(this DynamicBuilder builder) + { + FieldInfo fieldInfo = builder.GetType().GetField("entityAttr", BindingFlags.Instance | BindingFlags.NonPublic); + List entityAttr = (List) fieldInfo.GetValue(builder); + return entityAttr; + } + + private static CustomAttributeBuilder CreateIndex(SugarIndexAttribute indexAttribute) + { + Type type = typeof(SugarIndexAttribute); + return new CustomAttributeBuilder(type.GetConstructor(new[] + { + typeof(string), typeof(string), typeof(OrderByType), typeof(bool) + })!, + new object[] + { + indexAttribute.IndexName, indexAttribute.IndexFields.First().Key, indexAttribute.IndexFields.First().Value, indexAttribute.IsUnique + }, + new PropertyInfo[] + { + type.GetProperty("IndexName"), + type.GetProperty("IndexFields"), + type.GetProperty("IsUnique"), + }, + new object[] + { + indexAttribute.IndexName, indexAttribute.IndexFields, indexAttribute.IsUnique + }); + } + + public static DynamicProperyBuilder CreateIndex(this DynamicProperyBuilder builder, SugarIndexAttribute indexAttribute) + { + var classBuilder = builder.baseBuilder; + var entityAttr = classBuilder.GetEntityAttr(); + entityAttr.Add(CreateIndex(indexAttribute)); + return builder; + } +} \ No newline at end of file diff --git a/Blog.Core.Model/Models/RootTkey/BaseEntity.cs b/Blog.Core.Model/Models/RootTkey/BaseEntity.cs index b6dabe54..5d5d4414 100644 --- a/Blog.Core.Model/Models/RootTkey/BaseEntity.cs +++ b/Blog.Core.Model/Models/RootTkey/BaseEntity.cs @@ -4,6 +4,8 @@ namespace Blog.Core.Model.Models.RootTkey; +[SugarIndex("index_{table}_Enabled", nameof(Enabled), OrderByType.Asc)] +[SugarIndex("index_{table}_IsDeleted", nameof(IsDeleted), OrderByType.Asc)] public class BaseEntity : RootEntityTkey, IDeleteFilter { #region 数据状态管理 From 667cc8fafcfe350709235cb17401c537452a7b19 Mon Sep 17 00:00:00 2001 From: LemonNoCry Date: Fri, 21 Jul 2023 20:18:51 +0800 Subject: [PATCH 302/382] test --- Blog.Core.Api/Blog.Core.xml | 23 +++++++ .../Systems/DynamicCodeFirstController.cs | 63 ++++++++++++++++++- Blog.Core.Api/appsettings.json | 30 ++++----- .../DB/Extension/DynamicBuildException.cs | 34 +++++----- 4 files changed, 117 insertions(+), 33 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 6dd7f16b..566d345a 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1391,6 +1391,29 @@
    + + + 缓存管理 + + + + + 测试建表 + + + + + + 测试查询 + + + + + + 测试写入 + + + 多租户-多库方案 测试 diff --git a/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs b/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs index e2d56377..29260f03 100644 --- a/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs +++ b/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs @@ -1,7 +1,11 @@ +using Blog.Core.Common.DB.Extension; using Blog.Core.Controllers; using Blog.Core.Model; +using Blog.Core.Model.Models.RootTkey; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using NetTaste; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using SqlSugar; namespace Blog.Core.Api.Controllers.Systems; @@ -21,6 +25,36 @@ public DynamicCodeFirstController(ISqlSugarClient db) _db = db; } + /// + /// 动态type + /// + /// + private Type GetDynamicType() + { + return _db.DynamicBuilder().CreateClass("DynamicTestTable") + //{table} 占位符会自动替换成表名 + .CreateIndex(new SugarIndexAttribute("idx_{table}_Code", "Code", OrderByType.Desc)) + .CreateProperty("Id", typeof(int), new SugarColumn() {IsPrimaryKey = true, IsIdentity = true}) + .CreateProperty("Code", typeof(string), new SugarColumn() {Length = 50}) + .CreateProperty("Name", typeof(string), new SugarColumn() {Length = 50}) + .WithCache() + .BuilderType(); + } + + /// + /// 动态type 继承BaseEntity + /// + /// + private Type GetDynamicType2() + { + return _db.DynamicBuilder().CreateClass("DynamicTestTable2", null, typeof(BaseEntity)) + //{table} 占位符会自动替换成表名 + .CreateIndex(new SugarIndexAttribute("idx_{table}_Code", "Code", OrderByType.Desc)) + .CreateProperty("Code", typeof(string), new SugarColumn() {Length = 50}) + .CreateProperty("Name", typeof(string), new SugarColumn() {Length = 50}) + .WithCache() + .BuilderType(); + } /// /// 测试建表 @@ -29,7 +63,34 @@ public DynamicCodeFirstController(ISqlSugarClient db) [HttpPost] public MessageModel TestCreateTable() { - _db.DynamicBuilder(); + var type = GetDynamicType(); + _db.CodeFirst.InitTables(type); + return Success(); + } + + /// + /// 测试查询 + /// + /// + [HttpGet] + public MessageModel TestQuery() + { + var type = GetDynamicType(); + return Success(_db.QueryableByObject(type).ToList()); + } + + /// + /// 测试写入 + /// + /// + [HttpPost] + public MessageModel TestInsert(string code, string name) + { + var type = GetDynamicType(); + var entity = Activator.CreateInstance(type); + type.GetProperty("Code")!.SetValue(entity, code); + type.GetProperty("Name")!.SetValue(entity, name); + _db.InsertableByObject(entity).ExecuteCommand(); return Success(); } } \ No newline at end of file diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index d94a7606..3b3b4041 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -76,13 +76,12 @@ "SvcName": "", // /svc/blog "UseLoadTest": false }, - // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; // *** 单库操作,把 MutiDBEnabled 设为false ***; // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 //Log:日志库; - "MainDB": "WMBLOG_SQLITE", //当前项目的主库,所对应的连接字符串的Enabled必须为true + "MainDB": "WMBLOG_MSSQL_1", //当前项目的主库,所对应的连接字符串的Enabled必须为true "MutiDBEnabled": true, //是否开启多库模式 "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer "DBS": [ @@ -99,23 +98,24 @@ { "ConnId": "WMBLOG_SQLITE", "DBType": 2, - "Enabled": true, + "Enabled": false, "HitRate": 50, // 值越大,优先级越高 "Connection": "WMBlog.db" //sqlite只写数据库名就行 }, { "ConnId": "Log", //日志库连接固定名称,不要改,其他的可以改 - "DBType": 2, + "DBType": 1, "Enabled": true, "HitRate": 50, // 值越大,优先级越高 - "Connection": "WMBlogLog.db" //sqlite只写数据库名就行 + "Connection": "Server=localhost;Database=BlogCoreLog;Trusted_Connection=True;", + "ProviderName": "System.Data.SqlClient" }, { "ConnId": "WMBLOG_MSSQL_1", "DBType": 1, - "Enabled": false, + "Enabled": true, "HitRate": 40, - "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "Connection": "Server=localhost;Database=BlogCore;Trusted_Connection=True;", "ProviderName": "System.Data.SqlClient" }, { @@ -257,15 +257,16 @@ "RealIpHeader": "X-Real-IP", "ClientIdHeader": "X-ClientId", "IpWhitelist": [], //白名单 - "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], - "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], + "EndpointWhitelist": ["get:/api/xxx", "*:/api/yyy"], + "ClientWhitelist": ["dev-client-1", "dev-client-2"], "QuotaExceededResponse": { "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", "ContentType": "application/json", "StatusCode": 429 }, "HttpStatusCode": 429, //返回状态码 - "GeneralRules": [ //api规则,结尾一定要带* + "GeneralRules": [ + //api规则,结尾一定要带* { "Endpoint": "*:/api/blog*", "Period": "1m", @@ -287,7 +288,6 @@ "Limit": 500 } ] - }, "ConsulSetting": { "ServiceName": "BlogCoreService", @@ -296,7 +296,8 @@ "ServiceHealthCheck": "/healthcheck", "ConsulAddress": "http://localhost:8500" }, - "PayInfo": { //建行聚合支付信息 + "PayInfo": { + //建行聚合支付信息 "MERCHANTID": "", //商户号 "POSID": "", //柜台号 "BRANCHID": "", //分行号 @@ -306,7 +307,7 @@ "OutAddress": "http://127.0.0.1:12345" //外联地址 }, "nacos": { - "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 + "ServerAddresses": ["http://localhost:8848"], // nacos 连接地址 "DefaultTimeOut": 15000, // 默认超时时间 "Namespace": "public", // 命名空间 "ListenInterval": 10000, // 监听的频率 @@ -317,7 +318,8 @@ "LogFiedOutPutConfigs": { "tcpAddressHost": "", // 输出elk的tcp连接地址 "tcpAddressPort": 0, // 输出elk的tcp端口号 - "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 + "ConfigsInfo": [ + // 配置的输出elk节点内容 常用语动态标识 { "FiedName": "applicationName", "FiedValue": "Blog.Core.Api" diff --git a/Blog.Core.Common/DB/Extension/DynamicBuildException.cs b/Blog.Core.Common/DB/Extension/DynamicBuildException.cs index 6f3a1bad..15e638a4 100644 --- a/Blog.Core.Common/DB/Extension/DynamicBuildException.cs +++ b/Blog.Core.Common/DB/Extension/DynamicBuildException.cs @@ -20,24 +20,22 @@ private static List GetEntityAttr(this DynamicBuilder bu private static CustomAttributeBuilder CreateIndex(SugarIndexAttribute indexAttribute) { Type type = typeof(SugarIndexAttribute); - return new CustomAttributeBuilder(type.GetConstructor(new[] - { - typeof(string), typeof(string), typeof(OrderByType), typeof(bool) - })!, - new object[] - { - indexAttribute.IndexName, indexAttribute.IndexFields.First().Key, indexAttribute.IndexFields.First().Value, indexAttribute.IsUnique - }, - new PropertyInfo[] - { - type.GetProperty("IndexName"), - type.GetProperty("IndexFields"), - type.GetProperty("IsUnique"), - }, - new object[] - { - indexAttribute.IndexName, indexAttribute.IndexFields, indexAttribute.IsUnique - }); + var constructorTypes = new List() {typeof(string)}; + for (int i = 0; i < indexAttribute.IndexFields.Count; i++) + { + constructorTypes.AddRange(new[] {typeof(string), typeof(OrderByType)}); + } + + constructorTypes.Add(typeof(bool)); + + var values = new List() {indexAttribute.IndexName}; + foreach (var indexField in indexAttribute.IndexFields) + { + values.AddRange(new object[] {indexField.Key, indexField.Value}); + } + + values.Add(indexAttribute.IsUnique); + return new CustomAttributeBuilder(type.GetConstructor(constructorTypes.ToArray())!, values.ToArray()); } public static DynamicProperyBuilder CreateIndex(this DynamicProperyBuilder builder, SugarIndexAttribute indexAttribute) From 6e136fe861c01dcdf392fefbf5cd55010bf29a90 Mon Sep 17 00:00:00 2001 From: LemonNoCry Date: Fri, 21 Jul 2023 20:23:33 +0800 Subject: [PATCH 303/382] =?UTF-8?q?=E2=9C=A8=20=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Systems/DynamicCodeFirstController.cs | 2 +- Blog.Core.Api/appsettings.json | 30 +++++++++---------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs b/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs index 29260f03..37c84791 100644 --- a/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs +++ b/Blog.Core.Api/Controllers/Systems/DynamicCodeFirstController.cs @@ -11,7 +11,7 @@ namespace Blog.Core.Api.Controllers.Systems; /// -/// 缓存管理 +/// 动态建表 CURD /// [Route("api/Systems/[controller]/[action]")] [ApiController] diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 3b3b4041..d94a7606 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -76,12 +76,13 @@ "SvcName": "", // /svc/blog "UseLoadTest": false }, + // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; // *** 单库操作,把 MutiDBEnabled 设为false ***; // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 //Log:日志库; - "MainDB": "WMBLOG_MSSQL_1", //当前项目的主库,所对应的连接字符串的Enabled必须为true + "MainDB": "WMBLOG_SQLITE", //当前项目的主库,所对应的连接字符串的Enabled必须为true "MutiDBEnabled": true, //是否开启多库模式 "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer "DBS": [ @@ -98,24 +99,23 @@ { "ConnId": "WMBLOG_SQLITE", "DBType": 2, - "Enabled": false, + "Enabled": true, "HitRate": 50, // 值越大,优先级越高 "Connection": "WMBlog.db" //sqlite只写数据库名就行 }, { "ConnId": "Log", //日志库连接固定名称,不要改,其他的可以改 - "DBType": 1, + "DBType": 2, "Enabled": true, "HitRate": 50, // 值越大,优先级越高 - "Connection": "Server=localhost;Database=BlogCoreLog;Trusted_Connection=True;", - "ProviderName": "System.Data.SqlClient" + "Connection": "WMBlogLog.db" //sqlite只写数据库名就行 }, { "ConnId": "WMBLOG_MSSQL_1", "DBType": 1, - "Enabled": true, + "Enabled": false, "HitRate": 40, - "Connection": "Server=localhost;Database=BlogCore;Trusted_Connection=True;", + "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", "ProviderName": "System.Data.SqlClient" }, { @@ -257,16 +257,15 @@ "RealIpHeader": "X-Real-IP", "ClientIdHeader": "X-ClientId", "IpWhitelist": [], //白名单 - "EndpointWhitelist": ["get:/api/xxx", "*:/api/yyy"], - "ClientWhitelist": ["dev-client-1", "dev-client-2"], + "EndpointWhitelist": [ "get:/api/xxx", "*:/api/yyy" ], + "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], "QuotaExceededResponse": { "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", "ContentType": "application/json", "StatusCode": 429 }, "HttpStatusCode": 429, //返回状态码 - "GeneralRules": [ - //api规则,结尾一定要带* + "GeneralRules": [ //api规则,结尾一定要带* { "Endpoint": "*:/api/blog*", "Period": "1m", @@ -288,6 +287,7 @@ "Limit": 500 } ] + }, "ConsulSetting": { "ServiceName": "BlogCoreService", @@ -296,8 +296,7 @@ "ServiceHealthCheck": "/healthcheck", "ConsulAddress": "http://localhost:8500" }, - "PayInfo": { - //建行聚合支付信息 + "PayInfo": { //建行聚合支付信息 "MERCHANTID": "", //商户号 "POSID": "", //柜台号 "BRANCHID": "", //分行号 @@ -307,7 +306,7 @@ "OutAddress": "http://127.0.0.1:12345" //外联地址 }, "nacos": { - "ServerAddresses": ["http://localhost:8848"], // nacos 连接地址 + "ServerAddresses": [ "http://localhost:8848" ], // nacos 连接地址 "DefaultTimeOut": 15000, // 默认超时时间 "Namespace": "public", // 命名空间 "ListenInterval": 10000, // 监听的频率 @@ -318,8 +317,7 @@ "LogFiedOutPutConfigs": { "tcpAddressHost": "", // 输出elk的tcp连接地址 "tcpAddressPort": 0, // 输出elk的tcp端口号 - "ConfigsInfo": [ - // 配置的输出elk节点内容 常用语动态标识 + "ConfigsInfo": [ // 配置的输出elk节点内容 常用语动态标识 { "FiedName": "applicationName", "FiedValue": "Blog.Core.Api" From 4638fc7633963980da056525c909facf1e19b37d Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Wed, 26 Jul 2023 18:15:31 +0800 Subject: [PATCH 304/382] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a62a2eb6..66ce9e7f 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,9 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 封装`Blog.Core.Webapi.Template`项目模板,一键重建自己的项目 ✨; - [x] 搭配多个前端案例供参考和借鉴:Blog.Vue、Blog.Admin、Nuxt.tbug、Blog.Mvp.Blazor ✨; - [x] 统一集成 IdentityServer4 认证 ✨; -- [x] 统一实现多租户; +- [x] 统一实现多租户; +- [x] 实现分表案例,支持分表的增删改查哈分页查询,具体查看SplitDemoController.cs; +- [x] 支持signalR对指定用户通讯; 组件模块: From a3759986993de51344e3b6431d6f627241eb2dbc Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Sat, 5 Aug 2023 12:56:46 +0800 Subject: [PATCH 305/382] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 66ce9e7f..2ab20732 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x - [x] 可配合 Jenkins 实现CI / CD; - [x] 可配合 Consul 实现服务发现; - [x] 可配合 Nacos 实现服务发现; -- [x] 可配合 Ocelot 实现网关处理; +- [x] 可配合 apisix/Ocelot 实现网关处理; - [x] 可配合 Nginx 实现负载均衡; - [x] 可配合 Ids4 实现认证中心; From 8372a3a0d4d0c618dec3c0abd38b83a16d8f8024 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 23 Aug 2023 16:13:42 +0800 Subject: [PATCH 306/382] feat: :tada: test log sql operate log --- Blog.Core.Api/Blog.Core.xml | 14 +- Blog.Core.Api/appsettings.json | 3 + Blog.Core.Common/DB/Aop/SqlsugarAop.cs | 6 +- .../HttpContextUser/AspNetUser.cs | 2 +- .../ServiceExtensions/AppConfigSetup.cs | 10 + .../AutofacModuleRegister.cs | 6 + .../ServiceExtensions/SqlsugarSetup.cs | 265 ++++++++++-------- 7 files changed, 182 insertions(+), 124 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 566d345a..667dcfdc 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -1393,9 +1393,21 @@ - 缓存管理 + 动态建表 CURD + + + 动态type + + + + + + 动态type 继承BaseEntity + + + 测试建表 diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index d94a7606..82fc206a 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -57,6 +57,9 @@ "TranAOP": { "Enabled": true }, + "UserAuditAOP": { + "Enabled": false + }, "SqlAOP": { "Enabled": true, "LogToFile": { diff --git a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs index f165ef43..826984ed 100644 --- a/Blog.Core.Common/DB/Aop/SqlsugarAop.cs +++ b/Blog.Core.Common/DB/Aop/SqlsugarAop.cs @@ -11,7 +11,7 @@ namespace Blog.Core.Common.DB.Aop; public static class SqlSugarAop { - public static void OnLogExecuting(ISqlSugarClient sqlSugarScopeProvider, string sql, SugarParameter[] p, ConnectionConfig config) + public static void OnLogExecuting(ISqlSugarClient sqlSugarScopeProvider, string user, string table, string operate, string sql, SugarParameter[] p, ConnectionConfig config) { try { @@ -25,8 +25,8 @@ public static void OnLogExecuting(ISqlSugarClient sqlSugarScopeProvider, string { using (LogContextExtension.Create.SqlAopPushProperty(sqlSugarScopeProvider)) { - Log.Information("------------------ \r\n ConnId:[{ConnId}]【SQL语句】: \r\n {Sql}", - config.ConfigId, UtilMethods.GetNativeSql( sql, p)); + Log.Information("------------------ \r\n User:[{User}] Table:[{Table}] Operate:[{Operate}] ConnId:[{ConnId}]【SQL语句】: \r\n {Sql}", + user, table, operate, config.ConfigId, UtilMethods.GetNativeSql(sql, p)); } } } diff --git a/Blog.Core.Common/HttpContextUser/AspNetUser.cs b/Blog.Core.Common/HttpContextUser/AspNetUser.cs index 1ceaa45f..dfa87949 100644 --- a/Blog.Core.Common/HttpContextUser/AspNetUser.cs +++ b/Blog.Core.Common/HttpContextUser/AspNetUser.cs @@ -48,7 +48,7 @@ private string GetName() public bool IsAuthenticated() { - return _accessor.HttpContext.User.Identity.IsAuthenticated; + return _accessor.HttpContext?.User?.Identity?.IsAuthenticated ?? false; } diff --git a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs index d7a1f90d..680a1912 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs @@ -79,6 +79,15 @@ public static void AddAppConfigSetup(this IServiceCollection services, IHostEnvi { ConsoleHelper.WriteSuccessLine($"Transaction AOP: True"); } + // 审计AOP + if (!AppSettings.app(new string[] { "AppSettings", "UserAuditAOP", "Enabled" }).ObjToBool()) + { + Console.WriteLine($"UserAudit AOP: False"); + } + else + { + ConsoleHelper.WriteSuccessLine($"UserAudit AOP: True"); + } // 数据库Sql执行AOP if (!AppSettings.app(new string[] { "AppSettings", "SqlAOP", "OutToLogFile", "Enabled" }).ObjToBool()) @@ -251,6 +260,7 @@ public static void AddAppTableConfigSetup(this IServiceCollection services, IHos new string[] { "缓存AOP", AppSettings.app("AppSettings", "CachingAOP", "Enabled") }, new string[] { "服务日志AOP", AppSettings.app("AppSettings", "LogAOP", "Enabled") }, new string[] { "事务AOP", AppSettings.app("AppSettings", "TranAOP", "Enabled") }, + new string[] { "服务审计AOP", AppSettings.app("AppSettings", "UserAuditAOP", "Enabled") }, new string[] { "Sql执行AOP", AppSettings.app("AppSettings", "SqlAOP", "Enabled") }, new string[] { "Sql执行AOP控制台输出", AppSettings.app("AppSettings", "SqlAOP", "LogToConsole", "Enabled") }, }; diff --git a/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs b/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs index 4836c402..4236bfb7 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AutofacModuleRegister.cs @@ -57,6 +57,12 @@ protected override void Load(ContainerBuilder builder) cacheType.Add(typeof(BlogLogAOP)); } + if (AppSettings.app(new string[] { "AppSettings", "UserAuditAOP", "Enabled" }).ObjToBool()) + { + builder.RegisterType(); + cacheType.Add(typeof(BlogUserAuditAOP)); + } + builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IBaseRepository<>)).InstancePerDependency(); //注册仓储 builder.RegisterGeneric(typeof(BaseServices<>)).As(typeof(IBaseServices<>)).InstancePerDependency(); //注册服务 diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index dd5c02b3..9cf99036 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -11,126 +11,153 @@ using System.Collections.Generic; using System.Threading.Tasks; using Blog.Core.Common.Caches; +using Blog.Core.Common.Core; +using Blog.Core.Common.HttpContextUser; +using static Grpc.Core.ChannelOption; +using System.Text.RegularExpressions; namespace Blog.Core.Extensions { - /// - /// SqlSugar 启动服务 - /// - public static class SqlsugarSetup - { - private static readonly MemoryCache Cache = new MemoryCache(new MemoryCacheOptions()); - - public static void AddSqlsugarSetup(this IServiceCollection services) - { - if (services == null) throw new ArgumentNullException(nameof(services)); - - // 默认添加主数据库连接 - MainDb.CurrentDbConnId = AppSettings.app(new string[] {"MainDB"}); - - BaseDBConfig.MutiConnectionString.slaveDbs.ForEach(s => - { - BaseDBConfig.AllSlaveConfigs.Add(new SlaveConnectionConfig() - { - HitRate = s.HitRate, - ConnectionString = s.Connection - }); - }); - - BaseDBConfig.MutiConnectionString.allDbs.ForEach(m => - { - var config = new ConnectionConfig() - { - ConfigId = m.ConnId.ObjToString().ToLower(), - ConnectionString = m.Connection, - DbType = (DbType) m.DbType, - IsAutoCloseConnection = true, - // Check out more information: https://github.com/anjoy8/Blog.Core/issues/122 - //IsShardSameThread = false, - MoreSettings = new ConnMoreSettings() - { - //IsWithNoLockQuery = true, - IsAutoRemoveDataCache = true, - SqlServerCodeFirstNvarchar = true, - }, - // 从库 - SlaveConnectionConfigs = BaseDBConfig.AllSlaveConfigs, - // 自定义特性 - ConfigureExternalServices = new ConfigureExternalServices() - { - DataInfoCacheService = new SqlSugarCacheService(), - EntityService = (property, column) => - { - if (column.IsPrimarykey && property.PropertyType == typeof(int)) - { - column.IsIdentity = true; - } - } - }, - InitKeyType = InitKeyType.Attribute - }; - if (SqlSugarConst.LogConfigId.ToLower().Equals(m.ConnId.ToLower())) - { - BaseDBConfig.LogConfig = config; - } - else - { - BaseDBConfig.ValidConfig.Add(config); - } - - BaseDBConfig.AllConfigs.Add(config); - }); - - if (BaseDBConfig.LogConfig is null) - { - throw new ApplicationException("未配置Log库连接"); - } - - // SqlSugarScope是线程安全,可使用单例注入 - // 参考:https://www.donet5.com/Home/Doc?typeId=1181 - services.AddSingleton(o => - { - return new SqlSugarScope(BaseDBConfig.AllConfigs, db => - { - BaseDBConfig.ValidConfig.ForEach(config => - { - var dbProvider = db.GetConnectionScope((string) config.ConfigId); - - // 打印SQL语句 - dbProvider.Aop.OnLogExecuting = (s, parameters) => - SqlSugarAop.OnLogExecuting(dbProvider, s, parameters, config); - - // 数据审计 - dbProvider.Aop.DataExecuting = SqlSugarAop.DataExecuting; - - // 配置实体假删除过滤器 - RepositorySetting.SetDeletedEntityFilter(dbProvider); - // 配置实体数据权限 - RepositorySetting.SetTenantEntityFilter(dbProvider); - }); - }); - }); - } - - private static string GetWholeSql(SugarParameter[] paramArr, string sql) - { - foreach (var param in paramArr) - { - sql.Replace(param.ParameterName, param.Value.ObjToString()); - } - - return sql; - } - - private static string GetParas(SugarParameter[] pars) - { - string key = "【SQL参数】:"; - foreach (var param in pars) - { - key += $"{param.ParameterName}:{param.Value}\n"; - } - - return key; - } - } + /// + /// SqlSugar 启动服务 + /// + public static class SqlsugarSetup + { + private static readonly MemoryCache Cache = new MemoryCache(new MemoryCacheOptions()); + + public static void AddSqlsugarSetup(this IServiceCollection services) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + // 默认添加主数据库连接 + MainDb.CurrentDbConnId = AppSettings.app(new string[] { "MainDB" }); + + BaseDBConfig.MutiConnectionString.slaveDbs.ForEach(s => + { + BaseDBConfig.AllSlaveConfigs.Add(new SlaveConnectionConfig() + { + HitRate = s.HitRate, + ConnectionString = s.Connection + }); + }); + + BaseDBConfig.MutiConnectionString.allDbs.ForEach(m => + { + var config = new ConnectionConfig() + { + ConfigId = m.ConnId.ObjToString().ToLower(), + ConnectionString = m.Connection, + DbType = (DbType)m.DbType, + IsAutoCloseConnection = true, + // Check out more information: https://github.com/anjoy8/Blog.Core/issues/122 + //IsShardSameThread = false, + MoreSettings = new ConnMoreSettings() + { + //IsWithNoLockQuery = true, + IsAutoRemoveDataCache = true, + SqlServerCodeFirstNvarchar = true, + }, + // 从库 + SlaveConnectionConfigs = BaseDBConfig.AllSlaveConfigs, + // 自定义特性 + ConfigureExternalServices = new ConfigureExternalServices() + { + DataInfoCacheService = new SqlSugarCacheService(), + EntityService = (property, column) => + { + if (column.IsPrimarykey && property.PropertyType == typeof(int)) + { + column.IsIdentity = true; + } + } + }, + InitKeyType = InitKeyType.Attribute + }; + if (SqlSugarConst.LogConfigId.ToLower().Equals(m.ConnId.ToLower())) + { + BaseDBConfig.LogConfig = config; + } + else + { + BaseDBConfig.ValidConfig.Add(config); + } + + BaseDBConfig.AllConfigs.Add(config); + }); + + if (BaseDBConfig.LogConfig is null) + { + throw new ApplicationException("未配置Log库连接"); + } + + // SqlSugarScope是线程安全,可使用单例注入 + // 参考:https://www.donet5.com/Home/Doc?typeId=1181 + services.AddSingleton(o => + { + return new SqlSugarScope(BaseDBConfig.AllConfigs, db => + { + BaseDBConfig.ValidConfig.ForEach(config => + { + var dbProvider = db.GetConnectionScope((string)config.ConfigId); + + // 打印SQL语句 + dbProvider.Aop.OnLogExecuting = (s, parameters) => + { + var user = InternalApp.RootServices.GetService(); + SqlSugarAop.OnLogExecuting(dbProvider, user?.Name.ObjToString(), ExtractTableName(s), Enum.GetName(typeof(SugarActionType), dbProvider.SugarActionType), s, parameters, config); + }; + + // 数据审计 + dbProvider.Aop.DataExecuting = SqlSugarAop.DataExecuting; + + // 配置实体假删除过滤器 + RepositorySetting.SetDeletedEntityFilter(dbProvider); + // 配置实体数据权限 + RepositorySetting.SetTenantEntityFilter(dbProvider); + }); + }); + }); + } + + private static string GetWholeSql(SugarParameter[] paramArr, string sql) + { + foreach (var param in paramArr) + { + sql.Replace(param.ParameterName, param.Value.ObjToString()); + } + + return sql; + } + + private static string GetParas(SugarParameter[] pars) + { + string key = "【SQL参数】:"; + foreach (var param in pars) + { + key += $"{param.ParameterName}:{param.Value}\n"; + } + + return key; + } + + private static string ExtractTableName(string sql) + { + // 匹配 SQL 语句中的表名的正则表达式 + //string regexPattern = @"\s*(?:UPDATE|DELETE\s+FROM|SELECT\s+\*\s+FROM)\s+(\w+)"; + string regexPattern = @"(?i)(?:FROM|UPDATE|DELETE\s+FROM)\s+`(.+?)`"; + Regex regex = new Regex(regexPattern, RegexOptions.IgnoreCase); + Match match = regex.Match(sql); + + if (match.Success) + { + // 提取匹配到的表名 + return match.Groups[1].Value; + } + else + { + // 如果没有匹配到表名,则返回空字符串或者抛出异常等处理 + return string.Empty; + } + } + } } \ No newline at end of file From 6d0a3dfc092307fcb0273a0de319076dd6dcc00c Mon Sep 17 00:00:00 2001 From: LemonNoCry Date: Wed, 30 Aug 2023 19:40:54 +0800 Subject: [PATCH 307/382] =?UTF-8?q?=F0=9F=90=9B=F0=9F=90=9B=F0=9F=90=9B=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8DRootService=E5=86=85=E5=AD=98=E6=BA=A2?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Common/App.cs | 29 ++++++++++++------- Blog.Core.Common/Core/InternalApp.cs | 13 +++++---- .../ServiceExtensions/SqlsugarSetup.cs | 3 +- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/Blog.Core.Common/App.cs b/Blog.Core.Common/App.cs index 07abee9f..ecdb1b49 100644 --- a/Blog.Core.Common/App.cs +++ b/Blog.Core.Common/App.cs @@ -39,6 +39,7 @@ public static bool IsRun /// 有效程序集类型 public static readonly IEnumerable EffectiveTypes; + /// 优先使用App.GetService()手动获取服务 public static IServiceProvider RootServices => IsRun || IsBuild ? InternalApp.RootServices : null; /// 获取Web主机环境,如,是否是开发环境,生产环境等 @@ -55,14 +56,16 @@ public static bool IsRun /// public static HttpContext HttpContext => RootServices?.GetService()?.HttpContext; - public static IUser User => HttpContext == null ? null : RootServices?.GetService(); + public static IUser User => GetService(); #region Service /// 解析服务提供器 /// + /// + /// /// - public static IServiceProvider GetServiceProvider(Type serviceType, bool mustBuild = false) + public static IServiceProvider GetServiceProvider(Type serviceType, bool mustBuild = false, bool throwException = true) { if (App.HostEnvironment == null || App.RootServices != null && InternalApp.InternalServices @@ -71,25 +74,31 @@ public static IServiceProvider GetServiceProvider(Type serviceType, bool mustBui (serviceType.IsGenericType ? serviceType.GetGenericTypeDefinition() : serviceType))) .Any((u => u.Lifetime == ServiceLifetime.Singleton))) return App.RootServices; - HttpContext httpContext = App.HttpContext; - if (httpContext?.RequestServices != null) - return httpContext.RequestServices; + + //获取请求生存周期的服务 + if (HttpContext?.RequestServices != null) + return HttpContext.RequestServices; + if (App.RootServices != null) { - IServiceScope scope = App.RootServices.CreateScope(); + IServiceScope scope = RootServices.CreateScope(); return scope.ServiceProvider; } if (mustBuild) { - throw new ApplicationException("当前不可用,必须要等到 WebApplication Build后"); + if (throwException) + { + throw new ApplicationException("当前不可用,必须要等到 WebApplication Build后"); + } + + return default; } ServiceProvider serviceProvider = InternalApp.InternalServices.BuildServiceProvider(); return serviceProvider; } - public static TService GetService(bool mustBuild = true) where TService : class => App.GetService(typeof(TService), null, mustBuild) as TService; @@ -99,7 +108,7 @@ public static TService GetService(bool mustBuild = true) where TServic /// /// public static TService GetService(IServiceProvider serviceProvider, bool mustBuild = true) - where TService : class => App.GetService(typeof(TService), serviceProvider, mustBuild) as TService; + where TService : class => (serviceProvider ?? App.GetServiceProvider(typeof(TService), mustBuild, false))?.GetService(); /// 获取请求生存周期的服务 /// @@ -107,7 +116,7 @@ public static TService GetService(IServiceProvider serviceProvider, bo /// /// public static object GetService(Type type, IServiceProvider serviceProvider = null, bool mustBuild = true) => - (serviceProvider ?? App.GetServiceProvider(type, mustBuild)).GetService(type); + (serviceProvider ?? App.GetServiceProvider(type, mustBuild, false))?.GetService(type); #endregion diff --git a/Blog.Core.Common/Core/InternalApp.cs b/Blog.Core.Common/Core/InternalApp.cs index df16c911..b8a7736a 100644 --- a/Blog.Core.Common/Core/InternalApp.cs +++ b/Blog.Core.Common/Core/InternalApp.cs @@ -7,21 +7,24 @@ namespace Blog.Core.Common.Core; +/// +/// 内部只用于初始化使用 +/// public static class InternalApp { - public static IServiceCollection InternalServices; + internal static IServiceCollection InternalServices; /// 根服务 - public static IServiceProvider RootServices; + internal static IServiceProvider RootServices; /// 获取Web主机环境 - public static IWebHostEnvironment WebHostEnvironment; + internal static IWebHostEnvironment WebHostEnvironment; /// 获取泛型主机环境 - public static IHostEnvironment HostEnvironment; + internal static IHostEnvironment HostEnvironment; /// 配置对象 - public static IConfiguration Configuration; + internal static IConfiguration Configuration; public static void ConfigureApplication(this WebApplicationBuilder wab) { diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 9cf99036..6574e70e 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -103,8 +103,7 @@ public static void AddSqlsugarSetup(this IServiceCollection services) // 打印SQL语句 dbProvider.Aop.OnLogExecuting = (s, parameters) => { - var user = InternalApp.RootServices.GetService(); - SqlSugarAop.OnLogExecuting(dbProvider, user?.Name.ObjToString(), ExtractTableName(s), Enum.GetName(typeof(SugarActionType), dbProvider.SugarActionType), s, parameters, config); + SqlSugarAop.OnLogExecuting(dbProvider, App.User?.Name.ObjToString(), ExtractTableName(s), Enum.GetName(typeof(SugarActionType), dbProvider.SugarActionType), s, parameters, config); }; // 数据审计 From 39fc0ab4e8699e4285f75c3774949c7f1cb5fd4c Mon Sep 17 00:00:00 2001 From: LemonNoCry Date: Wed, 30 Aug 2023 19:42:56 +0800 Subject: [PATCH 308/382] =?UTF-8?q?=F0=9F=8E=A8=20=E8=B0=83=E6=95=B4DbSeed?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=86=99=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Common/Seed/DBSeed.cs | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 6fa8f901..a70bf847 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -177,11 +177,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Permission"), Encoding.UTF8), setting); - foreach (var item in data) - { - Console.WriteLine($"{item.Name}:{item.Id}"); - myContext.GetEntityDB().Insert(item); - } + myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:Permission created success!"); } else @@ -218,11 +214,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) { var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "RoleModulePermission"), Encoding.UTF8), setting); - foreach (var item in data) - { - Console.WriteLine($"{item.Id}"); - myContext.GetEntityDB().Insert(item); - } + myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:RoleModulePermission created success!"); } else From 1e9865cfef1adf5db59a3be4980e1bf36cec91a0 Mon Sep 17 00:00:00 2001 From: LemonNoCry Date: Thu, 31 Aug 2023 21:59:39 +0800 Subject: [PATCH 309/382] =?UTF-8?q?=F0=9F=8E=A8=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Test/SqlsugarTestController.cs | 29 +++++++++++++++++++ .../ServiceExtensions/SqlsugarSetup.cs | 1 + 2 files changed, 30 insertions(+) create mode 100644 Blog.Core.Api/Controllers/Test/SqlsugarTestController.cs diff --git a/Blog.Core.Api/Controllers/Test/SqlsugarTestController.cs b/Blog.Core.Api/Controllers/Test/SqlsugarTestController.cs new file mode 100644 index 00000000..774a9b12 --- /dev/null +++ b/Blog.Core.Api/Controllers/Test/SqlsugarTestController.cs @@ -0,0 +1,29 @@ +using Blog.Core.Common; +using Blog.Core.Controllers; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using SqlSugar; + +namespace Blog.Core.Api.Controllers.Test; + +[Route("api/[Controller]/[Action]")] +[AllowAnonymous] +public class SqlsugarTestController : BaseApiController +{ + private readonly SqlSugarScope _db; + + public SqlsugarTestController(SqlSugarScope db) + { + _db = db; + } + + [HttpGet] + public async Task Get() + { + Console.WriteLine(App.HttpContext.Request.Path); + Console.WriteLine(App.HttpContext.RequestServices.ToString()); + Console.WriteLine(App.User?.ID); + await Task.CompletedTask; + return Ok(); + } +} \ No newline at end of file diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 6574e70e..6e8a148c 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -116,6 +116,7 @@ public static void AddSqlsugarSetup(this IServiceCollection services) }); }); }); + services.AddTransient(s => s.GetService() as SqlSugarScope); } private static string GetWholeSql(SugarParameter[] paramArr, string sql) From dfa067d21446409a83abd9a71f76afb0cd0757bd Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Wed, 18 Oct 2023 09:55:54 +0800 Subject: [PATCH 310/382] =?UTF-8?q?=F0=9F=90=9B=20HttpClient=20=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=8D=95=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extensions/ExpressionExtensions_Nacos.cs | 38 ++++++++++--------- Blog.Core.Common/Helper/HttpHelper.cs | 20 +++++----- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/Blog.Core.Common/Extensions/ExpressionExtensions_Nacos.cs b/Blog.Core.Common/Extensions/ExpressionExtensions_Nacos.cs index c187ee6a..705d4c15 100644 --- a/Blog.Core.Common/Extensions/ExpressionExtensions_Nacos.cs +++ b/Blog.Core.Common/Extensions/ExpressionExtensions_Nacos.cs @@ -15,9 +15,8 @@ public static class ExpressionExtensions_Nacos { #region Nacos NamingService - private static readonly HttpClient httpclient = new HttpClient(); - - private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl) + private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string ServiceName, string Group, + string apiurl) { try { @@ -45,7 +44,8 @@ private static string GetServiceUrl(Nacos.V2.INacosNamingService serv, string Se return ""; } - public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters = null) + public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService serv, string ServiceName, + string Group, string apiurl, Dictionary Parameters = null) { try { @@ -62,8 +62,9 @@ public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService url = $"{url}?{sb.ToString().Trim('&')}"; } - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.GetAsync(url); + HttpHelper.Httpclient.DefaultRequestHeaders.Accept.Add( + new MediaTypeWithQualityHeaderValue("application/json")); + var result = await HttpHelper.Httpclient.GetAsync(url); return await result.Content.ReadAsStringAsync(); } catch (Exception e) @@ -74,7 +75,8 @@ public static async Task Cof_NaoceGet(this Nacos.V2.INacosNamingService return ""; } - public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) + public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingService serv, string ServiceName, + string Group, string apiurl, Dictionary Parameters) { try { @@ -82,8 +84,8 @@ public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingSer if (string.IsNullOrEmpty(url)) return ""; var content = (Parameters != null && Parameters.Any()) ? new FormUrlEncodedContent(Parameters) : null; - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.PostAsync(url, content); + HttpHelper.Httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await HttpHelper.Httpclient.PostAsync(url, content); return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); } catch (Exception e) @@ -94,14 +96,16 @@ public static async Task Cof_NaocePostForm(this Nacos.V2.INacosNamingSer return ""; } - public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, string jSonData) + public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingService serv, string ServiceName, + string Group, string apiurl, string jSonData) { try { var url = GetServiceUrl(serv, ServiceName, Group, apiurl); if (string.IsNullOrEmpty(url)) return ""; - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.PostAsync(url, new StringContent(jSonData, Encoding.UTF8, "application/json")); + HttpHelper.Httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = + await HttpHelper.Httpclient.PostAsync(url, new StringContent(jSonData, Encoding.UTF8, "application/json")); return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); //httpClient.BaseAddress = new Uri("https://www.testapi.com"); @@ -116,7 +120,8 @@ public static async Task Cof_NaocePostJson(this Nacos.V2.INacosNamingSer return ""; } - public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingService serv, string ServiceName, string Group, string apiurl, Dictionary Parameters) + public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingService serv, string ServiceName, + string Group, string apiurl, Dictionary Parameters) { try { @@ -129,8 +134,8 @@ public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingSer content.Add(new ByteArrayContent(pitem.Value), "files", pitem.Key); } - httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - var result = await httpclient.PostAsync(url, content); + HttpHelper.Httpclient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + var result = await HttpHelper.Httpclient.PostAsync(url, content); return await result.Content.ReadAsStringAsync(); //.GetAwaiter().GetResult(); } catch (Exception e) @@ -144,5 +149,4 @@ public static async Task Cof_NaocePostFile(this Nacos.V2.INacosNamingSer #endregion } - -} +} \ No newline at end of file diff --git a/Blog.Core.Common/Helper/HttpHelper.cs b/Blog.Core.Common/Helper/HttpHelper.cs index 4bd14883..82f9c32f 100644 --- a/Blog.Core.Common/Helper/HttpHelper.cs +++ b/Blog.Core.Common/Helper/HttpHelper.cs @@ -10,21 +10,23 @@ namespace Blog.Core.Common.Helper /// public class HttpHelper { + public static readonly HttpClient Httpclient = new HttpClient(); + public static async Task GetAsync(string serviceAddress) { try { string result = string.Empty; Uri getUrl = new Uri(serviceAddress); - using var httpClient = new HttpClient(); - httpClient.Timeout = new TimeSpan(0, 0, 60); - result = await httpClient.GetAsync(serviceAddress).Result.Content.ReadAsStringAsync(); + Httpclient.Timeout = new TimeSpan(0, 0, 60); + result = await Httpclient.GetAsync(serviceAddress).Result.Content.ReadAsStringAsync(); return result; } catch (Exception e) { Console.WriteLine(e.Message); } + return null; } @@ -38,19 +40,19 @@ public static async Task PostAsync(string serviceAddress, string request using (HttpContent httpContent = new StringContent(requestJson)) { httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); - using var httpClient = new HttpClient(); - httpClient.Timeout = new TimeSpan(0, 0, 60); - result = await httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync(); + + Httpclient.Timeout = new TimeSpan(0, 0, 60); + result = await Httpclient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync(); } + return result; } catch (Exception e) { Console.WriteLine(e.Message); } + return null; } } - - -} +} \ No newline at end of file From 0901de2fbfd8d8128a4ecf3f8b27daf2054c35c2 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Thu, 19 Oct 2023 16:28:20 +0800 Subject: [PATCH 311/382] =?UTF-8?q?=F0=9F=8E=A8=E2=9C=A8=F0=9F=8E=89=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8E=9F=E6=9C=89=E7=9A=84DBS=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E3=80=81=E6=96=B0=E5=A2=9E=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E6=95=85=E9=9A=9C=E8=BD=AC=E7=A7=BB=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.优化原有的DBS配置,破坏性修改,原有的DBS配置在多库和读写分离无法兼容,配置写法不是合适,故此优化 2.新增数据库故障转移方案,例如主库挂了自动切换到备用库,备用库不会由程序维护,需要运维、dba去做数据库同步方案,比如Sqlserver事务日志传输等 故障转移方案兼容多种方式 1.数据库主从方案 在配置主从之后,需要将从库配置为备用链接就行了 一般就是:修改、写入、删除走主库,查询操作走从库,在主库挂了后则所有操作走从库 2.数据库主备方案 日常使用主数据库操作,备用库只是备份,只有主库挂了才会用备用库 从库和备库都属于slave库功能 --- .../Controllers/DbFirst/DbFirstController.cs | 26 +-- .../Controllers/MonitorController.cs | 2 +- Blog.Core.Api/appsettings.json | 51 ++++-- Blog.Core.Common/DB/Aop/SqlSugarReuse.cs | 23 +++ Blog.Core.Common/DB/BaseDBConfig.cs | 102 +++++------ .../DB/Extension/DbEntityException.cs | 14 ++ Blog.Core.Common/DB/MainDb.cs | 2 +- Blog.Core.Common/Helper/UtilConvert.cs | 8 + Blog.Core.Common/Seed/DBSeed.cs | 94 +++++----- .../ServiceExtensions/AppConfigSetup.cs | 16 +- .../ServiceExtensions/SqlsugarSetup.cs | 39 ++-- .../IDS4Db/IApplicationUserServices.cs | 4 +- Blog.Core.Repository/BASE/BaseRepository.cs | 21 +-- .../IDS4Db/ApplicationUserServices.cs | 11 +- Blog.Core.Tests/Blog.Core.Tests.csproj | 15 +- Blog.Core.Tests/appsettings.json | 169 ++++++++++++------ 16 files changed, 363 insertions(+), 234 deletions(-) create mode 100644 Blog.Core.Common/DB/Aop/SqlSugarReuse.cs create mode 100644 Blog.Core.Common/DB/Extension/DbEntityException.cs diff --git a/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs b/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs index 4f51856d..83b0beb5 100644 --- a/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs +++ b/Blog.Core.Api/Controllers/DbFirst/DbFirstController.cs @@ -36,19 +36,19 @@ public MessageModel GetFrameFiles() { var data = new MessageModel() { success = true, msg = "" }; data.response += @"file path is:C:\my-file\}"; - var isMuti = AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool(); + var isMuti = BaseDBConfig.IsMulti; if (Env.IsDevelopment()) { data.response += $"Controller层生成:{FrameSeed.CreateControllers(_sqlSugarClient)} || "; - BaseDBConfig.MutiConnectionString.allDbs.ToList().ForEach(m => + BaseDBConfig.ValidConfig.ForEach(m => { - _sqlSugarClient.ChangeDatabase(m.ConnId.ToLower()); - data.response += $"库{m.ConnId}-Model层生成:{FrameSeed.CreateModels(_sqlSugarClient, m.ConnId, isMuti)} || "; - data.response += $"库{m.ConnId}-IRepositorys层生成:{FrameSeed.CreateIRepositorys(_sqlSugarClient, m.ConnId, isMuti)} || "; - data.response += $"库{m.ConnId}-IServices层生成:{FrameSeed.CreateIServices(_sqlSugarClient, m.ConnId, isMuti)} || "; - data.response += $"库{m.ConnId}-Repository层生成:{FrameSeed.CreateRepository(_sqlSugarClient, m.ConnId, isMuti)} || "; - data.response += $"库{m.ConnId}-Services层生成:{FrameSeed.CreateServices(_sqlSugarClient, m.ConnId, isMuti)} || "; + _sqlSugarClient.ChangeDatabase(m.ConfigId.ToLower()); + data.response += $"库{m.ConfigId}-Model层生成:{FrameSeed.CreateModels(_sqlSugarClient, m.ConfigId, isMuti)} || "; + data.response += $"库{m.ConfigId}-IRepositorys层生成:{FrameSeed.CreateIRepositorys(_sqlSugarClient, m.ConfigId, isMuti)} || "; + data.response += $"库{m.ConfigId}-IServices层生成:{FrameSeed.CreateIServices(_sqlSugarClient, m.ConfigId, isMuti)} || "; + data.response += $"库{m.ConfigId}-Repository层生成:{FrameSeed.CreateRepository(_sqlSugarClient, m.ConfigId, isMuti)} || "; + data.response += $"库{m.ConfigId}-Services层生成:{FrameSeed.CreateServices(_sqlSugarClient, m.ConfigId, isMuti)} || "; }); // 切回主库 @@ -74,7 +74,7 @@ public MessageModel GetFrameFilesByTableNames([FromBody]string[] tableNa { ConnID = ConnID == null ? MainDb.CurrentDbConnId.ToLower() : ConnID; - var isMuti = AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool(); + var isMuti = BaseDBConfig.IsMulti; var data = new MessageModel() { success = true, msg = "" }; if (Env.IsDevelopment()) { @@ -102,7 +102,7 @@ public MessageModel GetFrameFilesByTableNamesForEntity([FromBody] string { ConnID = ConnID == null ? MainDb.CurrentDbConnId.ToLower() : ConnID; - var isMuti = AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool(); + var isMuti = BaseDBConfig.IsMulti; var data = new MessageModel() { success = true, msg = "" }; if (Env.IsDevelopment()) { @@ -112,7 +112,7 @@ public MessageModel GetFrameFilesByTableNamesForEntity([FromBody] string { data.success = false; data.msg = "当前不处于开发模式,代码生成不可用!"; - } + } return data; } /// @@ -126,7 +126,7 @@ public MessageModel GetFrameFilesByTableNamesForController([FromBody] st { ConnID = ConnID == null ? MainDb.CurrentDbConnId.ToLower() : ConnID; - var isMuti = AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool(); + var isMuti = BaseDBConfig.IsMulti; var data = new MessageModel() { success = true, msg = "" }; if (Env.IsDevelopment()) { @@ -151,7 +151,7 @@ public MessageModel GetAllFrameFilesByTableNames([FromBody]string[] tabl { ConnID = ConnID == null ? MainDb.CurrentDbConnId.ToLower() : ConnID; - var isMuti = AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool(); + var isMuti = BaseDBConfig.IsMulti; var data = new MessageModel() { success = true, msg = "" }; if (Env.IsDevelopment()) { diff --git a/Blog.Core.Api/Controllers/MonitorController.cs b/Blog.Core.Api/Controllers/MonitorController.cs index 77b4e5bf..9ed96672 100644 --- a/Blog.Core.Api/Controllers/MonitorController.cs +++ b/Blog.Core.Api/Controllers/MonitorController.cs @@ -219,7 +219,7 @@ public async Task> GetIds4Users() { List apiDates = new List(); - if (AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool()) + if (_applicationUserServices.IsEnable()) { var users = await _applicationUserServices.Query(d => d.tdIsDelete == false); diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 82fc206a..f91f6df8 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -80,14 +80,17 @@ "UseLoadTest": false }, - // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; - // *** 单库操作,把 MutiDBEnabled 设为false ***; - // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; - // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 - //Log:日志库; - "MainDB": "WMBLOG_SQLITE", //当前项目的主库,所对应的连接字符串的Enabled必须为true - "MutiDBEnabled": true, //是否开启多库模式 - "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer + //优化DB配置、不会再区分单库多库 + //MainDb:标识当前项目的主库,所对应的连接字符串的Enabled必须为true + //Log:标识日志库,所对应的连接字符串的Enabled必须为true + //从库只需配置Slaves数组,要求数据库类型一致!,比如都是SqlServer + // + //新增,故障转移方案 + //如果主库挂了,会自动切换到备用连接(比如说主库+备用库) + //备用连接的ConnId配置为主库的ConnId+数字即可,比如主库的ConnId为Main,那么备用连接的ConnId为Mian1 + //主库、备用库无需数据库类型一致! + //备用库不会有程序维护,需要手动维护 + "MainDB": "Main", //当前项目的主库,所对应的连接字符串的Enabled必须为true "DBS": [ /* 对应下边的 DBType @@ -100,24 +103,40 @@ Kdbndp = 6,//人大金仓 */ { - "ConnId": "WMBLOG_SQLITE", + "ConnId": "Main", "DBType": 2, "Enabled": true, - "HitRate": 50, // 值越大,优先级越高 - "Connection": "WMBlog.db" //sqlite只写数据库名就行 + "Connection": "WMBlog.db", //sqlite只写数据库名就行 + "Slaves": [ + { + "HitRate": 0,// 值越大,优先级越高 0不使用 + "Connection": "WMBlog2.db" + } + ] + }, + { + "ConnId": "Main2", + "DBType": 2, + "Enabled": true, + "Connection": "WMBlog3.db", //sqlite只写数据库名就行 + "Slaves": [ + { + "HitRate": 0,// 值越大,优先级越高 0不使用 + "Connection": "WMBlog4.db" + } + ] }, { "ConnId": "Log", //日志库连接固定名称,不要改,其他的可以改 "DBType": 2, "Enabled": true, - "HitRate": 50, // 值越大,优先级越高 + "HitRate": 50, "Connection": "WMBlogLog.db" //sqlite只写数据库名就行 }, { "ConnId": "WMBLOG_MSSQL_1", "DBType": 1, "Enabled": false, - "HitRate": 40, "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", "ProviderName": "System.Data.SqlClient" }, @@ -125,7 +144,6 @@ "ConnId": "WMBLOG_MSSQL_2", "DBType": 1, "Enabled": false, - "HitRate": 30, "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", "ProviderName": "System.Data.SqlClient" }, @@ -133,35 +151,30 @@ "ConnId": "WMBLOG_MYSQL", "DBType": 0, "Enabled": false, - "HitRate": 20, "Connection": "server=localhost;Database=blog;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" }, { "ConnId": "WMBLOG_MYSQL_2", "DBType": 0, "Enabled": false, - "HitRate": 20, "Connection": "server=localhost;Database=blogcore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" }, { "ConnId": "WMBLOG_ORACLE", "DBType": 3, "Enabled": false, - "HitRate": 10, "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" }, { "ConnId": "WMBLOG_DM", "DBType": 5, "Enabled": false, - "HitRate": 10, "Connection": "Server=xxxxx:5236;User Id=xxxxx;PWD=xxxxx;SCHEMA=TESTDBA;" }, { "ConnId": "WMBLOG_KDBNDP", "DBType": 6, "Enabled": false, - "HitRate": 10, "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" } ], diff --git a/Blog.Core.Common/DB/Aop/SqlSugarReuse.cs b/Blog.Core.Common/DB/Aop/SqlSugarReuse.cs new file mode 100644 index 00000000..949af640 --- /dev/null +++ b/Blog.Core.Common/DB/Aop/SqlSugarReuse.cs @@ -0,0 +1,23 @@ +using System.Linq; +using SqlSugar; + +namespace Blog.Core.Common.DB.Aop; + +public class SqlSugarReuse +{ + public static void AutoChangeAvailableConnect(SqlSugarClient db) + { + if (db == null) return; + if (db.Ado.IsValidConnection()) return; + if (!BaseDBConfig.ReuseConfigs.Any()) return; + + foreach (var connectionConfig in BaseDBConfig.ReuseConfigs) + { + var config = db.CurrentConnectionConfig.ConfigId; + db.ChangeDatabase(connectionConfig.ConfigId); + //移除旧的连接,只会在本次上下文移除,因为主库已经故障会导致多库事务无法使用 + db.RemoveConnection(config); + if (db.Ado.IsValidConnection()) return; + } + } +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/BaseDBConfig.cs b/Blog.Core.Common/DB/BaseDBConfig.cs index b7153766..7eb74fb8 100644 --- a/Blog.Core.Common/DB/BaseDBConfig.cs +++ b/Blog.Core.Common/DB/BaseDBConfig.cs @@ -1,24 +1,46 @@ -using SqlSugar; -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; +using SqlSugar; namespace Blog.Core.Common.DB { public class BaseDBConfig { - public static readonly List AllConfigs = new(); //所有库配置 - public static readonly List AllSlaveConfigs = new(); //从库配置 - public static List ValidConfig = new(); //有效的库连接(除去Log库) - public static ConnectionConfig LogConfig; //日志库 - + /// + /// 所有库配置 + /// + public static readonly List AllConfigs = new(); + + /// + /// 主库的备用连接配置 + /// + public static readonly List ReuseConfigs = new(); + + /// + /// 有效的库连接(除去Log库) + /// + public static List ValidConfig = new(); + + public static ConnectionConfig MainConfig; + public static ConnectionConfig LogConfig; //日志库 + + public static bool IsMulti => ValidConfig.Count > 1; + /* 之前的单库操作已经删除,如果想要之前的代码,可以查看我的GitHub的历史记录 * 目前是多库操作,默认加载的是appsettings.json设置为true的第一个db连接。 + * + * 优化配置连接 + * 老的配置方式,再多库和从库中有些冲突 + * 直接在单个配置中可以配置从库 + * + * 新增故障转移方案 + * 增加主库备用连接,配置方式为ConfigId为主库的ConfigId+随便数字 只要不重复就好 + * + * 主库在无法连接后会自动切换到备用链接 */ public static (List allDbs, List slaveDbs) MutiConnectionString => MutiInitConn(); - - private static string DifDBConnOfSecurity(params string[] conn) { @@ -44,52 +66,13 @@ public static (List, List) MutiInitConn() { List listdatabase = AppSettings.app("DBS") .Where(i => i.Enabled).ToList(); - var mainDbId = AppSettings.app(new string[] { "MainDB" }).ObjToString(); + var mainDbId = AppSettings.app(new string[] {"MainDB"}).ObjToString(); var mainDbModel = listdatabase.Single(d => d.ConnId == mainDbId); listdatabase.Remove(mainDbModel); listdatabase.Insert(0, mainDbModel); - foreach (var i in listdatabase) - { - SpecialDbString(i); - } - - List listdatabaseSimpleDB = new List(); //单库 - List listdatabaseSlaveDB = new List(); //从库 - - // 单库,且不开启读写分离,只保留一个 - if (!AppSettings.app(new string[] {"CQRSEnabled"}).ObjToBool() && !AppSettings.app(new string[] {"MutiDBEnabled"}).ObjToBool()) - { - if (listdatabase.Count == 1) - { - return (listdatabase, listdatabaseSlaveDB); - } - else - { - var dbFirst = listdatabase.FirstOrDefault(d => d.ConnId == AppSettings.app(new string[] {"MainDB"}).ObjToString()); - if (dbFirst == null) - { - dbFirst = listdatabase.FirstOrDefault(); - } - - listdatabaseSimpleDB.Add(dbFirst); - return (listdatabaseSimpleDB, listdatabaseSlaveDB); - } - } - - - // 读写分离,且必须是单库模式,获取从库 - if (AppSettings.app(new string[] {"CQRSEnabled"}).ObjToBool() && !AppSettings.app(new string[] {"MutiDBEnabled"}).ObjToBool()) - { - if (listdatabase.Count > 1) - { - listdatabaseSlaveDB = listdatabase.Where(d => d.ConnId != AppSettings.app(new string[] {"MainDB"}).ObjToString()).ToList(); - } - } - - - return (listdatabase, listdatabaseSlaveDB); - //} + foreach (var i in listdatabase) SpecialDbString(i); + return (listdatabase, mainDbModel.Slaves); } /// @@ -102,19 +85,23 @@ private static MutiDBOperate SpecialDbString(MutiDBOperate mutiDBOperate) { if (mutiDBOperate.DbType == DataBaseType.Sqlite) { - mutiDBOperate.Connection = $"DataSource=" + Path.Combine(Environment.CurrentDirectory, mutiDBOperate.Connection); + mutiDBOperate.Connection = + $"DataSource=" + Path.Combine(Environment.CurrentDirectory, mutiDBOperate.Connection); } else if (mutiDBOperate.DbType == DataBaseType.SqlServer) { - mutiDBOperate.Connection = DifDBConnOfSecurity(@"D:\my-file\dbCountPsw1_SqlserverConn.txt", mutiDBOperate.Connection); + mutiDBOperate.Connection = DifDBConnOfSecurity(@"D:\my-file\dbCountPsw1_SqlserverConn.txt", + mutiDBOperate.Connection); } else if (mutiDBOperate.DbType == DataBaseType.MySql) { - mutiDBOperate.Connection = DifDBConnOfSecurity(@"D:\my-file\dbCountPsw1_MySqlConn.txt", mutiDBOperate.Connection); + mutiDBOperate.Connection = + DifDBConnOfSecurity(@"D:\my-file\dbCountPsw1_MySqlConn.txt", mutiDBOperate.Connection); } else if (mutiDBOperate.DbType == DataBaseType.Oracle) { - mutiDBOperate.Connection = DifDBConnOfSecurity(@"D:\my-file\dbCountPsw1_OracleConn.txt", mutiDBOperate.Connection); + mutiDBOperate.Connection = + DifDBConnOfSecurity(@"D:\my-file\dbCountPsw1_OracleConn.txt", mutiDBOperate.Connection); } return mutiDBOperate; @@ -159,5 +146,10 @@ public class MutiDBOperate /// 数据库类型 /// public DataBaseType DbType { get; set; } + + /// + /// 从库 + /// + public List Slaves { get; set; } } } \ No newline at end of file diff --git a/Blog.Core.Common/DB/Extension/DbEntityException.cs b/Blog.Core.Common/DB/Extension/DbEntityException.cs new file mode 100644 index 00000000..6d06f291 --- /dev/null +++ b/Blog.Core.Common/DB/Extension/DbEntityException.cs @@ -0,0 +1,14 @@ +using System; +using System.Reflection; +using SqlSugar; + +namespace Blog.Core.Common.DB.Extension; + +public static class DbEntityException +{ + public static object GetEntityTenant(this Type type) + { + var tenant = type.GetCustomAttribute(); + return tenant?.configId; + } +} \ No newline at end of file diff --git a/Blog.Core.Common/DB/MainDb.cs b/Blog.Core.Common/DB/MainDb.cs index f132b710..3de863f3 100644 --- a/Blog.Core.Common/DB/MainDb.cs +++ b/Blog.Core.Common/DB/MainDb.cs @@ -2,6 +2,6 @@ { public static class MainDb { - public static string CurrentDbConnId = "1"; + public static string CurrentDbConnId = "Main"; } } diff --git a/Blog.Core.Common/Helper/UtilConvert.cs b/Blog.Core.Common/Helper/UtilConvert.cs index ea3b7c05..530c4fd2 100644 --- a/Blog.Core.Common/Helper/UtilConvert.cs +++ b/Blog.Core.Common/Helper/UtilConvert.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using Newtonsoft.Json; namespace Blog.Core @@ -288,5 +289,12 @@ public static string ToJson(this object value) { return JsonConvert.SerializeObject(value); } + + public static bool AnyNoException(this ICollection source) + { + if (source == null) return false; + + return source.Any() && source.All(s => s != null); + } } } \ No newline at end of file diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index a70bf847..082b9b20 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -41,40 +41,33 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) SeedDataFolder = Path.Combine(WebRootPath, SeedDataFolder); Console.WriteLine("************ Blog.Core DataBase Set *****************"); - Console.WriteLine($"Is multi-DataBase: {AppSettings.app(new string[] { "MutiDBEnabled" })}"); - Console.WriteLine($"Is CQRS: {AppSettings.app(new string[] { "CQRSEnabled" })}"); - Console.WriteLine(); Console.WriteLine($"Master DB ConId: {myContext.Db.CurrentConnectionConfig.ConfigId}"); Console.WriteLine($"Master DB Type: {myContext.Db.CurrentConnectionConfig.DbType}"); Console.WriteLine($"Master DB ConnectString: {myContext.Db.CurrentConnectionConfig.ConnectionString}"); Console.WriteLine(); - if (AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool()) + if (BaseDBConfig.MainConfig.SlaveConnectionConfigs.AnyNoException()) { - var slaveIndex = 0; - BaseDBConfig.MutiConnectionString.allDbs.Where(x => x.ConnId != MainDb.CurrentDbConnId).ToList().ForEach(m => + var index = 0; + BaseDBConfig.MainConfig.SlaveConnectionConfigs.ForEach(m => { - slaveIndex++; - Console.WriteLine($"Slave{slaveIndex} DB ID: {m.ConnId}"); - Console.WriteLine($"Slave{slaveIndex} DB Type: {m.DbType}"); - Console.WriteLine($"Slave{slaveIndex} DB ConnectString: {m.Connection}"); + index++; + Console.WriteLine($"Slave{index} DB HitRate: {m.HitRate}"); + Console.WriteLine($"Slave{index} DB ConnectString: {m.ConnectionString}"); Console.WriteLine($"--------------------------------------"); }); } - else if (AppSettings.app(new string[] { "CQRSEnabled" }).ObjToBool()) + else if (BaseDBConfig.ReuseConfigs.AnyNoException()) { - var slaveIndex = 0; - BaseDBConfig.MutiConnectionString.slaveDbs.Where(x => x.ConnId != MainDb.CurrentDbConnId).ToList().ForEach(m => + var index = 0; + BaseDBConfig.ReuseConfigs.ForEach(m => { - slaveIndex++; - Console.WriteLine($"Slave{slaveIndex} DB ID: {m.ConnId}"); - Console.WriteLine($"Slave{slaveIndex} DB Type: {m.DbType}"); - Console.WriteLine($"Slave{slaveIndex} DB ConnectString: {m.Connection}"); + index++; + Console.WriteLine($"Reuse{index} DB ID: {m.ConfigId}"); + Console.WriteLine($"Reuse{index} DB Type: {m.DbType}"); + Console.WriteLine($"Reuse{index} DB ConnectString: {m.ConnectionString}"); Console.WriteLine($"--------------------------------------"); }); } - else - { - } Console.WriteLine(); @@ -97,7 +90,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) Console.WriteLine("Create Tables..."); var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory; - var referencedAssemblies = System.IO.Directory.GetFiles(path, "Blog.Core.Model.dll").Select(Assembly.LoadFrom).ToArray(); + var referencedAssemblies = System.IO.Directory.GetFiles(path, "Blog.Core.Model.dll") + .Select(Assembly.LoadFrom).ToArray(); var modelTypes = referencedAssemblies .SelectMany(a => a.DefinedTypes) .Select(type => type.AsType()) @@ -117,7 +111,7 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) ConsoleHelper.WriteSuccessLine($"Tables created successfully!"); Console.WriteLine(); - if (AppSettings.app(new string[] { "AppSettings", "SeedDBDataEnabled" }).ObjToBool()) + if (AppSettings.app(new string[] {"AppSettings", "SeedDBDataEnabled"}).ObjToBool()) { JsonSerializerSettings setting = new JsonSerializerSettings(); JsonConvert.DefaultSettings = new Func(() => @@ -143,7 +137,9 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - myContext.GetEntityDB().InsertRange(JsonHelper.ParseFormByJson>(FileHelper.ReadFile(string.Format(SeedDataFolder, "BlogArticle"), Encoding.UTF8))); + myContext.GetEntityDB().InsertRange( + JsonHelper.ParseFormByJson>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "BlogArticle"), Encoding.UTF8))); Console.WriteLine("Table:BlogArticle created success!"); } else @@ -158,7 +154,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Modules"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "Modules"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:Modules created success!"); @@ -175,7 +172,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Permission"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "Permission"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:Permission created success!"); @@ -192,7 +190,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Role"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "Role"), Encoding.UTF8), setting); //using var stream = new FileStream(Path.Combine(WebRootPath, "BlogCore.Data.excel", "Role.xlsx"), FileMode.Open); //var result = await importer.Import(stream); //var data = result.Data.ToList(); @@ -212,7 +211,9 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "RoleModulePermission"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "RoleModulePermission"), Encoding.UTF8), + setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:RoleModulePermission created success!"); @@ -229,7 +230,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Topic"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "Topic"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:Topic created success!"); @@ -246,7 +248,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "TopicDetail"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "TopicDetail"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:TopicDetail created success!"); @@ -263,7 +266,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "UserRole"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "UserRole"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:UserRole created success!"); @@ -280,7 +284,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "sysUserInfo"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "sysUserInfo"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:sysUserInfo created success!"); @@ -297,7 +302,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "TasksQz"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "TasksQz"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:TasksQz created success!"); @@ -326,7 +332,8 @@ public static async Task SeedAsync(MyContext myContext, string WebRootPath) if (!await myContext.Db.Queryable().AnyAsync()) { - var data = JsonConvert.DeserializeObject>(FileHelper.ReadFile(string.Format(SeedDataFolder, "Department"), Encoding.UTF8), setting); + var data = JsonConvert.DeserializeObject>( + FileHelper.ReadFile(string.Format(SeedDataFolder, "Department"), Encoding.UTF8), setting); myContext.GetEntityDB().InsertRange(data); Console.WriteLine("Table:Department created success!"); @@ -367,7 +374,8 @@ private static async Task SeedDataAsync(ISqlSugarClient db) .Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass) .Where(u => { - var esd = u.GetInterfaces().FirstOrDefault(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>))); + var esd = u.GetInterfaces() + .FirstOrDefault(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>))); if (esd is null) { return false; @@ -441,11 +449,13 @@ public static void MigrationLogs(MyContext myContext) logDb.DbMaintenance.CreateDatabase(); ConsoleHelper.WriteSuccessLine($"Log Database created successfully!"); var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory; - var referencedAssemblies = System.IO.Directory.GetFiles(path, "Blog.Core.Model.dll").Select(Assembly.LoadFrom).ToArray(); + var referencedAssemblies = System.IO.Directory.GetFiles(path, "Blog.Core.Model.dll") + .Select(Assembly.LoadFrom).ToArray(); var modelTypes = referencedAssemblies .SelectMany(a => a.DefinedTypes) .Select(type => type.AsType()) - .Where(x => x.IsClass && x.Namespace != null && x.Namespace.StartsWith("Blog.Core.Model.Logs")).ToList(); + .Where(x => x.IsClass && x.Namespace != null && x.Namespace.StartsWith("Blog.Core.Model.Logs")) + .ToList(); Stopwatch sw = Stopwatch.StartNew(); var tables = logDb.DbMaintenance.GetTableInfoList(); @@ -482,7 +492,8 @@ public static void MigrationLogs(MyContext myContext) /// public static async Task TenantSeedAsync(MyContext myContext) { - var tenants = await myContext.Db.Queryable().Where(s => s.TenantType == TenantTypeEnum.Db).ToListAsync(); + var tenants = await myContext.Db.Queryable().Where(s => s.TenantType == TenantTypeEnum.Db) + .ToListAsync(); if (tenants.Any()) { Console.WriteLine($@"Init Multi Tenant Db"); @@ -493,7 +504,8 @@ public static async Task TenantSeedAsync(MyContext myContext) } } - tenants = await myContext.Db.Queryable().Where(s => s.TenantType == TenantTypeEnum.Tables).ToListAsync(); + tenants = await myContext.Db.Queryable().Where(s => s.TenantType == TenantTypeEnum.Tables) + .ToListAsync(); if (tenants.Any()) { await InitTenantSeedAsync(myContext, tenants); @@ -526,7 +538,8 @@ private static async Task InitTenantSeedAsync(MyContext myContext, List !u.IsInterface && !u.IsAbstract && u.IsClass) .Where(u => { - var esd = u.GetInterfaces().FirstOrDefault(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>))); + var esd = u.GetInterfaces() + .FirstOrDefault(i => i.HasImplementedRawGeneric(typeof(IEntitySeedData<>))); if (esd is null) { return false; diff --git a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs index 680a1912..e5e9f339 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; using System.Text; +using Blog.Core.Common.DB; namespace Blog.Core.Extensions { @@ -189,18 +190,8 @@ public static void AddAppConfigSetup(this IServiceCollection services, IHostEnvi ConsoleHelper.WriteSuccessLine($"EventBus: True"); } - // 多库 - if (!AppSettings.app(new string[] { "MutiDBEnabled" }).ObjToBool()) - { - Console.WriteLine($"Is multi-DataBase: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"Is multi-DataBase: True"); - } - // 读写分离 - if (!AppSettings.app(new string[] { "CQRSEnabled" }).ObjToBool()) + if (!BaseDBConfig.MainConfig.SlaveConnectionConfigs.AnyNoException()) { Console.WriteLine($"Is CQRS: False"); } @@ -235,8 +226,7 @@ public static void AddAppTableConfigSetup(this IServiceCollection services, IHos new string[] { "RabbitMQ消息列队", AppSettings.app("RabbitMQ", "Enabled") }, new string[] { "事件总线(必须开启消息列队)", AppSettings.app("EventBus", "Enabled") }, new string[] { "redis消息队列", AppSettings.app("Startup", "RedisMq", "Enabled") }, - new string[] { "是否多库", AppSettings.app("MutiDBEnabled") }, - new string[] { "读写分离", AppSettings.app("CQRSEnabled") }, + new string[] { "读写分离", BaseDBConfig.MainConfig.SlaveConnectionConfigs.AnyNoException()? "True" : "False" }, }; new ConsoleTable() diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 6574e70e..82f74378 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -9,6 +9,7 @@ using StackExchange.Profiling; using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Blog.Core.Common.Caches; using Blog.Core.Common.Core; @@ -30,16 +31,10 @@ public static void AddSqlsugarSetup(this IServiceCollection services) if (services == null) throw new ArgumentNullException(nameof(services)); // 默认添加主数据库连接 - MainDb.CurrentDbConnId = AppSettings.app(new string[] { "MainDB" }); - - BaseDBConfig.MutiConnectionString.slaveDbs.ForEach(s => + if (!AppSettings.app("MainDB").IsNullOrEmpty()) { - BaseDBConfig.AllSlaveConfigs.Add(new SlaveConnectionConfig() - { - HitRate = s.HitRate, - ConnectionString = s.Connection - }); - }); + MainDb.CurrentDbConnId = AppSettings.app("MainDB"); + } BaseDBConfig.MutiConnectionString.allDbs.ForEach(m => { @@ -47,7 +42,7 @@ public static void AddSqlsugarSetup(this IServiceCollection services) { ConfigId = m.ConnId.ObjToString().ToLower(), ConnectionString = m.Connection, - DbType = (DbType)m.DbType, + DbType = (DbType) m.DbType, IsAutoCloseConnection = true, // Check out more information: https://github.com/anjoy8/Blog.Core/issues/122 //IsShardSameThread = false, @@ -58,7 +53,11 @@ public static void AddSqlsugarSetup(this IServiceCollection services) SqlServerCodeFirstNvarchar = true, }, // 从库 - SlaveConnectionConfigs = BaseDBConfig.AllSlaveConfigs, + SlaveConnectionConfigs = m.Slaves?.Where(s => s.HitRate > 0).Select(s => new SlaveConnectionConfig + { + ConnectionString = s.Connection, + HitRate = s.HitRate + }).ToList(), // 自定义特性 ConfigureExternalServices = new ConfigureExternalServices() { @@ -79,6 +78,16 @@ public static void AddSqlsugarSetup(this IServiceCollection services) } else { + if (string.Equals(SqlSugarConst.LogConfigId, MainDb.CurrentDbConnId, + StringComparison.CurrentCultureIgnoreCase)) + { + BaseDBConfig.MainConfig = config; + } + + //复用连接 + if (m.ConnId.ToLower().StartsWith(SqlSugarConst.LogConfigId.ToLower())) + BaseDBConfig.ReuseConfigs.Add(config); + BaseDBConfig.ValidConfig.Add(config); } @@ -98,12 +107,14 @@ public static void AddSqlsugarSetup(this IServiceCollection services) { BaseDBConfig.ValidConfig.ForEach(config => { - var dbProvider = db.GetConnectionScope((string)config.ConfigId); + var dbProvider = db.GetConnectionScope((string) config.ConfigId); // 打印SQL语句 dbProvider.Aop.OnLogExecuting = (s, parameters) => { - SqlSugarAop.OnLogExecuting(dbProvider, App.User?.Name.ObjToString(), ExtractTableName(s), Enum.GetName(typeof(SugarActionType), dbProvider.SugarActionType), s, parameters, config); + SqlSugarAop.OnLogExecuting(dbProvider, App.User?.Name.ObjToString(), ExtractTableName(s), + Enum.GetName(typeof(SugarActionType), dbProvider.SugarActionType), s, parameters, + config); }; // 数据审计 @@ -114,6 +125,8 @@ public static void AddSqlsugarSetup(this IServiceCollection services) // 配置实体数据权限 RepositorySetting.SetTenantEntityFilter(dbProvider); }); + //故障转移,检查主库链接自动切换备用连接 + SqlSugarReuse.AutoChangeAvailableConnect(db); }); }); } diff --git a/Blog.Core.IServices/IDS4Db/IApplicationUserServices.cs b/Blog.Core.IServices/IDS4Db/IApplicationUserServices.cs index c6d784ff..4be6a876 100644 --- a/Blog.Core.IServices/IDS4Db/IApplicationUserServices.cs +++ b/Blog.Core.IServices/IDS4Db/IApplicationUserServices.cs @@ -1,9 +1,11 @@ -using Blog.Core.IServices.BASE; +using System.Threading.Tasks; +using Blog.Core.IServices.BASE; using Blog.Core.Model.IDS4DbModels; namespace Blog.Core.IServices { public partial interface IApplicationUserServices : IBaseServices { + bool IsEnable(); } } \ No newline at end of file diff --git a/Blog.Core.Repository/BASE/BaseRepository.cs b/Blog.Core.Repository/BASE/BaseRepository.cs index 9d926ee4..3a1c1ee8 100644 --- a/Blog.Core.Repository/BASE/BaseRepository.cs +++ b/Blog.Core.Repository/BASE/BaseRepository.cs @@ -27,21 +27,14 @@ private ISqlSugarClient _db { ISqlSugarClient db = _dbBase; - /* 如果要开启多库支持, - * 1、在appsettings.json 中开启MutiDBEnabled节点为true,必填 - * 2、设置一个主连接的数据库ID,节点MainDB,对应的连接字符串的Enabled也必须true,必填 - */ - if (AppSettings.app(new[] { "MutiDBEnabled" }).ObjToBool()) + //修改使用 model备注字段作为切换数据库条件,使用sqlsugar TenantAttribute存放数据库ConnId + //参考 https://www.donet5.com/Home/Doc?typeId=2246 + var tenantAttr = typeof(TEntity).GetCustomAttribute(); + if (tenantAttr != null) { - //修改使用 model备注字段作为切换数据库条件,使用sqlsugar TenantAttribute存放数据库ConnId - //参考 https://www.donet5.com/Home/Doc?typeId=2246 - var tenantAttr = typeof(TEntity).GetCustomAttribute(); - if (tenantAttr != null) - { - //统一处理 configId 小写 - db = _dbBase.GetConnectionScope(tenantAttr.configId.ToString().ToLower()); - return db; - } + //统一处理 configId 小写 + db = _dbBase.GetConnectionScope(tenantAttr.configId.ToString().ToLower()); + return db; } //多租户 diff --git a/Blog.Core.Services/IDS4Db/ApplicationUserServices.cs b/Blog.Core.Services/IDS4Db/ApplicationUserServices.cs index 1cda7d36..bfaf5dfc 100644 --- a/Blog.Core.Services/IDS4Db/ApplicationUserServices.cs +++ b/Blog.Core.Services/IDS4Db/ApplicationUserServices.cs @@ -1,4 +1,7 @@ -using Blog.Core.IRepository.Base; +using System.Threading.Tasks; +using Blog.Core.Common.DB; +using Blog.Core.Common.DB.Extension; +using Blog.Core.IRepository.Base; using Blog.Core.Model.IDS4DbModels; using Blog.Core.Services.BASE; @@ -6,6 +9,10 @@ namespace Blog.Core.IServices { public class ApplicationUserServices : BaseServices, IApplicationUserServices { - + public bool IsEnable() + { + var configId = typeof(ApplicationUser).GetEntityTenant(); + return Db.AsTenant().IsAnyConnection(configId); + } } } \ No newline at end of file diff --git a/Blog.Core.Tests/Blog.Core.Tests.csproj b/Blog.Core.Tests/Blog.Core.Tests.csproj index 2ceef163..5619bea8 100644 --- a/Blog.Core.Tests/Blog.Core.Tests.csproj +++ b/Blog.Core.Tests/Blog.Core.Tests.csproj @@ -11,13 +11,6 @@ - - - Always - PreserveNewest - - - @@ -38,6 +31,14 @@ + + + true + Always + PreserveNewest + + + diff --git a/Blog.Core.Tests/appsettings.json b/Blog.Core.Tests/appsettings.json index 8c0305c7..f91f6df8 100644 --- a/Blog.Core.Tests/appsettings.json +++ b/Blog.Core.Tests/appsettings.json @@ -1,30 +1,26 @@ { "urls": "http://*:9291", //web服务端口,如果用IIS部署,把这个去掉 - "Logging": { - "LogLevel": { - "Default": "Information", //加入Default否则log4net本地写入不了日志 - "Blog.Core.AuthHelper.ApiResponseHandler": "Error" - }, - "Debug": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Warning" - } - }, - "Console": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Warning", - "Microsoft.Hosting.Lifetime": "Debug" + "Serilog": { + "MinimumLevel": { + "Default": "Debug", + "Override": { + "Microsoft": "Information", + "Microsoft.AspNetCore": "Warning", + "System": "Warning", + "System.Net.Http.HttpClient": "Warning", + "Hangfire": "Information", + "Magicodes": "Warning", + "DotNetCore.CAP": "Information", + "Savorboard.CAP": "Information", + "Quartz": "Information" } - }, - "Log4Net": { - "Name": "Blog.Core" } }, "AllowedHosts": "*", "Redis": { - "ConnectionString": "127.0.0.1:6319,password=admin" + "Enable": false, + "ConnectionString": "127.0.0.1:6379", + "InstanceName": "" //前缀 }, "RabbitMQ": { "Enabled": false, @@ -48,24 +44,34 @@ "CachingAOP": { "Enabled": true }, + "LogToDb": true, "LogAOP": { - "Enabled": false + "Enabled": false, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + } }, "TranAOP": { + "Enabled": true + }, + "UserAuditAOP": { "Enabled": false }, "SqlAOP": { "Enabled": true, - "OutToLogFile": { - "Enabled": false + "LogToFile": { + "Enabled": true }, - "OutToConsole": { + "LogToDB": { + "Enabled": true + }, + "LogToConsole": { "Enabled": true } }, - "LogToDb": { - "Enabled": true - }, "Date": "2018-08-28", "SeedDBEnabled": true, //只生成表结构 "SeedDBDataEnabled": true, //生成表,并初始化数据 @@ -74,14 +80,17 @@ "UseLoadTest": false }, - // 请配置MainDB为你想要的主库的ConnId值,并设置对应的Enabled为true; - // *** 单库操作,把 MutiDBEnabled 设为false ***; - // *** 多库操作,把 MutiDBEnabled 设为true,其他的从库Enabled也为true **; - // 具体配置看视频:https://www.bilibili.com/video/BV1BJ411B7mn?p=6 - - "MainDB": "WMBLOG_SQLITE", //当前项目的主库,所对应的连接字符串的Enabled必须为true - "MutiDBEnabled": false, //是否开启多库模式 - "CQRSEnabled": false, //是否开启读写分离模式,必须是单库模式,且数据库类型一致,比如都是SqlServer + //优化DB配置、不会再区分单库多库 + //MainDb:标识当前项目的主库,所对应的连接字符串的Enabled必须为true + //Log:标识日志库,所对应的连接字符串的Enabled必须为true + //从库只需配置Slaves数组,要求数据库类型一致!,比如都是SqlServer + // + //新增,故障转移方案 + //如果主库挂了,会自动切换到备用连接(比如说主库+备用库) + //备用连接的ConnId配置为主库的ConnId+数字即可,比如主库的ConnId为Main,那么备用连接的ConnId为Mian1 + //主库、备用库无需数据库类型一致! + //备用库不会有程序维护,需要手动维护 + "MainDB": "Main", //当前项目的主库,所对应的连接字符串的Enabled必须为true "DBS": [ /* 对应下边的 DBType @@ -94,17 +103,40 @@ Kdbndp = 6,//人大金仓 */ { - "ConnId": "WMBLOG_SQLITE", + "ConnId": "Main", "DBType": 2, "Enabled": true, - "HitRate": 50, // 值越大,优先级越高 - "Connection": "WMBlog.db" //sqlite只写数据库名就行 + "Connection": "WMBlog.db", //sqlite只写数据库名就行 + "Slaves": [ + { + "HitRate": 0,// 值越大,优先级越高 0不使用 + "Connection": "WMBlog2.db" + } + ] + }, + { + "ConnId": "Main2", + "DBType": 2, + "Enabled": true, + "Connection": "WMBlog3.db", //sqlite只写数据库名就行 + "Slaves": [ + { + "HitRate": 0,// 值越大,优先级越高 0不使用 + "Connection": "WMBlog4.db" + } + ] + }, + { + "ConnId": "Log", //日志库连接固定名称,不要改,其他的可以改 + "DBType": 2, + "Enabled": true, + "HitRate": 50, + "Connection": "WMBlogLog.db" //sqlite只写数据库名就行 }, { "ConnId": "WMBLOG_MSSQL_1", "DBType": 1, "Enabled": false, - "HitRate": 40, "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", "ProviderName": "System.Data.SqlClient" }, @@ -112,7 +144,6 @@ "ConnId": "WMBLOG_MSSQL_2", "DBType": 1, "Enabled": false, - "HitRate": 30, "Connection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=WMBLOG_MSSQL_2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", "ProviderName": "System.Data.SqlClient" }, @@ -120,35 +151,30 @@ "ConnId": "WMBLOG_MYSQL", "DBType": 0, "Enabled": false, - "HitRate": 20, - "Connection": "server=.;Database=ddd;Uid=root;Pwd=123456;Port=10060;Allow User Variables=True;" + "Connection": "server=localhost;Database=blog;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" }, { "ConnId": "WMBLOG_MYSQL_2", "DBType": 0, - "Enabled": true, - "HitRate": 20, - "Connection": "server=.;Database=blogcore001;Uid=root;Pwd=123456;Port=3096;Allow User Variables=True;" + "Enabled": false, + "Connection": "server=localhost;Database=blogcore001;Uid=root;Pwd=root;Port=3306;Allow User Variables=True;" }, { "ConnId": "WMBLOG_ORACLE", "DBType": 3, "Enabled": false, - "HitRate": 10, "Connection": "Data Source=127.0.0.1/ops;User ID=OPS;Password=123456;Persist Security Info=True;Connection Timeout=60;" }, { "ConnId": "WMBLOG_DM", "DBType": 5, "Enabled": false, - "HitRate": 10, - "Connection": "PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA;" + "Connection": "Server=xxxxx:5236;User Id=xxxxx;PWD=xxxxx;SCHEMA=TESTDBA;" }, { "ConnId": "WMBLOG_KDBNDP", "DBType": 6, - "Enabled": true, - "HitRate": 10, + "Enabled": false, "Connection": "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1;" } ], @@ -163,12 +189,13 @@ "Database": "BlogCoreDb" }, "Startup": { + "Domain": "http://localhost:9291", "Cors": { "PolicyName": "CorsIpAccess", //策略名称 "EnableAllIPs": false, //当为true时,开放所有IP均可访问。 // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 - "IPs": "http://127.0.0.1:2364,http://localhost:2364" + "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://127.0.0.1:6688,http://localhost:6688" }, "AppConfigAlert": { "Enabled": true @@ -179,6 +206,12 @@ "AuthorizationUrl": "http://localhost:5004", // 认证中心域名 "ApiName": "blog.core.api" // 资源服务器 }, + "Authing": { + "Enabled": false, + "Issuer": "https://uldr24esx31h-demo.authing.cn/oidc", + "Audience": "63d51c4205c2849803be5178", + "JwksUri": "https://uldr24esx31h-demo.authing.cn/oidc/.well-known/jwks.json" + }, "RedisMq": { "Enabled": false //redis 消息队列 }, @@ -191,17 +224,38 @@ }, "Middleware": { "RequestResponseLog": { - "Enabled": false + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + } }, "IPLog": { - "Enabled": true + "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + } }, "RecordAccessLogs": { "Enabled": true, + "LogToFile": { + "Enabled": true + }, + "LogToDB": { + "Enabled": true + }, "IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server," }, "SignalR": { - "Enabled": false + "Enabled": true + }, + "SignalRSendLog": { + "Enabled": true }, "QuartzNetJob": { "Enabled": true @@ -285,5 +339,10 @@ "FiedValue": "Blog.Core.Api" } ] + }, + "Seq": { + "Enabled": true, + "Address": "http://localhost:5341/", + "ApiKey": "" } -} +} \ No newline at end of file From f87b33a4a80ecc817eba410f79e52c563bcb7fc2 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Wed, 25 Oct 2023 11:20:51 +0800 Subject: [PATCH 312/382] =?UTF-8?q?=F0=9F=90=9B=20=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 82f74378..eb012394 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -78,14 +78,14 @@ public static void AddSqlsugarSetup(this IServiceCollection services) } else { - if (string.Equals(SqlSugarConst.LogConfigId, MainDb.CurrentDbConnId, + if (string.Equals(config.ConfigId, MainDb.CurrentDbConnId, StringComparison.CurrentCultureIgnoreCase)) { BaseDBConfig.MainConfig = config; } //复用连接 - if (m.ConnId.ToLower().StartsWith(SqlSugarConst.LogConfigId.ToLower())) + if (m.ConnId.ToLower().StartsWith(MainDb.CurrentDbConnId.ToLower())) BaseDBConfig.ReuseConfigs.Add(config); BaseDBConfig.ValidConfig.Add(config); From f6cee97f899852f34008424b4c50d7b762d62d55 Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Fri, 27 Oct 2023 15:25:37 +0800 Subject: [PATCH 313/382] Update sysUserInfo.cs --- Blog.Core.Model/Models/sysUserInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index 574ea311..1137d91c 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -61,7 +61,7 @@ public SysUserInfo(string loginName, string loginPWD) /// 部门 /// [SugarColumn(IsNullable = true)] - public int DepartmentId { get; set; } = -1; + public long DepartmentId { get; set; } = -1; /// /// 备注 @@ -141,4 +141,4 @@ public SysUserInfo(string loginName, string loginPWD) [SugarColumn(IsIgnore = true)] public string DepartmentName { get; set; } } -} \ No newline at end of file +} From eed5d5cfab71d7baf4f270ee52cfb007954e315c Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Fri, 27 Oct 2023 15:26:17 +0800 Subject: [PATCH 314/382] Update sysUserInfo.cs --- Blog.Core.Model/Models/sysUserInfo.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Blog.Core.Model/Models/sysUserInfo.cs b/Blog.Core.Model/Models/sysUserInfo.cs index 574ea311..1137d91c 100644 --- a/Blog.Core.Model/Models/sysUserInfo.cs +++ b/Blog.Core.Model/Models/sysUserInfo.cs @@ -61,7 +61,7 @@ public SysUserInfo(string loginName, string loginPWD) /// 部门 /// [SugarColumn(IsNullable = true)] - public int DepartmentId { get; set; } = -1; + public long DepartmentId { get; set; } = -1; /// /// 备注 @@ -141,4 +141,4 @@ public SysUserInfo(string loginName, string loginPWD) [SugarColumn(IsIgnore = true)] public string DepartmentName { get; set; } } -} \ No newline at end of file +} From 1b7d13aa6db48929c413244d2c555be36ef15ee2 Mon Sep 17 00:00:00 2001 From: hudingwen <765472804@qq.com> Date: Sat, 28 Oct 2023 18:21:49 +0800 Subject: [PATCH 315/382] =?UTF-8?q?xml=E5=BA=8F=E5=88=97=E5=8C=96=E5=86=85?= =?UTF-8?q?=E5=AD=98=E6=B3=84=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Common/Helper/XmlHelper.cs | 52 +++++++++++++++++----------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/Blog.Core.Common/Helper/XmlHelper.cs b/Blog.Core.Common/Helper/XmlHelper.cs index 510c84a1..f81d6817 100644 --- a/Blog.Core.Common/Helper/XmlHelper.cs +++ b/Blog.Core.Common/Helper/XmlHelper.cs @@ -1,33 +1,40 @@ using System; +using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Xml.Serialization; namespace Blog.Core.Common.Helper { + /// + /// xml序列化帮助类 + /// public class XmlHelper { + /// + /// 存储序列类型,防止内存泄漏 + /// + private static ConcurrentDictionary hasTypes = new ConcurrentDictionary(); /// /// 转换对象为JSON格式数据 /// /// /// 对象 /// 字符格式的JSON数据 - public static string GetXML(object obj) + public static string GetXML(object obj, string rootName = "root") { - try + XmlSerializer xs; + var xsType = typeof(T); + hasTypes.TryGetValue(xsType, out xs); + if(xs == null) { - XmlSerializer xs = new XmlSerializer(typeof(T)); - - using (TextWriter tw = new StringWriter()) - { - xs.Serialize(tw, obj); - return tw.ToString(); - } + xs = new XmlSerializer(typeof(T)); + hasTypes.TryAdd(xsType, xs); } - catch (Exception) + using (TextWriter tw = new StringWriter()) { - return string.Empty; + xs.Serialize(tw, obj); + return tw.ObjToString(); } } @@ -37,15 +44,20 @@ public static string GetXML(object obj) /// /// /// - public static T ParseFormByXml(string xml,string rootName="root") + public static T ParseFormByXml(string xml, string rootName = "root") { - XmlSerializer serializer = new XmlSerializer(typeof(T), new XmlRootAttribute(rootName)); - StringReader reader = new StringReader(xml); - - T res = (T)serializer.Deserialize(reader); - reader.Close(); - reader.Dispose(); - return res; - } + XmlSerializer xs; + var xsType = typeof(T); + hasTypes.TryGetValue(xsType, out xs); + if (xs == null) + { + xs = new XmlSerializer(xsType, new XmlRootAttribute(rootName)); + hasTypes.TryAdd(xsType, xs); + } + using (StringReader reader = new StringReader(xml)) + { + return (T)xs.Deserialize(reader); + } + } } } From 164946d0bd3c24f479f9615b09508cefe6d8db8e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 1 Nov 2023 11:05:28 +0800 Subject: [PATCH 316/382] =?UTF-8?q?feat=EF=BC=9Aupdate=20common.targets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.Api.csproj | 2 -- Blog.Core.Serilog/Blog.Core.Serilog.csproj | 20 ++++++++------------ build/common.targets | 4 +++- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index 3b913630..e022f1a2 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -61,8 +61,6 @@ - - diff --git a/Blog.Core.Serilog/Blog.Core.Serilog.csproj b/Blog.Core.Serilog/Blog.Core.Serilog.csproj index 8df8f16f..70fe14fd 100644 --- a/Blog.Core.Serilog/Blog.Core.Serilog.csproj +++ b/Blog.Core.Serilog/Blog.Core.Serilog.csproj @@ -1,17 +1,13 @@ - + - - net6.0 - enable - enable - + - - - + + + - - - + + + diff --git a/build/common.targets b/build/common.targets index bfd5899f..68825d9d 100644 --- a/build/common.targets +++ b/build/common.targets @@ -1,5 +1,7 @@ - net7.0 + net7.0 + enable + enable \ No newline at end of file From 6655c65924e3408e2f5c0a9ab44bf12507769559 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 1 Nov 2023 15:06:32 +0800 Subject: [PATCH 317/382] Update common.targets --- build/common.targets | 1 - 1 file changed, 1 deletion(-) diff --git a/build/common.targets b/build/common.targets index 68825d9d..5f035173 100644 --- a/build/common.targets +++ b/build/common.targets @@ -2,6 +2,5 @@ net7.0 enable - enable \ No newline at end of file From afb9a0d9f5da0fdfe1d1478a5c7ec23bd39f4bff Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Fri, 3 Nov 2023 09:22:02 +0800 Subject: [PATCH 318/382] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=B7=BB=E5=8A=A0=E5=A4=87=E7=94=A8=E9=93=BE?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index eb012394..99133fe1 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -83,10 +83,12 @@ public static void AddSqlsugarSetup(this IServiceCollection services) { BaseDBConfig.MainConfig = config; } - - //复用连接 - if (m.ConnId.ToLower().StartsWith(MainDb.CurrentDbConnId.ToLower())) + else if (m.ConnId.ToLower().StartsWith(MainDb.CurrentDbConnId.ToLower())) + { + //复用连接 BaseDBConfig.ReuseConfigs.Add(config); + } + BaseDBConfig.ValidConfig.Add(config); } From c85f51a9013323f82b4e3a9a635d6c79c4730788 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Sat, 11 Nov 2023 15:57:56 +0800 Subject: [PATCH 319/382] =?UTF-8?q?=F0=9F=8E=A8=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E6=B5=81=E8=AF=BB=E5=8F=96,=E5=85=BC?= =?UTF-8?q?=E5=AE=B9MemoryStream?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extensions/HttpResponseExceptions.cs | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/Blog.Core.Common/Extensions/HttpResponseExceptions.cs b/Blog.Core.Common/Extensions/HttpResponseExceptions.cs index 67deee45..34c3baae 100644 --- a/Blog.Core.Common/Extensions/HttpResponseExceptions.cs +++ b/Blog.Core.Common/Extensions/HttpResponseExceptions.cs @@ -7,29 +7,29 @@ namespace Blog.Core.Common.Extensions; public static class HttpResponseExceptions { - public static string GetResponseBody(this HttpResponse response) - { - if (response is null) - { - return default; - } + public static string GetResponseBody(this HttpResponse response) + { + if (response is null) + { + return string.Empty; + } - if (response.Body is FluentHttpResponseStream responseBody) - { - response.Body.Position = 0; - //不关闭底层流 - using StreamReader stream = new StreamReader(responseBody, leaveOpen: true); - string body = stream.ReadToEnd(); - response.Body.Position = 0; - return body; - } - else - { - //原始HttpResponseStream 无法读取 - //实际上只是个包装类,内部使用了HttpResponsePipeWriter write - throw new ApplicationException("The response body is not a FluentHttpResponseStream"); - } - - return default; - } + //原始HttpResponseStream 无法读取 + //实际上只是个包装类,内部使用了HttpResponsePipeWriter write + switch (response.Body) + { + case FluentHttpResponseStream: + case MemoryStream: + { + response.Body.Position = 0; + using var stream = new StreamReader(response.Body, leaveOpen: true); + var body = stream.ReadToEnd(); + response.Body.Position = 0; + return body; + } + default: + // throw new ApplicationException("The response body is not a FluentHttpResponseStream"); + return string.Empty; + } + } } \ No newline at end of file From 908e170a792538d3614dae433154674009069926 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 11 Nov 2023 16:57:32 +0800 Subject: [PATCH 320/382] =?UTF-8?q?feat:=20=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=8F=82=E6=95=B0=E8=A7=A3=E5=AF=86=E5=92=8C?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E5=8A=A0=E5=AF=86=E4=B8=AD=E9=97=B4=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/LoginController.cs | 648 +++++++++--------- Blog.Core.Api/Program.cs | 3 + Blog.Core.Api/appsettings.json | 14 + .../EncryptionRequestMiddleware.cs | 116 ++++ .../EncryptionResponseMiddleware.cs | 114 +++ .../Middlewares/RequRespLogMiddleware.cs | 4 +- 6 files changed, 577 insertions(+), 322 deletions(-) create mode 100644 Blog.Core.Extensions/Middlewares/EncryptionRequestMiddleware.cs create mode 100644 Blog.Core.Extensions/Middlewares/EncryptionResponseMiddleware.cs diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index 8313507d..4838c3c9 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -15,324 +15,332 @@ namespace Blog.Core.Controllers { - /// - /// 登录管理【无权限】 - /// - [Produces("application/json")] - [Route("api/Login")] - [AllowAnonymous] - public class LoginController : BaseApiController - { - readonly ISysUserInfoServices _sysUserInfoServices; - readonly IUserRoleServices _userRoleServices; - readonly IRoleServices _roleServices; - readonly PermissionRequirement _requirement; - private readonly IRoleModulePermissionServices _roleModulePermissionServices; - private readonly ILogger _logger; - - /// - /// 构造函数注入 - /// - /// - /// - /// - /// - /// - public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, - IRoleServices roleServices, PermissionRequirement requirement, - IRoleModulePermissionServices roleModulePermissionServices, ILogger logger) - { - this._sysUserInfoServices = sysUserInfoServices; - this._userRoleServices = userRoleServices; - this._roleServices = roleServices; - _requirement = requirement; - _roleModulePermissionServices = roleModulePermissionServices; - _logger = logger; - } - - - #region 获取token的第1种方法 - - /// - /// 获取JWT的方法1 - /// - /// - /// - /// - [HttpGet] - [Route("Token")] - public async Task> GetJwtStr(string name, string pass) - { - string jwtStr = string.Empty; - bool suc = false; - //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 - - var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass)); - if (user != null) - { - TokenModelJwt tokenModel = new TokenModelJwt {Uid = 1, Role = user}; - - jwtStr = JwtHelper.IssueJwt(tokenModel); - suc = true; - } - else - { - jwtStr = "login fail!!!"; - } - - return new MessageModel() - { - success = suc, - msg = suc ? "获取成功" : "获取失败", - response = jwtStr - }; - } - - - /// - /// 获取JWT的方法2:给Nuxt提供 - /// - /// - /// - /// - [HttpGet] - [Route("GetTokenNuxt")] - public MessageModel GetJwtStrForNuxt(string name, string pass) - { - string jwtStr = string.Empty; - bool suc = false; - //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 - //这里直接写死了 - if (name == "admins" && pass == "admins") - { - TokenModelJwt tokenModel = new TokenModelJwt - { - Uid = 1, - Role = "Admin" - }; - - jwtStr = JwtHelper.IssueJwt(tokenModel); - suc = true; - } - else - { - jwtStr = "login fail!!!"; - } - - var result = new - { - data = new {success = suc, token = jwtStr} - }; - - return new MessageModel() - { - success = suc, - msg = suc ? "获取成功" : "获取失败", - response = jwtStr - }; - } - - #endregion - - - /// - /// 获取JWT的方法3:整个系统主要方法 - /// - /// - /// - /// - [HttpGet] - [Route("JWTToken3.0")] - public async Task> GetJwtToken3(string name = "", string pass = "") - - { - string jwtStr = string.Empty; - - if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass)) - return Failed("用户名或密码不能为空"); - - pass = MD5Helper.MD5Encrypt32(pass); - - var user = await _sysUserInfoServices.Query(d => - d.LoginName == name && d.LoginPWD == pass && d.IsDeleted == false); - if (user.Count > 0) - { - var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(name, pass); - //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 - var claims = new List - { - new Claim(ClaimTypes.Name, name), - new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().Id.ToString()), - new Claim("TenantId", user.FirstOrDefault().TenantId.ToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), - new Claim(ClaimTypes.Expiration, - DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) - }; - claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); - - - // ids4和jwt切换 - // jwt - if (!Permissions.IsUseIds4) - { - var data = await _roleModulePermissionServices.RoleModuleMaps(); - var list = (from item in data - where item.IsDeleted == false - orderby item.Id - select new PermissionItem - { - Url = item.Module?.LinkUrl, - Role = item.Role?.Name.ObjToString(), - }).ToList(); - - _requirement.Permissions = list; - } - - var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); - return Success(token, "获取成功"); - } - else - { - return Failed("认证失败"); - } - } - - /// - /// 请求刷新Token(以旧换新) - /// - /// - /// - [HttpGet] - [Route("RefreshToken")] - public async Task> RefreshToken(string token = "") - { - string jwtStr = string.Empty; - - if (string.IsNullOrEmpty(token)) - return Failed("token无效,请重新登录!"); - var tokenModel = JwtHelper.SerializeJwt(token); - if (tokenModel != null && JwtHelper.customSafeVerify(token) && tokenModel.Uid > 0) - { - var user = await _sysUserInfoServices.QueryById(tokenModel.Uid); - var value = User.Claims.SingleOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; - if (value != null && user.CriticalModifyTime > value.ObjToDate()) - { - return Failed("很抱歉,授权已失效,请重新授权!"); - } - - if (user != null && !(value != null && user.CriticalModifyTime > value.ObjToDate())) - { - var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(user.LoginName, user.LoginPWD); - //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 - var claims = new List - { - new Claim(ClaimTypes.Name, user.LoginName), - new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), - new Claim(ClaimTypes.Expiration, - DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) - }; - claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); - - //用户标识 - var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme); - identity.AddClaims(claims); - - var refreshToken = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); - return Success(refreshToken, "获取成功"); - } - } - - return Failed("认证失败!"); - } - - /// - /// 获取JWT的方法4:给 JSONP 测试 - /// - /// - /// - /// - /// - /// - /// - [HttpGet] - [Route("jsonp")] - public void Getjsonp(string callBack, long id = 1, string sub = "Admin", int expiresSliding = 30, - int expiresAbsoulute = 30) - { - TokenModelJwt tokenModel = new TokenModelJwt - { - Uid = id, - Role = sub - }; - - string jwtStr = JwtHelper.IssueJwt(tokenModel); - - string response = string.Format("\"value\":\"{0}\"", jwtStr); - string call = callBack + "({" + response + "})"; - Response.WriteAsync(call); - } - - - /// - /// 测试 MD5 加密字符串 - /// - /// - /// - [HttpGet] - [Route("Md5Password")] - public string Md5Password(string password = "") - { - return MD5Helper.MD5Encrypt32(password); - } - - /// - /// swagger登录 - /// - /// - /// - [HttpPost] - [Route("/api/Login/swgLogin")] - public async Task SwgLogin([FromBody] SwaggerLoginRequest loginRequest) - { - if (loginRequest is null) - { - return new {result = false}; - } - - try - { - var result = await GetJwtToken3(loginRequest.name, loginRequest.pwd); - if (result.success) - { - HttpContext.SuccessSwagger(); - HttpContext.SuccessSwaggerJwt(result.response.token); - return new {result = true}; - } - } - catch (Exception ex) - { - _logger.LogWarning(ex, "Swagger登录异常"); - } - - return new {result = false}; - } - - /// - /// weixin登录 - /// - /// - [HttpGet] - [Route("wxLogin")] - public dynamic WxLogin(string g = "", string token = "") - { - return new {g, token}; - } - } - - public class SwaggerLoginRequest - { - public string name { get; set; } - public string pwd { get; set; } - } + /// + /// 登录管理【无权限】 + /// + [Produces("application/json")] + [Route("api/Login")] + [AllowAnonymous] + public class LoginController : BaseApiController + { + readonly ISysUserInfoServices _sysUserInfoServices; + readonly IUserRoleServices _userRoleServices; + readonly IRoleServices _roleServices; + readonly PermissionRequirement _requirement; + private readonly IRoleModulePermissionServices _roleModulePermissionServices; + private readonly ILogger _logger; + + /// + /// 构造函数注入 + /// + /// + /// + /// + /// + /// + public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, + IRoleServices roleServices, PermissionRequirement requirement, + IRoleModulePermissionServices roleModulePermissionServices, ILogger logger) + { + this._sysUserInfoServices = sysUserInfoServices; + this._userRoleServices = userRoleServices; + this._roleServices = roleServices; + _requirement = requirement; + _roleModulePermissionServices = roleModulePermissionServices; + _logger = logger; + } + + + #region 获取token的第1种方法 + + /// + /// 获取JWT的方法1 + /// + /// + /// + /// + [HttpGet] + [Route("Token")] + public async Task> GetJwtStr(string name, string pass) + { + string jwtStr = string.Empty; + bool suc = false; + //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 + + var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass)); + if (user != null) + { + TokenModelJwt tokenModel = new TokenModelJwt { Uid = 1, Role = user }; + + jwtStr = JwtHelper.IssueJwt(tokenModel); + suc = true; + } + else + { + jwtStr = "login fail!!!"; + } + + return new MessageModel() + { + success = suc, + msg = suc ? "获取成功" : "获取失败", + response = jwtStr + }; + } + + + /// + /// 获取JWT的方法2:给Nuxt提供 + /// + /// + /// + /// + [HttpGet] + [Route("GetTokenNuxt")] + public MessageModel GetJwtStrForNuxt(string name, string pass) + { + string jwtStr = string.Empty; + bool suc = false; + //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 + //这里直接写死了 + if (name == "admins" && pass == "admins") + { + TokenModelJwt tokenModel = new TokenModelJwt + { + Uid = 1, + Role = "Admin" + }; + + jwtStr = JwtHelper.IssueJwt(tokenModel); + suc = true; + } + else + { + jwtStr = "login fail!!!"; + } + + var result = new + { + data = new { success = suc, token = jwtStr } + }; + + return new MessageModel() + { + success = suc, + msg = suc ? "获取成功" : "获取失败", + response = jwtStr + }; + } + + #endregion + + + /// + /// 获取JWT的方法3:整个系统主要方法 + /// + /// + /// + /// + [HttpGet] + [Route("JWTToken3.0")] + public async Task> GetJwtToken3(string name = "", string pass = "") + + { + string jwtStr = string.Empty; + + if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass)) + return Failed("用户名或密码不能为空"); + + pass = MD5Helper.MD5Encrypt32(pass); + + var user = await _sysUserInfoServices.Query(d => + d.LoginName == name && d.LoginPWD == pass && d.IsDeleted == false); + if (user.Count > 0) + { + var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(name, pass); + //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 + var claims = new List + { + new Claim(ClaimTypes.Name, name), + new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().Id.ToString()), + new Claim("TenantId", user.FirstOrDefault().TenantId.ToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), + new Claim(ClaimTypes.Expiration, + DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) + }; + claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); + + + // ids4和jwt切换 + // jwt + if (!Permissions.IsUseIds4) + { + var data = await _roleModulePermissionServices.RoleModuleMaps(); + var list = (from item in data + where item.IsDeleted == false + orderby item.Id + select new PermissionItem + { + Url = item.Module?.LinkUrl, + Role = item.Role?.Name.ObjToString(), + }).ToList(); + + _requirement.Permissions = list; + } + + var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); + return Success(token, "获取成功"); + } + else + { + return Failed("认证失败"); + } + } + + [HttpGet] + [Route("GetJwtTokenSecret")] + public async Task> GetJwtTokenSecret(string name = "", string pass = "") + { + var rlt = await GetJwtToken3(name, pass); + return rlt; + } + + /// + /// 请求刷新Token(以旧换新) + /// + /// + /// + [HttpGet] + [Route("RefreshToken")] + public async Task> RefreshToken(string token = "") + { + string jwtStr = string.Empty; + + if (string.IsNullOrEmpty(token)) + return Failed("token无效,请重新登录!"); + var tokenModel = JwtHelper.SerializeJwt(token); + if (tokenModel != null && JwtHelper.customSafeVerify(token) && tokenModel.Uid > 0) + { + var user = await _sysUserInfoServices.QueryById(tokenModel.Uid); + var value = User.Claims.SingleOrDefault(s => s.Type == JwtRegisteredClaimNames.Iat)?.Value; + if (value != null && user.CriticalModifyTime > value.ObjToDate()) + { + return Failed("很抱歉,授权已失效,请重新授权!"); + } + + if (user != null && !(value != null && user.CriticalModifyTime > value.ObjToDate())) + { + var userRoles = await _sysUserInfoServices.GetUserRoleNameStr(user.LoginName, user.LoginPWD); + //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 + var claims = new List + { + new Claim(ClaimTypes.Name, user.LoginName), + new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), + new Claim(ClaimTypes.Expiration, + DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) + }; + claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); + + //用户标识 + var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme); + identity.AddClaims(claims); + + var refreshToken = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); + return Success(refreshToken, "获取成功"); + } + } + + return Failed("认证失败!"); + } + + /// + /// 获取JWT的方法4:给 JSONP 测试 + /// + /// + /// + /// + /// + /// + /// + [HttpGet] + [Route("jsonp")] + public void Getjsonp(string callBack, long id = 1, string sub = "Admin", int expiresSliding = 30, + int expiresAbsoulute = 30) + { + TokenModelJwt tokenModel = new TokenModelJwt + { + Uid = id, + Role = sub + }; + + string jwtStr = JwtHelper.IssueJwt(tokenModel); + + string response = string.Format("\"value\":\"{0}\"", jwtStr); + string call = callBack + "({" + response + "})"; + Response.WriteAsync(call); + } + + + /// + /// 测试 MD5 加密字符串 + /// + /// + /// + [HttpGet] + [Route("Md5Password")] + public string Md5Password(string password = "") + { + return MD5Helper.MD5Encrypt32(password); + } + + /// + /// swagger登录 + /// + /// + /// + [HttpPost] + [Route("/api/Login/swgLogin")] + public async Task SwgLogin([FromBody] SwaggerLoginRequest loginRequest) + { + if (loginRequest is null) + { + return new { result = false }; + } + + try + { + var result = await GetJwtToken3(loginRequest.name, loginRequest.pwd); + if (result.success) + { + HttpContext.SuccessSwagger(); + HttpContext.SuccessSwaggerJwt(result.response.token); + return new { result = true }; + } + } + catch (Exception ex) + { + _logger.LogWarning(ex, "Swagger登录异常"); + } + + return new { result = false }; + } + + /// + /// weixin登录 + /// + /// + [HttpGet] + [Route("wxLogin")] + public dynamic WxLogin(string g = "", string token = "") + { + return new { g, token }; + } + } + + public class SwaggerLoginRequest + { + public string name { get; set; } + public string pwd { get; set; } + } } \ No newline at end of file diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 876a83a8..4c2274ee 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -144,6 +144,9 @@ //app.UseHsts(); } +app.UseEncryptionRequest(); +app.UseEncryptionResponse(); + app.UseExceptionHandlerMiddle(); app.UseIpLimitMiddle(); app.UseRequestResponseLogMiddle(); diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index f91f6df8..ff2c178a 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -265,6 +265,20 @@ }, "IpRateLimit": { "Enabled": true + }, + "EncryptionResponse": { + "Enabled": true, + "AllApis": false, + "LimitApis": [ + "/api/Login/GetJwtTokenSecret" + ] + }, + "EncryptionRequest": { + "Enabled": true, + "AllApis": false, + "LimitApis": [ + "/api/Login/GetJwtTokenSecret" + ] } }, "IpRateLimiting": { diff --git a/Blog.Core.Extensions/Middlewares/EncryptionRequestMiddleware.cs b/Blog.Core.Extensions/Middlewares/EncryptionRequestMiddleware.cs new file mode 100644 index 00000000..9cb78a30 --- /dev/null +++ b/Blog.Core.Extensions/Middlewares/EncryptionRequestMiddleware.cs @@ -0,0 +1,116 @@ +using Blog.Core.Common; +using Blog.Core.Common.Extensions; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; +using Newtonsoft.Json; +using System; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Extensions +{ + /// + /// 自定义中间件 + /// 通过配置,对指定接口返回数据进行加密返回 + /// 可过滤文件流 + /// + public class EncryptionRequestMiddleware + { + private readonly RequestDelegate _next; + + public EncryptionRequestMiddleware(RequestDelegate next) + { + _next = next; + } + + public async Task InvokeAsync(HttpContext context) + { + // 配置开关,过滤接口 + if (AppSettings.app("Middleware", "EncryptionRequest", "Enabled").ObjToBool()) + { + var isAllApis = AppSettings.app("Middleware", "EncryptionRequest", "AllApis").ObjToBool(); + var needEnApis = AppSettings.app("Middleware", "EncryptionRequest", "LimitApis"); + var path = context.Request.Path.Value.ToLower(); + if (isAllApis || (path.Length > 5 && needEnApis.Any(d => d.ToLower().Contains(path)))) + { + Console.WriteLine($"{isAllApis} -- {path}"); + + if (context.Request.Method.ToLower() == "post") + { + // 读取请求主体 + using StreamReader reader = new(context.Request.Body, Encoding.UTF8); + string requestBody = await reader.ReadToEndAsync(); + + // 检查是否有要解密的数据 + if (!string.IsNullOrEmpty(requestBody) && context.Request.Headers.ContainsKey("Content-Type") && + context.Request.Headers["Content-Type"].ToString().ToLower().Contains("application/json")) + { + // 解密数据 + string decryptedString = DecryptData(requestBody); + + // 更新请求主体中的数据 + context.Request.Body = GenerateStreamFromString(decryptedString); + } + } + else if (context.Request.Method.ToLower() == "get") + { + // 获取url参数 + string param = context.Request.Query["param"]; + + // 检查是否有要解密的数据 + if (!string.IsNullOrEmpty(param)) + { + // 解密数据 + string decryptedString = DecryptData(param); + + // 更新url参数值 + context.Request.QueryString = new QueryString($"?{decryptedString}"); + } + } + + await _next(context); + } + else + { + await _next(context); + } + } + else + { + await _next(context); + } + } + private string DecryptData(string encryptedData) + { + // 解密逻辑实现,可以根据你使用的加密算法和密钥进行自定义 + byte[] bytes = Convert.FromBase64String(encryptedData); + string originalString = Encoding.UTF8.GetString(bytes); + Console.WriteLine(originalString); + return originalString; + } + private static Stream GenerateStreamFromString(string s) + { + var stream = new MemoryStream(); + var writer = new StreamWriter(stream); + writer.Write(s); + writer.Flush(); + stream.Position = 0; + return stream; + } + } + + public static class EncryptionRequestExtensions + { + /// + /// 自定义中间件 + /// 通过配置,对指定接口入参进行解密操作 + /// 注意:放到管道最外层 + /// + public static IApplicationBuilder UseEncryptionRequest(this IApplicationBuilder builder) + { + return builder.UseMiddleware(); + } + } +} diff --git a/Blog.Core.Extensions/Middlewares/EncryptionResponseMiddleware.cs b/Blog.Core.Extensions/Middlewares/EncryptionResponseMiddleware.cs new file mode 100644 index 00000000..cb701b1f --- /dev/null +++ b/Blog.Core.Extensions/Middlewares/EncryptionResponseMiddleware.cs @@ -0,0 +1,114 @@ +using Blog.Core.Common; +using Blog.Core.Common.Extensions; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; +using Newtonsoft.Json; +using System; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Blog.Core.Extensions +{ + /// + /// 自定义中间件 + /// 通过配置,对指定接口返回数据进行加密返回 + /// 可过滤文件流 + /// + public class EncryptionResponseMiddleware + { + private readonly RequestDelegate _next; + + public EncryptionResponseMiddleware(RequestDelegate next) + { + _next = next; + } + + public async Task InvokeAsync(HttpContext context) + { + // 配置开关,过滤接口 + if (AppSettings.app("Middleware", "EncryptionResponse", "Enabled").ObjToBool()) + { + var isAllApis = AppSettings.app("Middleware", "EncryptionResponse", "AllApis").ObjToBool(); + var needEnApis = AppSettings.app("Middleware", "EncryptionResponse", "LimitApis"); + var path = context.Request.Path.Value.ToLower(); + if (isAllApis || (path.Length > 5 && needEnApis.Any(d => d.ToLower().Contains(path)))) + { + Console.WriteLine($"{isAllApis} -- {path}"); + var responseCxt = context.Response; + var originalBodyStream = responseCxt.Body; + + // 创建一个新的内存流用于存储加密后的数据 + using var encryptedBodyStream = new MemoryStream(); + // 用新的内存流替换 responseCxt.Body + responseCxt.Body = encryptedBodyStream; + + // 执行下一个中间件请求管道 + await _next(context); + + //encryptedBodyStream.Seek(0, SeekOrigin.Begin); + //encryptedBodyStream.Position = 0; + + // 可以去掉某些流接口 + if (!context.Response.ContentType.ToLower().Contains("application/json")) + { + Console.WriteLine($"非json返回格式 {context.Response.ContentType}"); + //await encryptedBodyStream.CopyToAsync(originalBodyStream); + context.Response.Body = originalBodyStream; + return; + } + + // 读取加密后的数据 + //var encryptedBody = await new StreamReader(encryptedBodyStream).ReadToEndAsync(); + var encryptedBody = responseCxt.GetResponseBody(); + + if (encryptedBody.IsNotEmptyOrNull()) + { + dynamic jsonObject = JsonConvert.DeserializeObject(encryptedBody); + string statusCont = jsonObject.status; + var status = statusCont.ObjToInt(); + string msg = jsonObject.msg; + string successCont = jsonObject.success; + var success = successCont.ObjToBool(); + dynamic responseCnt = success ? jsonObject.response : ""; + string s = "1"; + // 这里换成自己的任意加密方式 + var response = responseCnt.ToString() != "" ? Convert.ToBase64String(Encoding.UTF8.GetBytes(responseCnt.ToString())) : ""; + string resJson = JsonConvert.SerializeObject(new { response, msg, status, s, success }); + + context.Response.Clear(); + await using var streamlriter = new StreamWriter(originalBodyStream, leaveOpen: true); + await streamlriter.WriteAsync(resJson); + + //var encryptedData = Encoding.UTF8.GetBytes(resJson); + //responseCxt.ContentLength = encryptedData.Length; + //await originalBodyStream.WriteAsync(encryptedData, 0, encryptedData.Length); + } + } + else + { + await _next(context); + } + } + else + { + await _next(context); + } + } + } + + public static class EncryptionResponseExtensions + { + /// + /// 自定义中间件 + /// 通过配置,对指定接口返回数据进行加密返回 + /// 可过滤文件流 + /// 注意:放到管道最外层 + /// + public static IApplicationBuilder UseEncryptionResponse(this IApplicationBuilder builder) + { + return builder.UseMiddleware(); + } + } +} diff --git a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs index 26971a3a..510b87ef 100644 --- a/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/RequRespLogMiddleware.cs @@ -96,11 +96,11 @@ private void ResponseDataLog(HttpResponse response) // 去除 Html var reg = "<[^>]+>"; - var isHtml = Regex.IsMatch(responseBody, reg); if (!string.IsNullOrEmpty(responseBody)) { - Parallel.For(0, 1, e => + var isHtml = Regex.IsMatch(responseBody, reg); + Parallel.For(0, 1, e => { //LogLock.OutSql2Log("RequestResponseLog", new string[] { "Response Data:", ResponseBody }); LogLock.OutLogAOP("RequestResponseLog", response.HttpContext.TraceIdentifier, From d0fe732331368ff71191d3d89d4a28f3d17f99d5 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 11 Nov 2023 17:56:31 +0800 Subject: [PATCH 321/382] Update EncryptionResponseMiddleware.cs --- .../Middlewares/EncryptionResponseMiddleware.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Blog.Core.Extensions/Middlewares/EncryptionResponseMiddleware.cs b/Blog.Core.Extensions/Middlewares/EncryptionResponseMiddleware.cs index cb701b1f..188c6f8d 100644 --- a/Blog.Core.Extensions/Middlewares/EncryptionResponseMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/EncryptionResponseMiddleware.cs @@ -78,12 +78,16 @@ public async Task InvokeAsync(HttpContext context) string resJson = JsonConvert.SerializeObject(new { response, msg, status, s, success }); context.Response.Clear(); - await using var streamlriter = new StreamWriter(originalBodyStream, leaveOpen: true); - await streamlriter.WriteAsync(resJson); + responseCxt.ContentType = "application/json"; - //var encryptedData = Encoding.UTF8.GetBytes(resJson); - //responseCxt.ContentLength = encryptedData.Length; - //await originalBodyStream.WriteAsync(encryptedData, 0, encryptedData.Length); + //await using var streamlriter = new StreamWriter(originalBodyStream, leaveOpen: true); + //await streamlriter.WriteAsync(resJson); + + var encryptedData = Encoding.UTF8.GetBytes(resJson); + responseCxt.ContentLength = encryptedData.Length; + await originalBodyStream.WriteAsync(encryptedData, 0, encryptedData.Length); + + responseCxt.Body = originalBodyStream; } } else From 7ca3e1ec22dcf3812c2114a502f977264cba1535 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 15 Nov 2023 16:15:21 +0800 Subject: [PATCH 322/382] feat: update to 8.0 --- .github/workflows/dotnetcore.yml | 2 +- Blog.Core.Api/Blog.Core.Api.csproj | 8 ++-- Blog.Core.Api/Program.cs | 3 ++ Blog.Core.Common/Blog.Core.Common.csproj | 32 ++++++++-------- Blog.Core.EventBus/Blog.Core.EventBus.csproj | 14 +++---- .../Blog.Core.Extensions.csproj | 38 +++++++++---------- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 12 +++--- Blog.Core.Model/Blog.Core.Model.csproj | 4 +- .../Blog.Core.Repository.csproj | 8 ++-- .../Blog.Core.Serilog.Es.csproj | 12 +++--- Blog.Core.Serilog/Blog.Core.Serilog.csproj | 2 +- Blog.Core.Tasks/Blog.Core.Tasks.csproj | 2 +- Blog.Core.Tests/Blog.Core.Tests.csproj | 8 ++-- Dockerfile | 4 +- Ocelot.Provider.Nacos/Nacos.cs | 11 +++--- .../Ocelot.Provider.Nacos.csproj | 10 ++--- build/common.targets | 2 +- 17 files changed, 88 insertions(+), 84 deletions(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 2dd1ed9c..f11fee1f 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -12,7 +12,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 7.0.x + dotnet-version: 8.0.x - name: Build with dotnet run: dotnet build --configuration Release - name: Build image diff --git a/Blog.Core.Api/Blog.Core.Api.csproj b/Blog.Core.Api/Blog.Core.Api.csproj index e022f1a2..92a680da 100644 --- a/Blog.Core.Api/Blog.Core.Api.csproj +++ b/Blog.Core.Api/Blog.Core.Api.csproj @@ -61,11 +61,11 @@ - + - - - + + + diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 875b4f2e..13d7cea2 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -17,6 +17,7 @@ using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.IdentityModel.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; @@ -130,6 +131,8 @@ // 3、配置中间件 var app = builder.Build(); +IdentityModelEventSource.ShowPII = true; + app.ConfigureApplication(); app.UseApplicationSetup(); app.UseResponseBodyRead(); diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index 457e5722..ce966e59 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -14,29 +14,29 @@ - - + + - - + + - - + + - - - - + + + + - - + + - - + + - - + + diff --git a/Blog.Core.EventBus/Blog.Core.EventBus.csproj b/Blog.Core.EventBus/Blog.Core.EventBus.csproj index 8c50f8e2..17bebf20 100644 --- a/Blog.Core.EventBus/Blog.Core.EventBus.csproj +++ b/Blog.Core.EventBus/Blog.Core.EventBus.csproj @@ -5,15 +5,15 @@ - - + + - + - - - - + + + + diff --git a/Blog.Core.Extensions/Blog.Core.Extensions.csproj b/Blog.Core.Extensions/Blog.Core.Extensions.csproj index a68f7f12..96183e46 100644 --- a/Blog.Core.Extensions/Blog.Core.Extensions.csproj +++ b/Blog.Core.Extensions/Blog.Core.Extensions.csproj @@ -5,32 +5,32 @@ - - - - - - + + + + + + - - - - - - - - - + + + + + + + + + - - - + + + - + diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index ca3a7f72..8af7a7e3 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -13,12 +13,12 @@ - - - - - - + + + + + + diff --git a/Blog.Core.Model/Blog.Core.Model.csproj b/Blog.Core.Model/Blog.Core.Model.csproj index 6762bbcd..841a4665 100644 --- a/Blog.Core.Model/Blog.Core.Model.csproj +++ b/Blog.Core.Model/Blog.Core.Model.csproj @@ -14,9 +14,9 @@ - + - + diff --git a/Blog.Core.Repository/Blog.Core.Repository.csproj b/Blog.Core.Repository/Blog.Core.Repository.csproj index 45931d9f..84b5dfad 100644 --- a/Blog.Core.Repository/Blog.Core.Repository.csproj +++ b/Blog.Core.Repository/Blog.Core.Repository.csproj @@ -4,9 +4,9 @@ - - - + + + @@ -19,7 +19,7 @@ - + diff --git a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj index cd71cf26..a53e98f5 100644 --- a/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj +++ b/Blog.Core.Serilog.Es/Blog.Core.Serilog.Es.csproj @@ -4,12 +4,12 @@ - - - - - - + + + + + + diff --git a/Blog.Core.Serilog/Blog.Core.Serilog.csproj b/Blog.Core.Serilog/Blog.Core.Serilog.csproj index 70fe14fd..9994dce2 100644 --- a/Blog.Core.Serilog/Blog.Core.Serilog.csproj +++ b/Blog.Core.Serilog/Blog.Core.Serilog.csproj @@ -3,7 +3,7 @@ - + diff --git a/Blog.Core.Tasks/Blog.Core.Tasks.csproj b/Blog.Core.Tasks/Blog.Core.Tasks.csproj index 3292ff0d..abc0d331 100644 --- a/Blog.Core.Tasks/Blog.Core.Tasks.csproj +++ b/Blog.Core.Tasks/Blog.Core.Tasks.csproj @@ -3,7 +3,7 @@ - + diff --git a/Blog.Core.Tests/Blog.Core.Tests.csproj b/Blog.Core.Tests/Blog.Core.Tests.csproj index 4db51c4f..22c227e0 100644 --- a/Blog.Core.Tests/Blog.Core.Tests.csproj +++ b/Blog.Core.Tests/Blog.Core.Tests.csproj @@ -18,10 +18,10 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Dockerfile b/Dockerfile index c80e6896..15ba36e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,11 +7,11 @@ #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. -FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src COPY ["Blog.Core.Api/Blog.Core.Api.csproj", "Blog.Core.Api/"] COPY ["Blog.Core.Extensions/Blog.Core.Extensions.csproj", "Blog.Core.Extensions/"] diff --git a/Ocelot.Provider.Nacos/Nacos.cs b/Ocelot.Provider.Nacos/Nacos.cs index d8357920..b1d4cd4f 100644 --- a/Ocelot.Provider.Nacos/Nacos.cs +++ b/Ocelot.Provider.Nacos/Nacos.cs @@ -1,8 +1,4 @@ -using System; -using System.Linq; -using System.Collections.Generic; -using System.Threading.Tasks; -using Ocelot.ServiceDiscovery.Providers; +using Ocelot.ServiceDiscovery.Providers; using Ocelot.Values; using Nacos.V2; using Microsoft.Extensions.Options; @@ -52,5 +48,10 @@ public async Task> Get() return await Task.FromResult(services); } + + public Task> GetAsync() + { + throw new NotImplementedException(); + } } } diff --git a/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj b/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj index 6bdeb841..541ee1e9 100644 --- a/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj +++ b/Ocelot.Provider.Nacos/Ocelot.Provider.Nacos.csproj @@ -11,10 +11,10 @@ - - - - - + + + + + diff --git a/build/common.targets b/build/common.targets index 5f035173..eeb37544 100644 --- a/build/common.targets +++ b/build/common.targets @@ -1,6 +1,6 @@ - net7.0 + net8.0 enable \ No newline at end of file From 6331e2082021440aa3e675ba687f7e20bf50e7b5 Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Wed, 15 Nov 2023 18:09:54 +0800 Subject: [PATCH 323/382] =?UTF-8?q?=F0=9F=90=9B=20=E4=BC=98=E5=8C=96JWT?= =?UTF-8?q?=E7=AD=BE=E5=8F=91=E5=B1=9E=E6=80=A7=20iat=20=E4=B8=BA=E7=AD=BE?= =?UTF-8?q?=E5=8F=91=E6=97=B6=E9=97=B4=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/LoginController.cs | 16 ++++++++-------- Blog.Core.Common/Helper/UtilConvert.cs | 20 ++++++++++++++++---- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index 4838c3c9..e6b4ee4f 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -70,7 +70,7 @@ public async Task> GetJwtStr(string name, string pass) var user = await _sysUserInfoServices.GetUserRoleNameStr(name, MD5Helper.MD5Encrypt32(pass)); if (user != null) { - TokenModelJwt tokenModel = new TokenModelJwt { Uid = 1, Role = user }; + TokenModelJwt tokenModel = new TokenModelJwt {Uid = 1, Role = user}; jwtStr = JwtHelper.IssueJwt(tokenModel); suc = true; @@ -121,7 +121,7 @@ public MessageModel GetJwtStrForNuxt(string name, string pass) var result = new { - data = new { success = suc, token = jwtStr } + data = new {success = suc, token = jwtStr} }; return new MessageModel() @@ -164,7 +164,7 @@ public async Task> GetJwtToken3(string name = " new Claim(ClaimTypes.Name, name), new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().Id.ToString()), new Claim("TenantId", user.FirstOrDefault().TenantId.ToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTimeOffset.Now.ToUnixTimeSeconds().ToString()), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; @@ -236,7 +236,7 @@ public async Task> RefreshToken(string token = { new Claim(ClaimTypes.Name, user.LoginName), new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTimeOffset.Now.ToUnixTimeSeconds().ToString()), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; @@ -305,7 +305,7 @@ public async Task SwgLogin([FromBody] SwaggerLoginRequest loginRequest) { if (loginRequest is null) { - return new { result = false }; + return new {result = false}; } try @@ -315,7 +315,7 @@ public async Task SwgLogin([FromBody] SwaggerLoginRequest loginRequest) { HttpContext.SuccessSwagger(); HttpContext.SuccessSwaggerJwt(result.response.token); - return new { result = true }; + return new {result = true}; } } catch (Exception ex) @@ -323,7 +323,7 @@ public async Task SwgLogin([FromBody] SwaggerLoginRequest loginRequest) _logger.LogWarning(ex, "Swagger登录异常"); } - return new { result = false }; + return new {result = false}; } /// @@ -334,7 +334,7 @@ public async Task SwgLogin([FromBody] SwaggerLoginRequest loginRequest) [Route("wxLogin")] public dynamic WxLogin(string g = "", string token = "") { - return new { g, token }; + return new {g, token}; } } diff --git a/Blog.Core.Common/Helper/UtilConvert.cs b/Blog.Core.Common/Helper/UtilConvert.cs index 530c4fd2..a75005ac 100644 --- a/Blog.Core.Common/Helper/UtilConvert.cs +++ b/Blog.Core.Common/Helper/UtilConvert.cs @@ -107,7 +107,8 @@ public static string ObjToString(this object thisValue) /// public static bool IsNotEmptyOrNull(this object thisValue) { - return ObjToString(thisValue) != "" && ObjToString(thisValue) != "undefined" && ObjToString(thisValue) != "null"; + return ObjToString(thisValue) != "" && ObjToString(thisValue) != "undefined" && + ObjToString(thisValue) != "null"; } /// @@ -122,7 +123,8 @@ public static string ObjToString(this object thisValue, string errorValue) return errorValue; } - public static bool IsNullOrEmpty(this object thisValue) => thisValue == null || thisValue == DBNull.Value || string.IsNullOrWhiteSpace(thisValue.ToString()); + public static bool IsNullOrEmpty(this object thisValue) => thisValue == null || thisValue == DBNull.Value || + string.IsNullOrWhiteSpace(thisValue.ToString()); /// /// @@ -169,6 +171,16 @@ public static DateTime ObjToDate(this object thisValue) { reval = Convert.ToDateTime(thisValue); } + else + { + //时间戳转为时间 + var seconds = ObjToLong(thisValue); + if (seconds > 0) + { + var startTime = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.Local); + reval = startTime.AddSeconds(Convert.ToDouble(thisValue)); + } + } return reval; } @@ -235,7 +247,7 @@ public static object ChangeType(this object value, Type type) { Type innerType = type.GetGenericArguments()[0]; object innerValue = ChangeType(value, innerType); - return Activator.CreateInstance(type, new object[] { innerValue }); + return Activator.CreateInstance(type, new object[] {innerValue}); } if (value is string && type == typeof(Guid)) return new Guid(value as string); @@ -278,7 +290,7 @@ public static object ChangeTypeList(this object value, Type type) .Remove(split.Length - 2, 1); } - addMethod.Invoke(lis, new object[] { ChangeType(str, type) }); + addMethod.Invoke(lis, new object[] {ChangeType(str, type)}); } } From b3e7fbca5436f7390dc4eb3bd26b4794932a2689 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Thu, 16 Nov 2023 10:31:21 +0800 Subject: [PATCH 324/382] feat: :apple: change iat value --- Blog.Core.Api/Controllers/LoginController.cs | 4 ++-- Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index e6b4ee4f..abb495c9 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -164,7 +164,7 @@ public async Task> GetJwtToken3(string name = " new Claim(ClaimTypes.Name, name), new Claim(JwtRegisteredClaimNames.Jti, user.FirstOrDefault().Id.ToString()), new Claim("TenantId", user.FirstOrDefault().TenantId.ToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTimeOffset.Now.ToUnixTimeSeconds().ToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.DateToTimeStamp()), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; @@ -236,7 +236,7 @@ public async Task> RefreshToken(string token = { new Claim(ClaimTypes.Name, user.LoginName), new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjToString()), - new Claim(JwtRegisteredClaimNames.Iat, DateTimeOffset.Now.ToUnixTimeSeconds().ToString()), + new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.DateToTimeStamp()), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; diff --git a/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs b/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs index b9659029..6fa9c9b6 100644 --- a/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs +++ b/Blog.Core.Extensions/Authorizations/Helpers/JwtHelper.cs @@ -36,8 +36,8 @@ public static string IssueJwt(TokenModelJwt tokenModel) new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ToString()), - new Claim(JwtRegisteredClaimNames.Iat, $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"), - new Claim(JwtRegisteredClaimNames.Nbf,$"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}") , + new Claim(JwtRegisteredClaimNames.Iat, $"{DateTime.Now.DateToTimeStamp()}"), + new Claim(JwtRegisteredClaimNames.Nbf,$"{DateTime.Now.DateToTimeStamp()}") , //这个就是过期时间,目前是过期1000秒,可自定义,注意JWT有自己的缓冲过期时间 new Claim (JwtRegisteredClaimNames.Exp,$"{new DateTimeOffset(DateTime.Now.AddSeconds(1000)).ToUnixTimeSeconds()}"), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(1000).ToString()), From c93c3eb44b57b7414a486f86aba336dcb02d7e5a Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sat, 18 Nov 2023 08:53:47 +0800 Subject: [PATCH 325/382] Update Authentication_JWTSetup.cs --- .../ServiceExtensions/Authentication_JWTSetup.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Blog.Core.Extensions/ServiceExtensions/Authentication_JWTSetup.cs b/Blog.Core.Extensions/ServiceExtensions/Authentication_JWTSetup.cs index 98fa0b82..d9048c6e 100644 --- a/Blog.Core.Extensions/ServiceExtensions/Authentication_JWTSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/Authentication_JWTSetup.cs @@ -5,11 +5,8 @@ using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.Extensions.DependencyInjection; using Microsoft.IdentityModel.Tokens; -using System; using System.IdentityModel.Tokens.Jwt; -using System.Linq; using System.Text; -using System.Threading.Tasks; namespace Blog.Core.Extensions { @@ -74,7 +71,7 @@ public static void AddAuthentication_JWTSetup(this IServiceCollection services) }, OnChallenge = context => { - context.Response.Headers.Add("Token-Error", context.ErrorDescription); + context.Response.Headers["Token-Error"] = context.ErrorDescription; return Task.CompletedTask; }, OnAuthenticationFailed = context => @@ -88,12 +85,12 @@ public static void AddAuthentication_JWTSetup(this IServiceCollection services) if (jwtToken.Issuer != Issuer) { - context.Response.Headers.Add("Token-Error-Iss", "issuer is wrong!"); + context.Response.Headers["Token-Error-Iss"] = "issuer is wrong!"; } if (jwtToken.Audiences.FirstOrDefault() != Audience) { - context.Response.Headers.Add("Token-Error-Aud", "Audience is wrong!"); + context.Response.Headers["Token-Error-Aud"] = "Audience is wrong!"; } } @@ -101,7 +98,7 @@ public static void AddAuthentication_JWTSetup(this IServiceCollection services) // 如果过期,则把<是否过期>添加到,返回头信息中 if (context.Exception.GetType() == typeof(SecurityTokenExpiredException)) { - context.Response.Headers.Add("Token-Expired", "true"); + context.Response.Headers["Token-Expired"] = "true"; } return Task.CompletedTask; } From 1b3ab297f36ea6906a6a13518531c1e7532d4f46 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Mon, 20 Nov 2023 16:38:36 +0800 Subject: [PATCH 326/382] =?UTF-8?q?feat=EF=BC=9A=E5=B0=86=E5=AE=98?= =?UTF-8?q?=E6=96=B9=E6=96=87=E6=A1=A3=E8=BF=81=E7=A7=BB=E5=88=B0=E6=96=B0?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .docs/README.md | 2 + .docs/contents/.vuepress/config.js | 46 -- .../.vuepress/public/bcvphomelogo.png | Bin 5644 -> 0 bytes .docs/contents/.vuepress/public/favicon.ico | Bin 1556 -> 0 bytes .docs/contents/Contribution/README.md | 143 ----- .docs/contents/PressureTest/README.md | 80 --- .docs/contents/QQ/README.md | 18 - .docs/contents/README.md | 14 - .docs/contents/Update/README.md | 198 ------ .docs/contents/guide/README.md | 121 ---- .docs/contents/guide/cheat-sheet.md | 580 ------------------ .docs/contents/guide/function-sheet.md | 471 -------------- .docs/contents/guide/getting-started.md | 132 ---- .docs/package.json | 12 - .gitignore | 1 + 15 files changed, 3 insertions(+), 1815 deletions(-) create mode 100644 .docs/README.md delete mode 100644 .docs/contents/.vuepress/config.js delete mode 100644 .docs/contents/.vuepress/public/bcvphomelogo.png delete mode 100644 .docs/contents/.vuepress/public/favicon.ico delete mode 100644 .docs/contents/Contribution/README.md delete mode 100644 .docs/contents/PressureTest/README.md delete mode 100644 .docs/contents/QQ/README.md delete mode 100644 .docs/contents/README.md delete mode 100644 .docs/contents/Update/README.md delete mode 100644 .docs/contents/guide/README.md delete mode 100644 .docs/contents/guide/cheat-sheet.md delete mode 100644 .docs/contents/guide/function-sheet.md delete mode 100644 .docs/contents/guide/getting-started.md delete mode 100644 .docs/package.json diff --git a/.docs/README.md b/.docs/README.md new file mode 100644 index 00000000..c7aaa452 --- /dev/null +++ b/.docs/README.md @@ -0,0 +1,2 @@ +BlogCore官方文档仓库地址已经迁移到: +https://gitee.com/laozhangIsPhi/Blog.Core.E-Book \ No newline at end of file diff --git a/.docs/contents/.vuepress/config.js b/.docs/contents/.vuepress/config.js deleted file mode 100644 index 6cb23754..00000000 --- a/.docs/contents/.vuepress/config.js +++ /dev/null @@ -1,46 +0,0 @@ -module.exports = { - title: 'Blog.Core', - description: 'Hello, 欢迎使用前后端分离之 ASP.NET Core 后端全家桶框架!', - base : '/.doc/', - head: [ - ['link', { - rel: 'icon', - href: `/favicon.ico` - }] - ], - dest: './contents/.vuepress/dist', - ga: '', - evergreen: true, - themeConfig: { - nav: [ - { text: '首页', link: '/' }, - { text: '指南', link: '/guide/' }, - { text: '更新日志', link: '/Update/' }, - { text: '压测', link: '/PressureTest/' }, - { text: '参与贡献', link: '/Contribution/' }, - { text: 'BCVP社区', link: '/QQ/' }, - { text: '接口API', link: 'http://apk.neters.club' }, - { text: '管理后台', link: 'http://vueadmin.neters.club' }, - { text: 'Github', link: 'https://github.com/anjoy8/Blog.Core' }, - ], - sidebarDepth: 2, - sidebar: { - '/guide/': getGuideSidebar('Guide'), - } - } -} - -function getGuideSidebar (groupA) { - return [ - { - title: groupA, - collapsable: false, - children: [ - '', - 'getting-started', - 'function-sheet', - 'cheat-sheet' - ] - } - ] - } \ No newline at end of file diff --git a/.docs/contents/.vuepress/public/bcvphomelogo.png b/.docs/contents/.vuepress/public/bcvphomelogo.png deleted file mode 100644 index e1bf0f79d16b27c9f911c995cdd0f15a849c1d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5644 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 Ip26V%1Gkl@sQ>@~ diff --git a/.docs/contents/.vuepress/public/favicon.ico b/.docs/contents/.vuepress/public/favicon.ico deleted file mode 100644 index 68062fe0577bebf8065cfc59d83f29f40a8bd7f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1556 zcmV+v2J88WP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf1*u6yK~z{r?N(WA zR8<)MX6~J(v$Qi4x`7m0T3QN4s8R%i5L{Ri6D5e4078sDXynC>5EB)BktcjIp@s+= zqL8R5Dq&GE2&GtB#ZsUP6l6MWXz4PY&fTy7IdiA9(qaq5^ucd(=H7GubI$*rf4j$K z5-?6+x1Qqy|C1RBN?e1}CBPqYBP-vJ$;Cd{?f36IBakss zeW(@9HC<2@9fD|s%}&im5}IuqCUo6^U>7jGEP&GGlSpRcV~iYozZ={}rZW=5(cMkZ zGy|eT-~>hjTWaVgC;HfiX~@X&!7vhp?gm51M6UGW2oZ6*M|V1=m`!7ZRLR7Om-CS| zHO-Qa9?1g?kcsum*#FTvI8(?P^cw(4nUxIfmI28-mepvU&9q!cn?lFx*Ji^TbXqe< zhs2>sYm&@2AJ-w;B|#8wnOLVu8lAYHG#$CKL+}S(i1o;5sq4nYs&+U%cA8JjES@aB zGIRY{zIl3LV2mI#x_P}JibJ1XfZHcp!$gFv;dDB%=8f6pHd07XWSwVI^8MSL^^heQ zf+KMNL$$#d6!G+y65eNE^O&6-*19`^Tjq!Ii)g#r%}vi>P_~%54Vyol$NQ%bUc>p5 z5h#iVQ548h8Cbe5kIVMHR}EEDV5f|eq6U_4oPoRtL+EOc149=>uDKkjQFR|;6XCJ!rLEaF6ZZb;a_ zqn3!+D9~-zo-F-AF$Ns}s);LRIQU6Dc5OY0-P@{oSlE@gPGmG*$V>`Yg9?}1lgNfh zOD}C`ks#UN#?rsxY=kyDh40Jj@XLWFe7U0UVn&m`4R!V_x;m|#ctIY=D%RN59{7~mT z#U+ZBL{u|K{VL`x&c)KT`Mlr!M+Z8?eMn1BLE*eiKK5%xBhDOdgv(9q=%lKwA*Ub< ztGCSM@^1RlH`jLX_uP^YLRnt^J`y+?_OkQUW0WP7-V|g>FhW_AgH#_1k(rZfjRGCv zD30yBh}M=)xG1xdU=|Hb@MGgU3$2l{VSr41RRrIa*TNfc4b&SZUKq7H`$(Pf9O zm^_A9Ad7_dwdhxgW@=I1N$raFhXY&h^*LQj^;GZ#(7 zs*Q7af5=yV47iO9LqknF4wl#O6lNbdRu2Z>Z`cy%K6b6}r@Qgw`dP>=${__?-%Zg3^VHeH0(HX6Yw|3()tChQ+DtG0000 - - - -## 2、测试准备 -因为 `JMeter` 是使用 `JAVA` 写的,所以使用 `JMeter` 之前,先安装 `JAVA` 环境。 -安装好后,在 `bin` 文件夹下,点击 `jmeter.bat` 启动程序。 -启动之后会有两个窗口,一个`cmd`窗口,一个`JMeter`的 `GUI`。前面不要忽略`CMD`窗口的提示信息,不要关闭它。 -注意:使用`API`模式,不要使用`GUI`模式。 - - -## 3、测试配置 -本地发布后的 `windows` 环境,直接用 `kestrel` 启动。 -线程数:100 -循环数:1000 -HTTP默认值:协议:`http`;服务器或IP:`localhost`;端口号:`9291`; -HTTP请求:方法:GET;路径:`/api/blog/ApacheTestUpdate` -HTTP信息请求管理器:无 -响应断言:无 - - - -## 4、项目初始化 -目前采用 `Blog.Core` 默认的配置, -只开启了内存 `AOP` , -其他的都是默认的,然后也把任务调度也关闭了, -最后注意要把 `IP限流`给关闭,不然压测没效果,因为限流了: - - - -## 5、压测过程 - -##### 第一阶段 - - - - -##### 第二阶段 - - - - -##### 第三阶段 - - - - -##### 第四阶段(压测后,检测内存是否降低,20m后) - - - -##### 第五阶段(停止压测1h后) - - - -## 6、测试结果 -内存方面,`100*1000` 的 **压测过程中** (写操作),项目保证所占内存在 `350m~500m` 之间 -然后停止一个小时后,内存将为`150m~200m`: - - - - - - -## 7、压测配置文件下载 - [配置文件](https://img.neters.club/doc/blogcore_blog_ApacheTestUpdate.jmx) - 下载后,导入到工具里,可以直接测试,察看结果树。 - -## 8、Docker 镜像 - 已经提交到 `docker hub` 自行拉取操作即可: - ``` - docker pull laozhangisphi/apkimg:latest - ``` diff --git a/.docs/contents/QQ/README.md b/.docs/contents/QQ/README.md deleted file mode 100644 index 31b7f909..00000000 --- a/.docs/contents/QQ/README.md +++ /dev/null @@ -1,18 +0,0 @@ -## 开源社区 - -bcvp - -[https://github.com/BaseCoreVueProject/Home](https://github.com/BaseCoreVueProject/Home) - -Base netCore (Vue) Project Team, -基于Net/Core 和Vue(react/ng),快速搭建 MVC & SPA 及微服务应用 -如果你有关于dotNet/core 的,不错的,可以正常运行,且一年内维护的,均可以加入。 -唯一宗旨:我们来自社区,服务社区,反哺社区。 - - - -## 微信公众号 - -公众号 - - diff --git a/.docs/contents/README.md b/.docs/contents/README.md deleted file mode 100644 index 597f16d9..00000000 --- a/.docs/contents/README.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -home: true -heroImage: /bcvphomelogo.png -actionText: 快速上手 → -actionLink: /guide/ -features: -- title: 详尽的文档 - details: 通过详细的文章和视频讲解,将知识点各个击破,入门ASP.Net Core不再难 -- title: 强大的社区 - details: 通过 QQ 群,和数千位同业大佬一起切磋交流。 -- title: 丰富的内容 - details: 框架涵盖ASP.Net Core开发中常见的基本知识点,不仅适合初学者入门,同时也适用于企业级别的开发。 -footer: MIT Licensed | Copyright © 2018-2020-老张的哲学 Powered by VUEPRESS on CentOS 7.6 ---- \ No newline at end of file diff --git a/.docs/contents/Update/README.md b/.docs/contents/Update/README.md deleted file mode 100644 index 870f98ec..00000000 --- a/.docs/contents/Update/README.md +++ /dev/null @@ -1,198 +0,0 @@ - -## 更新日志 - - -### 2021-08-21 - -重要功能增加:项目增加 `Apollo` 配置中心; - -### 2021-08-03 - -重要功能增加:项目增加 `ES` 搜索,增加 `Serilog` 使用 `tcp` 的方式自定义格式化,写入 `elk` 的实现; - -### 2021-06-28 - -功能增加:项目增加 `nacos` 配置,支持将项目注册到 `nacos` 服务中心,搭建微服务之子服务; - -### 2021-06-04 - -小功能更新:执行的时候,将 `Sql` 日志输出到控制台,方便查看,支持配置文件关闭; - -### 2021-05-01 - -组件更新:多项日志中间件,由自写组件,转为使用`serilog`组件记录日志; - -### 2021-03-03 - -项目目录调整:新增测试文件夹和模板文件夹; - -### 2021-02-09 - -重大项目更新:新增建行聚合支付; - -### 2021-01-11 - -更新:优化任务调度功能,新增暂停和停止; - -### 2020-12-02 - -更新:新增调用`MongoDB`功能,功能可用待完善中; - - -### 2020-11-19 -> 重大内容更新:更新项目模板 `Update Blog.Core.Webapi.Template.2.5.2.nupkg` -> 主要内容:1、泛型主键;2、通过测试中间件;3、`RabbitMQ`消息队列 - - -### 2020-11-18 - -项目更新:新增`RabbitMQ`消息队列和`EventBus`事件总线,功能可用待完善。 - - -### 2020-11-11 - -项目重大更新:更新至`.NET 5.0`。 - - -### 2020-11-05 - -项目更新:增加`测试用户`中间件,通过一键操作可以跳过权限限制,方便调试,文章[使用测试用户中间件](http://apk.neters.club/api/Blog/GoUrl?id=156)。 - - - -### 2020-10-11 - -项目更新:设计泛型主键功能,可以在项目初始化的时候设计主键类型。 - - - -### 2020-09-18 - -项目更新:更新项目模板 `Update Blog.Core.Webapi.Template.2.2.3.nupkg` 。 -> 1、增加 `Redis` 消息队列功能; - - - -### 2020-09-04 - -项目更新:增加 `Redis` 消息队列功能; - - -### 2020-08-06 - -项目更新:更新项目模板 `Update Blog.Core.Webapi.Template.2.2.0.nupkg` 。 -> 1、根据解决方案名,来自动导入model; -> 2、单独封装服务扩展层 `Blog.Core.Extensions` ; -> 3、代码生成器,支持控制器文件的生成; -> 4、弱化仓储层,用泛型仓储基类注入服务; - - - - -### 2020-08-01 - -> 重大结构更新:弱化仓储层,通过泛型仓储基类,来实现仓储服务注入,并去掉`Blog.Core.IRepository` 接口层; - -### 2020-07-03 - -> 更新:`DbFirstController` 生成四层文件,目前新增支持 `控制器Controller` 文件的输出; - - -### 2020-06-22 - -> 项目更新:将服务扩展和自定义中间件,单独封装一层 `Blog.Core.Extensions` ,更解耦。 - - - -### 2020-06-08 - -> 简单项目更新:生成数据库表结构的时候,利用反射机制,自动生成固定命名空间 `Blog.Core.Model.Models` 下的全部实体. -> 同时判断表是否存在,如果存在下次不再重复生成。 - - -### 2020-06-06 - -项目更新:更新项目模板 `Update Blog.Core.Webapi.Template.2.1.0.nupkg` [1a726f8](https://github.com/anjoy8/Blog.Core/commit/1a726f890e527c978982071462e82db4478632f0),更新项目即可 。 -> 1、配置内容展示到控制台; -> 2、简化封装 `Startup.cs` 类文件; -> 3、`DbFirst` 模式支持多库模式; -> 4、`Log4net` 讲异常和 `Info` 分开; -> 5、修复 `BlogLogAop` 偶尔卡顿问题; -> 6、将生成种子数据和任务调度功能,封装到中间件; -> 7、获取当前项目在服务器中的运行信息; -> 8、删除所有的不需要的 `using` 指令; - - - - -### 2020-05-29 -项目启动开启 `QuzrtzNet` 调度任务,并且在 `Admin` 后台管理中配置操作界面; -> 内容更新:封装生成种子数据的入口方法; - - - -### 2020-05-12 -修复:支持多库模式下,生成项目模板代码 `DbFirstController` [102c6d6](https://github.com/anjoy8/Blog.Core/commit/102c6d6bfcafd06bf5241844759dea5e7a6815da) -> 注意:`T4` 模板不能此功能,一次只能一个数据库,且只能 `SqlServer` - - -### 2020-05-07 -> 重大内容更新:更新项目模板 `Update Blog.Core.Webapi.Template.2.1.0.nupkg` [7f64fde](https://github.com/anjoy8/Blog.Core/commit/7f64fde5507f7a8572372dcadb6af5110bd37d68) - - -### 2020-05-06 -> 重大内容更新:优化Log4Net使用方案,完美配合 `NetCore` 官方的 `ILogger`, [ecaffb6](https://github.com/anjoy8/Blog.Core/commit/ecaffb66bdf10a90c087d01e6e817e54f23a97d4) - - -### 2020-05-01 - -> 重要内容更新:配合Admin全部完成按钮级别权限,更新初始化种子数据 - -### 2020-04-27 - -增加功能:配合前端Admin,增加页面 `KeepAlive` 功能; -增加功能:增加 `Sql` 语句查询Demo,支持返回 `DataTable`; - - -### 2020-04-25 - -增加功能:`Http api` 接口调用,满足微服务需求 -> 重要内容更新:优化 `Appsettings.app()` 方法,通过官方 `IConfiguration` 接口来获取DBS连接字符串; -> 优化 `BlogLogAOP.cs` - - -### 2020-04-15 - -> 重大内容更新:更新项目模板 `Update Blog.Core.Webapi.Template.1.11.30.nupkg` - - -### 2020-04-14 -> 重大内容更新:主分支,可以通过配置,一键切换JWT和Ids4认证授权模式 - - -### 2020-03-30 -> 重大内容更新:统一所有接口返回格式 - - -### 2020-03-25 -增加功能:支持读写分离(目前是三种模式:单库、多库、读写分离) -> 重大BUG更新:系统登录接口,未对用户软删除进行判断,现已修复 -> API: /api/login/GetJwtToken3 -> Code: await _sysUserInfoServices.Query(d => d.uLoginName == name && d.uLoginPWD == pass && d.tdIsDelete == false); - - - -### 2020-03-18 -增加功能:创建 Quartz.net 任务调度服务 - - -### 2020-01-09 -增加功能:项目迁移到IdentityServer4,统一授权认证中心 - - -### 2020-01-05 -增加功能:设计一个简单的中间件,可以查看所有已经注入的服务 - - -### 2020-01-04 -增加功能:Ip限流,防止过多刷数据 diff --git a/.docs/contents/guide/README.md b/.docs/contents/guide/README.md deleted file mode 100644 index 30950e0c..00000000 --- a/.docs/contents/guide/README.md +++ /dev/null @@ -1,121 +0,0 @@ -# W 文档指南 -## 亮点与优势 - -Blog.Core 是一个开箱即用的企业级权限管理应用框架。 -采用最新的前后端完全分离技术【 ASP.NET Core Api 5.0 + Vue 2.x 】。 -并结合 `IdentityServer4` ,可快速解决多客户端和多资源服务的统一认证与鉴权的问题。 - -## 其他资料 - -博客园,早期架构搭建:[博客园](https://www.cnblogs.com/laozhang-is-phi/p/9495618.html) -公众号,后期调整:[文章](https://mvp.neters.club/MVP_aspnetcore_2020/2020) -视频:[B站](https://www.bilibili.com/video/BV1vC4y1p7Za) - - -## 配套站点 - -本资源服务器,配合多个项目,构建前后端权限一体化平台,前端用 `VUE` 框架。 -前端-客户端:[预览](https://vueadmin.neters.club/)、[源码](https://github.com/anjoy8/Blog.Admin) -前端-管理后台:[预览](http://vueblog.neters.club/)、[源码](https://github.com/anjoy8/Blog.Vue) -认证平台:[预览](https://ids.neters.club/)、[源码](https://github.com/anjoy8/Blog.IdentityServer) - - -### 为什么选择 ASPNET.Core -1、【开源】`ASPNET.NET Core` 是由 `Microsoft` 和 `.NET` 社区在 `GitHub` 上开源并维护的一个跨平台(支持 Windows、macOS 和 Linux)的新一代高性能框架, -拥有十分广泛的社区与支持者,可用于构建web应用、物联网IOT应用和移动端应用。 -2、【高效】Asp.net core(.net core)来源于.net,很容易迁移,而且也很容易上手, -但是又是不同的一个框架,除了上述对.net开发者十分友好以外,相对于之前的.net项目,速度上有巨大的改进, -相比与原来的`Web(.net framework 4.6)`程序性能提升了`2300%`。跟`python`、`java`等相同环境比较,性能都要优越, -参考[www.techempower.com](https://www.techempower.com/benchmarks/)。 -3、【跨平台】可以在`Windows`、`Mac`和`Linux`构建和运行跨平台的`Asp.Net Core`应用。 -4、【云原生】在云原生领域拥有天然的优势,搭配Azure云服务,配合K8s,更好的实现分布式应用,以及微服务应用。 -5、【微服务】`ASP.NET Core`尤其适用于微服务架构,也就是说ASP.NET Core不仅适合于中小型项目而且还特别适合于大型,超大型项目。 -6、【大公司】目前国内采用`ASP.NET Core`的大公司比如腾讯、网易,国际的有Bing,GoDaddy,Stackoverflow,Adobe,Microsoft -7、【总结来说】,`java`支持的,`ASPNET.Core`都支持,而且更轻量级、更高效跨,并且对.net开发者十分友好,微服务案例成熟。 - - - -### 框架功能点 -1、丰富完整的接口文档,在查看的基础上,可以模拟前端调用,更方便。 -2、采用多层开发,隔离性更好,封装更完善。 -3、基于项目模板,可以一键创建自己的项目。 -4、搭配代码生成器,实现快速开发,节省成本。 -5、项目集成多库模式以及读写分离模式,可以同时处理多个数据库的不同模块,更快更安全。 -6、集成统一认证平台 `IdentityServer4` ,实现多个项目的统一认证管理,解决了之前一个项目, -一套用户的弊端,更适用微服务的开发。 -7、丰富的审计日志处理,方便线上项目快速定位异常点。 -8、支持自由切换多种数据库,Sqlite/SqlServer/MySql/PostgreSQL/Oracle; -9、支持 `Docker` 容器化开发,可以搭配 k8s 更好的实现微服务。 - - -### 应用领域 -1、【对接第三方api】项目通过`webapi`,可以快速对接第三方`api`服务,实现业务逻辑。 -2、【前后端分离】 采用的是`API`+前端的完全分离的开发模式,满足平时开发的所有需求, -你可以对接任何的自定义前端项目:无论是微信小程序,还是授权APP,无论是PC网页, -还是手机H5。 -3、【多项目】同时框架还集成了一套鉴权平台,采用IdentityServer4,可以快速的实现多个客户端的认证与授权服务, -从而大大的减少了平时的工作量,可以快速的进行产品迭代。 -4、【微服务】当然,因为采用的是API模式,所以同样适用于微服务项目,实现高并发的产品需求。 - - - -### 市场前景 -1、前后端分离模式已经是目前的主流开发模式,框架已经是一套可行的方案,开箱即用。 -2、拥有几十篇技术文档和3000人的技术社区,方便快捷的解决问题。 -3、目前已经有超过20多家公司在生产环境中使用,当然实际中更多,具体查看 [点击查看使用的情况](https://github.com/anjoy8/Blog.Core/issues/75)。 -4、同时可以搭配自己的业务,实现微服务的开发,在大数据高并发中,占有更好的优势。 -5、本项目直接作者由微软MVP“老张的哲学”出品,并长久维护,不会断更,有保障。 - - - -## 功能与进度 - -框架模块: -- [√] 采用`仓储+服务+接口`的形式封装框架; -- [√] 异步 async/await 开发; -- [√] 接入国产数据库ORM组件 —— SqlSugar,封装数据库操作; -- [√] 支持自由切换多种数据库,MySql/SqlServer/Sqlite/Oracle/Postgresql/达梦/人大金仓; -- [√] 实现项目启动,自动生成种子数据 ✨; -- [√] 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等; -- [√] 支持项目事务处理(若要分布式,用cap即可)✨; -- [√] 设计4种 AOP 切面编程,功能涵盖:日志、缓存、审计、事务 ✨; -- [√] 支持 T4 代码模板,自动生成每层代码; -- [√] 或使用 DbFirst 一键创建自己项目的四层文件(支持多库); -- [√] 封装`Blog.Core.Webapi.Template`项目模板,一键重建自己的项目 ✨; -- [√] 搭配多个前端案例供参考和借鉴:Blog.Vue、Blog.Admin、Nuxt.tbug、Blog.Mvp.Blazor ✨; -- [√] 统一集成 IdentityServer4 认证 ✨; - -组件模块: -- [√] 提供 Redis 做缓存处理; -- [√] 使用 Swagger 做api文档; -- [√] 使用 MiniProfiler 做接口性能分析 ✨; -- [√] 使用 Automapper 处理对象映射; -- [√] 使用 AutoFac 做依赖注入容器,并提供批量服务注入 ✨; -- [√] 支持 CORS 跨域; -- [√] 封装 JWT 自定义策略授权; -- [√] 使用 Log4Net 日志框架,集成原生 ILogger 接口做日志记录; -- [√] 使用 SignalR 双工通讯 ✨; -- [√] 添加 IpRateLimiting 做 API 限流处理; -- [√] 使用 Quartz.net 做任务调度(目前单机多任务,集群调度暂不支持); -- [√] 支持 数据库`读写分离`和多库操作 ✨; -- [√] 新增 Redis 消息队列 ✨; -- [√] 新增 RabbitMQ 消息队列 ✨; -- [√] 新增 EventBus 事件总线 ✨; -- [√] 新增 实现聚合支付; -- [ ] 计划 - 数据部门权限; -- [ ] 计划 - ES 搜索; - -微服务模块: -- [√] 可配合 Docker 实现容器化; -- [√] 可配合 Jenkins 实现CI / CD; -- [√] 可配合 Consul 实现服务发现; -- [√] 可配合 Ocelot 实现网关处理; -- [√] 可配合 Nginx 实现负载均衡; -- [√] 可配合 Ids4 实现认证中心; - - -  - - - - diff --git a/.docs/contents/guide/cheat-sheet.md b/.docs/contents/guide/cheat-sheet.md deleted file mode 100644 index 36f95e36..00000000 --- a/.docs/contents/guide/cheat-sheet.md +++ /dev/null @@ -1,580 +0,0 @@ -# Z 主要知识点 - - - -## AOP - -本项目多处采用面向切面编程思想——AOP,除了广义上的过滤器和中间件以外,主要通过动态代理的形式来实现AOP编程思想,主要的案例共有四个,分别是: -1、服务日志AOP; -2、服务InMemory缓存AOP; -3、服务Redis缓存AOP; -4、服务事务AOP; - - -具体的代码可以在 `Blog.Core\Blog.Core\AOP` 文件夹下查看。 - -与此同时,多个AOP也设置了阀门来控制是否开启,具体的可以查看 `appsettings.json` 中的: - -``` - "AppSettings": { - "RedisCachingAOP": { - "Enabled": false, - "ConnectionString": "127.0.0.1:6319" - }, - "MemoryCachingAOP": { - "Enabled": true - }, - "LogAOP": { - "Enabled": false - }, - "TranAOP": { - "Enabled": false - }, - "SqlAOP": { - "Enabled": false - } - }, - -``` - -## Appsettings - -整个系统通过一个封装的操作类 `Appsettings.cs` 来控制配置文件 `appsettings.json` 文件, -操作类地址在:`\Blog.Core.Common\Helper` 文件夹下。 -具体的使用方法是: - -``` -Appsettings.app(new string[] { "AppSettings", "RedisCachingAOP", "Enabled" }) - -// 里边的参数,按照 appsettings.json 中设置的层级顺序来写,可以获取到指定的任意内容。 - -``` - - - -## AspNetCoreRateLimit - -系统使用 `AspNetCoreRateLimit` 组件来实现ip限流: -1、添加 `nuget` 包: -``` - -``` - -2、注入服务 `IpPolicyRateLimitSetup.cs` -``` -services.AddIpPolicyRateLimitSetup(Configuration); -``` - -3、配置中间件 -``` - // Ip限流,尽量放管道外层 - app.UseIpRateLimiting(); -``` - -4、配置数据 - -具体的内容,自行百度即可 -``` - "IpRateLimiting": { - "EnableEndpointRateLimiting": true, - "StackBlockedRequests": false, - "RealIpHeader": "X-Real-IP", - "ClientIdHeader": "X-ClientId", - "HttpStatusCode": 429,//返回状态码 - "GeneralRules": [//规则,结尾一定要带* - { - "Endpoint": "*", - "Period": "1m", - "Limit": 120 - }, - { - "Endpoint": "*:/api/blog*", - "Period": "1m", - "Limit": 30 - } - ] - - } -``` - - - -## Async-Await - -整个系统采用 async/await 异步编程,符合主流的开发模式, -特别是对多线程开发很友好。 - - - -## Authorization-Ids4 - -本系统 v2.0 版本(目前的系统已经集成 `ids4` 和 `jwt`,并且可以自由切换),已经支持了统一授权认证,和 `blog` 项目、`Admin` 项目、`DDD` 项目等一起,使用一个统一的认证中心。 - -具体的代码参考:`.\Blog.Core\Extensions` 文件夹下的 `Authorization_Ids4Setup.cs` ,注意需要引用指定的 `nuget` 包,核心代码如下: - -``` - //【认证】 - services.AddAuthentication(o => - { - o.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; - o.DefaultChallengeScheme = nameof(ApiResponseHandler); - o.DefaultForbidScheme = nameof(ApiResponseHandler); - }) - // 2.添加Identityserver4认证 - .AddIdentityServerAuthentication(options => - { - options.Authority = Appsettings.app(new string[] { "Startup", "IdentityServer4", "AuthorizationUrl" }); - options.RequireHttpsMetadata = false; - options.ApiName = Appsettings.app(new string[] { "Startup", "IdentityServer4", "ApiName" }); - options.SupportedTokens = IdentityServer4.AccessTokenValidation.SupportedTokens.Jwt; - options.ApiSecret = "api_secret"; - - }) - - -``` - -### 如何在Swagger中配置Ids4? -很简单,直接在 `SwaggerSetup.cs` 中直接接入 `oauth、Implicit` 即可: - -``` - //接入identityserver4 - c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme - { - Type = SecuritySchemeType.OAuth2, - Flows = new OpenApiOAuthFlows - { - Implicit = new OpenApiOAuthFlow - { - AuthorizationUrl = new Uri($"{Appsettings.app(new string[] { "Startup", "IdentityServer4", "AuthorizationUrl" })}/connect/authorize"), - Scopes = new Dictionary { - { - "blog.core.api","ApiResource id" - } - } - } - } - }); - -``` - -然后在 `IdentityServer4` 项目中,做指定的修改,配置 `9291` 的回调地址: - -``` - new Client { - ClientId = "blogadminjs", - ClientName = "Blog.Admin JavaScript Client", - AllowedGrantTypes = GrantTypes.Implicit, - AllowAccessTokensViaBrowser = true, - - RedirectUris = - { - "http://vueadmin.neters.club/callback", - // 这里要配置回调地址 - "http://localhost:9291/oauth2-redirect.html" - }, - PostLogoutRedirectUris = { "http://vueadmin.neters.club" }, - AllowedCorsOrigins = { "http://vueadmin.neters.club" }, - - AllowedScopes = { - IdentityServerConstants.StandardScopes.OpenId, - IdentityServerConstants.StandardScopes.Profile, - "roles", - "blog.core.api" - } - }, - -``` - -然后再 `Swagger` 中,配置登录授权: - -swagger - - -## Authorization-JWT - -如果你不想使用 `IdentityServer4` 的话,也可以使用 `JWT` 认证,同样是是`Blog.Core\Blog.Core\Extensions` 文件夹下的 `AuthorizationSetup.cs` 中有关认证的部分: - -``` - 1.添加JwtBearer认证服务 -.AddJwtBearer(o => -{ - o.TokenValidationParameters = tokenValidationParameters; - o.Events = new JwtBearerEvents - { - OnAuthenticationFailed = context => - { - // 如果过期,则把<是否过期>添加到,返回头信息中 - if (context.Exception.GetType() == typeof(SecurityTokenExpiredException)) - { - context.Response.Headers.Add("Token-Expired", "true"); - } - return Task.CompletedTask; - } - }; -}) - -``` - - -## AutoMapper - -使用 `AutoMapper` 组件来实现 `Dto` 模型的传输转换,具体的用法,可以查看: -`Blog.Core\Blog.Core\Extensions` 文件夹下的 `AutoMapperSetup.cs` 扩展类, -通过引用 `AutoMapper` 和 `AutoMapper.Extensions.Microsoft.DependencyInjection` 两个 `nuget` 包,并设置指定的 `profile` 文件,来实现模型转换控制。 - -``` -// 比如如何定义: - public class CustomProfile : Profile - { - /// - /// 配置构造函数,用来创建关系映射 - /// - public CustomProfile() - { - CreateMap(); - CreateMap(); - } - } - - -// 比如如何使用 -models = _mapper.Map(blogArticle); - -``` - -具体的查看项目中代码即可。 - - - - -## CORS - -在线项目使用的是 `nginx` 跨域代理,但是同时也是支持 `CORS` 代理: -1、注入服务 `services.AddCorsSetup();` 具体代码 `Blog.Core\Blog.Core\Extensions` 文件夹下的 `CorsSetup.cs` 扩展类; -2、配置中间件 `app.UseCors("LimitRequests");` ,要注意中间件顺序; -3、配置自己项目的前端端口,通过在 `appsettings.json` 文件中配置自己的前端项目 `ip:端口` ,来实现跨域: - -``` - "Startup": { - "Cors": { - "IPs": "http://127.0.0.1:2364,http://localhost:2364,http://localhost:8080,http://localhost:8021,http://localhost:1818" - } - }, - -``` - - -## DI-AutoFac - -项目使用了依赖注入,除了原生的依赖注入以外,更多的使用的是第三方组件 `Autofac` : -1、引用依赖包: -``` - - - -``` -主要是第一个 `nuget` 包,下边的是为了实现动态代理 `AOP` 操作; - -2、项目之间采用引用解耦的方式,通过反射来注入服务层和仓储层的程序集 `dll` 来实现批量注入,更方便,以后每次新增和修改 `Service` 层和 `Repository` 层,只需要 `F6` 编译一下即可,具体代码查看 `Startup.cs`: - -``` - - - // 注意在CreateDefaultBuilder中,添加Autofac服务工厂 - public void ConfigureContainer(ContainerBuilder builder) - { - var basePath = Microsoft.DotNet.PlatformAbstractions.ApplicationEnvironment.ApplicationBasePath; - //builder.RegisterType().As(); - - - #region 带有接口层的服务注入 - - - var servicesDllFile = Path.Combine(basePath, "Blog.Core.Services.dll"); - var repositoryDllFile = Path.Combine(basePath, "Blog.Core.Repository.dll"); - - if (!(File.Exists(servicesDllFile) && File.Exists(repositoryDllFile))) - { - throw new Exception("Repository.dll和service.dll 丢失,因为项目解耦了,所以需要先F6编译,再F5运行,请检查 bin 文件夹,并拷贝。"); - } - - - - // AOP 开关,如果想要打开指定的功能,只需要在 appsettigns.json 对应对应 true 就行。 - var cacheType = new List(); - if (Appsettings.app(new string[] { "AppSettings", "RedisCachingAOP", "Enabled" }).ObjToBool()) - { - builder.RegisterType(); - cacheType.Add(typeof(BlogRedisCacheAOP)); - } - if (Appsettings.app(new string[] { "AppSettings", "MemoryCachingAOP", "Enabled" }).ObjToBool()) - { - builder.RegisterType(); - cacheType.Add(typeof(BlogCacheAOP)); - } - if (Appsettings.app(new string[] { "AppSettings", "TranAOP", "Enabled" }).ObjToBool()) - { - builder.RegisterType(); - cacheType.Add(typeof(BlogTranAOP)); - } - if (Appsettings.app(new string[] { "AppSettings", "LogAOP", "Enabled" }).ObjToBool()) - { - builder.RegisterType(); - cacheType.Add(typeof(BlogLogAOP)); - } - - // 获取 Service.dll 程序集服务,并注册 - var assemblysServices = Assembly.LoadFrom(servicesDllFile); - builder.RegisterAssemblyTypes(assemblysServices) - .AsImplementedInterfaces() - .InstancePerDependency() - .EnableInterfaceInterceptors()//引用Autofac.Extras.DynamicProxy; - .InterceptedBy(cacheType.ToArray());//允许将拦截器服务的列表分配给注册。 - - // 获取 Repository.dll 程序集服务,并注册 - var assemblysRepository = Assembly.LoadFrom(repositoryDllFile); - builder.RegisterAssemblyTypes(assemblysRepository) - .AsImplementedInterfaces() - .InstancePerDependency(); - - #endregion - - #region 没有接口层的服务层注入 - - //因为没有接口层,所以不能实现解耦,只能用 Load 方法。 - //注意如果使用没有接口的服务,并想对其使用 AOP 拦截,就必须设置为虚方法 - //var assemblysServicesNoInterfaces = Assembly.Load("Blog.Core.Services"); - //builder.RegisterAssemblyTypes(assemblysServicesNoInterfaces); - - #endregion - - #region 没有接口的单独类 class 注入 - - //只能注入该类中的虚方法 - builder.RegisterAssemblyTypes(Assembly.GetAssembly(typeof(Love))) - .EnableClassInterceptors() - .InterceptedBy(cacheType.ToArray()); - - #endregion - - - // 这里和注入没关系,只是获取注册列表,请忽略 - tsDIAutofac.AddRange(assemblysServices.GetTypes().ToList()); - tsDIAutofac.AddRange(assemblysRepository.GetTypes().ToList()); - } - -``` - -3、然后 `Program.cs` 中也要加一句话:` .UseServiceProviderFactory(new AutofacServiceProviderFactory()) //<--NOTE THIS ` - - - -## DI-NetCore - -除了主要的 `Autofac` 依赖注入以外,也减少的使用了原生的依赖注入方式,很简单,比如这样的: -``` - - services.AddSingleton(); - // 注入权限处理器 - services.AddScoped(); - services.AddSingleton(permissionRequirement); -``` - - -## Filter - -项目中一共有四个过滤器 -``` -1、GlobalAuthorizeFilter.cs —— 全局授权配置,添加后,就可以不用在每一个控制器上添加 [Authorize] 特性,但是3.1版本好像有些问题,【暂时放弃使用】; -2、GlobalExceptionFilter.cs —— 全局异常处理,实现 actionContext 级别的异常日志收集; -3、GlobalRoutePrefixFilter.cs —— 全局路由前缀公约,统计在路由上加上前缀; -4、UseServiceDIAttribute.cs —— 测试注入,【暂时无用】; -``` -文件地址在 `.\Blog.Core\Filter` 文件夹下,其中核心的是 `2` 个,重点使用的是 `1` 个 —— 全局异常错误日志 `GlobalExceptionsFilter`: -通过注册在 `MVC` 服务 `services.AddControllers()` 中,实现全局异常过滤: -``` - services.AddControllers(o => - { - // 全局异常过滤 - o.Filters.Add(typeof(GlobalExceptionsFilter)); - // 全局路由权限公约 - //o.Conventions.Insert(0, new GlobalRouteAuthorizeConvention()); - // 全局路由前缀,统一修改路由 - o.Conventions.Insert(0, new GlobalRoutePrefixFilter(new RouteAttribute(RoutePrefix.Name))); - }) -``` - - - -## Framework - -项目采用 `服务+仓储+接口` 的多层结构,使用依赖注入,并且通过解耦项目,较完整的实现了 `DIP` 原则: -高层模块不应该依赖于底层模块,二者都应该依赖于抽象。 -抽象不应该依赖于细节,细节应该依赖于抽象。 - -同时项目也封装了: -`CodeFirst` 初始化数据库以及数据; -`DbFirst` 根据数据库(支持多库),生成多层代码,算是简单代码生成器; -其他功能,[核心功能与进度](http://apk.neters.club/.doc/guide/#%E5%8A%9F%E8%83%BD%E4%B8%8E%E8%BF%9B%E5%BA%A6) - - - - -## Log - -通过集成 `Log4Net` 组件,完美配合 `NetCore` 官方的 `ILogger` 接口,实现对日志的管控,引用 `nuget` 包 `Microsoft.Extensions.Logging.Log4Net.AspNetCore`: -Program.cs -``` - webBuilder - .UseStartup() - .ConfigureLogging((hostingContext, builder) => - { - //该方法需要引入Microsoft.Extensions.Logging名称空间 - builder.AddFilter("System", LogLevel.Error); //过滤掉系统默认的一些日志 - builder.AddFilter("Microsoft", LogLevel.Error);//过滤掉系统默认的一些日志 - - //添加Log4Net - //var path = Directory.GetCurrentDirectory() + "\\log4net.config"; - //不带参数:表示log4net.config的配置文件就在应用程序根目录下,也可以指定配置文件的路径 - //需要添加nuget包:Microsoft.Extensions.Logging.Log4Net.AspNetCore - builder.AddLog4Net(); - }); - -``` - -然后直接在需要的地方注入使用,比如在控制器中 -` public UserController(ILogger logger)` - -然后就可以使用了。 - -> 注意:日志 其实是分为两部分的: -> netcore输出(控制台、输出窗口等) 和 `ILogger` 持久化 -> 两者对应配置也不一样,就比如上边的过滤,是针对日志持久化的,如果想要对控制台进行控制,需要配置 `appsettings.json` 中的 `Logging` 节点 - - -## MemoryCache - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 - -## Middleware - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 -## MiniProfiler - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 - -## publish -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 - - -## Redis - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 -## Repository -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 -## SeedData - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 -## SignalR - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 -## SqlSugar - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 -## SqlSugar-Codefirst&DataSeed - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 -## SqlSugar-SqlAOP - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 -## Swagger - -精力有限,还是更新中... -如果你愿意帮忙,可以直接在GitHub中,提交pull request, -我会在后边的贡献者页面里,列出你的名字和项目地址做推广 -## T4 - -项目集成 `T4` 模板 `.\Blog.Core.FrameWork` 层,目的是可以一键生成项目模板代码。 -1、需要在 `DbHelper.ttinclude` 中配置连接数据库连接字符串; -2、针对每一层的代码,就去指定的 `.tt` 模板,直接 `CTRL+S` 保存即可; - -> 注意,目前的代码是 `SqlServer` 版本的,其他数据库版本的,可以去群文件查看。 - - -## Test-xUnit - -项目简单使用了单元测试,通过 `xUnit` 组件,具体的可以查看 `Blog.Core.Tests` 层相关代码。 -目前单元测试用例还比较少,大家可以自行添加。 - - -## Temple-Nuget - -本项目封装了 `Nuget` 自定义模板,你可以根据这个模板,一键创建自己的项目名,具体的操作,可以双击项目根目录下的 `CreateYourProject.bat` ,可以参考 [#如何项目重命名](http://apk.neters.club/.doc/guide/getting-started.html#%E5%A6%82%E4%BD%95%E9%A1%B9%E7%9B%AE%E9%87%8D%E5%91%BD%E5%90%8D) - -同时,你也可以再 `Nuget` 管理器中,搜索到: -nuget - - - -## UserInfo - - -项目中封装了获取用户信息的代码: -在 `.\Blog.Core.Common\HttpContextUser` 文件夹下 `AspNetUser.cs` 实现类和 `IUser.cs` 接口。 - -如果使用,首先需要注册相应的服务,参见:`.\Blog.Core\Extensions` 文件夹下的 `HttpContextSetup.cs`; -然后,就直接在控制器构造函数中,注入接口 `IUser` 即可; - -> `注意`: -> 1、如果要想获取指定的服务,必须登录,也就是必须要在 `Header` 中传递有效 `Token` ,这是肯定的。 -> 2、如果要获取用户信息,一定要在中间件 `app.UseAuthentication()` 之后(不要问为什么),控制器肯定在它之后,所以能获取到; -> 3、`【并不是】`一定需要添加 `[Authorize]` 特性,如果你加了这个特性,可以直接获取,但是如果不加,可以从我的 `AspNetUser.cs` 方法中,有一个直接从 `Header` 中解析的方法 `List GetUserInfoFromToken(string ClaimType);`: - -``` - public string GetToken() - { - return _accessor.HttpContext.Request.Headers["Authorization"].ObjToString().Replace("Bearer ", ""); - } - - public List GetUserInfoFromToken(string ClaimType) - { - - var jwtHandler = new JwtSecurityTokenHandler(); - if (!string.IsNullOrEmpty(GetToken())) - { - JwtSecurityToken jwtToken = jwtHandler.ReadJwtToken(GetToken()); - - return (from item in jwtToken.Claims - where item.Type == ClaimType - select item.Value).ToList(); - } - else - { - return new List() { }; - } - } - -``` diff --git a/.docs/contents/guide/function-sheet.md b/.docs/contents/guide/function-sheet.md deleted file mode 100644 index d81ad13f..00000000 --- a/.docs/contents/guide/function-sheet.md +++ /dev/null @@ -1,471 +0,0 @@ -# H 核心功能一览表 - -## 一、表结构解析 - -`Blog.Core` 项目共包含四部分的数据库表结构,分别是:用户角色管理部分、接口菜单权限管理部分、博客文章管理部分、以及其他不重要部分。 -> 注意:目前不提供与维护数据库数据,直接通过 `SeedData` 生成种子数据; - -### 1、用户角色管理部分[必须] -主要是三个表:分别对应用户表(sysUserInfo)、角色表(Role)、用户角色关系表(UserRole)。 - -usermanager - - - -### 2、接口菜单权限管理部分[必须] - -主要是四个表:分别对应接口表(Module)、菜单表(Permission)、接口菜单关系表(ModulePermission)暂时没用到、角色接口菜单关系表(RoleModulePermission)。 - -permissionmanager - - - - -### 3、博客文章管理部分[可选] -主要是三个表:分别对应博客表(BlogArticle)、Bug专题表(Topic)、Bug内容表(TopicDetail)。 - -blogmanager - - - - -### 4、其他不重要部分 - -主要是三个表:分别对应Job调度表(TasksQz)、密码库表(PasswordLib)、操作日志表(OperateLog)、广告表(Advertisement)、公告表(Guestbook)。 - -othersmanager - - - - - - -## 二、日志记录 - -本框架涵盖了不同领域的日志记录,共五个,分别是: - -1、全局异常日志 - - 开启方式:无需操作。 - 文件路径:web目录下,Log/GlobalExcepLogs_{日期}.log。 - 功能描述:记录项目启动后出现的所有异常日志,不包括中间件中异常。 - - -2、IP 请求日志 - - 开启方式:无需操作。 - 文件路径:web目录下,Log/RequestIpInfoLog.log。 - 功能描述:记录项目启动后客户端请求的ip和接口信息。 - 举例来说: - {"Ip":"xxx.xx.xx.x","Url":"/api/values","Datetime":"2020-01-06 18:02:19","Date":"2020-01-06","Week":"周一"} - - -3、用户API访问日志 - - 开启方式:appsettings.json -> Middlewar -> RecordAccessLogs 节点为true。 - 文件路径:web目录下,Log/RecordAccessLogs_{日期}.log。 - 功能描述:记录项目启动后客户端所有的API访问日志,包括参数、body以及用户信息。 - - -4、服务层请求响应AOP日志 - - 开启方式:appsettings.json -> AppSettings -> LogAOP 节点为true。 - 文件路径:web目录下,Log/AOPLog.log。 - 功能描述:记录项目启动请求api后,所有的service层日志,包括方法名、参数、响应结果或用户(非必须)。 - - -5、数据库操作日志 - - 开启方式:appsettings.json -> AppSettings -> SqlAOP 节点为true。 - 文件路径:web目录下,Log/SqlLog.log。 - 功能描述:记录项目启动请求api并访问service后,所有的db操作日志,包括Sql参数与Sql语句。 - 举例来说: - -------------------------------- - 1/6/2020 6:13:04 PM| - 【SQL参数】:@bID0:1 - 【SQL语句】:SELECT `bID`,`bsubmitter`,`btitle`,`bcategory`,`bcontent`,`btraffic`,`bcommentNum`,`bUpdateTime`,`bCreateTime`,`bRemark`,`IsDeleted` FROM `BlogArticle` WHERE ( `bID` = @bID0 ) - - - ## 三、控制台信息展示 - - 配置 - - - - ## 四、Nginx一览表 - - - -``` -#user nobody; -worker_processes 1; - -#error_log logs/error.log; -#error_log logs/error.log notice; -#error_log logs/error.log info; - -#pid logs/nginx.pid; -events { - worker_connections 1024; -} - -http { - include mime.types; - default_type application/octet-stream; - server_names_hash_bucket_size 64; - - #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - # '$status $body_bytes_sent "$http_referer" ' - # '"$http_user_agent" "$http_x_forwarded_for"'; - - #access_log logs/access.log main; - sendfile on; - #tcp_nopush on; - - #keepalive_timeout 0; - keepalive_timeout 600; - proxy_read_timeout 600; - proxy_send_timeout 600; - - proxy_buffer_size 128k; - proxy_buffers 32 32k; - proxy_busy_buffers_size 128k; - - #gzip on; - - ###################################################################### - server { - listen 80; - server_name www.neters.club; - - #charset koi8-r; - - #access_log logs/host.access.log main; - location / { - root C:\code\Code\Neters\home; - index index.html index.htm; - } - } - - server { - listen 80; - server_name neters.club; - - #charset koi8-r; - - #access_log logs/host.access.log main; - location / { - root C:\code\Code\Neters\home; - - index index.html index.htm; - } - } - - server { - listen 80; - server_name ids.neters.club; - rewrite ^(.*)$ https://$host$1 permanent;#把http的域名请求转成https,第二种写法在此节的末端 - - #charset koi8-r; - - #access_log logs/host.access.log main; - location / { - #proxy_pass http://localhost:5004; - root html; - index index.html index.htm; - } - } - - server { - listen 443 ssl; - server_name ids.neters.club; #网站域名,和80端口保持一致 - ssl on; - ssl_certificate 1_ids.neters.club_bundle.crt; #证书公钥 - ssl_certificate_key 2_ids.neters.club.key; #证书私钥 - ssl_session_cache shared:SSL:1m; - ssl_session_timeout 5m; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!3DES:!aNULL:!eNULL; - ssl_prefer_server_ciphers on; - - error_page 497 https://$host$uri?$args; - - location / { - proxy_pass http://localhost:5004; - proxy_redirect off; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - - proxy_set_header Cookie $http_cookie; - #proxy_cookie_path - chunked_transfer_encoding off; - } - } - - server { - listen 80; - server_name apk.neters.club; - - #charset koi8-r; - - #access_log logs/host.access.log main; - location / { - root html; - proxy_pass http://localhost:9291; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection keep-alive; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_cache_bypass $http_upgrade; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - - index index.html index.htm; - } - - location /.doc/ { - proxy_pass http://docs.neters.club/; - } - } - - server { - listen 80; - server_name docs.neters.club; - - location / { - root C:\code\Code\Blog.Core\.docs\contents\.vuepress\dist; - index index.html index.htm; - } - } - - server { - listen 80; - server_name vueadmin.neters.club; - - location / { - try_files $uri $uri/ /index.html; - root C:\code\Code\Blog.Admin\distis; - #proxy_pass http://localhost:2364; - index index.html index.htm; - } - - location /api/ { - rewrite ^.+apb/?(.*)$ /$1 break; - include uwsgi_params; - proxy_pass http://localhost:9291; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - #proxy_set_header Connection "upgrade"; - #proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - location /api2/ { - rewrite ^.+apb/?(.*)$ /$1 break; - include uwsgi_params; - proxy_pass http://localhost:9291; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - location /images/ { - include uwsgi_params; - proxy_pass http://localhost:9291; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - #proxy_set_header Connection "upgrade"; - #proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - location /.doc/ { - proxy_pass http://docsadmin.neters.club/; - } - - error_page 404 /404.html; - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root html; - } - } - - server { - listen 80; - server_name docsadmin.neters.club; - - location / { - root C:\code\Code\Blog.Admin\.doc\contents\.vuepress\dist; - index index.html index.htm; - } - } - - - server { - listen 80; - server_name ddd.neters.club; - location / { - proxy_pass http://localhost:4773; - index index.php index.html index.htm; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection keep-alive; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - } - } - - - server { - listen 80; - server_name ask.neters.club; - - #charset koi8-r; - - #access_log logs/host.access.log main; - location / { - root html; - proxy_pass http://localhost:5020; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - #proxy_set_header Connection "upgrade"; - #proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - index index.html index.htm; - } - } - - - server { - listen 80; - server_name vueblog.neters.club; - - location / { - try_files $uri $uri/ /index.html; - root C:\code\Code\Blog.Vue\dist; - index index.html index.htm; - } - - - location /api { - rewrite ^.+apb/?(.*)$ /$1 break; - include uwsgi_params; - proxy_pass http://localhost:9291; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - - location /images { - include uwsgi_params; - proxy_pass http://localhost:9291; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - error_page 404 /404.html; - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root html; - } - } - - upstream nodenuxt { - server 127.0.0.1:3089; # nuxt 项目监听PC端端口 - keepalive 64; - } - server { - listen 80; - server_name tibug.neters.club; - - location / { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header Host $host; - proxy_set_header X-Nginx-Proxy true; - proxy_cache_bypass $http_upgrade; - proxy_pass http://nodenuxt; - } - - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root html; - } - } - - server { - listen 80; - server_name jwt.neters.club; - - location / { - root C:\code\Code\jwttoken; - index index.html index.htm; - } - - error_page 404 /404.html; - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root html; - } - } -} - -``` -> 这里说明下,我的 `Nginx` 文件中,`Ids4` 项目强制使用 `Https` ,采用的是直接跳转,这也是一个办法,当然还有第二种办法(感谢 `tibos`): -``` -server { - listen 80; - server_name admin.wmowm.com; - location / { - proxy_pass http://localhost:9002; - index index.php index.html index.htm; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection keep-alive; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - } -} - -server { - listen 443 ssl;#监听443端口(https默认端口) - server_name admin.wmowm.com; #填写绑定证书的域名 - ssl_certificate /etc/nginx/conf.d/key/admin.wm.crt;#填写你的证书所在的位置 - ssl_certificate_key /etc/nginx/conf.d/key/admin.wm.key;#填写你的key所在的位置 - ssl_session_timeout 5m; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置 - ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置 - ssl_prefer_server_ciphers on; - location / { - proxy_pass http://localhost:9002; - index index.php index.html index.htm; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection keep-alive; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - } - -} -``` \ No newline at end of file diff --git a/.docs/contents/guide/getting-started.md b/.docs/contents/guide/getting-started.md deleted file mode 100644 index 9c4f6b0d..00000000 --- a/.docs/contents/guide/getting-started.md +++ /dev/null @@ -1,132 +0,0 @@ -# K 快速上手 -注意 - -请确保你的 `Visual Studio 2019` 版本 >= `16.8.2`。 -并安装 `.NET 5.0 SDK` - - -## 下载 -Github(国际) 下载 [https://github.com/anjoy8/Blog.Core](https://github.com/anjoy8/Blog.Core) - -Gitee(国内) 下载 [https://gitee.com/laozhangIsPhi/Blog.Core](https://gitee.com/laozhangIsPhi/Blog.Core) - - -## 编译与运行 -1、拿到项目后,双击 `Blog.Core.sln` 解决方案; -2、首先 `F6` 编译,看是否有错误; -3、然后 `F5` 运行,调起 `9291` 端口,浏览器查看效果; -4、因为系统默认的是 `sqlite` 数据库,如果你想换其他数据库,请看下边; -5、注意:本系统是直接自动生成数据库和数据的,不用手动创建数据库; - - - - -## CodeFirst 与 DbFirst -1、项目同时支持两个常见开发模式:`CodeFirst` 和 `DbFirst`; -2、首先 如果你是第一次下载我的项目,肯定是想要浏览效果和直接使用对应的权限相关的内容,这个时候肯定需要用到数据库表结构,那就肯定需要 `CodeFirst` ,只需要在`appsettings.json` 里配置好数据库连接字符串(下文会说到如何配置),就能正确运行; -3、浏览器查看效果,或者配合 `Admin` 项目查看效果后,如果感觉项目可行,并打算在此基础上二次开发,那肯定会在你刚刚创建的数据库种去创建新的表结构,这个时候就需要使用 `DbFirst` 模式,来生成四层项目问题:Model+Service+Repository等; -4、你可以使用T4模板,但是我更建议使用 `/api/DbFirst/GetFrameFiles` 接口来生成,不仅支持多种类型的数据库,还支持同时多库模式的输出; -5、如果你不想用我的表结构和实体类,在项目启动的时候,把配置文件的 `SeedDBEnabled`节点设置成False即可,然后配置对应的你自己的数据库连接字符串,比如是商城的,然后使用 `/api/DbFirst/GetFrameFiles` 接口来生成你的数据库四层类文件; - - - -## 如何配置数据库连接字符串 - -1、打开 `Blog.Core` 项目下的 `appsettings.json` 文件; -2、修改 `DBS` 字节内容,配置对应的连接字符串,注意`DBType`对应不同的数据库类型; -3、把你想要运行的数据库 `Enabled` 为 `true` 即可,其他都要设置 `false`; -4、然后 `MainDB` 设置为下边你使用的指定 `ConnId`: - -``` - "MainDB": "WMBLOG_MSSQL", //当前项目的主库,所对应的连接字符串的Enabled必须为true - "MutiDBEnabled": false, //是否开启多库 - "DBS": [ - { - "ConnId": "WMBLOG_SQLITE", - "DBType": 2,// sqlite数据库 - "Enabled": true,// 设置为true,启用1 - "Connection": "WMBlog.db" //只写数据库名就行 - }, - { - "ConnId": "WMBLOG_MSSQL", - "DBType": 1,// sqlserver数据库 - "Enabled": true,// 设置为true,启用2 - "Connection": "Server=.;Database=WMBlogDB;User ID=sa;Password=123;", - "ProviderName": "System.Data.SqlClient" - }, - { - "ConnId": "WMBLOG_MYSQL", - "DBType": 0,// mysql - "Enabled": false,// false 不启用 - "Connection": "Server=localhost; Port=3306;Stmt=; Database=wmblogdb; Uid=root; Pwd=456;" - }, - { - "ConnId": "WMBLOG_ORACLE", - "DBType": 3,// Oracle - "Enabled": false,// 不启用 - "Connection": "Provider=OraOLEDB.Oracle; Data Source=WMBlogDB; User Id=sss; Password=789;" - } - ], -``` - - -5、如果你想多库操作,需要配置 -``` - a:MainDB 设置为主库的 ConnId; - b:MutiDBEnabled设置为true, - c:把下边想要连接的多个连接字符串都设置为true -``` - -## 如何配置项目端口号 -1、在 `Blog.Core` 层下的 `program.cs` 文件中,将 `9291`端口,修改为自己想要的端口号; -2、或者在 `launchSettings.json` 中设置(`注意,如果仅仅修改这里,publish后,端口访问无效`); - -## 如何项目重命名 -1、双击项目根目录下的 `CreateYourProject.bat` 批处理文件; -2、根据提示,`在Dos窗口内`输入自己想要的项目名称即可; -3、在根目录会有一个 `.1YourProject` 文件夹,里边即你的项目; - - -## 新增实体模块后如何迁移到数据库 -1、在 `Blog.Core.Model` 项目目录下的 `Seed` 文件夹下,找到 `DBSeed` 类; -2、根据提示,找到生成table的地方 `myContext.CreateTableByEntity`; -3、添加进去你新增的实体类,当然也可以用下边的单独写法; -4、编译项目,没错后,运行,则数据库更新完毕; - - -## 新增实体,如何进行增删改查CURD操作 -1、随便找一个含有业务逻辑的 `controller` 参考一下即可; -2、主要 `api` 是通过 `Service` 服务层提供业务逻辑; -3、然后服务层通过 `Repository` 仓储层封装持久化操作; -4、每一个表基本上对应一个仓储类,基本的操作都封装到了 `BaseRepository.cs` 基类仓储中; -5、添加完业务逻辑,记得要 `F6` 重新编译一下,因为项目间引用解耦了; -6、项目已经自动注入了,直接在控制器使用对应的服务层接口就行: `IxxxxService` ; - - -## 新增数据库表,如何反向生成四层文件 -1、可以通过 `T4` 模板来生成,在 `Blog.Core.FrameWork` 层,使用方法: [9757999.html](https://www.cnblogs.com/laozhang-is-phi/p/9757999.html#autoid-4-3-0) ; -> 注意:这种方案,目前默认的只能是 `SqlServer` ,其他类型的数据库,可以看上边文章中的代码,或者群文件里对应的代码。 - -> 1、修改`DbHelper.ttinclude`文件中的连接字符串,注意是`SqlServer`的: public static readonly string ConnectionString; -> 2、然后去各个层模板文件,点击`Ctrl+S`; -> 3、就会在对应的层内,看到新文件,比如:Blog.Core.Model/Model_NEW - - - -2、也可以通过 `Sqlsugar` 所带的方法来实现 `DbFirst`,具体查看 `Controller` 层下的 `DbFirstController.cs`; - -3、总体操作过程,可以参考我的视频:[av77612407](https://www.bilibili.com/video/av77612407?p=2) ; - - -## 发布与部署 -1、双击项目根目录下的 `Blog.Core.Publish.bat`批处理文件; -2、执行完成后,根目录会有一个`.PublishFiles` 文件夹,就是发布后的项目; - - -## 如何更新项目模板 -1、着急的话自己打包,不着急就提 `issue`,等我更新; -2、我的开源项目中,有个模板项目 `BlogCoreTempl` [地址](https://github.com/anjoy8/BlogCoreTempl),下载下来; -3、下载最新的 `Blog.Core` 源代码; -4、将源代码拷贝到模板项目的 `content` 文件夹下; -5、双击 `Package.bat` 文件,就生成了最新的模板了; - diff --git a/.docs/package.json b/.docs/package.json deleted file mode 100644 index 3f0483bf..00000000 --- a/.docs/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "BCVP", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC" -} diff --git a/.gitignore b/.gitignore index de419c90..97072da3 100644 --- a/.gitignore +++ b/.gitignore @@ -358,3 +358,4 @@ Blog.Core.Api/wwwroot/ui/ Blog.Core.Api/Logs *.db /Blog.Core.Api/WMBlog.db-journal +.docs/.vuepress/dist/ From 2ce3e6b7ffa79c8a05cdd155a1a589c6a19c560c Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 24 Nov 2023 20:12:02 +0800 Subject: [PATCH 327/382] =?UTF-8?q?feat=EF=BC=9Aremove=20startup.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Program.cs | 4 +- Blog.Core.Api/Startup.cs | 232 ------------------ .../DependencyInjection/DI_Test.cs | 13 +- 3 files changed, 6 insertions(+), 243 deletions(-) delete mode 100644 Blog.Core.Api/Startup.cs diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 13d7cea2..3138e5ad 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -1,4 +1,5 @@ -// 以下为asp.net 6.0的写法,如果用5.0,请看Program.five.cs文件 +// 以下为asp.net 6.0的写法,如果用5.0,请看Program.five.cs文件, +// 或者参考github上的.net6.0分支相关代码 using Autofac; using Autofac.Extensions.DependencyInjection; @@ -69,7 +70,6 @@ builder.Services.AddMiniProfilerSetup(); builder.Services.AddSwaggerSetup(); builder.Services.AddJobSetup(); -//builder.Services.AddJobSetup_HostedService(); builder.Services.AddHttpContextSetup(); builder.Services.AddAppTableConfigSetup(builder.Environment); builder.Services.AddHttpApi(); diff --git a/Blog.Core.Api/Startup.cs b/Blog.Core.Api/Startup.cs deleted file mode 100644 index 2911625d..00000000 --- a/Blog.Core.Api/Startup.cs +++ /dev/null @@ -1,232 +0,0 @@ -using System.IdentityModel.Tokens.Jwt; -using System.Reflection; -using System.Text; -using Autofac; -using Blog.Core.Common; -using Blog.Core.Common.Helper; -using Blog.Core.Common.LogHelper; -using Blog.Core.Common.Seed; -using Blog.Core.Extensions; -using Blog.Core.Extensions.Middlewares; -using Blog.Core.Extensions.ServiceExtensions; -using Blog.Core.Filter; -using Blog.Core.Hubs; -using Blog.Core.IServices; -using Blog.Core.Model; -using Blog.Core.Tasks; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Controllers; -using Microsoft.AspNetCore.Server.Kestrel.Core; -using Microsoft.Extensions.DependencyInjection.Extensions; -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; -using Newtonsoft.Json.Serialization; - -namespace Blog.Core -{ - public class Startup - { - private IServiceCollection _services; - - public Startup(IConfiguration configuration, IWebHostEnvironment env) - { - Configuration = configuration; - Env = env; - } - - public IConfiguration Configuration { get; } - public IWebHostEnvironment Env { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { - // 以下code可能与文章中不一样,对代码做了封装,具体查看右侧 Extensions 文件夹. - services.AddSingleton(new AppSettings(Configuration)); - services.AddUiFilesZipSetup(Env); - - Permissions.IsUseIds4 = AppSettings.app(new string[] { "Startup", "IdentityServer4", "Enabled" }).ObjToBool(); - RoutePrefix.Name = AppSettings.app(new string[] { "AppSettings", "SvcName" }).ObjToString(); - - // 确保从认证中心返回的ClaimType不被更改,不使用Map映射 - JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); - - services.AddCacheSetup(); - services.AddSqlsugarSetup(); - services.AddDbSetup(); - services.AddAutoMapperSetup(); - services.AddCorsSetup(); - services.AddMiniProfilerSetup(); - services.AddSwaggerSetup(); - services.AddJobSetup(); - services.AddHttpContextSetup(); - //services.AddAppConfigSetup(Env); - services.AddAppTableConfigSetup(Env);//表格打印配置 - services.AddHttpApi(); - services.AddRedisInitMqSetup(); - - services.AddRabbitMQSetup(); - services.AddKafkaSetup(Configuration); - services.AddEventBusSetup(); - - services.AddNacosSetup(Configuration); - services.AddInitializationHostServiceSetup(); - // 授权+认证 (jwt or ids4) - services.AddAuthorizationSetup(); - if (Permissions.IsUseIds4) - { - services.AddAuthentication_Ids4Setup(); - } - else - { - services.AddAuthentication_JWTSetup(); - } - - services.AddIpPolicyRateLimitSetup(Configuration); - - services.AddSignalR().AddNewtonsoftJsonProtocol(); - - services.AddScoped(); - - services.Configure(x => x.AllowSynchronousIO = true) - .Configure(x => x.AllowSynchronousIO = true); - - services.AddDistributedMemoryCache(); - services.AddSession(); - services.AddHttpPollySetup(); - - services.AddControllers(o => - { - // 全局异常过滤 - o.Filters.Add(typeof(GlobalExceptionsFilter)); - // 全局路由权限公约 - //o.Conventions.Insert(0, new GlobalRouteAuthorizeConvention()); - // 全局路由前缀,统一修改路由 - o.Conventions.Insert(0, new GlobalRoutePrefixFilter(new RouteAttribute(RoutePrefix.Name))); - }) - // 这种写法也可以 - //.AddJsonOptions(options => - //{ - // options.JsonSerializerOptions.PropertyNamingPolicy = null; - //}) - //MVC全局配置Json序列化处理 - .AddNewtonsoftJson(options => - { - //忽略循环引用 - options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; - //不使用驼峰样式的key - options.SerializerSettings.ContractResolver = new DefaultContractResolver(); - //设置时间格式 - options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; - //忽略Model中为null的属性 - //options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; - //设置本地时间而非UTC时间 - options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; - //添加Enum转string - options.SerializerSettings.Converters.Add(new StringEnumConverter()); - //将long类型转为string - options.SerializerSettings.Converters.Add(new NumberConverter(NumberConverterShip.Int64)); - }); - - services.Replace(ServiceDescriptor.Transient()); - - _services = services; - //支持编码大全 例如:支持 System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030") - Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); - } - - // 注意在Program.CreateHostBuilder,添加Autofac服务工厂 - public void ConfigureContainer(ContainerBuilder builder) - { - builder.RegisterModule(new AutofacModuleRegister()); - builder.RegisterModule(); - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MyContext myContext, ITasksQzServices tasksQzServices, ISchedulerCenter schedulerCenter, IHostApplicationLifetime lifetime) - { - // Ip限流,尽量放管道外层 - app.UseIpLimitMiddle(); - // 记录请求与返回数据 - app.UseRequestResponseLogMiddle(); - // 用户访问记录(必须放到外层,不然如果遇到异常,会报错,因为不能返回流) - app.UseRecordAccessLogsMiddle(); - // signalr - app.UseSignalRSendMiddle(); - // 记录ip请求 - app.UseIpLogMiddle(); - // 查看注入的所有服务 - app.UseAllServicesMiddle(_services); - - if (env.IsDevelopment()) - { - // 在开发环境中,使用异常页面,这样可以暴露错误堆栈信息,所以不要放在生产环境。 - app.UseDeveloperExceptionPage(); - } - else - { - app.UseExceptionHandler("/Error"); - // 在非开发环境中,使用HTTP严格安全传输(or HSTS) 对于保护web安全是非常重要的。 - // 强制实施 HTTPS 在 ASP.NET Core,配合 app.UseHttpsRedirection - //app.UseHsts(); - } - - app.UseSession(); - app.UseSwaggerAuthorized(); - // 封装Swagger展示 - app.UseSwaggerMiddle(() => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("Blog.Core.Api.index.html")); - - // ↓↓↓↓↓↓ 注意下边这些中间件的顺序,很重要 ↓↓↓↓↓↓ - - // CORS跨域 - app.UseCors(AppSettings.app(new string[] { "Startup", "Cors", "PolicyName" })); - // 跳转https - //app.UseHttpsRedirection(); - // 使用静态文件 - DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions(); - defaultFilesOptions.DefaultFileNames.Clear(); - defaultFilesOptions.DefaultFileNames.Add("index.html"); - app.UseDefaultFiles(defaultFilesOptions); - app.UseStaticFiles(); - // 使用cookie - app.UseCookiePolicy(); - // 返回错误码 - app.UseStatusCodePages(); - // Routing - app.UseRouting(); - // 这种自定义授权中间件,可以尝试,但不推荐 - // app.UseJwtTokenAuth(); - - // 测试用户,用来通过鉴权 - if (Configuration.GetValue("AppSettings:UseLoadTest")) - { - app.UseMiddleware(); - } - // 先开启认证 - app.UseAuthentication(); - // 然后是授权中间件 - app.UseAuthorization(); - //开启性能分析 - app.UseMiniProfilerMiddleware(); - // 开启异常中间件,要放到最后 - //app.UseExceptionHandlerMidd(); - - app.UseEndpoints(endpoints => - { - endpoints.MapControllerRoute( - name: "default", - pattern: "{controller=Home}/{action=Index}/{id?}"); - - endpoints.MapHub("/api2/chatHub"); - }); - - // 生成种子数据 - //app.UseSeedDataMiddle(myContext, Env.WebRootPath); - // 开启QuartzNetJob调度服务 - //app.UseQuartzJobMiddleware(tasksQzServices, schedulerCenter); - // 服务注册 - //app.UseConsulMiddle(Configuration, lifetime); - // 事件总线,订阅服务 - //app.ConfigureEventBus(); - } - } -} \ No newline at end of file diff --git a/Blog.Core.Tests/DependencyInjection/DI_Test.cs b/Blog.Core.Tests/DependencyInjection/DI_Test.cs index d425fa01..1ac4d5a7 100644 --- a/Blog.Core.Tests/DependencyInjection/DI_Test.cs +++ b/Blog.Core.Tests/DependencyInjection/DI_Test.cs @@ -1,12 +1,10 @@ using Autofac; using Autofac.Extensions.DependencyInjection; using Autofac.Extras.DynamicProxy; -using AutoMapper; using Blog.Core.AuthHelper; using Blog.Core.Common; using Blog.Core.Common.AppConfig; using Blog.Core.Common.DB; -using Blog.Core.Common.LogHelper; using Blog.Core.Common.Seed; using Blog.Core.Extensions; using Blog.Core.IRepository.Base; @@ -17,9 +15,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.IdentityModel.Tokens; -using System; -using System.Collections.Generic; -using System.IO; using System.Reflection; using System.Security.Claims; using System.Text; @@ -56,7 +51,7 @@ public IContainer DICollections() var basePath = AppContext.BaseDirectory; IServiceCollection services = new ServiceCollection(); - services.AddAutoMapper(typeof(Startup)); + services.AddAutoMapperSetup(); services.AddSingleton(new AppSettings(basePath)); services.AddScoped(); @@ -116,9 +111,9 @@ public IContainer DICollections() // 属性注入 var controllerBaseType = typeof(ControllerBase); - builder.RegisterAssemblyTypes(typeof(Startup).Assembly) - .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType) - .PropertiesAutowired(); + //builder.RegisterAssemblyTypes(typeof(Program).Assembly) + // .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType) + // .PropertiesAutowired(); var servicesDllFile = Path.Combine(basePath, "Blog.Core.Services.dll"); var assemblysServices = Assembly.LoadFrom(servicesDllFile); From 8188403b60d9b8641ebc0bfee13e3f2590515e11 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 24 Nov 2023 22:49:56 +0800 Subject: [PATCH 328/382] feat: remove some needless code --- Blog.Core.Api/Blog.Core.xml | 1 + Blog.Core.Api/Controllers/BlogController.cs | 2 + Blog.Core.Api/Controllers/LoginController.cs | 2 +- .../LogHelper/Seri/SerilogServer.cs | 76 ---------------- .../LogHelper/Seri/SerilogServer_Es.cs | 89 ------------------- Blog.Core.Common/Seed/DBSeed.cs | 5 -- .../ServiceExtensions/DbSetup.cs | 1 - .../ServiceExtensions/SerilogSetup.cs | 2 - .../ServiceExtensions/SqlsugarSetup.cs | 9 -- 9 files changed, 4 insertions(+), 183 deletions(-) delete mode 100644 Blog.Core.Common/LogHelper/Seri/SerilogServer.cs delete mode 100644 Blog.Core.Common/LogHelper/Seri/SerilogServer_Es.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 667dcfdc..5b904c4c 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -186,6 +186,7 @@ + diff --git a/Blog.Core.Api/Controllers/BlogController.cs b/Blog.Core.Api/Controllers/BlogController.cs index fbc67e12..d0e9a235 100644 --- a/Blog.Core.Api/Controllers/BlogController.cs +++ b/Blog.Core.Api/Controllers/BlogController.cs @@ -8,6 +8,7 @@ using Blog.Core.SwaggerHelper; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Serilog; using StackExchange.Profiling; using static Blog.Core.Extensions.CustomApiVersion; @@ -99,6 +100,7 @@ public async Task> Get(long id) public async Task> DetailNuxtNoPer(long id) { _logger.LogInformation("xxxxxxxxxxxxxxxxxxx"); + Log.Information("yyyyyyyyyyyyyyyyy"); return Success(await _blogArticleServices.GetBlogDetails(id)); } diff --git a/Blog.Core.Api/Controllers/LoginController.cs b/Blog.Core.Api/Controllers/LoginController.cs index abb495c9..f3e9accc 100644 --- a/Blog.Core.Api/Controllers/LoginController.cs +++ b/Blog.Core.Api/Controllers/LoginController.cs @@ -10,7 +10,6 @@ using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using Blog.Core.Common.Swagger; -using Serilog; namespace Blog.Core.Controllers @@ -38,6 +37,7 @@ public class LoginController : BaseApiController /// /// /// + /// public LoginController(ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, IRoleServices roleServices, PermissionRequirement requirement, IRoleModulePermissionServices roleModulePermissionServices, ILogger logger) diff --git a/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs b/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs deleted file mode 100644 index cb5ec0ff..00000000 --- a/Blog.Core.Common/LogHelper/Seri/SerilogServer.cs +++ /dev/null @@ -1,76 +0,0 @@ -using Blog.Core.Common.Helper; -using Serilog; -using Serilog.Events; -using System; -using System.IO; - -namespace Blog.Core.Common.LogHelper -{ - public class SerilogServer - { - /// - /// 记录日常日志 - /// - /// - /// - /// - public static void WriteLog(string filename, string[] dataParas, bool IsHeader = true, string defaultFolder = "", bool isJudgeJsonFormat = false) - { - Log.Logger = new LoggerConfiguration() - .MinimumLevel.Debug() - .MinimumLevel.Override("Microsoft", LogEventLevel.Error) - //.WriteTo.File(Path.Combine($"log/Serilog/{filename}/", ".log"), rollingInterval: RollingInterval.Day, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level}] {Message}{NewLine}{Exception}") - .WriteTo.File(Path.Combine("Log", defaultFolder, $"{filename}.log"), - rollingInterval: RollingInterval.Infinite, - outputTemplate: "{Message}{NewLine}{Exception}") - .CreateLogger(); - - var now = DateTime.Now; - string logContent = String.Join("\r\n", dataParas); - var isJsonFormat = true; - if (isJudgeJsonFormat) - { - var judCont = logContent.Substring(0, logContent.LastIndexOf(",")); - isJsonFormat = JsonHelper.IsJson(judCont); - } - - if (isJsonFormat) - { - if (IsHeader) - { - logContent = ( - "--------------------------------\r\n" + - DateTime.Now + "|\r\n" + - String.Join("\r\n", dataParas) + "\r\n" - ); - } - // 展示elk支持输出4种日志级别 - Log.Information(logContent); - //Log.Warning(logContent); - //Log.Error(logContent); - //Log.Debug(logContent); - } - else - { - Console.WriteLine("【JSON格式异常:】"+logContent + now.ObjToString()); - } - Log.CloseAndFlush(); - } - /// - /// 记录异常日志 - /// - /// - /// - /// - public static void WriteErrorLog(string filename, string message, Exception ex) - { - Log.Logger = new LoggerConfiguration() - .MinimumLevel.Debug() - .MinimumLevel.Override("Microsoft", LogEventLevel.Error) - .WriteTo.File(Path.Combine($"log/Error/{filename}/", ".txt"), rollingInterval: RollingInterval.Day) - .CreateLogger(); - Log.Error(ex, message); - Log.CloseAndFlush(); - } - } -} diff --git a/Blog.Core.Common/LogHelper/Seri/SerilogServer_Es.cs b/Blog.Core.Common/LogHelper/Seri/SerilogServer_Es.cs deleted file mode 100644 index 048d5597..00000000 --- a/Blog.Core.Common/LogHelper/Seri/SerilogServer_Es.cs +++ /dev/null @@ -1,89 +0,0 @@ -using Blog.Core.Common.Helper; -using Blog.Core.Serilog.Es; -using Blog.Core.Serilog.Es.Formatters; -using Serilog; -using Serilog.Events; -using System; -using System.IO; - -namespace Blog.Core.Common.LogHelper -{ - public class SerilogServer_Es - { - /// - /// 记录日常日志 - /// - /// - /// - /// - public static void WriteLog(string filename, string[] dataParas, bool IsHeader = true, string defaultFolder = "", bool isJudgeJsonFormat = false) - { - Log.Logger = new LoggerConfiguration() - // TCPSink 集成Serilog 使用tcp的方式向elk 输出log日志 LogstashJsonFormatter 这个是按照自定义格式化输出内容 - .WriteTo.TCPSink(new LogstashJsonFormatter()) - .MinimumLevel.Debug() - .MinimumLevel.Override("Microsoft", LogEventLevel.Error) - //.WriteTo.File(Path.Combine($"log/Serilog/{filename}/", ".log"), rollingInterval: RollingInterval.Day, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level}] {Message}{NewLine}{Exception}") - .WriteTo.File(Path.Combine("Log", defaultFolder, $"{filename}.log"), - rollingInterval: RollingInterval.Infinite, - outputTemplate: "{Message}{NewLine}{Exception}") - - // 将日志托送到远程ES - // docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d --name ES01 elasticsearch:7.2.0 - //.Enrich.FromLogContext() - //.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://x.xxx.xx.xx:9200/")) - //{ - // AutoRegisterTemplate = true, - //}) - - .CreateLogger(); - - var now = DateTime.Now; - string logContent = String.Join("\r\n", dataParas); - var isJsonFormat = true; - if (isJudgeJsonFormat) - { - var judCont = logContent.Substring(0, logContent.LastIndexOf(",")); - isJsonFormat = JsonHelper.IsJson(judCont); - } - - if (isJsonFormat) - { - if (IsHeader) - { - logContent = ( - "--------------------------------\r\n" + - DateTime.Now + "|\r\n" + - String.Join("\r\n", dataParas) + "\r\n" - ); - } - // 展示elk支持输出4种日志级别 - Log.Information(logContent); - //Log.Warning(logContent); - //Log.Error(logContent); - //Log.Debug(logContent); - } - else - { - Console.WriteLine("【JSON格式异常:】"+logContent + now.ObjToString()); - } - Log.CloseAndFlush(); - } - /// - /// 记录异常日志 - /// - /// - /// - /// - public static void WriteErrorLog(string filename, string message, Exception ex) - { - Log.Logger = new LoggerConfiguration() - .MinimumLevel.Debug() - .MinimumLevel.Override("Microsoft", LogEventLevel.Error) - .WriteTo.File(Path.Combine($"log/Error/{filename}/", ".txt"), rollingInterval: RollingInterval.Day) - .CreateLogger(); - Log.Error(ex, message); - Log.CloseAndFlush(); - } - } -} diff --git a/Blog.Core.Common/Seed/DBSeed.cs b/Blog.Core.Common/Seed/DBSeed.cs index 082b9b20..f3f023a0 100644 --- a/Blog.Core.Common/Seed/DBSeed.cs +++ b/Blog.Core.Common/Seed/DBSeed.cs @@ -6,14 +6,9 @@ using Magicodes.ExporterAndImporter.Excel; using Newtonsoft.Json; using SqlSugar; -using System; -using System.Collections.Generic; using System.Diagnostics; -using System.IO; -using System.Linq; using System.Reflection; using System.Text; -using System.Threading.Tasks; using Blog.Core.Common.Const; namespace Blog.Core.Common.Seed diff --git a/Blog.Core.Extensions/ServiceExtensions/DbSetup.cs b/Blog.Core.Extensions/ServiceExtensions/DbSetup.cs index b00470ab..1f377bcc 100644 --- a/Blog.Core.Extensions/ServiceExtensions/DbSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/DbSetup.cs @@ -1,6 +1,5 @@ using Blog.Core.Common.Seed; using Microsoft.Extensions.DependencyInjection; -using System; namespace Blog.Core.Extensions { diff --git a/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs index 30ab29f8..89cbedd6 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SerilogSetup.cs @@ -6,8 +6,6 @@ using Serilog; using Serilog.Debugging; using Serilog.Events; -using System; -using System.IO; using Blog.Core.Common.Option; namespace Blog.Core.Extensions.ServiceExtensions; diff --git a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index 99133fe1..0700a74c 100644 --- a/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -2,19 +2,10 @@ using Blog.Core.Common.Const; using Blog.Core.Common.DB; using Blog.Core.Common.DB.Aop; -using Blog.Core.Common.LogHelper; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection; using SqlSugar; -using StackExchange.Profiling; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; using Blog.Core.Common.Caches; -using Blog.Core.Common.Core; -using Blog.Core.Common.HttpContextUser; -using static Grpc.Core.ChannelOption; using System.Text.RegularExpressions; namespace Blog.Core.Extensions From 325baf8e9e2b37485ebb005f80889e5a7467850e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 26 Nov 2023 00:13:23 +0800 Subject: [PATCH 329/382] feat: little change --- Blog.Core.Api/Program.cs | 19 +++++++------------ .../ServiceExtensions/JobSetup.cs | 7 ------- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 3138e5ad..61ebc6e7 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -70,15 +70,14 @@ builder.Services.AddMiniProfilerSetup(); builder.Services.AddSwaggerSetup(); builder.Services.AddJobSetup(); + builder.Services.AddHttpContextSetup(); builder.Services.AddAppTableConfigSetup(builder.Environment); builder.Services.AddHttpApi(); builder.Services.AddRedisInitMqSetup(); -builder.Services.AddRabbitMQSetup(); -builder.Services.AddKafkaSetup(builder.Configuration); -builder.Services.AddEventBusSetup(); builder.Services.AddNacosSetup(builder.Configuration); builder.Services.AddInitializationHostServiceSetup(); + builder.Services.AddAuthorizationSetup(); if (Permissions.IsUseIds4 || Permissions.IsUseAuthing) { @@ -114,15 +113,11 @@ options.SerializerSettings.Converters.Add(new StringEnumConverter()); //将long类型转为string options.SerializerSettings.Converters.Add(new NumberConverter(NumberConverterShip.Int64)); - }) - //.AddFluentValidation(config => - //{ - // //程序集方式添加验证 - // config.RegisterValidatorsFromAssemblyContaining(typeof(UserRegisterVoValidator)); - // //是否与MvcValidation共存 - // config.DisableDataAnnotationsValidation = true; - //}) - ; + }); + +builder.Services.AddRabbitMQSetup(); +builder.Services.AddKafkaSetup(builder.Configuration); +builder.Services.AddEventBusSetup(); builder.Services.AddEndpointsApiExplorer(); diff --git a/Blog.Core.Extensions/ServiceExtensions/JobSetup.cs b/Blog.Core.Extensions/ServiceExtensions/JobSetup.cs index 318168d2..da881cb3 100644 --- a/Blog.Core.Extensions/ServiceExtensions/JobSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/JobSetup.cs @@ -2,8 +2,6 @@ using Microsoft.Extensions.DependencyInjection; using Quartz; using Quartz.Spi; -using System; -using System.Linq; using System.Reflection; namespace Blog.Core.Extensions @@ -17,12 +15,7 @@ public static void AddJobSetup(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); - //services.AddHostedService(); - //services.AddHostedService(); - services.AddSingleton(); - //services.AddTransient();//Job使用瞬时依赖注入 - //services.AddTransient();//Job使用瞬时依赖注入 services.AddSingleton(); //任务注入 var baseType = typeof(IJob); From 62cdfb3a5674a453a982f8dde1b7d4b22675d62b Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 26 Nov 2023 15:50:27 +0800 Subject: [PATCH 330/382] =?UTF-8?q?feat=EF=BC=9A=20some=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Blog.Core.xml | 11 +- Blog.Core.Api/Controllers/ValuesController.cs | 31 +-- Blog.Core.Api/Filter/UseServiceDIAttribute.cs | 9 +- Blog.Core.Api/Program.cs | 12 +- Blog.Core.Common/Blog.Core.Common.csproj | 2 - .../ServiceExtensions/AppConfigSetup.cs | 192 ------------------ .../ServiceExtensions/HttpPollySetup.cs | 2 - .../IpPolicyRateLimitSetup.cs | 1 - .../ServiceExtensions/WebApiClientSetup.cs | 33 --- .../DoubanApis/DoubanViewModel.cs | 96 --------- .../WebApiClients/DoubanApis/IDoubanApi.cs | 22 -- .../WebApiClients/HttpApis/IBlogApi.cs | 84 -------- 12 files changed, 14 insertions(+), 481 deletions(-) delete mode 100644 Blog.Core.Extensions/ServiceExtensions/WebApiClientSetup.cs delete mode 100644 Blog.Core.IServices/WebApiClients/DoubanApis/DoubanViewModel.cs delete mode 100644 Blog.Core.IServices/WebApiClients/DoubanApis/IDoubanApi.cs delete mode 100644 Blog.Core.IServices/WebApiClients/HttpApis/IBlogApi.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 5b904c4c..64ee4586 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -758,7 +758,7 @@ Values控制器 - + ValuesController @@ -769,9 +769,8 @@ - - + @@ -854,12 +853,6 @@ - - - 测试http请求 WebApiClient Get - - - 测试Fulent做参数校验 diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 072ab39e..c9cd8dfc 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -3,7 +3,6 @@ using Blog.Core.Common.HttpContextUser; using Blog.Core.Common.Https.HttpPolly; using Blog.Core.Common.Option; -using Blog.Core.Common.WebApiClients.HttpApis; using Blog.Core.EventBus; using Blog.Core.EventBus.EventHandling; using Blog.Core.Extensions; @@ -38,8 +37,6 @@ public class ValuesController : BaseApiController private readonly IRoleModulePermissionServices _roleModulePermissionServices; private readonly IUser _user; private readonly IPasswordLibServices _passwordLibServices; - private readonly IBlogApi _blogApi; - private readonly IDoubanApi _doubanApi; readonly IBlogArticleServices _blogArticleServices; private readonly IHttpPollyHelper _httpPollyHelper; private readonly SeqOptions _seqOptions; @@ -54,17 +51,14 @@ public class ValuesController : BaseApiController /// /// /// - /// - /// /// + /// public ValuesController(IBlogArticleServices blogArticleServices , IMapper mapper , IAdvertisementServices advertisementServices , Love love , IRoleModulePermissionServices roleModulePermissionServices , IUser user, IPasswordLibServices passwordLibServices - , IBlogApi blogApi - , IDoubanApi doubanApi , IHttpPollyHelper httpPollyHelper , IOptions seqOptions) { @@ -77,9 +71,6 @@ public ValuesController(IBlogArticleServices blogArticleServices _user = user; // 测试多库 _passwordLibServices = passwordLibServices; - // 测试http请求 - _blogApi = blogApi; - _doubanApi = doubanApi; // 测试AOP加载顺序,配合 return _blogArticleServices = blogArticleServices; // 测试redis消息队列 @@ -162,11 +153,6 @@ await _blogArticleServices.QuerySql( { bsubmitter = $"laozhang{DateTime.Now.Millisecond}", IsDeleted = false, bID = 5 }); - // 测试模拟异常,全局异常过滤器拦截 - var i = 0; - // var d = 3 / i; - - // 测试 AOP 缓存 var blogArticles = await _blogArticleServices.GetBlogs(); @@ -240,7 +226,6 @@ public void EventBusTry([FromServices] IEventBus _eventBus, string blogId = "1") // GET api/values/5 [HttpGet("{id}")] [AllowAnonymous] - //[TypeFilter(typeof(DeleteSubscriptionCache),Arguments =new object[] { "1"})] [TypeFilter(typeof(UseServiceDIAttribute), Arguments = new object[] { "laozhang" })] public ActionResult Get(int id) { @@ -351,20 +336,6 @@ public async Task TestMutiDBAPI() }; } - /// - /// 测试http请求 WebApiClient Get - /// - /// - [HttpGet("WebApiClientGetAsync")] - [AllowAnonymous] - public async Task WebApiClientGetAsync() - { - int id = 1; - string isbn = "9787544270878"; - var doubanVideoDetail = await _doubanApi.VideoDetailAsync(isbn); - return await _blogApi.DetailNuxtNoPerAsync(id); - } - /// /// 测试Fulent做参数校验 /// diff --git a/Blog.Core.Api/Filter/UseServiceDIAttribute.cs b/Blog.Core.Api/Filter/UseServiceDIAttribute.cs index 867ca0cd..2c487872 100644 --- a/Blog.Core.Api/Filter/UseServiceDIAttribute.cs +++ b/Blog.Core.Api/Filter/UseServiceDIAttribute.cs @@ -1,6 +1,5 @@ using Blog.Core.IServices; using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.Logging; namespace Blog.Core.Filter { @@ -11,7 +10,7 @@ public class UseServiceDIAttribute : ActionFilterAttribute private readonly IBlogArticleServices _blogArticleServices; private readonly string _name; - public UseServiceDIAttribute(ILogger logger, IBlogArticleServices blogArticleServices,string Name="") + public UseServiceDIAttribute(ILogger logger, IBlogArticleServices blogArticleServices, string Name = "") { _logger = logger; _blogArticleServices = blogArticleServices; @@ -21,14 +20,16 @@ public UseServiceDIAttribute(ILogger logger, IBlogArticle public override void OnActionExecuted(ActionExecutedContext context) { - //var dd =await _blogArticleServices.Query(); + var dd = _blogArticleServices.Query().Result; + _logger.LogInformation("测试自定义服务特性"); + Console.WriteLine(_name); base.OnActionExecuted(context); DeleteSubscriptionFiles(); } private void DeleteSubscriptionFiles() { - + } } } diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 61ebc6e7..0b9dfd3f 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -62,6 +62,7 @@ builder.Services.AddCacheSetup(); builder.Services.AddSqlsugarSetup(); builder.Services.AddDbSetup(); +builder.Services.AddInitializationHostServiceSetup(); builder.Host.AddSerilogSetup(); @@ -73,10 +74,12 @@ builder.Services.AddHttpContextSetup(); builder.Services.AddAppTableConfigSetup(builder.Environment); -builder.Services.AddHttpApi(); -builder.Services.AddRedisInitMqSetup(); +builder.Services.AddHttpPollySetup(); builder.Services.AddNacosSetup(builder.Configuration); -builder.Services.AddInitializationHostServiceSetup(); +builder.Services.AddRedisInitMqSetup(); + +builder.Services.AddIpPolicyRateLimitSetup(builder.Configuration); +builder.Services.AddSignalR().AddNewtonsoftJsonProtocol(); builder.Services.AddAuthorizationSetup(); if (Permissions.IsUseIds4 || Permissions.IsUseAuthing) @@ -89,14 +92,11 @@ builder.Services.AddAuthentication_JWTSetup(); } -builder.Services.AddIpPolicyRateLimitSetup(builder.Configuration); -builder.Services.AddSignalR().AddNewtonsoftJsonProtocol(); builder.Services.AddScoped(); builder.Services.Configure(x => x.AllowSynchronousIO = true) .Configure(x => x.AllowSynchronousIO = true); builder.Services.AddSession(); -builder.Services.AddHttpPollySetup(); builder.Services.AddControllers(o => { o.Filters.Add(typeof(GlobalExceptionsFilter)); diff --git a/Blog.Core.Common/Blog.Core.Common.csproj b/Blog.Core.Common/Blog.Core.Common.csproj index ce966e59..7ac6dfb8 100644 --- a/Blog.Core.Common/Blog.Core.Common.csproj +++ b/Blog.Core.Common/Blog.Core.Common.csproj @@ -37,8 +37,6 @@ - - diff --git a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs index e5e9f339..7cb098ff 100644 --- a/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/AppConfigSetup.cs @@ -1,11 +1,7 @@ using Blog.Core.Common; -using Blog.Core.Common.Helper; -using Blog.Core.Common.LogHelper; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using System; -using System.Collections.Generic; using System.Text; using Blog.Core.Common.DB; @@ -16,194 +12,6 @@ namespace Blog.Core.Extensions /// public static class AppConfigSetup { - public static void AddAppConfigSetup(this IServiceCollection services, IHostEnvironment env) - { - if (services == null) throw new ArgumentNullException(nameof(services)); - - if (AppSettings.app(new string[] { "Startup", "AppConfigAlert", "Enabled" }).ObjToBool()) - { - if (env.IsDevelopment()) - { - Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); - Console.OutputEncoding = Encoding.GetEncoding("GB2312"); - } - - Console.WriteLine("************ Blog.Core Config Set *****************"); - - ConsoleHelper.WriteSuccessLine("Current environment: " + Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")); - - // 授权策略方案 - if (Permissions.IsUseIds4) - { - ConsoleHelper.WriteSuccessLine($"Current authorization scheme: " + (Permissions.IsUseIds4 ? "Ids4" : "JWT")); - } - else - { - Console.WriteLine($"Current authorization scheme: " + (Permissions.IsUseIds4 ? "Ids4" : "JWT")); - } - // 缓存AOP - if (!AppSettings.app(new string[] { "AppSettings", "CachingAOP", "Enabled" }).ObjToBool()) - { - Console.WriteLine($"Caching AOP: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"Caching AOP: True"); - } - - // 服务日志AOP - if (!AppSettings.app(new string[] { "AppSettings", "LogAOP", "Enabled" }).ObjToBool()) - { - Console.WriteLine($"Service Log AOP: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"Service Log AOP: True"); - } - - // 开启的中间件日志 - var requestResponseLogOpen = AppSettings.app(new string[] { "Middleware", "RequestResponseLog", "Enabled" }).ObjToBool(); - var ipLogOpen = AppSettings.app(new string[] { "Middleware", "IPLog", "Enabled" }).ObjToBool(); - var recordAccessLogsOpen = AppSettings.app(new string[] { "Middleware", "RecordAccessLogs", "Enabled" }).ObjToBool(); - ConsoleHelper.WriteSuccessLine($"OPEN Log: " + - (requestResponseLogOpen ? "RequestResponseLog √," : "") + - (ipLogOpen ? "IPLog √," : "") + - (recordAccessLogsOpen ? "RecordAccessLogs √," : "") - ); - - // 事务AOP - if (!AppSettings.app(new string[] { "AppSettings", "TranAOP", "Enabled" }).ObjToBool()) - { - Console.WriteLine($"Transaction AOP: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"Transaction AOP: True"); - } - // 审计AOP - if (!AppSettings.app(new string[] { "AppSettings", "UserAuditAOP", "Enabled" }).ObjToBool()) - { - Console.WriteLine($"UserAudit AOP: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"UserAudit AOP: True"); - } - - // 数据库Sql执行AOP - if (!AppSettings.app(new string[] { "AppSettings", "SqlAOP", "OutToLogFile", "Enabled" }).ObjToBool()) - { - Console.WriteLine($"DB Sql AOP To LogFile: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"DB Sql AOP To LogFile: True"); - } - - // Sql执行日志输出到控制台 - if (!AppSettings.app(new string[] { "AppSettings", "SqlAOP", "OutToConsole", "Enabled" }).ObjToBool()) - { - Console.WriteLine($"DB Sql AOP To Console: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"DB Sql AOP To Console: True"); - } - - // SingnalR发送数据 - if (!AppSettings.app(new string[] { "Middleware", "SignalR", "Enabled" }).ObjToBool()) - { - Console.WriteLine($"SignalR send data: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"SignalR send data: True"); - } - - // IP限流 - if (!AppSettings.app("Middleware", "IpRateLimit", "Enabled").ObjToBool()) - { - Console.WriteLine($"IpRateLimiting: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"IpRateLimiting: True"); - } - - // 性能分析 - if (!AppSettings.app("Startup", "MiniProfiler", "Enabled").ObjToBool()) - { - Console.WriteLine($"MiniProfiler: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"MiniProfiler: True"); - } - - // CORS跨域 - if (!AppSettings.app("Startup", "Cors", "EnableAllIPs").ObjToBool()) - { - Console.WriteLine($"EnableAllIPs For CORS: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"EnableAllIPs For CORS: True"); - } - - // redis消息队列 - if (!AppSettings.app("Startup", "RedisMq", "Enabled").ObjToBool()) - { - Console.WriteLine($"Redis MQ: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"Redis MQ: True"); - } - - // RabbitMQ 消息队列 - if (!AppSettings.app("RabbitMQ", "Enabled").ObjToBool()) - { - Console.WriteLine($"RabbitMQ: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"RabbitMQ: True"); - } - - // Consul 注册服务 - if (!AppSettings.app("Middleware", "Consul", "Enabled").ObjToBool()) - { - Console.WriteLine($"Consul service: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"Consul service: True"); - } - - // EventBus 事件总线 - if (!AppSettings.app("EventBus", "Enabled").ObjToBool()) - { - Console.WriteLine($"EventBus: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"EventBus: True"); - } - - // 读写分离 - if (!BaseDBConfig.MainConfig.SlaveConnectionConfigs.AnyNoException()) - { - Console.WriteLine($"Is CQRS: False"); - } - else - { - ConsoleHelper.WriteSuccessLine($"Is CQRS: True"); - } - - Console.WriteLine(); - } - } - public static void AddAppTableConfigSetup(this IServiceCollection services, IHostEnvironment env) { if (services == null) throw new ArgumentNullException(nameof(services)); diff --git a/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs b/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs index b3147ca8..8c1d637b 100644 --- a/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/HttpPollySetup.cs @@ -4,8 +4,6 @@ using Polly; using Polly.Extensions.Http; using Polly.Timeout; -using System; -using System.Net.Http; namespace Blog.Core.Extensions { diff --git a/Blog.Core.Extensions/ServiceExtensions/IpPolicyRateLimitSetup.cs b/Blog.Core.Extensions/ServiceExtensions/IpPolicyRateLimitSetup.cs index 61dabc3e..e75e587d 100644 --- a/Blog.Core.Extensions/ServiceExtensions/IpPolicyRateLimitSetup.cs +++ b/Blog.Core.Extensions/ServiceExtensions/IpPolicyRateLimitSetup.cs @@ -2,7 +2,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using System; namespace Blog.Core.Extensions { diff --git a/Blog.Core.Extensions/ServiceExtensions/WebApiClientSetup.cs b/Blog.Core.Extensions/ServiceExtensions/WebApiClientSetup.cs deleted file mode 100644 index 7cee91a4..00000000 --- a/Blog.Core.Extensions/ServiceExtensions/WebApiClientSetup.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using System; -using WebApiClient.Extensions.DependencyInjection; -using Blog.Core.Common.WebApiClients.HttpApis; - -namespace Blog.Core.Extensions -{ - /// - /// WebApiClientSetup 启动服务 - /// - public static class WebApiClientSetup - { - /// - /// 注册WebApiClient接口 - /// - /// - public static void AddHttpApi(this IServiceCollection services) - { - if (services == null) throw new ArgumentNullException(nameof(services)); - - services.AddHttpApi().ConfigureHttpApiConfig(c => - { - c.HttpHost = new Uri("http://apk.neters.club/"); - c.FormatOptions.DateTimeFormat = "yyyy-MM-dd HH:mm:ss.fff"; - }); - services.AddHttpApi().ConfigureHttpApiConfig(c => - { - c.HttpHost = new Uri("http://api.xiaomafeixiang.com/"); - c.FormatOptions.DateTimeFormat = "yyyy-MM-dd HH:mm:ss.fff"; - }); - } - } -} diff --git a/Blog.Core.IServices/WebApiClients/DoubanApis/DoubanViewModel.cs b/Blog.Core.IServices/WebApiClients/DoubanApis/DoubanViewModel.cs deleted file mode 100644 index 0ddb402e..00000000 --- a/Blog.Core.IServices/WebApiClients/DoubanApis/DoubanViewModel.cs +++ /dev/null @@ -1,96 +0,0 @@ -namespace Blog.Core.Common.WebApiClients.HttpApis -{ - public class Data - { - /// - /// - /// - public string isbn { get; set; } - /// - /// 解忧杂货店 - /// - public string title { get; set; } - /// - /// ナミヤ雑貨店の奇蹟 - /// - public string origintitle { get; set; } - /// - /// - /// - public string subtitle { get; set; } - /// - /// - /// - public string image { get; set; } - /// - /// [日]东野圭吾 - /// - public string author { get; set; } - /// - /// 李盈春 - /// - public string translator { get; set; } - /// - /// 南海出版公司 - /// - public string publisher { get; set; } - /// - /// - /// - public string pubdate { get; set; } - /// - /// <东野圭吾><治愈><温暖><小说><日本><日本文学><東野圭吾><推理> - /// - public string tags { get; set; } - /// - /// - /// - public string kaiben { get; set; } - /// - /// - /// - public string zhizhang { get; set; } - /// - /// 精装 - /// - public string binding { get; set; } - /// - /// - /// - public string taozhuang { get; set; } - /// - /// 新经典文库·东野圭吾作品 - /// - public string series { get; set; } - /// - /// - /// - public string pages { get; set; } - /// - /// 39.50元 - /// - public string price { get; set; } - - public string author_intro { get; set; } - - public string summary { get; set; } - - public string catalog { get; set; } - } - - public class DoubanViewModel - { - /// - /// - /// - public string status { get; set; } - /// - /// - /// - public Data data { get; set; } - /// - /// 获取图书数据成功 - /// - public string msg { get; set; } - } -} diff --git a/Blog.Core.IServices/WebApiClients/DoubanApis/IDoubanApi.cs b/Blog.Core.IServices/WebApiClients/DoubanApis/IDoubanApi.cs deleted file mode 100644 index c2f1d42d..00000000 --- a/Blog.Core.IServices/WebApiClients/DoubanApis/IDoubanApi.cs +++ /dev/null @@ -1,22 +0,0 @@ -using WebApiClient; -using WebApiClient.Attributes; - -namespace Blog.Core.Common.WebApiClients.HttpApis -{ - /// - /// 豆瓣视频管理 - /// - [TraceFilter] - public interface IDoubanApi : IHttpApi - { - /// - /// 获取电影详情 - /// - /// - [HttpGet("api/bookinfo")] - ITask VideoDetailAsync(string isbn); - - } - - -} diff --git a/Blog.Core.IServices/WebApiClients/HttpApis/IBlogApi.cs b/Blog.Core.IServices/WebApiClients/HttpApis/IBlogApi.cs deleted file mode 100644 index 52ff8aa4..00000000 --- a/Blog.Core.IServices/WebApiClients/HttpApis/IBlogApi.cs +++ /dev/null @@ -1,84 +0,0 @@ -using Blog.Core.Model; -using Blog.Core.Model.Models; -using Blog.Core.Model.ViewModels; -using System.ComponentModel.DataAnnotations; -using System.Threading.Tasks; -using WebApiClient; -using WebApiClient.Attributes; - -namespace Blog.Core.Common.WebApiClients.HttpApis -{ - /// - /// 博客管理 - /// - [TraceFilter] - public interface IBlogApi : IHttpApi - { - /// - /// 获取博客列表【无权限】 - /// - /// - /// - /// - /// - /// Success - [HttpGet("api/Blog")] - Task>> BlogAsync(int? id, int page, string bcategory, string key); - - /// - /// 添加博客【无权限】 - /// - /// - /// Success - [HttpPost("api/Blog")] - Task> Blog2Async([JsonContent] BlogArticle body); - - /// - /// 获取博客详情 (Auth) - /// - /// - /// Success - [HttpGet("api/Blog/{id}")] - Task> Blog3Async([Required] int id); - - /// - /// apache jemeter 压力测试 - /// 更新接口 - /// - /// Success - [HttpGet("api/Blog/ApacheTestUpdate")] - Task> ApacheTestUpdateAsync(); - - /// - /// 删除博客 (Auth policies: Permission) - /// - /// - /// Success - [HttpDelete("api/Blog/Delete")] - Task> DeleteAsync(int? id); - - /// - /// 获取详情【无权限】 - /// - /// - /// Success - [HttpGet("api/Blog/DetailNuxtNoPer")] - Task> DetailNuxtNoPerAsync(int? id); - - /// - /// 更新博客信息 (Auth) - /// - /// - /// Success - [HttpPut("api/Blog/Update")] - Task> UpdateAsync([JsonContent] BlogArticle body); - - /// - /// 获取博客测试信息 v2版本 - /// - /// Success - [HttpGet("api/V2/Blog/Blogtest")] - Task> BlogtestAsync(); - - } -} From 7a07b85b80e367dea5b8c06b4c52f507f70e2b9f Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 26 Nov 2023 22:17:09 +0800 Subject: [PATCH 331/382] feat: add rabbitmq demo --- Blog.Core.Api/Blog.Core.xml | 13 +++- Blog.Core.Api/Controllers/ValuesController.cs | 66 +++++++++++++++++++ Blog.Core.Api/appsettings.json | 15 +++-- 3 files changed, 86 insertions(+), 8 deletions(-) diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index 64ee4586..dfe9950a 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -758,7 +758,7 @@ Values控制器 - + ValuesController @@ -770,8 +770,19 @@ + + + + 测试Rabbit消息队列发送 + + + + + 测试Rabbit消息队列订阅 + + 测试SqlSugar二级缓存 diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index c9cd8dfc..1ab4d3c8 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -14,8 +14,11 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; +using RabbitMQ.Client; +using RabbitMQ.Client.Events; using System.ComponentModel.DataAnnotations; using System.Linq.Expressions; +using System.Text; namespace Blog.Core.Controllers { @@ -39,6 +42,7 @@ public class ValuesController : BaseApiController private readonly IPasswordLibServices _passwordLibServices; readonly IBlogArticleServices _blogArticleServices; private readonly IHttpPollyHelper _httpPollyHelper; + private readonly IRabbitMQPersistentConnection _persistentConnection; private readonly SeqOptions _seqOptions; /// @@ -52,6 +56,7 @@ public class ValuesController : BaseApiController /// /// /// + /// /// public ValuesController(IBlogArticleServices blogArticleServices , IMapper mapper @@ -60,6 +65,7 @@ public ValuesController(IBlogArticleServices blogArticleServices , IRoleModulePermissionServices roleModulePermissionServices , IUser user, IPasswordLibServices passwordLibServices , IHttpPollyHelper httpPollyHelper + , IRabbitMQPersistentConnection persistentConnection , IOptions seqOptions) { // 测试 Authorize 和 mapper @@ -77,9 +83,69 @@ public ValuesController(IBlogArticleServices blogArticleServices _blogArticleServices = blogArticleServices; // httpPolly _httpPollyHelper = httpPollyHelper; + _persistentConnection = persistentConnection; _seqOptions = seqOptions.Value; } + /// + /// 测试Rabbit消息队列发送 + /// + [HttpGet] + [AllowAnonymous] + public void TestRabbitMqPublish() + { + if (!_persistentConnection.IsConnected) + { + _persistentConnection.TryConnect(); + } + using var channel = _persistentConnection.CreateModel(); + var message = " < i am a sender! > "; + var body = Encoding.UTF8.GetBytes(message); + var properties = channel.CreateBasicProperties(); + channel.BasicPublish( + exchange: "blogcore", + routingKey: "eventName", + mandatory: true, + basicProperties: properties, + body: body); + } + + /// + /// 测试Rabbit消息队列订阅 + /// + [HttpGet] + [AllowAnonymous] + public void TestRabbitMqSubscribe() + { + if (!_persistentConnection.IsConnected) + { + _persistentConnection.TryConnect(); + } + + string QueueName = "testq"; + using var channel = _persistentConnection.CreateModel(); + var consumer = new AsyncEventingBasicConsumer(channel); + + consumer.Received += new AsyncEventHandler( + async (a, b) => + { + var Headers = b.BasicProperties.Headers; + var msgBody = b.Body.ToArray(); + bool Dealresult = await Dealer(b.Exchange, b.RoutingKey, msgBody, Headers); + if (Dealresult) channel.BasicAck(b.DeliveryTag, false); + else channel.BasicNack(b.DeliveryTag, false, true); + } + ); + channel.BasicConsume(QueueName, false, consumer); + } + + private async Task Dealer(string exchange, string routingKey, byte[] msgBody, IDictionary headers) + { + await Task.CompletedTask; + Console.WriteLine("我是消费者,这里消费了一条信息是:" + Encoding.UTF8.GetString(msgBody)); + return true; + } + [HttpGet] public MessageModel> MyClaims() { diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index ff2c178a..9b599af0 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -23,11 +23,12 @@ "InstanceName": "" //前缀 }, "RabbitMQ": { - "Enabled": false, - "Connection": "118.25.251.13", - "UserName": "", - "Password": "!", - "RetryCount": 3 + "Enabled": true, + "Connection": "101.35.125.157", + "UserName": "admin", + "Password": "admin", + "Port": "5672", + "RetryCount": 2 }, "Kafka": { "Enabled": false, @@ -181,8 +182,8 @@ "Audience": { "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", //不要太短,16位+ "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", //安全。内容就是Secret - "Issuer": "Blog.Core", - "Audience": "wr" + "Issuer": "Blog.Core", //这个值一定要在自己的项目里修改!! + "Audience": "wr" //这个值一定要在自己的项目里修改!! }, "Mongo": { "ConnectionString": "mongodb://nosql.data", From e4eb46a644b7df47813e2a0cbdb4c5ec9991114e Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 26 Nov 2023 22:22:23 +0800 Subject: [PATCH 332/382] Update appsettings.json --- Blog.Core.Api/appsettings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Blog.Core.Api/appsettings.json b/Blog.Core.Api/appsettings.json index 9b599af0..673340be 100644 --- a/Blog.Core.Api/appsettings.json +++ b/Blog.Core.Api/appsettings.json @@ -24,9 +24,9 @@ }, "RabbitMQ": { "Enabled": true, - "Connection": "101.35.125.157", - "UserName": "admin", - "Password": "admin", + "Connection": "101xxxx57", + "UserName": "xxxx", + "Password": "xxxxx", "Port": "5672", "RetryCount": 2 }, From 59e729fa2c97bc26b3ad0d57f5b200a45ae2e18d Mon Sep 17 00:00:00 2001 From: ansonzhang <3143422472@qq.com> Date: Tue, 28 Nov 2023 09:15:24 +0800 Subject: [PATCH 333/382] Update README.md --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2ab20732..b69a5621 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Blog.Core 开箱即用的企业级前后端分离【 .NET Core6.0 Api + Vue 2.x ### 功能与进度 -#### 商业授权付费版下🎁🎁🎁 +#### 企业使用高级版本 - [x] 包含开源版 `框架模块/组件模块` 中的所有功能; - [x] 全部表结构主键底层架构改成`string`类型(默认雪花,支持guid),更方便迁移; @@ -239,10 +239,7 @@ Contributions of any kind are welcome! ## 售后服务与支持 鼓励作者,简单打赏~~ -打赏的时候,备注自己的微信号,加个微信,交个朋友,两天内没回应,QQ私聊我(3143422472); -目前精力有限,主要针对企业级用户答疑,或者购买授权版的个人用户。 - -[赞赏列表](http://apk.neters.club/.doc/Contribution/) +如果你喜欢,就给作者加个鸡腿吧 赞赏码 From c4a6c84d969bd0ef2c4b1a84078ffe6e396d5824 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Fri, 1 Dec 2023 11:18:21 +0800 Subject: [PATCH 334/382] =?UTF-8?q?feat=EF=BC=9A=20:aerial=5Ftramway:=20?= =?UTF-8?q?=20RabbitMQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Controllers/ValuesController.cs | 33 +++----------- .../IRabbitMQPersistentConnection.cs | 25 +++++++++++ .../RabbitMQPersistentConnection.cs | 45 +++++++++++++++++++ 3 files changed, 76 insertions(+), 27 deletions(-) diff --git a/Blog.Core.Api/Controllers/ValuesController.cs b/Blog.Core.Api/Controllers/ValuesController.cs index 1ab4d3c8..9d0c1558 100644 --- a/Blog.Core.Api/Controllers/ValuesController.cs +++ b/Blog.Core.Api/Controllers/ValuesController.cs @@ -92,22 +92,14 @@ public ValuesController(IBlogArticleServices blogArticleServices /// [HttpGet] [AllowAnonymous] - public void TestRabbitMqPublish() + public IActionResult TestRabbitMqPublish() { if (!_persistentConnection.IsConnected) { _persistentConnection.TryConnect(); } - using var channel = _persistentConnection.CreateModel(); - var message = " < i am a sender! > "; - var body = Encoding.UTF8.GetBytes(message); - var properties = channel.CreateBasicProperties(); - channel.BasicPublish( - exchange: "blogcore", - routingKey: "eventName", - mandatory: true, - basicProperties: properties, - body: body); + _persistentConnection.PublishMessage("Hello, RabbitMQ!", exchangeName: "blogcore", routingKey: "myRoutingKey"); + return Ok(); } /// @@ -115,28 +107,15 @@ public void TestRabbitMqPublish() /// [HttpGet] [AllowAnonymous] - public void TestRabbitMqSubscribe() + public IActionResult TestRabbitMqSubscribe() { if (!_persistentConnection.IsConnected) { _persistentConnection.TryConnect(); } - string QueueName = "testq"; - using var channel = _persistentConnection.CreateModel(); - var consumer = new AsyncEventingBasicConsumer(channel); - - consumer.Received += new AsyncEventHandler( - async (a, b) => - { - var Headers = b.BasicProperties.Headers; - var msgBody = b.Body.ToArray(); - bool Dealresult = await Dealer(b.Exchange, b.RoutingKey, msgBody, Headers); - if (Dealresult) channel.BasicAck(b.DeliveryTag, false); - else channel.BasicNack(b.DeliveryTag, false, true); - } - ); - channel.BasicConsume(QueueName, false, consumer); + _persistentConnection.StartConsuming("myQueue"); + return Ok(); } private async Task Dealer(string exchange, string routingKey, byte[] msgBody, IDictionary headers) diff --git a/Blog.Core.EventBus/RabbitMQPersistent/IRabbitMQPersistentConnection.cs b/Blog.Core.EventBus/RabbitMQPersistent/IRabbitMQPersistentConnection.cs index c90b0d4a..bad482ae 100644 --- a/Blog.Core.EventBus/RabbitMQPersistent/IRabbitMQPersistentConnection.cs +++ b/Blog.Core.EventBus/RabbitMQPersistent/IRabbitMQPersistentConnection.cs @@ -10,10 +10,35 @@ namespace Blog.Core.EventBus public interface IRabbitMQPersistentConnection : IDisposable { + /// + /// 是否已经连接 + /// bool IsConnected { get; } + /// + /// 尝试重连 + /// + /// bool TryConnect(); + /// + /// 创建Model + /// + /// IModel CreateModel(); + + /// + /// 发布消息 + /// + /// + /// + /// + void PublishMessage(string message, string exchangeName, string routingKey); + + /// + /// 订阅消息 + /// + /// + void StartConsuming(string queueName); } } diff --git a/Blog.Core.EventBus/RabbitMQPersistent/RabbitMQPersistentConnection.cs b/Blog.Core.EventBus/RabbitMQPersistent/RabbitMQPersistentConnection.cs index be2d8de3..1fa3bd08 100644 --- a/Blog.Core.EventBus/RabbitMQPersistent/RabbitMQPersistentConnection.cs +++ b/Blog.Core.EventBus/RabbitMQPersistent/RabbitMQPersistentConnection.cs @@ -7,6 +7,7 @@ using System; using System.IO; using System.Net.Sockets; +using System.Text; namespace Blog.Core.EventBus { @@ -162,5 +163,49 @@ void OnConnectionShutdown(object sender, ShutdownEventArgs reason) TryConnect(); } + + /// + /// 发布消息 + /// + /// + /// + /// + public void PublishMessage(string message, string exchangeName, string routingKey) + { + using var channel = CreateModel(); + channel.ExchangeDeclare(exchange: exchangeName, type: ExchangeType.Direct, true); + var body = Encoding.UTF8.GetBytes(message); + channel.BasicPublish(exchange: exchangeName, routingKey: routingKey, basicProperties: null, body: body); + } + + /// + /// 订阅消息 + /// + /// + public void StartConsuming(string queueName) + { + using var channel = CreateModel(); + channel.QueueDeclare(queue: queueName, durable: true, exclusive: false, autoDelete: false, arguments: null); + + var consumer = new AsyncEventingBasicConsumer(channel); + consumer.Received += new AsyncEventHandler( + async (a, b) => + { + var Headers = b.BasicProperties.Headers; + var msgBody = b.Body.ToArray(); + var message = Encoding.UTF8.GetString(msgBody); + await Task.CompletedTask; + Console.WriteLine("Received message: {0}", message); + + //bool Dealresult = await Dealer(b.Exchange, b.RoutingKey, msgBody, Headers); + //if (Dealresult) channel.BasicAck(b.DeliveryTag, false); + //else channel.BasicNack(b.DeliveryTag, false, true); + } + ); + + channel.BasicConsume(queue: queueName, autoAck: true, consumer: consumer); + + Console.WriteLine("Consuming messages..."); + } } } From 5f132f03863e1356d22029d5cc4e3840d7826153 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Sun, 3 Dec 2023 18:16:27 +0800 Subject: [PATCH 335/382] =?UTF-8?q?feat=EF=BC=9A=E6=9B=B4=E6=96=B0gateway?= =?UTF-8?q?=EF=BC=8C=E5=8E=BB=E9=99=A4nacos=E7=9B=B8=E5=85=B3=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Gateway/Blog.Core.Gateway.csproj | 8 + Blog.Core.Gateway/Blog.Core.Gateway.xml | 45 ------ .../Extensions/CustomOcelotSetup.cs | 9 +- .../Extensions/CustomSwaggerSetup.cs | 30 ++-- .../Helper/CustomJwtTokenAuthMiddleware.cs | 38 +---- .../Helper/OcelotConfigurationTask.cs | 147 ------------------ Blog.Core.Gateway/Startup.cs | 23 +-- Blog.Core.Gateway/appsettings.gw.json | 68 +------- Blog.Core.Gateway/ocelot.Development.json | 7 +- 9 files changed, 54 insertions(+), 321 deletions(-) delete mode 100644 Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.csproj b/Blog.Core.Gateway/Blog.Core.Gateway.csproj index 8af7a7e3..a21feb4b 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.csproj +++ b/Blog.Core.Gateway/Blog.Core.Gateway.csproj @@ -12,6 +12,14 @@ + + + + + + + + diff --git a/Blog.Core.Gateway/Blog.Core.Gateway.xml b/Blog.Core.Gateway/Blog.Core.Gateway.xml index 41507d7a..34543342 100644 --- a/Blog.Core.Gateway/Blog.Core.Gateway.xml +++ b/Blog.Core.Gateway/Blog.Core.Gateway.xml @@ -51,50 +51,5 @@ │ 作 者:anson zhang └──────────────────────────────────────────────────────────────┘ - - - Nacos配置文件变更事件 - - - - - Nacos 配置文件监听事件 - - - - - - - - - - - - - - - 执行 - - - - - - - 停止 - - - - - - - 配置监听事件 - - - - - 收到配置文件变更 - - - diff --git a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs index f04df2a5..b197c824 100644 --- a/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs +++ b/Blog.Core.Gateway/Extensions/CustomOcelotSetup.cs @@ -16,11 +16,12 @@ public static void AddCustomOcelotSetup(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); - var basePath = AppContext.BaseDirectory; - services.AddAuthentication_JWTSetup(); - services.AddOcelot().AddDelegatingHandler().AddNacosDiscovery().AddPolly(); - //.AddConsul().AddPolly(); + services.AddOcelot() + .AddDelegatingHandler() + //.AddNacosDiscovery() + //.AddConsul() + .AddPolly(); } public static async Task UseCustomOcelotMildd(this IApplicationBuilder app) diff --git a/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs b/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs index 92956ff1..033feeb5 100644 --- a/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs +++ b/Blog.Core.Gateway/Extensions/CustomSwaggerSetup.cs @@ -1,11 +1,16 @@ -using Microsoft.AspNetCore.Builder; +using Blog.Core.Common; +using Blog.Core.Extensions.Middlewares; +using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.Filters; +using Swashbuckle.AspNetCore.SwaggerUI; using System; using System.Collections.Generic; using System.IO; using System.Reflection; +using static Blog.Core.Extensions.CustomApiVersion; namespace Blog.Core.Gateway.Extensions { public static class CustomSwaggerSetup @@ -44,23 +49,30 @@ public static void AddCustomSwaggerSetup(this IServiceCollection services) }); } - public static void UseCustomSwaggerMildd(this IApplicationBuilder app) + public static void UseCustomSwaggerMildd(this IApplicationBuilder app, Func streamHtml) { if (app == null) throw new ArgumentNullException(nameof(app)); var apis = new List { "blog-svc" }; - app.UseMvc().UseSwagger(); - app.UseSwaggerUI(options => + app.UseSwagger(); + app.UseSwaggerUI(c => { - options.SwaggerEndpoint($"/swagger/v1/swagger.json", $"Blog.Core.Gateway-v1"); - + c.SwaggerEndpoint($"/swagger/v1/swagger.json", "gateway"); apis.ForEach(m => { - options.SwaggerEndpoint($"/swagger/apiswg/{m}/swagger.json", m); - options.IndexStream = () => app.GetType().GetTypeInfo().Assembly.GetManifestResourceStream("Blog.Core.ApiGateway.index.html"); + c.SwaggerEndpoint($"/swagger/apiswg/{m}/swagger.json", m); }); - options.RoutePrefix = ""; + + if (streamHtml.Invoke() == null) + { + var msg = "index.html的属性,必须设置为嵌入的资源"; + throw new Exception(msg); + } + + c.IndexStream = streamHtml; + + c.RoutePrefix = ""; }); } diff --git a/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs b/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs index b00db95d..f9120ec0 100644 --- a/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs +++ b/Blog.Core.Gateway/Helper/CustomJwtTokenAuthMiddleware.cs @@ -1,16 +1,9 @@ -using System; -using System.Net; -using System.Linq; -using System.Collections.Generic; -using System.Threading.Tasks; +using System.Net; using System.Text.RegularExpressions; using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Http; using Blog.Core.Common; using Blog.Core.Common.Caches; using Blog.Core.Common.Helper; -using Nacos.V2; -using Newtonsoft.Json.Linq; namespace Blog.Core.AuthHelper { @@ -23,7 +16,6 @@ public class CustomJwtTokenAuthMiddleware { private readonly ICaching _cache; - private readonly INacosNamingService NacosServClient; /// /// 验证方案提供对象 @@ -36,13 +28,11 @@ public class CustomJwtTokenAuthMiddleware private readonly RequestDelegate _next; - public CustomJwtTokenAuthMiddleware(INacosNamingService serv, RequestDelegate next, IAuthenticationSchemeProvider schemes, AppSettings appset,ICaching cache) + public CustomJwtTokenAuthMiddleware(RequestDelegate next, IAuthenticationSchemeProvider schemes, AppSettings appset,ICaching cache) { - NacosServClient = serv; _cache = cache; _next = next; Schemes = schemes; - List Permissions = _cache.Cof_AsyncGetICaching>("Permissions", GetPermitionData, 10).GetAwaiter().GetResult(); } /// @@ -66,7 +56,7 @@ public async Task Invoke(HttpContext httpContext) return; } - List Permissions= await _cache.Cof_AsyncGetICaching>("Permissions", GetPermitionData, 10); + List Permissions= new(); httpContext.Features.Set(new AuthenticationFeature { @@ -126,28 +116,6 @@ public async Task Invoke(HttpContext httpContext) await _next.Invoke(httpContext); } - private async Task> GetPermitionData() - { - try - { - string PermissionServName = AppSettings.GetValue("ApiGateWay:PermissionServName"); - string PermissionServGroup = AppSettings.GetValue("ApiGateWay:PermissionServGroup"); - string PermissionServUrl = AppSettings.GetValue("ApiGateWay:PermissionServUrl"); - - string requestdata = await NacosServClient.Cof_NaoceGet(PermissionServName, PermissionServGroup, PermissionServUrl); - if (string.IsNullOrEmpty(requestdata)) return null; - JToken perJt = JToken.Parse(requestdata); - if(perJt["response"]!=null) return perJt["response"].ToObject>(); - return perJt["data"].ToObject>(); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - - return null; - } - /// /// 返回相应 /// diff --git a/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs b/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs deleted file mode 100644 index a95df86e..00000000 --- a/Blog.Core.Gateway/Helper/OcelotConfigurationTask.cs +++ /dev/null @@ -1,147 +0,0 @@ - -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Nacos.V2; -using System; -using System.Threading; -using System.Threading.Tasks; -using Blog.Core.Common.Helper; -using Ocelot.Configuration.Repository; -using Ocelot.Configuration.Creator; -using Newtonsoft.Json.Linq; -using Ocelot.Configuration.File; -using Blog.Core.Common; - -namespace ApiGateway.Helper -{ - /// - /// Nacos配置文件变更事件 - /// - public class OcelotConfigurationTask : BackgroundService - { - private readonly INacosConfigService _configClient; - private readonly INacosNamingService _servClient; - /// - /// Nacos 配置文件监听事件 - /// - private OcelotConfigListener nacosConfigListener = new OcelotConfigListener(); - private AppConfigListener AppConfigListener = new AppConfigListener(); - private string OcelotConfig = ""; - private string OcelotConfigGroup = ""; - private string AppConfig = ""; - private string AppConfigGroup = ""; - - - /// - /// - /// - /// - /// - /// - /// - /// - public OcelotConfigurationTask(INacosNamingService serv, INacosConfigService configClient, IServiceProvider serviceProvider, IInternalConfigurationRepository _internalConfigurationRepo, IInternalConfigurationCreator _internalConfigurationCreator) - { - _configClient = configClient; - _servClient = serv; - nacosConfigListener.internalConfigurationRepo = _internalConfigurationRepo; - nacosConfigListener.internalConfigurationCreator = _internalConfigurationCreator; - OcelotConfig = AppSettings.GetValue("ApiGateWay:OcelotConfig"); - OcelotConfigGroup = AppSettings.GetValue("ApiGateWay:OcelotConfigGroup"); - AppConfig = AppSettings.GetValue("ApiGateWay:AppConfig"); - AppConfigGroup = AppSettings.GetValue("ApiGateWay:AppConfigGroup"); - - - - - string OcelotCfg = configClient.GetConfig(OcelotConfig, OcelotConfigGroup, 10000).GetAwaiter().GetResult(); - nacosConfigListener.ReceiveConfigInfo(OcelotCfg); - string AppCfg= configClient.GetConfig(AppConfig, AppConfigGroup, 10000).GetAwaiter().GetResult(); - AppConfigListener.ReceiveConfigInfo(AppCfg); - //string sss = serv.Cof_NaoceGet("fld-cloud-datax", "DEFAULT_GROUP", "/api/base/deviceList?limit=10&page=1").GetAwaiter().GetResult(); - } - - - - /// - /// 执行 - /// - /// - /// - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - try - { - // Add listener OcelotConfig.json" - await _configClient.AddListener(OcelotConfig, OcelotConfigGroup, nacosConfigListener); - await _configClient.AddListener(AppConfig, AppConfigGroup, AppConfigListener); - } - catch (Exception) - { - } - } - - /// - /// 停止 - /// - /// - /// - public override async Task StopAsync(CancellationToken cancellationToken) - { - // Remove listener - await _configClient.RemoveListener(OcelotConfig, OcelotConfigGroup, nacosConfigListener); - await _configClient.RemoveListener(AppConfig, AppConfigGroup, AppConfigListener); - await base.StopAsync(cancellationToken); - } - } - - /// - /// 配置监听事件 - /// - public class OcelotConfigListener : IListener - { - public IInternalConfigurationRepository internalConfigurationRepo { get; set; } - public IInternalConfigurationCreator internalConfigurationCreator { get; set; } - /// - /// 收到配置文件变更 - /// - /// - public void ReceiveConfigInfo(string configInfo) - { - Task.Run(async () => - { - FileConfiguration filecfg = JToken.Parse(configInfo).ToObject(); - var internalConfiguration = await internalConfigurationCreator.Create(filecfg); - if (!internalConfiguration.IsError) - { - - internalConfigurationRepo.AddOrReplace(internalConfiguration.Data); - } - }); - - - } - } - - public class AppConfigListener : IListener - { - public void ReceiveConfigInfo(string configInfo) - { - var _configurationBuilder = new ConfigurationBuilder(); - _configurationBuilder.Sources.Clear(); - var buffer = System.Text.Encoding.Default.GetBytes(configInfo); - System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer); - _configurationBuilder.AddJsonStream(ms); - var configuration = _configurationBuilder.Build(); - ms.Dispose(); - - - - // 读取配置 将nacos配置中心读取到的配置 替换掉.net core 内存中的 configuration - // 当前监听到配置配置 应该重新断开 重连 刷新等一些中间件操作 - // 比如 mq redis 等其他跟配置相关的中间件 - JsonConfigSettings.Configuration = configuration; - AppSettings.Configuration = configuration; - } - } -} diff --git a/Blog.Core.Gateway/Startup.cs b/Blog.Core.Gateway/Startup.cs index 552b4ef1..1a37cc9f 100644 --- a/Blog.Core.Gateway/Startup.cs +++ b/Blog.Core.Gateway/Startup.cs @@ -1,14 +1,10 @@ using Blog.Core.AuthHelper; using Blog.Core.Common; +using Blog.Core.Common.Caches; using Blog.Core.Extensions; using Blog.Core.Gateway.Extensions; using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Nacos.V2.DependencyInjection; +using System.Reflection; namespace Blog.Core.AdminMvc { @@ -34,17 +30,10 @@ public void ConfigureServices(IServiceCollection services) { services.AddSingleton(new AppSettings(Configuration)); - services.AddAuthentication_JWTSetup(); - services.AddAuthentication() .AddScheme(Permissions.GWName, _ => { }); - services.AddNacosV2Config(Configuration, null, "nacosConfig"); - services.AddNacosV2Naming(Configuration, null, "nacos"); - services.AddHostedService(); - - services.AddCustomSwaggerSetup(); services.AddControllers(); @@ -53,6 +42,10 @@ public void ConfigureServices(IServiceCollection services) services.AddCorsSetup(); + services.AddMemoryCache(); + services.AddDistributedMemoryCache(); + services.AddSingleton(); + services.AddCustomOcelotSetup(); } @@ -69,7 +62,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) app.UseAuthentication(); app.UseAuthorization(); - app.UseCustomSwaggerMildd(); + app.UseCustomSwaggerMildd(() => Assembly.GetExecutingAssembly().GetManifestResourceStream("Blog.Core.Gateway.index.html")); app.UseCors(AppSettings.app(new string[] { "Startup", "Cors", "PolicyName" })); @@ -79,7 +72,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) }); app.UseMiddleware(); - + app.UseCustomOcelotMildd().Wait(); } } diff --git a/Blog.Core.Gateway/appsettings.gw.json b/Blog.Core.Gateway/appsettings.gw.json index 33b99ee8..93e64636 100644 --- a/Blog.Core.Gateway/appsettings.gw.json +++ b/Blog.Core.Gateway/appsettings.gw.json @@ -1,6 +1,5 @@ { "Logging": { - "IncludeScopes": false, "Debug": { "LogLevel": { "Default": "Warning" @@ -21,6 +20,11 @@ "IPs": "http://127.0.0.1:2364,http://localhost:2364" } }, + "Redis": { + "Enable": false, + "ConnectionString": "127.0.0.1:6379", + "InstanceName": "" //前缀 + }, "Audience": { "Secret": "sdfsdfsrty45634kkhllghtdgdfss345t678fs", "SecretFile": "C:\\my-file\\blog.core.audience.secret.txt", @@ -31,73 +35,17 @@ { "url": "/" }, { "url": "/illagal/****" }, { "url": "/api3/****" }, - { "url": "/baseapi/swagger.json" } + { "url": "/baseapi/swagger.json" }, + { "url": "/swagger/v1/swagger.json" }, + { "url": "/swagger/apiswg/blog-svc/swagger.json" } ], "BlackList": [ { "url": "/favicon.ico" } ], - "ApiGateWay": { - "OcelotConfig": "OcelotConfig.json", - "OcelotConfigGroup": "DEFAULT_GROUP", - "AppConfig": "****.****.Gateway.json", - "AppConfigGroup": "DEFAULT_GROUP", - "PermissionServName": "****.****.Api", - "PermissionServGroup": "DEFAULT_GROUP", - "PermissionServUrl": "/api/Permission/GetPermissionlist" - }, "Influxdb": { "Endpoint": "http://*******:9328", "uid": "root", "pwd": "*****", "dbname": "mndata" - }, - "nacos": { - "ServerAddresses": [ "http://******:8848/" ], - "ServiceName": "*****.****.Gateway", - "DefaultTimeOut": 15000, - "Namespace": "****", - "ListenInterval": 1000, - "GroupName": "DEFAULT_GROUP", - "ClusterName": "DEFAULT", - "Ip": "", - "PreferredNetworks": "", - "Port": 8090, - "Weight": 100, - "RegisterEnabled": true, - "InstanceEnabled": true, - "Ephemeral": true, - "Secure": false, - "AccessKey": "", - "SecretKey": "", - "UserName": "****", - "Password": "*****", - "NamingUseRpc": true, - "NamingLoadCacheAtStart": "", - "LBStrategy": "WeightRandom", - "Metadata": { - "aa": "bb", - "cc": "dd", - "endpoint33": "******:8090" - } - }, - "nacosConfig": { - "ServiceName": "*****.*****.Gateway", - "Optional": false, - "DataId": "options1", - "Tenant": "******", - "Group": "DEFAULT_GROUP", - "Namespace": "*****", - "ServerAddresses": [ "http://******:8848/" ], - "UserName": "****", - "Password": "*****", - "AccessKey": "", - "SecretKey": "", - "EndPoint": "", - "ConfigUseRpc": true, - "ConfigFilterAssemblies": [ "apigateway" ], - "ConfigFilterExtInfo": "{\"JsonPaths\":[\"ConnectionStrings.Default\"],\"Other\":\"xxxxxx\"}" } - - - } diff --git a/Blog.Core.Gateway/ocelot.Development.json b/Blog.Core.Gateway/ocelot.Development.json index 6af5171b..589a5a6e 100644 --- a/Blog.Core.Gateway/ocelot.Development.json +++ b/Blog.Core.Gateway/ocelot.Development.json @@ -49,11 +49,6 @@ ], "GlobalConfiguration": { - "BaseUrl": "http://localhost:9000", - "ServiceDiscoveryProvider": { - "Host": "localhost", - "Port": 8500, - "Type": "Consul" - } + "BaseUrl": "http://localhost:9000" } } \ No newline at end of file From 5e4987d2f6921da920c29841d24cea5977f5a465 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Wed, 13 Dec 2023 11:04:04 +0800 Subject: [PATCH 336/382] feat: :100: change ClaimTypes.Role --- .../Controllers/PermissionController.cs | 17 +++++++++++++++-- Blog.Core.Api/index.html | 4 ++-- .../Authorizations/Policys/PermissionHandler.cs | 14 ++++---------- Blog.Core.Model/Logs/AuditSqlLog.cs | 2 +- Blog.Core.Model/Logs/GlobalErrorLog.cs | 2 +- Blog.Core.Model/Logs/GlobalInformationLog.cs | 2 +- Blog.Core.Model/Logs/GlobalWarningLog.cs | 2 +- Blog.Core.Model/Models/SplitDemo.cs | 2 +- 8 files changed, 26 insertions(+), 19 deletions(-) diff --git a/Blog.Core.Api/Controllers/PermissionController.cs b/Blog.Core.Api/Controllers/PermissionController.cs index a3429163..7f412a04 100644 --- a/Blog.Core.Api/Controllers/PermissionController.cs +++ b/Blog.Core.Api/Controllers/PermissionController.cs @@ -11,6 +11,7 @@ using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using System.Security.Claims; namespace Blog.Core.Controllers { @@ -349,8 +350,14 @@ public async Task> GetNavigationBar(long uid) where item.Type == "sub" select item.Value).FirstOrDefault().ObjToLong(); roleIds = (from item in _httpContext.HttpContext.User.Claims - where item.Type == "role" + where item.Type == ClaimTypes.Role select item.Value.ObjToLong()).ToList(); + if (!roleIds.Any()) + { + roleIds = (from item in _httpContext.HttpContext.User.Claims + where item.Type == "role" + select item.Value.ObjToLong()).ToList(); + } } else { @@ -440,8 +447,14 @@ public async Task>> GetNavigationBarPro(long where item.Type == "sub" select item.Value).FirstOrDefault().ObjToLong(); roleIds = (from item in _httpContext.HttpContext.User.Claims - where item.Type == "role" + where item.Type == ClaimTypes.Role select item.Value.ObjToLong()).ToList(); + if (!roleIds.Any()) + { + roleIds = (from item in _httpContext.HttpContext.User.Claims + where item.Type == "role" + select item.Value.ObjToLong()).ToList(); + } } else { diff --git a/Blog.Core.Api/index.html b/Blog.Core.Api/index.html index eca0b424..99b4caa4 100644 --- a/Blog.Core.Api/index.html +++ b/Blog.Core.Api/index.html @@ -111,9 +111,9 @@