Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz4j Spring R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7后台标准模板
iBiz4j Spring R7
提交
b2846dd8
提交
b2846dd8
编写于
5月 14, 2021
作者:
xignzi006
🇨🇳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新 SaaSTenantSqlParser.java.ftl
上级
72330f90
变更
1
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
49 行增加
和
4 行删除
+49
-4
SaaSTenantSqlParser.java.ftl
...YS_PKGPATH%/core/util/config/SaaSTenantSqlParser.java.ftl
+49
-4
未找到文件。
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/util/config/SaaSTenantSqlParser.java.ftl
浏览文件 @
b2846dd8
...
...
@@ -6,12 +6,13 @@ package ${pub.getPKGCodeName()}.core.util.config;
import
com
.
baomidou
.
mybatisplus
.
core
.
toolkit
.
StringPool
;
import
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
tenant
.
TenantSqlParser
;
import
net
.
sf
.
jsqlparser
.
expression
.
Expression
;
import
net
.
sf
.
jsqlparser
.
expression
.
Function
;
import
net
.
sf
.
jsqlparser
.
expression
.
operators
.
conditional
.
AndExpression
;
import
net
.
sf
.
jsqlparser
.
expression
.
operators
.
conditional
.
OrExpression
;
import
net
.
sf
.
jsqlparser
.
schema
.
Column
;
import
net
.
sf
.
jsqlparser
.
schema
.
Table
;
import
net
.
sf
.
jsqlparser
.
statement
.
select
.
FromItem
;
import
net
.
sf
.
jsqlparser
.
statement
.
select
.
Join
;
import
net
.
sf
.
jsqlparser
.
statement
.
select
.
PlainSelect
;
import
net
.
sf
.
jsqlparser
.
statement
.
select
.
SelectExpressionItem
;
import
net
.
sf
.
jsqlparser
.
statement
.
select
.*;
import
java
.
util
.
List
;
...
...
@@ -24,6 +25,7 @@ public class SaaSTenantSqlParser extends TenantSqlParser {
*
@
param
addColumn
是否添加租户列
,
insert
into
select
语句中需要
*/
protected
void
processPlainSelect
(
PlainSelect
plainSelect
,
boolean
addColumn
)
{
processSelectItem
(
plainSelect
);
FromItem
fromItem
=
plainSelect
.
getFromItem
();
if
(
fromItem
instanceof
Table
)
{
Table
fromTable
=
(
Table
)
fromItem
;
...
...
@@ -46,6 +48,49 @@ public class SaaSTenantSqlParser extends TenantSqlParser {
processFromItem
(
j
.
getRightItem
());
});
}
processWhere
(
plainSelect
.
getWhere
());
}
/**
*
where
条件中包含
select
添加租户
id
*/
protected
void
processWhere
(
Expression
where
)
{
if
(
where
==
null
)
return
;
if
(
where
instanceof
AndExpression
)
{
processWhere
(((
AndExpression
)
where
).
getLeftExpression
());
processWhere
(((
AndExpression
)
where
).
getRightExpression
());
}
else
if
(
where
instanceof
OrExpression
)
{
processWhere
(((
OrExpression
)
where
).
getLeftExpression
());
processWhere
(((
OrExpression
)
where
).
getRightExpression
());
}
else
if
(
where
instanceof
Function
)
{
for
(
Expression
e
:
((
Function
)
where
).
getParameters
().
getExpressions
())
{
if
(
e
instanceof
SubSelect
)
{
this
.
processSelectBody
(((
SubSelect
)
e
).
getSelectBody
());
}
}
}
}
/**
*
select
中包含
select
添加租户
id
*/
protected
void
processSelectItem
(
PlainSelect
plainSelect
)
{
List
<
SelectItem
>
selectItems
=
plainSelect
.
getSelectItems
();
for
(
SelectItem
selectItem
:
selectItems
)
{
if
(
selectItem
instanceof
SelectExpressionItem
)
{
if
(((
SelectExpressionItem
)
selectItem
).
getExpression
()
instanceof
SubSelect
){
this
.
processSelectBody
(((
SubSelect
)
((
SelectExpressionItem
)
selectItem
).
getExpression
()).
getSelectBody
());
}
}
else
if
(
selectItem
instanceof
Function
)
{
for
(
Expression
e
:
((
Function
)
selectItem
).
getParameters
().
getExpressions
())
{
if
(
e
instanceof
Select
)
{
this
.
processSelectBody
(((
Select
)
e
).
getSelectBody
());
}
}
}
}
}
}
</#
if
>
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录