刘光辉
14 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package jnpf.workflow.admin.result;
 
import java.io.Serializable;
 
import com.fasterxml.jackson.annotation.JsonInclude;
 
import jnpf.workflow.common.exception.ResultCode;
import lombok.Data;
 
/**
 * 统一响应包装。契约要点:success 为 Boolean、code 为字符串(SUCCESS="200"),
 * 调用方 jnpf-flowable 以 Boolean.FALSE.equals(getSuccess()) 判失败,勿改动字段类型与顺序。
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Result<T> implements Serializable {
 
    private Boolean success;
    private String code;
    private String msg;
    private T data;
 
    public static <T> Result<T> result(Boolean success, String code, String msg, T data) {
        Result<T> result = new Result<>();
        result.setSuccess(success);
        result.setCode(code);
        result.setMsg(msg);
        result.setData(data);
        return result;
    }
 
    public static <T> Result<T> result(Boolean success, ResultCode resultCode, T data) {
        return result(success, resultCode.getCode(), resultCode.getMsg(), data);
    }
 
    public static <T> boolean isSuccess(Result<T> result) {
        return result != null && ResultCode.SUCCESS.getCode().equals(result.getCode());
    }
 
    public static <T> Result<T> success() {
        return result(true, ResultCode.SUCCESS, null);
    }
 
    public static <T> Result<T> success(T data) {
        return result(true, ResultCode.SUCCESS, data);
    }
 
    public static <T> Result<T> success(ResultCode resultCode, T data) {
        return result(true, resultCode, data);
    }
 
    public static <T> Result<T> success(ResultCode resultCode) {
        return result(true, resultCode, null);
    }
 
    public static <T> Result<T> success(String code, String msg, T data) {
        return result(true, code, msg, data);
    }
 
    public static <T> Result<T> success(String msg) {
        return result(true, ResultCode.SUCCESS.getCode(), msg, null);
    }
 
    public static <T> Result<T> failed() {
        return result(false, ResultCode.FAILURE.getCode(), ResultCode.FAILURE.getMsg(), null);
    }
 
    public static <T> Result<T> failed(T data) {
        return result(false, ResultCode.FAILURE.getCode(), ResultCode.FAILURE.getMsg(), data);
    }
 
    public static <T> Result<T> failed(String msg) {
        return result(false, ResultCode.FAILURE.getCode(), msg, null);
    }
 
    public static <T> Result<T> failed(String msg, T data) {
        return result(false, ResultCode.FAILURE.getCode(), msg, data);
    }
 
    public static <T> Result<T> failed(ResultCode resultCode) {
        return result(false, resultCode.getCode(), resultCode.getMsg(), null);
    }
 
    public static <T> Result<T> failed(ResultCode resultCode, T data) {
        return result(false, resultCode.getCode(), resultCode.getMsg(), data);
    }
 
    public static <T> Result<T> failed(ResultCode resultCode, String msg) {
        return result(false, resultCode.getCode(), msg, null);
    }
 
    public static <T> Result<T> failed(ResultCode resultCode, String msg, T data) {
        return result(false, resultCode.getCode(), msg, data);
    }
}