From 80b6cbfc9c861469146318d0b3dd5f8b8b525b8a Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期五, 01 十一月 2024 15:11:19 +0800
Subject: [PATCH] Revert "集成获取mdm分发通用数据格式接口集成"

---
 Source/BladeX-Tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/config/MybatisPlusConfiguration.java |  134 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 134 insertions(+), 0 deletions(-)

diff --git a/Source/BladeX-Tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/config/MybatisPlusConfiguration.java b/Source/BladeX-Tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/config/MybatisPlusConfiguration.java
new file mode 100644
index 0000000..6263cfa
--- /dev/null
+++ b/Source/BladeX-Tool/blade-starter-mybatis/src/main/java/org/springblade/core/mp/config/MybatisPlusConfiguration.java
@@ -0,0 +1,134 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 搴勯獮 (smallchill@163.com)
+ */
+package org.springblade.core.mp.config;
+
+import com.baomidou.mybatisplus.core.injector.ISqlInjector;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
+import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
+import lombok.AllArgsConstructor;
+import net.sf.jsqlparser.expression.Expression;
+import net.sf.jsqlparser.expression.StringValue;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springblade.core.launch.props.BladePropertySource;
+import org.springblade.core.mp.injector.BladeSqlInjector;
+import org.springblade.core.mp.intercept.QueryInterceptor;
+import org.springblade.core.mp.plugins.BladePaginationInterceptor;
+import org.springblade.core.mp.plugins.SqlLogInterceptor;
+import org.springblade.core.mp.props.MybatisPlusProperties;
+import org.springblade.core.mp.resolver.PageArgumentResolver;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
+import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.core.annotation.AnnotationAwareOrderComparator;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.List;
+
+/**
+ * mybatis-plus 閰嶇疆
+ *
+ * @author Chill
+ */
+@AutoConfiguration
+@AllArgsConstructor
+@MapperScan("org.springblade.**.mapper.**")
+@EnableConfigurationProperties(MybatisPlusProperties.class)
+@BladePropertySource(value = "classpath:/blade-mybatis.yml")
+public class MybatisPlusConfiguration implements WebMvcConfigurer {
+
+	/**
+	 * 绉熸埛鎷︽埅鍣�
+	 */
+	@Bean
+	@ConditionalOnMissingBean(TenantLineInnerInterceptor.class)
+	public TenantLineInnerInterceptor tenantLineInnerInterceptor() {
+		return new TenantLineInnerInterceptor(new TenantLineHandler() {
+			@Override
+			public Expression getTenantId() {
+				return new StringValue(Func.toStr(AuthUtil.getTenantId(), BladeConstant.ADMIN_TENANT_ID));
+			}
+
+			@Override
+			public boolean ignoreTable(String tableName) {
+				return true;
+			}
+		});
+	}
+
+	/**
+	 * mybatis-plus 鎷︽埅鍣ㄩ泦鍚�
+	 */
+	@Bean
+	@ConditionalOnMissingBean(MybatisPlusInterceptor.class)
+	public MybatisPlusInterceptor mybatisPlusInterceptor(ObjectProvider<QueryInterceptor[]> queryInterceptors,
+														 TenantLineInnerInterceptor tenantLineInnerInterceptor,
+														 MybatisPlusProperties mybatisPlusProperties) {
+		MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+		// 閰嶇疆绉熸埛鎷︽埅鍣�
+		if (mybatisPlusProperties.getTenantMode()) {
+			interceptor.addInnerInterceptor(tenantLineInnerInterceptor);
+		}
+		// 閰嶇疆鍒嗛〉鎷︽埅鍣�
+		BladePaginationInterceptor paginationInterceptor = new BladePaginationInterceptor();
+		// 閰嶇疆鑷畾涔夋煡璇㈡嫤鎴櫒
+		QueryInterceptor[] queryInterceptorArray = queryInterceptors.getIfAvailable();
+		if (ObjectUtil.isNotEmpty(queryInterceptorArray)) {
+			AnnotationAwareOrderComparator.sort(queryInterceptorArray);
+			paginationInterceptor.setQueryInterceptors(queryInterceptorArray);
+		}
+		paginationInterceptor.setMaxLimit(mybatisPlusProperties.getPageLimit());
+		paginationInterceptor.setOverflow(mybatisPlusProperties.getOverflow());
+		paginationInterceptor.setOptimizeJoin(mybatisPlusProperties.getOptimizeJoin());
+		interceptor.addInnerInterceptor(paginationInterceptor);
+		return interceptor;
+	}
+
+	/**
+	 * sql 鏃ュ織
+	 */
+	@Bean
+	public SqlLogInterceptor sqlLogInterceptor(MybatisPlusProperties mybatisPlusProperties) {
+		return new SqlLogInterceptor(mybatisPlusProperties);
+	}
+
+	/**
+	 * sql 娉ㄥ叆
+	 */
+	@Bean
+	@ConditionalOnMissingBean(ISqlInjector.class)
+	public ISqlInjector sqlInjector() {
+		return new BladeSqlInjector();
+	}
+
+	/**
+	 * page 瑙f瀽鍣�
+	 */
+	@Override
+	public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
+		argumentResolvers.add(new PageArgumentResolver());
+	}
+
+}
+

--
Gitblit v1.9.3