spring-boot-plus icon indicating copy to clipboard operation
spring-boot-plus copied to clipboard

ApiResult类中 result(ApiCode apiCode,String message,T data)方法,自定义message未生效

Open linmengmeng-1314 opened this issue 4 years ago • 0 comments

Describe the bug result(ApiCode apiCode,String message,T data)方法应该是支持自定义message的,这里直接使用了apiCode的message,覆盖了方法传入的message

源代码:

    public static <T> ApiResult<T> result(ApiCode apiCode,String message,T data){
        boolean success = false;
        if (apiCode.getCode() == ApiCode.SUCCESS.getCode()){
            success = true;
        }
        String apiMessage = apiCode.getMessage();
        if (StringUtils.isNotBlank(apiMessage)){
            message = apiMessage;
        }
        return (ApiResult<T>) ApiResult.builder()
                .code(apiCode.getCode())
                .message(message)
                .data(data)
                .success(success)
                .time(new Date())
                .build();
    }

建议添加对参数message进行非空判断,为空时使用apiCode的message,否则此方法的参数message无意义。

修改后:

    public static <T> ApiResult<T> result(ApiCode apiCode,String message,T data){
        boolean success = false;
        if (apiCode.getCode() == ApiCode.SUCCESS.getCode()){
            success = true;
        }
        if (StringUtils.isBlank(message)){
            String apiMessage = apiCode.getMessage();
            if (StringUtils.isNotBlank(apiMessage)){
                message = apiMessage;
            }
        }
        return (ApiResult<T>) ApiResult.builder()
                .code(apiCode.getCode())
                .message(message)
                .data(data)
                .success(success)
                .time(new Date())
                .build();
    }

linmengmeng-1314 avatar Feb 19 '21 02:02 linmengmeng-1314