Commit 3b97cf3f authored by 雍欢's avatar 雍欢

CommonController - 添加文件输出拦截器

parent 7d579520
......@@ -6,7 +6,7 @@
<parent>
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
</parent>
<artifactId>huigou-common</artifactId>
<name>huigou-common</name>
......
......@@ -6,7 +6,7 @@
<parent>
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
</parent>
<artifactId>huigou-core-api</artifactId>
<name>huigou-core-api</name>
......
......@@ -6,7 +6,7 @@
<parent>
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
</parent>
<artifactId>huigou-core-impl</artifactId>
......
......@@ -6,7 +6,7 @@
<parent>
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
</parent>
<artifactId>huigou-core-proxy</artifactId>
......
......@@ -6,7 +6,7 @@
<parent>
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
</parent>
<artifactId>huigou-data</artifactId>
<name>huigou-data</name>
......
......@@ -5,7 +5,7 @@
<parent>
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
</parent>
<artifactId>huigou-loader</artifactId>
......
......@@ -5,7 +5,7 @@
<parent>
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
</parent>
<artifactId>huigou-system-common</artifactId>
......
......@@ -4,7 +4,7 @@
<parent>
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
</parent>
<artifactId>huigou-uasp</artifactId>
......
......@@ -24,6 +24,7 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import com.huigou.cache.SystemCache;
......@@ -76,6 +77,8 @@ public class CommonController extends ControllerBase {
protected final static String BIZ_CODE_KEY_NAME = "bizCode";
protected final static String DATA_KEY_NAME = Constants.DATA;
@Autowired(required = false)
private OutputFileInterceptor outputFileInterceptor;
protected enum Status {
SUCCESS, SUCCESS_TIPS, ERROR, ERROR_DIALOG;
......@@ -206,8 +209,7 @@ public class CommonController extends ControllerBase {
* 跳转到页面,无需配置struts的result
*
* @param page
* @param obj
* Map SDO POJO
* @param obj Map SDO POJO
* @return String
*/
@SuppressWarnings("unchecked")
......@@ -446,6 +448,7 @@ public class CommonController extends ControllerBase {
*
* @return String
* @author
* @see OutputFileInterceptor
*/
protected String outputFile(File file, String type) throws Exception {
HttpServletResponse res = this.getResponse();
......@@ -458,6 +461,9 @@ public class CommonController extends ControllerBase {
try {
out = res.getOutputStream();
bis = new BufferedInputStream(new FileInputStream(file));
if (outputFileInterceptor != null) {
bis = new BufferedInputStream(outputFileInterceptor.intercept(bis, type, this));
}
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
......@@ -504,12 +510,9 @@ public class CommonController extends ControllerBase {
/**
* Freemarker模板生成PDF显示在网页上(包含审批流程)
*
* @param template
* Freemarker 模板
* @param bizId
* 业务单据ID
* @param variables
* 参数
* @param template Freemarker 模板
* @param bizId 业务单据ID
* @param variables 参数
* @return
*/
public String outputAndProcUnitHandlerPDF(String template, String bizId, Map<String, Object> variables) {
......
package com.huigou.uasp.client;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
/**
* 文件输出拦截器。
*
* @author yonghuan
* @see CommonController#outputFile(File, String)
* @since 1.1.1
*/
public interface OutputFileInterceptor {
/**
* 对文件输出进行拦截处理。
*
* @param is 文件内容
* @param type 文件类型
* @param target 被拦截的对象
* @return 拦截处理结果
* @throws IOException
*/
InputStream intercept(InputStream is, String type, Object target) throws IOException;
}
package com.huigou.uasp.client;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
import java.util.List;
/**
* @author yonghuan
* @since 1.1.1
*/
public class OutputFileInterceptorComposite implements OutputFileInterceptor {
private List<OutputFileInterceptor> delegationInterceptors;
public OutputFileInterceptorComposite(List<OutputFileInterceptor> delegationInterceptors) {
this.delegationInterceptors = Collections.unmodifiableList(delegationInterceptors);
}
@Override
public InputStream intercept(InputStream is, String type, Object target) throws IOException {
for (OutputFileInterceptor interceptor : delegationInterceptors) {
is = interceptor.intercept(is, type, target);
}
return is;
}
}
......@@ -4,7 +4,7 @@
<parent>
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
</parent>
<artifactId>huigou-xt</artifactId>
<name>统一应用支撑平台</name>
......
......@@ -6,7 +6,7 @@
<groupId>com.huigou</groupId>
<artifactId>root</artifactId>
<version>1.1.0</version>
<version>1.1.1</version>
<packaging>pom</packaging>
......@@ -159,7 +159,7 @@
<!-- test -->
<junit.version>4.9</junit.version>
<spring-data-mongodb.version>1.9.3.RELEASE</spring-data-mongodb.version>
<huigou.uasp.version>1.1.0</huigou.uasp.version>
<huigou.uasp.version>1.1.1</huigou.uasp.version>
</properties>
<dependencyManagement>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment