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