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/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 - { - - } -} diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs b/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs index 915a391d..78695525 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.DigitalCollectibles.Application; using Yi.Framework.Rbac.Application; using Yi.Framework.Rbac.Domain.Authorization; @@ -101,12 +102,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 =>