公共数据返回&统一异常处理

数据返回

BaseResponseVO.java

@Data
public class BaseResponseVO<T> {
    
    

    private Integer code;   // 业务编号
    private String message; // 异常信息
    private T data;         // 业务数据返回

    private BaseResponseVO(){
    
    }

    // 成功但是无参数
    public static BaseResponseVO success(){
    
    
        BaseResponseVO response = new BaseResponseVO();
        response.setCode(200);
        response.setMessage("");
        return response;
    }

    // 成功有参数
    public static<T> BaseResponseVO success(M data){
    
    
        BaseResponseVO response = new BaseResponseVO();
        response.setCode(200);
        response.setMessage("");
        response.setData(data);
        return response;
    }

    // 出现业务异常
    public static<T> BaseResponseVO serviceException(CommonServiceException e){
    
    
        BaseResponseVO response = new BaseResponseVO();
        response.setCode(e.getCode());
        response.setMessage(e.getMessage());
        return response;
    }

}

UserConrtoller.java

@RestController
@RequestMapping(value = "/user")
public class UserController {
    
    

    @Autowired
    private UserServiceAPI serviceAPI;

    @RequestMapping(value = "/login",method = RequestMethod.POST)
    public BaseResponseVO login(@RequestBody LoginReqVO reqVO) throws CommonServiceException {
    
    

        // 数据验证
        reqVO.checkParam();

        // 验证用户名和密码是否正确
        String userId = serviceAPI.checkUserLogin(reqVO.getUsername(),reqVO.getPassword());

        JwtTokenUtil jwtTokenUtil = new JwtTokenUtil();

        String randomKey = jwtTokenUtil.getRandomKey();
        String token = jwtTokenUtil.generateToken(userId, randomKey);

        // randomKey  token
        Map<String,String> result = new HashMap<>();
        result.put("randomKey",randomKey);
        result.put("token",token);

        return BaseResponseVO.success(result);
    }

}

异常处理

CommonServiceExceprion.java

@Data
public class CommonServiceException extends Exception{
    
    

    private Integer code;
    private String message;

    public CommonServiceException(int code,String message){
    
    
        this.code = code;
        this.message = message;
    }

}

BaseExceptionHandler.java

@Slf4j
@ControllerAdvice
public class BaseExceptionHandler {
    
    

    @ExceptionHandler(CommonServiceException.class)
    @ResponseBody
    public BaseResponseVO serviceExceptionHandler(
            HttpServletRequest request, CommonServiceException e){
    
    

        log.error("CommonServiceException, code:{}, message",
                e.getCode(),e.getMessage());

        return BaseResponseVO.serviceException(e);
    }

}

猜你喜欢

转载自blog.csdn.net/tolmanlau/article/details/105688504