package com.nanometer.smartlab.api;
|
|
import com.alibaba.fastjson.JSON;
|
import com.nanometer.smartlab.exception.BusinessException;
|
import com.nanometer.smartlab.exception.ExceptionEnumCode;
|
import com.nanometer.smartlab.model.ResponseModel;
|
import com.nanometer.smartlab.util.Constants;
|
import com.nanometer.smartlab.util.MessageUtil;
|
import org.apache.commons.lang.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.io.Serializable;
|
|
/**
|
* Created by johnny on 16/7/20.
|
*/
|
public abstract class BaseAction implements Serializable {
|
private final static Logger logger = LoggerFactory.getLogger(BaseAction.class);
|
|
/** 基于@ExceptionHandler异常处理 */
|
@ExceptionHandler
|
public Object exp(HttpServletRequest request, Exception e) {
|
if(e instanceof IllegalArgumentException){
|
logger.error("error occured.", e);
|
return ResponseModel.getParamInstence(e.getMessage());
|
}else if (e instanceof RuntimeException){
|
logger.error("error occured.", e);
|
return ResponseModel.getErrInstance();
|
}else if (e instanceof Throwable) {
|
logger.error("error occured.", e);
|
return ResponseModel.getErrInstance();
|
} else {
|
logger.error("error occured.", e);
|
return ResponseModel.getErrInstance();
|
}
|
|
}
|
|
public String getResponseString(ResponseModel responseModel) {
|
if (responseModel == null) {
|
responseModel = new ResponseModel<String>();
|
responseModel.setCode(ExceptionEnumCode.OK.getCode());
|
responseModel.setMessage(MessageUtil.getMessageByCode(responseModel.getCode()));
|
}
|
|
return JSON.toJSONString(responseModel);
|
}
|
|
public String getResponseString(String code, String errMessage) {
|
ResponseModel responseModel = new ResponseModel<String>();
|
responseModel.setCode(code);
|
responseModel.setMessage(errMessage);
|
return this.getResponseString(responseModel);
|
}
|
|
public String getResponseString(String code) {
|
String errMessage = MessageUtil.getMessageByCode(code);
|
return this.getResponseString(code, errMessage);
|
}
|
|
public String getOkResponseString() {
|
return this.getResponseString(ExceptionEnumCode.OK.getCode());
|
}
|
|
public String getSysErrResponseString() {
|
return this.getResponseString(ExceptionEnumCode.SYS_ERR.getCode());
|
}
|
|
private String getHeader(HttpServletRequest request, String key) {
|
if (request == null || StringUtils.isBlank(key)) {
|
return null;
|
}
|
|
return request.getHeader(key);
|
}
|
|
public String getIdCardFromHeader(HttpServletRequest request) {
|
return this.getHeader(request, Constants.HEADER_KEY_ID_CARD);
|
}
|
}
|