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