From 695cb6d76b838b1e4cb161bae335faa948dca12a Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 27 十月 2021 13:16:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into satoken

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java |   88 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 76 insertions(+), 12 deletions(-)

diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
index 5c56edd..db81b74 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
@@ -1,38 +1,102 @@
 package com.ruoyi.framework.config;
 
-import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.SqlExplainInterceptor;
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.baomidou.mybatisplus.core.injector.AbstractMethod;
+import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
+import com.baomidou.mybatisplus.core.injector.ISqlInjector;
+import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.ruoyi.common.core.mybatisplus.methods.InsertAll;
+import com.ruoyi.framework.handler.CreateAndUpdateMetaObjectHandler;
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
+import java.util.List;
+
+/**
+ * mybatis-plus閰嶇疆绫�(涓嬫柟娉ㄩ噴鏈夋彃浠朵粙缁�)
+ *
+ * @author Lion Li
+ */
 @EnableTransactionManagement(proxyTargetClass = true)
 @Configuration
+@MapperScan("${mybatis-plus.mapperPackage}")
 public class MybatisPlusConfig {
+
+	@Bean
+	public MybatisPlusInterceptor mybatisPlusInterceptor() {
+		MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+		// 鍒嗛〉鎻掍欢
+		interceptor.addInnerInterceptor(paginationInnerInterceptor());
+		// 涔愯閿佹彃浠�
+		interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
+		return interceptor;
+	}
 
 	/**
 	 * 鍒嗛〉鎻掍欢锛岃嚜鍔ㄨ瘑鍒暟鎹簱绫诲瀷
 	 */
-	@Bean
-	public PaginationInterceptor paginationInterceptor() {
-		return new PaginationInterceptor();
+	public PaginationInnerInterceptor paginationInnerInterceptor() {
+		PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+		// 璁剧疆鏈�澶у崟椤甸檺鍒舵暟閲忥紝榛樿 500 鏉★紝-1 涓嶅彈闄愬埗
+		paginationInnerInterceptor.setMaxLimit(-1L);
+		// 鍒嗛〉鍚堢悊鍖�
+		paginationInnerInterceptor.setOverflow(true);
+		return paginationInnerInterceptor;
 	}
 
 	/**
 	 * 涔愯閿佹彃浠�
 	 */
-	@Bean
-	public OptimisticLockerInterceptor optimisticLockerInterceptor() {
-		return new OptimisticLockerInterceptor();
+	public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() {
+		return new OptimisticLockerInnerInterceptor();
 	}
 
 	/**
-	 * 濡傛灉鏄鍏ㄨ〃鐨勫垹闄ゆ垨鏇存柊鎿嶄綔锛屽氨浼氱粓姝㈣鎿嶄綔
+	 * 鍏冨璞″瓧娈靛~鍏呮帶鍒跺櫒
 	 */
 	@Bean
-	public SqlExplainInterceptor sqlExplainInterceptor() {
-		return new SqlExplainInterceptor();
+	public MetaObjectHandler metaObjectHandler() {
+		return new CreateAndUpdateMetaObjectHandler();
 	}
 
+	/**
+	 * sql娉ㄥ叆鍣ㄩ厤缃�
+	 */
+	@Bean
+	public ISqlInjector sqlInjector() {
+		return new DefaultSqlInjector() {
+			@Override
+			public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {
+				List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo);
+				methodList.add(new InsertAll());
+				return methodList;
+			}
+		};
+	}
+
+	/**
+	 * PaginationInnerInterceptor 鍒嗛〉鎻掍欢锛岃嚜鍔ㄨ瘑鍒暟鎹簱绫诲瀷
+	 * https://baomidou.com/guide/interceptor-pagination.html
+	 * OptimisticLockerInnerInterceptor 涔愯閿佹彃浠�
+	 * https://baomidou.com/guide/interceptor-optimistic-locker.html
+	 * MetaObjectHandler 鍏冨璞″瓧娈靛~鍏呮帶鍒跺櫒
+	 * https://baomidou.com/guide/auto-fill-metainfo.html
+	 * ISqlInjector sql娉ㄥ叆鍣�
+	 * https://baomidou.com/guide/sql-injector.html
+	 * BlockAttackInnerInterceptor 濡傛灉鏄鍏ㄨ〃鐨勫垹闄ゆ垨鏇存柊鎿嶄綔锛屽氨浼氱粓姝㈣鎿嶄綔
+	 * https://baomidou.com/guide/interceptor-block-attack.html
+	 * IllegalSQLInnerInterceptor sql鎬ц兘瑙勮寖鎻掍欢(鍨冨溇SQL鎷︽埅)
+	 * IdentifierGenerator 鑷畾涔変富閿瓥鐣�
+	 * https://baomidou.com/guide/id-generator.html
+	 * TenantLineInnerInterceptor 澶氱鎴锋彃浠�
+	 * https://baomidou.com/guide/interceptor-tenant-line.html
+	 * DynamicTableNameInnerInterceptor 鍔ㄦ�佽〃鍚嶆彃浠�
+	 * https://baomidou.com/guide/interceptor-dynamic-table-name.html
+	 */
+
 }

--
Gitblit v1.9.3