diff --git a/laws-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java b/laws-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java index 0f0646a5..d8cbed9a 100644 --- a/laws-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java +++ b/laws-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java @@ -26,13 +26,4 @@ public interface IOSSFileService extends IService { void updateFileInfo(List ossFileList); OSSFile uploadLocalOfCos(MultipartFile mf, String bizPath, String state, String cut); - - - /** - * 获取文件内容 - * @param file - * @return - * @throws Exception - */ - byte[] getMinioFileContent(OSSFile file) throws Exception; } diff --git a/laws-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java index 785864af..2550fd6b 100644 --- a/laws-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java @@ -332,26 +332,4 @@ public class OSSFileServiceImpl extends ServiceImpl impl oSSFile.setUrl(null); return oSSFile; } - - @Override - public byte[] getMinioFileContent(OSSFile file) throws Exception { - String fileUrl = file.getUrl(); - String minioUrl = MinioUtil.getMinioUrl(); - minioUrl = minioUrl + MinioUtil.getBucketName() + "/"; - String url = fileUrl.replace(minioUrl, ""); - - try (InputStream inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url); - ByteArrayOutputStream outputStream = new ByteArrayOutputStream() - ) { - byte[] buf = new byte[1024]; - int len; - while ((len = inputStream.read(buf)) > 0) { - outputStream.write(buf, 0, len); - } - return outputStream.toByteArray(); - } catch (Exception e) { - log.error(e.getMessage()); - throw e; - } - } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/controller/LawsCommonController.java b/laws-modules/src/main/java/com/jero/modules/laws/common/controller/LawsCommonController.java index 5c2a9805..8791ec59 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/controller/LawsCommonController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/controller/LawsCommonController.java @@ -100,7 +100,7 @@ public class LawsCommonController { // 设置强制下载不打开 response.setContentType("application/force-download"); // 然后在您的controller方法中: - if ("pdf".equals(FileUtil.extName(fileName))) { + if ("pdf".equalsIgnoreCase(FileUtil.extName(fileName))) { try (InputStream originalInputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url); InputStream watermarkedInputStream = waterMarkUtil.addWatermarkToPdf(originalInputStream); OutputStream outputStream = response.getOutputStream()) { diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/ILawsCommonService.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/ILawsCommonService.java index 9fa25059..3670595c 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/ILawsCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/ILawsCommonService.java @@ -3,6 +3,7 @@ package com.jero.modules.laws.common.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.modules.laws.common.vo.ManyStandardSelectionBox; import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO; +import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.tag.entity.LawsTag; import org.springframework.web.multipart.MultipartFile; @@ -154,4 +155,12 @@ public interface ILawsCommonService { * @Description: 增加浏览记录 **/ void addLookHistory(String id, String type, String module); + + /** + * 获取文件内容 + * @param file + * @return + * @throws Exception + */ + byte[] getMinioFileContent(OSSFile file) throws Exception; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index 7bdec755..d151abd2 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -12,6 +12,7 @@ import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.MessageUtils; +import com.jero.common.util.MinioUtil; import com.jero.modules.laws.common.util.ImportUtil; import com.jero.modules.laws.common.constant.FieldCommon; import com.jero.modules.laws.common.constant.ResultCommon; @@ -23,6 +24,7 @@ import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspectContent; import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService; import com.jero.modules.laws.enterprise.service.EnterpriseStandardInspectContentService; import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; +import com.jero.modules.laws.enterprise.util.WaterMarkUtil; import com.jero.modules.laws.standard.entity.LawsNodeRelation; import com.jero.modules.laws.standard.entity.LawsTreeNode; import com.jero.modules.laws.standard.service.*; @@ -120,6 +122,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService { private ILawsCommonService commonService; @Resource private EnterpriseStandardAuthUserService esAuthUserService; + @Resource + private WaterMarkUtil waterMarkUtil; /** * @Author: liao @@ -1190,7 +1194,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService { ZipEntry fileEntry = new ZipEntry(file.getFileRelativePath()); zipOut.putNextEntry(fileEntry); // 将文件取出存入流中 - bytes = ossFileService.getMinioFileContent(file); + bytes = this.getMinioFileContent(file); zipOut.write(bytes, 0, bytes.length); zipOut.closeEntry(); } @@ -1887,4 +1891,47 @@ public class LawsCommonServiceImpl implements ILawsCommonService { } } + @Override + public byte[] getMinioFileContent(OSSFile file) throws Exception { + String fileUrl = file.getUrl(); + String fileName = file.getFileName(); + String minioUrl = MinioUtil.getMinioUrl(); + minioUrl = minioUrl + MinioUtil.getBucketName() + "/"; + String url = fileUrl.replace(minioUrl, ""); + + try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { + byte[] buf = new byte[1024]; + int len; + if ("pdf".equalsIgnoreCase(FileUtil.extName(fileName))) { + // 如果是PDF文件, 添加水印 + try (InputStream originalInputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url); + InputStream watermarkedInputStream = waterMarkUtil.addWatermarkToPdf(originalInputStream)) { + + if (originalInputStream == null) { + return null; + } + while ((len = watermarkedInputStream.read(buf)) > 0) { + outputStream.write(buf, 0, len); + } + } catch (Exception e) { + log.error(e.getMessage()); + throw e; + } + } else { + // 如果不是PDF文件 + try (InputStream inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url)) { + if (inputStream == null) { + return null; + } + while ((len = inputStream.read(buf)) > 0) { + outputStream.write(buf, 0, len); + } + } catch (Exception e) { + log.error(e.getMessage()); + throw e; + } + } + return outputStream.toByteArray(); + } + } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardDeclareServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardDeclareServiceImpl.java index 6444a592..5db373e4 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardDeclareServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardDeclareServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.exception.JeroBootException; import com.jero.common.util.MessageUtils; import com.jero.modules.laws.common.constant.ResultCommon; +import com.jero.modules.laws.common.service.ILawsCommonService; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardDeclare; import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO; import com.jero.modules.laws.enterprise.entity.dto.EnterpriseStandardDeclareExPortDto; @@ -49,6 +50,9 @@ public class EnterpriseStandardDeclareServiceImpl extends ServiceImpl queryPageList(ESQueryCommonDTO esDeclare, Integer pageNo, Integer pageSize) { IPage page = new Page<>(pageNo, pageSize); @@ -133,7 +137,7 @@ public class EnterpriseStandardDeclareServiceImpl extends ServiceImpl