From ffa3c540148b1615c77ce6349ab324fd7942a88c Mon Sep 17 00:00:00 2001 From: 15856 <15856818120@163.com> Date: Sun, 7 Apr 2024 15:58:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=8D=A2=E6=88=90=E8=85=BE?= =?UTF-8?q?=E8=AE=AF=E7=9A=84cos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sgzb-modules/sgzb-file/pom.xml | 6 ++++- .../bonus/sgzb/file/SgzbFileApplication.java | 2 ++ .../sgzb/system/config/FeignClientConfig.java | 22 +++++++++++++++++ .../sgzb/system/service/feign/FileClient.java | 21 ++++++++++++++++ .../service/impl/SysFileServiceImpl.java | 24 ++++++++++++------- 5 files changed, 65 insertions(+), 10 deletions(-) create mode 100644 sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/config/FeignClientConfig.java create mode 100644 sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/feign/FileClient.java diff --git a/sgzb-modules/sgzb-file/pom.xml b/sgzb-modules/sgzb-file/pom.xml index 48e5e8c3..89fbb847 100644 --- a/sgzb-modules/sgzb-file/pom.xml +++ b/sgzb-modules/sgzb-file/pom.xml @@ -72,7 +72,11 @@ com.bonus.sgzb sgzb-common-swagger - + + com.bonus.sgzb + sgzb-common-security + + diff --git a/sgzb-modules/sgzb-file/src/main/java/com/bonus/sgzb/file/SgzbFileApplication.java b/sgzb-modules/sgzb-file/src/main/java/com/bonus/sgzb/file/SgzbFileApplication.java index 3aaaef3a..d8a8ee87 100644 --- a/sgzb-modules/sgzb-file/src/main/java/com/bonus/sgzb/file/SgzbFileApplication.java +++ b/sgzb-modules/sgzb-file/src/main/java/com/bonus/sgzb/file/SgzbFileApplication.java @@ -1,5 +1,6 @@ package com.bonus.sgzb.file; +import com.bonus.sgzb.common.security.annotation.EnableRyFeignClients; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @@ -12,6 +13,7 @@ import com.bonus.sgzb.common.swagger.annotation.EnableCustomSwagger2; */ @EnableCustomSwagger2 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) +@EnableRyFeignClients public class SgzbFileApplication { public static void main(String[] args) diff --git a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/config/FeignClientConfig.java b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/config/FeignClientConfig.java new file mode 100644 index 00000000..88f7fd65 --- /dev/null +++ b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/config/FeignClientConfig.java @@ -0,0 +1,22 @@ +package com.bonus.sgzb.system.config; + +import feign.codec.Encoder; +import feign.form.spring.SpringFormEncoder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + + + +@Configuration +public class FeignClientConfig { + + @Bean + public Encoder feignFormEncoder() { + return new SpringFormEncoder(); + } + + @Bean + public feign.Logger.Level multipartLoggerLevel() { + return feign.Logger.Level.FULL; + } +} diff --git a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/feign/FileClient.java b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/feign/FileClient.java new file mode 100644 index 00000000..441dfa39 --- /dev/null +++ b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/feign/FileClient.java @@ -0,0 +1,21 @@ +package com.bonus.sgzb.system.service.feign; + + +import com.bonus.sgzb.common.core.web.domain.AjaxResult; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.multipart.MultipartFile; + +@FeignClient(value = "sgzb-file") +public interface FileClient { + + @ApiOperation(value = "使用腾讯云文件上传") + @PostMapping(value = "/tencent/cos/uploadFile",consumes = "multipart/form-data; boundary=----WebKitFormBoundaryPT06LeXYhc3X1Lna") + AjaxResult uploadFile(@RequestPart("file") MultipartFile file); + +} diff --git a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysFileServiceImpl.java b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysFileServiceImpl.java index 1df54485..5c1dc3d0 100644 --- a/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysFileServiceImpl.java +++ b/sgzb-modules/sgzb-system/src/main/java/com/bonus/sgzb/system/service/impl/SysFileServiceImpl.java @@ -3,11 +3,13 @@ package com.bonus.sgzb.system.service.impl; import cn.hutool.core.util.IdUtil; import com.bonus.sgzb.common.core.utils.DateTimeHelper; import com.bonus.sgzb.common.core.utils.GlobalConstants; +import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.security.utils.SecurityUtils; -import com.bonus.sgzb.system.api.model.LoginUser; import com.bonus.sgzb.system.domain.FileInfo; import com.bonus.sgzb.system.mapper.FileInfoMapper; import com.bonus.sgzb.system.service.SysFileService; +import com.bonus.sgzb.system.service.feign.FileClient; +import lombok.extern.slf4j.Slf4j; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.openxml4j.util.ZipSecureFile; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; @@ -20,11 +22,7 @@ import org.springframework.web.multipart.support.StandardMultipartHttpServletReq import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.Security; +import java.io.*; import java.util.*; /** @@ -32,6 +30,7 @@ import java.util.*; * * @author zys */ +@Slf4j @Primary @Service("SysFileService") public class SysFileServiceImpl implements SysFileService { @@ -44,6 +43,10 @@ public class SysFileServiceImpl implements SysFileService { @Value("${file.path}") private String localFilePath; + @Resource + private FileClient fileClient; + + /** * 本地文件上传接口 * @@ -60,7 +63,9 @@ public class SysFileServiceImpl implements SysFileService { List items = (List) map.get("filePath"); MultipartFile item = items.get(0); try { - String url = saveFile(request, item, photoType); + //String url = saveFile(request, item, photoType); + AjaxResult res = fileClient.uploadFile(item); + String url = (String) res.get("msg"); if (url != null) { int words = getFileText(item); String fileName = item.getOriginalFilename(); @@ -93,7 +98,9 @@ public class SysFileServiceImpl implements SysFileService { FileInfo file = new FileInfo(); Long userId = SecurityUtils.getLoginUser().getUserid(); try { - String url = saveFilePic(item, fileType); + //String url = saveFilePic(item, fileType); + AjaxResult res = fileClient.uploadFile(item); + String url = (String) res.get("msg"); if (url != null) { int words = getFileText(item); String fileName = item.getOriginalFilename(); @@ -115,7 +122,6 @@ public class SysFileServiceImpl implements SysFileService { return file; } - public HashMap getFile(StandardMultipartHttpServletRequest request) { MultipartFile multipartFile; HashMap map = new HashMap(16);