shikeying
2022-10-28 e75364c0d66fff66432bce505c136d51034ba408
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package com.iplatform.recvideo;
 
import java.io.Serializable;
import java.util.List;
 
/**
 * 描述:响应web请求对象定义。
 * @author 时克英
 * @date 2020年6月30日 上午10:42:18
 */
 
public class ResponseValue<T> implements Serializable {
 
    /**
     * 
     */
    private static final long serialVersionUID = -3530568444640938940L;
    
    public static final int CODE_SUCCESS = 1;
    public static final int CODE_ERROR = 0;
    public static final int CODE_RELOGIN = 10;
    public static final String TEXT_SUCCESS = "success";
    public static final String TEXT_ERROR = "failed";
    public static final String TEXT_RELOGIN = "超时,请重新登录";
    
    private boolean state = false;
    private int code = CODE_ERROR;
    private String msg;
    private T data = null;
 
    // 为适配若依前端增加属性,2022-10-10
    private long total = 0;
    
//    private List<T> datas = null;
//    public List<T> getDatas() {
//        return datas;
//    }
//    public void setDatas(List<T> datas) {
//        this.datas = datas;
//    }
 
    private ResponseValue(){}
    
    public boolean isState() {
        if(code == CODE_SUCCESS){
            return true;
        }
        return state;
    }
    public void setState(boolean state) {
        this.state = state;
    }
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return this.msg;
    }
    public void setMsg(String text) {
        this.msg = text;
    }
    public T getData() {
        return data;
    }
    public void setData(T data) {
        if(data == null){
            return;
        }
        if(data instanceof List){
            List<?> list = (List<?>)data;
            this.total = list.size();
        }
        this.data = data;
    }
 
    public long getTotal() {
        return total;
    }
    public void setTotal(long total) {
        this.total = total;
    }
    
    public static <T> ResponseValue<T> success(T data){
        return success(TEXT_SUCCESS, data);
    }
    
    public static <T> ResponseValue<T> success(String text, T data){
        ResponseValue<T> rv = new ResponseValue<T>();
        rv.setState(true);
        rv.setCode(CODE_SUCCESS);
        rv.setMsg(text);
        rv.setData(data);
        return rv;
    }
    
    public static ResponseValue<List<?>> success(String text, List<?> data){
        ResponseValue<List<?>> rv = new ResponseValue<List<?>>();
        rv.setState(true);
        rv.setCode(CODE_SUCCESS);
        rv.setMsg(text);
        rv.setData(data);
        return rv;
    }
    
    public static ResponseValue<String> success(String text){
        ResponseValue<String> rv = new ResponseValue<String>();
        rv.setState(true);
        rv.setCode(CODE_SUCCESS);
        rv.setMsg(text);
        return rv;
    }
    
    public static ResponseValue<String> success(){
        return success(TEXT_SUCCESS);
    }
    
    public static ResponseValue<String> error(String text){
        ResponseValue<String> rv = new ResponseValue<String>();
        rv.setState(false);
        rv.setCode(CODE_ERROR);
        rv.setMsg(text);
        return rv;
    }
    
    public static ResponseValue<String> error(){
        return error(TEXT_ERROR);
    }
 
    public static ResponseValue<String> error(int code, String text){
        if(code == CODE_SUCCESS){
            throw new IllegalArgumentException("错误代码不能是 '成功代码'");
        }
        ResponseValue<String> rv = new ResponseValue<String>();
        rv.setState(false);
        rv.setCode(code);
        rv.setMsg(text);
        return rv;
    }
    
    public static ResponseValue<String> relogin(){
        ResponseValue<String> rv = new ResponseValue<String>();
        rv.setState(true);
        rv.setCode(CODE_RELOGIN);
        rv.setMsg(TEXT_RELOGIN);
        return rv;
    }
}