From 724f785c969715b2481326ba7605d712ceccf790 Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期三, 07 九月 2022 11:10:46 +0800
Subject: [PATCH] 软件下载

---
 src/main/java/com/whyc/service/SoftwareService.java |   52 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 49 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/whyc/service/SoftwareService.java b/src/main/java/com/whyc/service/SoftwareService.java
index 12488cb..a5c227c 100644
--- a/src/main/java/com/whyc/service/SoftwareService.java
+++ b/src/main/java/com/whyc/service/SoftwareService.java
@@ -2,9 +2,14 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.pagehelper.PageHelper;
+import com.whyc.constant.UserOperation;
+import com.whyc.dto.FileDirPath;
 import com.whyc.dto.Response;
 import com.whyc.mapper.SoftwareMapper;
+import com.whyc.pojo.DocUser;
+import com.whyc.pojo.ProductSoftware;
 import com.whyc.pojo.Software;
+import com.whyc.util.ActionUtil;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -13,8 +18,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.IOException;
-import java.io.InputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.URLEncoder;
 import java.text.ParseException;
 import java.util.Date;
 import java.util.LinkedList;
@@ -23,8 +30,11 @@
 
 @Service
 public class SoftwareService {
-    @Autowired
+    @Autowired(required = false)
     private SoftwareMapper mapper;
+
+    @Autowired
+    private DocLogService logService;
 
     public List<Software> excelParse(InputStream inputStream) throws IOException, InvalidFormatException, ParseException {
         List<Software> softwareList = new LinkedList<>();
@@ -95,4 +105,40 @@
         List list=mapper.selectList(wrapper);
         return new Response().setII(1,list.size()>0,list,"杞欢淇℃伅杩斿洖");
     }
+
+    
+    //鏍规嵁杞欢鍚嶇О瀹炵幇杞欢涓嬭浇
+    public void downLoadSoftware(HttpServletRequest req, HttpServletResponse resp, int id) {
+        String fileDirName = FileDirPath.getFileDirName();
+        QueryWrapper wrapper=new QueryWrapper();
+        wrapper.eq("id",id);
+        wrapper.last("limit 1");
+        Software software=mapper.selectOne(wrapper);
+        try {
+            // 杞爜闃叉涔辩爜
+            //resp.addHeader("Content-Disposition", "attachment;filename=" + new String(softwareName.getBytes("UTF-8"), "ISO8859-1"));
+            resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode ( software.getFileName(), "utf-8"));
+            OutputStream out = resp.getOutputStream();
+            FileInputStream in = new FileInputStream(fileDirName+File.separator+software.getFileUrl());
+            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="鍏蜂綋杞欢鍚嶇О涓�:"+software.getFileName();
+        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