From 3279ef8ab5587512b529e05bd2f02a43c09c7c6b Mon Sep 17 00:00:00 2001 From: XSWL1018 <824576966@qq.com> Date: Tue, 10 Sep 2024 18:06:59 +0800 Subject: [PATCH] u --- .../main/resources/mybatis/mybatis-config.xml | 6 +- .../common/annotation/sql/DataSecurity.java | 20 --- .../annotation/sql/MybatisHandlerOrder.java | 14 -- ruoyi-middleware/pom.xml | 7 +- .../ruoyi-middleware-starter/pom.xml | 4 - ruoyi-plugins/pom.xml | 9 +- .../ruoyi-mybatis-interceptor}/pom.xml | 11 +- .../annotation/DataSecurity.java | 4 +- .../annotation/MybatisHandlerOrder.java | 2 +- .../aspectj/DataSecurityAspect.java | 12 +- .../dataSecurity/SqlContextHolder.java | 8 +- .../context/page/PageContextHolder.java | 4 +- .../context/page/model/PageInfo.java | 2 +- .../context/page/model/RuoyiTableData.java | 2 +- .../context/page/model/TableInfo.java | 2 +- .../enums/DataSecurityStrategy.java | 2 +- .../mybatisinterceptor}/enums/SqlType.java | 2 +- .../mybatis/MybatisInterceptor.java | 129 ++++++++++++++++++ .../model/JoinTableModel.java | 2 +- .../mybatisinterceptor}/model/WhereModel.java | 4 +- .../mybatis/MybatisInterceptor.java | 8 +- .../sql/MybatisAfterHandler.java | 2 +- .../sql/MybatisPreHandler.java | 2 +- .../dataSecurity/DataSecurityPreHandler.java | 14 +- .../sql/page/PageAfterHandler.java | 11 +- .../sql/page/PagePreHandler.java | 12 +- .../util/DataSecurityUtil.java | 4 +- .../mybatisinterceptor}/util/SqlUtil.java | 2 +- ruoyi-plugins/ruoyi-plugins-starter/pom.xml | 5 + 29 files changed, 207 insertions(+), 99 deletions(-) delete mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/annotation/sql/DataSecurity.java delete mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/annotation/sql/MybatisHandlerOrder.java rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor => ruoyi-plugins/ruoyi-mybatis-interceptor}/pom.xml (71%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/annotation/DataSecurity.java (73%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/annotation/MybatisHandlerOrder.java (78%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/aspectj/DataSecurityAspect.java (91%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/context/dataSecurity/SqlContextHolder.java (85%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/context/page/PageContextHolder.java (90%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/context/page/model/PageInfo.java (96%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/context/page/model/RuoyiTableData.java (86%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/context/page/model/TableInfo.java (85%) rename {ruoyi-common/src/main/java/com/ruoyi/common => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/enums/DataSecurityStrategy.java (71%) rename {ruoyi-common/src/main/java/com/ruoyi/common => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/enums/SqlType.java (85%) create mode 100644 ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/interceptor/mybatis/MybatisInterceptor.java rename {ruoyi-common/src/main/java/com/ruoyi/common => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/model/JoinTableModel.java (97%) rename {ruoyi-common/src/main/java/com/ruoyi/common => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/model/WhereModel.java (96%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/interceptor => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/mybatis/MybatisInterceptor.java (95%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/sql/MybatisAfterHandler.java (70%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/sql/MybatisPreHandler.java (92%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/sql/dataSecurity/DataSecurityPreHandler.java (90%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/sql/page/PageAfterHandler.java (65%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/sql/page/PagePreHandler.java (95%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/util/DataSecurityUtil.java (64%) rename {ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java => ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor}/util/SqlUtil.java (97%) diff --git a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml index 4da6e21..57f87fc 100644 --- a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml +++ b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml @@ -16,5 +16,9 @@ PUBLIC "-//mybatis.org//DTD Config 3.0//EN" - + + + + + diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/sql/DataSecurity.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/sql/DataSecurity.java deleted file mode 100644 index 6d14bd1..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/sql/DataSecurity.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ruoyi.common.annotation.sql; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import com.ruoyi.common.enums.DataSecurityStrategy; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface DataSecurity { - public DataSecurityStrategy strategy() default DataSecurityStrategy.CREEATE_BY; - - public String table() default ""; - - public String joinTableAlise() default ""; -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/sql/MybatisHandlerOrder.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/sql/MybatisHandlerOrder.java deleted file mode 100644 index 4c75c03..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/sql/MybatisHandlerOrder.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.ruoyi.common.annotation.sql; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface MybatisHandlerOrder { - public int value() default 0; -} diff --git a/ruoyi-middleware/pom.xml b/ruoyi-middleware/pom.xml index 00adf91..c6895eb 100644 --- a/ruoyi-middleware/pom.xml +++ b/ruoyi-middleware/pom.xml @@ -45,11 +45,6 @@ ${ruoyi.version} - - com.ruoyi - ruoyi-midleware-mybatis-interceptor - ${ruoyi.version} - @@ -58,7 +53,7 @@ ruoyi-middleware-minio ruoyi-middleware-redis ruoyi-middleware-starter - ruoyi-midleware-mybatis-interceptor + pom diff --git a/ruoyi-middleware/ruoyi-middleware-starter/pom.xml b/ruoyi-middleware/ruoyi-middleware-starter/pom.xml index 626ca90..bb7eca4 100644 --- a/ruoyi-middleware/ruoyi-middleware-starter/pom.xml +++ b/ruoyi-middleware/ruoyi-middleware-starter/pom.xml @@ -32,10 +32,6 @@ ruoyi-middleware-redis - - com.ruoyi - ruoyi-midleware-mybatis-interceptor - diff --git a/ruoyi-plugins/pom.xml b/ruoyi-plugins/pom.xml index 837a95a..f956740 100644 --- a/ruoyi-plugins/pom.xml +++ b/ruoyi-plugins/pom.xml @@ -80,6 +80,12 @@ ruoyi-plugins-starter ${ruoyi.version} + + com.ruoyi + ruoyi-mybatis-interceptor + ${ruoyi.version} + + @@ -90,6 +96,7 @@ ruoyi-mybatis-plus ruoyi-websocket ruoyi-plugins-starter + ruoyi-mybatis-interceptor pom - \ No newline at end of file + diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/pom.xml b/ruoyi-plugins/ruoyi-mybatis-interceptor/pom.xml similarity index 71% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/pom.xml rename to ruoyi-plugins/ruoyi-mybatis-interceptor/pom.xml index 0f4a89d..5d13862 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/pom.xml +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/pom.xml @@ -3,13 +3,13 @@ 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"> - ruoyi-middleware + ruoyi-plugins com.ruoyi 3.8.8.3.1 4.0.0 - ruoyi-midleware-mybatis-interceptor + ruoyi-mybatis-interceptor 19 @@ -19,7 +19,12 @@ com.ruoyi - ruoyi-framework + ruoyi-common + + + + org.springframework.boot + spring-boot-starter-aop diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/annotation/DataSecurity.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/annotation/DataSecurity.java similarity index 73% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/annotation/DataSecurity.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/annotation/DataSecurity.java index 8cf123b..ae9f8e3 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/annotation/DataSecurity.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/annotation/DataSecurity.java @@ -1,6 +1,6 @@ -package annotation; +package com.ruoyi.mybatisinterceptor.annotation; -import com.ruoyi.common.enums.DataSecurityStrategy; +import com.ruoyi.mybatisinterceptor.enums.DataSecurityStrategy; import java.lang.annotation.*; diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/annotation/MybatisHandlerOrder.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/annotation/MybatisHandlerOrder.java similarity index 78% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/annotation/MybatisHandlerOrder.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/annotation/MybatisHandlerOrder.java index 440c856..e897354 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/annotation/MybatisHandlerOrder.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/annotation/MybatisHandlerOrder.java @@ -1,4 +1,4 @@ -package annotation; +package com.ruoyi.mybatisinterceptor.annotation; import java.lang.annotation.*; diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/aspectj/DataSecurityAspect.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/aspectj/DataSecurityAspect.java similarity index 91% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/aspectj/DataSecurityAspect.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/aspectj/DataSecurityAspect.java index 137a38e..166b87f 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/aspectj/DataSecurityAspect.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/aspectj/DataSecurityAspect.java @@ -1,19 +1,21 @@ -package aspectj; +package com.ruoyi.mybatisinterceptor.aspectj; -import context.dataSecurity.SqlContextHolder; +import com.ruoyi.mybatisinterceptor.annotation.DataSecurity; +import com.ruoyi.mybatisinterceptor.model.JoinTableModel; +import com.ruoyi.mybatisinterceptor.model.WhereModel; +import com.ruoyi.mybatisinterceptor.context.dataSecurity.SqlContextHolder; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; -import com.ruoyi.common.annotation.sql.DataSecurity; -import com.ruoyi.common.model.JoinTableModel; -import com.ruoyi.common.model.WhereModel; + import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; + @Aspect @Component public class DataSecurityAspect { diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/dataSecurity/SqlContextHolder.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/dataSecurity/SqlContextHolder.java similarity index 85% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/dataSecurity/SqlContextHolder.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/dataSecurity/SqlContextHolder.java index 0450064..54407a6 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/dataSecurity/SqlContextHolder.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/dataSecurity/SqlContextHolder.java @@ -1,10 +1,10 @@ -package context.dataSecurity; +package com.ruoyi.mybatisinterceptor.context.dataSecurity; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; -import com.ruoyi.common.enums.SqlType; -import com.ruoyi.common.model.JoinTableModel; -import com.ruoyi.common.model.WhereModel; +import com.ruoyi.mybatisinterceptor.enums.SqlType; +import com.ruoyi.mybatisinterceptor.model.JoinTableModel; +import com.ruoyi.mybatisinterceptor.model.WhereModel; public class SqlContextHolder { private static final ThreadLocal SQL_CONTEXT_HOLDER = new ThreadLocal<>(); diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/PageContextHolder.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/PageContextHolder.java similarity index 90% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/PageContextHolder.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/PageContextHolder.java index 3e06149..4eef686 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/PageContextHolder.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/PageContextHolder.java @@ -1,7 +1,7 @@ -package context.page; +package com.ruoyi.mybatisinterceptor.context.page; import com.alibaba.fastjson2.JSONObject; -import context.page.model.PageInfo; +import com.ruoyi.mybatisinterceptor.context.page.model.PageInfo; public class PageContextHolder { private static final ThreadLocal PAGE_CONTEXT_HOLDER = new ThreadLocal<>(); diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/model/PageInfo.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/model/PageInfo.java similarity index 96% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/model/PageInfo.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/model/PageInfo.java index 3996166..e0cd7a0 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/model/PageInfo.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/model/PageInfo.java @@ -1,4 +1,4 @@ -package context.page.model; +package com.ruoyi.mybatisinterceptor.context.page.model; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.ServletUtils; diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/model/RuoyiTableData.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/model/RuoyiTableData.java similarity index 86% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/model/RuoyiTableData.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/model/RuoyiTableData.java index 346b17a..925c1fe 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/model/RuoyiTableData.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/model/RuoyiTableData.java @@ -1,4 +1,4 @@ -package context.page.model; +package com.ruoyi.mybatisinterceptor.context.page.model; import java.util.List; diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/model/TableInfo.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/model/TableInfo.java similarity index 85% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/model/TableInfo.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/model/TableInfo.java index dace74c..b055a58 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/context/page/model/TableInfo.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/context/page/model/TableInfo.java @@ -1,4 +1,4 @@ -package context.page.model; +package com.ruoyi.mybatisinterceptor.context.page.model; import java.util.ArrayList; import java.util.List; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSecurityStrategy.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/enums/DataSecurityStrategy.java similarity index 71% rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSecurityStrategy.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/enums/DataSecurityStrategy.java index f3b0770..16358c1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSecurityStrategy.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/enums/DataSecurityStrategy.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.enums; +package com.ruoyi.mybatisinterceptor.enums; public enum DataSecurityStrategy { JOINTABLE_CREATE_BY, diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/SqlType.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/enums/SqlType.java similarity index 85% rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/SqlType.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/enums/SqlType.java index b100ce7..52af7d4 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/SqlType.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/enums/SqlType.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.enums; +package com.ruoyi.mybatisinterceptor.enums; public enum SqlType { WHERE("where"), diff --git a/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/interceptor/mybatis/MybatisInterceptor.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/interceptor/mybatis/MybatisInterceptor.java new file mode 100644 index 0000000..179e150 --- /dev/null +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/interceptor/mybatis/MybatisInterceptor.java @@ -0,0 +1,129 @@ +package com.ruoyi.mybatisinterceptor.interceptor.mybatis; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import com.ruoyi.mybatisinterceptor.annotation.MybatisHandlerOrder; +import com.ruoyi.mybatisinterceptor.sql.MybatisAfterHandler; +import com.ruoyi.mybatisinterceptor.sql.MybatisPreHandler; +import org.apache.ibatis.cache.CacheKey; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.plugin.Interceptor; +import org.apache.ibatis.plugin.Intercepts; +import org.apache.ibatis.plugin.Invocation; +import org.apache.ibatis.plugin.Signature; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +import jakarta.annotation.PostConstruct; + +@Component +@Intercepts({ + @Signature(type = Executor.class, method = "query", args = { MappedStatement.class, Object.class, + RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class }), + @Signature(type = Executor.class, method = "query", args = { + MappedStatement.class, Object.class, RowBounds.class, + ResultHandler.class }) + +}) +public class MybatisInterceptor implements Interceptor { + + @Autowired + private List preHandlerBeans; + + @Autowired + private List afterHandlerBeans; + + private static List preHandlersChain; + + private static List afterHandlersChain; + + @PostConstruct + public void init() { + List sortedPreHandlers = preHandlerBeans.stream().sorted((item1, item2) -> { + int a; + int b; + MybatisHandlerOrder ann1 = item1.getClass().getAnnotation(MybatisHandlerOrder.class); + MybatisHandlerOrder ann2 = item2.getClass().getAnnotation(MybatisHandlerOrder.class); + if (ann1 == null) { + a = 0; + } else { + a = ann1.value(); + } + if (ann2 == null) { + b = 0; + } else { + b = ann2.value(); + } + return a - b; + }).collect(Collectors.toList()); + preHandlersChain = sortedPreHandlers; + + List sortedAfterHandlers = afterHandlerBeans.stream().sorted((item1, item2) -> { + int a; + int b; + MybatisHandlerOrder ann1 = item1.getClass().getAnnotation(MybatisHandlerOrder.class); + MybatisHandlerOrder ann2 = item2.getClass().getAnnotation(MybatisHandlerOrder.class); + if (ann1 == null) { + a = 0; + } else { + a = ann1.value(); + } + if (ann2 == null) { + b = 0; + } else { + b = ann2.value(); + } + return a - b; + }).collect(Collectors.toList()); + afterHandlersChain = sortedAfterHandlers; + } + + @Override + public Object intercept(Invocation invocation) throws Throwable { + Executor targetExecutor = (Executor) invocation.getTarget(); + Object[] args = invocation.getArgs(); + if (args.length < 6) { + if (preHandlersChain != null && preHandlersChain.size() > 0) { + MappedStatement ms = (MappedStatement) args[0]; + Object parameterObject = args[1]; + RowBounds rowBounds = (RowBounds) args[2]; + Executor executor = (Executor) invocation.getTarget(); + BoundSql boundSql = ms.getBoundSql(parameterObject); + // 可以对参数做各种处理 + CacheKey cacheKey = executor.createCacheKey(ms, parameterObject, rowBounds, boundSql); + for (MybatisPreHandler item : preHandlersChain) { + item.preHandle(targetExecutor, ms, args[1], (RowBounds) args[2], + (ResultHandler) args[3], cacheKey, boundSql); + } + } + Object result = invocation.proceed(); + if (afterHandlersChain != null && afterHandlersChain.size() > 0) { + for (MybatisAfterHandler item : afterHandlersChain) { + item.handleObject(result); + } + } + return result; + } + if (preHandlersChain != null && preHandlersChain.size() > 0) { + for (MybatisPreHandler item : preHandlersChain) { + item.preHandle(targetExecutor, (MappedStatement) args[0], args[1], (RowBounds) args[2], + (ResultHandler) args[3], (CacheKey) args[4], (BoundSql) args[5]); + } + } + Object result = invocation.proceed(); + if (afterHandlersChain != null && afterHandlersChain.size() > 0) { + for (MybatisAfterHandler item : afterHandlersChain) { + result = item.handleObject(result); + } + } + return result; + } + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/model/JoinTableModel.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/model/JoinTableModel.java similarity index 97% rename from ruoyi-common/src/main/java/com/ruoyi/common/model/JoinTableModel.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/model/JoinTableModel.java index 6a6cb75..50bd25d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/model/JoinTableModel.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/model/JoinTableModel.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.model; +package com.ruoyi.mybatisinterceptor.model; import com.ruoyi.common.utils.StringUtils; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/model/WhereModel.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/model/WhereModel.java similarity index 96% rename from ruoyi-common/src/main/java/com/ruoyi/common/model/WhereModel.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/model/WhereModel.java index 406b1b5..6456fb5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/model/WhereModel.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/model/WhereModel.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.model; +package com.ruoyi.mybatisinterceptor.model; import com.ruoyi.common.utils.StringUtils; @@ -64,4 +64,4 @@ public class WhereModel { public String getSqlString() { return String.format(" %s %s %s %s ", this.getConnectType(), this.getFullTableColumn(), this.method, this.value); } -} \ No newline at end of file +} diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/interceptor/mybatis/MybatisInterceptor.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/mybatis/MybatisInterceptor.java similarity index 95% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/interceptor/mybatis/MybatisInterceptor.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/mybatis/MybatisInterceptor.java index 0d9d8d0..ae7d0a3 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/interceptor/mybatis/MybatisInterceptor.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/mybatis/MybatisInterceptor.java @@ -1,8 +1,11 @@ -package interceptor.mybatis; +package com.ruoyi.mybatisinterceptor.mybatis; import java.util.List; import java.util.stream.Collectors; +import com.ruoyi.mybatisinterceptor.annotation.MybatisHandlerOrder; +import com.ruoyi.mybatisinterceptor.sql.MybatisAfterHandler; +import com.ruoyi.mybatisinterceptor.sql.MybatisPreHandler; import org.apache.ibatis.cache.CacheKey; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; @@ -16,12 +19,9 @@ import org.apache.ibatis.session.RowBounds; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import com.ruoyi.common.annotation.sql.MybatisHandlerOrder; import jakarta.annotation.PostConstruct; -import sql.MybatisAfterHandler; -import sql.MybatisPreHandler; @Component @Intercepts({ diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/MybatisAfterHandler.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/MybatisAfterHandler.java similarity index 70% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/MybatisAfterHandler.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/MybatisAfterHandler.java index a476dff..133f111 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/MybatisAfterHandler.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/MybatisAfterHandler.java @@ -1,4 +1,4 @@ -package sql; +package com.ruoyi.mybatisinterceptor.sql; public interface MybatisAfterHandler { diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/MybatisPreHandler.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/MybatisPreHandler.java similarity index 92% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/MybatisPreHandler.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/MybatisPreHandler.java index dc5f96e..5e9e2eb 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/MybatisPreHandler.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/MybatisPreHandler.java @@ -1,4 +1,4 @@ -package sql; +package com.ruoyi.mybatisinterceptor.sql; import org.apache.ibatis.cache.CacheKey; import org.apache.ibatis.executor.Executor; diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/dataSecurity/DataSecurityPreHandler.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/dataSecurity/DataSecurityPreHandler.java similarity index 90% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/dataSecurity/DataSecurityPreHandler.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/dataSecurity/DataSecurityPreHandler.java index 5bd69e3..01a5766 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/dataSecurity/DataSecurityPreHandler.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/dataSecurity/DataSecurityPreHandler.java @@ -1,8 +1,13 @@ -package sql.dataSecurity; +package com.ruoyi.mybatisinterceptor.sql.dataSecurity; import java.lang.reflect.Field; import java.util.List; +import com.ruoyi.mybatisinterceptor.annotation.MybatisHandlerOrder; +import com.ruoyi.mybatisinterceptor.context.dataSecurity.SqlContextHolder; +import com.ruoyi.mybatisinterceptor.model.JoinTableModel; +import com.ruoyi.mybatisinterceptor.model.WhereModel; +import com.ruoyi.mybatisinterceptor.sql.MybatisPreHandler; import org.apache.ibatis.cache.CacheKey; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; @@ -11,15 +16,8 @@ import org.apache.ibatis.session.ResultHandler; import org.apache.ibatis.session.RowBounds; import org.springframework.stereotype.Component; import org.springframework.util.ReflectionUtils; - -import com.ruoyi.common.annotation.sql.MybatisHandlerOrder; -import context.dataSecurity.SqlContextHolder; -import sql.MybatisPreHandler; -import com.ruoyi.common.model.JoinTableModel; -import com.ruoyi.common.model.WhereModel; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.sql.SqlUtil; - import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.expression.Alias; import net.sf.jsqlparser.expression.Expression; diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/page/PageAfterHandler.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/page/PageAfterHandler.java similarity index 65% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/page/PageAfterHandler.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/page/PageAfterHandler.java index 398b209..76d0776 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/page/PageAfterHandler.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/page/PageAfterHandler.java @@ -1,13 +1,14 @@ -package sql.page; +package com.ruoyi.mybatisinterceptor.sql.page; import java.util.List; +import com.ruoyi.mybatisinterceptor.annotation.MybatisHandlerOrder; +import com.ruoyi.mybatisinterceptor.context.page.PageContextHolder; +import com.ruoyi.mybatisinterceptor.context.page.model.TableInfo; +import com.ruoyi.mybatisinterceptor.sql.MybatisAfterHandler; import org.springframework.stereotype.Component; -import com.ruoyi.common.annotation.sql.MybatisHandlerOrder; -import context.page.PageContextHolder; -import context.page.model.TableInfo; -import sql.MybatisAfterHandler; + @MybatisHandlerOrder(1) @Component diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/page/PagePreHandler.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/page/PagePreHandler.java similarity index 95% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/page/PagePreHandler.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/page/PagePreHandler.java index f0a0d92..f7f771a 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/sql/page/PagePreHandler.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/sql/page/PagePreHandler.java @@ -1,10 +1,15 @@ -package sql.page; +package com.ruoyi.mybatisinterceptor.sql.page; import java.lang.reflect.Field; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; + +import com.ruoyi.mybatisinterceptor.annotation.MybatisHandlerOrder; +import com.ruoyi.mybatisinterceptor.context.page.PageContextHolder; +import com.ruoyi.mybatisinterceptor.context.page.model.PageInfo; +import com.ruoyi.mybatisinterceptor.sql.MybatisPreHandler; import org.apache.ibatis.cache.CacheKey; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; @@ -15,11 +20,6 @@ import org.apache.ibatis.session.ResultHandler; import org.apache.ibatis.session.RowBounds; import org.springframework.stereotype.Component; import org.springframework.util.ReflectionUtils; - -import com.ruoyi.common.annotation.sql.MybatisHandlerOrder; -import context.page.PageContextHolder; -import context.page.model.PageInfo; -import sql.MybatisPreHandler; import com.ruoyi.common.utils.sql.SqlUtil; import net.sf.jsqlparser.schema.Column; import net.sf.jsqlparser.statement.Statement; diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/util/DataSecurityUtil.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/util/DataSecurityUtil.java similarity index 64% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/util/DataSecurityUtil.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/util/DataSecurityUtil.java index b3016f0..cb360d5 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/util/DataSecurityUtil.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/util/DataSecurityUtil.java @@ -1,7 +1,7 @@ -package util; +package com.ruoyi.mybatisinterceptor.util; -import context.dataSecurity.SqlContextHolder; +import com.ruoyi.mybatisinterceptor.context.dataSecurity.SqlContextHolder; public class DataSecurityUtil { diff --git a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/util/SqlUtil.java b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/util/SqlUtil.java similarity index 97% rename from ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/util/SqlUtil.java rename to ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/util/SqlUtil.java index 277e4b1..98e1f54 100644 --- a/ruoyi-middleware/ruoyi-midleware-mybatis-interceptor/src/main/java/util/SqlUtil.java +++ b/ruoyi-plugins/ruoyi-mybatis-interceptor/src/main/java/com/ruoyi/mybatisinterceptor/util/SqlUtil.java @@ -1,4 +1,4 @@ -package util; +package com.ruoyi.mybatisinterceptor.util; import com.ruoyi.common.exception.UtilException; import com.ruoyi.common.utils.StringUtils; diff --git a/ruoyi-plugins/ruoyi-plugins-starter/pom.xml b/ruoyi-plugins/ruoyi-plugins-starter/pom.xml index 0b4107f..183d4cd 100644 --- a/ruoyi-plugins/ruoyi-plugins-starter/pom.xml +++ b/ruoyi-plugins/ruoyi-plugins-starter/pom.xml @@ -45,6 +45,11 @@ com.ruoyi ruoyi-mybatis-plus + + + com.ruoyi + ruoyi-mybatis-interceptor +