zhanghua
2022-10-13 c4d861d166f64a295d0a1acb692af8fe9a721b50
统一异常处理
2个文件已修改
1个文件已添加
52 ■■■■■ 已修改文件
ycl-common/src/main/java/com/ycl/config/ExceptionConfiguration.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/entity/user/UmsRole.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/config/ExceptionConfiguration.java
New file
@@ -0,0 +1,48 @@
package com.ycl.config;
import com.ycl.api.CommonResult;
import com.ycl.enums.common.ResultCode;
import com.ycl.exception.ApiException;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@Configuration
@ControllerAdvice(annotations = {RestController.class, Controller.class})
@ResponseBody
public class ExceptionConfiguration {
    // 捕获自定义异常数据
    @ExceptionHandler(value = ApiException.class)
    public CommonResult HandlePubException(ApiException pubExceptions) {
        System.out.println(String.format("错误:%d: %s",
                pubExceptions.getErrorCode().getCode(),
                pubExceptions.getErrorCode().getMessage()));
        return CommonResult.failed(pubExceptions.getErrorCode());
    }
    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public CommonResult HandleParamsException(HttpServletRequest request, MethodArgumentNotValidException exception) {
        StringBuffer buffer = new StringBuffer();
        for (FieldError error : exception.getBindingResult().getFieldErrors()) {
            buffer.append(String.format("参数:%s,值为:%s, 原因:%s。", error.getField(), error.getRejectedValue(), error.getDefaultMessage()));
        }
        return CommonResult.failed(ResultCode.VALIDATE_FAILED, buffer.toString());
    }
    // 捕获其他异常
    @ExceptionHandler// 直接返回500
    public CommonResult HandleAllException(Exception exception) {
        exception.printStackTrace();
        // todo 记录日志
        return CommonResult.failed(ResultCode.FAILED, "系统错误");
    }
}
ycl-common/src/main/java/com/ycl/entity/user/UmsRole.java
@@ -36,7 +36,7 @@
    private String name;
    @ApiModelProperty(value = "角色类型")
    private String type;
    private Long type;
    @ApiModelProperty(value = "描述")
    private String description;
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java
@@ -168,7 +168,7 @@
                    List<AdminDepartDTO.UserInfoDTO> userInfoDTOS = umsAdminDeparts.stream().map(a -> {
                        AdminDepartDTO.UserInfoDTO userInfoDTO = new AdminDepartDTO.UserInfoDTO();
                        userInfoDTO.setUserId(a.getUserId());
                        userInfoDTO.setUsername(umsAdminService.getById(a.getUserId()).getUsername());
//                        userInfoDTO.setUsername(umsAdminService.getById(a.getUserId()).getUsername());
                        return userInfoDTO;
                    }).collect(Collectors.toList());
                    record.setUserInfoDTOS(userInfoDTOS);