From 94e3a209bb9a31c4ddbd31494bb1628f6fe2e96e Mon Sep 17 00:00:00 2001 From: lidongdong <1459917685@qq.com> Date: 星期三, 12 十月 2022 17:54:49 +0800 Subject: [PATCH] 新增首页工单 办事指南排行榜接口 导办人员排行榜接口 组织排行榜接口 新增办事指南统计接口 导办人员统计接口 组织胖行榜统计接口 --- flower_city/src/main/java/com/dg/core/controller/CommonController.java | 128 +++++++++++++++++++++++++++++++----------- 1 files changed, 94 insertions(+), 34 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/controller/CommonController.java b/flower_city/src/main/java/com/dg/core/controller/CommonController.java index dcc1a42..041670a 100644 --- a/flower_city/src/main/java/com/dg/core/controller/CommonController.java +++ b/flower_city/src/main/java/com/dg/core/controller/CommonController.java @@ -3,33 +3,53 @@ import com.dg.core.CorsConfig; import com.dg.core.ResultData; import com.dg.core.db.gen.AjaxResult; -import com.dg.core.file.FileUploadUtils; -import com.dg.core.file.FileUtils; +import com.dg.core.file.FtpConstants; +import com.dg.core.file.MimeTypeUtils; +import com.dg.core.file.SFTPUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; + +import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import java.util.UUID; +import static com.dg.core.file.FileTypeUploadUtils.assertAllowed; @Api(tags = {"通用接口"}) @RestController @RequestMapping("/common") -public class CommonController extends BaseController -{ +public class CommonController extends BaseController { private static final String FILE_DELIMETER = ","; @Autowired private CorsConfig corsConfig; + + + // FTP 登录用户名 + @Value("${ftp.username}") + private String userName; + // FTP 登录密码 + @Value("${ftp.password}") + private String password; + // FTP 服务器地址IP地址 + @Value("${ftp.host}") + private String host; + // FTP 端口 + @Value("${ftp.port}") + private int port; + @Value("${ftp.url}") + private String url; @RequestMapping("/hello") @@ -39,42 +59,82 @@ } - /** * 通用上传请求(多个) */ @ApiOperation("文件上传接口(通用)") @PostMapping("/uploads") - public ResultData uploadFiles(List<MultipartFile> files) throws Exception { - try { - // 上传文件路径 - String filePath = FileUploadUtils.defaultBaseDir; -// String filePath = "D:/tupianshuju"; + public ResultData uploadFiles(List<MultipartFile> files) throws Exception + { + List<String> urls = new ArrayList<String>(); + List<String> fileNames = new ArrayList<String>(); + List<String> originalFilenames = new ArrayList<String>(); + for (MultipartFile file : files) { + String extension = FilenameUtils.getExtension(file.getOriginalFilename()); + String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension; + try { + assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); + SFTPUtil sftp = new SFTPUtil(userName, password, host, port); + sftp.login(); + InputStream is = file.getInputStream(); + sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is); + sftp.logout(); - System.out.println("上传文件路径"+filePath); - - List<String> urls = new ArrayList<String>(); - List<String> fileNames = new ArrayList<String>(); - List<String> newFileNames = new ArrayList<String>(); - List<String> originalFilenames = new ArrayList<String>(); - for (MultipartFile file : files) { - // 上传并返回新文件名称 - String fileName = FileUploadUtils.upload(filePath, file); - String url = corsConfig.getUrl() + fileName; - urls.add(url); - fileNames.add(fileName); - newFileNames.add(FileUtils.getName(fileName)); + urls.add(url + "/idcard/" + name); + fileNames.add(name); originalFilenames.add(file.getOriginalFilename()); + + } catch (Exception e) { + return ResultData.error("上传文件失败 "+e.getMessage()); } - AjaxResult ajax = new AjaxResult(); - ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER)); - ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER)); - ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER)); - ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER)); - return ResultData.success(ajax); - } catch (Exception e) { - return ResultData.error(e.getMessage()); } + AjaxResult ajax = new AjaxResult(); + ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER)); + ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER)); + ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER)); + return ResultData.success(ajax); + } + + + /** + * 通用上传请求(多个) + */ + @ApiOperation("文件上传接口(通用)") + @PostMapping("/upload") + public ResultData uploadFile(MultipartFile file) throws Exception + { + List<String> urls = new ArrayList<String>(); + List<String> fileNames = new ArrayList<String>(); + List<String> originalFilenames = new ArrayList<String>(); + + String extension = FilenameUtils.getExtension(file.getOriginalFilename()); + String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension; + try { + assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); + SFTPUtil sftp = new SFTPUtil(userName, password, host, port); + sftp.login(); + InputStream is = file.getInputStream(); + sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is); + sftp.logout(); + +// urls.add(url + "/idcard/" + name); +// fileNames.add(name); +// originalFilenames.add(file.getOriginalFilename()); + return ResultData.success(url + "/idcard/" + name); + } catch (Exception e) { + return ResultData.error("上传文件失败 "+e.getMessage()); + } + + +// AjaxResult ajax = new AjaxResult(); +// ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER)); +// ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER)); +// ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER)); + + + } + + } -- Gitblit v1.7.1