Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.dahua.eco.base.spring.web.BaseController Maven / Gradle / Ivy
package com.dahua.eco.base.spring.web;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.dahua.eco.base.core.code.IErrorCode;
import com.dahua.eco.base.core.common.result.RestResult;
import com.dahua.eco.base.core.constant.EncodingType;
import com.dahua.eco.base.core.exception.custom.ValidException;
import com.github.pagehelper.Page;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.*;
import java.util.List;
public class BaseController {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
protected ApplicationContext applicationContext;
/**
* 从response中获取io对象
*
* @param response
* @return
*/
protected PrintWriter getWriter(HttpServletResponse response) {
if (response == null)
return null;
PrintWriter writer = null;
try{
writer = response.getWriter();
}catch(Exception e){
logger.error("io exception", e);
}
return writer;
}
/**
* 从请求参数中获取mybatis plus分页对象
*
* @param jsonObject
* @return
*/
protected Page getPage(JSONObject jsonObject) {
Page page = new Page<>();
Integer pageSize = jsonObject.getInteger("pageSize");
Integer pageNum = jsonObject.getInteger("pageNum");
if (pageSize != null) {
page.setPages(jsonObject.getInteger("pageSize"));
}
if (pageNum != null) {
page.setPageNum(jsonObject.getInteger("pageNum"));
}
return page;
}
/**
* send the string message back
*
* @param returnResult
* @param response
*/
protected void writeAjaxResponse(String returnResult,HttpServletResponse response){
PrintWriter writer = getWriter(response);
if(writer==null || returnResult==null){
return;
}
try {
writer.write(returnResult);
} finally{
writer.flush();
writer.close();
}
}
/**
* send the ajax response back to the client side.
*
* @param responseObj
* @param writer
*/
protected void writeAjaxJSONResponse(Object responseObj,PrintWriter writer) {
if(writer==null || responseObj==null) {
return;
}
try {
SerializerFeature[] serializerFeatures = { SerializerFeature.DisableCircularReferenceDetect };
writer.write(JSON.toJSONString(responseObj, serializerFeatures));
} finally{
writer.flush();
writer.close();
}
}
/**
* 输出所有参数,包括值为null的
* @param responseObj
* @param writer
*/
protected void writeAllParamAjaxJSONResponse(Object responseObj,PrintWriter writer){
if(writer==null || responseObj==null){
return;
}
try {
SerializerFeature[] serializerFeatures = {SerializerFeature.WriteMapNullValue};
writer.write(JSON.toJSONString(responseObj, serializerFeatures));
} finally{
writer.flush();
writer.close();
}
}
/**
* send the ajax response back to the client side. DisableCircularReferenceDetect true or false
*
* @param responseObj
* @param cirReferDetect
*/
protected void writeAjaxJSONResponse(Object responseObj ,HttpServletResponse response , boolean cirReferDetect){
PrintWriter writer = getWriter(response);
if(writer==null || responseObj==null){
return;
}
try {
if(!cirReferDetect){
writeAjaxJSONResponse(responseObj , writer) ;
return;
}
writer.write(JSON.toJSONString(responseObj));
} finally{
if(writer!=null){
writer.flush();
writer.close();
}
}
}
/**
* send the ajax response back to the client side (Date object
* will be formatted as per the given dateFormat
).
*
* @param responseObj
* @param writer
* @param dateFormat
*/
protected void writeAjaxJSONResponseWithDateFormat(Object responseObj,PrintWriter writer,String dateFormat) {
if (writer==null || responseObj==null || dateFormat == null) {
return;
}
try {
writer.write(JSON.toJSONStringWithDateFormat(responseObj, dateFormat,SerializerFeature.DisableCircularReferenceDetect));
} finally{
writer.flush();
writer.close();
}
}
/**
* description:send the ajax response back to the client side.
*
* @param responseObj
* @param response
*/
protected void writeAjaxJSONResponse(Object responseObj, HttpServletResponse response) {
response.setCharacterEncoding(EncodingType.ENCODING_UTF_8);
response.setHeader("Content-Type", "application/json");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setDateHeader("Expires", 0); // Proxies.
PrintWriter writer = getWriter(response);
writeAjaxJSONResponse(responseObj, writer);
}
protected void writeAjaxJSONResponse(Object responseObj,boolean containNull,HttpServletResponse response) {
response.setCharacterEncoding(EncodingType.ENCODING_UTF_8);
response.setHeader("Content-Type", "application/json");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setDateHeader("Expires", 0); // Proxies.
PrintWriter writer = getWriter(response);
if (containNull){
writeAllParamAjaxJSONResponse(responseObj, writer);
} else {
writeAjaxJSONResponse(responseObj, writer);
}
}
protected void writeAjaxJSONErrorResponse(Object responseObj, HttpServletResponse response) {
response.setCharacterEncoding(EncodingType.ENCODING_UTF_8);
response.setHeader("Content-Type", "application/json");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setDateHeader("Expires", 0); // Proxies.
PrintWriter writer = getWriter(response);
writeAllParamAjaxJSONResponse(responseObj, writer);
}
protected void writeJSONResponseForUpload(Object responseObj,HttpServletResponse response) {
response.setContentType("text/html;charset=UTF-8");
PrintWriter writer = getWriter(response);
writeAjaxJSONResponse(responseObj, writer);
}
/**
* send the ajax response back to the client side (Date object
* will be formatted as per the given dateFormat
).
*
* @param responseObj
* @param response
* @param dateFormat
*/
protected void writeAjaxJSONResponseWithDateFormat(Object responseObj,HttpServletResponse response,String dateFormat) {
response.setCharacterEncoding(EncodingType.ENCODING_UTF_8);
response.setHeader("Content-Type", "application/json");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setDateHeader("Expires", 0); // Proxies.
PrintWriter writer = getWriter(response);
if (dateFormat != null) {
writeAjaxJSONResponseWithDateFormat(responseObj, writer, dateFormat);
} else {
writeAjaxJSONResponse(responseObj, writer);
}
}
/**
* 下载错误信息
* @param fileName
* @param request
* @param response
* @throws IOException
*/
protected void exportError(String fileName, HttpServletRequest request, HttpServletResponse response) throws IOException {
InputStream in=null;
OutputStream out=null;
try{
response.setContentType("application/vnd.ms-excel;charset=gb2312");
response.setHeader("Content-disposition", "attachment; filename=" + fileName+ ".xlsx");
String path = request.getServletContext().getRealPath("");
path += fileName+".xlsx";
in = new FileInputStream(path);
out = response.getOutputStream();
int b;
while((b=in.read())!=-1)
out.write(b);
} finally {
if(in!=null){
in.close();
}if(out!=null){
out.close();
}
}
}
protected void validData(BindingResult result, HttpServletResponse response) throws ValidException{
if(result.hasErrors()){
List errorses=result.getAllErrors();
throw new ValidException(errorses.get(0).getDefaultMessage());
}
}
protected void closeOutputStream(OutputStream outputStream){
if(outputStream!=null){
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* get session
* @param request
* @return
*/
protected HttpSession getSession(HttpServletRequest request) {
return request.getSession();
}
/**
* 是否IE请求
* @param request
* @return
*/
protected boolean isIERequest(HttpServletRequest request) {
String userAgent ="";
try {
userAgent = request.getHeader("user-agent").toLowerCase();
} catch (Exception e) {}
if(!StringUtils.isEmpty(userAgent) && (userAgent.contains("msie")||userAgent.contains("like gecko"))) {//IE
return true;
}
return false;
}
protected void uploadBatchResponse(Object responseObj, boolean containNull, HttpServletResponse response) {
response.setHeader("Content-Type", "text/html;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
response.setDateHeader("Expires", 0); // Proxies.
PrintWriter writer = getWriter(response);
if(containNull){
writeAllParamAjaxJSONResponse(responseObj, writer);
}else{
writeAjaxJSONResponse(responseObj, writer);
}
}
/**
* 事件发布
* @param event
*/
protected void publishEvent(ApplicationEvent event){
applicationContext.publishEvent(event);
}
protected RestResult successResult(Object data){
RestResult result = RestResult.createSuccessfulResult(data);
return result;
}
protected RestResult successResult(String key, Object value){
RestResult result = new RestResult();
result.addJsonValue(key, value);
return result;
}
protected RestResult faultResult(IErrorCode code) {
RestResult result = RestResult.createFailedResult(code.getCode(), code.getI18nMessage());
return result;
}
}