错误状态码的封装

 

 

package com.msb.common.exception;

import com.msb.common.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import java.util.HashMap;

/**
 * @author lcc
 * @version V1.0
 * @Package com.msb.mall.mall_pms.exception
 * @date 2022/5/20 15:05
 */
@Slf4j
@RestControllerAdvice(basePackages = "com.msb.mall.mall_pms.controller")
public class ExceptionControllerAdvice {
    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public R handlerValidException(MethodArgumentNotValidException e) {
        log.error("数据校验出现问题:{},异常类型:{}", e.getMessage(), e.getClass());
        /*处理验证异常方法*/
        BindingResult bindingResult = e.getBindingResult();
        HashMap<String, String> hashMap = new HashMap<>();
        StringBuffer stringBuffer = new StringBuffer();
        bindingResult.getFieldErrors().forEach(fieldError -> {
            hashMap.put(fieldError.getField(), fieldError.getDefaultMessage());
        });
        // return R.error(400,"提交的数据不合法").put("data", hashMap);
        return R.error(BizCodeEnum.VALID_EXCEPTION.getCode(), BizCodeEnum.VALID_EXCEPTION.getMsg())
                .put("data", hashMap);

    }

    /*系统其他异常处理*/
    @ExceptionHandler(value = Throwable.class)
    public R handlerException(Throwable e) {
        log.error("错误信息", e);
        // return R.error(400,"位置异常信息").put("data", e.getLocalizedMessage());
        return R.error(BizCodeEnum.UNKNOWN_EXCEPTION.getCode(), BizCodeEnum.UNKNOWN_EXCEPTION.getMsg())
                .put("data", e.getMessage());
    }
}
@AllArgsConstructor
@NoArgsConstructor
public enum BizCodeEnum {

    /*10  通用
      11 商品
      12 订单
      13 购物车
      14 物流
      15 会员
    * */
    UNKNOWN_EXCEPTION(10000, "系统位置异常"),
    VALID_EXCEPTION(10001, "参数格式异常"),
    VALID_SMS_EXCEPTION(10002, "短信发送频率太高,请稍等一会发送!"),
    USERNAME_EXSIT_EXCEPTION(15001, "用户名存在!"),
    PHONE_EXSIT_EXCEPTION(15002, "手机号存在!"),
    USERNAME_OR_PHONE_VALID_EXCEPTION(15003, "账号或者密码错误!"),
    NO_STOCK_EXCEPTION(14001, "商品锁定库存异常!"),
    PRODUCT_UP_EXCEPTION(11001, "商品上架异常");
    private int code;
    private String msg;

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}

 

posted @ 2022-07-11 22:41  花心大萝卜li  阅读(108)  评论(0)    收藏  举报