改进前置下载对账文件接口,采用 streamingresponsebody 返回
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
index 1556941..ba8b092 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
@@ -1,9 +1,9 @@
package com.supwisdom.dlpay.framework.util;
+
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.commons.beanutils.BeanUtils;
public class StringUtil {
/**
@@ -132,39 +132,40 @@
}*/
return true;
}
+
/**
* 手机号遮掩中间4位
- * */
- public static String phoneReplace(String phone){
+ */
+ public static String phoneReplace(String phone) {
return phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
}
/**
* 邮箱只显示@前面的首位和末位
- * */
- public static String emailReplace(String s){
- return s.replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?)", "$1****$3$4");
+ */
+ public static String emailReplace(String s) {
+ return s.replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?)", "$1****$3$4");
}
/**
* 名字显示姓
- * */
- public static String nameReplace(String s){
- return s.replaceAll("([\\d\\D]{1})(.*)", "$1**");
+ */
+ public static String nameReplace(String s) {
+ return s.replaceAll("([\\d\\D]{1})(.*)", "$1**");
}
- public static String urlAppend(String url ,String path){
- if(url.endsWith("/")){
- if(path.startsWith("/")){
- return url+path.substring(1);
+ public static String urlAppend(String url, String path) {
+ if (url.endsWith("/")) {
+ if (path.startsWith("/")) {
+ return url + path.substring(1);
}
- return url+path;
- }else{
- if(path.startsWith("/")){
- return url+path;
+ return url + path;
+ } else {
+ if (path.startsWith("/")) {
+ return url + path;
}
- return url+"/"+path;
+ return url + "/" + path;
}
}
@@ -176,7 +177,6 @@
for (int i = 0; i < fields.size(); i++) {
data.put(fields.get(i), columns.get(i));
}
- BeanUtils.populate(bean, data);
- return;
+ org.apache.commons.beanutils.BeanUtils.populate(bean, data);
}
}
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
index 2b788c2..30fbcca 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
@@ -16,9 +16,13 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;
import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotNull;
import javax.ws.rs.FormParam;
import java.io.*;
import java.lang.reflect.InvocationTargetException;
@@ -500,14 +504,17 @@
}
@GetMapping("/download")
- public void downloadFile(@RequestParam("filename") String filename, HttpServletResponse response) throws IOException {
- try {
- String loaclfile = ynrccApiService.getChkfilePath(filename);
- parseFile(loaclfile, response.getOutputStream());
- } catch (Exception e) {
- e.printStackTrace();
- response.sendError(HttpStatus.SERVICE_UNAVAILABLE.value(), e.getMessage());
- }
+ public ResponseEntity<StreamingResponseBody> downloadFile(@RequestParam("filename") String filename,
+ HttpServletResponse response) throws Exception {
+ response.setContentType(MediaType.TEXT_PLAIN_VALUE);
+ String loaclfile = ynrccApiService.getChkfilePath(filename);
+// parseFile(loaclfile, response.getOutputStream());
+ StreamingResponseBody stream = new StreamingResponseBody() {
+ @Override
+ public void writeTo(OutputStream outputStream) throws IOException {
+ parseFile(loaclfile, outputStream);
+ }
+ };
+ return new ResponseEntity(stream, HttpStatus.OK);
}
-
}