KEY_CACHE = new ThreadLocal<>();
diff --git a/ruoyi-common/ruoyi-common-idempotent/src/main/java/com/ruoyi/common/idempotent/config/IdempotentConfig.java b/ruoyi-common/ruoyi-common-idempotent/src/main/java/com/ruoyi/common/idempotent/config/IdempotentConfig.java
new file mode 100644
index 000000000..79f8d144a
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-idempotent/src/main/java/com/ruoyi/common/idempotent/config/IdempotentConfig.java
@@ -0,0 +1,21 @@
+package com.ruoyi.common.idempotent.config;
+
+import com.ruoyi.common.idempotent.aspectj.RepeatSubmitAspect;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.data.redis.connection.RedisConfiguration;
+
+/**
+ * 幂等功能配置
+ *
+ * @author Lion Li
+ */
+@AutoConfiguration(after = RedisConfiguration.class)
+public class IdempotentConfig {
+
+ @Bean
+ public RepeatSubmitAspect repeatSubmitAspect() {
+ return new RepeatSubmitAspect();
+ }
+
+}
diff --git a/ruoyi-common/ruoyi-common-idempotent/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-idempotent/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..354151714
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-idempotent/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.ruoyi.common.idempotent.config.IdempotentConfig
diff --git a/ruoyi-common/ruoyi-common-log/pom.xml b/ruoyi-common/ruoyi-common-log/pom.xml
new file mode 100644
index 000000000..e89a283d1
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-log/pom.xml
@@ -0,0 +1,26 @@
+
+
+
+ com.ruoyi
+ ruoyi-common
+ ${revision}
+ ../pom.xml
+
+ 4.0.0
+
+ ruoyi-common-log
+
+
+ ruoyi-common-log 日志记录
+
+
+
+
+ com.ruoyi
+ ruoyi-common-satoken
+
+
+
+
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/annotation/Log.java
similarity index 83%
rename from ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java
rename to ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/annotation/Log.java
index 32c39a3b0..fb79861dd 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/annotation/Log.java
@@ -1,7 +1,7 @@
-package com.ruoyi.common.annotation;
+package com.ruoyi.common.log.annotation;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.enums.OperatorType;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.log.enums.OperatorType;
import java.lang.annotation.*;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
similarity index 92%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
rename to ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
index e7efb028a..393954da4 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
@@ -1,22 +1,23 @@
-package com.ruoyi.framework.aspectj;
+package com.ruoyi.common.log.aspect;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.domain.event.OperLogEvent;
-import com.ruoyi.common.enums.BusinessStatus;
-import com.ruoyi.common.enums.HttpMethod;
-import com.ruoyi.common.helper.LoginHelper;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.ServletUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.core.utils.JsonUtils;
+import com.ruoyi.common.core.utils.ServletUtils;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessStatus;
+import com.ruoyi.common.log.event.OperLogEvent;
+import com.ruoyi.common.satoken.utils.LoginHelper;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Component;
import org.springframework.validation.BindingResult;
import org.springframework.web.multipart.MultipartFile;
@@ -34,6 +35,7 @@ import java.util.Map;
@Slf4j
@Aspect
@Component
+@AutoConfiguration
public class LogAspect {
/**
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessStatus.java
similarity index 81%
rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java
rename to ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessStatus.java
index ce32cb41c..716c4cc5b 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessStatus.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.enums;
+package com.ruoyi.common.log.enums;
/**
* 操作状态
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessType.java
similarity index 93%
rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java
rename to ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessType.java
index 2d2f2e463..7314de586 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/BusinessType.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.enums;
+package com.ruoyi.common.log.enums;
/**
* 业务操作类型
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/OperatorType.java
similarity index 85%
rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java
rename to ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/OperatorType.java
index 3c4127d98..a93394a1d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/enums/OperatorType.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.enums;
+package com.ruoyi.common.log.enums;
/**
* 操作人类别
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/LogininforEvent.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/event/LogininforEvent.java
similarity index 93%
rename from ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/LogininforEvent.java
rename to ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/event/LogininforEvent.java
index c02e05781..e52e10292 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/LogininforEvent.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/event/LogininforEvent.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.core.domain.event;
+package com.ruoyi.common.log.event;
import lombok.Data;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/OperLogEvent.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/event/OperLogEvent.java
similarity index 97%
rename from ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/OperLogEvent.java
rename to ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/event/OperLogEvent.java
index 7ef44a177..be07dd0d4 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/event/OperLogEvent.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/event/OperLogEvent.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.core.domain.event;
+package com.ruoyi.common.log.event;
import lombok.Data;
diff --git a/ruoyi-common/ruoyi-common-log/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-log/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..b8e32230d
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-log/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.ruoyi.common.log.aspect.LogAspect
diff --git a/ruoyi-common/ruoyi-common-mail/pom.xml b/ruoyi-common/ruoyi-common-mail/pom.xml
new file mode 100644
index 000000000..17d80d88e
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-mail/pom.xml
@@ -0,0 +1,31 @@
+
+
+
+ com.ruoyi
+ ruoyi-common
+ ${revision}
+ ../pom.xml
+
+ 4.0.0
+
+ ruoyi-common-mail
+
+
+ ruoyi-common-mail 邮件模块
+
+
+
+
+ com.ruoyi
+ ruoyi-common-core
+
+
+
+ jakarta.mail
+ jakarta.mail-api
+
+
+
+
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MailConfig.java b/ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/config/MailConfig.java
similarity index 73%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/MailConfig.java
rename to ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/config/MailConfig.java
index 20769aa19..44a95b6ce 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MailConfig.java
+++ b/ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/config/MailConfig.java
@@ -1,21 +1,23 @@
-package com.ruoyi.framework.config;
+package com.ruoyi.common.mail.config;
import cn.hutool.extra.mail.MailAccount;
-import com.ruoyi.framework.config.properties.MailProperties;
+import com.ruoyi.common.mail.config.properties.MailProperties;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
/**
* JavaMail 配置
*
* @author Michelle.Chung
*/
-@Configuration
+@AutoConfiguration
+@ConditionalOnProperty(value = "mail.enabled", havingValue = "true")
+@EnableConfigurationProperties(MailProperties.class)
public class MailConfig {
@Bean
- @ConditionalOnProperty(value = "mail.enabled", havingValue = "true")
public MailAccount mailAccount(MailProperties mailProperties) {
MailAccount account = new MailAccount();
account.setHost(mailProperties.getHost());
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/MailProperties.java b/ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/config/properties/MailProperties.java
similarity index 96%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/MailProperties.java
rename to ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/config/properties/MailProperties.java
index 95e6cb8ba..4472fff39 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/MailProperties.java
+++ b/ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/config/properties/MailProperties.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.config.properties;
+package com.ruoyi.common.mail.config.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/email/MailUtils.java b/ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/utils/MailUtils.java
similarity index 99%
rename from ruoyi-common/src/main/java/com/ruoyi/common/utils/email/MailUtils.java
rename to ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/utils/MailUtils.java
index a3ed32d03..81f28341f 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/email/MailUtils.java
+++ b/ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/utils/MailUtils.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.utils.email;
+package com.ruoyi.common.mail.utils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
@@ -6,8 +6,8 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.mail.*;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/email/UserPassAuthenticator.java b/ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/utils/UserPassAuthenticator.java
similarity index 93%
rename from ruoyi-common/src/main/java/com/ruoyi/common/utils/email/UserPassAuthenticator.java
rename to ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/utils/UserPassAuthenticator.java
index d3e0fc84f..8d4d6f3ff 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/email/UserPassAuthenticator.java
+++ b/ruoyi-common/ruoyi-common-mail/src/main/java/com/ruoyi/common/mail/utils/UserPassAuthenticator.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.utils.email;
+package com.ruoyi.common.mail.utils;
import jakarta.mail.Authenticator;
import jakarta.mail.PasswordAuthentication;
diff --git a/ruoyi-common/ruoyi-common-mail/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-mail/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..f067b8b6e
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-mail/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.ruoyi.common.mail.config.MailConfig
diff --git a/ruoyi-common/ruoyi-common-mybatis/pom.xml b/ruoyi-common/ruoyi-common-mybatis/pom.xml
new file mode 100644
index 000000000..67e381f00
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-mybatis/pom.xml
@@ -0,0 +1,48 @@
+
+
+
+ com.ruoyi
+ ruoyi-common
+ ${revision}
+ ../pom.xml
+
+ 4.0.0
+
+ ruoyi-common-mybatis
+
+
+ ruoyi-common-mybatis 数据库服务
+
+
+
+
+ com.ruoyi
+ ruoyi-common-core
+
+
+
+ com.ruoyi
+ ruoyi-common-satoken
+
+
+
+
+ com.baomidou
+ dynamic-datasource-spring-boot-starter
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+
+
+
+
+ p6spy
+ p6spy
+
+
+
+
diff --git a/ruoyi-common/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaHeaderProcessor.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaHeaderProcessor.java
similarity index 100%
rename from ruoyi-common/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaHeaderProcessor.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaHeaderProcessor.java
diff --git a/ruoyi-common/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaSessionProcessor.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaSessionProcessor.java
similarity index 100%
rename from ruoyi-common/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaSessionProcessor.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaSessionProcessor.java
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/annotation/DataColumn.java
similarity index 90%
rename from ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/annotation/DataColumn.java
index df416edc8..bf703a232 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/annotation/DataColumn.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.annotation;
+package com.ruoyi.common.mybatis.annotation;
import java.lang.annotation.*;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataPermission.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/annotation/DataPermission.java
similarity index 85%
rename from ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataPermission.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/annotation/DataPermission.java
index 73d9c039c..288c195b3 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataPermission.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/annotation/DataPermission.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.annotation;
+package com.ruoyi.common.mybatis.annotation;
import java.lang.annotation.*;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/config/MybatisPlusConfig.java
similarity index 92%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/config/MybatisPlusConfig.java
index ffd2c1553..ea76cb3ac 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/config/MybatisPlusConfig.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.config;
+package com.ruoyi.common.mybatis.config;
import cn.hutool.core.net.NetUtil;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
@@ -7,11 +7,11 @@ import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
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.framework.handler.CreateAndUpdateMetaObjectHandler;
-import com.ruoyi.framework.interceptor.PlusDataPermissionInterceptor;
+import com.ruoyi.common.mybatis.handler.CreateAndUpdateMetaObjectHandler;
+import com.ruoyi.common.mybatis.interceptor.PlusDataPermissionInterceptor;
import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
@@ -20,7 +20,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
* @author Lion Li
*/
@EnableTransactionManagement(proxyTargetClass = true)
-@Configuration
+@AutoConfiguration
@MapperScan("${mybatis-plus.mapperPackage}")
public class MybatisPlusConfig {
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java
similarity index 98%
rename from ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java
index 0a8539ad6..2c40e177e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.core.mapper;
+package com.ruoyi.common.mybatis.core.mapper;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.Db;
-import com.ruoyi.common.utils.BeanCopyUtils;
+import com.ruoyi.common.core.utils.BeanCopyUtils;
import org.apache.ibatis.logging.Log;
import org.apache.ibatis.logging.LogFactory;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/page/PageQuery.java
similarity index 94%
rename from ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/page/PageQuery.java
index 06f53a127..30a3e2dc5 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/PageQuery.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/page/PageQuery.java
@@ -1,12 +1,12 @@
-package com.ruoyi.common.core.domain;
+package com.ruoyi.common.mybatis.core.page;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.sql.SqlUtil;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.sql.SqlUtil;
import lombok.Data;
import java.io.Serial;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/page/TableDataInfo.java
similarity index 97%
rename from ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/page/TableDataInfo.java
index 8bfe0490b..feaf03f2b 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/page/TableDataInfo.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.core.page;
+package com.ruoyi.common.mybatis.core.page;
import cn.hutool.http.HttpStatus;
import com.baomidou.mybatisplus.core.metadata.IPage;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataBaseType.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/enums/DataBaseType.java
similarity index 89%
rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/DataBaseType.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/enums/DataBaseType.java
index 5d0f05ad7..b50667e65 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataBaseType.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/enums/DataBaseType.java
@@ -1,6 +1,6 @@
-package com.ruoyi.common.enums;
+package com.ruoyi.common.mybatis.enums;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/enums/DataScopeType.java
similarity index 88%
rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/enums/DataScopeType.java
index 64324652b..0abb3b26f 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/enums/DataScopeType.java
@@ -1,6 +1,6 @@
-package com.ruoyi.common.enums;
+package com.ruoyi.common.mybatis.enums;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -10,7 +10,7 @@ import lombok.Getter;
* 语法支持 spel 模板表达式
*
* 内置数据 user 当前用户 内容参考 LoginUser
- * 如需扩展数据 可使用 {@link com.ruoyi.common.helper.DataPermissionHelper} 操作
+ * 如需扩展数据 可使用 {@link com.ruoyi.common.mybatis.helper.DataPermissionHelper} 操作
* 内置服务 sdss 系统数据权限服务 内容参考 SysDataScopeService
* 如需扩展更多自定义服务 可以参考 sdss 自行编写
*
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/CreateAndUpdateMetaObjectHandler.java
similarity index 91%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/CreateAndUpdateMetaObjectHandler.java
index 6d7c977de..4ab329de8 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/CreateAndUpdateMetaObjectHandler.java
@@ -1,13 +1,13 @@
-package com.ruoyi.framework.handler;
+package com.ruoyi.common.mybatis.handler;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpStatus;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.helper.LoginHelper;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import com.ruoyi.common.satoken.utils.LoginHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/PlusDataPermissionHandler.java
similarity index 93%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/PlusDataPermissionHandler.java
index 3825a0ba7..955352527 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/handler/PlusDataPermissionHandler.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.handler;
+package com.ruoyi.common.mybatis.handler;
import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.collection.CollUtil;
@@ -6,17 +6,17 @@ import cn.hutool.core.collection.ConcurrentHashSet;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ClassUtil;
import cn.hutool.core.util.ObjectUtil;
-import com.ruoyi.common.annotation.DataColumn;
-import com.ruoyi.common.annotation.DataPermission;
import com.ruoyi.common.core.domain.dto.RoleDTO;
import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.enums.DataScopeType;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.helper.DataPermissionHelper;
-import com.ruoyi.common.helper.LoginHelper;
-import com.ruoyi.common.utils.StreamUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.core.utils.StreamUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.mybatis.annotation.DataColumn;
+import com.ruoyi.common.mybatis.annotation.DataPermission;
+import com.ruoyi.common.mybatis.enums.DataScopeType;
+import com.ruoyi.common.mybatis.helper.DataPermissionHelper;
+import com.ruoyi.common.satoken.utils.LoginHelper;
import lombok.extern.slf4j.Slf4j;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.expression.Expression;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataBaseHelper.java
similarity index 92%
rename from ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataBaseHelper.java
index 196035629..c09017959 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataBaseHelper.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataBaseHelper.java
@@ -1,10 +1,10 @@
-package com.ruoyi.common.helper;
+package com.ruoyi.common.mybatis.helper;
import cn.hutool.core.convert.Convert;
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
-import com.ruoyi.common.enums.DataBaseType;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.mybatis.enums.DataBaseType;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataPermissionHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataPermissionHelper.java
similarity index 97%
rename from ruoyi-common/src/main/java/com/ruoyi/common/helper/DataPermissionHelper.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataPermissionHelper.java
index 0e60485ad..9555b0143 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/DataPermissionHelper.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/DataPermissionHelper.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.helper;
+package com.ruoyi.common.mybatis.helper;
import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.context.model.SaStorage;
diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/MybatisExceptionHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/MybatisExceptionHandler.java
new file mode 100644
index 000000000..532cd7984
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/helper/MybatisExceptionHandler.java
@@ -0,0 +1,46 @@
+package com.ruoyi.common.mybatis.helper;
+
+import com.ruoyi.common.core.domain.R;
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.MyBatisSystemException;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import jakarta.servlet.http.HttpServletRequest;
+
+/**
+ * Mybatis异常处理器
+ *
+ * @author Lion Li
+ */
+@Slf4j
+@RestControllerAdvice
+public class MybatisExceptionHandler {
+
+ /**
+ * 主键或UNIQUE索引,数据重复异常
+ */
+ @ExceptionHandler(DuplicateKeyException.class)
+ public R handleDuplicateKeyException(DuplicateKeyException e, HttpServletRequest request) {
+ String requestURI = request.getRequestURI();
+ log.error("请求地址'{}',数据库中已存在记录'{}'", requestURI, e.getMessage());
+ return R.fail("数据库中已存在该记录,请联系管理员确认");
+ }
+
+ /**
+ * Mybatis系统异常 通用处理
+ */
+ @ExceptionHandler(MyBatisSystemException.class)
+ public R handleCannotFindDataSourceException(MyBatisSystemException e, HttpServletRequest request) {
+ String requestURI = request.getRequestURI();
+ String message = e.getMessage();
+ if (message.contains("CannotFindDataSourceException")) {
+ log.error("请求地址'{}', 未找到数据源", requestURI);
+ return R.fail("未找到数据源,请联系管理员确认");
+ }
+ log.error("请求地址'{}', Mybatis系统异常", requestURI, e);
+ return R.fail(message);
+ }
+
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusDataPermissionInterceptor.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/interceptor/PlusDataPermissionInterceptor.java
similarity index 97%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusDataPermissionInterceptor.java
rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/interceptor/PlusDataPermissionInterceptor.java
index 508f42167..9b6a0b07a 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusDataPermissionInterceptor.java
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/interceptor/PlusDataPermissionInterceptor.java
@@ -1,10 +1,10 @@
-package com.ruoyi.framework.interceptor;
+package com.ruoyi.common.mybatis.interceptor;
import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
import com.baomidou.mybatisplus.extension.parser.JsqlParserSupport;
import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
-import com.ruoyi.framework.handler.PlusDataPermissionHandler;
+import com.ruoyi.common.mybatis.handler.PlusDataPermissionHandler;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.statement.delete.Delete;
import net.sf.jsqlparser.statement.select.PlainSelect;
diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..dbcd9a1b5
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-mybatis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.ruoyi.common.mybatis.config.MybatisPlusConfig
diff --git a/ruoyi-oss/pom.xml b/ruoyi-common/ruoyi-common-oss/pom.xml
similarity index 70%
rename from ruoyi-oss/pom.xml
rename to ruoyi-common/ruoyi-common-oss/pom.xml
index 4ff84b620..0311fa45e 100644
--- a/ruoyi-oss/pom.xml
+++ b/ruoyi-common/ruoyi-common-oss/pom.xml
@@ -3,32 +3,34 @@
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-vue-plus
com.ruoyi
+ ruoyi-common
${revision}
../pom.xml
4.0.0
- ruoyi-oss
+ ruoyi-common-oss
- OSS对象存储模块
+ ruoyi-common-oss oss服务
-
-
com.ruoyi
- ruoyi-common
+ ruoyi-common-core
+
+
+
+ com.ruoyi
+ ruoyi-common-redis
com.amazonaws
aws-java-sdk-s3
-
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/constant/OssConstant.java
similarity index 94%
rename from ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java
rename to ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/constant/OssConstant.java
index 06202d0f2..50a3292f9 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java
+++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/constant/OssConstant.java
@@ -1,4 +1,4 @@
-package com.ruoyi.oss.constant;
+package com.ruoyi.common.oss.constant;
import java.util.Arrays;
import java.util.List;
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/core/OssClient.java
similarity index 95%
rename from ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java
rename to ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/core/OssClient.java
index fe409ce7d..0e5e881ba 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/core/OssClient.java
+++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/core/OssClient.java
@@ -1,4 +1,4 @@
-package com.ruoyi.oss.core;
+package com.ruoyi.common.oss.core;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.IdUtil;
@@ -14,14 +14,14 @@ import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.oss.constant.OssConstant;
-import com.ruoyi.oss.entity.UploadResult;
-import com.ruoyi.oss.enumd.AccessPolicyType;
-import com.ruoyi.oss.enumd.PolicyType;
-import com.ruoyi.oss.exception.OssException;
-import com.ruoyi.oss.properties.OssProperties;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.oss.constant.OssConstant;
+import com.ruoyi.common.oss.entity.UploadResult;
+import com.ruoyi.common.oss.enumd.AccessPolicyType;
+import com.ruoyi.common.oss.enumd.PolicyType;
+import com.ruoyi.common.oss.exception.OssException;
+import com.ruoyi.common.oss.properties.OssProperties;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/entity/UploadResult.java
similarity index 87%
rename from ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java
rename to ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/entity/UploadResult.java
index 379d283c8..fd2e7fc18 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/entity/UploadResult.java
+++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/entity/UploadResult.java
@@ -1,4 +1,4 @@
-package com.ruoyi.oss.entity;
+package com.ruoyi.common.oss.entity;
import lombok.Builder;
import lombok.Data;
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/enumd/AccessPolicyType.java
similarity index 96%
rename from ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java
rename to ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/enumd/AccessPolicyType.java
index 1cae67094..140f67a91 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/AccessPolicyType.java
+++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/enumd/AccessPolicyType.java
@@ -1,4 +1,4 @@
-package com.ruoyi.oss.enumd;
+package com.ruoyi.common.oss.enumd;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import lombok.AllArgsConstructor;
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/enumd/PolicyType.java
similarity index 91%
rename from ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java
rename to ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/enumd/PolicyType.java
index 606f0f484..c019d3bf4 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/enumd/PolicyType.java
+++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/enumd/PolicyType.java
@@ -1,4 +1,4 @@
-package com.ruoyi.oss.enumd;
+package com.ruoyi.common.oss.enumd;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/exception/OssException.java
similarity index 86%
rename from ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java
rename to ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/exception/OssException.java
index c170297ab..cfc75201e 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/exception/OssException.java
+++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/exception/OssException.java
@@ -1,4 +1,4 @@
-package com.ruoyi.oss.exception;
+package com.ruoyi.common.oss.exception;
import java.io.Serial;
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java
similarity index 80%
rename from ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java
rename to ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java
index c3312d730..a47e94959 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/factory/OssFactory.java
+++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/factory/OssFactory.java
@@ -1,14 +1,14 @@
-package com.ruoyi.oss.factory;
+package com.ruoyi.common.oss.factory;
-import com.ruoyi.common.constant.CacheNames;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.redis.CacheUtils;
-import com.ruoyi.common.utils.redis.RedisUtils;
-import com.ruoyi.oss.constant.OssConstant;
-import com.ruoyi.oss.core.OssClient;
-import com.ruoyi.oss.exception.OssException;
-import com.ruoyi.oss.properties.OssProperties;
+import com.ruoyi.common.core.constant.CacheNames;
+import com.ruoyi.common.core.utils.JsonUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.oss.constant.OssConstant;
+import com.ruoyi.common.oss.core.OssClient;
+import com.ruoyi.common.oss.exception.OssException;
+import com.ruoyi.common.oss.properties.OssProperties;
+import com.ruoyi.common.redis.utils.CacheUtils;
+import com.ruoyi.common.redis.utils.RedisUtils;
import lombok.extern.slf4j.Slf4j;
import java.util.Map;
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/properties/OssProperties.java
similarity index 94%
rename from ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java
rename to ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/properties/OssProperties.java
index 781a17005..bf7ab2f94 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/properties/OssProperties.java
+++ b/ruoyi-common/ruoyi-common-oss/src/main/java/com/ruoyi/common/oss/properties/OssProperties.java
@@ -1,4 +1,4 @@
-package com.ruoyi.oss.properties;
+package com.ruoyi.common.oss.properties;
import lombok.Data;
diff --git a/ruoyi-common/ruoyi-common-rateLimiter/pom.xml b/ruoyi-common/ruoyi-common-rateLimiter/pom.xml
new file mode 100644
index 000000000..c7e47bcfc
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-rateLimiter/pom.xml
@@ -0,0 +1,31 @@
+
+
+
+ com.ruoyi
+ ruoyi-common
+ ${revision}
+ ../pom.xml
+
+ 4.0.0
+
+ ruoyi-common-rateLimiter
+
+
+ ruoyi-common-rateLimiter 限流功能
+
+
+
+
+ com.ruoyi
+ ruoyi-common-core
+
+
+
+ com.ruoyi
+ ruoyi-common-redis
+
+
+
+
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java b/ruoyi-common/ruoyi-common-rateLimiter/src/main/java/com/ruoyi/common/rateLimiter/annotation/RateLimiter.java
similarity index 76%
rename from ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java
rename to ruoyi-common/ruoyi-common-rateLimiter/src/main/java/com/ruoyi/common/rateLimiter/annotation/RateLimiter.java
index 2e3ff7a82..b949f44ce 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java
+++ b/ruoyi-common/ruoyi-common-rateLimiter/src/main/java/com/ruoyi/common/rateLimiter/annotation/RateLimiter.java
@@ -1,7 +1,7 @@
-package com.ruoyi.common.annotation;
+package com.ruoyi.common.rateLimiter.annotation;
-import com.ruoyi.common.constant.CacheConstants;
-import com.ruoyi.common.enums.LimitType;
+import com.ruoyi.common.core.constant.CacheConstants;
+import com.ruoyi.common.rateLimiter.enums.LimitType;
import java.lang.annotation.*;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java b/ruoyi-common/ruoyi-common-rateLimiter/src/main/java/com/ruoyi/common/rateLimiter/aspectj/RateLimiterAspect.java
similarity index 86%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java
rename to ruoyi-common/ruoyi-common-rateLimiter/src/main/java/com/ruoyi/common/rateLimiter/aspectj/RateLimiterAspect.java
index 542b16bfd..30bdd3786 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java
+++ b/ruoyi-common/ruoyi-common-rateLimiter/src/main/java/com/ruoyi/common/rateLimiter/aspectj/RateLimiterAspect.java
@@ -1,11 +1,11 @@
-package com.ruoyi.framework.aspectj;
+package com.ruoyi.common.rateLimiter.aspectj;
-import com.ruoyi.common.annotation.RateLimiter;
-import com.ruoyi.common.enums.LimitType;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.MessageUtils;
-import com.ruoyi.common.utils.ServletUtils;
-import com.ruoyi.common.utils.redis.RedisUtils;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.MessageUtils;
+import com.ruoyi.common.core.utils.ServletUtils;
+import com.ruoyi.common.rateLimiter.annotation.RateLimiter;
+import com.ruoyi.common.rateLimiter.enums.LimitType;
+import com.ruoyi.common.redis.utils.RedisUtils;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/LimitType.java b/ruoyi-common/ruoyi-common-rateLimiter/src/main/java/com/ruoyi/common/rateLimiter/enums/LimitType.java
similarity index 82%
rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/LimitType.java
rename to ruoyi-common/ruoyi-common-rateLimiter/src/main/java/com/ruoyi/common/rateLimiter/enums/LimitType.java
index 897f7068f..417213bce 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/LimitType.java
+++ b/ruoyi-common/ruoyi-common-rateLimiter/src/main/java/com/ruoyi/common/rateLimiter/enums/LimitType.java
@@ -1,24 +1,24 @@
-package com.ruoyi.common.enums;
-
-/**
- * 限流类型
- *
- * @author ruoyi
- */
-
-public enum LimitType {
- /**
- * 默认策略全局限流
- */
- DEFAULT,
-
- /**
- * 根据请求者IP进行限流
- */
- IP,
-
- /**
- * 实例限流(集群多后端实例)
- */
- CLUSTER
-}
+package com.ruoyi.common.rateLimiter.enums;
+
+/**
+ * 限流类型
+ *
+ * @author ruoyi
+ */
+
+public enum LimitType {
+ /**
+ * 默认策略全局限流
+ */
+ DEFAULT,
+
+ /**
+ * 根据请求者IP进行限流
+ */
+ IP,
+
+ /**
+ * 实例限流(集群多后端实例)
+ */
+ CLUSTER
+}
diff --git a/ruoyi-common/ruoyi-common-redis/pom.xml b/ruoyi-common/ruoyi-common-redis/pom.xml
new file mode 100644
index 000000000..9e2d9c646
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-redis/pom.xml
@@ -0,0 +1,38 @@
+
+
+
+ com.ruoyi
+ ruoyi-common
+ ${revision}
+ ../pom.xml
+
+ 4.0.0
+
+ ruoyi-common-redis
+
+
+ ruoyi-common-redis 缓存服务
+
+
+
+
+
+ com.ruoyi
+ ruoyi-common-core
+
+
+
+
+ org.redisson
+ redisson-spring-boot-starter
+
+
+
+ com.baomidou
+ lock4j-redisson-spring-boot-starter
+
+
+
+
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/config/RedisConfig.java
similarity index 94%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java
rename to ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/config/RedisConfig.java
index 8016ab869..1cbb6eb60 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/config/RedisConfig.java
@@ -1,19 +1,19 @@
-package com.ruoyi.framework.config;
+package com.ruoyi.common.redis.config;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.ruoyi.framework.config.properties.RedissonProperties;
-import com.ruoyi.framework.handler.KeyPrefixHandler;
-import com.ruoyi.framework.manager.PlusSpringCacheManager;
+import com.ruoyi.common.redis.config.properties.RedissonProperties;
+import com.ruoyi.common.redis.handler.KeyPrefixHandler;
+import com.ruoyi.common.redis.manager.PlusSpringCacheManager;
import lombok.extern.slf4j.Slf4j;
import org.redisson.codec.JsonJacksonCodec;
import org.redisson.spring.starter.RedissonAutoConfigurationCustomizer;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
/**
* redis配置
@@ -21,7 +21,7 @@ import org.springframework.context.annotation.Configuration;
* @author Lion Li
*/
@Slf4j
-@Configuration
+@AutoConfiguration
@EnableCaching
@EnableConfigurationProperties(RedissonProperties.class)
public class RedisConfig {
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/config/properties/RedissonProperties.java
similarity index 98%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java
rename to ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/config/properties/RedissonProperties.java
index b0bf285f3..e03017f64 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/RedissonProperties.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/config/properties/RedissonProperties.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.config.properties;
+package com.ruoyi.common.redis.config.properties;
import lombok.Data;
import lombok.NoArgsConstructor;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/handler/KeyPrefixHandler.java
similarity index 92%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java
rename to ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/handler/KeyPrefixHandler.java
index 161c271b3..ff1dbba58 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/KeyPrefixHandler.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/handler/KeyPrefixHandler.java
@@ -1,6 +1,6 @@
-package com.ruoyi.framework.handler;
+package com.ruoyi.common.redis.handler;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
import org.redisson.api.NameMapper;
/**
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/PlusSpringCacheManager.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/manager/PlusSpringCacheManager.java
similarity index 98%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/manager/PlusSpringCacheManager.java
rename to ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/manager/PlusSpringCacheManager.java
index d8bfce7c5..736f0da85 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/PlusSpringCacheManager.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/manager/PlusSpringCacheManager.java
@@ -13,9 +13,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.ruoyi.framework.manager;
+package com.ruoyi.common.redis.manager;
-import com.ruoyi.common.utils.redis.RedisUtils;
+import com.ruoyi.common.redis.utils.RedisUtils;
import org.redisson.api.RMap;
import org.redisson.api.RMapCache;
import org.redisson.spring.cache.CacheConfig;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/CacheUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/utils/CacheUtils.java
similarity index 95%
rename from ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/CacheUtils.java
rename to ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/utils/CacheUtils.java
index 9e0b09b07..e953d03a8 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/CacheUtils.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/utils/CacheUtils.java
@@ -1,6 +1,6 @@
-package com.ruoyi.common.utils.redis;
+package com.ruoyi.common.redis.utils;
-import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.core.utils.SpringUtils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.redisson.api.RMap;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/QueueUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/utils/QueueUtils.java
similarity index 98%
rename from ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/QueueUtils.java
rename to ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/utils/QueueUtils.java
index 7a4bce4b3..81e210524 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/QueueUtils.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/utils/QueueUtils.java
@@ -1,6 +1,6 @@
-package com.ruoyi.common.utils.redis;
+package com.ruoyi.common.redis.utils;
-import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.core.utils.SpringUtils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.redisson.api.*;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/utils/RedisUtils.java
similarity index 99%
rename from ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java
rename to ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/utils/RedisUtils.java
index 162380890..b665160d8 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/redis/RedisUtils.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/utils/RedisUtils.java
@@ -1,6 +1,6 @@
-package com.ruoyi.common.utils.redis;
+package com.ruoyi.common.redis.utils;
-import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.core.utils.SpringUtils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.redisson.api.*;
diff --git a/ruoyi-common/ruoyi-common-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..fe5d8b91e
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.ruoyi.common.redis.config.RedisConfig
diff --git a/ruoyi-common/ruoyi-common-satoken/pom.xml b/ruoyi-common/ruoyi-common-satoken/pom.xml
new file mode 100644
index 000000000..0020d9f46
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-satoken/pom.xml
@@ -0,0 +1,39 @@
+
+
+
+ com.ruoyi
+ ruoyi-common
+ ${revision}
+ ../pom.xml
+
+ 4.0.0
+
+ ruoyi-common-satoken
+
+
+
+ com.ruoyi
+ ruoyi-common-core
+
+
+
+
+ com.ruoyi
+ ruoyi-common-redis
+
+
+
+
+ cn.dev33
+ sa-token-spring-boot3-starter
+
+
+
+ cn.dev33
+ sa-token-jwt
+
+
+
+
diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/config/SaTokenConfig.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/config/SaTokenConfig.java
new file mode 100644
index 000000000..d1d5260a2
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/config/SaTokenConfig.java
@@ -0,0 +1,23 @@
+package com.ruoyi.common.satoken.config;
+
+import cn.dev33.satoken.jwt.StpLogicJwtForSimple;
+import cn.dev33.satoken.stp.StpLogic;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * sa-token 配置
+ *
+ * @author Lion Li
+ */
+@AutoConfiguration
+public class SaTokenConfig implements WebMvcConfigurer {
+
+ @Bean
+ public StpLogic getStpLogicJwt() {
+ // Sa-Token 整合 jwt (简单模式)
+ return new StpLogicJwtForSimple();
+ }
+
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/core/dao/PlusSaTokenDao.java
similarity index 87%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java
rename to ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/core/dao/PlusSaTokenDao.java
index 83c3d5455..52dd9036e 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java
+++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/core/dao/PlusSaTokenDao.java
@@ -1,8 +1,8 @@
-package com.ruoyi.framework.satoken.dao;
+package com.ruoyi.common.satoken.core.dao;
import cn.dev33.satoken.dao.SaTokenDao;
import cn.dev33.satoken.util.SaFoxUtil;
-import com.ruoyi.common.utils.redis.RedisUtils;
+import com.ruoyi.common.redis.utils.RedisUtils;
import org.springframework.stereotype.Component;
import java.time.Duration;
@@ -31,11 +31,11 @@ public class PlusSaTokenDao implements SaTokenDao {
*/
@Override
public void set(String key, String value, long timeout) {
- if (timeout == 0 || timeout <= SaTokenDao.NOT_VALUE_EXPIRE) {
+ if (timeout == 0 || timeout <= NOT_VALUE_EXPIRE) {
return;
}
// 判断是否为永不过期
- if (timeout == SaTokenDao.NEVER_EXPIRE) {
+ if (timeout == NEVER_EXPIRE) {
RedisUtils.setCacheObject(key, value);
} else {
RedisUtils.setCacheObject(key, value, Duration.ofSeconds(timeout));
@@ -49,7 +49,7 @@ public class PlusSaTokenDao implements SaTokenDao {
public void update(String key, String value) {
long expire = getTimeout(key);
// -2 = 无此键
- if (expire == SaTokenDao.NOT_VALUE_EXPIRE) {
+ if (expire == NOT_VALUE_EXPIRE) {
return;
}
this.set(key, value, expire);
@@ -78,9 +78,9 @@ public class PlusSaTokenDao implements SaTokenDao {
@Override
public void updateTimeout(String key, long timeout) {
// 判断是否想要设置为永久
- if (timeout == SaTokenDao.NEVER_EXPIRE) {
+ if (timeout == NEVER_EXPIRE) {
long expire = getTimeout(key);
- if (expire == SaTokenDao.NEVER_EXPIRE) {
+ if (expire == NEVER_EXPIRE) {
// 如果其已经被设置为永久,则不作任何处理
} else {
// 如果尚未被设置为永久,那么再次set一次
@@ -105,11 +105,11 @@ public class PlusSaTokenDao implements SaTokenDao {
*/
@Override
public void setObject(String key, Object object, long timeout) {
- if (timeout == 0 || timeout <= SaTokenDao.NOT_VALUE_EXPIRE) {
+ if (timeout == 0 || timeout <= NOT_VALUE_EXPIRE) {
return;
}
// 判断是否为永不过期
- if (timeout == SaTokenDao.NEVER_EXPIRE) {
+ if (timeout == NEVER_EXPIRE) {
RedisUtils.setCacheObject(key, object);
} else {
RedisUtils.setCacheObject(key, object, Duration.ofSeconds(timeout));
@@ -123,7 +123,7 @@ public class PlusSaTokenDao implements SaTokenDao {
public void updateObject(String key, Object object) {
long expire = getObjectTimeout(key);
// -2 = 无此键
- if (expire == SaTokenDao.NOT_VALUE_EXPIRE) {
+ if (expire == NOT_VALUE_EXPIRE) {
return;
}
this.setObject(key, object, expire);
@@ -152,9 +152,9 @@ public class PlusSaTokenDao implements SaTokenDao {
@Override
public void updateObjectTimeout(String key, long timeout) {
// 判断是否想要设置为永久
- if (timeout == SaTokenDao.NEVER_EXPIRE) {
+ if (timeout == NEVER_EXPIRE) {
long expire = getObjectTimeout(key);
- if (expire == SaTokenDao.NEVER_EXPIRE) {
+ if (expire == NEVER_EXPIRE) {
// 如果其已经被设置为永久,则不作任何处理
} else {
// 如果尚未被设置为永久,那么再次set一次
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/service/SaPermissionImpl.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/core/service/SaPermissionImpl.java
similarity index 90%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/service/SaPermissionImpl.java
rename to ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/core/service/SaPermissionImpl.java
index 057d18336..c1f9a2914 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/service/SaPermissionImpl.java
+++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/core/service/SaPermissionImpl.java
@@ -1,9 +1,9 @@
-package com.ruoyi.framework.satoken.service;
+package com.ruoyi.common.satoken.core.service;
import cn.dev33.satoken.stp.StpInterface;
import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.enums.UserType;
-import com.ruoyi.common.helper.LoginHelper;
+import com.ruoyi.common.core.enums.UserType;
+import com.ruoyi.common.satoken.utils.LoginHelper;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/listener/UserActionListener.java
similarity index 92%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java
rename to ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/listener/UserActionListener.java
index a9de17e60..e1070fb82 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/listener/UserActionListener.java
+++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/listener/UserActionListener.java
@@ -1,18 +1,18 @@
-package com.ruoyi.framework.listener;
+package com.ruoyi.common.satoken.listener;
import cn.dev33.satoken.config.SaTokenConfig;
import cn.dev33.satoken.listener.SaTokenListener;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.hutool.http.useragent.UserAgent;
import cn.hutool.http.useragent.UserAgentUtil;
-import com.ruoyi.common.constant.CacheConstants;
+import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.domain.dto.UserOnlineDTO;
import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.enums.UserType;
-import com.ruoyi.common.helper.LoginHelper;
-import com.ruoyi.common.utils.ServletUtils;
-import com.ruoyi.common.utils.ip.AddressUtils;
-import com.ruoyi.common.utils.redis.RedisUtils;
+import com.ruoyi.common.core.enums.UserType;
+import com.ruoyi.common.core.utils.ServletUtils;
+import com.ruoyi.common.core.utils.ip.AddressUtils;
+import com.ruoyi.common.redis.utils.RedisUtils;
+import com.ruoyi.common.satoken.utils.LoginHelper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/utils/LoginHelper.java
similarity index 92%
rename from ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java
rename to ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/utils/LoginHelper.java
index 05e370b5d..0ae901651 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java
+++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/utils/LoginHelper.java
@@ -1,15 +1,14 @@
-package com.ruoyi.common.helper;
+package com.ruoyi.common.satoken.utils;
import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.stp.StpUtil;
-import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
-import com.ruoyi.common.constant.UserConstants;
+import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.enums.DeviceType;
-import com.ruoyi.common.enums.UserType;
-import com.ruoyi.common.exception.UtilException;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.enums.DeviceType;
+import com.ruoyi.common.core.enums.UserType;
+import com.ruoyi.common.core.exception.UtilException;
+import com.ruoyi.common.core.utils.StringUtils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-satoken/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..fd02ac56d
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-satoken/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,2 @@
+com.ruoyi.common.satoken.core.dao.PlusSaTokenDao
+com.ruoyi.common.satoken.core.service.SaPermissionImpl
diff --git a/ruoyi-common/ruoyi-common-security/pom.xml b/ruoyi-common/ruoyi-common-security/pom.xml
new file mode 100644
index 000000000..eaa3258c9
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-security/pom.xml
@@ -0,0 +1,33 @@
+
+
+
+ com.ruoyi
+ ruoyi-common
+ ${revision}
+ ../pom.xml
+
+ 4.0.0
+
+ ruoyi-common-security
+
+
+ ruoyi-common-security 安全模块
+
+
+
+
+ com.ruoyi
+ ruoyi-common-satoken
+
+
+
+
+ cn.dev33
+ sa-token-spring-boot3-starter
+ ${satoken.version}
+
+
+
+
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/SecurityConfig.java
similarity index 74%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java
rename to ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/SecurityConfig.java
index 291228667..6a6bbbe0d 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/SecurityConfig.java
@@ -1,27 +1,24 @@
-package com.ruoyi.framework.config;
+package com.ruoyi.common.security.config;
import cn.dev33.satoken.interceptor.SaInterceptor;
-import cn.dev33.satoken.jwt.StpLogicJwtForSimple;
import cn.dev33.satoken.router.SaRouter;
-import cn.dev33.satoken.stp.StpLogic;
import cn.dev33.satoken.stp.StpUtil;
-import com.ruoyi.framework.config.properties.SecurityProperties;
+import com.ruoyi.common.security.config.properties.SecurityProperties;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
- * sa-token 配置
+ * 权限安全配置
*
* @author Lion Li
*/
@RequiredArgsConstructor
@Slf4j
-@Configuration
-public class SaTokenConfig implements WebMvcConfigurer {
+@AutoConfiguration
+public class SecurityConfig implements WebMvcConfigurer {
private final SecurityProperties securityProperties;
@@ -53,10 +50,4 @@ public class SaTokenConfig implements WebMvcConfigurer {
.excludePathPatterns(securityProperties.getExcludes());
}
- @Bean
- public StpLogic getStpLogicJwt() {
- // Sa-Token 整合 jwt (简单模式)
- return new StpLogicJwtForSimple();
- }
-
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SecurityProperties.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/properties/SecurityProperties.java
similarity index 87%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SecurityProperties.java
rename to ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/properties/SecurityProperties.java
index b37418181..938ab947e 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/SecurityProperties.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/properties/SecurityProperties.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.config.properties;
+package com.ruoyi.common.security.config.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
similarity index 78%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
rename to ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
index ad68f8f85..f8f00419c 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.web.exception;
+package com.ruoyi.common.security.handler;
import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.exception.NotPermissionException;
@@ -6,13 +6,11 @@ import cn.dev33.satoken.exception.NotRoleException;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpStatus;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.exception.DemoModeException;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.StreamUtils;
+import com.ruoyi.common.core.exception.DemoModeException;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.StreamUtils;
import lombok.extern.slf4j.Slf4j;
-import org.mybatis.spring.MyBatisSystemException;
import org.springframework.context.support.DefaultMessageSourceResolvable;
-import org.springframework.dao.DuplicateKeyException;
import org.springframework.validation.BindException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
@@ -73,31 +71,6 @@ public class GlobalExceptionHandler {
return R.fail(e.getMessage());
}
- /**
- * 主键或UNIQUE索引,数据重复异常
- */
- @ExceptionHandler(DuplicateKeyException.class)
- public R handleDuplicateKeyException(DuplicateKeyException e, HttpServletRequest request) {
- String requestURI = request.getRequestURI();
- log.error("请求地址'{}',数据库中已存在记录'{}'", requestURI, e.getMessage());
- return R.fail("数据库中已存在该记录,请联系管理员确认");
- }
-
- /**
- * Mybatis系统异常 通用处理
- */
- @ExceptionHandler(MyBatisSystemException.class)
- public R handleCannotFindDataSourceException(MyBatisSystemException e, HttpServletRequest request) {
- String requestURI = request.getRequestURI();
- String message = e.getMessage();
- if (message.contains("CannotFindDataSourceException")) {
- log.error("请求地址'{}', 未找到数据源", requestURI);
- return R.fail("未找到数据源,请联系管理员确认");
- }
- log.error("请求地址'{}', Mybatis系统异常", requestURI, e);
- return R.fail(message);
- }
-
/**
* 业务异常
*/
diff --git a/ruoyi-common/ruoyi-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..a09e5d650
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,2 @@
+com.ruoyi.common.security.handler.GlobalExceptionHandler
+com.ruoyi.common.security.config.SecurityConfig
diff --git a/ruoyi-sms/pom.xml b/ruoyi-common/ruoyi-common-sms/pom.xml
similarity index 80%
rename from ruoyi-sms/pom.xml
rename to ruoyi-common/ruoyi-common-sms/pom.xml
index 66e5fb7ec..0ea416dd0 100644
--- a/ruoyi-sms/pom.xml
+++ b/ruoyi-common/ruoyi-common-sms/pom.xml
@@ -3,25 +3,23 @@
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-vue-plus
com.ruoyi
+ ruoyi-common
${revision}
../pom.xml
4.0.0
- ruoyi-sms
+ ruoyi-common-sms
- SMS短信模块
+ ruoyi-common-sms 短信模块
-
-
com.ruoyi
- ruoyi-common
+ ruoyi-common-core
@@ -33,9 +31,7 @@
com.tencentcloudapi
tencentcloud-sdk-java-sms
- true
-
diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/config/SmsConfig.java b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/config/SmsConfig.java
similarity index 70%
rename from ruoyi-sms/src/main/java/com/ruoyi/sms/config/SmsConfig.java
rename to ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/config/SmsConfig.java
index 753773e87..ecc89afb6 100644
--- a/ruoyi-sms/src/main/java/com/ruoyi/sms/config/SmsConfig.java
+++ b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/config/SmsConfig.java
@@ -1,11 +1,13 @@
-package com.ruoyi.sms.config;
+package com.ruoyi.common.sms.config;
-import com.ruoyi.sms.config.properties.SmsProperties;
-import com.ruoyi.sms.core.AliyunSmsTemplate;
-import com.ruoyi.sms.core.SmsTemplate;
-import com.ruoyi.sms.core.TencentSmsTemplate;
+import com.ruoyi.common.sms.config.properties.SmsProperties;
+import com.ruoyi.common.sms.core.AliyunSmsTemplate;
+import com.ruoyi.common.sms.core.SmsTemplate;
+import com.ruoyi.common.sms.core.TencentSmsTemplate;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -15,7 +17,8 @@ import org.springframework.context.annotation.Configuration;
* @author Lion Li
* @version 4.2.0
*/
-@Configuration
+@AutoConfiguration
+@EnableConfigurationProperties(SmsProperties.class)
public class SmsConfig {
@Configuration
diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/config/properties/SmsProperties.java b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/config/properties/SmsProperties.java
similarity index 94%
rename from ruoyi-sms/src/main/java/com/ruoyi/sms/config/properties/SmsProperties.java
rename to ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/config/properties/SmsProperties.java
index 39359cdfd..55621784e 100644
--- a/ruoyi-sms/src/main/java/com/ruoyi/sms/config/properties/SmsProperties.java
+++ b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/config/properties/SmsProperties.java
@@ -1,4 +1,4 @@
-package com.ruoyi.sms.config.properties;
+package com.ruoyi.common.sms.config.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/AliyunSmsTemplate.java b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/core/AliyunSmsTemplate.java
similarity index 87%
rename from ruoyi-sms/src/main/java/com/ruoyi/sms/core/AliyunSmsTemplate.java
rename to ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/core/AliyunSmsTemplate.java
index 3c16a5b41..28f67d2b7 100644
--- a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/AliyunSmsTemplate.java
+++ b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/core/AliyunSmsTemplate.java
@@ -1,14 +1,14 @@
-package com.ruoyi.sms.core;
+package com.ruoyi.common.sms.core;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.sms.config.properties.SmsProperties;
-import com.ruoyi.sms.entity.SmsResult;
-import com.ruoyi.sms.exception.SmsException;
+import com.ruoyi.common.core.utils.JsonUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.sms.config.properties.SmsProperties;
+import com.ruoyi.common.sms.entity.SmsResult;
+import com.ruoyi.common.sms.exception.SmsException;
import lombok.SneakyThrows;
import java.util.Map;
diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/SmsTemplate.java b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/core/SmsTemplate.java
similarity index 87%
rename from ruoyi-sms/src/main/java/com/ruoyi/sms/core/SmsTemplate.java
rename to ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/core/SmsTemplate.java
index 0aec3ddbe..eb61b8631 100644
--- a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/SmsTemplate.java
+++ b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/core/SmsTemplate.java
@@ -1,6 +1,6 @@
-package com.ruoyi.sms.core;
+package com.ruoyi.common.sms.core;
-import com.ruoyi.sms.entity.SmsResult;
+import com.ruoyi.common.sms.entity.SmsResult;
import java.util.Map;
diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/TencentSmsTemplate.java b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/core/TencentSmsTemplate.java
similarity index 90%
rename from ruoyi-sms/src/main/java/com/ruoyi/sms/core/TencentSmsTemplate.java
rename to ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/core/TencentSmsTemplate.java
index 17f5b5b16..8c45a02eb 100644
--- a/ruoyi-sms/src/main/java/com/ruoyi/sms/core/TencentSmsTemplate.java
+++ b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/core/TencentSmsTemplate.java
@@ -1,12 +1,12 @@
-package com.ruoyi.sms.core;
+package com.ruoyi.common.sms.core;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.sms.config.properties.SmsProperties;
-import com.ruoyi.sms.entity.SmsResult;
-import com.ruoyi.sms.exception.SmsException;
+import com.ruoyi.common.core.utils.JsonUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.sms.config.properties.SmsProperties;
+import com.ruoyi.common.sms.entity.SmsResult;
+import com.ruoyi.common.sms.exception.SmsException;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/entity/SmsResult.java
similarity index 91%
rename from ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java
rename to ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/entity/SmsResult.java
index 89c39b403..d43680525 100644
--- a/ruoyi-sms/src/main/java/com/ruoyi/sms/entity/SmsResult.java
+++ b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/entity/SmsResult.java
@@ -1,4 +1,4 @@
-package com.ruoyi.sms.entity;
+package com.ruoyi.common.sms.entity;
import lombok.Builder;
import lombok.Data;
diff --git a/ruoyi-sms/src/main/java/com/ruoyi/sms/exception/SmsException.java b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/exception/SmsException.java
similarity index 86%
rename from ruoyi-sms/src/main/java/com/ruoyi/sms/exception/SmsException.java
rename to ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/exception/SmsException.java
index 006babcce..a332aeeec 100644
--- a/ruoyi-sms/src/main/java/com/ruoyi/sms/exception/SmsException.java
+++ b/ruoyi-common/ruoyi-common-sms/src/main/java/com/ruoyi/common/sms/exception/SmsException.java
@@ -1,4 +1,4 @@
-package com.ruoyi.sms.exception;
+package com.ruoyi.common.sms.exception;
import java.io.Serial;
diff --git a/ruoyi-common/ruoyi-common-sms/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-sms/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..2eaa24907
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-sms/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.ruoyi.common.sms.config.SmsConfig
diff --git a/ruoyi-framework/pom.xml b/ruoyi-common/ruoyi-common-web/pom.xml
similarity index 54%
rename from ruoyi-framework/pom.xml
rename to ruoyi-common/ruoyi-common-web/pom.xml
index 21b65b7dc..30b9703f3 100644
--- a/ruoyi-framework/pom.xml
+++ b/ruoyi-common/ruoyi-common-web/pom.xml
@@ -3,31 +3,40 @@
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-vue-plus
com.ruoyi
+ ruoyi-common
${revision}
../pom.xml
4.0.0
- ruoyi-framework
+ ruoyi-common-web
- framework框架核心
+ ruoyi-common-web web服务
+
+ com.ruoyi
+ ruoyi-common-core
+
+
+
+ com.ruoyi
+ ruoyi-common-redis
+
-
+
org.springframework.boot
spring-boot-starter-web
-
-
- spring-boot-starter-tomcat
- org.springframework.boot
-
-
+
+
+ spring-boot-starter-tomcat
+ org.springframework.boot
+
+
@@ -35,39 +44,15 @@
spring-boot-starter-undertow
-
- org.springframework.boot
- spring-boot-starter-aop
-
-
-
-
- p6spy
- p6spy
-
-
-
- org.springframework.boot
- spring-boot-starter-actuator
-
-
-
- de.codecentric
- spring-boot-admin-starter-client
+ cn.hutool
+ hutool-crypto
com.alibaba
transmittable-thread-local
-
-
-
- com.ruoyi
- ruoyi-common
-
-
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/CaptchaConfig.java
similarity index 92%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/CaptchaConfig.java
index b284216f5..071550b37 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/CaptchaConfig.java
@@ -1,11 +1,11 @@
-package com.ruoyi.framework.config;
+package com.ruoyi.common.web.config;
import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.CircleCaptcha;
import cn.hutool.captcha.LineCaptcha;
import cn.hutool.captcha.ShearCaptcha;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import java.awt.*;
@@ -15,7 +15,7 @@ import java.awt.*;
*
* @author Lion Li
*/
-@Configuration
+@AutoConfiguration
public class CaptchaConfig {
private static final int WIDTH = 160;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/FilterConfig.java
similarity index 84%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/FilterConfig.java
index 7177d14fa..a11ec7918 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/FilterConfig.java
@@ -1,14 +1,14 @@
-package com.ruoyi.framework.config;
+package com.ruoyi.common.web.config;
-import com.ruoyi.common.filter.RepeatableFilter;
-import com.ruoyi.common.filter.XssFilter;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.framework.config.properties.XssProperties;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.web.config.properties.XssProperties;
+import com.ruoyi.common.web.filter.RepeatableFilter;
+import com.ruoyi.common.web.filter.XssFilter;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
import jakarta.servlet.DispatcherType;
import java.util.HashMap;
@@ -19,7 +19,7 @@ import java.util.Map;
*
* @author Lion Li
*/
-@Configuration
+@AutoConfiguration
public class FilterConfig {
@Autowired
diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/I18nConfig.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/I18nConfig.java
new file mode 100644
index 000000000..dd7661992
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/I18nConfig.java
@@ -0,0 +1,22 @@
+package com.ruoyi.common.web.config;
+
+import com.ruoyi.common.web.core.I18nLocaleResolver;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
+import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.servlet.LocaleResolver;
+
+/**
+ * 国际化配置
+ *
+ * @author Lion Li
+ */
+@AutoConfiguration(before = WebMvcAutoConfiguration.class)
+public class I18nConfig {
+
+ @Bean
+ public LocaleResolver localeResolver() {
+ return new I18nLocaleResolver();
+ }
+
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/ResourcesConfig.java
similarity index 89%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/ResourcesConfig.java
index ea83338ba..a35ddb3f5 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/ResourcesConfig.java
@@ -1,8 +1,8 @@
-package com.ruoyi.framework.config;
+package com.ruoyi.common.web.config;
-import com.ruoyi.framework.interceptor.PlusWebInvokeTimeInterceptor;
+import com.ruoyi.common.web.interceptor.PlusWebInvokeTimeInterceptor;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@@ -15,7 +15,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
*
* @author Lion Li
*/
-@Configuration
+@AutoConfiguration
public class ResourcesConfig implements WebMvcConfigurer {
@Override
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/UndertowConfig.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/UndertowConfig.java
similarity index 89%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/UndertowConfig.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/UndertowConfig.java
index 64e745a86..6659c3c0e 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/UndertowConfig.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/UndertowConfig.java
@@ -1,17 +1,17 @@
-package com.ruoyi.framework.config;
+package com.ruoyi.common.web.config;
import io.undertow.server.DefaultByteBufferPool;
import io.undertow.websockets.jsr.WebSocketDeploymentInfo;
+import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.context.annotation.Configuration;
/**
* Undertow 自定义配置
*
* @author Lion Li
*/
-@Configuration
+@AutoConfiguration
public class UndertowConfig implements WebServerFactoryCustomizer {
/**
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/CaptchaProperties.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/properties/CaptchaProperties.java
similarity index 80%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/CaptchaProperties.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/properties/CaptchaProperties.java
index 1b41c66cf..9821fdfd5 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/CaptchaProperties.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/properties/CaptchaProperties.java
@@ -1,7 +1,7 @@
-package com.ruoyi.framework.config.properties;
+package com.ruoyi.common.web.config.properties;
-import com.ruoyi.common.enums.CaptchaCategory;
-import com.ruoyi.common.enums.CaptchaType;
+import com.ruoyi.common.web.enums.CaptchaCategory;
+import com.ruoyi.common.web.enums.CaptchaType;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/XssProperties.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/properties/XssProperties.java
similarity index 91%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/XssProperties.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/properties/XssProperties.java
index d8a68a86a..83312f88a 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/XssProperties.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/config/properties/XssProperties.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.config.properties;
+package com.ruoyi.common.web.config.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/core/I18nLocaleResolver.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/core/I18nLocaleResolver.java
new file mode 100644
index 000000000..6b741debd
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/core/I18nLocaleResolver.java
@@ -0,0 +1,31 @@
+package com.ruoyi.common.web.core;
+
+import org.springframework.web.servlet.LocaleResolver;
+
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import java.util.Locale;
+
+/**
+ * 获取请求头国际化信息
+ *
+ * @author Lion Li
+ */
+public class I18nLocaleResolver implements LocaleResolver {
+
+ @Override
+ public Locale resolveLocale(HttpServletRequest httpServletRequest) {
+ String language = httpServletRequest.getHeader("content-language");
+ Locale locale = Locale.getDefault();
+ if (language != null && language.length() > 0) {
+ String[] split = language.split("_");
+ locale = new Locale(split[0], split[1]);
+ }
+ return locale;
+ }
+
+ @Override
+ public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
+
+ }
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/CaptchaCategory.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/enums/CaptchaCategory.java
similarity index 94%
rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/CaptchaCategory.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/enums/CaptchaCategory.java
index 35d3ea3cf..7fca5c217 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/CaptchaCategory.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/enums/CaptchaCategory.java
@@ -1,4 +1,4 @@
-package com.ruoyi.common.enums;
+package com.ruoyi.common.web.enums;
import cn.hutool.captcha.AbstractCaptcha;
import cn.hutool.captcha.CircleCaptcha;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/CaptchaType.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/enums/CaptchaType.java
similarity index 83%
rename from ruoyi-common/src/main/java/com/ruoyi/common/enums/CaptchaType.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/enums/CaptchaType.java
index b1c50ca75..f78d572a5 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/CaptchaType.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/enums/CaptchaType.java
@@ -1,8 +1,8 @@
-package com.ruoyi.common.enums;
+package com.ruoyi.common.web.enums;
import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.captcha.generator.RandomGenerator;
-import com.ruoyi.common.captcha.UnsignedMathGenerator;
+import com.ruoyi.common.web.utils.UnsignedMathGenerator;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/RepeatableFilter.java
similarity index 92%
rename from ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/RepeatableFilter.java
index 72587e218..60e98ef2e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/RepeatableFilter.java
@@ -1,6 +1,6 @@
-package com.ruoyi.common.filter;
+package com.ruoyi.common.web.filter;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
import org.springframework.http.MediaType;
import jakarta.servlet.*;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/RepeatedlyRequestWrapper.java
similarity index 95%
rename from ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/RepeatedlyRequestWrapper.java
index da04e5497..32e66588e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/RepeatedlyRequestWrapper.java
@@ -1,7 +1,7 @@
-package com.ruoyi.common.filter;
+package com.ruoyi.common.web.filter;
import cn.hutool.core.io.IoUtil;
-import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.core.constant.Constants;
import jakarta.servlet.ReadListener;
import jakarta.servlet.ServletInputStream;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/XssFilter.java
similarity index 93%
rename from ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/XssFilter.java
index cd35510e4..a11660f6a 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/XssFilter.java
@@ -1,7 +1,7 @@
-package com.ruoyi.common.filter;
+package com.ruoyi.common.web.filter;
-import com.ruoyi.common.enums.HttpMethod;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import org.springframework.http.HttpMethod;
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/XssHttpServletRequestWrapper.java
similarity index 91%
rename from ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/XssHttpServletRequestWrapper.java
index 55cba679c..a7d9f1ee1 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/filter/XssHttpServletRequestWrapper.java
@@ -1,9 +1,9 @@
-package com.ruoyi.common.filter;
+package com.ruoyi.common.web.filter;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HtmlUtil;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
@@ -33,12 +33,12 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
String[] values = super.getParameterValues(name);
if (values != null) {
int length = values.length;
- String[] escapesValues = new String[length];
+ String[] escapseValues = new String[length];
for (int i = 0; i < length; i++) {
// 防xss攻击和过滤前后空格
- escapesValues[i] = HtmlUtil.cleanHtmlTag(values[i]).trim();
+ escapseValues[i] = HtmlUtil.cleanHtmlTag(values[i]).trim();
}
- return escapesValues;
+ return escapseValues;
}
return super.getParameterValues(name);
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/interceptor/PlusWebInvokeTimeInterceptor.java
similarity index 93%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/interceptor/PlusWebInvokeTimeInterceptor.java
index 70fa68867..b9f8ddcd4 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusWebInvokeTimeInterceptor.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/interceptor/PlusWebInvokeTimeInterceptor.java
@@ -1,12 +1,12 @@
-package com.ruoyi.framework.interceptor;
+package com.ruoyi.common.web.interceptor;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.map.MapUtil;
import com.alibaba.ttl.TransmittableThreadLocal;
-import com.ruoyi.common.filter.RepeatedlyRequestWrapper;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.core.utils.JsonUtils;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.web.filter.RepeatedlyRequestWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.StopWatch;
import org.springframework.http.MediaType;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/captcha/UnsignedMathGenerator.java b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/utils/UnsignedMathGenerator.java
similarity index 96%
rename from ruoyi-common/src/main/java/com/ruoyi/common/captcha/UnsignedMathGenerator.java
rename to ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/utils/UnsignedMathGenerator.java
index 022fefca6..06c3f3c2b 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/captcha/UnsignedMathGenerator.java
+++ b/ruoyi-common/ruoyi-common-web/src/main/java/com/ruoyi/common/web/utils/UnsignedMathGenerator.java
@@ -1,10 +1,10 @@
-package com.ruoyi.common.captcha;
+package com.ruoyi.common.web.utils;
import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.math.Calculator;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.RandomUtil;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
import java.io.Serial;
diff --git a/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..cdf8c66c4
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-web/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,5 @@
+com.ruoyi.common.web.config.CaptchaConfig
+com.ruoyi.common.web.config.FilterConfig
+com.ruoyi.common.web.config.I18nConfig
+com.ruoyi.common.web.config.ResourcesConfig
+com.ruoyi.common.web.config.UndertowConfig
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
deleted file mode 100644
index 1e0a5d524..000000000
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.ruoyi.common.core.controller;
-
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.helper.LoginHelper;
-import com.ruoyi.common.utils.StringUtils;
-
-/**
- * web层通用数据处理
- *
- * @author Lion Li
- */
-public class BaseController {
-
- /**
- * 响应返回结果
- *
- * @param rows 影响行数
- * @return 操作结果
- */
- protected R toAjax(int rows) {
- return rows > 0 ? R.ok() : R.fail();
- }
-
- /**
- * 响应返回结果
- *
- * @param result 结果
- * @return 操作结果
- */
- protected R toAjax(boolean result) {
- return result ? R.ok() : R.fail();
- }
-
- /**
- * 页面跳转
- */
- public String redirect(String url) {
- return StringUtils.format("redirect:{}", url);
- }
-
- /**
- * 获取用户缓存信息
- */
- public LoginUser getLoginUser() {
- return LoginHelper.getLoginUser();
- }
-
- /**
- * 获取登录用户id
- */
- public Long getUserId() {
- return LoginHelper.getUserId();
- }
-
- /**
- * 获取登录部门id
- */
- public Long getDeptId() {
- return LoginHelper.getDeptId();
- }
-
- /**
- * 获取登录用户名
- */
- public String getUsername() {
- return LoginHelper.getUsername();
- }
-}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/HttpMethod.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/HttpMethod.java
deleted file mode 100644
index bd1bfcc46..000000000
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/HttpMethod.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.ruoyi.common.enums;
-
-import org.springframework.lang.Nullable;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 请求方式
- *
- * @author ruoyi
- */
-public enum HttpMethod {
- GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE;
-
- private static final Map mappings = new HashMap<>(16);
-
- static {
- for (HttpMethod httpMethod : values()) {
- mappings.put(httpMethod.name(), httpMethod);
- }
- }
-
- @Nullable
- public static HttpMethod resolve(@Nullable String method) {
- return (method != null ? mappings.get(method) : null);
- }
-
- public boolean matches(String method) {
- return (this == resolve(method));
- }
-}
diff --git a/ruoyi-demo/pom.xml b/ruoyi-demo/pom.xml
index 869241b94..9f1d9c407 100644
--- a/ruoyi-demo/pom.xml
+++ b/ruoyi-demo/pom.xml
@@ -21,12 +21,43 @@
com.ruoyi
- ruoyi-common
+ ruoyi-common-core
-
com.ruoyi
- ruoyi-sms
+ ruoyi-common-sms
+
+
+ com.ruoyi
+ ruoyi-common-mail
+
+
+ com.ruoyi
+ ruoyi-common-redis
+
+
+ com.ruoyi
+ ruoyi-common-idempotent
+
+
+ com.ruoyi
+ ruoyi-common-mybatis
+
+
+ com.ruoyi
+ ruoyi-common-log
+
+
+ com.ruoyi
+ ruoyi-common-excel
+
+
+ com.ruoyi
+ ruoyi-common-web
+
+
+ com.ruoyi
+ ruoyi-common-rateLimiter
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java
index 6db4dc4e7..3d890acd2 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/MailController.java
@@ -1,7 +1,7 @@
package com.ruoyi.demo.controller;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.utils.email.MailUtils;
+import com.ruoyi.common.mail.utils.MailUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java
index 7342cba98..20083ba61 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisCacheController.java
@@ -1,8 +1,8 @@
package com.ruoyi.demo.controller;
-import com.ruoyi.common.constant.CacheNames;
+import com.ruoyi.common.core.constant.CacheNames;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.utils.redis.RedisUtils;
+import com.ruoyi.common.redis.utils.RedisUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java
index 0c2af3951..6ad80ce4a 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java
@@ -1,7 +1,7 @@
package com.ruoyi.demo.controller;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.utils.redis.RedisUtils;
+import com.ruoyi.common.redis.utils.RedisUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java
index ee2e530ba..c11915169 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisRateLimiterController.java
@@ -1,8 +1,8 @@
package com.ruoyi.demo.controller;
-import com.ruoyi.common.annotation.RateLimiter;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.enums.LimitType;
+import com.ruoyi.common.rateLimiter.annotation.RateLimiter;
+import com.ruoyi.common.rateLimiter.enums.LimitType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java
index cc6012f44..bda995546 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/SmsController.java
@@ -1,9 +1,9 @@
package com.ruoyi.demo.controller;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.utils.spring.SpringUtils;
-import com.ruoyi.sms.config.properties.SmsProperties;
-import com.ruoyi.sms.core.SmsTemplate;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.sms.config.properties.SmsProperties;
+import com.ruoyi.common.sms.core.SmsTemplate;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java
index 3bd2867ee..84468c6e7 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestBatchController.java
@@ -1,8 +1,8 @@
package com.ruoyi.demo.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.demo.domain.TestDemo;
import com.ruoyi.demo.mapper.TestDemoMapper;
import lombok.RequiredArgsConstructor;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
index 7c9a365cf..5ff6a0701 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
@@ -2,19 +2,19 @@ package com.ruoyi.demo.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.bean.BeanUtil;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.utils.ValidatorUtils;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.excel.ExcelResult;
-import com.ruoyi.common.utils.ValidatorUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.idempotent.annotation.RepeatSubmit;
+import com.ruoyi.common.mybatis.core.page.PageQuery;
+import com.ruoyi.common.mybatis.core.page.TableDataInfo;
+import com.ruoyi.common.excel.core.ExcelResult;
+import com.ruoyi.common.excel.utils.ExcelUtil;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.demo.domain.TestDemo;
import com.ruoyi.demo.domain.bo.TestDemoBo;
import com.ruoyi.demo.domain.bo.TestDemoImportVo;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java
index 2bce8a703..8a48dc67a 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestExcelController.java
@@ -1,7 +1,7 @@
package com.ruoyi.demo.controller;
import cn.hutool.core.collection.CollUtil;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.excel.utils.ExcelUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java
index c6fa799da..5cc6a2ec6 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestI18nController.java
@@ -1,7 +1,7 @@
package com.ruoyi.demo.controller;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.utils.MessageUtils;
+import com.ruoyi.common.core.utils.MessageUtils;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import org.springframework.validation.annotation.Validated;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java
index 6bf904caf..259c12bb8 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java
@@ -1,9 +1,9 @@
package com.ruoyi.demo.controller;
-import com.ruoyi.common.annotation.Sensitive;
-import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.annotation.Sensitive;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.enums.SensitiveStrategy;
+import com.ruoyi.common.core.enums.SensitiveStrategy;
+import com.ruoyi.common.core.web.controller.BaseController;
import lombok.Data;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java
index e6ed0bb69..dc080a681 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestTreeController.java
@@ -1,15 +1,15 @@
package com.ruoyi.demo.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.excel.utils.ExcelUtil;
+import com.ruoyi.common.idempotent.annotation.RepeatSubmit;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.demo.domain.bo.TestTreeBo;
import com.ruoyi.demo.domain.vo.TestTreeVo;
import com.ruoyi.demo.service.ITestTreeService;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java
index 968a4193f..604a38db9 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/BoundedQueueController.java
@@ -1,7 +1,7 @@
package com.ruoyi.demo.controller.queue;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.utils.redis.QueueUtils;
+import com.ruoyi.common.redis.utils.QueueUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java
index e6dbee863..3587c2bcb 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/DelayedQueueController.java
@@ -1,7 +1,7 @@
package com.ruoyi.demo.controller.queue;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.utils.redis.QueueUtils;
+import com.ruoyi.common.redis.utils.QueueUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java
index 4a60232c7..fcccf141a 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/queue/PriorityQueueController.java
@@ -2,7 +2,7 @@ package com.ruoyi.demo.controller.queue;
import cn.hutool.core.util.RandomUtil;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.utils.redis.QueueUtils;
+import com.ruoyi.common.redis.utils.QueueUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestDemo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestDemo.java
index 2484e3976..2c3793b95 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestDemo.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestDemo.java
@@ -1,7 +1,7 @@
package com.ruoyi.demo.domain;
import com.baomidou.mybatisplus.annotation.*;
-import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestTree.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestTree.java
index 4a5ea941e..46f4f6776 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestTree.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestTree.java
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
-import com.ruoyi.common.core.domain.TreeEntity;
+import com.ruoyi.common.core.web.domain.TreeEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java
index 18e0411d5..5d6bb8c11 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestDemoBo.java
@@ -1,8 +1,8 @@
package com.ruoyi.demo.domain.bo;
-import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java
index b93cc9224..b10d42fb2 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/domain/bo/TestTreeBo.java
@@ -1,8 +1,8 @@
package com.ruoyi.demo.domain.bo;
-import com.ruoyi.common.core.domain.TreeEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.web.domain.TreeEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java
index 11a3d50e2..f24c99483 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java
@@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.annotation.DataColumn;
-import com.ruoyi.common.annotation.DataPermission;
-import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import com.ruoyi.common.mybatis.annotation.DataColumn;
+import com.ruoyi.common.mybatis.annotation.DataPermission;
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import com.ruoyi.demo.domain.TestDemo;
import com.ruoyi.demo.domain.vo.TestDemoVo;
import org.apache.ibatis.annotations.Param;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestTreeMapper.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestTreeMapper.java
index e37a9a75e..10c880bc0 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestTreeMapper.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestTreeMapper.java
@@ -1,8 +1,8 @@
package com.ruoyi.demo.mapper;
-import com.ruoyi.common.annotation.DataColumn;
-import com.ruoyi.common.annotation.DataPermission;
-import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import com.ruoyi.common.mybatis.annotation.DataColumn;
+import com.ruoyi.common.mybatis.annotation.DataPermission;
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import com.ruoyi.demo.domain.TestTree;
import com.ruoyi.demo.domain.vo.TestTreeVo;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java
index f6b82fd6d..542791ddb 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java
@@ -1,7 +1,7 @@
package com.ruoyi.demo.service;
-import com.ruoyi.common.core.domain.PageQuery;
-import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.mybatis.core.page.PageQuery;
+import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.demo.domain.TestDemo;
import com.ruoyi.demo.domain.bo.TestDemoBo;
import com.ruoyi.demo.domain.vo.TestDemoVo;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
index 7ed7cd5b2..32ed91c9d 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
@@ -4,9 +4,9 @@ import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.core.domain.PageQuery;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.mybatis.core.page.PageQuery;
+import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.demo.domain.TestDemo;
import com.ruoyi.demo.domain.bo.TestDemoBo;
import com.ruoyi.demo.domain.vo.TestDemoVo;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestTreeServiceImpl.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestTreeServiceImpl.java
index 3e7fa20d7..801a0ea4a 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestTreeServiceImpl.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestTreeServiceImpl.java
@@ -3,7 +3,7 @@ package com.ruoyi.demo.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.demo.domain.TestTree;
import com.ruoyi.demo.domain.bo.TestTreeBo;
import com.ruoyi.demo.domain.vo.TestTreeVo;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/I18nConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/I18nConfig.java
deleted file mode 100644
index f664f0363..000000000
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/I18nConfig.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.ruoyi.framework.config;
-
-import cn.hutool.core.util.StrUtil;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.LocaleResolver;
-
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import java.util.Locale;
-
-/**
- * 国际化配置
- *
- * @author Lion Li
- */
-@Configuration
-public class I18nConfig {
-
- @Bean
- public LocaleResolver localeResolver() {
- return new I18nLocaleResolver();
- }
-
- /**
- * 获取请求头国际化信息
- */
- static class I18nLocaleResolver implements LocaleResolver {
-
- @Override
- public Locale resolveLocale(HttpServletRequest httpServletRequest) {
- String language = httpServletRequest.getHeader("content-language");
- Locale locale = Locale.getDefault();
- if (StrUtil.isNotBlank(language)) {
- String[] split = language.split("_");
- locale = new Locale(split[0], split[1]);
- }
- return locale;
- }
-
- @Override
- public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
-
- }
- }
-}
diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml
index 6318c88a1..6d1bdad54 100644
--- a/ruoyi-generator/pom.xml
+++ b/ruoyi-generator/pom.xml
@@ -17,19 +17,32 @@
+
+
+ com.ruoyi
+ ruoyi-common-core
+
+
+
+ com.ruoyi
+ ruoyi-common-mybatis
+
+
+
+ com.ruoyi
+ ruoyi-common-web
+
+
+
+ com.ruoyi
+ ruoyi-common-log
+
org.apache.velocity
velocity-engine-core
-
-
-
- com.ruoyi
- ruoyi-common
-
-
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
index b162c1f7c..2a9143495 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
@@ -3,12 +3,12 @@ package com.ruoyi.generator.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.IoUtil;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.mybatis.core.page.PageQuery;
+import com.ruoyi.common.mybatis.core.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn;
import com.ruoyi.generator.service.IGenTableService;
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java
index 14ff5aef3..7b8225cb0 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java
@@ -1,12 +1,9 @@
package com.ruoyi.generator.domain;
-import com.baomidou.mybatisplus.annotation.FieldStrategy;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.ruoyi.common.constant.GenConstants;
-import com.ruoyi.common.core.domain.BaseEntity;
-import com.ruoyi.common.utils.StringUtils;
+import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.common.core.constant.GenConstants;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.BaseEntity;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java
index d9349983d..c743a30c9 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java
@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.ruoyi.common.core.domain.BaseEntity;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableColumnMapper.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableColumnMapper.java
index 93578f2e9..6ae9e8e73 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableColumnMapper.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableColumnMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.generator.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
-import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import com.ruoyi.generator.domain.GenTableColumn;
import java.util.List;
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java
index f70a11eb6..b041fc38f 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java
@@ -2,7 +2,7 @@ package com.ruoyi.generator.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import com.ruoyi.generator.domain.GenTable;
import org.apache.ibatis.annotations.Param;
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
index 0836d1927..37c7a828e 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
@@ -10,16 +10,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.constant.Constants;
-import com.ruoyi.common.constant.GenConstants;
-import com.ruoyi.common.core.domain.PageQuery;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.helper.LoginHelper;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.StreamUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.file.FileUtils;
+import com.ruoyi.common.core.constant.Constants;
+import com.ruoyi.common.core.constant.GenConstants;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.JsonUtils;
+import com.ruoyi.common.core.utils.StreamUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.file.FileUtils;
+import com.ruoyi.common.mybatis.core.page.PageQuery;
+import com.ruoyi.common.mybatis.core.page.TableDataInfo;
+import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn;
import com.ruoyi.generator.mapper.GenTableColumnMapper;
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java
index c432d067a..3e6727fa9 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java
@@ -1,7 +1,7 @@
package com.ruoyi.generator.service;
-import com.ruoyi.common.core.domain.PageQuery;
-import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.mybatis.core.page.PageQuery;
+import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn;
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java
index b6c2248e6..cb0a065b9 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java
@@ -1,7 +1,7 @@
package com.ruoyi.generator.util;
-import com.ruoyi.common.constant.GenConstants;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.core.constant.GenConstants;
+import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.generator.config.GenConfig;
import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn;
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java
index 67769a8dd..045e30347 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java
@@ -1,6 +1,6 @@
package com.ruoyi.generator.util;
-import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.core.constant.Constants;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.velocity.app.Velocity;
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java
index e5bb87f4a..e23b08d3e 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java
@@ -3,11 +3,12 @@ package com.ruoyi.generator.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Dict;
-import com.ruoyi.common.constant.GenConstants;
-import com.ruoyi.common.helper.DataBaseHelper;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.StringUtils;
+import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.common.core.constant.GenConstants;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.JsonUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.mybatis.helper.DataBaseHelper;
import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn;
import lombok.AccessLevel;
diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml
index 8d6f06466..3c49edb98 100644
--- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml
+++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml
@@ -8,7 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"