From 73937605b178034da8b05ffd8f15b7586b756b7f Mon Sep 17 00:00:00 2001 From: Parker Date: Fri, 26 Feb 2021 11:42:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E9=99=90=E5=88=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/controller/BaseRestController.java | 38 ++++++++++++------- .../src/main/resources/application.yaml | 4 +- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/controller/BaseRestController.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/controller/BaseRestController.java index 4a08024b..b48ebe32 100644 --- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/controller/BaseRestController.java +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/controller/BaseRestController.java @@ -198,15 +198,20 @@ public abstract class BaseRestController modelList = ExcelUtil.getInstance().readExcel(files.get(0), modelClazz); if(CollUtil.isNotEmpty(modelList)){ - if(modelList.size() > globalProperties.getExcel().getImportMaxCount()){ - String maxError = StrUtil.format(CoreMsg.EXCEL_HANDLE_MAX.getMessage(), modelList.size(), - globalProperties.getExcel().getImportMaxCount()); - // 清空 list - modelList.clear(); - // 超出最大导出数量 - throw new ExcelPluginException(CoreMsg.EXCEL_HANDLE_MAX.getCode(), maxError); + // 导入数量限制 -1 为无限制 + Integer importMaxCount = globalProperties.getExcel().getImportMaxCount(); + if(importMaxCount != null && importMaxCount > -1){ + if(modelList.size() > importMaxCount){ + String maxError = StrUtil.format(CoreMsg.EXCEL_HANDLE_MAX.getMessage(), modelList.size(), + importMaxCount); + // 清空 list + modelList.clear(); + // 超出最大导出数量 + throw new ExcelPluginException(CoreMsg.EXCEL_HANDLE_MAX.getCode(), maxError); + } } + boolean ret = IService.insertBatch(modelList); if(!ret){ // 清空 list @@ -293,15 +298,20 @@ public abstract class BaseRestController modelList = Lists.newArrayList(); try { if(queryWrapper != null){ - // 获得数量 大于 阈值 禁止导出, 防止OOM - int count = IService.count(queryWrapper); - if(count > globalProperties.getExcel().getExportMaxCount()){ - String maxError = StrUtil.format(CoreMsg.EXCEL_HANDLE_MAX.getMessage(), count, - globalProperties.getExcel().getExportMaxCount()); - // 超出最大导出数量 - throw new ExcelPluginException(CoreMsg.EXCEL_HANDLE_MAX.getCode(), maxError); + // 导出数量限制 -1 为无限制 + Integer exportMaxCount = globalProperties.getExcel().getExportMaxCount(); + if(exportMaxCount != null && exportMaxCount > -1){ + // 获得数量 大于 阈值 禁止导出, 防止OOM + int count = IService.count(queryWrapper); + if(count > exportMaxCount){ + String maxError = StrUtil.format(CoreMsg.EXCEL_HANDLE_MAX.getMessage(), count, + exportMaxCount); + // 超出最大导出数量 + throw new ExcelPluginException(CoreMsg.EXCEL_HANDLE_MAX.getCode(), maxError); + } } + List entityList = IService.findList(queryWrapper); // 转化类型 modelList = WrapperUtil.transformInstance(entityList, modelClazz); diff --git a/opsli-starter/src/main/resources/application.yaml b/opsli-starter/src/main/resources/application.yaml index 9abe42f3..d0ce2770 100644 --- a/opsli-starter/src/main/resources/application.yaml +++ b/opsli-starter/src/main/resources/application.yaml @@ -211,7 +211,7 @@ opsli: # Excel excel: - # Excel 最大导入操作数量 防止OOM + # Excel 最大导入操作数量 防止OOM -1为无限制 import-max-count: 5000 - # Excel 最大导出操作数量 防止OOM + # Excel 最大导出操作数量 防止OOM -1为无限制 export-max-count: 50000