diff --git a/hz-pm-api/src/main/java/com/hz/pm/api/common/handler/GlobalExceptionHandler.java b/hz-pm-api/src/main/java/com/hz/pm/api/common/handler/GlobalExceptionHandler.java index a40eedd..2be359b 100644 --- a/hz-pm-api/src/main/java/com/hz/pm/api/common/handler/GlobalExceptionHandler.java +++ b/hz-pm-api/src/main/java/com/hz/pm/api/common/handler/GlobalExceptionHandler.java @@ -2,9 +2,11 @@ package com.hz.pm.api.common.handler; import com.ningdatech.basic.enumeration.Status; import com.ningdatech.basic.model.ApiResponse; +import com.ningdatech.basic.util.CollUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.context.support.DefaultMessageSourceResolvable; import org.springframework.http.HttpStatus; +import org.springframework.security.access.AccessDeniedException; import org.springframework.validation.BindException; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; @@ -18,9 +20,12 @@ import javax.validation.ConstraintViolationException; import java.util.stream.Collectors; /** - * @description: 统一错误处理 - * @author: liuxinxin - * @date: 2023/01/03 11:39 + *

+ * GlobalExceptionHandler + *

+ * + * @author WendyYang + * @since 17:57 2024/6/6 */ @Slf4j @ControllerAdvice @@ -30,7 +35,6 @@ public class GlobalExceptionHandler { @ResponseBody @ExceptionHandler(value = NoHandlerFoundException.class) public ApiResponse noHandlerFoundException(NoHandlerFoundException e) { - log.error("【全局异常拦截】NoHandlerFoundException: 请求方法 {}, 请求路径 {}", e.getRequestURL(), e.getHttpMethod()); return ApiResponse.ofStatus(Status.REQUEST_NOT_FOUND); } @@ -39,24 +43,29 @@ public class GlobalExceptionHandler { public ApiResponse bindException(BindException e) { String msg = e.getAllErrors().stream() .map(DefaultMessageSourceResolvable::getDefaultMessage) - .collect(Collectors.joining(",")); - return ApiResponse.of(Status.BAD_REQUEST.getCode(), msg, null); + .collect(Collectors.joining(" ")); + return ApiResponse.of(Status.BAD_REQUEST.getCode(), msg); } @ResponseBody @ExceptionHandler(value = ConstraintViolationException.class) public ApiResponse constraintViolationException(ConstraintViolationException e) { - String msg = e.getConstraintViolations().stream() - .map(ConstraintViolation::getMessage) - .collect(Collectors.joining(",")); - return ApiResponse.of(Status.BAD_REQUEST.getCode(), msg, null); + String msg = CollUtils.join(e.getConstraintViolations(), ConstraintViolation::getMessage, " "); + return ApiResponse.of(Status.BAD_REQUEST.getCode(), msg); + } + + @ResponseBody + @ExceptionHandler(value = AccessDeniedException.class) + public ApiResponse accessDeniedException(AccessDeniedException e) { + log.error("异常信息: {} ", e.getMessage(), e); + return ApiResponse.of(Status.BAD_REQUEST.getCode(), "暂无操作权限"); } @ResponseBody @ExceptionHandler(value = Exception.class) public ApiResponse handlerException(Exception e) { - log.error("【全局异常拦截】: 异常信息 {}: {} ", e.getClass().getSimpleName(), e); - return ApiResponse.of(Status.BAD_REQUEST.getCode(), e.getMessage(), null); + log.error("异常信息: {} ", e.getMessage(), e); + return ApiResponse.of(Status.BAD_REQUEST.getCode(), "系统异常,请联系管理员"); } }