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