KKSU
2024-11-15 2147ca2f66dd5ff83db5080988f4832bd10ac213
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
package cc.mrbird.febs.unisoftiot.enums;
 
import lombok.Getter;
 
/**
 * 响应码枚举类,用于定义API响应的各种状态码及其含义
 */
@Getter
public enum ResponseCodeEnum {
 
    // 定义各种错误响应码和成功响应码
    FAIL_5009(5009, "too many request", "单个设备访问最高限制1次/秒,请勿超过此限制"),
    FAIL_5008(5008, "ip:*.*.*.* is not in white list", "开启了IP检查,但接口访问IP不在白名单内,请在控制台的开发设置中,将IP加入白名单"),
    FAIL_5007(5007, "bad debug key", "指定了debug参数,但未开启调试模式,或者是debug参数不正确或已过期"),
    FAIL_5006(5006, "bad sign", "签名错误,正确签名为 md5(md5(开发者密码) + (url中的ts参数))"),
    FAIL_5005(5005, "please set app secret", "未设置开发者密码,请在控制台的开发设置中进行设置"),
    FAIL_5004(5004, "miss param sign", "请在请求接口中指定sign(签名),这是一个计算值"),
    FAIL_5003(5003, "bad ts", "时间戳错误,ts为请求发生时的时间,是一个动态的值,必须为中国时间"),
    FAIL_5002(5002, "miss param ts", "请在请求接口中指定ts(时间戳),取值为请求时的时间戳,10位数字"),
    FAIL_5001(5001, "miss app id", "请求地址为 https://iot-api.unisoft.cn/{APPID}/,缺少{APPID},请在控制台查看您的appid"),
    SUCCESS(200, "ok", "");
 
    // 响应码
    private int code;
    // 简短消息
    private String msg;
    // 描述信息
    private String desc;
 
    /**
     * 构造函数,初始化响应码、消息和描述
     *
     * @param code 响应码
     * @param msg  简短消息
     * @param desc 描述信息
     */
    ResponseCodeEnum(int code, String msg, String desc) {
        this.code = code;
        this.msg = msg;
        this.desc = desc;
    }
 
    /**
     * 根据响应代码获取描述信息
     * 该方法用于将系统内部的响应代码转换为人类可读的描述信息
     * 主要通过遍历枚举类ResponseCodeEnum来匹配传入的代码,并返回对应的描述
     * 如果没有找到匹配的代码,则返回空字符串
     *
     * @param code 响应代码,用于查找对应的描述信息
     * @return 描述信息如果找到匹配的代码,否则返回空字符串
     */
    public static String getDesc(int code) {
        for (ResponseCodeEnum item : ResponseCodeEnum.values()) {
            if (item.getCode() == code) {
                return item.getDesc();
            }
        }
        return "";
    }
 
    /**
     * 根据响应代码获取消息信息
     * 该方法用于将系统内部的响应代码转换为消息信息
     * 主要通过遍历枚举类ResponseCodeEnum来匹配传入的代码,并返回对应的消息
     * 如果没有找到匹配的代码,则返回空字符串
     *
     * @param code 响应代码,用于查找对应的消息信息
     * @return 消息信息如果找到匹配的代码,否则返回空字符串
     */
    public static String getMsg(int code) {
        for (ResponseCodeEnum item : ResponseCodeEnum.values()) {
            if (item.getCode() == code) {
                return item.getMsg();
            }
        }
        return "";
    }
    /**
     * 验证响应码是200
     */
    public static boolean isSuccess(int code) {
        return SUCCESS.getCode() == code;
    }
 
    /**
     * 验证响应码不是200
     */
    public static boolean isFail(int code) {
        return !isSuccess(code);
    }
 
}