diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/ISysFileServiceImpl.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/ISysFileServiceImpl.java index 9cc5c0487274990fc4fff0dd5c97ae27fb6ac487..d12c5bc2d1c7724bcde55d5d56dea4f301d480fa 100644 --- a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/ISysFileServiceImpl.java +++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/ISysFileServiceImpl.java @@ -1,17 +1,20 @@ package com.pearadmin.system.service.impl; import com.pearadmin.common.config.proprety.TemplateProperty; -import com.pearadmin.system.domain.SysFile; -import com.pearadmin.system.mapper.SysFileMapper; -import com.pearadmin.system.service.ISysFileService; import com.pearadmin.common.tools.common.FileUtil; import com.pearadmin.common.tools.sequence.SequenceUtil; import com.pearadmin.common.tools.servlet.ServletUtil; +import com.pearadmin.system.domain.SysFile; +import com.pearadmin.system.mapper.SysFileMapper; +import com.pearadmin.system.service.ISysFileService; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.FileCopyUtils; import org.springframework.web.multipart.MultipartFile; + import javax.annotation.Resource; +import java.io.File; import java.io.FileInputStream; import java.time.LocalDate; import java.time.LocalDateTime; @@ -22,19 +25,20 @@ import java.util.List; * Describe: 文件服务接口实现 * Author: 就 眠 仪 式 * CreateTime: 2019/10/23 - * */ + */ +@Slf4j @Service public class ISysFileServiceImpl implements ISysFileService { /** * 引 入 服 务 - * */ + */ @Resource private SysFileMapper fileMapper; /** * 上 传 可 读 配 置 - * */ + */ @Resource private TemplateProperty uploadProperty; @@ -42,17 +46,17 @@ public class ISysFileServiceImpl implements ISysFileService { * Describe: 文 件 夹 列 表 * Param: File * Return: id - * */ + */ @Override - public List fileDirs(){ + public List fileDirs() { List fileDirs = new ArrayList<>(); java.io.File file = new java.io.File("/home/upload"); - if(file.isDirectory()){ - java.io.File[] files = file.listFiles(); + if (file.isDirectory()) { + java.io.File[] files = file.listFiles(); for (int i = 0; i < files.length; i++) { if (files[i].isDirectory()) { - String dirName = files[i].getName(); - fileDirs.add(dirName); + String dirName = files[i].getName(); + fileDirs.add(dirName); } } } @@ -63,7 +67,7 @@ public class ISysFileServiceImpl implements ISysFileService { * Describe: 文件上传 * Param: File * Return: id - * */ + */ @Override @Transactional public String upload(MultipartFile file) { @@ -73,7 +77,7 @@ public class ISysFileServiceImpl implements ISysFileService { String suffixName = name.substring(name.lastIndexOf(".")); String fileName = fileId + suffixName; String fileDir = LocalDate.now().toString(); - String parentPath = uploadProperty.getUploadPath() +fileDir; + String parentPath = uploadProperty.getUploadPath() + fileDir; java.io.File filepath = new java.io.File(parentPath, fileName); if (!filepath.getParentFile().exists()) { filepath.getParentFile().mkdirs(); @@ -87,14 +91,14 @@ public class ISysFileServiceImpl implements ISysFileService { fileDomain.setFilePath(filepath.getPath()); fileDomain.setCreateTime(LocalDateTime.now()); fileDomain.setFileSize(FileUtil.getPrintSize(filepath.length())); - fileDomain.setFileType(suffixName.replace(".","")); + fileDomain.setFileType(suffixName.replace(".", "")); int result = fileMapper.insert(fileDomain); if (result > 0) { return fileId; } else { return ""; } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); return ""; } @@ -104,7 +108,7 @@ public class ISysFileServiceImpl implements ISysFileService { * Describe: 根据 Id 下载文件 * Param: id * Return: IO - * */ + */ @Override public void download(String id) { try { @@ -113,7 +117,7 @@ public class ISysFileServiceImpl implements ISysFileService { if (files.exists()) { FileCopyUtils.copy(new FileInputStream(file.getFilePath()), ServletUtil.getResponse().getOutputStream()); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } @@ -122,7 +126,7 @@ public class ISysFileServiceImpl implements ISysFileService { * Describe: 查 询 文 件 列 表 * Param: id * Return: File - * */ + */ @Override public List data() { return fileMapper.selectList(); @@ -133,15 +137,25 @@ public class ISysFileServiceImpl implements ISysFileService { * Describe: 根据 Id 删除文件信息 * Param: id * Return: int - * */ + */ @Override public boolean remove(String id) { SysFile file = fileMapper.selectById(id); - new java.io.File(file.getFilePath()).delete(); - int removeInfo = fileMapper.deleteById(id); - if(removeInfo>0){ - return true; + boolean fileDeleteResult; + //如果文件不存在 + if (file != null && file.getFilePath() != null) { + File deleteFile; + if((deleteFile=new File(file.getFilePath())).exists()){ + fileDeleteResult=deleteFile.delete(); + }else { + fileDeleteResult=false; + } + } else { + fileDeleteResult = false; + } + if (fileDeleteResult) { + log.warn("fileId:{} ,need delete file:{} not exists ", id, file.getFilePath()); } - return false; + return fileMapper.deleteById(id) > 0; } }