From a63ea96e5fbb0d1aadc35cbc19dc62501dfa05bd Mon Sep 17 00:00:00 2001 From: zhangyuan Date: Thu, 8 Sep 2022 16:47:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8A=E4=BC=A0=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=80=9F=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../esua/epdc/enums/ItemStateCodeEnum.java | 49 +++++++++++++++++++ .../cloud/AbstractCloudStorageService.java | 41 ++++++++++++++++ .../epdc/cloud/AliyunCloudStorageService.java | 10 ++++ .../cloud/FastDFSCloudStorageService.java | 10 ++++ .../epdc/cloud/LocalCloudStorageService.java | 10 ++++ .../epdc/cloud/QcloudCloudStorageService.java | 10 ++++ .../epdc/cloud/QiniuCloudStorageService.java | 10 ++++ .../esua/epdc/controller/OssController.java | 23 +++++++++ 8 files changed, 163 insertions(+) create mode 100644 esua-epdc/epdc-module/epdc-oss/epdc-oss-client/src/main/java/com/elink/esua/epdc/enums/ItemStateCodeEnum.java diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-client/src/main/java/com/elink/esua/epdc/enums/ItemStateCodeEnum.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-client/src/main/java/com/elink/esua/epdc/enums/ItemStateCodeEnum.java new file mode 100644 index 000000000..1eec1df69 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-client/src/main/java/com/elink/esua/epdc/enums/ItemStateCodeEnum.java @@ -0,0 +1,49 @@ +package com.elink.esua.epdc.enums; + +/** + * 上诉照片类型 + * + * @author zhy + * @date 2022/9/8 16:27 + */ +public enum ItemStateCodeEnum { + JMZP("居民上报照片", "0"), + WGZP("网格办理照片", "1"), + SQZP("社区办理照片", "2"), + CZZP("处置照片", "3"); + + + private String value; + private String name; + + ItemStateCodeEnum(String value, String name) { + this.value = value; + this.name = name; + } + + public static String getValueByCode(String code) { + ItemStateCodeEnum[] enums = ItemStateCodeEnum.values(); + for (ItemStateCodeEnum anEnum : enums) { + if (anEnum.name.equals(code)) { + return anEnum.value; + } + } + return "处置照片"; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/AbstractCloudStorageService.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/AbstractCloudStorageService.java index b35c86cdf..a360e7d2a 100644 --- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/AbstractCloudStorageService.java +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/AbstractCloudStorageService.java @@ -44,6 +44,29 @@ public abstract class AbstractCloudStorageService { return path + "." + suffix; } + /** + * 文件路径 + * @param prefix 前缀 + * @param name 文件名 + * @param suffix 后缀 + * @return 返回上传路径 + */ + public String getPath(String prefix, String name, String suffix) { + //生成uuid + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + if (StringUtils.isBlank(name)) { + name = uuid; + } + //文件路径 + String path = DateUtils.format(new Date(), "yyyyMMdd") + "/" + uuid+ "/" + name; + + if(StringUtils.isNotBlank(prefix)){ + path = prefix + "/" + path; + } + + return path + "." + suffix; + } + /** * 文件上传 * @param data 文件字节数组 @@ -52,6 +75,15 @@ public abstract class AbstractCloudStorageService { */ public abstract String upload(byte[] data, String path); + /** + * 文件上传 + * @param data 文件字节数组 + * @param name 文件名 + * @param path 文件路径,包含文件名 + * @return 返回http地址 + */ + public abstract String upload(byte[] data, String name, String path); + /** * 文件上传 * @param data 文件字节数组 @@ -76,4 +108,13 @@ public abstract class AbstractCloudStorageService { */ public abstract String uploadSuffix(InputStream inputStream, String suffix); + /** + * 文件上传 + * @param inputStream 字节流 + * @param name 文件名 + * @param suffix 后缀 + * @return 返回http地址 + */ + public abstract String upload(InputStream inputStream, String name, String suffix); + } diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/AliyunCloudStorageService.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/AliyunCloudStorageService.java index dc4682e7d..5fbecce48 100644 --- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/AliyunCloudStorageService.java +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/AliyunCloudStorageService.java @@ -35,6 +35,11 @@ public class AliyunCloudStorageService extends AbstractCloudStorageService { return upload(new ByteArrayInputStream(data), path); } + @Override + public String upload(byte[] data, String name, String suffix) { + return upload(data, getPath(config.getAliyunPrefix(), name, suffix)); + } + @Override public String upload(InputStream inputStream, String path) { OSSClient client = new OSSClient(config.getAliyunEndPoint(), config.getAliyunAccessKeyId(), @@ -59,6 +64,11 @@ public class AliyunCloudStorageService extends AbstractCloudStorageService { return upload(inputStream, getPath(config.getAliyunPrefix(), suffix)); } + @Override + public String upload(InputStream inputStream, String name, String suffix) { + return upload(inputStream, getPath(config.getAliyunPrefix(), name, suffix)); + } + /** * 下载阿里云oss服务器上的文件 * diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/FastDFSCloudStorageService.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/FastDFSCloudStorageService.java index 706b2da41..949535952 100644 --- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/FastDFSCloudStorageService.java +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/FastDFSCloudStorageService.java @@ -38,6 +38,11 @@ public class FastDFSCloudStorageService extends AbstractCloudStorageService { return upload(new ByteArrayInputStream(data), path); } + @Override + public String upload(byte[] data, String name, String suffix) { + return upload(data, getPath(config.getAliyunPrefix(), name, suffix)); + } + @Override public String upload(InputStream inputStream, String suffix) { StorePath storePath; @@ -59,4 +64,9 @@ public class FastDFSCloudStorageService extends AbstractCloudStorageService { public String uploadSuffix(InputStream inputStream, String suffix) { return upload(inputStream, suffix); } + + @Override + public String upload(InputStream inputStream, String name, String suffix) { + return upload(inputStream, getPath(config.getAliyunPrefix(), name, suffix)); + } } diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/LocalCloudStorageService.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/LocalCloudStorageService.java index 37d7a4d41..dd4698801 100644 --- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/LocalCloudStorageService.java +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/LocalCloudStorageService.java @@ -35,6 +35,11 @@ public class LocalCloudStorageService extends AbstractCloudStorageService { return upload(new ByteArrayInputStream(data), path); } + @Override + public String upload(byte[] data, String name, String suffix) { + return upload(data, getPath(config.getAliyunPrefix(), name, suffix)); + } + @Override public String upload(InputStream inputStream, String path) { File file = new File(config.getLocalPath() + File.separator + path); @@ -55,4 +60,9 @@ public class LocalCloudStorageService extends AbstractCloudStorageService { public String uploadSuffix(InputStream inputStream, String suffix) { return upload(inputStream, getPath(config.getLocalPrefix(), suffix)); } + + @Override + public String upload(InputStream inputStream, String name, String suffix) { + return upload(inputStream, getPath(config.getAliyunPrefix(), name, suffix)); + } } diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/QcloudCloudStorageService.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/QcloudCloudStorageService.java index 8b6d559af..150a91bcf 100644 --- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/QcloudCloudStorageService.java +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/QcloudCloudStorageService.java @@ -54,6 +54,11 @@ public class QcloudCloudStorageService extends AbstractCloudStorageService { return upload(new ByteArrayInputStream(data), path); } + @Override + public String upload(byte[] data, String name, String suffix) { + return upload(data, getPath(config.getAliyunPrefix(), name, suffix)); + } + @Override public String upload(InputStream inputStream, String path) { try { @@ -85,4 +90,9 @@ public class QcloudCloudStorageService extends AbstractCloudStorageService { public String uploadSuffix(InputStream inputStream, String suffix) { return upload(inputStream, getPath(config.getQcloudPrefix(), suffix)); } + + @Override + public String upload(InputStream inputStream, String name, String suffix) { + return upload(inputStream, getPath(config.getAliyunPrefix(), name, suffix)); + } } diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/QiniuCloudStorageService.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/QiniuCloudStorageService.java index 5d795b168..5a91445c5 100644 --- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/QiniuCloudStorageService.java +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/cloud/QiniuCloudStorageService.java @@ -60,6 +60,11 @@ public class QiniuCloudStorageService extends AbstractCloudStorageService { return config.getQiniuDomain() + "/" + path; } + @Override + public String upload(byte[] data, String name, String suffix) { + return upload(data, getPath(config.getAliyunPrefix(), name, suffix)); + } + @Override public String upload(InputStream inputStream, String path) { try { @@ -79,4 +84,9 @@ public class QiniuCloudStorageService extends AbstractCloudStorageService { public String uploadSuffix(InputStream inputStream, String suffix) { return upload(inputStream, getPath(config.getQiniuPrefix(), suffix)); } + + @Override + public String upload(InputStream inputStream, String name, String suffix) { + return upload(inputStream, getPath(config.getAliyunPrefix(), name, suffix)); + } } diff --git a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java index e1e09b321..8899084e9 100644 --- a/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java +++ b/esua-epdc/epdc-module/epdc-oss/epdc-oss-server/src/main/java/com/elink/esua/epdc/controller/OssController.java @@ -26,6 +26,7 @@ import com.elink.esua.epdc.dto.UploadDTO; import com.elink.esua.epdc.dto.UploadFormDTO; import com.elink.esua.epdc.dto.UploadToOssDTO; import com.elink.esua.epdc.entity.OssEntity; +import com.elink.esua.epdc.enums.ItemStateCodeEnum; import com.elink.esua.epdc.enums.OssTypeEnum; import com.elink.esua.epdc.exception.ModuleErrorCode; import com.elink.esua.epdc.remote.ParamsRemoteService; @@ -232,6 +233,7 @@ public class OssController { uploadAll.setFileName(file.getOriginalFilename()); return new Result().ok(uploadAll); } + /** * 文件上传 * @@ -254,4 +256,25 @@ public class OssController { uploadAll.setFileName(file.getOriginalFilename()); return new Result().ok(uploadAll); } + + /** + * 诉求上传 + * + * @param file + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author zhy + * @date 2022/9/8 16:23 + */ + @PostMapping("upload/{code}") + @ApiOperation(value = "上传文件") + public Result uploadByCode(@RequestParam("file") MultipartFile file, @PathVariable("code") String code) throws Exception { + if (file.isEmpty()) { + return new Result().error(ModuleErrorCode.UPLOAD_FILE_EMPTY); + } + String name = ItemStateCodeEnum.getValueByCode(code); + //上传文件 + String extension = FilenameUtils.getExtension(file.getOriginalFilename()); + String url = OssFactory.build().upload(file.getBytes(), name, extension); + return ossService.afterUpload(url, file.getSize()); + } }