From 1b0ea936d937b055cf0e9002968faef186ea3a5b Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期三, 17 八月 2022 10:42:13 +0800 Subject: [PATCH] 软件下载 --- src/main/java/com/whyc/service/ProductSoftwareService.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 48 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/whyc/service/ProductSoftwareService.java b/src/main/java/com/whyc/service/ProductSoftwareService.java index 784d972..05fec65 100644 --- a/src/main/java/com/whyc/service/ProductSoftwareService.java +++ b/src/main/java/com/whyc/service/ProductSoftwareService.java @@ -3,11 +3,23 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.whyc.constant.UserOperation; import com.whyc.dto.Response; +import com.whyc.dto.ZipUtils; import com.whyc.mapper.ProductSoftwareMapper; +import com.whyc.pojo.DocUser; +import com.whyc.pojo.ProductSoftware; +import com.whyc.util.ActionUtil; +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.util.Date; import java.util.List; @Service @@ -15,6 +27,9 @@ @Autowired(required = false) private ProductSoftwareMapper mapper; + + @Autowired + private DocLogService logService; //鏌ヨ杞欢鐨勪俊鎭� public Response getAllSoftware(String parentModel, String softwareName,int pageCurr,int pageSize) { PageHelper.startPage(pageCurr,pageSize); @@ -30,4 +45,37 @@ PageInfo pageInfo=new PageInfo(list); return new Response().setII(1,list.size()>0?true:false,pageInfo,"杩斿洖鏁版嵁"); } + //鏍规嵁杞欢鍚嶇О瀹炵幇杞欢涓嬭浇 + public void downLoadSoftware(HttpServletRequest req, HttpServletResponse resp, String softwareName) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("software_name",softwareName); + wrapper.last("limit 1"); + ProductSoftware software=mapper.selectOne(wrapper); + try { + // 杞爜闃叉涔辩爜 + resp.addHeader("Content-Disposition", "attachment;filename=" + + new String(softwareName.getBytes("UTF-8"), "ISO8859-1") + + ".zip"); + OutputStream out = resp.getOutputStream(); + FileInputStream in = new FileInputStream(software.getSoftwareUrl()); + int len=0; + byte[] buffer =new byte[1024]; + //7. 灏嗙紦鍐插尯涓殑鏁版嵁杈撳嚭 + while ((len=in.read(buffer))>0){ + out.write(buffer,0,len); + } + in.close(); + out.close(); + } catch (FileNotFoundException | UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + //璁板綍鏃ュ織 + DocUser docUser= ActionUtil.getUser(); + String operationDetail="鍏蜂綋杞欢鍚嶇О涓�:"+softwareName; + String opreationMsg="鎵ц浜嗚蒋浠朵笅杞芥搷浣�"; + String terminalIp=req.getRemoteAddr(); + logService.recordOperationLog(docUser.getId(),docUser.getName(), UserOperation.TYPE_DOWNLOAD.getType(),new Date(),terminalIp,opreationMsg,operationDetail); + } } -- Gitblit v1.9.1