From 84d1f63c5b970a339bef7d197dbe81156f60ab5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=86=9B?= <510423039@qq.com> Date: Sun, 24 Apr 2022 22:55:51 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=B7=BB=E5=8A=A0Freesql=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E9=9B=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aspnet-core/Directory.Build.props | 1 + aspnet-core/Lion.AbpPro.sln | 7 +++++++ .../AbpProHttpApiHostModule.cs | 3 ++- .../AbpProApplicationModule.cs | 4 +++- .../Lion.AbpPro.Application.csproj | 1 + .../Settings/SettingAppService.cs | 5 +---- .../AbpProFreeSqlModule.cs | 19 +++++++++++++++++++ .../FreeSqlBasicRepository.cs | 17 +++++++++++++++++ .../Lion.AbpPro.FreeSqlReppsitory.csproj | 17 +++++++++++++++++ .../Lion.AbpPro.TestBase.csproj | 8 ++++++++ .../Lion.AbpPro.TestBase/appsettings.json | 5 +++++ 11 files changed, 81 insertions(+), 6 deletions(-) create mode 100644 aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs create mode 100644 aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/FreeSqlBasicRepository.cs create mode 100644 aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/Lion.AbpPro.FreeSqlReppsitory.csproj create mode 100644 aspnet-core/services/test/Lion.AbpPro.TestBase/appsettings.json diff --git a/aspnet-core/Directory.Build.props b/aspnet-core/Directory.Build.props index 2bea56c1..1c765496 100644 --- a/aspnet-core/Directory.Build.props +++ b/aspnet-core/Directory.Build.props @@ -30,6 +30,7 @@ 17.0.0 2.6.1 6.0.11 + 3.0.100 \ No newline at end of file diff --git a/aspnet-core/Lion.AbpPro.sln b/aspnet-core/Lion.AbpPro.sln index 863b2195..8b63f2a5 100644 --- a/aspnet-core/Lion.AbpPro.sln +++ b/aspnet-core/Lion.AbpPro.sln @@ -168,6 +168,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.FileManagement. EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lion.AbpPro.FileManagement.HttpApi.Host", "modules\FileManagement\host\Lion.AbpPro.FileManagement.HttpApi.Host\Lion.AbpPro.FileManagement.HttpApi.Host.csproj", "{831CD22A-AC6E-4515-AB24-8C96B34C717F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lion.AbpPro.FreeSqlReppsitory", "services\src\Lion.AbpPro.FreeSqlReppsitory\Lion.AbpPro.FreeSqlReppsitory.csproj", "{27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -398,6 +400,10 @@ Global {831CD22A-AC6E-4515-AB24-8C96B34C717F}.Debug|Any CPU.Build.0 = Debug|Any CPU {831CD22A-AC6E-4515-AB24-8C96B34C717F}.Release|Any CPU.ActiveCfg = Release|Any CPU {831CD22A-AC6E-4515-AB24-8C96B34C717F}.Release|Any CPU.Build.0 = Release|Any CPU + {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -477,6 +483,7 @@ Global {9201AEE4-2E6D-4A48-805F-3F3C6878BC0B} = {40BF21CB-4520-45A6-A588-5FFB95BAC87C} {78589964-923E-4803-9B74-183487C3ED0F} = {40BF21CB-4520-45A6-A588-5FFB95BAC87C} {831CD22A-AC6E-4515-AB24-8C96B34C717F} = {C188A1F4-9601-42E5-9A0A-B282E13EAC41} + {27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F} diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs index c0f19e29..72cf7124 100644 --- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs +++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs @@ -167,7 +167,8 @@ namespace Lion.AbpPro //QueuePollInterval = TimeSpan.Zero, //UseRecommendedIsolationLevel = true, //DisableGlobalLocks = true - JobExpirationCheckInterval = TimeSpan.FromMinutes(30) + JobExpirationCheckInterval = TimeSpan.FromMinutes(30), + TablesPrefix = "Hangfire_" })); var delaysInSeconds = new int[] { 10, 60, 60 * 3 }; // 重试时间间隔 var Attempts = 3; // 重试次数 diff --git a/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs b/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs index 4c26c6c5..a3616b37 100644 --- a/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs +++ b/aspnet-core/services/src/Lion.AbpPro.Application/AbpProApplicationModule.cs @@ -1,5 +1,6 @@ using Lion.AbpPro.DataDictionaryManagement; using Lion.AbpPro.FileManagement; +using Lion.AbpPro.FreeSqlReppsitory; using Lion.AbpPro.NotificationManagement; using Volo.Abp.Account; using Volo.Abp.AuditLogging; @@ -25,7 +26,8 @@ namespace Lion.AbpPro typeof(AbpAuditLoggingDomainModule), typeof(DataDictionaryManagementApplicationModule), typeof(NotificationManagementApplicationModule), - typeof(FileManagementApplicationModule) + typeof(FileManagementApplicationModule), + typeof(AbpProFreeSqlModule) )] public class AbpProApplicationModule : AbpModule { diff --git a/aspnet-core/services/src/Lion.AbpPro.Application/Lion.AbpPro.Application.csproj b/aspnet-core/services/src/Lion.AbpPro.Application/Lion.AbpPro.Application.csproj index e983e5b8..d75bfccb 100644 --- a/aspnet-core/services/src/Lion.AbpPro.Application/Lion.AbpPro.Application.csproj +++ b/aspnet-core/services/src/Lion.AbpPro.Application/Lion.AbpPro.Application.csproj @@ -12,6 +12,7 @@ + diff --git a/aspnet-core/services/src/Lion.AbpPro.Application/Settings/SettingAppService.cs b/aspnet-core/services/src/Lion.AbpPro.Application/Settings/SettingAppService.cs index e9fe92ab..8ebb3937 100644 --- a/aspnet-core/services/src/Lion.AbpPro.Application/Settings/SettingAppService.cs +++ b/aspnet-core/services/src/Lion.AbpPro.Application/Settings/SettingAppService.cs @@ -17,18 +17,15 @@ namespace Lion.AbpPro.Settings { private readonly ISettingDefinitionManager _settingDefinitionManager; private readonly ISettingManager _settingManager; - private readonly IStringLocalizer _localizer; private readonly IStringLocalizerFactory _factory; public SettingAppService( ISettingDefinitionManager settingDefinitionManager, ISettingManager settingManager, - IStringLocalizer localizer, IStringLocalizerFactory factory) { _settingDefinitionManager = settingDefinitionManager; _settingManager = settingManager; - _localizer = localizer; _factory = factory; } @@ -43,7 +40,7 @@ namespace Lion.AbpPro.Settings new SettingOutput { Group = s.Key, - GroupDisplayName = _localizer[s.Key] + GroupDisplayName = _factory.CreateDefaultOrNull()[s.Key] }).ToList(); foreach (var item in settingOutput) diff --git a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs new file mode 100644 index 00000000..aeb1f7c3 --- /dev/null +++ b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/AbpProFreeSqlModule.cs @@ -0,0 +1,19 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; + +namespace Lion.AbpPro.FreeSqlReppsitory; + +public class AbpProFreeSqlModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + var connectionString = configuration.GetConnectionString("Default"); + var freeSql = new FreeSql.FreeSqlBuilder() + .UseConnectionString(FreeSql.DataType.MySql, connectionString) + .Build(); + + context.Services.AddSingleton(freeSql); + } +} \ No newline at end of file diff --git a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/FreeSqlBasicRepository.cs b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/FreeSqlBasicRepository.cs new file mode 100644 index 00000000..2ed04944 --- /dev/null +++ b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/FreeSqlBasicRepository.cs @@ -0,0 +1,17 @@ +using Volo.Abp.Domain.Services; +using Volo.Abp.Threading; + +namespace Lion.AbpPro.FreeSqlReppsitory; + +public abstract class FreeSqlBasicRepository : DomainService +{ + protected IFreeSql FreeSql => LazyServiceProvider.LazyGetRequiredService(); + + private ICancellationTokenProvider CancellationTokenProvider => + LazyServiceProvider.LazyGetService(NullCancellationTokenProvider.Instance); + + protected virtual CancellationToken GetCancellationToken(CancellationToken preferredValue = default) + { + return CancellationTokenProvider.FallbackToProvider(preferredValue); + } +} \ No newline at end of file diff --git a/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/Lion.AbpPro.FreeSqlReppsitory.csproj b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/Lion.AbpPro.FreeSqlReppsitory.csproj new file mode 100644 index 00000000..2d1e217d --- /dev/null +++ b/aspnet-core/services/src/Lion.AbpPro.FreeSqlReppsitory/Lion.AbpPro.FreeSqlReppsitory.csproj @@ -0,0 +1,17 @@ + + + + net6.0 + enable + + + + + + + + + + + + diff --git a/aspnet-core/services/test/Lion.AbpPro.TestBase/Lion.AbpPro.TestBase.csproj b/aspnet-core/services/test/Lion.AbpPro.TestBase/Lion.AbpPro.TestBase.csproj index e3750eac..594fb957 100644 --- a/aspnet-core/services/test/Lion.AbpPro.TestBase/Lion.AbpPro.TestBase.csproj +++ b/aspnet-core/services/test/Lion.AbpPro.TestBase/Lion.AbpPro.TestBase.csproj @@ -24,4 +24,12 @@ + + + true + PreserveNewest + PreserveNewest + + + diff --git a/aspnet-core/services/test/Lion.AbpPro.TestBase/appsettings.json b/aspnet-core/services/test/Lion.AbpPro.TestBase/appsettings.json new file mode 100644 index 00000000..738a223d --- /dev/null +++ b/aspnet-core/services/test/Lion.AbpPro.TestBase/appsettings.json @@ -0,0 +1,5 @@ +{ + "ConnectionStrings": { + "Default": "Data Source=localhost;Database=LionAbpProDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true" + } +} \ No newline at end of file