From a798f365299bc3d237f565a92822155791403c88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Sat, 26 Oct 2024 15:15:09 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E7=A7=9F?= =?UTF-8?q?=E6=88=B7=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Abp.Net8/Yi.Abp.sln | 7 +++++++ .../TenantConst.cs | 13 ------------- ....Framework.TenantManagement.Domain.Shared.csproj | 13 ------------- ...YiFrameworkTenantManagementDomainSharedModule.cs | 11 ----------- 4 files changed, 7 insertions(+), 37 deletions(-) delete mode 100644 Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/TenantConst.cs delete mode 100644 Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/Yi.Framework.TenantManagement.Domain.Shared.csproj delete mode 100644 Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/YiFrameworkTenantManagementDomainSharedModule.cs diff --git a/Yi.Abp.Net8/Yi.Abp.sln b/Yi.Abp.Net8/Yi.Abp.sln index f22d7108..addc9a0a 100644 --- a/Yi.Abp.Net8/Yi.Abp.sln +++ b/Yi.Abp.Net8/Yi.Abp.sln @@ -170,6 +170,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Abp.Tool.HttpApi.Client" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.SettingManagement.Application", "module\setting-management\Yi.Framework.SettingManagement.Application\Yi.Framework.SettingManagement.Application.csproj", "{2A31D7CB-BDCC-4253-BA73-273B6B5E1956}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.TenantManagement.Domain.Shared", "module\tenant-management\Yi.Framework.TenantManagement.Domain.Shared\Yi.Framework.TenantManagement.Domain.Shared.csproj", "{0078E120-53F5-43F4-A96E-52FA16B8B246}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -428,6 +430,10 @@ Global {2A31D7CB-BDCC-4253-BA73-273B6B5E1956}.Debug|Any CPU.Build.0 = Debug|Any CPU {2A31D7CB-BDCC-4253-BA73-273B6B5E1956}.Release|Any CPU.ActiveCfg = Release|Any CPU {2A31D7CB-BDCC-4253-BA73-273B6B5E1956}.Release|Any CPU.Build.0 = Release|Any CPU + {0078E120-53F5-43F4-A96E-52FA16B8B246}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0078E120-53F5-43F4-A96E-52FA16B8B246}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0078E120-53F5-43F4-A96E-52FA16B8B246}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0078E120-53F5-43F4-A96E-52FA16B8B246}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -503,6 +509,7 @@ Global {4AE84CDE-2A47-4D68-8E93-86193F72E4E8} = {084CBEEC-5D37-4716-B9C7-D80D6960DFF4} {C8F97775-D903-4365-A4FF-3DA97E318CD2} = {084CBEEC-5D37-4716-B9C7-D80D6960DFF4} {2A31D7CB-BDCC-4253-BA73-273B6B5E1956} = {8C68059E-F3B1-4D28-A1C9-A5830F53E5D3} + {0078E120-53F5-43F4-A96E-52FA16B8B246} = {499A8C71-7892-42D0-A77E-48756E1EFF16} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {23D6FBC9-C970-4641-BC1E-2AEA59F51C18} diff --git a/Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/TenantConst.cs b/Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/TenantConst.cs deleted file mode 100644 index dfd192b7..00000000 --- a/Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/TenantConst.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.TenantManagement.Domain.Shared -{ - public class TenantConst - { - public static string TenantDbDefaultName = "Master"; - } -} diff --git a/Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/Yi.Framework.TenantManagement.Domain.Shared.csproj b/Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/Yi.Framework.TenantManagement.Domain.Shared.csproj deleted file mode 100644 index 5ce88f6d..00000000 --- a/Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/Yi.Framework.TenantManagement.Domain.Shared.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - diff --git a/Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/YiFrameworkTenantManagementDomainSharedModule.cs b/Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/YiFrameworkTenantManagementDomainSharedModule.cs deleted file mode 100644 index d0784856..00000000 --- a/Yi.Abp.Net8/module/tenant-management/YiFrameworkTenantManagementDomain.Shared/YiFrameworkTenantManagementDomainSharedModule.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement; - -namespace YiFrameworkTenantManagementDomain.Shared -{ - [DependsOn(typeof(AbpTenantManagementDomainSharedModule))] - public class YiFrameworkTenantManagementDomainSharedModule : AbpModule - { - - } -} From 7598c8319ffc6ad4b39b0c0af71970cc160b0485 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Sat, 26 Oct 2024 15:17:19 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E5=8E=BB=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Abp.Net8/Yi.Abp.sln | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Yi.Abp.Net8/Yi.Abp.sln b/Yi.Abp.Net8/Yi.Abp.sln index addc9a0a..f22d7108 100644 --- a/Yi.Abp.Net8/Yi.Abp.sln +++ b/Yi.Abp.Net8/Yi.Abp.sln @@ -170,8 +170,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Abp.Tool.HttpApi.Client" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.SettingManagement.Application", "module\setting-management\Yi.Framework.SettingManagement.Application\Yi.Framework.SettingManagement.Application.csproj", "{2A31D7CB-BDCC-4253-BA73-273B6B5E1956}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.TenantManagement.Domain.Shared", "module\tenant-management\Yi.Framework.TenantManagement.Domain.Shared\Yi.Framework.TenantManagement.Domain.Shared.csproj", "{0078E120-53F5-43F4-A96E-52FA16B8B246}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -430,10 +428,6 @@ Global {2A31D7CB-BDCC-4253-BA73-273B6B5E1956}.Debug|Any CPU.Build.0 = Debug|Any CPU {2A31D7CB-BDCC-4253-BA73-273B6B5E1956}.Release|Any CPU.ActiveCfg = Release|Any CPU {2A31D7CB-BDCC-4253-BA73-273B6B5E1956}.Release|Any CPU.Build.0 = Release|Any CPU - {0078E120-53F5-43F4-A96E-52FA16B8B246}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0078E120-53F5-43F4-A96E-52FA16B8B246}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0078E120-53F5-43F4-A96E-52FA16B8B246}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0078E120-53F5-43F4-A96E-52FA16B8B246}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -509,7 +503,6 @@ Global {4AE84CDE-2A47-4D68-8E93-86193F72E4E8} = {084CBEEC-5D37-4716-B9C7-D80D6960DFF4} {C8F97775-D903-4365-A4FF-3DA97E318CD2} = {084CBEEC-5D37-4716-B9C7-D80D6960DFF4} {2A31D7CB-BDCC-4253-BA73-273B6B5E1956} = {8C68059E-F3B1-4D28-A1C9-A5830F53E5D3} - {0078E120-53F5-43F4-A96E-52FA16B8B246} = {499A8C71-7892-42D0-A77E-48756E1EFF16} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {23D6FBC9-C970-4641-BC1E-2AEA59F51C18} From f6cbe899c69b1b2a34135c0bb3b5441ab175f475 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Sat, 26 Oct 2024 15:40:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DNewtonsoftJson?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Json/DatetimeJsonConverter.cs | 27 +++++++++++++++++++ .../Json/EnumStringJsonConverter.cs | 18 +++++++++++++ Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs | 21 ++++++++++----- 3 files changed, 60 insertions(+), 6 deletions(-) create mode 100644 Yi.Abp.Net8/framework/Yi.Framework.Core/Json/DatetimeJsonConverter.cs create mode 100644 Yi.Abp.Net8/framework/Yi.Framework.Core/Json/EnumStringJsonConverter.cs diff --git a/Yi.Abp.Net8/framework/Yi.Framework.Core/Json/DatetimeJsonConverter.cs b/Yi.Abp.Net8/framework/Yi.Framework.Core/Json/DatetimeJsonConverter.cs new file mode 100644 index 00000000..e4732065 --- /dev/null +++ b/Yi.Abp.Net8/framework/Yi.Framework.Core/Json/DatetimeJsonConverter.cs @@ -0,0 +1,27 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace Yi.Framework.Core.Json; + +public class DatetimeJsonConverter : JsonConverter +{ + private string _format; + public DatetimeJsonConverter(string format="yyyy-MM-dd HH:mm:ss") + { + _format = format; + } + + public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + if(reader.TokenType==JsonTokenType.String) + { + if (DateTime.TryParse(reader.GetString(), out DateTime dateTime)) return dateTime; + } + return reader.GetDateTime(); + } + + public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options) + { + writer.WriteStringValue(value.ToString(_format)); + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/framework/Yi.Framework.Core/Json/EnumStringJsonConverter.cs b/Yi.Abp.Net8/framework/Yi.Framework.Core/Json/EnumStringJsonConverter.cs new file mode 100644 index 00000000..9e42a57b --- /dev/null +++ b/Yi.Abp.Net8/framework/Yi.Framework.Core/Json/EnumStringJsonConverter.cs @@ -0,0 +1,18 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace Yi.Framework.Core.Json; + +public class EnumStringJsonConverter : JsonConverter +{ + public override Enum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + var enumString = reader.GetString(); + return (Enum)Enum.Parse(typeToConvert, enumString); + } + + public override void Write(Utf8JsonWriter writer, Enum value, JsonSerializerOptions options) + { + writer.WriteStringValue(value.ToString()); + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs b/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs index 2b1a2ebf..5cafc749 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs +++ b/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs @@ -33,6 +33,7 @@ using Yi.Framework.Bbs.Application; using Yi.Framework.Bbs.Application.Extensions; using Yi.Framework.ChatHub.Application; using Yi.Framework.CodeGen.Application; +using Yi.Framework.Core.Json; using Yi.Framework.Rbac.Application; using Yi.Framework.Rbac.Domain.Authorization; using Yi.Framework.Rbac.Domain.Shared.Consts; @@ -99,12 +100,20 @@ namespace Yi.Abp.Web options.ConventionalControllers.ConventionalControllerSettings.ForEach(x => x.RootPath = "api/app"); }); - //设置api格式 - service.AddControllers().AddNewtonsoftJson(options => - { - options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; - options.SerializerSettings.Converters.Add(new StringEnumConverter()); - }); + //【NewtonsoftJson严重问题!!!!!逆天】设置api格式,留给后人铭记 + // service.AddControllers().AddNewtonsoftJson(options => + // { + // options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; + // options.SerializerSettings.Converters.Add(new StringEnumConverter()); + // }); + + //请使用微软的 + service.AddControllers().AddJsonOptions(options => + { + options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter()); + options.JsonSerializerOptions.Converters.Add(new EnumStringJsonConverter()); + } + ); //设置缓存不要过期,默认滑动20分钟 Configure(cacheOptions =>