|
@@ -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("文件不能为空");
|