Browse Source

新增全局过滤器命名

zhontai 2 years ago
parent
commit
c977ec73cd

+ 1 - 1
src/platform/ZhonTai.Admin/Core/Attributes/TransactionAttribute.cs

@@ -24,6 +24,6 @@ public class TransactionAttribute : Attribute
     /// <summary>
     /// <summary>
     /// 数据库键
     /// 数据库键
     /// </summary>
     /// </summary>
-    public string DbKey { get; set; } = DbKeys.MasterDbKey;
+    public string DbKey { get; set; } = DbKeys.MasterDb;
 
 
 }
 }

+ 2 - 2
src/platform/ZhonTai.Admin/Core/Consts/CacheKeys.cs

@@ -13,13 +13,13 @@ public static partial class CacheKeys
     /// 验证码 admin:captcha:guid
     /// 验证码 admin:captcha:guid
     /// </summary>
     /// </summary>
     [Description("验证码")]
     [Description("验证码")]
-    public const string CaptchaKey = "admin:captcha:{0}";
+    public const string Captcha = "admin:captcha:{0}";
 
 
     /// <summary>
     /// <summary>
     /// 密码加密 admin:password:encrypt:guid
     /// 密码加密 admin:password:encrypt:guid
     /// </summary>
     /// </summary>
     [Description("密码加密")]
     [Description("密码加密")]
-    public const string PassWordEncryptKey = "admin:password:encrypt:{0}";
+    public const string PassWordEncrypt = "admin:password:encrypt:{0}";
 
 
     /// <summary>
     /// <summary>
     /// 用户权限 admin:user:permissions:用户主键
     /// 用户权限 admin:user:permissions:用户主键

+ 3 - 3
src/platform/ZhonTai.Admin/Core/Consts/DbKeys.cs

@@ -11,17 +11,17 @@ public static partial class DbKeys
     /// 主库
     /// 主库
     /// </summary>
     /// </summary>
     [Description("主库")]
     [Description("主库")]
-    public const string MasterDbKey = "masterdb";
+    public const string MasterDb = "masterdb";
 
 
     /// <summary>
     /// <summary>
     /// 多库
     /// 多库
     /// </summary>
     /// </summary>
     [Description("多库")]
     [Description("多库")]
-    public const string MultiDbKey = "multidb_";
+    public const string MultiDb = "multidb_";
 
 
     /// <summary>
     /// <summary>
     /// 租户数据库
     /// 租户数据库
     /// </summary>
     /// </summary>
     [Description("租户数据库")]
     [Description("租户数据库")]
-    public const string TenantDbKey = "tenantdb_";
+    public const string TenantDb = "tenantdb_";
 }
 }

+ 21 - 0
src/platform/ZhonTai.Admin/Core/Consts/FilterNames.cs

@@ -0,0 +1,21 @@
+using System.ComponentModel;
+
+namespace ZhonTai.Admin.Core.Consts;
+
+/// <summary>
+/// 全局过滤器名
+/// </summary>
+public static partial class FilterNames
+{
+    /// <summary>
+    /// 软删除
+    /// </summary>
+    [Description("软删除")]
+    public const string SoftDelete = "SoftDelete";
+
+    /// <summary>
+    /// 租户
+    /// </summary>
+    [Description("租户")]
+    public const string Tenant = "Tenant";
+}

+ 19 - 16
src/platform/ZhonTai.Admin/Core/Db/DBServiceCollectionExtensions.cs

@@ -32,7 +32,7 @@ public static class DBServiceCollectionExtensions
         var appConfig = ConfigHelper.Get<AppConfig>("appconfig", env.EnvironmentName);
         var appConfig = ConfigHelper.Get<AppConfig>("appconfig", env.EnvironmentName);
 
 
         //注册主库
         //注册主库
-        freeSqlCloud.Register(DbKeys.MasterDbKey, () =>
+        freeSqlCloud.Register(DbKeys.MasterDb, () =>
         {
         {
             //创建数据库
             //创建数据库
             if (dbConfig.CreateDb)
             if (dbConfig.CreateDb)
@@ -40,22 +40,20 @@ public static class DBServiceCollectionExtensions
                 DbHelper.CreateDatabaseAsync(dbConfig).Wait();
                 DbHelper.CreateDatabaseAsync(dbConfig).Wait();
             }
             }
 
 
-            #region FreeSql
-
             var providerType = dbConfig.ProviderType.NotNull() ? Type.GetType(dbConfig.ProviderType) : null;
             var providerType = dbConfig.ProviderType.NotNull() ? Type.GetType(dbConfig.ProviderType) : null;
             var freeSqlBuilder = new FreeSqlBuilder()
             var freeSqlBuilder = new FreeSqlBuilder()
                     .UseConnectionString(dbConfig.Type, dbConfig.ConnectionString, providerType)
                     .UseConnectionString(dbConfig.Type, dbConfig.ConnectionString, providerType)
                     .UseAutoSyncStructure(false)
                     .UseAutoSyncStructure(false)
                     .UseLazyLoading(false)
                     .UseLazyLoading(false)
                     .UseNoneCommandParameter(true);
                     .UseNoneCommandParameter(true);
-            
+
             if (dbConfig.SlaveList?.Length > 0)
             if (dbConfig.SlaveList?.Length > 0)
             {
             {
                 var slaveList = dbConfig.SlaveList.Select(a => a.ConnectionString).ToArray();
                 var slaveList = dbConfig.SlaveList.Select(a => a.ConnectionString).ToArray();
                 var slaveWeightList = dbConfig.SlaveList.Select(a => a.Weight).ToArray();
                 var slaveWeightList = dbConfig.SlaveList.Select(a => a.Weight).ToArray();
                 freeSqlBuilder.UseSlave(slaveList).UseSlaveWeight(slaveWeightList);
                 freeSqlBuilder.UseSlave(slaveList).UseSlaveWeight(slaveWeightList);
             }
             }
-            
+
             hostAppOptions?.ConfigureFreeSqlBuilder?.Invoke(freeSqlBuilder);
             hostAppOptions?.ConfigureFreeSqlBuilder?.Invoke(freeSqlBuilder);
 
 
             #region 监听所有命令
             #region 监听所有命令
@@ -72,12 +70,26 @@ public static class DBServiceCollectionExtensions
             #endregion 监听所有命令
             #endregion 监听所有命令
 
 
             var fsql = freeSqlBuilder.Build();
             var fsql = freeSqlBuilder.Build();
-            fsql.GlobalFilter.Apply<IEntitySoftDelete>("SoftDelete", a => a.IsDeleted == false);
+            var user = services.BuildServiceProvider().GetService<IUser>();
+
+            #region 全局过滤器
+
+            //软删除过滤器
+            fsql.GlobalFilter.Apply<ISoftDelete>(FilterNames.SoftDelete, a => a.IsDeleted == false);
+
+            //租户过滤器
+            if (appConfig.Tenant)
+            {
+                fsql.GlobalFilter.Apply<ITenant>(FilterNames.Tenant, a => a.TenantId == user.TenantId);
+            }
+
+            #endregion
 
 
             //配置实体
             //配置实体
             DbHelper.ConfigEntity(fsql, appConfig);
             DbHelper.ConfigEntity(fsql, appConfig);
 
 
             hostAppOptions?.ConfigureFreeSql?.Invoke(fsql);
             hostAppOptions?.ConfigureFreeSql?.Invoke(fsql);
+
             #region 初始化数据库
             #region 初始化数据库
 
 
             //同步结构
             //同步结构
@@ -86,8 +98,6 @@ public static class DBServiceCollectionExtensions
                 DbHelper.SyncStructure(fsql, dbConfig: dbConfig, appConfig: appConfig);
                 DbHelper.SyncStructure(fsql, dbConfig: dbConfig, appConfig: appConfig);
             }
             }
 
 
-            var user = services.BuildServiceProvider().GetService<IUser>();
-
             #region 审计数据
             #region 审计数据
 
 
             //计算服务器时间
             //计算服务器时间
@@ -139,13 +149,6 @@ public static class DBServiceCollectionExtensions
 
 
             #endregion 监听Curd操作
             #endregion 监听Curd操作
 
 
-            if (appConfig.Tenant)
-            {
-                fsql.GlobalFilter.Apply<ITenant>("Tenant", a => a.TenantId == user.TenantId);
-            }
-
-            #endregion FreeSql
-
             return fsql;
             return fsql;
         });
         });
 
 
@@ -154,7 +157,7 @@ public static class DBServiceCollectionExtensions
         {
         {
             foreach (var db in dbConfig.Dbs)
             foreach (var db in dbConfig.Dbs)
             {
             {
-                freeSqlCloud.Register(DbKeys.MultiDbKey + db.Key, () =>
+                freeSqlCloud.Register(DbKeys.MultiDb + db.Key, () =>
                 {
                 {
                     #region FreeSql
                     #region FreeSql
 
 

+ 7 - 7
src/platform/ZhonTai.Admin/Core/Db/FreeSqlCloudExtesions.cs

@@ -44,7 +44,7 @@ public static class FreeSqlCloudExtesions
         #endregion 监听所有命令
         #endregion 监听所有命令
 
 
         var fsql = freeSqlBuilder.Build();
         var fsql = freeSqlBuilder.Build();
-        fsql.GlobalFilter.Apply<IEntitySoftDelete>("SoftDelete", a => a.IsDeleted == false);
+        fsql.GlobalFilter.Apply<ISoftDelete>(FilterNames.SoftDelete, a => a.IsDeleted == false);
 
 
         //配置实体
         //配置实体
         DbHelper.ConfigEntity(fsql, appConfig);
         DbHelper.ConfigEntity(fsql, appConfig);
@@ -88,7 +88,7 @@ public static class FreeSqlCloudExtesions
 
 
         if (appConfig.Tenant)
         if (appConfig.Tenant)
         {
         {
-            fsql.GlobalFilter.Apply<ITenant>("Tenant", a => a.TenantId == user.TenantId);
+            fsql.GlobalFilter.Apply<ITenant>(FilterNames.Tenant, a => a.TenantId == user.TenantId);
         }
         }
 
 
         return fsql;
         return fsql;
@@ -108,13 +108,13 @@ public static class FreeSqlCloudExtesions
         var tenantId = user.TenantId;
         var tenantId = user.TenantId;
         if (appConfig.Tenant && tenantId.HasValue)
         if (appConfig.Tenant && tenantId.HasValue)
         {
         {
-            var dbKey = user.DbKey.NotNull() ? user.DbKey : (DbKeys.TenantDbKey + tenantId);
+            var dbKey = user.DbKey.NotNull() ? user.DbKey : (DbKeys.TenantDb + tenantId);
             var exists = cloud.ExistsRegister(dbKey);
             var exists = cloud.ExistsRegister(dbKey);
             if (!exists)
             if (!exists)
             {
             {
                 var dbConfig = serviceProvider.GetRequiredService<DbConfig>();
                 var dbConfig = serviceProvider.GetRequiredService<DbConfig>();
                 var tenantRepository = serviceProvider.GetRequiredService<ITenantRepository>();
                 var tenantRepository = serviceProvider.GetRequiredService<ITenantRepository>();
-                var tenant = tenantRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(tenantId).ToOne<CreateFreeSqlTenantDto>();
+                var tenant = tenantRepository.Select.DisableGlobalFilter(FilterNames.Tenant).WhereDynamic(tenantId).ToOne<CreateFreeSqlTenantDto>();
                 cloud.Register(dbKey, () => CreateFreeSql(user, appConfig, dbConfig, tenant));
                 cloud.Register(dbKey, () => CreateFreeSql(user, appConfig, dbConfig, tenant));
             }
             }
 
 
@@ -122,7 +122,7 @@ public static class FreeSqlCloudExtesions
         }
         }
         else
         else
         {
         {
-            var masterDb = cloud.Use(DbKeys.MasterDbKey);
+            var masterDb = cloud.Use(DbKeys.MasterDb);
             return masterDb;
             return masterDb;
         }
         }
     }
     }
@@ -142,8 +142,8 @@ public static class FreeSqlCloudExtesions
         }
         }
 
 
         var tenantRepository = serviceProvider.GetRequiredService<ITenantRepository>();
         var tenantRepository = serviceProvider.GetRequiredService<ITenantRepository>();
-        var tenant = tenantRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(tenantId).ToOne<CreateFreeSqlTenantDto>();
-        var dbKey = tenant.DbKey.NotNull() ? tenant.DbKey : (DbKeys.TenantDbKey + tenantId);
+        var tenant = tenantRepository.Select.DisableGlobalFilter(FilterNames.Tenant).WhereDynamic(tenantId).ToOne<CreateFreeSqlTenantDto>();
+        var dbKey = tenant.DbKey.NotNull() ? tenant.DbKey : (DbKeys.TenantDb + tenantId);
         var exists = cloud.ExistsRegister(dbKey);
         var exists = cloud.ExistsRegister(dbKey);
         
         
         if (!exists)
         if (!exists)

+ 2 - 2
src/platform/ZhonTai.Admin/Core/Db/Transaction/UnitOfWorkManagerCloud.cs

@@ -33,12 +33,12 @@ public class UnitOfWorkManagerCloud
         {
         {
             if (_appConfig.Tenant && _user.TenantId.HasValue)
             if (_appConfig.Tenant && _user.TenantId.HasValue)
             {
             {
-                dbKey = _user.DbKey.NotNull() ? _user.DbKey : (DbKeys.TenantDbKey + _user.TenantId);
+                dbKey = _user.DbKey.NotNull() ? _user.DbKey : (DbKeys.TenantDb + _user.TenantId);
                 _cloud.GetCurrentDb(_serviceProvider);
                 _cloud.GetCurrentDb(_serviceProvider);
             }
             }
             else
             else
             {
             {
-                dbKey = DbKeys.MasterDbKey;
+                dbKey = DbKeys.MasterDb;
             }
             }
         }
         }
         if (_managers.TryGetValue(dbKey, out var uowm) == false)
         if (_managers.TryGetValue(dbKey, out var uowm) == false)

+ 1 - 1
src/platform/ZhonTai.Admin/Core/Entities/EntityFull.cs

@@ -8,7 +8,7 @@ namespace ZhonTai.Admin.Core.Entities;
 /// <summary>
 /// <summary>
 /// 实体完整类
 /// 实体完整类
 /// </summary>
 /// </summary>
-public class EntityFull<TKey> : Entity<TKey>, IEntityVersion, IEntitySoftDelete, IEntityAdd<TKey>, IEntityUpdate<TKey> where TKey : struct
+public class EntityFull<TKey> : Entity<TKey>, IVersion, ISoftDelete, IEntityAdd<TKey>, IEntityUpdate<TKey> where TKey : struct
 {
 {
     /// <summary>
     /// <summary>
     /// 版本
     /// 版本

+ 1 - 1
src/platform/ZhonTai.Admin/Core/Entities/EntitySoftDelete.cs

@@ -6,7 +6,7 @@ namespace ZhonTai.Admin.Core.Entities;
 /// <summary>
 /// <summary>
 /// 实体软删除
 /// 实体软删除
 /// </summary>
 /// </summary>
-public class EntitySoftDelete<TKey> : Entity<TKey>, IEntitySoftDelete
+public class EntitySoftDelete<TKey> : Entity<TKey>, ISoftDelete
 {
 {
     /// <summary>
     /// <summary>
     /// 是否删除
     /// 是否删除

+ 1 - 1
src/platform/ZhonTai.Admin/Core/Entities/EntityVersion.cs

@@ -6,7 +6,7 @@ namespace ZhonTai.Admin.Core.Entities;
 /// <summary>
 /// <summary>
 /// 实体版本
 /// 实体版本
 /// </summary>
 /// </summary>
-public class EntityVersion<TKey> : Entity<TKey>, IEntityVersion
+public class EntityVersion<TKey> : Entity<TKey>, IVersion
 {
 {
     /// <summary>
     /// <summary>
     /// 版本
     /// 版本

+ 1 - 1
src/platform/ZhonTai.Admin/Core/Entities/IEntitySoftDelete.cs → src/platform/ZhonTai.Admin/Core/Entities/ISoftDelete.cs

@@ -1,6 +1,6 @@
 namespace ZhonTai.Admin.Core.Entities;
 namespace ZhonTai.Admin.Core.Entities;
 
 
-public interface IEntitySoftDelete
+public interface ISoftDelete
 {
 {
     /// <summary>
     /// <summary>
     /// 是否删除
     /// 是否删除

+ 2 - 2
src/platform/ZhonTai.Admin/Core/Entities/IEntityVersion.cs → src/platform/ZhonTai.Admin/Core/Entities/IVersion.cs

@@ -1,9 +1,9 @@
 namespace ZhonTai.Admin.Core.Entities;
 namespace ZhonTai.Admin.Core.Entities;
 
 
-public interface IEntityVersion
+public interface IVersion
 {
 {
     /// <summary>
     /// <summary>
-    /// 版本
+    /// 数据版本
     /// </summary>
     /// </summary>
     long Version { get; set; }
     long Version { get; set; }
 }
 }

+ 1 - 1
src/platform/ZhonTai.Admin/Core/HostApp.cs

@@ -179,7 +179,7 @@ public class HostApp
         services.AddSingleton(freeSqlCloud);
         services.AddSingleton(freeSqlCloud);
         services.AddScoped<UnitOfWorkManagerCloud>();
         services.AddScoped<UnitOfWorkManagerCloud>();
         services.AddAdminDb(freeSqlCloud, env, _hostAppOptions);
         services.AddAdminDb(freeSqlCloud, env, _hostAppOptions);
-        services.AddSingleton(provider => freeSqlCloud.Use(DbKeys.MasterDbKey));
+        services.AddSingleton(provider => freeSqlCloud.Use(DbKeys.MasterDb));
 
 
 
 
         //上传配置
         //上传配置

+ 8 - 8
src/platform/ZhonTai.Admin/Domain/Role/DataScope.cs

@@ -11,22 +11,22 @@ public enum DataScope
     All = 1,
     All = 1,
 
 
     /// <summary>
     /// <summary>
-    /// 本部门
+    /// 本部门和下级部门
     /// </summary>
     /// </summary>
-    Dept = 2,
+    DeptWithChild = 2,
 
 
     /// <summary>
     /// <summary>
-    /// 本部门和下级部门
+    /// 本部门
     /// </summary>
     /// </summary>
-    DeptWithChild = 3,
+    Dept = 3,
 
 
     /// <summary>
     /// <summary>
-    /// 指定部门
+    /// 本人数据
     /// </summary>
     /// </summary>
-    Custom = 4,
+    Self = 4,
 
 
     /// <summary>
     /// <summary>
-    /// 本人数据
+    /// 指定部门
     /// </summary>
     /// </summary>
-    Self = 5
+    Custom = 5
 }
 }

+ 8 - 8
src/platform/ZhonTai.Admin/Services/Auth/AuthService.cs

@@ -104,7 +104,7 @@ public class AuthService : BaseService, IAuthService, IDynamicApi
     {
     {
         //写入Redis
         //写入Redis
         var guid = Guid.NewGuid().ToString("N");
         var guid = Guid.NewGuid().ToString("N");
-        var key = string.Format(CacheKeys.PassWordEncryptKey, guid);
+        var key = string.Format(CacheKeys.PassWordEncrypt, guid);
         var encyptKey = StringHelper.GenerateRandom(8);
         var encyptKey = StringHelper.GenerateRandom(8);
         await Cache.SetAsync(key, encyptKey, TimeSpan.FromMinutes(5));
         await Cache.SetAsync(key, encyptKey, TimeSpan.FromMinutes(5));
         var data = new { key = guid, encyptKey };
         var data = new { key = guid, encyptKey };
@@ -135,7 +135,7 @@ public class AuthService : BaseService, IAuthService, IDynamicApi
         if (User.TenantAdmin)
         if (User.TenantAdmin)
         {
         {
             var cloud = ServiceProvider.GetRequiredService<FreeSqlCloud>();
             var cloud = ServiceProvider.GetRequiredService<FreeSqlCloud>();
-            db = cloud.Use(DbKeys.MasterDbKey);
+            db = cloud.Use(DbKeys.MasterDb);
         }
         }
        
        
         var permissionRepository = db.GetRepositoryBase<PermissionEntity>();
         var permissionRepository = db.GetRepositoryBase<PermissionEntity>();
@@ -210,7 +210,7 @@ public class AuthService : BaseService, IAuthService, IDynamicApi
         if (_appConfig.VarifyCode.Enable)
         if (_appConfig.VarifyCode.Enable)
         {
         {
             input.Captcha.DeleteCache = true;
             input.Captcha.DeleteCache = true;
-            input.Captcha.CaptchaKey = CacheKeys.CaptchaKey;
+            input.Captcha.CaptchaKey = CacheKeys.Captcha;
             var isOk = await _captchaTool.CheckAsync(input.Captcha);
             var isOk = await _captchaTool.CheckAsync(input.Captcha);
             if (!isOk)
             if (!isOk)
             {
             {
@@ -224,7 +224,7 @@ public class AuthService : BaseService, IAuthService, IDynamicApi
 
 
         if (input.PasswordKey.NotNull())
         if (input.PasswordKey.NotNull())
         {
         {
-            var passwordEncryptKey = string.Format(CacheKeys.PassWordEncryptKey, input.PasswordKey);
+            var passwordEncryptKey = string.Format(CacheKeys.PassWordEncrypt, input.PasswordKey);
             var existsPasswordKey = await Cache.ExistsAsync(passwordEncryptKey);
             var existsPasswordKey = await Cache.ExistsAsync(passwordEncryptKey);
             if (existsPasswordKey)
             if (existsPasswordKey)
             {
             {
@@ -246,7 +246,7 @@ public class AuthService : BaseService, IAuthService, IDynamicApi
 
 
         #region 登录
         #region 登录
         var password = MD5Encrypt.Encrypt32(input.Password);
         var password = MD5Encrypt.Encrypt32(input.Password);
-        var user = await _userRepository.Select.DisableGlobalFilter("Tenant")
+        var user = await _userRepository.Select.DisableGlobalFilter(FilterNames.Tenant)
             .Where(a => a.UserName == input.UserName && a.Password == password).ToOneAsync();
             .Where(a => a.UserName == input.UserName && a.Password == password).ToOneAsync();
 
 
         if (!(user?.Id > 0))
         if (!(user?.Id > 0))
@@ -264,7 +264,7 @@ public class AuthService : BaseService, IAuthService, IDynamicApi
         var authLoginOutput = Mapper.Map<AuthLoginOutput>(user);
         var authLoginOutput = Mapper.Map<AuthLoginOutput>(user);
         if (_appConfig.Tenant)
         if (_appConfig.Tenant)
         {
         {
-            var tenant = await _tenantRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(user.TenantId).ToOneAsync(a => new { a.TenantType, a.DbKey });
+            var tenant = await _tenantRepository.Select.DisableGlobalFilter(FilterNames.Tenant).WhereDynamic(user.TenantId).ToOneAsync(a => new { a.TenantType, a.DbKey });
             authLoginOutput.TenantType = tenant.TenantType;
             authLoginOutput.TenantType = tenant.TenantType;
             authLoginOutput.DbKey = tenant.DbKey;
             authLoginOutput.DbKey = tenant.DbKey;
         }
         }
@@ -352,7 +352,7 @@ public class AuthService : BaseService, IAuthService, IDynamicApi
     {
     {
         using (MiniProfiler.Current.Step("获取滑块验证"))
         using (MiniProfiler.Current.Step("获取滑块验证"))
         {
         {
-            var data = await _captchaTool.GetAsync(CacheKeys.CaptchaKey);
+            var data = await _captchaTool.GetAsync(CacheKeys.Captcha);
             return ResultOutput.Ok(data);
             return ResultOutput.Ok(data);
         }
         }
     }
     }
@@ -367,7 +367,7 @@ public class AuthService : BaseService, IAuthService, IDynamicApi
     [EnableCors(AdminConsts.AllowAnyPolicyName)]
     [EnableCors(AdminConsts.AllowAnyPolicyName)]
     public async Task<IResultOutput> CheckCaptcha([FromQuery] CaptchaInput input)
     public async Task<IResultOutput> CheckCaptcha([FromQuery] CaptchaInput input)
     {
     {
-        input.CaptchaKey = CacheKeys.CaptchaKey;
+        input.CaptchaKey = CacheKeys.Captcha;
         var result = await _captchaTool.CheckAsync(input);
         var result = await _captchaTool.CheckAsync(input);
         return ResultOutput.Result(result);
         return ResultOutput.Result(result);
     }
     }

+ 2 - 2
src/platform/ZhonTai.Admin/Services/Permission/PermissionService.cs

@@ -421,7 +421,7 @@ public class PermissionService : BaseService, IPermissionService, IDynamicApi
     public virtual async Task<IResultOutput> AssignAsync(PermissionAssignInput input)
     public virtual async Task<IResultOutput> AssignAsync(PermissionAssignInput input)
     {
     {
         //分配权限的时候判断角色是否存在
         //分配权限的时候判断角色是否存在
-        var exists = await _roleRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(input.RoleId).AnyAsync();
+        var exists = await _roleRepository.Select.DisableGlobalFilter(FilterNames.Tenant).WhereDynamic(input.RoleId).AnyAsync();
         if (!exists)
         if (!exists)
         {
         {
             return ResultOutput.NotOk("该角色不存在或已被删除!");
             return ResultOutput.NotOk("该角色不存在或已被删除!");
@@ -445,7 +445,7 @@ public class PermissionService : BaseService, IPermissionService, IDynamicApi
         if (_appConfig.Tenant && User.TenantType == TenantType.Tenant)
         if (_appConfig.Tenant && User.TenantType == TenantType.Tenant)
         {
         {
             var cloud = ServiceProvider.GetRequiredService<FreeSqlCloud>();
             var cloud = ServiceProvider.GetRequiredService<FreeSqlCloud>();
-            var tenantPermissionIds = await cloud.Use(DbKeys.MasterDbKey).Select<TenantPermissionEntity>().Where(d => d.TenantId == User.TenantId).ToListAsync(m => m.PermissionId);
+            var tenantPermissionIds = await cloud.Use(DbKeys.MasterDb).Select<TenantPermissionEntity>().Where(d => d.TenantId == User.TenantId).ToListAsync(m => m.PermissionId);
             insertPermissionIds = insertPermissionIds.Where(d => tenantPermissionIds.Contains(d));
             insertPermissionIds = insertPermissionIds.Where(d => tenantPermissionIds.Contains(d));
         }
         }
 
 

+ 10 - 10
src/platform/ZhonTai.Admin/Services/Tenant/TenantService.cs

@@ -231,22 +231,22 @@ public class TenantService : BaseService, ITenantService, IDynamicApi
     public virtual async Task<IResultOutput> DeleteAsync(long id)
     public virtual async Task<IResultOutput> DeleteAsync(long id)
     {
     {
         //删除角色权限
         //删除角色权限
-        await _rolePermissionRepository.Where(a => a.Role.TenantId == id).DisableGlobalFilter("Tenant").ToDelete().ExecuteAffrowsAsync();
+        await _rolePermissionRepository.Where(a => a.Role.TenantId == id).DisableGlobalFilter(FilterNames.Tenant).ToDelete().ExecuteAffrowsAsync();
 
 
         //删除用户角色
         //删除用户角色
-        await _userRoleRepository.Where(a => a.User.TenantId == id).DisableGlobalFilter("Tenant").ToDelete().ExecuteAffrowsAsync();
+        await _userRoleRepository.Where(a => a.User.TenantId == id).DisableGlobalFilter(FilterNames.Tenant).ToDelete().ExecuteAffrowsAsync();
 
 
         //删除员工
         //删除员工
-        await _staffRepository.Where(a => a.TenantId == id).DisableGlobalFilter("Tenant").ToDelete().ExecuteAffrowsAsync();
+        await _staffRepository.Where(a => a.TenantId == id).DisableGlobalFilter(FilterNames.Tenant).ToDelete().ExecuteAffrowsAsync();
 
 
         //删除用户部门
         //删除用户部门
-        await _userOrgRepository.Where(a => a.User.TenantId == id).DisableGlobalFilter("Tenant").ToDelete().ExecuteAffrowsAsync();
+        await _userOrgRepository.Where(a => a.User.TenantId == id).DisableGlobalFilter(FilterNames.Tenant).ToDelete().ExecuteAffrowsAsync();
 
 
         //删除用户
         //删除用户
-        await _userRepository.Where(a => a.TenantId == id).DisableGlobalFilter("Tenant").ToDelete().ExecuteAffrowsAsync();
+        await _userRepository.Where(a => a.TenantId == id).DisableGlobalFilter(FilterNames.Tenant).ToDelete().ExecuteAffrowsAsync();
 
 
         //删除角色
         //删除角色
-        await _roleRepository.Where(a => a.TenantId == id).DisableGlobalFilter("Tenant").ToDelete().ExecuteAffrowsAsync();
+        await _roleRepository.Where(a => a.TenantId == id).DisableGlobalFilter(FilterNames.Tenant).ToDelete().ExecuteAffrowsAsync();
 
 
         //删除租户
         //删除租户
         await _tenantRepository.DeleteAsync(id);
         await _tenantRepository.DeleteAsync(id);
@@ -263,10 +263,10 @@ public class TenantService : BaseService, ITenantService, IDynamicApi
     public virtual async Task<IResultOutput> SoftDeleteAsync(long id)
     public virtual async Task<IResultOutput> SoftDeleteAsync(long id)
     {
     {
         //删除用户
         //删除用户
-        await _userRepository.SoftDeleteAsync(a => a.TenantId == id, "Tenant");
+        await _userRepository.SoftDeleteAsync(a => a.TenantId == id, FilterNames.Tenant);
 
 
         //删除角色
         //删除角色
-        await _roleRepository.SoftDeleteAsync(a => a.TenantId == id, "Tenant");
+        await _roleRepository.SoftDeleteAsync(a => a.TenantId == id, FilterNames.Tenant);
 
 
         //删除租户
         //删除租户
         var result = await _tenantRepository.SoftDeleteAsync(id);
         var result = await _tenantRepository.SoftDeleteAsync(id);
@@ -283,10 +283,10 @@ public class TenantService : BaseService, ITenantService, IDynamicApi
     public virtual async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
     public virtual async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
     {
     {
         //删除用户
         //删除用户
-        await _userRepository.SoftDeleteAsync(a => ids.Contains(a.TenantId.Value), "Tenant");
+        await _userRepository.SoftDeleteAsync(a => ids.Contains(a.TenantId.Value), FilterNames.Tenant);
 
 
         //删除角色
         //删除角色
-        await _roleRepository.SoftDeleteAsync(a => ids.Contains(a.TenantId.Value), "Tenant");
+        await _roleRepository.SoftDeleteAsync(a => ids.Contains(a.TenantId.Value), FilterNames.Tenant);
 
 
         //删除租户
         //删除租户
         var result = await _tenantRepository.SoftDeleteAsync(ids);
         var result = await _tenantRepository.SoftDeleteAsync(ids);

+ 3 - 3
src/platform/ZhonTai.Admin/Services/User/UserService.cs

@@ -119,10 +119,10 @@ public class UserService : BaseService, IUserService, IDynamicApi
     public async Task<ResultOutput<AuthLoginOutput>> GetLoginUserAsync(long id)
     public async Task<ResultOutput<AuthLoginOutput>> GetLoginUserAsync(long id)
     {
     {
         var output = new ResultOutput<AuthLoginOutput>();
         var output = new ResultOutput<AuthLoginOutput>();
-        var entityDto = await _userRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(id).ToOneAsync<AuthLoginOutput>();
+        var entityDto = await _userRepository.Select.DisableGlobalFilter(FilterNames.Tenant).WhereDynamic(id).ToOneAsync<AuthLoginOutput>();
         if (_appConfig.Tenant && entityDto?.TenantId.Value > 0)
         if (_appConfig.Tenant && entityDto?.TenantId.Value > 0)
         {
         {
-            var tenant = await _tenantRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(entityDto.TenantId).ToOneAsync(a => new { a.TenantType, a.DbKey });
+            var tenant = await _tenantRepository.Select.DisableGlobalFilter(FilterNames.Tenant).WhereDynamic(entityDto.TenantId).ToOneAsync(a => new { a.TenantType, a.DbKey });
             entityDto.TenantType = tenant.TenantType;
             entityDto.TenantType = tenant.TenantType;
             entityDto.DbKey = tenant.DbKey;
             entityDto.DbKey = tenant.DbKey;
         }
         }
@@ -156,7 +156,7 @@ public class UserService : BaseService, IUserService, IDynamicApi
             if (User.TenantAdmin)
             if (User.TenantAdmin)
             {
             {
                 var cloud = LazyGetRequiredService<FreeSqlCloud>();
                 var cloud = LazyGetRequiredService<FreeSqlCloud>();
-                var db = cloud.Use(DbKeys.MasterDbKey);
+                var db = cloud.Use(DbKeys.MasterDb);
 
 
                 return await db.Select<ApiEntity>()
                 return await db.Select<ApiEntity>()
                 .Where(a => db.Select<TenantPermissionEntity, PermissionApiEntity>()
                 .Where(a => db.Select<TenantPermissionEntity, PermissionApiEntity>()

+ 32 - 17
src/platform/ZhonTai.Admin/ZhonTai.Admin.xml

@@ -670,12 +670,12 @@
             缓存键
             缓存键
             </summary>
             </summary>
         </member>
         </member>
-        <member name="F:ZhonTai.Admin.Core.Consts.CacheKeys.CaptchaKey">
+        <member name="F:ZhonTai.Admin.Core.Consts.CacheKeys.Captcha">
             <summary>
             <summary>
             验证码 admin:captcha:guid
             验证码 admin:captcha:guid
             </summary>
             </summary>
         </member>
         </member>
-        <member name="F:ZhonTai.Admin.Core.Consts.CacheKeys.PassWordEncryptKey">
+        <member name="F:ZhonTai.Admin.Core.Consts.CacheKeys.PassWordEncrypt">
             <summary>
             <summary>
             密码加密 admin:password:encrypt:guid
             密码加密 admin:password:encrypt:guid
             </summary>
             </summary>
@@ -700,21 +700,36 @@
             数据库键名
             数据库键名
             </summary>
             </summary>
         </member>
         </member>
-        <member name="F:ZhonTai.Admin.Core.Consts.DbKeys.MasterDbKey">
+        <member name="F:ZhonTai.Admin.Core.Consts.DbKeys.MasterDb">
             <summary>
             <summary>
             主库
             主库
             </summary>
             </summary>
         </member>
         </member>
-        <member name="F:ZhonTai.Admin.Core.Consts.DbKeys.MultiDbKey">
+        <member name="F:ZhonTai.Admin.Core.Consts.DbKeys.MultiDb">
             <summary>
             <summary>
             多库
             多库
             </summary>
             </summary>
         </member>
         </member>
-        <member name="F:ZhonTai.Admin.Core.Consts.DbKeys.TenantDbKey">
+        <member name="F:ZhonTai.Admin.Core.Consts.DbKeys.TenantDb">
             <summary>
             <summary>
             租户数据库
             租户数据库
             </summary>
             </summary>
         </member>
         </member>
+        <member name="T:ZhonTai.Admin.Core.Consts.FilterNames">
+            <summary>
+            全局过滤器名
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Admin.Core.Consts.FilterNames.SoftDelete">
+            <summary>
+            软删除
+            </summary>
+        </member>
+        <member name="F:ZhonTai.Admin.Core.Consts.FilterNames.Tenant">
+            <summary>
+            租户
+            </summary>
+        </member>
         <member name="T:ZhonTai.Admin.Core.Conventions.ApiGroupConvention">
         <member name="T:ZhonTai.Admin.Core.Conventions.ApiGroupConvention">
             <summary>
             <summary>
             Api分组约定
             Api分组约定
@@ -1195,19 +1210,19 @@
             版本
             版本
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:ZhonTai.Admin.Core.Entities.IEntitySoftDelete.IsDeleted">
+        <member name="P:ZhonTai.Admin.Core.Entities.ISoftDelete.IsDeleted">
             <summary>
             <summary>
             是否删除
             是否删除
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:ZhonTai.Admin.Core.Entities.IEntityVersion.Version">
+        <member name="P:ZhonTai.Admin.Core.Entities.ITenant.TenantId">
             <summary>
             <summary>
-            版本
+            租户Id
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:ZhonTai.Admin.Core.Entities.ITenant.TenantId">
+        <member name="P:ZhonTai.Admin.Core.Entities.IVersion.Version">
             <summary>
             <summary>
-            租户Id
+            数据版本
             </summary>
             </summary>
         </member>
         </member>
         <member name="T:ZhonTai.Admin.Core.Entities.TenantType">
         <member name="T:ZhonTai.Admin.Core.Entities.TenantType">
@@ -2107,19 +2122,14 @@
             全部
             全部
             </summary>
             </summary>
         </member>
         </member>
-        <member name="F:ZhonTai.Admin.Domain.Role.DataScope.Dept">
-            <summary>
-            本部门
-            </summary>
-        </member>
         <member name="F:ZhonTai.Admin.Domain.Role.DataScope.DeptWithChild">
         <member name="F:ZhonTai.Admin.Domain.Role.DataScope.DeptWithChild">
             <summary>
             <summary>
             本部门和下级部门
             本部门和下级部门
             </summary>
             </summary>
         </member>
         </member>
-        <member name="F:ZhonTai.Admin.Domain.Role.DataScope.Custom">
+        <member name="F:ZhonTai.Admin.Domain.Role.DataScope.Dept">
             <summary>
             <summary>
-            指定部门
+            部门
             </summary>
             </summary>
         </member>
         </member>
         <member name="F:ZhonTai.Admin.Domain.Role.DataScope.Self">
         <member name="F:ZhonTai.Admin.Domain.Role.DataScope.Self">
@@ -2127,6 +2137,11 @@
             本人数据
             本人数据
             </summary>
             </summary>
         </member>
         </member>
+        <member name="F:ZhonTai.Admin.Domain.Role.DataScope.Custom">
+            <summary>
+            指定部门
+            </summary>
+        </member>
         <member name="P:ZhonTai.Admin.Domain.Role.Dto.RoleGetListInput.Name">
         <member name="P:ZhonTai.Admin.Domain.Role.Dto.RoleGetListInput.Name">
             <summary>
             <summary>
             名称
             名称

+ 3 - 3
src/tests/ZhonTai.Tests/BaseControllerTest.cs

@@ -168,10 +168,10 @@ public class BaseControllerTest : BaseTest
             };
             };
             if (_appConfig.VarifyCode.Enable)
             if (_appConfig.VarifyCode.Enable)
             {
             {
-                var res = await _captcha.GetAsync(CacheKeys.CaptchaKey);
-                var captchaKey = string.Format(CacheKeys.CaptchaKey, res.Token);
+                var res = await _captcha.GetAsync(CacheKeys.Captcha);
+                var captchaKey = string.Format(CacheKeys.Captcha, res.Token);
                 var captchaData = await _cache.GetAsync(captchaKey);
                 var captchaData = await _cache.GetAsync(captchaKey);
-                input.Captcha = new CaptchaInput { CaptchaKey = CacheKeys.CaptchaKey, Token = res.Token, Data = JsonConvert.SerializeObject(new { X = captchaData }) };
+                input.Captcha = new CaptchaInput { CaptchaKey = CacheKeys.Captcha, Token = res.Token, Data = JsonConvert.SerializeObject(new { X = captchaData }) };
             }
             }
         }
         }