package org.jeecg.modules.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; import org.jeecg.common.exception.ExceptionCast; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.util.FileUtil; import org.jeecg.modules.system.entity.FileDocInfo; import org.jeecg.modules.system.mapper.DocInfoMapper; import org.jeecg.modules.system.service.IDocInfoService; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; @Service public class DocInfoServiceImpl extends ServiceImpl implements IDocInfoService { @Override public boolean addDocInfo(MultipartFile file) { if (file == null || file.isEmpty()) { throw new JeecgBootException("非法参数"); } FileUploadResult fileUploadResult = FileUtil.uploadFile(file); if(fileUploadResult == null) throw new JeecgBootException("文档导入失败"); String fileName = FileUtil.getFilenameNonSuffix(file.getOriginalFilename()); List fileDocInfoList = this.list(new LambdaQueryWrapper().eq(FileDocInfo::getFileName, fileName)); if (CollectionUtils.isNotEmpty(fileDocInfoList)) throw new JeecgBootException("该文档已存在"); FileDocInfo docInfo = new FileDocInfo(); String docId = IdWorker.getIdStr(); docInfo.setId(docId); docInfo.setFileName(fileUploadResult.getFileName()); docInfo.setFilePath(fileUploadResult.getFilePath()); docInfo.setFileEncodeName(fileUploadResult.getFileEncodeName()); docInfo.setFileSize(fileUploadResult.getFileSize()); docInfo.setFileSuffix(fileUploadResult.getFileSuffix()); return super.save(docInfo); } @Override public boolean deleteDocInfo(String id) { if(StringUtils.isBlank(id)) throw new JeecgBootException("非法参数"); FileDocInfo en = super.getById(id); if(en == null) throw new JeecgBootException("未查询到文件信息"); FileUtil.deleteFile(en.getFilePath(), en.getFileName()); return super.removeById(id); } @Override public Result downloadDocFile(HttpServletResponse response, String id) { if(!StringUtils.isBlank(id)) throw new JeecgBootException("非法参数"); FileDocInfo en = super.getById(id); if(en == null) throw new JeecgBootException("未查询到文件信息"); String fileName; if(StringUtils.isNotBlank(en.getFileSuffix())) { fileName = en.getFileName() + "." + en.getFileSuffix(); }else { fileName = en.getFileName(); } FileUtil.downLoadFile(response, en.getFileEncodeName(), en.getFilePath(), fileName); return null; } }