From c82ecd33f521c502ce4f895fc1ac1dcea68c56d6 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期三, 02 四月 2025 16:32:46 +0800
Subject: [PATCH] 标准库功能修改记录文件上传
---
basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopServiceImpl.java | 82 +++++++++++++++--------------------------
1 files changed, 30 insertions(+), 52 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopServiceImpl.java
index 7d006b6..7620e5b 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopServiceImpl.java
@@ -1,6 +1,5 @@
package com.ruoyi.basic.service.impl;
-import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,16 +9,16 @@
import com.ruoyi.basic.pojo.WorkShop;
import com.ruoyi.basic.pojo.WorkShopFile;
import com.ruoyi.basic.service.WorkShopService;
+import com.ruoyi.common.core.domain.MinioResult;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.file.MinioUtils;
+import com.ruoyi.framework.exception.ErrorException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
-import java.io.File;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
/**
* @description 閽堝琛ㄣ�恮ork_shop(杞﹂棿鍚嶇О)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
@@ -33,11 +32,11 @@
@Resource
private WorkShopFileMapper workShopFileMapper;
- @Value("${wordUrl}")
- private String wordUrl;
+ @Resource
+ private MinioUtils minioUtils;
- @Value("${file.path}")
- private String imgUrl;
+ @Value("${minio.bucketName}")
+ private String bucketName;
@Override
@@ -58,58 +57,37 @@
public int delWorkShop(Integer id) {
return workShopMapper.deleteById(id);
}
-
+
@Override
- public int uploadFile(Integer id, MultipartFile file) {
- String username = SecurityUtils.getUsername();
- String urlString;
- String pathName;
- String path;
- String filename = file.getOriginalFilename();
- String contentType = file.getContentType();
+ public int uploadFile(Integer id, MultipartFile file) throws Exception {
+ // 鍩虹鏍¢獙
+ if (file == null || file.isEmpty()) {
+ throw new ErrorException("涓婁紶鏂囦欢涓虹┖");
+ }
+
WorkShopFile workShopFile = new WorkShopFile();
workShopFile.setWorkShopId(id);
- workShopFile.setFileName(filename);
- if (contentType != null && contentType.startsWith("image/")) {
- // 鏄浘鐗�
- path = imgUrl;
- workShopFile.setType(1);
- } else {
- // 鏄枃浠�
- path = wordUrl;
- workShopFile.setType(2);
- }
+ workShopFile.setFileName(file.getOriginalFilename());
+ workShopFile.setName(SecurityUtils.getUsername());
+
try {
- // 1. 瑙f瀽缁濆璺緞锛堜紭鍏堜娇鐢ㄩ厤缃殑缁濆璺緞锛屽惁鍒欏熀浜庨」鐩牴鐩綍锛�
- String basePath = imgUrl.startsWith(File.separator) ? imgUrl : System.getProperty("user.dir") + File.separator + imgUrl;
- File realpath = new File(basePath);
-
- // 2. 鍒涘缓鐩綍锛堣褰曟棩蹇楋紝妫�鏌ユ槸鍚︽垚鍔燂級
- if (!realpath.exists()) {
- if (!realpath.mkdirs()) {
- System.err.println("鐩綍鍒涘缓澶辫触锛歿}");
- return 0;
- }
+ String contentType = file.getContentType();
+ String category = contentType != null && contentType.startsWith("image/") ? "images" : "docs";
+ MinioResult upload = minioUtils.upload(bucketName, file, true);
+ // 璁板綍瀛樺偍璺緞
+ workShopFile.setFileUrl(upload.getBucketFileName());
+ workShopFile.setFileMinioUrl(upload.getPreviewExpiry());
+ workShopFile.setType(category.equals("images") ? 1 : 2);
+ // 鏁版嵁搴撴搷浣�
+ int insertResult = workShopFileMapper.insert(workShopFile);
+ if (insertResult <= 0) {
+ throw new ErrorException("鏁版嵁搴撴彃鍏ュけ璐�");
}
-
- // 3. 鐢熸垚鍞竴鏂囦欢鍚�
- String uuid = UUID.randomUUID().toString().replace("-", "");
- String suffix = filename.substring(filename.lastIndexOf("."));
- pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + "_" + uuid + suffix;
- File targetFile = new File(realpath, pathName);
-
- // 4. 淇濆瓨鏂囦欢
- file.transferTo(targetFile);
- workShopFile.setFileUrl(pathName);
- workShopFile.setName(username);
- return workShopFileMapper.insert(workShopFile);
+ return insertResult;
} catch (Exception e) {
- e.printStackTrace();
- System.err.println("闄勪欢涓婁紶閿欒");
- return 0;
+ throw new Exception("绯荤粺寮傚父: ", e);
}
}
-
}
--
Gitblit v1.9.3