diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java index 7ce7a89..340eddd 100644 --- a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFile.java @@ -20,6 +20,11 @@ public class SysFile */ private String url; + + + + + public String getName() { return name; diff --git a/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileVo.java b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileVo.java new file mode 100644 index 0000000..d5eb292 --- /dev/null +++ b/bonus-api/bonus-api-system/src/main/java/com/bonus/system/api/domain/SysFileVo.java @@ -0,0 +1,40 @@ +package com.bonus.system.api.domain; + +import lombok.Data; + +/** + * 返回的文件进行统一封装 + * 无论是 mongodb还是 oss、还是本地存储 还是obs等 进行统一的 数据返回和文件上传 + */ +@Data +public class SysFileVo { + + private String file; + + private String fileId; + + private String fileName; + + private String contentType; + + private String suffix; + + private long fileSize; + + private String sourceId; + + private String id; + + private String fileType; + + private String sourceType; + + private String updaetTime; + + private byte[] data; + /** + *文件路径 + */ + private String url; + +} diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/global/SystemGlobal.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/global/SystemGlobal.java index 93c3bf7..3917639 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/global/SystemGlobal.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/global/SystemGlobal.java @@ -32,5 +32,29 @@ public class SystemGlobal { * POST 请求 */ public final static String POST="POST"; + /** + * PUT 请求 + */ + public final static String PUT="PUT"; + + /** + * 文件存储类型-local + */ + public final static String LOCAL="local"; + /** + * 文件存储类型-oss + */ + public final static String OSS="oss"; + + /** + * 文件存储类型-mongodb + */ + public final static String MONGODB="mongodb"; + + /** + * 文件存储类型-obs + */ + public final static String OBS="obs"; + } diff --git a/bonus-common/bonus-common-entity/pom.xml b/bonus-common/bonus-common-entity/pom.xml new file mode 100644 index 0000000..c5586b7 --- /dev/null +++ b/bonus-common/bonus-common-entity/pom.xml @@ -0,0 +1,20 @@ + + + + com.bonus + bonus-common + 24.6.0 + + 4.0.0 + + bonus-common-entity + + + bonus-common-entity + + + + + \ No newline at end of file diff --git a/bonus-common/pom.xml b/bonus-common/pom.xml index ac72fff..7b4eee7 100644 --- a/bonus-common/pom.xml +++ b/bonus-common/pom.xml @@ -18,6 +18,7 @@ bonus-common-sensitive bonus-common-datascope bonus-common-datasource + bonus-common-entity bonus-common diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java index 6729af6..81af54e 100644 --- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java +++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java @@ -1,10 +1,13 @@ package com.bonus.file.controller; import com.bonus.common.core.utils.Base64Utils; +import com.bonus.common.core.utils.global.SystemGlobal; import com.bonus.file.utils.FileDownloadUtils; +import com.bonus.system.api.domain.SysFileVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -23,34 +26,48 @@ import java.io.IOException; * @author bonus */ @RestController -public class SysFileController -{ +public class SysFileController { private static final Logger log = LoggerFactory.getLogger(SysFileController.class); @Autowired private ISysFileService sysFileService; - + /** + * 存储文件 + */ + @Value("${file.save-type}") + public String saveType; /** * 文件上传请求 */ @PostMapping("upload") - public R upload(MultipartFile file) - { - try - { - // 上传并返回访问地址 - String url = sysFileService.uploadFile(file); - SysFile sysFile = new SysFile(); - sysFile.setName(FileUtils.getName(url)); - sysFile.setUrl(url); - return R.ok(sysFile); + public R upload(MultipartFile file) { + try { + if(saveType.equals(SystemGlobal.LOCAL)){ + SysFileVo fileVo= uploadByLocal(file); + return R.ok(fileVo); + }else {//默认本地存储 + SysFileVo fileVo= uploadByLocal(file); + return R.ok(fileVo); + } } - catch (Exception e) - { + catch (Exception e) { log.error("上传文件失败", e); return R.fail(e.getMessage()); } } + /** + * 本地文件上传 + * @return + */ + public SysFileVo uploadByLocal(MultipartFile file) throws Exception { + // 上传并返回访问地址 + String url = sysFileService.uploadFile(file); + SysFileVo sysFile = new SysFileVo(); + sysFile.setFileName(FileUtils.getName(url)); + sysFile.setUrl(url); + return sysFile; + } + @GetMapping("/download") public R downloadFile(String url, String destination) { diff --git a/bonus-modules/bonus-mongodb/pom.xml b/bonus-modules/bonus-mongodb/pom.xml index 4bd21f0..0fbf34d 100644 --- a/bonus-modules/bonus-mongodb/pom.xml +++ b/bonus-modules/bonus-mongodb/pom.xml @@ -9,7 +9,7 @@ 24.6.0 - bonus-modules-mongodb + bonus-mongodb 8 diff --git a/bonus-modules/bonus-obs/pom.xml b/bonus-modules/bonus-obs/pom.xml index f229be7..bad868d 100644 --- a/bonus-modules/bonus-obs/pom.xml +++ b/bonus-modules/bonus-obs/pom.xml @@ -9,7 +9,7 @@ 24.6.0 - bonus-modules-obs + bonus-obs bonus-modules-obs存储服务 diff --git a/bonus-modules/pom.xml b/bonus-modules/pom.xml index ef93e49..a33012c 100644 --- a/bonus-modules/pom.xml +++ b/bonus-modules/pom.xml @@ -14,6 +14,7 @@ bonus-job bonus-file bonus-oss + app bonus-modules