|
@@ -1,7 +1,11 @@
|
|
|
package com.llisoft.sms.config;
|
|
|
|
|
|
+import java.nio.file.AccessDeniedException;
|
|
|
+
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.http.converter.HttpMessageNotReadableException;
|
|
|
import org.springframework.web.bind.MethodArgumentNotValidException;
|
|
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
|
@@ -10,7 +14,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
|
|
import com.llisoft.common.constant.CodeEnum;
|
|
|
import com.llisoft.common.exception.MtaException;
|
|
|
+import com.llisoft.common.vo.MailSendVo;
|
|
|
import com.llisoft.common.vo.ResponseVo;
|
|
|
+import com.llisoft.sms.service.MailService;
|
|
|
|
|
|
/**
|
|
|
* 统一处理业务异常 controller
|
|
@@ -21,6 +27,12 @@ public class ExceptionConfig {
|
|
|
|
|
|
private Logger logger = LoggerFactory.getLogger(ExceptionConfig.class);
|
|
|
|
|
|
+ @Value("${spring.application.name}")
|
|
|
+ private String application;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MailService mailService;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 入参空
|
|
@@ -29,7 +41,7 @@ public class ExceptionConfig {
|
|
|
*/
|
|
|
@ExceptionHandler(HttpMessageNotReadableException.class)
|
|
|
public @ResponseBody ResponseVo<String> exception(HttpMessageNotReadableException exception){
|
|
|
- logger.warn("入参异常", exception.getMessage());
|
|
|
+ logger.warn("入参异常: {}", exception.getMessage());
|
|
|
return ResponseVo.build(CodeEnum.C400);
|
|
|
}
|
|
|
|
|
@@ -40,18 +52,29 @@ public class ExceptionConfig {
|
|
|
*/
|
|
|
@ExceptionHandler(MethodArgumentNotValidException.class)
|
|
|
public @ResponseBody ResponseVo<String> exception(MethodArgumentNotValidException exception){
|
|
|
- logger.warn("入参异常", exception.getMessage());
|
|
|
+ logger.warn("入参异常: {}", exception.getMessage());
|
|
|
return ResponseVo.build(CodeEnum.C400.getCode(), exception.getBindingResult().getFieldError().getDefaultMessage());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 无权访问
|
|
|
+ * @param exception
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @ExceptionHandler(AccessDeniedException.class)
|
|
|
+ public @ResponseBody ResponseVo<String> exception(AccessDeniedException exception){
|
|
|
+ logger.warn("无权访问: {}", exception.getMessage());
|
|
|
+ return ResponseVo.build(CodeEnum.C403);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 业务异常
|
|
|
* @param exception
|
|
|
* @return
|
|
|
*/
|
|
|
@ExceptionHandler(MtaException.class)
|
|
|
public @ResponseBody ResponseVo<String> exception(MtaException exception){
|
|
|
- logger.warn("业务异常", exception.getMessage());
|
|
|
+ logger.warn("业务异常: {}", exception.getMessage());
|
|
|
return ResponseVo.build(CodeEnum.FAIL.getCode(), exception.getMessage());
|
|
|
}
|
|
|
|
|
@@ -63,6 +86,7 @@ public class ExceptionConfig {
|
|
|
@ExceptionHandler(Exception.class)
|
|
|
public @ResponseBody ResponseVo<String> exception(Exception exception){
|
|
|
logger.error("服务异常", exception);
|
|
|
+ mailService.sendMail("【" + application + "】服务异常", MailSendVo.exception(exception));
|
|
|
return ResponseVo.build(CodeEnum.C500);
|
|
|
}
|
|
|
|