zhaowenxuan
2025-03-21 cb64c7f2f801d33fed0fec22369f356254eb1ea6
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
package com.ltkj.common.utils;
 
import com.github.pagehelper.Page;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * 响应操作结果
 * <pre>
 *  {
 *      errno: 错误码,
 *      errmsg:错误消息,
 *      data:  响应数据
 *  }
 * </pre>
 *
 * <p>
 * 错误码:
 * <ul>
 * <li> 0,成功;
 * <li> 4xx,前端错误,说明前端开发者需要重新了解后端接口使用规范:
 * <ul>
 * <li> 401,参数错误,即前端没有传递后端需要的参数;
 * <li> 402,参数值错误,即前端传递的参数值不符合后端接收范围。
 * </ul>
 * <li> 5xx,后端错误,除501外,说明后端开发者应该继续优化代码,尽量避免返回后端错误码:
 * <ul>
 * <li> 501,验证失败,即后端要求用户登录;
 * <li> 502,系统内部错误,即没有合适命名的后端内部错误;
 * <li> 503,业务不支持,即后端虽然定义了接口,但是还没有实现功能;
 * <li> 504,更新数据失效,即后端采用了乐观锁更新,而并发更新时存在数据更新失效;
 * <li> 505,更新数据失败,即后端数据库更新失败(正常情况应该更新成功)。
 * </ul>
 * </ul>
 */
public class ResponseUtil {
    public static Object ok() {
        Map<String, Object> obj = new HashMap<String, Object>();
        obj.put("code", 200);
        obj.put("msg", "成功");
        return obj;
    }
 
    public static Object ok(Object data) {
        Map<String, Object> obj = new HashMap<String, Object>();
        obj.put("code", 200);
        obj.put("msg", "成功");
        obj.put("data", data);
        return obj;
    }
 
    public static Object okList(List list) {
        Map<String, Object> data = new HashMap<String, Object>();
        data.put("list", list);
 
        if (list instanceof Page) {
            Page page = (Page) list;
            data.put("total", page.getTotal());
            data.put("page", page.getPageNum());
            data.put("limit", page.getPageSize());
            data.put("pages", page.getPages());
        } else {
            data.put("total", list.size());
            data.put("page", 1);
            data.put("limit", list.size());
            data.put("pages", 1);
        }
 
        return ok(data);
    }
 
    public static Object okList(List list, List pagedList) {
        Map<String, Object> data = new HashMap<String, Object>();
        data.put("list", list);
 
        if (pagedList instanceof Page) {
            Page page = (Page) pagedList;
            data.put("total", page.getTotal());
            data.put("page", page.getPageNum());
            data.put("limit", page.getPageSize());
            data.put("pages", page.getPages());
        } else {
            data.put("total", pagedList.size());
            data.put("page", 1);
            data.put("limit", pagedList.size());
            data.put("pages", 1);
        }
 
        return ok(data);
    }
 
    public static Object fail() {
        Map<String, Object> obj = new HashMap<String, Object>();
        obj.put("code", -1);
        obj.put("msg", "错误");
        return obj;
    }
 
    public static Object fail(int errno, String errmsg) {
        Map<String, Object> obj = new HashMap<String, Object>();
        obj.put("code", errno);
        obj.put("msg", errmsg);
        return obj;
    }
 
    public static Object badArgument() {
        return fail(401, "参数不对");
    }
 
    public static Object badArgumentValue() {
        return fail(402, "参数值不对");
    }
 
    public static Object unlogin() {
        return fail(501, "请登录");
    }
 
    public static Object serious() {
        return fail(502, "系统内部错误");
    }
 
    public static Object unsupport() {
        return fail(503, "业务不支持");
    }
 
    public static Object updatedDateExpired() {
        return fail(504, "更新数据已经失效");
    }
 
    public static Object updatedDataFailed() {
        return fail(505, "更新数据失败");
    }
 
    public static Object unauthz() {
        return fail(506, "无操作权限");
    }
}