Browse Source

fix:
1.baseQuery

caozixuan 1 year ago
parent
commit
0e592c7e9c

+ 6 - 6
src/main/java/cn/com/qmth/print/manage/controller/ExamController.java

@@ -18,7 +18,9 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
+import java.io.InputStream;
 import java.util.Objects;
 
 /**
@@ -91,12 +93,10 @@ public class ExamController extends BaseController {
     }
 
     @RequestMapping(value = "/template", method = RequestMethod.POST)
-    public void getImportTemplate() {
-        String resourcePath = PathUtil.getResoucePath("importtemplates/examImportTemplate.xlsx");
-        if (Objects.isNull(resourcePath)) {
-            throw new StatusException("未找到模板路径");
-        }
-        exportFile("学校导入模板.xlsx", new File(resourcePath));
+    public void getImportTemplate(HttpServletResponse response) {
+        InputStream inputStream = PathUtil.getStream("importtemplates/examImportTemplate.xlsx");
+        // 导出
+        PathUtil.outputFile(response, inputStream, "考生导入模板.xlsx");
     }
 
     /**

+ 8 - 6
src/main/java/cn/com/qmth/print/manage/controller/ExamStudentController.java

@@ -16,7 +16,11 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @Date: 2021/11/16.
@@ -73,11 +77,9 @@ public class ExamStudentController extends BaseController {
     }
 
     @RequestMapping(value = "/template", method = RequestMethod.POST)
-    public void getImportTemplate() {
-        String resourcePath = PathUtil.getResoucePath("importtemplates/studentImportTemplate.xlsx");
-        if (Objects.isNull(resourcePath)) {
-            throw new StatusException("未找到模板路径");
-        }
-        exportFile("考生导入模板.xlsx", new File(resourcePath));
+    public void getImportTemplate(HttpServletResponse response) {
+        InputStream inputStream = PathUtil.getStream("importtemplates/studentImportTemplate.xlsx");
+        // 导出
+        PathUtil.outputFile(response, inputStream, "考生导入模板.xlsx");
     }
 }

+ 36 - 0
src/main/java/cn/com/qmth/print/manage/utils/PathUtil.java

@@ -1,9 +1,17 @@
 package cn.com.qmth.print.manage.utils;
 
+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URL;
 import java.net.URLDecoder;
+import java.net.URLEncoder;
 
 /**
  * 路径工具
@@ -12,6 +20,8 @@ import java.net.URLDecoder;
  */
 public class PathUtil {
 
+	private final static Logger log = LoggerFactory.getLogger(PathUtil.class);
+
 	/**
 	 * 获取标准路径
 	 *
@@ -136,6 +146,32 @@ public class PathUtil {
 		}
 	}
 
+	public static InputStream getStream(String path) {
+		try {
+			ClassLoader classLoader = PathUtil.class.getClassLoader();
+			URL url = classLoader.getResource(path);
+			return url.openStream();
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	public static void outputFile(HttpServletResponse response, InputStream inputStream, String fileName) {
+		try {
+			BufferedInputStream br = new BufferedInputStream(inputStream);
+			String fName = URLEncoder.encode(fileName, "UTF-8");
+
+			response.reset();
+			response.setContentType("application/x-msdownload");
+			response.setHeader("Content-Disposition", "attachment; filename=" + fName);
+			IOUtils.copy(br, response.getOutputStream());
+			br.close();
+//            outStream.close();
+		} catch (IOException e) {
+			log.error("请求出错:{}", e);
+		}
+	}
+
 	/**
 	 * 获取windows盘符
 	 *