package com.kidgrow.common.model; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonIgnore; import com.google.common.collect.Maps; import lombok.Data; import java.io.Serializable; import java.util.Map; import java.util.ResourceBundle; //import io.swagger.annotations.ApiModel; //import io.swagger.annotations.ApiModelProperty; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* * @Description:
* @Project:
* @CreateDate: Created in 2020/2/4 13:41
* @Author: liuke */ //@ApiModel(value = "响应结果") @Data public class ResultBody implements Serializable { private static final long serialVersionUID = -6190689122701100762L; /** * 响应编码 */ // @ApiModelProperty(value = "响应编码:0-请求处理成功") private int code = 0; /** * 提示消息 */ // @ApiModelProperty(value = "提示消息") private String msg; /** * 请求路径 */ // @ApiModelProperty(value = "请求路径") private String path; /** * 响应数据 */ // @ApiModelProperty(value = "响应数据") private T data; /** * http状态码 */ private int httpStatus; /** * 附加数据 */ // @ApiModelProperty(value = "附加数据") private Map extra; /** * 响应时间 */ // @ApiModelProperty(value = "响应时间") private long timestamp = System.currentTimeMillis(); public ResultBody() { super(); } public ResultBody(int code,String msg,T data){ this.code=code; this.msg=msg; this.data=data; } public int getCode() { return code; } public String getMsg() { return msg; } public String getPath() { return path; } public T getData() { return data; } public Map getExtra() { return extra; } public long getTimestamp() { return timestamp; } @JSONField(serialize = false, deserialize = false) @JsonIgnore public int getHttpStatus() { return httpStatus; } @JSONField(serialize = false, deserialize = false) @JsonIgnore public boolean isOk() { return this.code == ErrorCode.OK.getCode(); } public static ResultBody ok() { return new ResultBody().code(ErrorCode.OK.getCode()).msg(ErrorCode.OK.getMessage()); } public static ResultBody failed() { return new ResultBody().code(ErrorCode.FAIL.getCode()).msg(ErrorCode.FAIL.getMessage()); } public static ResultBody failed(String msg) { return new ResultBody().code(ErrorCode.FAIL.getCode()).msg(msg); } public static ResultBody ok(int code,String msg) { return new ResultBody(code,msg,null); } public static ResultBody failed(int code,String msg) { return new ResultBody(code,msg,null); } public static ResultBody fail(int code, String msg) { return new ResultBody<>(code, msg,null); } public ResultBody code(int code) { this.code = code; return this; } public ResultBody msg(String msg) { this.msg = i18n(ErrorCode.getResultEnum(this.code).getMessage(), msg); return this; } public ResultBody data(T data) { this.data = data; return this; } public ResultBody path(String path) { this.path = path; return this; } public ResultBody httpStatus(int httpStatus) { this.httpStatus = httpStatus; return this; } public ResultBody put(String key, Object value) { if (this.extra == null) { this.extra = Maps.newHashMap(); } this.extra.put(key, value); return this; } @Override public String toString() { return "ResultBody{" + "code=" + code + ", msg='" + msg + '\'' + ", path='" + path + '\'' + ", data=" + data + ", httpStatus=" + httpStatus + ", extra=" + extra + ", timestamp=" + timestamp + '}'; } /** * 错误信息配置 */ @JSONField(serialize = false, deserialize = false) @JsonIgnore private static ResourceBundle resourceBundle = ResourceBundle.getBundle("error"); /** * 提示信息国际化 * * @param msg * @param defaultMessage * @return */ @JSONField(serialize = false, deserialize = false) @JsonIgnore private static String i18n(String msg, String defaultMessage) { return resourceBundle.containsKey(msg)?resourceBundle.getString(msg):defaultMessage; } }