From b54a4e4a86a493976b4d63328a4619f3bc40040f Mon Sep 17 00:00:00 2001 From: Parker Date: Sun, 13 Dec 2020 01:04:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BAExcel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/concroller/BaseRestController.java | 23 +++++++++++++++---- .../main/java/org/opsli/core/msg/CoreMsg.java | 10 ++++---- .../src/main/resources/application.yaml | 3 +++ 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/concroller/BaseRestController.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/concroller/BaseRestController.java index 06b1ef65..e4e45517 100644 --- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/concroller/BaseRestController.java +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/concroller/BaseRestController.java @@ -18,6 +18,7 @@ package org.opsli.core.base.concroller; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.TimeInterval; +import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.TypeUtil; import com.alibaba.excel.support.ExcelTypeEnum; @@ -90,6 +91,10 @@ public abstract class BaseRestController modelList = Lists.newArrayList(); if(queryWrapper != null){ + // 获得数量 大于 阈值 禁止导出, 防止OOM + int count = IService.count(queryWrapper); + if(count > exportExcelMaxCount){ + String maxError = StrUtil.format(CoreMsg.EXCEL_EXPORT_MAX.getMessage(), count, exportExcelMaxCount); + // 超出最大导出数量 + throw new ExcelPluginException(CoreMsg.EXCEL_EXPORT_MAX.getCode(), maxError); + } + List entityList = IService.findList(queryWrapper); // 转化类型 modelList = WrapperUtil.transformInstance(entityList, modelClazz); @@ -283,7 +297,8 @@ public abstract class BaseRestController