donglang 4 дней назад
Родитель
Сommit
104107ddc2

+ 25 - 0
sckw-modules/sckw-file/src/main/java/com/sckw/file/service/FileInfoService.java

@@ -3,14 +3,19 @@ package com.sckw.file.service;
 import cn.hutool.core.io.file.FileNameUtil;
 import cn.hutool.core.io.file.FileNameUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.common.enums.StringConstant;
+import com.sckw.core.common.enums.enums.FileDisposeLayoutEnum;
+import com.sckw.core.common.enums.enums.FileEnum;
 import com.sckw.core.config.ProjectConfig;
 import com.sckw.core.config.ProjectConfig;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.NumberConstant;
 import com.sckw.core.model.constant.NumberConstant;
+import com.sckw.core.model.file.FileInfo;
 import com.sckw.core.utils.FileUploadUtils;
 import com.sckw.core.utils.FileUploadUtils;
 import com.sckw.core.utils.FileUtils;
 import com.sckw.core.utils.FileUtils;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.core.web.response.result.Status;
 import com.sckw.file.api.dto.FileInfoVO;
 import com.sckw.file.api.dto.FileInfoVO;
 import com.sckw.file.dao.KwsFileInfoDao;
 import com.sckw.file.dao.KwsFileInfoDao;
 import com.sckw.file.model.kwfFileInfo;
 import com.sckw.file.model.kwfFileInfo;
@@ -18,6 +23,9 @@ import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.FilenameUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
@@ -25,6 +33,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.IOException;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 /**
 /**
  * @author xucaiqin
  * @author xucaiqin
@@ -38,8 +47,24 @@ public class FileInfoService {
     @Resource
     @Resource
     private ProjectConfig projectConfig;
     private ProjectConfig projectConfig;
 
 
+    @Resource
+    private FileService fileService;
+
+    @Value("${file.upload.oss-enabled:true}")
+    private boolean ossEnabled;
+
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public FileInfoVO uploadFile(MultipartFile file) {
     public FileInfoVO uploadFile(MultipartFile file) {
+        // 打开,调用FileService走OSS上传
+        if (ossEnabled) {
+            log.info("oss文件上传!");
+            HttpResult result = fileService.uploadFileInfo(file);
+            FileInfoVO fileInfoVO = (FileInfoVO) result.getData();
+            log.info("OSS文件上传成功,文件访问URL: {}", fileInfoVO.getFileAbsolutePath());
+            return fileInfoVO;
+        }
+
+        // 关闭,走本地上传
         boolean isEmpty = file.isEmpty();
         boolean isEmpty = file.isEmpty();
         if (isEmpty) {
         if (isEmpty) {
             throw new BusinessException("文件不能为空");
             throw new BusinessException("文件不能为空");