update 企业端 会议资料下载和分标委-资料下载 pdf加水印

This commit is contained in:
lijiarao
2024-09-14 11:51:39 +08:00
parent e9e98f4aa6
commit 506d6a53dd
2 changed files with 25 additions and 12 deletions
@@ -1,15 +1,14 @@
package com.jero.data.controller;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.*;
import java.util.*;
import javax.activation.MimetypesFileTypeMap;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import cn.hutool.core.io.FileUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -31,6 +30,7 @@ import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.SysWaterMarkUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -76,7 +76,8 @@ public class PayCaseCommitteeController extends JeroController<PayCaseCommittee,
@Resource
private IPayMeetingService payMeetingService;
@Resource
private SysWaterMarkUtil sysWaterMarkUtil;
/**
* 分标委表-企业端分页列表查询
*
@@ -118,7 +119,7 @@ public class PayCaseCommitteeController extends JeroController<PayCaseCommittee,
@ApiOperation(value="分标委表-企业端资料下载", notes="分标委表-企业端资料下载")
@GetMapping(value = "download")
public void download(
@RequestParam(name = "fileId",required = true) String fileId
@RequestParam(name = "fileId",required = true) String fileId, HttpServletRequest request
) throws IOException {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletResponse response = requestAttributes.getResponse();
@@ -135,17 +136,22 @@ public class PayCaseCommitteeController extends JeroController<PayCaseCommittee,
String hehe = new String(fileName.getBytes("utf-8"), "iso-8859-1");
// 设置扩展头,当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。
response.setHeader("Content-Disposition", "attachment;filename=" + hehe);
download(url, response);
download(url, response,request);
}
public void download(String url, HttpServletResponse res) throws IOException {
public void download(String url, HttpServletResponse res, HttpServletRequest request) throws IOException {
// 发送给客户端的数据
OutputStream outputStream = res.getOutputStream();
byte[] buff = new byte[1024];
BufferedInputStream bis = null;
// 读取filename
bis = new BufferedInputStream(new FileInputStream(new File(upLoadPath+File.separator+url)));
InputStream fileInputStream = new BufferedInputStream(new FileInputStream(upLoadPath + File.separator + url));
//pdf加水印
if ("pdf".equalsIgnoreCase(FileUtil.extName(url))) {
fileInputStream = sysWaterMarkUtil.addWatermarkToPdf(fileInputStream, request);
}
bis = new BufferedInputStream(fileInputStream);
int i = bis.read(buff);
while (i != -1) {
outputStream.write(buff, 0, buff.length);
@@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.CommonConstant;
@@ -41,6 +42,7 @@ import com.jero.meeting.vo.UploadFileVO;
import com.jero.meeting.vo.excel.*;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.util.SysWaterMarkUtil;
import com.jero.modules.system.volid.group.UpdateGroup;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.service.IPayWorkingGroupService;
@@ -112,6 +114,8 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
private PayMeetingGuestsFileMapper meetingGuestsFileMapper;
@Resource
private PayMeetingStandardProjectService meetingStandardProjectService;
@Resource
private SysWaterMarkUtil sysWaterMarkUtil;
/**
* 分页列表查询
@@ -518,7 +522,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
*/
@ApiOperation(value = "企业端会议下载资料", notes = "企业端会议下载资料")
@GetMapping(value = "/userDownload/{id}/{meetingId}")
public void download(@PathVariable String id, @PathVariable String meetingId, HttpServletResponse response, String type) {
public void download(@PathVariable String id, @PathVariable String meetingId, HttpServletResponse response, HttpServletRequest request, String type) {
LoginUser sysUser =(LoginUser) SecurityUtils.getSubject().getPrincipal();
String sysUserId = sysUser.getId();
PayMeeting payMeeting = payMeetingService.getById(meetingId);
@@ -621,7 +625,10 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
fileName = ossFile.getFileName();
inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url);
}
//pdf加水印
if ("pdf".equalsIgnoreCase(FileUtil.extName(fileName))) {
inputStream = sysWaterMarkUtil.addWatermarkToPdf(inputStream, request);
}
ossFileService.updateById(ossFile);
//LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//if (loginUser.getIsCompanyUser()) {