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); } }