From 49f37d25583375893eedef00f38ad0c020ffe563 Mon Sep 17 00:00:00 2001 From: ruying408 <1877972603@qq.com> Date: Wed, 5 Feb 2025 23:28:38 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=EF=BC=8C=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=BB=9D=E5=AF=B9=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/core/base/BaseController.java | 9 ++++---- .../cool/core/config/LocalFileProperties.java | 9 +++++++- .../strategy/LocalFileUploadStrategy.java | 21 ++++++++----------- .../com/cool/core/request/PageResult.java | 11 ++++++++++ src/main/resources/banner.txt | 1 - 5 files changed, 33 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/cool/core/request/PageResult.java diff --git a/src/main/java/com/cool/core/base/BaseController.java b/src/main/java/com/cool/core/base/BaseController.java index f8b7e1b..51caa4c 100644 --- a/src/main/java/com/cool/core/base/BaseController.java +++ b/src/main/java/com/cool/core/base/BaseController.java @@ -13,6 +13,7 @@ import cn.hutool.json.JSONUtil; import com.cool.core.enums.QueryModeEnum; import com.cool.core.exception.CoolPreconditions; import com.cool.core.request.CrudOption; +import com.cool.core.request.PageResult; import com.cool.core.request.R; import com.mybatisflex.core.paginate.Page; import io.swagger.v3.oas.annotations.Operation; @@ -217,14 +218,14 @@ public abstract class BaseController, T extends BaseEnt * * @param page 分页返回数据 */ - protected Map pageResult(Page page) { - Map result = new HashMap<>(); + protected PageResult pageResult(Page page) { + PageResult result = new PageResult(); Map pagination = new HashMap<>(); pagination.put("size", page.getPageSize()); pagination.put("page", page.getPageNumber()); pagination.put("total", page.getTotalRow()); - result.put("list", page.getRecords()); - result.put("pagination", pagination); + result.setList(page.getRecords()); + result.setPagination(pagination); return result; } diff --git a/src/main/java/com/cool/core/config/LocalFileProperties.java b/src/main/java/com/cool/core/config/LocalFileProperties.java index b901322..5ecad6f 100644 --- a/src/main/java/com/cool/core/config/LocalFileProperties.java +++ b/src/main/java/com/cool/core/config/LocalFileProperties.java @@ -1,5 +1,7 @@ package com.cool.core.config; +import com.cool.core.util.PathUtils; +import java.io.File; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; @@ -18,6 +20,11 @@ public class LocalFileProperties { private String uploadPath = "assets/public/upload"; public String getAbsoluteUploadFolder() { - return System.getProperty("user.dir") + "/" + uploadPath; + if (!PathUtils.isAbsolutePath(uploadPath)) { + // 相对路径 + return System.getProperty("user.dir") + File.separator + uploadPath; + } + // 绝对路径 + return uploadPath; } } diff --git a/src/main/java/com/cool/core/file/strategy/LocalFileUploadStrategy.java b/src/main/java/com/cool/core/file/strategy/LocalFileUploadStrategy.java index 4e927e7..3a049bd 100644 --- a/src/main/java/com/cool/core/file/strategy/LocalFileUploadStrategy.java +++ b/src/main/java/com/cool/core/file/strategy/LocalFileUploadStrategy.java @@ -34,26 +34,23 @@ public class LocalFileUploadStrategy implements FileUploadStrategy { */ @Override public Object upload(MultipartFile[] files, HttpServletRequest request, - PluginInfoEntity pluginInfoEntity) { + PluginInfoEntity pluginInfoEntity) { CoolPreconditions.check(StrUtil.isEmpty(localFileProperties.getBaseUrl()), - "filePath 或 baseUrl 未配置"); + "filePath 或 baseUrl 未配置"); try { List fileUrls = new ArrayList<>(); String baseUrl = localFileProperties.getBaseUrl(); - // 绝对路径 - String filePath = System.getProperty("user.dir"); String date = DateUtil.format(new Date(), - DatePattern.PURE_DATE_PATTERN); - String relativePath = - File.separator + localFileProperties.getUploadPath() + File.separator + date; - - FileUtil.mkdir(filePath + relativePath); + DatePattern.PURE_DATE_PATTERN); + String absoluteUploadFolder = localFileProperties.getAbsoluteUploadFolder(); + String fullPath = absoluteUploadFolder + File.separator + date; + FileUtil.mkdir(fullPath); for (MultipartFile file : files) { // 保存文件 String fileName = StrUtil.uuid().replaceAll("-", "") + getExtensionName( - Objects.requireNonNull(file.getOriginalFilename())); - file.transferTo(new File(filePath + File.separator + relativePath - + File.separator + fileName)); + Objects.requireNonNull(file.getOriginalFilename())); + file.transferTo(new File(fullPath + + File.separator + fileName)); fileUrls.add(baseUrl + File.separator + date + File.separator + fileName); } if (fileUrls.size() == 1) { diff --git a/src/main/java/com/cool/core/request/PageResult.java b/src/main/java/com/cool/core/request/PageResult.java new file mode 100644 index 0000000..553b458 --- /dev/null +++ b/src/main/java/com/cool/core/request/PageResult.java @@ -0,0 +1,11 @@ +package com.cool.core.request; + +import java.util.List; +import java.util.Map; +import lombok.Data; + +@Data +public class PageResult { + private List list; + private Map pagination; +} \ No newline at end of file diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt index 4879294..677a3f9 100644 --- a/src/main/resources/banner.txt +++ b/src/main/resources/banner.txt @@ -1,4 +1,3 @@ -tip: 凡购买了【商城项目】和【Ai流程编排+知识库项目】这两个Java版本插件的用户,可向cool-admin-java版本开发者提供支付记录,免费获取[cool-admin-java-plus](https://gitee.com/hlc4417/cool-admin-java-plus)版本。 ______ ___ ___ _____ _ ______ ____ ____ _____ ____ _____ .' ___ | .' `. .' `.|_ _| V7.x / \ |_ _ `.|_ \ / _||_ _||_ \|_ _| / .' \_|/ .-. \/ .-. \ | | ______ / _ \ | | `. \ | \/ | | | | \ | |