From 08d4493994a649b725d94e917b31d42c930284ff 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, 15 Jul 2024 15:18:29 +0800 Subject: [PATCH 1/7] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20bug=20?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE.zh-CN.md | 49 ---------------------------------- .gitee/ISSUE_TEMPLATE/bug.yml | 5 ++-- 2 files changed, 3 insertions(+), 51 deletions(-) delete mode 100644 .gitee/ISSUE_TEMPLATE.zh-CN.md diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md deleted file mode 100644 index cf82237f3..000000000 --- a/.gitee/ISSUE_TEMPLATE.zh-CN.md +++ /dev/null @@ -1,49 +0,0 @@ -### 使用版本(未按照模板填写直接删除) - -- jdk版本(带上尾号): 例如 1.8.0_202 -- 框架版本(项目启动时输出的版本号): 例如 4.4.0 -- 其他依赖版本(你觉得有必要的): - -### 问题前提 - -> 功能不好用 不会用 是否已经看过项目文档 -> 项目运行报错 是否已经拿着报错信息去百度 常见报错百度百度足以 -> 是否搜索过其他issue 一些已经解决的问题 会在issue内留下解决方法 -> 无法线上解决或者与框架无关的问题的欢迎加VIP群跟作者一对一谈 - -### 异常模块 - -> 此报错都涉及到那些系统模块 - -例如 ruoyi-system ruoyi-auth 等等 - -### 问题描述 - -> 越详细越容易直击问题所在 - -已知: XXX功能不好用 或 XXX数据不正常 等等 - -### 希望结果 - -> 想知道你觉得怎么样是正常或者合理的 - -希望功能可以有XXX结果 或者 XXX现象 - -### 重现步骤 - -> 作者并不知道这个问题是如何出现的 - -- 1 -- 2 -- 3 - -### 相关代码与报错信息(请勿发混乱格式) - -> 代码可按照如下形式提供或者截图均可 越详细越好 -> 大多数问题都是 代码编写错误问题 逻辑问题 或者用法错误等问题 - -```java -public class XXX { - -} -``` \ No newline at end of file diff --git a/.gitee/ISSUE_TEMPLATE/bug.yml b/.gitee/ISSUE_TEMPLATE/bug.yml index 8a5d06500..045001336 100644 --- a/.gitee/ISSUE_TEMPLATE/bug.yml +++ b/.gitee/ISSUE_TEMPLATE/bug.yml @@ -9,8 +9,9 @@ body: label: 版本 description: 你当前正在使用我们软件的哪个版本(pom文件内的版本号)? value: | - jdk版本(带上尾号): 例如 17.0.8 - 框架版本(项目启动时输出的版本号): 例如 5.1.1 + 注意: 未填写版本号不予处理直接关闭或删除 + jdk版本(带上尾号): + 框架版本(项目启动时输出的版本号): 其他依赖版本(你觉得有必要的): validations: required: true From 7e14b9867623e4ae8ae0eb1c35598562afb90552 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, 28 Oct 2024 09:46:28 +0000 Subject: [PATCH 2/7] =?UTF-8?q?reset=20=E5=9B=9E=E6=BB=9A=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 疯狂的狮子Li <15040126243@163.com> --- .../main/java/org/dromara/common/oss/core/OssClient.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java index 900536b56..ba924c0bb 100644 --- a/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java +++ b/ruoyi-common/ruoyi-common-oss/src/main/java/org/dromara/common/oss/core/OssClient.java @@ -83,10 +83,10 @@ public class OssClient { StaticCredentialsProvider credentialsProvider = StaticCredentialsProvider.create( AwsBasicCredentials.create(properties.getAccessKey(), properties.getSecretKey())); - //使用对象存储服务时要求明确配置访问样式(路径样式或虚拟托管样式)。需要启用路径样式访问 - boolean isStyle = true; + // MinIO 使用 HTTPS 限制使用域名访问,站点填域名。需要启用路径样式访问 + boolean isStyle = !StringUtils.containsAny(properties.getEndpoint(), OssConstant.CLOUD_SERVICE); - //创建AWS基于 CRT 的 S3 客户端 + // 创建AWS基于 CRT 的 S3 客户端 this.client = S3AsyncClient.crtBuilder() .credentialsProvider(credentialsProvider) .endpointOverride(URI.create(getEndpoint())) From ea50a57602f6de4ecee9daf224f3177a6848c335 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, 12 Nov 2024 18:17:47 +0800 Subject: [PATCH 3/7] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20xss=E5=8C=85?= =?UTF-8?q?=E8=A3=85=E5=99=A8=20Parameter=20=E5=A4=84=E7=90=86=20=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E6=9F=90=E4=BA=9B=E5=AE=B9=E5=99=A8=E4=B8=8D=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E6=94=B9=E5=8F=82=E6=95=B0=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filter/XssHttpServletRequestWrapper.java | 47 +++++++++++-------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java index 190f94eab..914e54995 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/filter/XssHttpServletRequestWrapper.java @@ -1,19 +1,22 @@ package org.dromara.common.web.filter; import cn.hutool.core.io.IoUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HtmlUtil; -import org.dromara.common.core.utils.StringUtils; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; - import jakarta.servlet.ReadListener; import jakarta.servlet.ServletInputStream; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequestWrapper; +import org.dromara.common.core.utils.StringUtils; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.HashMap; import java.util.Map; /** @@ -32,16 +35,22 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { @Override public String getParameter(String name) { String value = super.getParameter(name); - if (value != null) { - return HtmlUtil.cleanHtmlTag(value).trim(); + if (value == null) { + return null; } - return value; + return HtmlUtil.cleanHtmlTag(value).trim(); } @Override public Map getParameterMap() { Map valueMap = super.getParameterMap(); - for (Map.Entry entry : valueMap.entrySet()) { + if (MapUtil.isEmpty(valueMap)) { + return valueMap; + } + // 避免某些容器不允许改参数的情况 copy一份重新改 + Map map = new HashMap<>(valueMap.size()); + map.putAll(valueMap); + for (Map.Entry entry : map.entrySet()) { String[] values = entry.getValue(); if (values != null) { int length = values.length; @@ -50,25 +59,25 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { // 防xss攻击和过滤前后空格 escapseValues[i] = HtmlUtil.cleanHtmlTag(values[i]).trim(); } - valueMap.put(entry.getKey(), escapseValues); + map.put(entry.getKey(), escapseValues); } } - return valueMap; + return map; } @Override public String[] getParameterValues(String name) { String[] values = super.getParameterValues(name); - if (values != null) { - int length = values.length; - String[] escapseValues = new String[length]; - for (int i = 0; i < length; i++) { - // 防xss攻击和过滤前后空格 - escapseValues[i] = HtmlUtil.cleanHtmlTag(values[i]).trim(); - } - return escapseValues; + if (ArrayUtil.isEmpty(values)) { + return values; } - return values; + int length = values.length; + String[] escapseValues = new String[length]; + for (int i = 0; i < length; i++) { + // 防xss攻击和过滤前后空格 + escapseValues[i] = HtmlUtil.cleanHtmlTag(values[i]).trim(); + } + return escapseValues; } @Override From 4e6077cb7cde3244ecc93f7029da1fd731e43e6c Mon Sep 17 00:00:00 2001 From: insist <1183011789@qq.com> Date: Sat, 21 Dec 2024 15:06:13 +0800 Subject: [PATCH 4/7] =?UTF-8?q?feat(excel):=20=E4=B8=BA=20ExcelUtil=20?= =?UTF-8?q?=E7=B1=BB=E7=9A=84=20exportExcel=20=E6=96=B9=E6=B3=95=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=8E=92=E9=99=A4=E5=88=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/excel/utils/ExcelUtil.java | 104 ++++++++++-------- .../demo/controller/TestDemoController.java | 2 +- .../demo/controller/TestTreeController.java | 3 +- .../service/impl/ExportExcelServiceImpl.java | 2 +- .../monitor/SysLogininforController.java | 2 +- .../monitor/SysOperlogController.java | 2 +- .../system/SysClientController.java | 2 +- .../system/SysConfigController.java | 2 +- .../system/SysDictDataController.java | 2 +- .../system/SysDictTypeController.java | 2 +- .../controller/system/SysPostController.java | 2 +- .../controller/system/SysRoleController.java | 2 +- .../system/SysTenantController.java | 2 +- .../system/SysTenantPackageController.java | 2 +- .../controller/system/SysUserController.java | 4 +- .../controller/TestLeaveController.java | 2 +- .../controller/WfCategoryController.java | 2 +- .../controller/WfFormManageController.java | 2 +- 18 files changed, 76 insertions(+), 65 deletions(-) diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java index a6c14ad51..9ac742939 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java @@ -76,16 +76,17 @@ public class ExcelUtil { /** * 导出excel * - * @param list 导出数据集合 - * @param sheetName 工作表的名称 - * @param clazz 实体类 - * @param response 响应体 + * @param list 导出数据集合 + * @param excludeColumnFieldNames 排除的列字段名称集合 + * @param sheetName 工作表的名称 + * @param clazz 实体类 + * @param response 响应体 */ - public static void exportExcel(List list, String sheetName, Class clazz, HttpServletResponse response) { + public static void exportExcel(List list, Collection excludeColumnFieldNames, String sheetName, Class clazz, HttpServletResponse response) { try { resetResponse(sheetName, response); ServletOutputStream os = response.getOutputStream(); - exportExcel(list, sheetName, clazz, false, os, null); + exportExcel(list, excludeColumnFieldNames, sheetName, clazz, false, os, null); } catch (IOException e) { throw new RuntimeException("导出Excel异常"); } @@ -94,17 +95,18 @@ public class ExcelUtil { /** * 导出excel * - * @param list 导出数据集合 - * @param sheetName 工作表的名称 - * @param clazz 实体类 - * @param response 响应体 - * @param options 级联下拉选 + * @param list 导出数据集合 + * @param excludeColumnFieldNames 排除的列字段名称集合 + * @param sheetName 工作表的名称 + * @param clazz 实体类 + * @param response 响应体 + * @param options 级联下拉选 */ - public static void exportExcel(List list, String sheetName, Class clazz, HttpServletResponse response, List options) { + public static void exportExcel(List list, Collection excludeColumnFieldNames, String sheetName, Class clazz, HttpServletResponse response, List options) { try { resetResponse(sheetName, response); ServletOutputStream os = response.getOutputStream(); - exportExcel(list, sheetName, clazz, false, os, options); + exportExcel(list, excludeColumnFieldNames, sheetName, clazz, false, os, options); } catch (IOException e) { throw new RuntimeException("导出Excel异常"); } @@ -113,17 +115,18 @@ public class ExcelUtil { /** * 导出excel * - * @param list 导出数据集合 - * @param sheetName 工作表的名称 - * @param clazz 实体类 - * @param merge 是否合并单元格 - * @param response 响应体 + * @param list 导出数据集合 + * @param excludeColumnFieldNames 排除的列字段名称集合 + * @param sheetName 工作表的名称 + * @param clazz 实体类 + * @param merge 是否合并单元格 + * @param response 响应体 */ - public static void exportExcel(List list, String sheetName, Class clazz, boolean merge, HttpServletResponse response) { + public static void exportExcel(List list, Collection excludeColumnFieldNames, String sheetName, Class clazz, boolean merge, HttpServletResponse response) { try { resetResponse(sheetName, response); ServletOutputStream os = response.getOutputStream(); - exportExcel(list, sheetName, clazz, merge, os, null); + exportExcel(list, excludeColumnFieldNames, sheetName, clazz, merge, os, null); } catch (IOException e) { throw new RuntimeException("导出Excel异常"); } @@ -132,18 +135,19 @@ public class ExcelUtil { /** * 导出excel * - * @param list 导出数据集合 - * @param sheetName 工作表的名称 - * @param clazz 实体类 - * @param merge 是否合并单元格 - * @param response 响应体 - * @param options 级联下拉选 + * @param list 导出数据集合 + * @param excludeColumnFieldNames 排除的列字段名称集合 + * @param sheetName 工作表的名称 + * @param clazz 实体类 + * @param merge 是否合并单元格 + * @param response 响应体 + * @param options 级联下拉选 */ - public static void exportExcel(List list, String sheetName, Class clazz, boolean merge, HttpServletResponse response, List options) { + public static void exportExcel(List list, Collection excludeColumnFieldNames, String sheetName, Class clazz, boolean merge, HttpServletResponse response, List options) { try { resetResponse(sheetName, response); ServletOutputStream os = response.getOutputStream(); - exportExcel(list, sheetName, clazz, merge, os, options); + exportExcel(list, excludeColumnFieldNames, sheetName, clazz, merge, os, options); } catch (IOException e) { throw new RuntimeException("导出Excel异常"); } @@ -152,43 +156,49 @@ public class ExcelUtil { /** * 导出excel * - * @param list 导出数据集合 - * @param sheetName 工作表的名称 - * @param clazz 实体类 - * @param os 输出流 + * @param list 导出数据集合 + * @param excludeColumnFieldNames 排除的列字段名称集合 + * @param sheetName 工作表的名称 + * @param clazz 实体类 + * @param os 输出流 */ - public static void exportExcel(List list, String sheetName, Class clazz, OutputStream os) { - exportExcel(list, sheetName, clazz, false, os, null); + public static void exportExcel(List list, Collection excludeColumnFieldNames, String sheetName, Class clazz, OutputStream os) { + exportExcel(list, excludeColumnFieldNames, sheetName, clazz, false, os, null); } /** * 导出excel * - * @param list 导出数据集合 - * @param sheetName 工作表的名称 - * @param clazz 实体类 - * @param os 输出流 - * @param options 级联下拉选内容 + * @param list 导出数据集合 + * @param excludeColumnFieldNames 排除的列字段名称集合 + * @param sheetName 工作表的名称 + * @param clazz 实体类 + * @param os 输出流 + * @param options 级联下拉选内容 */ - public static void exportExcel(List list, String sheetName, Class clazz, OutputStream os, List options) { - exportExcel(list, sheetName, clazz, false, os, options); + public static void exportExcel(List list, Collection excludeColumnFieldNames, String sheetName, Class clazz, OutputStream os, List options) { + exportExcel(list, excludeColumnFieldNames, sheetName, clazz, false, os, options); } /** * 导出excel * - * @param list 导出数据集合 - * @param sheetName 工作表的名称 - * @param clazz 实体类 - * @param merge 是否合并单元格 - * @param os 输出流 + * @param list 导出数据集合 + * @param excludeColumnFieldNames 排除的列字段名称集合 + * @see com.alibaba.excel.write.builder.AbstractExcelWriterParameterBuilder#excludeColumnFieldNames(java.util.Collection) + * @param sheetName 工作表的名称 + * @param clazz 实体类 + * @param merge 是否合并单元格 + * @param os 输出流 */ - public static void exportExcel(List list, String sheetName, Class clazz, boolean merge, + public static void exportExcel(List list, Collection excludeColumnFieldNames, String sheetName, Class clazz, boolean merge, OutputStream os, List options) { ExcelWriterSheetBuilder builder = EasyExcel.write(os, clazz) .autoCloseStream(false) // 自动适配 .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + // 忽略自定义列 + .excludeColumnFieldNames(excludeColumnFieldNames) // 大数值自动转换 防止失真 .registerConverter(new ExcelBigNumberConvert()) .sheet(sheetName); diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java index f31c54074..caec3d81e 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java @@ -92,7 +92,7 @@ public class TestDemoController extends BaseController { // for (TestDemoVo vo : list) { // vo.setId(1234567891234567893L); // } - ExcelUtil.exportExcel(list, "测试单表", TestDemoVo.class, response); + ExcelUtil.exportExcel(list,List.of("用户id"), "测试单表", TestDemoVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java index 5c552055f..3d32c098e 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestTreeController.java @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; + import java.util.Arrays; import java.util.List; @@ -55,7 +56,7 @@ public class TestTreeController extends BaseController { @GetMapping("/export") public void export(@Validated TestTreeBo bo, HttpServletResponse response) { List list = testTreeService.queryList(bo); - ExcelUtil.exportExcel(list, "测试树表", TestTreeVo.class, response); + ExcelUtil.exportExcel(list, null, "测试树表", TestTreeVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java index 0240e02f2..2f1880175 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ExportExcelServiceImpl.java @@ -98,7 +98,7 @@ public class ExportExcelServiceImpl implements IExportExcelService { return everyRowData; }); - ExcelUtil.exportExcel(outList, "下拉框示例", ExportDemoVo.class, response, options); + ExcelUtil.exportExcel(outList, null, "下拉框示例", ExportDemoVo.class, response, options); } private String buildOptions(List cityDataList, Integer id) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java index 98ac2d58f..6b5b4b7a1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysLogininforController.java @@ -50,7 +50,7 @@ public class SysLogininforController extends BaseController { @PostMapping("/export") public void export(SysLogininforBo logininfor, HttpServletResponse response) { List list = logininforService.selectLogininforList(logininfor); - ExcelUtil.exportExcel(list, "登录日志", SysLogininforVo.class, response); + ExcelUtil.exportExcel(list, null, "登录日志", SysLogininforVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java index 575aba6b1..778a60895 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/monitor/SysOperlogController.java @@ -48,7 +48,7 @@ public class SysOperlogController extends BaseController { @PostMapping("/export") public void export(SysOperLogBo operLog, HttpServletResponse response) { List list = operLogService.selectOperLogList(operLog); - ExcelUtil.exportExcel(list, "操作日志", SysOperLogVo.class, response); + ExcelUtil.exportExcel(list, null, "操作日志", SysOperLogVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java index 13be4a4a9..83bf3c59f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java @@ -53,7 +53,7 @@ public class SysClientController extends BaseController { @PostMapping("/export") public void export(SysClientBo bo, HttpServletResponse response) { List list = sysClientService.queryList(bo); - ExcelUtil.exportExcel(list, "客户端管理", SysClientVo.class, response); + ExcelUtil.exportExcel(list, null, "客户端管理", SysClientVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java index c73c3866f..658f0a2f7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysConfigController.java @@ -48,7 +48,7 @@ public class SysConfigController extends BaseController { @PostMapping("/export") public void export(SysConfigBo config, HttpServletResponse response) { List list = configService.selectConfigList(config); - ExcelUtil.exportExcel(list, "参数数据", SysConfigVo.class, response); + ExcelUtil.exportExcel(list, null, "参数数据", SysConfigVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java index 57527511e..92f8fc5cc 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictDataController.java @@ -52,7 +52,7 @@ public class SysDictDataController extends BaseController { @PostMapping("/export") public void export(SysDictDataBo dictData, HttpServletResponse response) { List list = dictDataService.selectDictDataList(dictData); - ExcelUtil.exportExcel(list, "字典数据", SysDictDataVo.class, response); + ExcelUtil.exportExcel(list, null, "字典数据", SysDictDataVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java index 67c1f5133..9323f9e2a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDictTypeController.java @@ -48,7 +48,7 @@ public class SysDictTypeController extends BaseController { @PostMapping("/export") public void export(SysDictTypeBo dictType, HttpServletResponse response) { List list = dictTypeService.selectDictTypeList(dictType); - ExcelUtil.exportExcel(list, "字典类型", SysDictTypeVo.class, response); + ExcelUtil.exportExcel(list, null, "字典类型", SysDictTypeVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysPostController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysPostController.java index 782bcfc55..75d0ce071 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysPostController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysPostController.java @@ -51,7 +51,7 @@ public class SysPostController extends BaseController { @PostMapping("/export") public void export(SysPostBo post, HttpServletResponse response) { List list = postService.selectPostList(post); - ExcelUtil.exportExcel(list, "岗位数据", SysPostVo.class, response); + ExcelUtil.exportExcel(list, null, "岗位数据", SysPostVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java index d4a9dc8a4..6014e0dee 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java @@ -57,7 +57,7 @@ public class SysRoleController extends BaseController { @PostMapping("/export") public void export(SysRoleBo role, HttpServletResponse response) { List list = roleService.selectRoleList(role); - ExcelUtil.exportExcel(list, "角色数据", SysRoleVo.class, response); + ExcelUtil.exportExcel(list, null, "角色数据", SysRoleVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java index 10c6777e7..db19c4daf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantController.java @@ -63,7 +63,7 @@ public class SysTenantController extends BaseController { @PostMapping("/export") public void export(SysTenantBo bo, HttpServletResponse response) { List list = tenantService.queryList(bo); - ExcelUtil.exportExcel(list, "租户", SysTenantVo.class, response); + ExcelUtil.exportExcel(list, null, "租户", SysTenantVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java index 4bfe597cf..f09cdbda5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysTenantPackageController.java @@ -69,7 +69,7 @@ public class SysTenantPackageController extends BaseController { @PostMapping("/export") public void export(SysTenantPackageBo bo, HttpServletResponse response) { List list = tenantPackageService.queryList(bo); - ExcelUtil.exportExcel(list, "租户套餐", SysTenantPackageVo.class, response); + ExcelUtil.exportExcel(list, null, "租户套餐", SysTenantPackageVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java index 36104d627..e137ad01e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java @@ -72,7 +72,7 @@ public class SysUserController extends BaseController { @PostMapping("/export") public void export(SysUserBo user, HttpServletResponse response) { List list = userService.selectUserExportList(user); - ExcelUtil.exportExcel(list, "用户数据", SysUserExportVo.class, response); + ExcelUtil.exportExcel(list, null, "用户数据", SysUserExportVo.class, response); } /** @@ -94,7 +94,7 @@ public class SysUserController extends BaseController { */ @PostMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { - ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", SysUserImportVo.class, response); + ExcelUtil.exportExcel(new ArrayList<>(), null, "用户数据", SysUserImportVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java index e1c246f06..29b04433a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java @@ -54,7 +54,7 @@ public class TestLeaveController extends BaseController { @PostMapping("/export") public void export(TestLeaveBo bo, HttpServletResponse response) { List list = testLeaveService.queryList(bo); - ExcelUtil.exportExcel(list, "请假", TestLeaveVo.class, response); + ExcelUtil.exportExcel(list, null, "请假", TestLeaveVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfCategoryController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfCategoryController.java index 8dced8929..a16eca3ef 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfCategoryController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfCategoryController.java @@ -54,7 +54,7 @@ public class WfCategoryController extends BaseController { @PostMapping("/export") public void export(WfCategoryBo bo, HttpServletResponse response) { List list = wfCategoryService.queryList(bo); - ExcelUtil.exportExcel(list, "流程分类", WfCategoryVo.class, response); + ExcelUtil.exportExcel(list, null, "流程分类", WfCategoryVo.class, response); } /** diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfFormManageController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfFormManageController.java index 198e233b4..e4638de87 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfFormManageController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfFormManageController.java @@ -62,7 +62,7 @@ public class WfFormManageController extends BaseController { @PostMapping("/export") public void export(WfFormManageBo bo, HttpServletResponse response) { List list = wfFormManageService.queryList(bo); - ExcelUtil.exportExcel(list, "表单管理", WfFormManageVo.class, response); + ExcelUtil.exportExcel(list, null, "表单管理", WfFormManageVo.class, response); } /** From fb31eea82bd0301e70e878f5affcc699784ddcf3 Mon Sep 17 00:00:00 2001 From: insist <1183011789@qq.com> Date: Sat, 21 Dec 2024 16:25:20 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix(ruoyi-common-mybatis):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E7=A7=9F=E6=88=B7=E6=9C=AA=E7=99=BB=E5=BD=95=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 getSqlSegment 方法中增加对用户登录状态的判断 - 如果用户未登录,则直接返回原始 SQL 条件,不进行数据权限过滤 - 优化了数据权限处理逻辑,提高了系统稳定性 --- .../common/mybatis/handler/PlusDataPermissionHandler.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java index ab7e0f6e4..9bcc4ce5e 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java @@ -1,5 +1,6 @@ package org.dromara.common.mybatis.handler; +import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.annotation.AnnotationUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; @@ -86,6 +87,9 @@ public class PlusDataPermissionHandler { * @return 数据过滤条件的 SQL 片段 */ public Expression getSqlSegment(Expression where, String mappedStatementId, boolean isSelect) { + if (!StpUtil.isLogin()) { + return where; + } // 获取数据权限配置 DataPermission dataPermission = getDataPermission(mappedStatementId); // 获取当前登录用户信息 From c526248465b557ea2960db8bf785ce3e003f69ac Mon Sep 17 00:00:00 2001 From: insist <1183011789@qq.com> Date: Sat, 21 Dec 2024 16:27:43 +0800 Subject: [PATCH 6/7] =?UTF-8?q?fix(demo):=20=E5=AF=BC=E5=87=BA=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E5=8D=95=E8=A1=A8=E5=88=97=E8=A1=A8=20=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=20=E6=8E=92=E9=99=A4=E7=9A=84=E5=88=97=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=90=8D=E7=A7=B0=E9=9B=86=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/demo/controller/TestDemoController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java index caec3d81e..9ae3d0a95 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/TestDemoController.java @@ -92,7 +92,7 @@ public class TestDemoController extends BaseController { // for (TestDemoVo vo : list) { // vo.setId(1234567891234567893L); // } - ExcelUtil.exportExcel(list,List.of("用户id"), "测试单表", TestDemoVo.class, response); + ExcelUtil.exportExcel(list,List.of("userId"), "测试单表", TestDemoVo.class, response); } /** From 4eba0ee5766f5cab790339613bbf9ccfb483db00 Mon Sep 17 00:00:00 2001 From: insist <1183011789@qq.com> Date: Sat, 21 Dec 2024 16:32:22 +0800 Subject: [PATCH 7/7] =?UTF-8?q?fix:=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E3=80=90=E6=9C=AA=E7=99=BB=E5=BD=95=EF=BC=8C=E5=88=99=E4=B8=8D?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E6=95=B0=E6=8D=AE=EF=BC=88=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E6=9C=AA=E7=99=BB=E5=BD=95=20=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=95=B0=E6=8D=AE=E5=BC=82=E5=B8=B8=EF=BC=89=E3=80=91?= =?UTF-8?q?=20org.dromara.common.mybatis.handler.PlusDataPermissionHandler?= =?UTF-8?q?.getSqlSegment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/mybatis/handler/PlusDataPermissionHandler.java | 1 + 1 file changed, 1 insertion(+) diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java index 9bcc4ce5e..604c119b9 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/handler/PlusDataPermissionHandler.java @@ -87,6 +87,7 @@ public class PlusDataPermissionHandler { * @return 数据过滤条件的 SQL 片段 */ public Expression getSqlSegment(Expression where, String mappedStatementId, boolean isSelect) { + // 未登录,则不过滤数据(防止租户未登录 查询数据异常) if (!StpUtil.isLogin()) { return where; }