From 863aa2fa33de2782a9938dcafb683aedb5048762 Mon Sep 17 00:00:00 2001
From: konbai <1527468660@qq.com>
Date: Sat, 19 Feb 2022 19:19:37 +0800
Subject: [PATCH] =?UTF-8?q?!11sync=20--=20=E5=90=8C=E6=AD=A5=20RuoYi-Vue-P?=
=?UTF-8?q?lus=20=E6=9B=B4=E6=96=B0=20update=20=E6=9B=B4=E6=96=B0uuid?=
=?UTF-8?q?=E5=8E=BB=E9=99=A4=E9=BB=98=E8=AE=A4=E5=80=BC=20=E6=BC=8F?=
=?UTF-8?q?=E6=94=B9=20fix=20=E4=BF=AE=E5=A4=8D=20insertOrUpdateBatch=20?=
=?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=A8=A1=E6=9D=BF=E9=94=99=E8=AF=AF=20update?=
=?UTF-8?q?=20=E6=9B=B4=E6=96=B0=20=E6=89=80=E6=9C=89=20oss=20=E5=9D=87?=
=?UTF-8?q?=E6=94=AF=E6=8C=81=20https=20=E9=85=8D=E7=BD=AE=20fix=20?=
=?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=86=E9=A1=B5=E7=BB=84=E4=BB=B6=E8=AF=B7?=
=?UTF-8?q?=E6=B1=82=E4=B8=A4=E6=AC=A1=E9=97=AE=E9=A2=98(I4SQOR)=20update?=
=?UTF-8?q?=20=E5=8E=BB=E9=99=A4=E7=BC=96=E8=AF=91=E5=99=A8=E8=AD=A6?=
=?UTF-8?q?=E5=91=8A=20=E8=A7=84=E8=8C=83=E5=86=99=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
update 更新uuid去除默认值 漏改
fix 修复 insertOrUpdateBatch 获取模板错误
update 更新 所有 oss 均支持 https 配置
fix 修复分页组件请求两次问题(I4SQOR)
update 去除编译器警告 规范写法
add 增加页面更新说明
fix 修复 minio 适配 https 导致的问题
update 更新 多用户多设备的注释说明
发布 4.0.0
---
pom.xml | 8 +--
ruoyi-admin/pom.xml | 2 +-
ruoyi-common/pom.xml | 2 +-
.../common/core/mapper/BaseMapperPlus.java | 2 +-
.../com/ruoyi/common/helper/LoginHelper.java | 11 +++-
ruoyi-demo/pom.xml | 2 +-
ruoyi-extend/pom.xml | 2 +-
ruoyi-extend/ruoyi-monitor-admin/pom.xml | 2 +-
ruoyi-extend/ruoyi-xxl-job-admin/pom.xml | 2 +-
ruoyi-flowable/pom.xml | 2 +-
ruoyi-framework/pom.xml | 2 +-
ruoyi-generator/pom.xml | 2 +-
.../service/GenTableServiceImpl.java | 9 +--
ruoyi-job/pom.xml | 2 +-
ruoyi-oss/pom.xml | 2 +-
.../com/ruoyi/oss/constant/OssConstant.java | 17 +++--
.../oss/service/impl/AliyunOssStrategy.java | 5 ++
.../oss/service/impl/MinioOssStrategy.java | 16 +++--
.../oss/service/impl/QcloudOssStrategy.java | 3 +-
.../oss/service/impl/QiniuOssStrategy.java | 4 +-
ruoyi-system/pom.xml | 2 +-
ruoyi-ui/package.json | 2 +-
ruoyi-ui/src/components/Pagination/index.vue | 12 ++++
ruoyi-ui/src/views/index.vue | 66 ++++++++++++++++++-
ruoyi-ui/src/views/login.vue | 2 +-
script/docker/docker-compose.yml | 20 +++---
26 files changed, 151 insertions(+), 50 deletions(-)
diff --git a/pom.xml b/pom.xml
index 5015baa7..3fe21596 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,15 +6,15 @@
com.ruoyi
ruoyi-flowable-plus
- 3.5.0
+ 4.0.0
RuoYi-Flowable-Plus
https://gitee.com/KonBAI-Q/ruoyi-flowable-plus
RuoYi-Flowable-Plus后台管理系统
- 3.5.0
- 2.5.8
+ 4.0.0
+ 2.6.3
UTF-8
UTF-8
1.8
@@ -273,7 +273,7 @@
${ruoyi-flowable-plus.version}
-
+
com.ruoyi
ruoyi-flowable
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 9551b4c4..10887392 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
jar
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 71c74762..138b1ca2 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java
index d3f61950..1ff35792 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mapper/BaseMapperPlus.java
@@ -108,7 +108,7 @@ public interface BaseMapperPlus extends BaseMapper {
Assert.notEmpty(keyProperty, "error: can not execute. because can not find column for id from entity!");
return SqlHelper.saveOrUpdateBatch(this.currentModelClass(), this.currentMapperClass(), log, entityList, batchSize, (sqlSession, entity) -> {
Object idVal = tableInfo.getPropertyValue(entity, keyProperty);
- String sqlStatement = SqlHelper.getSqlStatement(this.currentMapperClass(), SqlMethod.INSERT_ONE);
+ String sqlStatement = SqlHelper.getSqlStatement(this.currentMapperClass(), SqlMethod.SELECT_BY_ID);
return StringUtils.checkValNull(idVal)
|| CollectionUtils.isEmpty(sqlSession.selectList(sqlStatement, entity));
}, (sqlSession, entity) -> {
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java b/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java
index 4b1f83f4..13050698 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/helper/LoginHelper.java
@@ -12,7 +12,13 @@ import lombok.NoArgsConstructor;
/**
* 登录鉴权助手
- * 为适配多端登录而封装
+ *
+ * user_type 为 用户类型 同一个用户表 可以有多种用户类型 例如 pc,app
+ * deivce 为 设备类型 同一个用户类型 可以有 多种设备类型 例如 web,ios
+ * 可以组成 用户类型与设备类型多对多的 权限灵活控制
+ *
+ * 多用户体系 针对 多种用户类型 但权限控制不一致
+ * 可以组成 多用户类型表与多设备类型 分别控制权限
*
* @author Lion Li
*/
@@ -26,7 +32,6 @@ public class LoginHelper {
/**
* 登录系统
- * 针对两套用户体系
*
* @param loginUser 登录用户信息
*/
@@ -38,7 +43,7 @@ public class LoginHelper {
/**
* 登录系统 基于 设备类型
- * 针对一套用户体系
+ * 针对相同用户体系不同设备
*
* @param loginUser 登录用户信息
*/
diff --git a/ruoyi-demo/pom.xml b/ruoyi-demo/pom.xml
index 9ac16801..7b7d7a4a 100644
--- a/ruoyi-demo/pom.xml
+++ b/ruoyi-demo/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
diff --git a/ruoyi-extend/pom.xml b/ruoyi-extend/pom.xml
index e016915c..8e9e5d9e 100644
--- a/ruoyi-extend/pom.xml
+++ b/ruoyi-extend/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
ruoyi-extend
diff --git a/ruoyi-extend/ruoyi-monitor-admin/pom.xml b/ruoyi-extend/ruoyi-monitor-admin/pom.xml
index e21cc6da..6159ccc3 100644
--- a/ruoyi-extend/ruoyi-monitor-admin/pom.xml
+++ b/ruoyi-extend/ruoyi-monitor-admin/pom.xml
@@ -5,7 +5,7 @@
ruoyi-extend
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
jar
diff --git a/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml b/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml
index a2e64058..f444c312 100644
--- a/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml
+++ b/ruoyi-extend/ruoyi-xxl-job-admin/pom.xml
@@ -4,7 +4,7 @@
ruoyi-extend
com.ruoyi
- 3.5.0
+ 4.0.0
ruoyi-xxl-job-admin
jar
diff --git a/ruoyi-flowable/pom.xml b/ruoyi-flowable/pom.xml
index 0e0b19ea..ae72ad05 100644
--- a/ruoyi-flowable/pom.xml
+++ b/ruoyi-flowable/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml
index c118fb97..d784e103 100644
--- a/ruoyi-framework/pom.xml
+++ b/ruoyi-framework/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml
index 436f3bd8..c16b2796 100644
--- a/ruoyi-generator/pom.xml
+++ b/ruoyi-generator/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
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 787c80ce..154f0263 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
@@ -382,12 +382,13 @@ public class GenTableServiceImpl implements IGenTableService {
@Override
public void validateEdit(GenTable genTable) {
if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) {
- Map paramsObj = genTable.getParams();
- if (ObjectUtil.isEmpty(paramsObj.get(GenConstants.TREE_CODE))) {
+ String options = JsonUtils.toJsonString(genTable.getParams());
+ Dict paramsObj = JsonUtils.parseMap(options);
+ if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_CODE))) {
throw new ServiceException("树编码字段不能为空");
- } else if (ObjectUtil.isEmpty(paramsObj.get(GenConstants.TREE_PARENT_CODE))) {
+ } else if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_PARENT_CODE))) {
throw new ServiceException("树父编码字段不能为空");
- } else if (ObjectUtil.isEmpty(paramsObj.get(GenConstants.TREE_NAME))) {
+ } else if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_NAME))) {
throw new ServiceException("树名称字段不能为空");
} else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) {
if (StringUtils.isEmpty(genTable.getSubTableName())) {
diff --git a/ruoyi-job/pom.xml b/ruoyi-job/pom.xml
index e5c3aa30..4b514e87 100644
--- a/ruoyi-job/pom.xml
+++ b/ruoyi-job/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
jar
diff --git a/ruoyi-oss/pom.xml b/ruoyi-oss/pom.xml
index 9cc660e4..4c710d2c 100644
--- a/ruoyi-oss/pom.xml
+++ b/ruoyi-oss/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java
index fe966aaa..6c00cd8d 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/constant/OssConstant.java
@@ -8,31 +8,36 @@ import java.util.List;
*
* @author Lion Li
*/
-public class OssConstant {
+public interface OssConstant {
/**
* OSS模块KEY
*/
- public static final String SYS_OSS_KEY = "sys_oss:";
+ String SYS_OSS_KEY = "sys_oss:";
/**
* 对象存储配置KEY
*/
- public static final String OSS_CONFIG_KEY = "OssConfig";
+ String OSS_CONFIG_KEY = "OssConfig";
/**
* 缓存配置KEY
*/
- public static final String CACHE_CONFIG_KEY = SYS_OSS_KEY + OSS_CONFIG_KEY;
+ String CACHE_CONFIG_KEY = SYS_OSS_KEY + OSS_CONFIG_KEY;
/**
* 预览列表资源开关Key
*/
- public static final String PEREVIEW_LIST_RESOURCE_KEY = "sys.oss.previewListResource";
+ String PEREVIEW_LIST_RESOURCE_KEY = "sys.oss.previewListResource";
/**
* 系统数据ids
*/
- public static final List SYSTEM_DATA_IDS = Arrays.asList(1, 2, 3, 4);
+ List SYSTEM_DATA_IDS = Arrays.asList(1, 2, 3, 4);
+
+ /**
+ * https 状态
+ */
+ String IS_HTTPS = "Y";
}
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java
index adfce098..62c29228 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/AliyunOssStrategy.java
@@ -3,11 +3,13 @@ package com.ruoyi.oss.service.impl;
import com.aliyun.oss.ClientConfiguration;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
+import com.aliyun.oss.common.comm.Protocol;
import com.aliyun.oss.model.CannedAccessControlList;
import com.aliyun.oss.model.CreateBucketRequest;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectRequest;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.oss.constant.OssConstant;
import com.ruoyi.oss.entity.UploadResult;
import com.ruoyi.oss.enumd.OssEnumd;
import com.ruoyi.oss.exception.OssException;
@@ -33,6 +35,9 @@ public class AliyunOssStrategy extends AbstractOssStrategy {
super.init(ossProperties);
try {
ClientConfiguration configuration = new ClientConfiguration();
+ if (OssConstant.IS_HTTPS.equals(ossProperties.getIsHttps())) {
+ configuration.setProtocol(Protocol.HTTPS);
+ }
DefaultCredentialProvider credentialProvider = new DefaultCredentialProvider(
properties.getAccessKey(), properties.getSecretKey());
client = new OSSClient(properties.getEndpoint(), credentialProvider, configuration);
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java
index 435606cc..93f88fb3 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/MinioOssStrategy.java
@@ -1,6 +1,7 @@
package com.ruoyi.oss.service.impl;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.oss.constant.OssConstant;
import com.ruoyi.oss.entity.UploadResult;
import com.ruoyi.oss.enumd.OssEnumd;
import com.ruoyi.oss.enumd.PolicyType;
@@ -8,6 +9,8 @@ import com.ruoyi.oss.exception.OssException;
import com.ruoyi.oss.properties.OssProperties;
import com.ruoyi.oss.service.abstractd.AbstractOssStrategy;
import io.minio.*;
+import io.minio.http.HttpUtils;
+import okhttp3.HttpUrl;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
@@ -28,10 +31,15 @@ public class MinioOssStrategy extends AbstractOssStrategy {
public void init(OssProperties ossProperties) {
super.init(ossProperties);
try {
- minioClient = MinioClient.builder()
- .endpoint(properties.getEndpoint())
- .credentials(properties.getAccessKey(), properties.getSecretKey())
- .build();
+ MinioClient.Builder builder = MinioClient.builder();
+ if (OssConstant.IS_HTTPS.equals(ossProperties.getIsHttps())) {
+ HttpUrl url = HttpUtils.getBaseUrl(properties.getEndpoint())
+ .newBuilder().scheme("https").build();
+ builder.endpoint(url);
+ } else {
+ builder.endpoint(properties.getEndpoint());
+ }
+ minioClient = builder.credentials(properties.getAccessKey(), properties.getSecretKey()).build();
createBucket();
} catch (Exception e) {
throw new OssException("Minio存储配置错误! 请检查系统配置:[" + e.getMessage() + "]");
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java
index 21a2f95b..756462e4 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QcloudOssStrategy.java
@@ -8,6 +8,7 @@ import com.qcloud.cos.http.HttpProtocol;
import com.qcloud.cos.model.*;
import com.qcloud.cos.region.Region;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.oss.constant.OssConstant;
import com.ruoyi.oss.entity.UploadResult;
import com.ruoyi.oss.enumd.OssEnumd;
import com.ruoyi.oss.exception.OssException;
@@ -38,7 +39,7 @@ public class QcloudOssStrategy extends AbstractOssStrategy {
ClientConfig clientConfig = new ClientConfig();
// 设置bucket所在的区域,华南:gz 华北:tj 华东:sh
clientConfig.setRegion(new Region(properties.getRegion()));
- if ("Y".equals(properties.getIsHttps())) {
+ if (OssConstant.IS_HTTPS.equals(properties.getIsHttps())) {
clientConfig.setHttpProtocol(HttpProtocol.https);
} else {
clientConfig.setHttpProtocol(HttpProtocol.http);
diff --git a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java
index a47bc68d..20f13eca 100644
--- a/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java
+++ b/ruoyi-oss/src/main/java/com/ruoyi/oss/service/impl/QiniuOssStrategy.java
@@ -7,6 +7,7 @@ import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
+import com.ruoyi.oss.constant.OssConstant;
import com.ruoyi.oss.entity.UploadResult;
import com.ruoyi.oss.enumd.OssEnumd;
import com.ruoyi.oss.exception.OssException;
@@ -35,8 +36,7 @@ public class QiniuOssStrategy extends AbstractOssStrategy {
try {
Configuration config = new Configuration(getRegion(properties.getRegion()));
// https设置
- config.useHttpsDomains = false;
- config.useHttpsDomains = "Y".equals(properties.getIsHttps());
+ config.useHttpsDomains = OssConstant.IS_HTTPS.equals(properties.getIsHttps());
uploadManager = new UploadManager(config);
auth = Auth.create(properties.getAccessKey(), properties.getSecretKey());
bucketManager = new BucketManager(auth, config);
diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml
index 9e5d73c4..e1ce4220 100644
--- a/ruoyi-system/pom.xml
+++ b/ruoyi-system/pom.xml
@@ -5,7 +5,7 @@
ruoyi-flowable-plus
com.ruoyi
- 3.5.0
+ 4.0.0
4.0.0
diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json
index b13577e8..180fc5b7 100644
--- a/ruoyi-ui/package.json
+++ b/ruoyi-ui/package.json
@@ -1,6 +1,6 @@
{
"name": "ruoyi-flowable-plus",
- "version": "3.5.0",
+ "version": "4.0.0",
"description": "RuoYi-Flowable-Plus后台管理系统",
"author": "KonBAI",
"license": "MIT",
diff --git a/ruoyi-ui/src/components/Pagination/index.vue b/ruoyi-ui/src/components/Pagination/index.vue
index 5e5d8904..b09f080c 100644
--- a/ruoyi-ui/src/components/Pagination/index.vue
+++ b/ruoyi-ui/src/components/Pagination/index.vue
@@ -1,6 +1,7 @@
+
+
+ - [重大更新] 重写项目整体结构 数据处理下沉至Mapper符合MVC规范 减少循环依赖
+ - [重磅更新] 主分支与satoken分支合并 权限统一使用 sa-token
+ - [重磅更新] 适配升级 SpringBoot 2.6
+ - [重磅更新] EasyExcel大版本升级3.X
+ - [重磅更新] 移除链式调用注解 因链式调用不符合java规范 导致很多问题
+ - [重磅更新] 增加 轻量级 分布式队列 支持
+ - [重磅更新] 增加 数据脱敏注解 使用序列化控制脱敏 支持多种表达式
+ - [重磅更新] 重构 使用 Spring 简化 oss 模块代码
+ - [重磅更新] 重构 调整返回类型为 R 精简 Controller 代码
+ - update springboot 2.5.8 => 2.6.3
+ - update mybatis-plus 3.4.3.4 => 3.5.1
+ - update maven-jar-plugin 3.2.0 => 3.2.2
+ - update maven-war-plugin 3.2.0 => 3.2.2
+ - update maven-compiler-plugin 3.1 => 3.9.0
+ - update hutool 5.7.18 => 5.7.20
+ - update springboot-admin 2.6.0 => 2.6.2
+ - update redisson 3.16.7 => 3.16.8
+ - update qiniu 7.9.0 => 7.9.2
+ - update aliyun 3.13.1 => 3.14.0
+ - update qcloud 5.6.58 => 5.6.68
+ - update minio 8.3.4 => 8.3.5
+ - update 用户管理部门查询选择节点后分页参数初始
+ - update 防重复提交标识组合(key + url + header)
+ - update 接口文档增加 basic 账号密码验证
+ - update 用户修改减少一次角色列表关联查询
+ - update 优化部门修改缩放后出现的错位问题
+ - update 指定 maven 资源过滤为具体文件 防止错误过滤
+ - update hutool 引入改为 bom 依赖项引入
+ - update 降低开发环境 redis连接池数量
+ - update 升级 springboot 2.6.X 解决 springfox 兼容性问题
+ - update 优化多用户体系处理 更名 LoginUtils 为 LoginHelper 支持 LoginUser 多级缓存
+ - update 优化加载字典缓存数据
+ - update 数据库更改 对接多用户体系
+ - update 移除掉 StringUtils 语义不明确的api方法 使用特定工具替换
+ - update 优化登录、注册在接口通过`@Validated`注解进行数据基础校验
+ - update 优化 查询登录用户数据 统一走缓存
+ - update 优化 redisson 配置 去除掉不常用的配置 使用默认配置
+ - update 用户访问控制时校验数据权限,防止越权
+ - update 修改用户注册报未登录警告
+ - update 调整oss预览开关 使用前端直接调用更改配置参数
+ - update 使用 satoken 自带的 BCrypt 工具 替换 Security 加密工具 减少依赖
+ - update 优化 TreeBuildUtils 工具 使用反射自动获取顶级父id
+ - update 使用 hutool Dict 优化 JsonUtils 防止类型解析异常
+ - update 优化代码生成 使用新 JsonUtils.parseMap 方法
+ - update 更新 所有 oss 均支持 https 配置
+ - add 增加 RedisUtils 工具 hasKey 检查key存在方法
+ - add 增加 监控中心 自定义事件通知
+ - add 增加 3.X update 4.0 更新sql
+ - fix 修复登录失效后多次请求提示多次弹窗问题
+ - fix 修复 StringUtils 通配符匹配无效
+ - fix 修复选项卡点击右键刷新丢失参数问题
+ - fix 修复 数据权限 缓存方法名错误问题
+ - fix 修复自定义组件`file-upload`无法显示第一个文件,列表显示的文件比实际文件少一个的问题
+ - fix 修复因升级 sa-token 导致 doLogin 无法获取 token 问题
+ - fix 修复分页组件请求两次问题
+ - remove 移除过期代码 分页工具相关
+ - remove 移除过期代码 多数据源切换
+ - remove 移除过期代码 数据权限
+ - 3.X 版本进入维护阶段 不进行更新 只修复bug 持续维护到2022年10月
+ - 4.X 版本公测将近一个月 大部分bug已修复 官网主分支更改为 4.X 版本 推荐使用
+
+
- [重大更新] 重写数据权限实现
@@ -644,7 +708,7 @@ export default {
data() {
return {
// 版本号
- version: "3.5.0",
+ version: "4.0.0",
};
},
methods: {
diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue
index 1744cece..6d5d2d58 100644
--- a/ruoyi-ui/src/views/login.vue
+++ b/ruoyi-ui/src/views/login.vue
@@ -56,7 +56,7 @@
diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml
index 79739c38..50ae4a24 100644
--- a/script/docker/docker-compose.yml
+++ b/script/docker/docker-compose.yml
@@ -12,7 +12,7 @@ services:
# 初始化数据库(后续的初始化sql会在这个库执行)
MYSQL_DATABASE: ry-vue
ports:
- - 3306:3306
+ - "3306:3306"
volumes:
# 数据挂载
- /docker/mysql/data/:/var/lib/mysql/
@@ -38,8 +38,8 @@ services:
# 时区上海
TZ: Asia/Shanghai
ports:
- - 80:80
- - 443:443
+ - "80:80"
+ - "443:443"
volumes:
# 证书映射
- /docker/nginx/cert:/etc/nginx/cert
@@ -58,7 +58,7 @@ services:
image: redis:6.2.6
container_name: redis
ports:
- - 6379:6379
+ - "6379:6379"
environment:
# 时区上海
TZ: Asia/Shanghai
@@ -79,9 +79,9 @@ services:
container_name: minio
ports:
# api 端口
- - 9000:9000
+ - "9000:9000"
# 控制台端口
- - 9001:9001
+ - "9001:9001"
environment:
# 时区上海
TZ: Asia/Shanghai
@@ -102,7 +102,7 @@ services:
ipv4_address: 172.30.0.54
ruoyi-server1:
- image: "ruoyi/ruoyi-server:3.5.0"
+ image: ruoyi/ruoyi-server:4.0.0
container_name: ruoyi-server1
environment:
# 时区上海
@@ -117,7 +117,7 @@ services:
ipv4_address: 172.30.0.60
ruoyi-server2:
- image: "ruoyi/ruoyi-server:3.5.0"
+ image: "ruoyi/ruoyi-server:4.0.0"
container_name: ruoyi-server2
environment:
# 时区上海
@@ -132,7 +132,7 @@ services:
ipv4_address: 172.30.0.61
ruoyi-monitor-admin:
- image: "ruoyi/ruoyi-monitor-admin:3.5.0"
+ image: ruoyi/ruoyi-monitor-admin:4.0.0
container_name: ruoyi-monitor-admin
environment:
# 时区上海
@@ -147,7 +147,7 @@ services:
ipv4_address: 172.30.0.90
ruoyi-xxl-job-admin:
- image: "ruoyi/ruoyi-xxl-job-admin:3.5.0"
+ image: ruoyi/ruoyi-xxl-job-admin:4.0.0
container_name: ruoyi-xxl-job-admin
environment:
# 时区上海