From 395f924baaf24f421eb378f3730b28acaefd027c Mon Sep 17 00:00:00 2001 From: zf <1603559716@qq.com> Date: 星期四, 14 九月 2023 16:01:22 +0800 Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/swspkmas into zf1 --- ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentServiceImpl.java | 93 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 91 insertions(+), 2 deletions(-) diff --git a/ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentServiceImpl.java b/ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentServiceImpl.java index e5666a0..7db9141 100644 --- a/ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentServiceImpl.java +++ b/ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentServiceImpl.java @@ -243,8 +243,90 @@ attachmentInfo.setFileSize(file.getSize()); attachmentInfo.setModule(module); attachmentInfo.setFileType(getType(suffix)); - /* attachmentInfo.setCreateBy(SecurityUtils.getUsername()); - attachmentInfo.setUpdateBy(SecurityUtils.getUsername());*/ + attachmentInfo.setCreateBy(SecurityUtils.getUsername()); + attachmentInfo.setUpdateBy(SecurityUtils.getUsername()); + attachmentInfo.setUpdateTime(new Date()); + attachmentInfo.setCreateTime(new Date()); + attachmentInfoList.add(attachmentInfo); + + } catch (IOException e) { + if (newFile != null && newFile.exists()) { + newFile.delete(); + } + logger.error(ERROR_FORMATTER, "文件上传失败", e.getMessage()); + throw new ServiceException("文件上传失败"); + } + } + List<AttachmentInfo> detailList = attachmentInfoService.saveBatchAttachment(attachmentInfoList); + + return detailList; + } + + @Override + public Object saveBatchFileToPath(MultipartFile[] fileList, String module,Long businessId) { + //获取对应模块路径 + String path; + //获取对应模块根路径 + String dcPath; + path = filePathProperties.getModule().get(module); + dcPath = filePathProperties.getDcPath(); + List<AttachmentInfo> attachmentInfoList = new ArrayList<>(); + for (MultipartFile file : fileList) { + String originalFilename = file.getOriginalFilename(); + if (StringUtils.isEmpty(originalFilename)) { + logger.error(ERROR_FORMATTER,module, "文件不存在"); + throw new ServiceException("文件不存在"); + } + if (StringUtils.isEmpty(path)) { + logger.error(ERROR_FORMATTER, module, "文件路径不存在"); + throw new ServiceException("文件路径不存在"); + } + assert originalFilename != null; + LocalDateTime now = LocalDateTime.now(); + File newFile = null; + try { + //文件标识 UUID 如4d6873609b144945935ae84442711fd6 + String key = ""; + String suffix = ""; + if (originalFilename.contains(".mp3")) { + key = originalFilename; + suffix = ""; + } else { + key = UUID.randomUUID().toString().replace("-", ""); + //文件后缀 包含. + suffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase(); + } + + path = path.replace("/", File.separator); + //文件模块路径 如 2021/base/build/0421 + String modulePath = now.getYear() + path + now.format(DateTimeFormatter.ofPattern("MMdd")); + //文件路径 如 2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀 + String newFilePath = modulePath + File.separator + key + suffix; + //文件绝对路径 如 /home/img/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀 + String localPath = dcPath + newFilePath; + //文件访问路径 如 /upload/2021/base/build/0421/4d6873609b144945935ae84442711fd6.后缀 + String url = filePathProperties.getUrlRootPath() + newFilePath.replace(File.separator, "/"); + newFile = new File(localPath); + if (!newFile.exists() && !newFile.mkdirs()) { + logger.error(ERROR_FORMATTER, newFilePath, "文件上传失败"); + throw new ServiceException("文件上传失败"); + } + //上传文件 + file.transferTo(newFile); + //创建文件信息 + AttachmentInfo attachmentInfo = new AttachmentInfo(); + attachmentInfo.setDelFlag(0); + attachmentInfo.setFileKey(key); + attachmentInfo.setFileSuffix(suffix); + attachmentInfo.setFilePath(localPath); + attachmentInfo.setFileUrl(url); + attachmentInfo.setBusinessId(businessId); + attachmentInfo.setFileName(file.getOriginalFilename()); + attachmentInfo.setFileSize(file.getSize()); + attachmentInfo.setModule(module); + attachmentInfo.setFileType(getType(suffix)); + attachmentInfo.setCreateBy(SecurityUtils.getUsername()); + attachmentInfo.setUpdateBy(SecurityUtils.getUsername()); attachmentInfo.setUpdateTime(new Date()); attachmentInfo.setCreateTime(new Date()); attachmentInfoList.add(attachmentInfo); @@ -319,4 +401,11 @@ throw new ServiceException("文件不存在"); } } + + @Override + public void updateBatchById(List<AttachmentInfo> attachmentInfo) { + boolean saveBatch = attachmentInfoService.updateBatchById(attachmentInfo); + if (!saveBatch) + throw new ServiceException("文件批量保存失败"); + } } -- Gitblit v1.9.2