Jelajahi Sumber

update 文件分模块

A17404李放 3 tahun lalu
induk
melakukan
fb4d2e8290
31 mengubah file dengan 267 tambahan dan 120 penghapusan
  1. 5 1
      nb-auth/pom.xml
  2. 43 0
      nb-auth/src/main/java/com/nb/auth/GlobalAuthExceptionHandler.java
  3. 3 1
      nb-auth/src/main/java/com/nb/auth/config/CreateAndUpdateMetaObjectHandler.java
  4. 17 75
      nb-auth/src/main/java/com/nb/auth/config/DefaultTenantLineInnerInterceptor.java
  5. 1 1
      nb-auth/src/main/java/com/nb/auth/config/TenantIdManager.java
  6. 1 1
      nb-common/all-common/src/main/java/com/nb/common/aspect/DataSourceAspect.java
  7. 0 3
      nb-common/delay-queue-common/src/main/java/com/nb/common/queue/delay/RedisDelayQueueAutoConfiguration.java
  8. 0 3
      nb-common/log-common/src/main/java/com/nb/common/log/LogAutoConfiguration.java
  9. 8 0
      nb-core/pom.xml
  10. 1 19
      nb-core/src/main/java/com/nb/core/GlobalExceptionHandler.java
  11. 1 1
      nb-core/src/main/java/com/nb/core/config/ApplicationConfig.java
  12. 1 1
      nb-core/src/main/java/com/nb/core/config/ValidatorConfig.java
  13. 3 3
      nb-core/src/main/java/com/nb/core/config/WebAppMvcConfig.java
  14. 4 5
      nb-core/src/main/java/com/nb/core/config/datasource/DruidConfig.java
  15. 1 1
      nb-core/src/main/java/com/nb/core/config/datasource/DynamicDataSource.java
  16. 1 1
      nb-core/src/main/java/com/nb/core/config/datasource/DynamicDataSourceContextHolder.java
  17. 64 0
      nb-core/src/main/java/com/nb/core/config/mybatisplus/MybatisPlusConfig.java
  18. 68 0
      nb-core/src/main/java/com/nb/core/config/mybatisplus/handler/CreateAndUpdateMetaObjectHandler.java
  19. 25 0
      nb-core/src/main/java/com/nb/core/config/mybatisplus/interceptor/DefaultTenantLineInnerInterceptor.java
  20. 1 1
      nb-core/src/main/java/com/nb/core/config/properties/DruidProperties.java
  21. 1 1
      nb-core/src/main/java/com/nb/core/config/serializer/BooleanToIntegerSerializer.java
  22. 1 1
      nb-core/src/main/java/com/nb/core/config/serializer/EnumConvertFactory.java
  23. 1 1
      nb-core/src/main/java/com/nb/core/config/serializer/EnumDeserializer.java
  24. 2 0
      nb-system/src/main/java/com/nb/system/mapper/BusVersionMapper.java
  25. 2 0
      nb-system/src/main/java/com/nb/system/mapper/SysApplyMapper.java
  26. 2 0
      nb-system/src/main/java/com/nb/system/mapper/SysApplyMenuMapper.java
  27. 2 0
      nb-system/src/main/java/com/nb/system/mapper/SysAreaMapper.java
  28. 2 0
      nb-system/src/main/java/com/nb/system/mapper/SysConfigMapper.java
  29. 2 0
      nb-system/src/main/java/com/nb/system/mapper/SysDeptMapper.java
  30. 2 0
      nb-system/src/main/java/com/nb/system/mapper/SysDictItemMapper.java
  31. 2 0
      nb-system/src/main/java/com/nb/system/mapper/SysDictMapper.java

+ 5 - 1
nb-auth/pom.xml

@@ -32,7 +32,11 @@
             <artifactId>hutool-http</artifactId>
             <version>${hutool.version}</version>
         </dependency>
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>provided</scope>
+        </dependency>
         <dependency>
             <groupId>com.github.xiaoymin</groupId>
             <artifactId>knife4j-spring-boot-starter</artifactId>

+ 43 - 0
nb-auth/src/main/java/com/nb/auth/GlobalAuthExceptionHandler.java

@@ -0,0 +1,43 @@
+package com.nb.auth;
+
+import cn.dev33.satoken.exception.NotLoginException;
+import cn.dev33.satoken.exception.NotPermissionException;
+import cn.dev33.satoken.exception.NotRoleException;
+import com.nb.core.exception.*;
+import com.nb.core.exception.apply.ApplyTokenParamException;
+import com.nb.core.exception.apply.NoExistAppKeyException;
+import com.nb.core.result.R;
+import com.nb.core.result.ResultCode;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.BindException;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import javax.validation.ConstraintViolationException;
+import java.util.Objects;
+
+/**
+ * 全局异常处理器
+ *
+ * @author Kevin
+ */
+@RestControllerAdvice
+@Slf4j
+public class GlobalAuthExceptionHandler {
+
+    @ExceptionHandler(NotLoginException.class)
+    public R handleNotLoginException(NotLoginException e) {
+        return R.result(ResultCode.TOKEN_ERROR);
+    }
+
+    @ExceptionHandler(NotRoleException.class)
+    public R handleNotRoleException(NotRoleException e) {
+        return R.result(ResultCode.UN_AUTHORIZED);
+    }
+
+    @ExceptionHandler(NotPermissionException.class)
+    public R handleNotPermissionException(NotPermissionException e) {
+        return R.result(ResultCode.UN_AUTHORIZED);
+    }
+}

+ 3 - 1
nb-framework/src/main/java/com/nb/framework/config/mybatisplus/handler/CreateAndUpdateMetaObjectHandler.java → nb-auth/src/main/java/com/nb/auth/config/CreateAndUpdateMetaObjectHandler.java

@@ -1,4 +1,4 @@
-package com.nb.framework.config.mybatisplus.handler;
+package com.nb.auth.config;
 
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.nb.auth.bean.LoginUser;
@@ -6,6 +6,7 @@ import com.nb.auth.utils.SecurityUtil;
 import com.nb.core.exception.CustomException;
 import com.nb.core.result.ResultCode;
 import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
@@ -19,6 +20,7 @@ import static org.springframework.web.context.request.RequestAttributes.SCOPE_RE
  *
  * @author Kevin
  */
+@Component
 public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
 
     public static final String CREATE_TIME = "createTime";

+ 17 - 75
nb-framework/src/main/java/com/nb/framework/config/mybatisplus/MybatisPlusConfig.java → nb-auth/src/main/java/com/nb/auth/config/DefaultTenantLineInnerInterceptor.java

@@ -1,56 +1,47 @@
-package com.nb.framework.config.mybatisplus;
+package com.nb.auth.config;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ClassUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
-import com.baomidou.mybatisplus.extension.plugins.inner.*;
-import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.MySqlDialect;
+import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
 import com.nb.auth.bean.LoginUser;
 import com.nb.auth.utils.SecurityUtil;
 import com.nb.core.entity.TenantGenericEntity;
-import com.nb.framework.config.mybatisplus.handler.CreateAndUpdateMetaObjectHandler;
 import net.sf.jsqlparser.expression.Expression;
 import net.sf.jsqlparser.expression.StringValue;
 import net.sf.jsqlparser.schema.Column;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.mock.web.MockHttpServletRequest;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
+
 import java.util.*;
 import java.util.stream.Collectors;
 
 import static org.springframework.web.context.request.RequestAttributes.SCOPE_REQUEST;
 
 /**
- * mybatis-plus配置类
- *
- * @author Kevin
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName DefaultTenantLineInnerInterceptor.java
+ * @Description 默认多租户插件
+ * @createTime 2022年08月02日 08:50:00
  */
-@EnableTransactionManagement(proxyTargetClass = true)
+@ConditionalOnMissingBean({TenantLineInnerInterceptor.class,TenantIdManager.class})
 @Configuration
-@MapperScan({"${mybatis-plus.mapperPackage}","com.nb.framework.test.mapper"})
-public class MybatisPlusConfig {
-
-    private final TenantIdManager tenantIdManager;
-
+public class DefaultTenantLineInnerInterceptor {
+    private final List<String> ignoreUrlTenantId= Arrays.asList("/login","/getUserInfo","/token");
     private final List<Class<?>> tableClass;
 
-    private final List<String> ignoreUrlTenantId=Arrays.asList("/login","/getUserInfo","/token");
-
     private Set<String> ignoreTableName;
-    @Autowired
-    public MybatisPlusConfig() {
-        this.tenantIdManager=new TenantIdManager();
+
+    public  DefaultTenantLineInnerInterceptor(){
         Set<Class<?>> classes = ClassUtil.scanPackage("com.nb");
         //找到所有@TableName修饰的类
         tableClass = classes.stream()
@@ -75,51 +66,11 @@ public class MybatisPlusConfig {
                 .map(aClass -> StrUtil.toUnderlineCase(aClass.getSimpleName()))
                 .collect(Collectors.toSet()));
     }
-
-    @Bean
-    public MybatisPlusInterceptor mybatisPlusInterceptor() {
-        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
-        //多租户插件
-        interceptor.addInnerInterceptor(tenantLineInnerInterceptor());
-
-        // 分页插件
-        interceptor.addInnerInterceptor(paginationInnerInterceptor());
-
-        //禁止全表更新
-        interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
-
-        // 乐观锁插件
-        interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
-
-        return interceptor;
-    }
-
-    /**
-     * 分页插件
-     */
-    public PaginationInnerInterceptor paginationInnerInterceptor() {
-        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
-
-        // 设置数据库类型为mysql
-        paginationInnerInterceptor.setDbType(DbType.MYSQL);
-        // 设置最大单页限制数量,默认 500 条,-1 不受限制
-        paginationInnerInterceptor.setMaxLimit(-1L);
-        paginationInnerInterceptor.setDialect(new MySqlDialect());
-
-        return paginationInnerInterceptor;
-    }
-
-    /**
-     * 乐观锁插件
-     */
-    public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() {
-        return new OptimisticLockerInnerInterceptor();
-    }
-
     /**
      * 多租户插件
      */
-    public TenantLineInnerInterceptor tenantLineInnerInterceptor() {
+    @Bean
+    public TenantLineInnerInterceptor tenantLineInnerInterceptor(TenantIdManager tenantIdManager) {
         TenantLineInnerInterceptor tenantInterceptor = new TenantLineInnerInterceptor();
         tenantInterceptor.setTenantLineHandler(new TenantLineHandler() {
             @Override
@@ -163,13 +114,4 @@ public class MybatisPlusConfig {
         });
         return tenantInterceptor;
     }
-
-    /**
-     * 元对象字段填充控制器
-     */
-    @Bean
-    public MetaObjectHandler metaObjectHandler() {
-        return new CreateAndUpdateMetaObjectHandler();
-    }
-
 }

+ 1 - 1
nb-framework/src/main/java/com/nb/framework/config/mybatisplus/TenantIdManager.java → nb-auth/src/main/java/com/nb/auth/config/TenantIdManager.java

@@ -1,4 +1,4 @@
-package com.nb.framework.config.mybatisplus;
+package com.nb.auth.config;
 
 import cn.hutool.core.util.StrUtil;
 import org.springframework.stereotype.Component;

+ 1 - 1
nb-common/all-common/src/main/java/com/nb/common/aspect/DataSourceAspect.java

@@ -1,7 +1,7 @@
 package com.nb.common.aspect;
 
 import com.nb.core.annotation.DataSource;
-import com.nb.common.datasource.DynamicDataSourceContextHolder;
+import com.nb.core.config.datasource.DynamicDataSourceContextHolder;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;

+ 0 - 3
nb-common/delay-queue-common/src/main/java/com/nb/common/queue/delay/RedisDelayQueueAutoConfiguration.java

@@ -7,10 +7,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplicat
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
-@Configuration
 @ConditionalOnClass(RedissonClient.class)
-@ConditionalOnResource(resources = "META-INF/spring.factories")
-@ConditionalOnWebApplication
 @ComponentScan("com.nb.common.queue.delay")
 public class RedisDelayQueueAutoConfiguration {
 

+ 0 - 3
nb-common/log-common/src/main/java/com/nb/common/log/LogAutoConfiguration.java

@@ -8,10 +8,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplicat
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
-@Configuration
 @ConditionalOnClass(SecurityUtil.class)
-@ConditionalOnResource(resources = "META-INF/spring.factories")
-@ConditionalOnWebApplication
 @ComponentScan("com.nb.common.log")
 @MapperScan({"com.nb.common.log.mapper"})
 public class LogAutoConfiguration {

+ 8 - 0
nb-core/pom.xml

@@ -14,6 +14,10 @@
     <description>核心包,包含了一些基础信息</description>
 
     <dependencies>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.redisson</groupId>
             <artifactId>redisson-spring-boot-starter</artifactId>
@@ -57,5 +61,9 @@
             <groupId>com.alibaba</groupId>
             <artifactId>easyexcel</artifactId>
         </dependency>
+        <dependency>
+        <groupId>org.hibernate.validator</groupId>
+        <artifactId>hibernate-validator</artifactId>
+    </dependency>
     </dependencies>
 </project>

+ 1 - 19
nb-framework/src/main/java/com/nb/framework/web/exception/GlobalExceptionHandler.java → nb-core/src/main/java/com/nb/core/GlobalExceptionHandler.java

@@ -1,8 +1,5 @@
-package com.nb.framework.web.exception;
+package com.nb.core;
 
-import cn.dev33.satoken.exception.NotLoginException;
-import cn.dev33.satoken.exception.NotPermissionException;
-import cn.dev33.satoken.exception.NotRoleException;
 import com.nb.core.exception.CustomException;
 import com.nb.core.exception.*;
 import com.nb.core.exception.apply.ApplyTokenParamException;
@@ -54,21 +51,6 @@ public class GlobalExceptionHandler {
         return R.success(ResultCode.TENANT_NONE);
     }
 
-    @ExceptionHandler(NotLoginException.class)
-    public R handleNotLoginException(NotLoginException e) {
-        return R.result(ResultCode.TOKEN_ERROR);
-    }
-
-    @ExceptionHandler(NotRoleException.class)
-    public R handleNotRoleException(NotRoleException e) {
-        return R.result(ResultCode.UN_AUTHORIZED);
-    }
-
-    @ExceptionHandler(NotPermissionException.class)
-    public R handleNotPermissionException(NotPermissionException e) {
-        return R.result(ResultCode.UN_AUTHORIZED);
-    }
-
     @ExceptionHandler(RuntimeException.class)
     public R handleRuntimeException(RuntimeException e) {
         return R.fail(e.getLocalizedMessage());

+ 1 - 1
nb-framework/src/main/java/com/nb/framework/config/ApplicationConfig.java → nb-core/src/main/java/com/nb/core/config/ApplicationConfig.java

@@ -1,4 +1,4 @@
-package com.nb.framework.config;
+package com.nb.core.config;
 
 import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.databind.JsonSerializer;

+ 1 - 1
nb-framework/src/main/java/com/nb/framework/config/ValidatorConfig.java → nb-core/src/main/java/com/nb/core/config/ValidatorConfig.java

@@ -1,4 +1,4 @@
-package com.nb.framework.config;
+package com.nb.core.config;
 
 import org.hibernate.validator.HibernateValidator;
 import org.springframework.context.annotation.Bean;

+ 3 - 3
nb-framework/src/main/java/com/nb/framework/config/WebAppMvcConfig.java → nb-core/src/main/java/com/nb/core/config/WebAppMvcConfig.java

@@ -1,9 +1,7 @@
-package com.nb.framework.config;
+package com.nb.core.config;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
-import com.nb.common.config.BooleanToIntegerSerializer;
-import com.nb.framework.config.convert.EnumDeserializer;
 import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -11,6 +9,8 @@ import com.fasterxml.jackson.databind.*;
 import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer;
 import com.fasterxml.jackson.databind.module.SimpleModule;
 import com.fasterxml.jackson.databind.ser.std.StringSerializer;
+import com.nb.core.config.serializer.BooleanToIntegerSerializer;
+import com.nb.core.config.serializer.EnumDeserializer;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.context.annotation.Configuration;

+ 4 - 5
nb-framework/src/main/java/com/nb/framework/config/DruidConfig.java → nb-core/src/main/java/com/nb/core/config/datasource/DruidConfig.java

@@ -1,4 +1,4 @@
-package com.nb.framework.config;
+package com.nb.core.config.datasource;
 
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.druid.pool.DruidDataSource;
@@ -6,9 +6,7 @@ import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
 import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
 import com.alibaba.druid.util.Utils;
 import com.nb.core.enums.DataSourceTypeEnum;
-import com.nb.framework.config.properties.DruidProperties;
-import com.nb.common.datasource.DynamicDataSource;
-import com.google.common.collect.Maps;
+import com.nb.core.config.properties.DruidProperties;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
@@ -19,6 +17,7 @@ import org.springframework.context.annotation.Primary;
 import javax.servlet.*;
 import javax.sql.DataSource;
 import java.io.IOException;
+import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -46,7 +45,7 @@ public class DruidConfig {
     @Bean(name = "dynamicDataSource")
     @Primary
     public DynamicDataSource dataSource(DataSource masterDataSource) {
-        Map<Object, Object> targetDataSources = Maps.newHashMap();
+        Map<Object, Object> targetDataSources = new HashMap<>();
         targetDataSources.put(DataSourceTypeEnum.MASTER.name(), masterDataSource);
         setDataSource(targetDataSources, DataSourceTypeEnum.SLAVE.name(), "slaveDataSource");
         return new DynamicDataSource(masterDataSource, targetDataSources);

+ 1 - 1
nb-common/all-common/src/main/java/com/nb/common/datasource/DynamicDataSource.java → nb-core/src/main/java/com/nb/core/config/datasource/DynamicDataSource.java

@@ -1,4 +1,4 @@
-package com.nb.common.datasource;
+package com.nb.core.config.datasource;
 
 import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
 

+ 1 - 1
nb-common/all-common/src/main/java/com/nb/common/datasource/DynamicDataSourceContextHolder.java → nb-core/src/main/java/com/nb/core/config/datasource/DynamicDataSourceContextHolder.java

@@ -1,4 +1,4 @@
-package com.nb.common.datasource;
+package com.nb.core.config.datasource;
 
 import lombok.extern.slf4j.Slf4j;
 

+ 64 - 0
nb-core/src/main/java/com/nb/core/config/mybatisplus/MybatisPlusConfig.java

@@ -0,0 +1,64 @@
+package com.nb.core.config.mybatisplus;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.dialects.MySqlDialect;
+import com.nb.core.config.mybatisplus.handler.CreateAndUpdateMetaObjectHandler;
+import lombok.AllArgsConstructor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+/**
+ * mybatis-plus配置类
+ *
+ * @author Kevin
+ */
+@EnableTransactionManagement(proxyTargetClass = true)
+@AllArgsConstructor
+@MapperScan({"${mybatis-plus.mapperPackage}","com.nb.framework.test.mapper","com.nb"})
+public class MybatisPlusConfig {
+    private final TenantLineInnerInterceptor tenantLineInnerInterceptor;
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        //多租户插件
+        interceptor.addInnerInterceptor(tenantLineInnerInterceptor);
+
+        // 分页插件
+        interceptor.addInnerInterceptor(paginationInnerInterceptor());
+
+        //禁止全表更新
+        interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
+
+        // 乐观锁插件
+        interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
+
+        return interceptor;
+    }
+
+    /**
+     * 分页插件
+     */
+    @Bean
+    public PaginationInnerInterceptor paginationInnerInterceptor() {
+        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+
+        // 设置数据库类型为mysql
+        paginationInnerInterceptor.setDbType(DbType.MYSQL);
+        // 设置最大单页限制数量,默认 500 条,-1 不受限制
+        paginationInnerInterceptor.setMaxLimit(-1L);
+        paginationInnerInterceptor.setDialect(new MySqlDialect());
+
+        return paginationInnerInterceptor;
+    }
+
+    /**
+     * 乐观锁插件
+     */
+    public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() {
+        return new OptimisticLockerInnerInterceptor();
+    }
+
+}

+ 68 - 0
nb-core/src/main/java/com/nb/core/config/mybatisplus/handler/CreateAndUpdateMetaObjectHandler.java

@@ -0,0 +1,68 @@
+package com.nb.core.config.mybatisplus.handler;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.nb.core.exception.CustomException;
+import com.nb.core.result.ResultCode;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import java.util.Date;
+
+import static org.springframework.web.context.request.RequestAttributes.SCOPE_REQUEST;
+
+/**
+ * MP注入处理器
+ *
+ * @author Kevin
+ */
+@Component
+@ConditionalOnMissingBean(MetaObjectHandler.class)
+public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
+
+    public static final String CREATE_TIME = "createTime";
+    public static final String UPDATE_TIME = "updateTime";
+
+    public static final String IS_DELETE = "isDelete";
+
+    public static final String TENANT_ID="tenantId";
+
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        try {
+            if (metaObject.hasGetter(CREATE_TIME) && metaObject.getValue(CREATE_TIME) == null) {
+                this.strictInsertFill(metaObject, CREATE_TIME, Date.class, new Date());
+            }
+            if (metaObject.hasGetter(IS_DELETE) && metaObject.getValue(IS_DELETE) == null) {
+                this.strictInsertFill(metaObject, IS_DELETE, Integer.class,0);
+            }
+            if (metaObject.hasGetter(UPDATE_TIME) && metaObject.getValue(UPDATE_TIME) == null) {
+                this.strictUpdateFill(metaObject, UPDATE_TIME, Date.class, new Date());
+            }
+            if (metaObject.hasGetter(TENANT_ID) && metaObject.getValue(TENANT_ID) == null) {
+                ServletRequestAttributes request = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+                String tenantId ="1";
+                if(request!=null){
+                    tenantId = String.valueOf(request.getAttribute("tenantId", SCOPE_REQUEST));
+                }
+                this.strictInsertFill(metaObject, TENANT_ID, String.class, tenantId);
+            }
+        } catch (Exception e) {
+            throw new CustomException(ResultCode.INTERNAL_SERVER_ERROR.getMessage());
+        }
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        try {
+            if (metaObject.hasGetter(UPDATE_TIME) && metaObject.getValue(UPDATE_TIME) == null) {
+                this.strictUpdateFill(metaObject, UPDATE_TIME, Date.class, new Date());
+            }
+        } catch (Exception e) {
+            throw new CustomException(ResultCode.INTERNAL_SERVER_ERROR.getMessage());
+        }
+    }
+
+}

+ 25 - 0
nb-core/src/main/java/com/nb/core/config/mybatisplus/interceptor/DefaultTenantLineInnerInterceptor.java

@@ -0,0 +1,25 @@
+package com.nb.core.config.mybatisplus.interceptor;
+
+import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName DefaultTenantLineInnerInterceptor.java
+ * @Description 默认多租户插件
+ * @createTime 2022年08月02日 08:50:00
+ */
+@ConditionalOnBean(TenantLineInnerInterceptor.class)
+@Configuration
+public class DefaultTenantLineInnerInterceptor {
+    /**
+     * 多租户插件
+     */
+    @Bean
+    public TenantLineInnerInterceptor tenantLineInnerInterceptor() {
+        return new TenantLineInnerInterceptor();
+    }
+}

+ 1 - 1
nb-framework/src/main/java/com/nb/framework/config/properties/DruidProperties.java → nb-core/src/main/java/com/nb/core/config/properties/DruidProperties.java

@@ -1,4 +1,4 @@
-package com.nb.framework.config.properties;
+package com.nb.core.config.properties;
 
 import com.alibaba.druid.pool.DruidDataSource;
 import lombok.Data;

+ 1 - 1
nb-common/all-common/src/main/java/com/nb/common/config/BooleanToIntegerSerializer.java → nb-core/src/main/java/com/nb/core/config/serializer/BooleanToIntegerSerializer.java

@@ -1,4 +1,4 @@
-package com.nb.common.config;
+package com.nb.core.config.serializer;
 
 import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.databind.JsonSerializer;

+ 1 - 1
nb-framework/src/main/java/com/nb/framework/config/convert/EnumConvertFactory.java → nb-core/src/main/java/com/nb/core/config/serializer/EnumConvertFactory.java

@@ -1,4 +1,4 @@
-package com.nb.framework.config.convert;
+package com.nb.core.config.serializer;
 
 import com.baomidou.mybatisplus.annotation.IEnum;
 import org.springframework.core.convert.converter.Converter;

+ 1 - 1
nb-framework/src/main/java/com/nb/framework/config/convert/EnumDeserializer.java → nb-core/src/main/java/com/nb/core/config/serializer/EnumDeserializer.java

@@ -1,4 +1,4 @@
-package com.nb.framework.config.convert;
+package com.nb.core.config.serializer;
 
 import com.baomidou.mybatisplus.annotation.IEnum;
 import com.nb.core.Value;

+ 2 - 0
nb-system/src/main/java/com/nb/system/mapper/BusVersionMapper.java

@@ -2,6 +2,7 @@ package com.nb.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nb.bus.entity.BusVersionEntity;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.nb.bus.entity.BusVersionEntity;
  * @author Kevin
  * @since 2021-06-10
  */
+@Mapper
 public interface BusVersionMapper extends BaseMapper<BusVersionEntity> {
 
 }

+ 2 - 0
nb-system/src/main/java/com/nb/system/mapper/SysApplyMapper.java

@@ -2,6 +2,7 @@ package com.nb.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nb.system.entity.SysApply;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.nb.system.entity.SysApply;
  * @author Kevin
  * @since 2021-08-08
  */
+@Mapper
 public interface SysApplyMapper extends BaseMapper<SysApply> {
 
 }

+ 2 - 0
nb-system/src/main/java/com/nb/system/mapper/SysApplyMenuMapper.java

@@ -3,6 +3,7 @@ package com.nb.system.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nb.system.entity.SysApplyMenu;
 import com.nb.system.entity.SysRoleMenu;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,6 +13,7 @@ import com.nb.system.entity.SysRoleMenu;
  * @author Kevin
  * @since 2021-07-05
  */
+@Mapper
 public interface SysApplyMenuMapper extends BaseMapper<SysApplyMenu> {
 
 }

+ 2 - 0
nb-system/src/main/java/com/nb/system/mapper/SysAreaMapper.java

@@ -2,6 +2,7 @@ package com.nb.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nb.system.entity.SysArea;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.nb.system.entity.SysArea;
  * @author Kevin
  * @since 2021-08-08
  */
+@Mapper
 public interface SysAreaMapper extends BaseMapper<SysArea> {
 
 }

+ 2 - 0
nb-system/src/main/java/com/nb/system/mapper/SysConfigMapper.java

@@ -2,6 +2,7 @@ package com.nb.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nb.system.entity.SysConfig;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.nb.system.entity.SysConfig;
  * @author Kevin
  * @since 2021-06-10
  */
+@Mapper
 public interface SysConfigMapper extends BaseMapper<SysConfig> {
 
 }

+ 2 - 0
nb-system/src/main/java/com/nb/system/mapper/SysDeptMapper.java

@@ -2,6 +2,7 @@ package com.nb.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nb.system.entity.SysDept;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.nb.system.entity.SysDept;
  * @author Kevin
  * @since 2021-06-10
  */
+@Mapper
 public interface SysDeptMapper extends BaseMapper<SysDept> {
 
 }

+ 2 - 0
nb-system/src/main/java/com/nb/system/mapper/SysDictItemMapper.java

@@ -2,6 +2,7 @@ package com.nb.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nb.system.entity.SysDictItem;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.nb.system.entity.SysDictItem;
  * @author Kevin
  * @since 2021-06-10
  */
+@Mapper
 public interface SysDictItemMapper extends BaseMapper<SysDictItem> {
 
 }

+ 2 - 0
nb-system/src/main/java/com/nb/system/mapper/SysDictMapper.java

@@ -2,6 +2,7 @@ package com.nb.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nb.system.entity.SysDict;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.nb.system.entity.SysDict;
  * @author Kevin
  * @since 2021-06-10
  */
+@Mapper
 public interface SysDictMapper extends BaseMapper<SysDict> {
 
 }