mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-11-04 08:06:12 +08:00 
			
		
		
		
	设置实体继承多租户的 DO
This commit is contained in:
		@ -33,6 +33,7 @@
 | 
				
			|||||||
|  | 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等 |
 | 
					|  | 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等 |
 | 
				
			||||||
|  | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 |
 | 
					|  | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 |
 | 
				
			||||||
|  | 岗位管理 | 配置系统用户所属担任职务 |
 | 
					|  | 岗位管理 | 配置系统用户所属担任职务 |
 | 
				
			||||||
 | 
					|  | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 |
 | 
				
			||||||
|  | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
 | 
					|  | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
 | 
				
			||||||
| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、云片等主流短信平台 |
 | 
					| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、云片等主流短信平台 |
 | 
				
			||||||
| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
 | 
					| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept;
 | 
					package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 | 
					import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 | 
				
			||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
					import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import lombok.Data;
 | 
					import lombok.Data;
 | 
				
			||||||
@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode;
 | 
				
			|||||||
@TableName("sys_dept")
 | 
					@TableName("sys_dept")
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@EqualsAndHashCode(callSuper = true)
 | 
					@EqualsAndHashCode(callSuper = true)
 | 
				
			||||||
public class SysDeptDO extends BaseDO {
 | 
					public class SysDeptDO extends TenantBaseDO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 部门ID
 | 
					     * 部门ID
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept;
 | 
					package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 | 
					import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 | 
				
			||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
					import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import lombok.Data;
 | 
					import lombok.Data;
 | 
				
			||||||
@ -15,14 +15,13 @@ import lombok.EqualsAndHashCode;
 | 
				
			|||||||
@TableName("sys_post")
 | 
					@TableName("sys_post")
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@EqualsAndHashCode(callSuper = true)
 | 
					@EqualsAndHashCode(callSuper = true)
 | 
				
			||||||
public class SysPostDO extends BaseDO {
 | 
					public class SysPostDO extends TenantBaseDO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 岗位序号
 | 
					     * 岗位序号
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @TableId
 | 
					    @TableId
 | 
				
			||||||
    private Long id;
 | 
					    private Long id;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 岗位名称
 | 
					     * 岗位名称
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger;
 | 
				
			|||||||
import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
 | 
					import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
					import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
				
			||||||
import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum;
 | 
					import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum;
 | 
				
			||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
					import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
@ -22,7 +22,7 @@ import java.util.Map;
 | 
				
			|||||||
@TableName(value = "sys_operate_log", autoResultMap = true)
 | 
					@TableName(value = "sys_operate_log", autoResultMap = true)
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@EqualsAndHashCode(callSuper = true)
 | 
					@EqualsAndHashCode(callSuper = true)
 | 
				
			||||||
public class SysOperateLogDO extends BaseDO {
 | 
					public class SysOperateLogDO extends TenantBaseDO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * {@link #javaMethodArgs} 的最大长度
 | 
					     * {@link #javaMethodArgs} 的最大长度
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,8 @@
 | 
				
			|||||||
package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.notice;
 | 
					package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.notice;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 | 
					 | 
				
			||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
					 | 
				
			||||||
import cn.iocoder.yudao.adminserver.modules.system.enums.notice.SysNoticeTypeEnum;
 | 
					import cn.iocoder.yudao.adminserver.modules.system.enums.notice.SysNoticeTypeEnum;
 | 
				
			||||||
 | 
					import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 | 
				
			||||||
 | 
					import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import lombok.Data;
 | 
					import lombok.Data;
 | 
				
			||||||
@ -16,7 +16,7 @@ import lombok.EqualsAndHashCode;
 | 
				
			|||||||
@TableName("sys_notice")
 | 
					@TableName("sys_notice")
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
@EqualsAndHashCode(callSuper = true)
 | 
					@EqualsAndHashCode(callSuper = true)
 | 
				
			||||||
public class SysNoticeDO extends BaseDO {
 | 
					public class SysNoticeDO extends TenantBaseDO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 公告ID
 | 
					     * 公告ID
 | 
				
			||||||
 | 
				
			|||||||
@ -73,7 +73,7 @@ yudao:
 | 
				
			|||||||
    constants-class-list:
 | 
					    constants-class-list:
 | 
				
			||||||
      - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants
 | 
					      - cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants
 | 
				
			||||||
      - cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants
 | 
					      - cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants
 | 
				
			||||||
  tenant:
 | 
					  tenant: # 多租户相关配置项
 | 
				
			||||||
    tables: sys_user, sys_user_session
 | 
					    tables: # 配置需要开启多租户的表;如果实体已经继承 TenantBaseDO 类,则无需重复配置
 | 
				
			||||||
 | 
					
 | 
				
			||||||
debug: false
 | 
					debug: false
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,7 @@
 | 
				
			|||||||
package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file;
 | 
					package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
					import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
				
			||||||
 | 
					import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.IdType;
 | 
					import com.baomidou.mybatisplus.annotation.IdType;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableField;
 | 
					import com.baomidou.mybatisplus.annotation.TableField;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
@ -21,7 +22,7 @@ import java.io.InputStream;
 | 
				
			|||||||
@Builder
 | 
					@Builder
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
public class InfFileDO extends BaseDO {
 | 
					public class InfFileDO extends TenantBaseDO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 文件路径
 | 
					     * 文件路径
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@ package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 | 
					import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
					import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
				
			||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
					import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import lombok.*;
 | 
					import lombok.*;
 | 
				
			||||||
@ -21,7 +21,7 @@ import java.util.Date;
 | 
				
			|||||||
@Builder
 | 
					@Builder
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
public class InfApiAccessLogDO extends BaseDO {
 | 
					public class InfApiAccessLogDO extends TenantBaseDO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 编号
 | 
					     * 编号
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,8 @@
 | 
				
			|||||||
package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger;
 | 
					package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 | 
					 | 
				
			||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
					 | 
				
			||||||
import cn.iocoder.yudao.coreservice.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum;
 | 
					import cn.iocoder.yudao.coreservice.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum;
 | 
				
			||||||
 | 
					import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 | 
				
			||||||
 | 
					import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import lombok.*;
 | 
					import lombok.*;
 | 
				
			||||||
@ -21,7 +21,7 @@ import java.util.Date;
 | 
				
			|||||||
@Builder
 | 
					@Builder
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
public class InfApiErrorLogDO extends BaseDO {
 | 
					public class InfApiErrorLogDO extends TenantBaseDO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 编号
 | 
					     * 编号
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
package cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user;
 | 
					package cn.iocoder.yudao.coreservice.modules.member.dal.dataobject.user;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 | 
					import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 | 
				
			||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 | 
					import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableId;
 | 
					import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import lombok.*;
 | 
					import lombok.*;
 | 
				
			||||||
@ -22,7 +22,7 @@ import java.util.Date;
 | 
				
			|||||||
@Builder
 | 
					@Builder
 | 
				
			||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
@AllArgsConstructor
 | 
					@AllArgsConstructor
 | 
				
			||||||
public class MbrUserDO extends BaseDO {
 | 
					public class MbrUserDO extends TenantBaseDO {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 用户ID
 | 
					     * 用户ID
 | 
				
			||||||
 | 
				
			|||||||
@ -33,6 +33,7 @@
 | 
				
			|||||||
        <module>yudao-spring-boot-starter-biz-weixin</module>
 | 
					        <module>yudao-spring-boot-starter-biz-weixin</module>
 | 
				
			||||||
        <module>yudao-spring-boot-starter-extension</module>
 | 
					        <module>yudao-spring-boot-starter-extension</module>
 | 
				
			||||||
        <module>yudao-spring-boot-starter-tenant</module>
 | 
					        <module>yudao-spring-boot-starter-tenant</module>
 | 
				
			||||||
 | 
					        <module>yudao-spring-boot-starter-datascope</module>
 | 
				
			||||||
    </modules>
 | 
					    </modules>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <artifactId>yudao-framework</artifactId>
 | 
					    <artifactId>yudao-framework</artifactId>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										66
									
								
								yudao-framework/yudao-spring-boot-starter-datascope/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								yudao-framework/yudao-spring-boot-starter-datascope/pom.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <parent>
 | 
				
			||||||
 | 
					        <artifactId>yudao-framework</artifactId>
 | 
				
			||||||
 | 
					        <groupId>cn.iocoder.boot</groupId>
 | 
				
			||||||
 | 
					        <version>${revision}</version>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					    <artifactId>yudao-spring-boot-starter-datascope</artifactId>
 | 
				
			||||||
 | 
					    <packaging>jar</packaging>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <name>${artifactId}</name>
 | 
				
			||||||
 | 
					    <description>数据权限</description>
 | 
				
			||||||
 | 
					    <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>cn.iocoder.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>yudao-common</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- Web 相关 -->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-web</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>cn.iocoder.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>yudao-spring-boot-starter-security</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- DB 相关 -->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>cn.iocoder.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>cn.iocoder.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>yudao-spring-boot-starter-redis</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- Job 定时任务相关 -->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>cn.iocoder.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>yudao-spring-boot-starter-job</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- 消息队列相关 -->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>cn.iocoder.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>yudao-spring-boot-starter-mq</artifactId>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- Test 测试相关 -->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework.boot</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-boot-starter-test</artifactId>
 | 
				
			||||||
 | 
					            <scope>test</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 基于 JSqlParser 解析 SQL,增加数据权限的 WHERE 条件
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					package cn.iocoder.yudao.framework.datascope;
 | 
				
			||||||
@ -3,6 +3,8 @@ package cn.iocoder.yudao.framework.tenant.core.db;
 | 
				
			|||||||
import cn.hutool.core.collection.CollUtil;
 | 
					import cn.hutool.core.collection.CollUtil;
 | 
				
			||||||
import cn.iocoder.yudao.framework.tenant.config.TenantProperties;
 | 
					import cn.iocoder.yudao.framework.tenant.config.TenantProperties;
 | 
				
			||||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 | 
					import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.metadata.TableInfo;
 | 
				
			||||||
 | 
					import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
 | 
				
			||||||
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
 | 
					import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
 | 
				
			||||||
import lombok.AllArgsConstructor;
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
import net.sf.jsqlparser.expression.Expression;
 | 
					import net.sf.jsqlparser.expression.Expression;
 | 
				
			||||||
@ -25,6 +27,11 @@ public class TenantDatabaseInterceptor implements TenantLineHandler {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean ignoreTable(String tableName) {
 | 
					    public boolean ignoreTable(String tableName) {
 | 
				
			||||||
 | 
					        // 如果实体类继承 TenantBaseDO 类,则是多租户表,不进行忽略
 | 
				
			||||||
 | 
					        TableInfo tableInfo = TableInfoHelper.getTableInfo(tableName);
 | 
				
			||||||
 | 
					        if (tableInfo != null && TenantBaseDO.class.isAssignableFrom(tableInfo.getEntityType())) {
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        // 不包含,说明要过滤
 | 
					        // 不包含,说明要过滤
 | 
				
			||||||
        return !CollUtil.contains(properties.getTables(), tableName);
 | 
					        return !CollUtil.contains(properties.getTables(), tableName);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -14,9 +14,6 @@ import java.io.IOException;
 | 
				
			|||||||
 * 多租户 Context Web 过滤器
 | 
					 * 多租户 Context Web 过滤器
 | 
				
			||||||
 * 将请求 Header 中的 tenant-id 解析出来,添加到 {@link TenantContextHolder} 中,这样后续的 DB 等操作,可以获得到租户编号。
 | 
					 * 将请求 Header 中的 tenant-id 解析出来,添加到 {@link TenantContextHolder} 中,这样后续的 DB 等操作,可以获得到租户编号。
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Q:会不会存在模拟 tenant-id 导致跨租户的问题?
 | 
					 | 
				
			||||||
 * A:用户登陆后,获得的 Token 是基于租户级别隔离,从而保证授权失败。
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * @author 芋道源码
 | 
					 * @author 芋道源码
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class TenantContextWebFilter extends OncePerRequestFilter {
 | 
					public class TenantContextWebFilter extends OncePerRequestFilter {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								更新日志.md
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								更新日志.md
									
									
									
									
									
								
							@ -20,10 +20,24 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## [v1.2.0] 进行中
 | 
					## [v1.2.0] 进行中
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* 新增用户前台的昵称、头像的修改
 | 
					### ⚠️ Warning
 | 
				
			||||||
* 修复通知和字典查询权限 Bug
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
TODO
 | 
					这是一个多租户的预览版本,涉及的改动较大。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ⭐ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* 【新增】多租户,支持 Web、Security、Job、MQ、Async、DB、Redis 组件
 | 
				
			||||||
 | 
					* 【新增】用户前台的昵称、头像的修改
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* 【修复】通知和字典查询权限 Bug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🔨 Dependency Upgrades
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					暂无
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 📝 TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* 支付
 | 
					* 支付
 | 
				
			||||||
* 用户前台的社交登陆
 | 
					* 用户前台的社交登陆
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user