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 +++++++++++++++++++++++++++++++++++++++++++++-
 ruoyi-file/src/main/resources/mapper/AttachmentInfoMapper.xml                       |    4 +-
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                     |    4 +
 ruoyi-file/src/main/java/com/ruoyi/file/service/AttachmentService.java              |    4 ++
 ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentInfoServiceImpl.java |    2 
 5 files changed, 101 insertions(+), 6 deletions(-)

diff --git a/ruoyi-file/src/main/java/com/ruoyi/file/service/AttachmentService.java b/ruoyi-file/src/main/java/com/ruoyi/file/service/AttachmentService.java
index 239cc7e..ea3e4c6 100644
--- a/ruoyi-file/src/main/java/com/ruoyi/file/service/AttachmentService.java
+++ b/ruoyi-file/src/main/java/com/ruoyi/file/service/AttachmentService.java
@@ -26,7 +26,11 @@
 
     Object saveBatchFileToPath(MultipartFile[] file, String module);
 
+    Object saveBatchFileToPath(MultipartFile[] file, String module,Long businessId);
+
     void downloadForStream(HttpServletResponse response, String key);
 
     void downloadById(HttpServletResponse response, HttpServletRequest request, Long id);
+
+    void updateBatchById(List<AttachmentInfo> attachmentInfo);
 }
diff --git a/ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentInfoServiceImpl.java b/ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentInfoServiceImpl.java
index 7c571ec..d3d0329 100644
--- a/ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentInfoServiceImpl.java
+++ b/ruoyi-file/src/main/java/com/ruoyi/file/service/impl/AttachmentInfoServiceImpl.java
@@ -58,7 +58,7 @@
         AttachmentInfo attachmentInfo = new AttachmentInfo();
         attachmentInfo.setId(id);
         attachmentInfo.setUpdateTime(new Date());
-        //attachmentInfo.setUpdateBy(SecurityUtils.getUsername());
+        attachmentInfo.setUpdateBy(SecurityUtils.getUsername());
         attachmentInfo.setDelFlag(1);
         attachmentInfoMapper.updateById(attachmentInfo);
     }
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("文件批量保存失败");
+    }
 }
diff --git a/ruoyi-file/src/main/resources/mapper/AttachmentInfoMapper.xml b/ruoyi-file/src/main/resources/mapper/AttachmentInfoMapper.xml
index 8d0e049..4e69b19 100644
--- a/ruoyi-file/src/main/resources/mapper/AttachmentInfoMapper.xml
+++ b/ruoyi-file/src/main/resources/mapper/AttachmentInfoMapper.xml
@@ -3,11 +3,11 @@
 <mapper namespace="com.ruoyi.file.mapper.AttachmentInfoMapper" >
   <insert id="saveBatch" useGeneratedKeys="true" keyProperty="id" >
     insert into attachment (file_key,file_path,file_url,file_name,file_suffix,file_desc,file_size,file_type,module,del_flag
-    ,create_by,create_time,update_by,update_time)values
+    ,create_by,create_time,update_by,update_time,business_id,remark)values
     <foreach collection="attachmentList" item="attachment" separator=",">
       (#{attachment.fileKey},#{attachment.filePath},#{attachment.fileUrl},#{attachment.fileName},#{attachment.fileSuffix},#{attachment.fileDesc},
        #{attachment.fileSize},#{attachment.fileType},#{attachment.module},#{attachment.delFlag},#{attachment.createBy},
-       #{attachment.createTime},#{attachment.updateBy},#{attachment.updateTime})
+       #{attachment.createTime},#{attachment.updateBy},#{attachment.updateTime},#{attachment.businessId},#{attachment.remark})
     </foreach>
   </insert>
   <update id="updateBusinessIdBatch">
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index eca3694..b580763 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -7,6 +7,8 @@
     <resultMap type="SysUser" id="SysUserResult">
         <id     property="userId"       column="user_id"      />
         <result property="deptId"       column="dept_id"      />
+        <result property="districtId"       column="district_id"      />
+        <result property="unit"       column="unit"      />
         <result property="userName"     column="user_name"    />
         <result property="nickName"     column="nick_name"    />
         <result property="email"        column="email"        />
@@ -47,7 +49,7 @@
     </resultMap>
 	
 	<sql id="selectUserVo">
-        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
+        select u.user_id, u.dept_id, u.district_id,u.unit,u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
         r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
         from sys_user u

--
Gitblit v1.9.2