From 2d116146cedb5a9a96d1d3a5fe026b5607b30154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Thu, 26 Feb 2026 13:41:10 +0800 Subject: [PATCH 1/8] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20undertow=20?= =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC=E6=97=A0=E6=B3=95=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=A4=A7=E6=96=87=E4=BB=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/resources/application.yml | 2 +- .../org/dromara/common/web/config/UndertowConfig.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index d11d9f0ea..637956c2c 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -8,7 +8,7 @@ server: # undertow 配置 undertow: # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的 - max-http-post-size: -1 + max-http-post-size: 1GB # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 # 每块buffer的空间大小,越小的空间被利用越充分 buffer-size: 512 diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java index 84f88ff82..02ab0a1eb 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java @@ -1,11 +1,14 @@ package org.dromara.common.web.config; +import io.undertow.UndertowOptions; import io.undertow.server.DefaultByteBufferPool; import io.undertow.server.handlers.DisallowedMethodsHandler; import io.undertow.util.HttpString; import io.undertow.websockets.jsr.WebSocketDeploymentInfo; import org.dromara.common.core.utils.SpringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.web.ServerProperties; import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.core.task.VirtualThreadTaskExecutor; @@ -18,6 +21,9 @@ import org.springframework.core.task.VirtualThreadTaskExecutor; @AutoConfiguration public class UndertowConfig implements WebServerFactoryCustomizer { + @Autowired + private ServerProperties serverProperties; + /** * 自定义 Undertow 配置 *

@@ -31,6 +37,11 @@ public class UndertowConfig implements WebServerFactoryCustomizer { + builder.setServerOption(UndertowOptions.MULTIPART_MAX_ENTITY_SIZE, bytes); + }); + factory.addDeploymentInfoCustomizers(deploymentInfo -> { // 配置 WebSocket 部署信息,设置 WebSocket 使用的缓冲区池 WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo(); From e669fa3210c8f7009022bad046f9e254bbc37105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Thu, 26 Feb 2026 13:42:56 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20undertow=20?= =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC=E6=97=A0=E6=B3=95=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=A4=A7=E6=96=87=E4=BB=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 03f385f1f..ba51c02b5 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ 5.5.3 - 3.5.9 + 3.5.11 UTF-8 UTF-8 17 From 6b3ed18c33ec2a315aa85f750835e72edf0e9ead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 2 Mar 2026 13:27:53 +0800 Subject: [PATCH 3/8] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E6=B6=88?= =?UTF-8?q?=E9=99=A4=E7=BC=96=E8=AF=91=E7=9B=B8=E5=85=B3=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/mybatis/helper/DataPermissionHelper.java | 2 +- .../org/dromara/common/satoken/core/dao/PlusSaTokenDao.java | 2 +- .../java/org/dromara/common/satoken/utils/LoginHelper.java | 4 ++-- .../java/org/dromara/job/snailjob/TestMapJobAnnotation.java | 1 + .../org/dromara/job/snailjob/TestMapReduceAnnotation1.java | 1 + .../dromara/workflow/service/impl/FlwNodeExtServiceImpl.java | 2 +- 6 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java index 8963648c0..76cfd2ad9 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/helper/DataPermissionHelper.java @@ -23,7 +23,7 @@ import java.util.function.Supplier; * @version 3.5.0 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) -@SuppressWarnings("unchecked cast") +@SuppressWarnings("unchecked") public class DataPermissionHelper { private static final String DATA_PERMISSION_KEY = "data:permission"; diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java index 14abf896a..09f82324e 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/core/dao/PlusSaTokenDao.java @@ -113,7 +113,7 @@ public class PlusSaTokenDao implements SaTokenDaoBySessionFollowObject { * @param key 键名称 * @return object */ - @SuppressWarnings("unchecked cast") + @SuppressWarnings("unchecked") @Override public T getObject(String key, Class classType) { Object o = CAFFEINE.get(key, k -> RedisUtils.getCacheObject(key)); diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java index 730bae29d..38a367a16 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java @@ -63,7 +63,7 @@ public class LoginHelper { /** * 获取用户(多级缓存) */ - @SuppressWarnings("unchecked cast") + @SuppressWarnings("unchecked") public static T getLoginUser() { SaSession session = StpUtil.getTokenSession(); if (ObjectUtil.isNull(session)) { @@ -75,7 +75,7 @@ public class LoginHelper { /** * 获取用户基于token */ - @SuppressWarnings("unchecked cast") + @SuppressWarnings("unchecked") public static T getLoginUser(String token) { SaSession session = StpUtil.getTokenSessionByToken(token); if (ObjectUtil.isNull(session)) { diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java index f58d7724a..8507092f6 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapJobAnnotation.java @@ -21,6 +21,7 @@ import java.util.stream.IntStream; * * @author 老马 */ +@SuppressWarnings({"unchecked", "rawtypes"}) @Component @JobExecutor(name = "testMapJobAnnotation") public class TestMapJobAnnotation { diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java index f926016f9..17aa9e461 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/TestMapReduceAnnotation1.java @@ -23,6 +23,7 @@ import java.util.stream.IntStream; * * @author 老马 */ +@SuppressWarnings({"unchecked", "rawtypes"}) @Component @JobExecutor(name = "testMapReduceAnnotation1") public class TestMapReduceAnnotation1 { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java index ce845dc45..8e398692c 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwNodeExtServiceImpl.java @@ -102,7 +102,7 @@ public class FlwNodeExtServiceImpl implements NodeExtService, IFlwNodeExtService * @param sources 数据来源(枚举类或字典类型) * @return 构建的 `NodeExt` 对象 */ - @SuppressWarnings("unchecked cast") + @SuppressWarnings("unchecked") private NodeExt buildNodeExt(String code, String name, int type, List sources) { NodeExt nodeExt = new NodeExt(); nodeExt.setCode(code); From f8e3cff83d565395693ae089bb5bad25d3e1fd2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 2 Mar 2026 14:16:23 +0800 Subject: [PATCH 4/8] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E7=B3=BB=E7=BB=9F=E7=9B=91=E6=8E=A7=E4=B8=8E=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E7=9B=91=E6=8E=A7=E8=8F=9C=E5=8D=95=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=20=E9=81=BF=E5=85=8D=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/sql/oracle/oracle_ry_workflow.sql | 2 +- script/sql/postgres/postgres_ry_workflow.sql | 2 +- script/sql/ry_workflow.sql | 2 +- script/sql/sqlserver/sqlserver_ry_workflow.sql | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/script/sql/oracle/oracle_ry_workflow.sql b/script/sql/oracle/oracle_ry_workflow.sql index 7f5ab22fa..9cbc830f9 100644 --- a/script/sql/oracle/oracle_ry_workflow.sql +++ b/script/sql/oracle/oracle_ry_workflow.sql @@ -477,7 +477,7 @@ INSERT INTO sys_menu VALUES ('11620', '流程定义', '11616', '3', 'processDefi INSERT INTO sys_menu VALUES ('11621', '流程实例', '11630', '1', 'processInstance', 'workflow/processInstance/index', '', '1', '1', 'C', '0', '0', '', 'tree-table', 103, 1, SYSDATE, NULL, NULL, ''); INSERT INTO sys_menu VALUES ('11622', '流程分类', '11616', '1', 'category', 'workflow/category/index', '', '1', '0', 'C', '0', '0', 'workflow:category:list', 'category', 103, 1, SYSDATE, NULL, NULL, ''); INSERT INTO sys_menu VALUES ('11629', '我发起的', '11618', '1', 'myDocument', 'workflow/task/myDocument', '', '1', '1', 'C', '0', '0', '', 'guide', 103, 1, SYSDATE, NULL, NULL, ''); -INSERT INTO sys_menu VALUES ('11630', '流程监控', '11616', '4', 'monitor', '', '', '1', '0', 'M', '0', '0', '', 'monitor', 103, 1, SYSDATE, NULL, NULL, ''); +INSERT INTO sys_menu VALUES ('11630', '流程监控', '11616', '4', 'processMonitor', '', '', '1', '0', 'M', '0', '0', '', 'monitor', 103, 1, SYSDATE, NULL, NULL, ''); INSERT INTO sys_menu VALUES ('11631', '待办任务', '11630', '2', 'allTaskWaiting', 'workflow/task/allTaskWaiting', '', '1', '1', 'C', '0', '0', '', 'waiting', 103, 1, SYSDATE, NULL, NULL, ''); INSERT INTO sys_menu VALUES ('11700', '流程设计', '11616', '5', 'design/index', 'workflow/processDefinition/design', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, SYSDATE, NULL, NULL, '/workflow/processDefinition'); INSERT INTO sys_menu VALUES ('11701', '请假申请', '11616', '6', 'leaveEdit/index', 'workflow/leave/leaveEdit', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, SYSDATE, NULL, NULL, ''); diff --git a/script/sql/postgres/postgres_ry_workflow.sql b/script/sql/postgres/postgres_ry_workflow.sql index d6f30dfd2..83cad84d3 100644 --- a/script/sql/postgres/postgres_ry_workflow.sql +++ b/script/sql/postgres/postgres_ry_workflow.sql @@ -455,7 +455,7 @@ INSERT INTO sys_menu VALUES ('11620', '流程定义', '11616', '3', 'processDefi INSERT INTO sys_menu VALUES ('11621', '流程实例', '11630', '1', 'processInstance', 'workflow/processInstance/index', '', '1', '1', 'C', '0', '0', '', 'tree-table', 103, 1, now(), NULL, NULL, ''); INSERT INTO sys_menu VALUES ('11622', '流程分类', '11616', '1', 'category', 'workflow/category/index', '', '1', '0', 'C', '0', '0', 'workflow:category:list', 'category', 103, 1, now(), NULL, NULL, ''); INSERT INTO sys_menu VALUES ('11629', '我发起的', '11618', '1', 'myDocument', 'workflow/task/myDocument', '', '1', '1', 'C', '0', '0', '', 'guide', 103, 1, now(), NULL, NULL, ''); -INSERT INTO sys_menu VALUES ('11630', '流程监控', '11616', '4', 'monitor', '', '', '1', '0', 'M', '0', '0', '', 'monitor', 103, 1, now(), NULL, NULL, ''); +INSERT INTO sys_menu VALUES ('11630', '流程监控', '11616', '4', 'processMonitor', '', '', '1', '0', 'M', '0', '0', '', 'monitor', 103, 1, now(), NULL, NULL, ''); INSERT INTO sys_menu VALUES ('11631', '待办任务', '11630', '2', 'allTaskWaiting', 'workflow/task/allTaskWaiting', '', '1', '1', 'C', '0', '0', '', 'waiting', 103, 1, now(), NULL, NULL, ''); INSERT INTO sys_menu VALUES ('11700', '流程设计', '11616', '5', 'design/index', 'workflow/processDefinition/design', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, now(), NULL, NULL, '/workflow/processDefinition'); INSERT INTO sys_menu VALUES ('11701', '请假申请', '11616', '6', 'leaveEdit/index', 'workflow/leave/leaveEdit', '', '1', '1', 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, now(), NULL, NULL, ''); diff --git a/script/sql/ry_workflow.sql b/script/sql/ry_workflow.sql index c911a5bd1..d90e2d2ee 100644 --- a/script/sql/ry_workflow.sql +++ b/script/sql/ry_workflow.sql @@ -268,7 +268,7 @@ insert into sys_menu values ('11621', '流程实例', '11630', '1', 'processInst insert into sys_menu values ('11622', '流程分类', '11616', '1', 'category', 'workflow/category/index', '', '1', '0', 'C', '0', '0', 'workflow:category:list', 'category', 103, 1, sysdate(), NULL, NULL, ''); INSERT INTO sys_menu VALUES ('11801', '流程表达式', '11616', '2', 'spel', 'workflow/spel/index', '', 1, 0, 'C', '0', '0', 'workflow:spel:list', 'input', 103, 1, sysdate(), 1, sysdate(), '流程达式定义菜单'); insert into sys_menu values ('11629', '我发起的', '11618', '1', 'myDocument', 'workflow/task/myDocument', '', '1', '1', 'C', '0', '0', '', 'guide', 103, 1, sysdate(), NULL, NULL, ''); -insert into sys_menu values ('11630', '流程监控', '11616', '4', 'monitor', '', '', '1', '0', 'M', '0', '0', '', 'monitor', 103, 1, sysdate(), NULL, NULL, ''); +insert into sys_menu values ('11630', '流程监控', '11616', '4', 'processMonitor', '', '', '1', '0', 'M', '0', '0', '', 'monitor', 103, 1, sysdate(), NULL, NULL, ''); insert into sys_menu values ('11631', '待办任务', '11630', '2', 'allTaskWaiting', 'workflow/task/allTaskWaiting', '', '1', '1', 'C', '0', '0', '', 'waiting', 103, 1, sysdate(), NULL, NULL, ''); insert into sys_menu values ('11700', '流程设计', '11616', '5', 'design/index', 'workflow/processDefinition/design', '', 1, 1, 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, sysdate(), null, null, '/workflow/processDefinition'); insert into sys_menu values ('11701', '请假申请', '11616', '6', 'leaveEdit/index', 'workflow/leave/leaveEdit', '', 1, 1, 'C', '1', '0', 'workflow:leave:edit', '#', 103, 1, sysdate(), null, null, ''); diff --git a/script/sql/sqlserver/sqlserver_ry_workflow.sql b/script/sql/sqlserver/sqlserver_ry_workflow.sql index 09a661fbd..7a9e42bed 100644 --- a/script/sql/sqlserver/sqlserver_ry_workflow.sql +++ b/script/sql/sqlserver/sqlserver_ry_workflow.sql @@ -1579,7 +1579,7 @@ INSERT sys_menu VALUES (11622, N'流程分类', 11616, 1, N'category', N'workflo GO INSERT sys_menu VALUES (11629, N'我发起的', 11618, 1, N'myDocument', N'workflow/task/myDocument', N'', 1, 1, N'C', N'0', N'0', N'', N'guide', 103, 1, GETDATE(), NULL, NULL, N''); GO -INSERT sys_menu VALUES (11630, N'流程监控', 11616, 4, N'monitor', NULL, N'', 1, 0, N'M', N'0', N'0', N'', N'monitor', 103, 1, GETDATE(), NULL, NULL, N''); +INSERT sys_menu VALUES (11630, N'流程监控', 11616, 4, N'processMonitor', NULL, N'', 1, 0, N'M', N'0', N'0', N'', N'monitor', 103, 1, GETDATE(), NULL, NULL, N''); GO INSERT sys_menu VALUES (11631, N'待办任务', 11630, 2, N'allTaskWaiting', N'workflow/task/allTaskWaiting', N'', 1, 1, N'C', N'0', N'0', N'', N'waiting', 103, 1, GETDATE(), NULL, NULL, N''); GO From 536b6db5276664659c7901984450b8f93580303e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 2 Mar 2026 16:19:55 +0800 Subject: [PATCH 5/8] =?UTF-8?q?update=20minio=20=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=88=B0=E5=BC=80=E6=BA=90=E7=A4=BE=E5=8C=BA=E7=BB=B4=E6=8A=A4?= =?UTF-8?q?=E7=9A=84=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC=20RELEASE.2026-02?= =?UTF-8?q?-14T12-00-00Z?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/docker/docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml index f40a4ff01..af1df2823 100644 --- a/script/docker/docker-compose.yml +++ b/script/docker/docker-compose.yml @@ -65,8 +65,8 @@ services: network_mode: "host" minio: - # minio 最后一个未阉割版本 不能再进行升级 在往上的版本功能被阉割 - image: minio/minio:RELEASE.2025-04-22T22-12-26Z + # pgsty 开源社区 fork 重新维护的最新版 minio + image: pgsty/minio:RELEASE.2026-02-14T12-00-00Z container_name: minio ports: # api 端口 From a89a124a0e6f1b0630d0390332bce162210763d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Tue, 3 Mar 2026 17:01:08 +0800 Subject: [PATCH 6/8] update readme github stars label --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index acd14004c..6557b21cd 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ## 平台简介 [![码云Gitee](https://gitee.com/dromara/RuoYi-Vue-Plus/badge/star.svg?theme=blue)](https://gitee.com/dromara/RuoYi-Vue-Plus) -[![GitHub](https://img.shields.io/github/stars/dromara/RuoYi-Vue-Plus.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Vue-Plus) +[![GitHub](https://img.shields.io/github/stars/dromara/RuoYi-Vue-Plus.svg?label=Github%20Stars)](https://github.com/dromara/RuoYi-Vue-Plus) [![Star](https://gitcode.com/dromara/RuoYi-Vue-Plus/star/badge.svg)](https://gitcode.com/dromara/RuoYi-Vue-Plus) [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus/blob/5.X/LICENSE)
From 1f5f969d2057a89d8ec5b6bb80783a9f6a5c5ce0 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Tue, 3 Mar 2026 17:53:38 +0800 Subject: [PATCH 7/8] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96redis=20?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=E4=BD=BF=E7=94=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/redis/utils/RedisUtils.java | 48 +++++++++++++++---- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java index c433bffad..74deff6a5 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java @@ -269,7 +269,7 @@ public class RedisUtils { * * @param key 缓存的键值 * @param dataList 待缓存的List数据 - * @return 缓存的对象 + * @return 操作是否成功 */ public static boolean setCacheList(final String key, final List dataList) { RList rList = CLIENT.getList(key); @@ -281,13 +281,43 @@ public class RedisUtils { * * @param key 缓存的键值 * @param data 待缓存的数据 - * @return 缓存的对象 + * @return 操作是否成功 */ public static boolean addCacheList(final String key, final T data) { RList rList = CLIENT.getList(key); return rList.add(data); } + /** + * 向缓存List首部插入数据 + * + * @param key 缓存的键值 + * @param data 待插入到列表首部的最新数据 + */ + public static void addCacheListToFirst(final String key, final T data) { + RList rList = CLIENT.getList(key); + rList.addFirst(data); + } + + /** + * 向缓存List首部插入数据并限制列表最大长度 + * (超出长度时自动删除列表末尾最旧的数据,保证列表只保留最新的N条) + * + * @param key 缓存的键值 + * @param data 待插入到列表首部的最新数据 + * @param maxSize 列表允许的最大长度(超出该长度则删除末尾数据) + */ + public static void addCacheListToFirst(final String key, final T data, int maxSize) { + RList rList = CLIENT.getList(key); + rList.addFirst(data); + // 若列表长度超出最大限制,删除末尾最旧的数据 + // 注:remove(index)会删除指定索引的元素,此处删除maxSize索引(即第maxSize+1条) + while (rList.size() > maxSize) { + // 循环删除直到列表长度符合限制(防止并发场景下多次插入导致长度超限) + rList.remove(maxSize); + } + } + /** * 注册List监听器 *

@@ -536,24 +566,22 @@ public class RedisUtils { * chunkSize-设置每次扫描的块大小(默认为0,本方法设置为1000) * type-设置键的类型(默认为null,查询全部类型) *

- * @see KeysScanOptions * @param pattern 字符串前缀 * @return 对象列表 */ public static Collection keys(final String pattern) { - return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000)); + return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000)); } /** * 通过扫描参数获取缓存的基本对象列表 * @param keysScanOptions 扫描参数 *

- * limit-设置扫描的限制数量(默认为0,查询全部) - * pattern-设置键的匹配模式(默认为null) - * chunkSize-设置每次扫描的块大小(默认为0) - * type-设置键的类型(默认为null,查询全部类型) - *

- * @see KeysScanOptions + * limit-设置扫描的限制数量(默认为0,查询全部) + * pattern-设置键的匹配模式(默认为null) + * chunkSize-设置每次扫描的块大小(默认为0) + * type-设置键的类型(默认为null,查询全部类型) + *

*/ public static Collection keys(final KeysScanOptions keysScanOptions) { Stream keysStream = CLIENT.getKeys().getKeysStream(keysScanOptions); From ab201f9d9e6e9c40869cbb6458cf613d218067f8 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Wed, 4 Mar 2026 16:34:46 +0800 Subject: [PATCH 8/8] =?UTF-8?q?Revert=20"update=20=E4=BC=98=E5=8C=96redis?= =?UTF-8?q?=20=E5=B7=A5=E5=85=B7=E7=B1=BB=E4=BD=BF=E7=94=A8=E6=96=B9?= =?UTF-8?q?=E6=B3=95"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 1f5f969d2057a89d8ec5b6bb80783a9f6a5c5ce0. --- .../common/redis/utils/RedisUtils.java | 48 ++++--------------- 1 file changed, 10 insertions(+), 38 deletions(-) diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java index 74deff6a5..c433bffad 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java @@ -269,7 +269,7 @@ public class RedisUtils { * * @param key 缓存的键值 * @param dataList 待缓存的List数据 - * @return 操作是否成功 + * @return 缓存的对象 */ public static boolean setCacheList(final String key, final List dataList) { RList rList = CLIENT.getList(key); @@ -281,43 +281,13 @@ public class RedisUtils { * * @param key 缓存的键值 * @param data 待缓存的数据 - * @return 操作是否成功 + * @return 缓存的对象 */ public static boolean addCacheList(final String key, final T data) { RList rList = CLIENT.getList(key); return rList.add(data); } - /** - * 向缓存List首部插入数据 - * - * @param key 缓存的键值 - * @param data 待插入到列表首部的最新数据 - */ - public static void addCacheListToFirst(final String key, final T data) { - RList rList = CLIENT.getList(key); - rList.addFirst(data); - } - - /** - * 向缓存List首部插入数据并限制列表最大长度 - * (超出长度时自动删除列表末尾最旧的数据,保证列表只保留最新的N条) - * - * @param key 缓存的键值 - * @param data 待插入到列表首部的最新数据 - * @param maxSize 列表允许的最大长度(超出该长度则删除末尾数据) - */ - public static void addCacheListToFirst(final String key, final T data, int maxSize) { - RList rList = CLIENT.getList(key); - rList.addFirst(data); - // 若列表长度超出最大限制,删除末尾最旧的数据 - // 注:remove(index)会删除指定索引的元素,此处删除maxSize索引(即第maxSize+1条) - while (rList.size() > maxSize) { - // 循环删除直到列表长度符合限制(防止并发场景下多次插入导致长度超限) - rList.remove(maxSize); - } - } - /** * 注册List监听器 *

@@ -566,22 +536,24 @@ public class RedisUtils { * chunkSize-设置每次扫描的块大小(默认为0,本方法设置为1000) * type-设置键的类型(默认为null,查询全部类型) *

+ * @see KeysScanOptions * @param pattern 字符串前缀 * @return 对象列表 */ public static Collection keys(final String pattern) { - return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000)); + return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000)); } /** * 通过扫描参数获取缓存的基本对象列表 * @param keysScanOptions 扫描参数 *

- * limit-设置扫描的限制数量(默认为0,查询全部) - * pattern-设置键的匹配模式(默认为null) - * chunkSize-设置每次扫描的块大小(默认为0) - * type-设置键的类型(默认为null,查询全部类型) - *

+ * limit-设置扫描的限制数量(默认为0,查询全部) + * pattern-设置键的匹配模式(默认为null) + * chunkSize-设置每次扫描的块大小(默认为0) + * type-设置键的类型(默认为null,查询全部类型) + *

+ * @see KeysScanOptions */ public static Collection keys(final KeysScanOptions keysScanOptions) { Stream keysStream = CLIENT.getKeys().getKeysStream(keysScanOptions);