Commit 46c2833f by 墨竹

feat:拦截器修改

parent a96f6e31
......@@ -49,6 +49,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.*;
import java.util.stream.Collectors;
......@@ -174,7 +175,7 @@ public class WxEnterpriseInfoController extends WebBaseController {
*/
@RequestMapping(value = "welldone-login", method = RequestMethod.POST)
@IgnoreLogin
public HaobanResponse welldoneLogin(@RequestBody StaffLoginQO staffLoginQO, HttpServletRequest request) {
public HaobanResponse welldoneLogin(@RequestBody @Valid StaffLoginQO staffLoginQO, HttpServletRequest request) {
StaffDTO staffDTO = staffApiService.selectById(staffLoginQO.getStaffId());
if (staffDTO == null) {
return resultResponse(HaoBanErrCode.ERR_6);
......
package com.gic.haoban.manage.web.exception;
import com.gic.haoban.base.api.common.ShowFrontMessageException;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.web.controller.WebBaseController;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
......@@ -13,8 +16,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created 2018/7/24.
......@@ -23,44 +24,74 @@ import java.util.regex.Pattern;
*/
@ControllerAdvice
public class GlobalExceptionHandler extends WebBaseController {
private static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
private static final Pattern pattern = Pattern.compile("(.*: )(.*)(\\n.*)");
// @ResponseBody
// @ExceptionHandler(ShowFrontMessageException.class)
// public HaobanResponse ControllerException(HttpServletResponse response, ShowFrontMessageException ex) {
// HaobanResponse res = new HaobanResponse();
// res.setErrorCode(HaoBanErrCode.ERR_0.getCode());
// res.setMessage(ex.getMessage());
// return res;
// }
/**
* RuntimeException 类型异常告警
*
* @param response
* @param ex
* @return
*/
@ResponseBody
@ExceptionHandler(RuntimeException.class)
public HaobanResponse controllerException(HttpServletResponse response, RuntimeException ex) {
logger.error("Exception:{}", ex.getMessage(), ex);
HaoBanErrCode errCode = HaoBanErrCode.ERR_3;
StringBuilder sb = new StringBuilder();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (PrintWriter printWriter = new PrintWriter(baos)) {
ex.printStackTrace(printWriter);
}
try {
sb.append(baos.toString());
} catch (Exception ignored) {
}
if (sb.length() == 0) {
sb.append(ex.getMessage());
}
// 输出详细错误信息,便于调试
return resultResponse(errCode, null, sb.toString());
}
/**
* valid 异常告警
*
* @param response
* @param ex
* @return
*/
@ResponseBody
@ExceptionHandler(BindException.class)
public HaobanResponse bindException(HttpServletResponse response, BindException ex) {
logger.error("Exception:{}", ex.getMessage(), ex);
HaoBanErrCode errCode = HaoBanErrCode.ERR_5;
BindingResult bindingResult = ex.getBindingResult();
FieldError fieldError = bindingResult.getFieldError();
return resultResponse(errCode, null, fieldError.getField() + fieldError.getDefaultMessage());
}
// @ResponseBody
// @ExceptionHandler(RuntimeException.class)
// public HaobanResponse ControllerException(HttpServletResponse response, RuntimeException ex) {
// HaobanResponse res = new HaobanResponse();
// res.setErrorCode(HaoBanErrCode.ERR_3.getCode());
// String message = ex.getMessage();
// if (message != null && message.indexOf(ShowFrontMessageException.class.getName()) > -1) {
// Matcher matcher = pattern.matcher(message);
// while (matcher.find()) {
// message = (matcher.group(2));
// }
// } else {
// message = HaoBanErrCode.ERR_3.getMsg();
// }
// res.setMessage(message);
// return res;
// }
/**
* valid 异常告警 @ReuqestBody
*
* @param response
* @param ex
* @return
*/
@ResponseBody
@ExceptionHandler(MethodArgumentNotValidException.class)
public HaobanResponse methodArgumentNotValidException(HttpServletResponse response, MethodArgumentNotValidException ex) {
logger.error("Exception:{}", ex.getMessage(), ex);
HaoBanErrCode errCode = HaoBanErrCode.ERR_5;
BindingResult bindingResult = ex.getBindingResult();
FieldError fieldError = bindingResult.getFieldError();
return resultResponse(errCode, null, fieldError.getField() + fieldError.getDefaultMessage());
}
@ResponseBody
@ExceptionHandler(Exception.class)
public HaobanResponse ControllerException(HttpServletResponse response, Exception ex) {
logger.error("err:", ex.getMessage());
ex.printStackTrace();
public HaobanResponse globalException(HttpServletResponse response, Exception ex) {
logger.error("Exception:{}", ex.getMessage(), ex);
HaoBanErrCode errCode = HaoBanErrCode.ERR_3;
StringBuilder sb = new StringBuilder();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
......@@ -74,17 +105,9 @@ public class GlobalExceptionHandler extends WebBaseController {
if (sb.length() == 0) {
sb.append(ex.getMessage());
}
// 输出详细错误信息,便于调试
// return resultResponse(errCode, null, sb.toString());
return resultResponse(HaoBanErrCode.ERR_3);
return resultResponse(errCode, null, sb.toString());
}
@ResponseBody
@ExceptionHandler(NoLoginException.class)
public HaobanResponse ControllerException(HttpServletResponse response, NoLoginException ex) {
return resultResponse(HaoBanErrCode.ERR_4);
}
}
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