public class R extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;
public R() {
put("code", 0);
put("msg", "success");
}
public static R error() {
return error(500, "未知异常,请联系管理员");
}
public static R error(String msg) {
return error(500, msg);
}
public static R error(int code, String msg) {
R r = new R();
r.put("code", code);
r.put("msg", msg);
return r;
}
public static R ok(String msg) {
R r = new R();
r.put("msg", msg);
return r;
}
public static R ok(Map<String, Object> map) {
R r = new R();
r.putAll(map);
return r;
}
public static R ok() {
return new R();
}
@Override
public R put(String key, Object value) {
super.put(key, value);
return this;
}
}
public enum WebCodeEnum {
/**
* 系统异常,请联系管理员
*/
FAILED(10000, "系统异常,请联系管理员"),
/**
* 1. 用户登录信息缺失,请重新登录
*/
USER_LOGIN_ERROR(10001, "用户登录信息缺失,请重新登录"),
/**
* 2. 请选择结束时间
*/
END_TIME_ERROR(10002, "请选择结束时间"),
/**
* 3. 请选择结束时间
*/
BEGIN_TIME_ERROR(10003, "请选择开始时间"),
/**
* 4.请求参数为空
*/
CLIENT_ID_ENPTY(10004, "用户编号为空"),
/**
* 图片文件名为空
*/
FIELD_ID_ENPTY(10005, "图片文件名为空"),
/**
* 请先选择是否通过
*/
SELECT_PASS_OR_NOT(10006, "请先选择是否通过"),
/**
* 未查询到用户信息
*/
QUERY_APPRAOVE_CLIENT_NULL(10007, "未查询到被审核用户的信息"),
/**
* 只有状态是'认证中'的用户才可以被审核
*/
NONE_CERTIFICATION_STATUS_ERROR(10008, "只有状态是'认证中'的用户才可以被审核"),
/**
* 未查询到管理员相关信息
*/
QUERY_ADMINISTRATOR_NULL(10009, "未查询到管理员相关信息"),
/**
* 管理员状态异常
*/
ADMINISTRATOR_STATUS_ERROR(10010, "管理员状态异常"),
/**
* 数据库操作异常
*/
DB_OPERATION_ERROR(10011, "数据库操作异常"),
/**
* third party id对应的用户帐号为空
*/
USER_ID_EMPTY(10012, "用户帐号为空"),
/**
* 用户帐号不存在
*/
QUERY_USER_NONEXISTENT(10013, "用户帐号不存在"),
/**
* 首页数据表日期为空
*/
DATE_NULL(10014, "请选择统计日期"),
/**
* 该角色包含用户,不能被删除
*/
ROLE_DELETE_ERROR(10015, "该角色包含用户,不能被删除"),
/**
* 角色保存失败,角色名或者说明不能为空
*/
ROLE_PARAM_VAILD_ERROR(10016, "角色保存失败,角色名或者说明不能为空"),
/**
* 角色绑定用户失败,关系已存在
*/
ROLE_USER_SAVE_ERROR(10017, "角色绑定用户失败,关系已存在"),
/**
* 角色保存失败,角色名已存在
*/
ROLE_SAVE_ERROR(10018, "角色保存失败,角色名已存在"),
/**
* 列字段超长
*/
DB_DATA_TOO_LONG(10019, "备注信息过长"),
/**
* 金额格式不合法
*/
MONEY_INVALID(10020, "金额不能为负数且只能有两位小数"),
/**
* 导出时间或类型参数为空
*/
EXPORT_EXCEL_PARAM_NULL(10021, "导出excel时时间或类型参数为空"),
/**
* evidence id对应的用户帐号为空
*/
EVIDENCE_ID_EMPTY(10022, "电子证据Id为空"),
/**
* es查询异常
*/
ES_OPERATION_ERROR(10023, "ES操作异常"),
/**
* 商务报价Id为空
*/
OFFER_ID_ENPTY(10024, "商务报价Id为空"),
/**
* 角色ID为空
*/
ROLE_ID_EMPTY(10025, "角色ID为空"),
/**
* 导出excel失败
*/
EXPORT_EXCEL_FAILED(10026, "导出excel文件失败"),
/**
* 订单ID为空
*/
RECORD_ID_EMPTY(10027, "订单ID为空"),
/**
* 确认金额为空
*/
CONFIRMMONEY(10028, "确认金额为空"),
/**
* 文件ID为空
*/
REGISTER_ID_EMPTY(10029, "文件ID为空"),
/**
* 商务报价Id不存在
*/
OFFER_ID_NOT_EXIST(10030, "商务报价Id不存在"),
/**
* 前台推荐配置-id为空
*/
RECOMMEND_ID_EMPTY(10031, "推荐信息的id为空"),
/**
* 前台推荐配置-tab为空
*/
RECOMMEND_TAB_EMPTY(10032, "tab为空"),
/**
* 前台推荐配置-type为空
*/
RECOMMEND_TYPE_EMPTY(10033, "推荐位类型type为空"),
/**
* 前台推荐配置-设置的商品的文件类型与推荐位的文件类型不匹配
*/
RECOMMEND_FILE_TYPE_MISMATCH(10034, "商品文件类型不匹配"),
/**
* 商品分类查询异常
*/
GOOD_CATEGORY_SEARCH_ERROR(10040, "商品分类查询异常"),
/**
* 商品ID为空
*/
GOOD_ID_EMPTY(10041, "商品ID为空"),
/**
* 商品删除失败,对象正在被使用
*/
GOOD_DELETE_ERROR(10042, "商品删除失败,对象正在被使用"),
/**
* 商品上下架操作类型为空
*/
GOOD_ACTION_EMPTY(10043, "商品上下架操作类型为空"),
/**
* 商品查询异常
*/
GOOD_SEARCH_ERROR(10044, "商品查询异常"),
/**
* 商品不存在
*/
GOODS_ID_NOT_EXISTS(10045, "商品不存在"),
/**
* 商品授权规格不存在
*/
GOODS_SKU_ID_NOT_EXISTS(10046, "商品授权规格不存在"),
/**
* 商品为下架状态
*/
GOODS_STATUS_OFF(10047, "商品为下架状态"),
/**
* 版权内容Id不存在
*/
Content_ID_NOT_EXIST(10050, "版权内容Id不存在"),
/**
* 版权授权Id不存在
*/
Item_ID_NOT_EXIST(10051, "版权内容Id不存在"),
/**
* register作品文件查询异常
*/
REGISTER_QUERY_FAILED(10052, "作品查询异常"),
/**
* Id不正确,应该为19位数字
*/
ID_NOT_NUMBER(10053, "Id不正确,应该为19位数字"),
/**
* 订单编号为空
*/
ORDER_ID_EMPTY(40004, "订单编号为空"),
/**
* 订单列表查询失败
*/
ORDER_PAGE_LIST_ERROR(40005, "订单列表查询失败"),
/**
* 订单不存在
*/
ORDER_ID_NOT_EXISTS(40006, "订单不存在");
private final int code;
private final String msg;
WebCodeEnum(int code, String msg) {
this.msg = msg;
this.code = code;
}
public int getCode() {
return this.code;
}
public String getMsg() {
return this.msg;
}
}
public enum ErrorCodeEnum implements IErrorCode {
/**
* success
*/
SUCCESS(0, "success"),
/**
* failed
*/
FAILED(10000, "failed"),
/**
* token is empty
*/
TOKEN_IS_EMPTY(10001, "token is empty"),
/**
* token is invalid
*/
TOKEN_IS_INVALID(10002, "token is invalid"),
/**
* token is expired
*/
TOKEN_IS_EXPIRED(10003, "token is expired"),
/**
* 列字段超长
*/
DB_DATA_TOO_LONG(10004, "column is to long"),
/**
* KMS环境执行失败
*/
KMS_EXECUTE_ERROR(10005, "KMS environment execution failed"),
/**
* 用户登录信息缺失,请重新登录
*/
USER_LOGIN_ERROR(10006, "user login information is missing, please login again"),
/**
* 请求参数为空
*/
REQUEST_PARAM_ERROR(10007, "request parameter exception"),
/**
* 查询结果为空
*/
QUERY_RESULT_NULL(10008, "query result is empty"),
/**
* 状态异常
*/
STATUS_ERROR(10009, "status error"),
/**
* 参数转化异常
*/
PARAM_CONVERT_ERROR(10010, "parameter conversion error"),
/**
* 参数不合法
*/
PARAM_INVALID_ERROR(10011, "parameter invalid error"),
/**
* excel导出异常
*/
EXPORT_EXCEL_FAILED(10012, "export excel error"),
/**
* oss url获取异常
*/
OSS_OPERATION_FAILED(10013, "oss operation error"),
/**
* es 操作异常
*/
ES_OPERATION_FAILED(10014, "es operation error"),
/**
* 日期 操作异常
*/
DATE_OPERATION_FAILED(10015, "date operation error"),
/**
* 没有权限 操作异常
*/
NO_PERMISSION_FAILED(10016, "no permission error"),
/**
* 文件上传失败
*/
FILE_UPLOAD_ERROR(10017, "file upload failed"),
/**
* 查询结果异常
*/
QUERY_RESULT_FAILED(10018, "query result error");
private final int code;
private final String msg;
ErrorCodeEnum(int code, String msg) {
this.msg = msg;
this.code = code;
}
@Override
public int getCode() {
return this.code;
}
@Override
public String getMsg() {
return this.msg;
}
public static String getMsgByCode(int code) {
ErrorCodeEnum[] values = ErrorCodeEnum.values();
for (ErrorCodeEnum value : values) {
if (value.code == code) {
return value.msg;
}
}
return StringUtils.EMPTY;
}
}
public class CommonResult<T> {
private long code;
private String message;
private T data;
protected CommonResult() {
}
protected CommonResult(long code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public static <T> CommonResult<T> success(T data) {
return new CommonResult<T>(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data);
}
/**
* 成功返回结果
*
* @param data 获取的数据
* @param message 提示信息
*/
public static <T> CommonResult<T> success(T data, String message) {
return new CommonResult<T>(ResultCode.SUCCESS.getCode(), message, data);
}
/**
* 失败返回结果
* @param errorCode 错误码
*/
public static <T> CommonResult<T> failed(IErrorCode errorCode) {
return new CommonResult<T>(errorCode.getCode(), errorCode.getMessage(), null);
}
/**
* 失败返回结果
* @param message 提示信息
*/
public static <T> CommonResult<T> failed(String message) {
return new CommonResult<T>(ResultCode.FAILED.getCode(), message, null);
}
/**
* 失败返回结果
*/
public static <T> CommonResult<T> failed() {
return failed(ResultCode.FAILED);
}
/**
* 参数验证失败返回结果
*/
public static <T> CommonResult<T> validateFailed() {
return failed(ResultCode.VALIDATE_FAILED);
}
/**
* 参数验证失败返回结果
* @param message 提示信息
*/
public static <T> CommonResult<T> validateFailed(String message) {
return new CommonResult<T>(ResultCode.VALIDATE_FAILED.getCode(), message, null);
}
/**
* 未登录返回结果
*/
public static <T> CommonResult<T> unauthorized(T data) {
return new CommonResult<T>(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data);
}
/**
* 未授权返回结果
*/
public static <T> CommonResult<T> forbidden(T data) {
return new CommonResult<T>(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data);
}
public long getCode() {
return code;
}
public void setCode(long code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
/**
* 封装API的错误码
* Created by macro on 2019/4/19.
*/
public interface IErrorCode {
long getCode();
String getMessage();
}
package com.macro.mall.tiny.common.api;
/**
* 枚举了一些常用API操作码
*/
public enum ResultCode implements IErrorCode {
SUCCESS(200, "操作成功"),
FAILED(500, "操作失败"),
VALIDATE_FAILED(404, "参数检验失败"),
UNAUTHORIZED(401, "暂未登录或token已经过期"),
FORBIDDEN(403, "没有相关权限");
private long code;
private String message;
private ResultCode(long code, String message) {
this.code = code;
this.message = message;
}
@Override
public long getCode() {
return code;
}
@Override
public String getMessage() {
return message;
}
}