From 39d472bdc80a871313f9c2ff10919e754f1f78bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Thu, 8 Feb 2024 17:32:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90db=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DbConnOptions.cs | 10 +-- .../SqlSugarDbContext.cs | 64 +++++------------- .../Consts/UserConst.cs | 5 ++ .../TenantService.cs | 2 +- .../TenantManagementExtensions.cs | 14 ++-- ...YiFrameworkTenantManagementDomainModule.cs | 5 +- .../YiMultiTenantConnectionStringResolver.cs} | 4 +- Yi.Abp.Net8/src/Yi.Abp.Web/Program.cs | 4 -- Yi.Abp.Net8/src/Yi.Abp.Web/yi-test.db | Bin 409600 -> 0 bytes Yi.Abp.Net8/src/Yi.Abp.Web/yi-test2.db | Bin 409600 -> 409600 bytes 10 files changed, 41 insertions(+), 67 deletions(-) rename Yi.Abp.Net8/{src/Yi.Abp.Web/DefaultConnectionStringResolver2.cs => module/tenant-management/Yi.Framework.TenantManagement.Domain/YiMultiTenantConnectionStringResolver.cs} (97%) delete mode 100644 Yi.Abp.Net8/src/Yi.Abp.Web/yi-test.db diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore.Abstractions/DbConnOptions.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore.Abstractions/DbConnOptions.cs index e8044cdf..8ad3c5d4 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore.Abstractions/DbConnOptions.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore.Abstractions/DbConnOptions.cs @@ -63,8 +63,8 @@ namespace Yi.Framework.SqlSugarCore.Abstractions /// public List? SaasMultiTenancy { get; set; } - public static string MasterTenantDbDefaultName = "Master"; - public static string TenantDbDefaultName = "Default"; + public static string MasterTenantName = "Master"; + public static string DefaultTenantName = "Default"; /// /// 获取默认数据库 @@ -72,7 +72,7 @@ namespace Yi.Framework.SqlSugarCore.Abstractions /// public SaasMultiTenancyOptions GetDefaultSaasMultiTenancy() { - return new SaasMultiTenancyOptions { Name = TenantDbDefaultName, Url = Url }; + return new SaasMultiTenancyOptions { Name = DefaultTenantName, Url = Url }; } /// @@ -88,13 +88,13 @@ namespace Yi.Framework.SqlSugarCore.Abstractions if (string.IsNullOrEmpty(MasterSaasMultiTenancyUrl)) { - return new SaasMultiTenancyOptions { Name = MasterTenantDbDefaultName, Url = Url }; + return new SaasMultiTenancyOptions { Name = MasterTenantName, Url = Url }; } else { return new SaasMultiTenancyOptions() { - Name = MasterTenantDbDefaultName, + Name = MasterTenantName, Url = MasterSaasMultiTenancyUrl }; } diff --git a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs index 6b57fcd6..a2b5016c 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.SqlSugarCore/SqlSugarDbContext.cs @@ -1,4 +1,5 @@ using System.Reflection; +using System.Security.Policy; using System.Text; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; @@ -24,7 +25,7 @@ namespace Yi.Framework.SqlSugarCore /// public ISqlSugarClient SqlSugarClient { get; private set; } public ICurrentUser CurrentUser => LazyServiceProvider.GetRequiredService(); - private readonly string MasterTenantDbDefaultName = DbConnOptions.MasterTenantDbDefaultName; + private readonly string MasterTenantDbDefaultName = DbConnOptions.MasterTenantName; private IAbpLazyServiceProvider LazyServiceProvider { get; } private IGuidGenerator GuidGenerator => LazyServiceProvider.LazyGetRequiredService(); @@ -54,67 +55,36 @@ namespace Yi.Framework.SqlSugarCore connectionCreator.DataExecuted = DataExecuted; connectionCreator.OnLogExecuting = OnLogExecuting; connectionCreator.OnLogExecuted = OnLogExecuted; - SqlSugarClient = new SqlSugarClient(connectionCreator.Build()); - var connectionStringResolver = LazyServiceProvider.LazyGetRequiredService(); - var connectionStr = connectionStringResolver.ResolveAsync().Result; - var changedDb = DatabaseChange(this, connectionStr); - SqlSugarClient = changedDb.SqlSugarClient; + var currentConnection = GetCurrentConnectionString(); + SqlSugarClient = new SqlSugarClient(connectionCreator.Build(action: options => + { + options.ConnectionString = currentConnection; + })); } /// /// db切换多库支持 /// - /// - /// /// - protected virtual SqlSugarDbContext DatabaseChange(SqlSugarDbContext dbContext, string connectionString) + protected virtual string GetCurrentConnectionString() { - string configId = string.Empty; + var connectionStringResolver = LazyServiceProvider.LazyGetRequiredService(); + var connectionString = connectionStringResolver.ResolveAsync().Result; + //没有检测到使用多租户功能,默认使用默认库即可 if (string.IsNullOrWhiteSpace(connectionString)) { - connectionString = dbContext.Options.Url; - configId = CurrentTenant.Name; + Volo.Abp.Check.NotNull(Options.Url, "租户默认库Defalut未找到"); + connectionString = Options.Url; } - - var dbOption = dbContext.Options; - var db = dbContext.SqlSugarClient.AsTenant(); - - //主库的Db切换,当操作的是租户表的时候 + //如果当前租户是主库,单独使用主要库 if (CurrentTenant.Name == MasterTenantDbDefaultName) { - //直接切换 - configId = MasterTenantDbDefaultName; - var conStrOrNull = dbOption.GetMasterSaasMultiTenancy(); - Volo.Abp.Check.NotNull(conStrOrNull, "租户主库未找到"); + var conStrOrNull = Options.GetMasterSaasMultiTenancy(); + Volo.Abp.Check.NotNull(conStrOrNull, "租户主库Master未找到"); connectionString = conStrOrNull.Url; } - - //租户Db的动态切换 - //二级缓存 - var changed = false; - if (!db.IsAnyConnection(configId)) - { - var config = _dbConnectionCreator.Build(options => - { - options.DbType = dbOption.DbType!.Value; - options.ConfigId = configId;//设置库的唯一标识 - options.IsAutoCloseConnection = true; - options.ConnectionString = connectionString; - }); - //添加一个db到当前上下文 (Add部分不线上下文不会共享) - db.AddConnection(config); - changed = true; - } - var currentDb = db.GetConnection(configId) as ISqlSugarClient; - //设置Aop - if (changed) - { - _dbConnectionCreator.SetDbAop(currentDb); - } - dbContext.SetSqlSugarClient(currentDb); - - return dbContext; + return connectionString!; } diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Consts/UserConst.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Consts/UserConst.cs index 8e226350..be437ab0 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Consts/UserConst.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Consts/UserConst.cs @@ -20,10 +20,15 @@ namespace Yi.Framework.Rbac.Domain.Shared.Consts public const string No_Permission = "登录禁用!该用户分配无任何权限,无意义登录!"; public const string No_Role = "登录禁用!该用户分配无任何角色,无意义登录!"; + //子租户管理员 public const string Admin = "cc"; public const string AdminRolesCode = "admin"; public const string AdminPermissionCode = "*:*:*"; + //租户管理员 + public const string TenantAdmin = "ccadmin"; + public const string TenantAdminPermissionCode = "*"; + public const string DefaultRoleCode = "default"; public const string CommonRoleName = "common"; } diff --git a/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Application/TenantService.cs b/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Application/TenantService.cs index 87739eac..d08b7b98 100644 --- a/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Application/TenantService.cs +++ b/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Application/TenantService.cs @@ -110,7 +110,7 @@ namespace Yi.Framework.TenantManagement.Application [HttpPut("tenant/init/{id}")] public async Task InitAsync([FromRoute]Guid id) { - using (CurrentTenant.Change(id,"test")) + using (CurrentTenant.Change(id)) { await CodeFirst(this.LazyServiceProvider); await _dataSeeder.SeedAsync(id); diff --git a/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/TenantManagementExtensions.cs b/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/TenantManagementExtensions.cs index ec37f404..dbe47fa1 100644 --- a/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/TenantManagementExtensions.cs +++ b/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/TenantManagementExtensions.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Volo.Abp.MultiTenancy; +using Volo.Abp.MultiTenancy; using Yi.Framework.SqlSugarCore.Abstractions; namespace Yi.Framework.TenantManagement.Domain @@ -12,7 +7,12 @@ namespace Yi.Framework.TenantManagement.Domain { public static IDisposable ChangeMaster(this ICurrentTenant currentTenant) { - return currentTenant.Change(null, DbConnOptions.MasterTenantDbDefaultName); + return currentTenant.Change(null, DbConnOptions.MasterTenantName); + } + + public static IDisposable ChangeDefalut(this ICurrentTenant currentTenant) + { + return currentTenant.Change(null, DbConnOptions.DefaultTenantName); } } } diff --git a/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/YiFrameworkTenantManagementDomainModule.cs b/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/YiFrameworkTenantManagementDomainModule.cs index 6912b097..87301d07 100644 --- a/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/YiFrameworkTenantManagementDomainModule.cs +++ b/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/YiFrameworkTenantManagementDomainModule.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; +using Volo.Abp.Data; using Volo.Abp.Domain; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; @@ -15,7 +16,9 @@ namespace Yi.Framework.TenantManagement.Domain public override void ConfigureServices(ServiceConfigurationContext context) { var services = context.Services; - services.Replace(new ServiceDescriptor(typeof(ITenantStore),typeof(SqlSugarTenantStore), ServiceLifetime.Transient)); + services.Replace(new ServiceDescriptor(typeof(ITenantStore), typeof(SqlSugarTenantStore), ServiceLifetime.Transient)); + + services.Replace(new ServiceDescriptor(typeof(IConnectionStringResolver), typeof(YiMultiTenantConnectionStringResolver), ServiceLifetime.Transient)); } } } diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/DefaultConnectionStringResolver2.cs b/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/YiMultiTenantConnectionStringResolver.cs similarity index 97% rename from Yi.Abp.Net8/src/Yi.Abp.Web/DefaultConnectionStringResolver2.cs rename to Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/YiMultiTenantConnectionStringResolver.cs index a285d577..30b21076 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/DefaultConnectionStringResolver2.cs +++ b/Yi.Abp.Net8/module/tenant-management/Yi.Framework.TenantManagement.Domain/YiMultiTenantConnectionStringResolver.cs @@ -9,12 +9,12 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.MultiTenancy; [Dependency(ReplaceServices = true)] -public class MultiTenantConnectionStringResolver2 : DefaultConnectionStringResolver +public class YiMultiTenantConnectionStringResolver : DefaultConnectionStringResolver { private readonly ICurrentTenant _currentTenant; private readonly IServiceProvider _serviceProvider; - public MultiTenantConnectionStringResolver2( + public YiMultiTenantConnectionStringResolver( IOptionsMonitor options, ICurrentTenant currentTenant, IServiceProvider serviceProvider) diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/Program.cs b/Yi.Abp.Net8/src/Yi.Abp.Web/Program.cs index f8c9f615..0feeab19 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/Program.cs +++ b/Yi.Abp.Net8/src/Yi.Abp.Web/Program.cs @@ -1,8 +1,5 @@ -using Microsoft.Extensions.DependencyInjection.Extensions; using Serilog; using Serilog.Events; -using Volo.Abp.Data; -using Volo.Abp.MultiTenancy; using Yi.Abp.Web; //创建日志,可使用{SourceContext}记录 @@ -26,7 +23,6 @@ try builder.Host.UseAutofac(); builder.Host.UseSerilog(); await builder.Services.AddApplicationAsync(); - builder.Services.Replace(new ServiceDescriptor(typeof(IConnectionStringResolver), typeof(MultiTenantConnectionStringResolver2),ServiceLifetime.Transient)); var app = builder.Build(); await app.InitializeApplicationAsync(); await app.RunAsync(); diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/yi-test.db b/Yi.Abp.Net8/src/Yi.Abp.Web/yi-test.db deleted file mode 100644 index 7d73f4001638e9615506003ff673d535487fa0d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409600 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 C-OF46 diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/yi-test2.db b/Yi.Abp.Net8/src/Yi.Abp.Web/yi-test2.db index c88deb025d68fdf9908d34fa8be6b4dc15417cfd..deac314af5bea216b980be2e18cbdb88947c674d 100644 GIT binary patch literal 409600 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 axEQLBdscm=SSMSC-KOij!&dVsR{tLYWcbMd literal 409600 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 K>Z9gUto{#DOtvQg