mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 10:57:13 +08:00 
			
		
		
		
	refactor(tenant): 优化及修复租户相关部分代码
- 移动 TenantExtensionProperties 到 common 模块 - 修复 MenuController#tree 接口 setExcludeMenuIdList 方法判断非默认租户条件缺失 - 修复更新租户套餐菜单,没有及时更新在线用户数据权限(后面考虑重构 satoken 权限数据读取部分) - TenantService 接口 getByDomain => getIdByDomain、getByCode => getIdByCode - 移除 MenuService 中已废弃的方法 - LogDaoLocalImpl 还原(未测出租户用户操作,无租户 ID 问题) - 优化 pg 数据库脚本,移除菜单表的租户相关字段 - 其他代码优化
This commit is contained in:
		| @@ -20,7 +20,6 @@ import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.context.annotation.Configuration; | ||||
| import top.continew.admin.system.mapper.LogMapper; | ||||
| import top.continew.admin.system.service.UserService; | ||||
| import top.continew.starter.extension.tenant.autoconfigure.TenantProperties; | ||||
| import top.continew.starter.log.annotation.ConditionalOnEnabledLog; | ||||
| import top.continew.starter.log.dao.LogDao; | ||||
| import top.continew.starter.trace.autoconfigure.TraceProperties; | ||||
| @@ -39,10 +38,7 @@ public class LogConfiguration { | ||||
|      * 日志持久层接口本地实现类 | ||||
|      */ | ||||
|     @Bean | ||||
|     public LogDao logDao(UserService userService, | ||||
|                          LogMapper logMapper, | ||||
|                          TraceProperties traceProperties, | ||||
|                          TenantProperties tenantProperties) { | ||||
|         return new LogDaoLocalImpl(userService, logMapper, traceProperties, tenantProperties); | ||||
|     public LogDao logDao(UserService userService, LogMapper logMapper, TraceProperties traceProperties) { | ||||
|         return new LogDaoLocalImpl(userService, logMapper, traceProperties); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -41,7 +41,7 @@ import top.continew.admin.system.service.UserService; | ||||
| import top.continew.starter.core.constant.StringConstants; | ||||
| import top.continew.starter.core.util.ExceptionUtils; | ||||
| import top.continew.starter.core.util.StrUtils; | ||||
| import top.continew.starter.extension.tenant.autoconfigure.TenantProperties; | ||||
| import top.continew.starter.extension.tenant.context.TenantContextHolder; | ||||
| import top.continew.starter.extension.tenant.util.TenantUtils; | ||||
| import top.continew.starter.log.dao.LogDao; | ||||
| import top.continew.starter.log.model.LogRecord; | ||||
| @@ -67,7 +67,6 @@ public class LogDaoLocalImpl implements LogDao { | ||||
|     private final UserService userService; | ||||
|     private final LogMapper logMapper; | ||||
|     private final TraceProperties traceProperties; | ||||
|     private final TenantProperties tenantProperties; | ||||
|  | ||||
|     @Async | ||||
|     @Override | ||||
| @@ -88,12 +87,8 @@ public class LogDaoLocalImpl implements LogDao { | ||||
|         logDO.setCreateTime(LocalDateTime.ofInstant(logRecord.getTimestamp(), ZoneId.systemDefault())); | ||||
|         // 设置操作人 | ||||
|         this.setCreateUser(logDO, logRequest, logResponse); | ||||
|         String strTenantId = logRequest.getHeaders().get(tenantProperties.getTenantIdHeader()); | ||||
|         if (StrUtil.isNotBlank(strTenantId)) { | ||||
|             TenantUtils.execute(Long.parseLong(strTenantId), () -> logMapper.insert(logDO)); | ||||
|         } else { | ||||
|             logMapper.insert(logDO); | ||||
|         } | ||||
|         // 保存记录 | ||||
|         TenantUtils.execute(TenantContextHolder.getTenantId(), () -> logMapper.insert(logDO)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -215,6 +215,7 @@ continew-starter.tenant: | ||||
|     - tenant_package_menu # 租户套餐与菜单关联表 | ||||
|     - gen_config # 代码生成配置表 | ||||
|     - gen_field_config # 代码生成字段配置表 | ||||
|     - sys_menu # 菜单表 | ||||
|     - sys_dict # 字典表 | ||||
|     - sys_dict_item # 字典项表 | ||||
|     - sys_option # 参数表 | ||||
| @@ -223,9 +224,9 @@ continew-starter.tenant: | ||||
|     - sys_sms_log # 短信日志表 | ||||
|     - sys_client # 客户端表 | ||||
|     - sys_app # 应用表 | ||||
|     - sys_menu # 菜单表 | ||||
|   # 忽略菜单 ID(租户不能使用的菜单) | ||||
|   ignore-menus: | ||||
|     - 1050 # 菜单管理 | ||||
|     - 1130 # 字典管理 | ||||
|     - 1140 # 字典项管理 | ||||
|     - 1150 # 系统配置 | ||||
| @@ -234,7 +235,6 @@ continew-starter.tenant: | ||||
|     - 7000 # 能力开放 | ||||
|     - 8000 # 任务调度 | ||||
|     - 9000 # 开发工具 | ||||
|     - 1050 # 菜单管理 | ||||
|  | ||||
| --- ### 限流器配置 | ||||
| continew-starter: | ||||
|   | ||||
| @@ -76,10 +76,6 @@ COMMENT ON COLUMN "tenant_package_menu"."menu_id" IS '菜单ID'; | ||||
| COMMENT ON TABLE "tenant_package_menu" IS '租户套餐和菜单关联表'; | ||||
|  | ||||
| -- 为已有表增加租户字段 | ||||
| ALTER TABLE "sys_menu" ADD COLUMN "tenant_id" int8 NOT NULL DEFAULT 0; | ||||
| COMMENT ON COLUMN "sys_menu"."tenant_id" IS '租户ID'; | ||||
| CREATE INDEX "idx_menu_tenant_id" ON "sys_menu" ("tenant_id"); | ||||
|  | ||||
| ALTER TABLE "sys_dept" ADD COLUMN "tenant_id" int8 NOT NULL DEFAULT 0; | ||||
| COMMENT ON COLUMN "sys_dept"."tenant_id" IS '租户ID'; | ||||
| CREATE INDEX "idx_dept_tenant_id" ON "sys_dept" ("tenant_id"); | ||||
| @@ -141,9 +137,6 @@ COMMENT ON COLUMN "sys_app"."tenant_id" IS '租户ID'; | ||||
| CREATE INDEX "idx_app_tenant_id" ON "sys_app" ("tenant_id"); | ||||
|  | ||||
| -- 调整唯一索引 | ||||
| ALTER TABLE "sys_menu" DROP INDEX "uk_menu_title_parent_id"; | ||||
| CREATE UNIQUE INDEX "uk_menu_title_parent_id" ON "sys_menu" ("title", "parent_id", "tenant_id"); | ||||
|  | ||||
| ALTER TABLE "sys_dept" DROP INDEX "uk_dept_name_parent_id"; | ||||
| CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id", "tenant_id"); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user