Index: forgon-tools/src/main/java/com/forgon/response/SingleDataResponse.java =================================================================== diff -u --- forgon-tools/src/main/java/com/forgon/response/SingleDataResponse.java (revision 0) +++ forgon-tools/src/main/java/com/forgon/response/SingleDataResponse.java (revision 41335) @@ -0,0 +1,43 @@ +package com.forgon.response; + +import java.util.Objects; + +/** + * 单个数据的响应 + * @param 返回的数据对象类型 + */ +public class SingleDataResponse extends OperatorResponse { + /** + * 响应的数据对象。可能为空 + */ + private T data; + + public SingleDataResponse() { + } + + public SingleDataResponse(T data){ + setSuccess(true); + setData(data); + } + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + @Override + public boolean equals(Object object) { + if (this == object) return true; + if (!(object instanceof SingleDataResponse)) return false; + if (!super.equals(object)) return false; + SingleDataResponse that = (SingleDataResponse) object; + return Objects.equals(data, that.data); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), data); + } +} Index: forgon-tools/src/main/java/com/forgon/response/OperatorResponse.java =================================================================== diff -u --- forgon-tools/src/main/java/com/forgon/response/OperatorResponse.java (revision 0) +++ forgon-tools/src/main/java/com/forgon/response/OperatorResponse.java (revision 41335) @@ -0,0 +1,86 @@ +package com.forgon.response; + +import java.util.Objects; + +/** + * 操作结果 + */ +public class OperatorResponse { + /** + * 是否成功标志。不能为空 + */ + private Boolean success; + /** + * 错误时的提示消息。可能为空 + */ + private String message; + /** + * 错误码。有些场景前端可能需要根据错误码做特殊处理。可能为空 + */ + private Integer code; + + public OperatorResponse(boolean success, String message, Integer code) { + this.success = success; + this.message = message; + this.code = code; + } + + public OperatorResponse(boolean success, String message) { + this.success = success; + this.message = message; + } + public OperatorResponse(){ + setSuccess(true); + } + + public Boolean getSuccess() { + return success; + } + + public boolean success(){ + return success != null && success; + } + + public OperatorResponse setSuccess(Boolean success) { + this.success = success; + return this; + } + public String getMessage() { + return message; + } + + public OperatorResponse setMessage(String message) { + this.message = message; + return this; + } + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + @Override + public boolean equals(Object object) { + if (this == object) return true; + if (!(object instanceof OperatorResponse)) return false; + OperatorResponse that = (OperatorResponse) object; + return Objects.equals(success, that.success) && Objects.equals(message, that.message) + && Objects.equals(code, that.code); + } + + @Override + public int hashCode() { + return Objects.hash(success, message, code); + } + + @Override + public String toString() { + return "OperatorResponse{" + + "success=" + success + + ", message='" + message + '\'' + + ", code=" + code + + '}'; + } +} Index: forgon-tools/src/main/java/com/forgon/response/PagedDataResponse.java =================================================================== diff -u --- forgon-tools/src/main/java/com/forgon/response/PagedDataResponse.java (revision 0) +++ forgon-tools/src/main/java/com/forgon/response/PagedDataResponse.java (revision 41335) @@ -0,0 +1,57 @@ +package com.forgon.response; + +import java.util.List; +import java.util.Objects; + +/** + * 分页数据的响应对象。兼容前端ExtJs.forgon4.Grid + * @param + */ +public class PagedDataResponse extends OperatorResponse{ + /** + * 总记录数。 + */ + private int total; + /** + * 当前分页数据列表。可能为空 + */ + private List rows; + + public PagedDataResponse() { + } + + public PagedDataResponse(int total, List rows) { + this.total = total; + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + @Override + public boolean equals(Object object) { + if (this == object) return true; + if (!(object instanceof PagedDataResponse)) return false; + if (!super.equals(object)) return false; + PagedDataResponse that = (PagedDataResponse) object; + return total == that.total && Objects.equals(rows, that.rows); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), total, rows); + } +} Index: forgon-tools/src/main/java/com/forgon/response/ListDataResponse.java =================================================================== diff -u --- forgon-tools/src/main/java/com/forgon/response/ListDataResponse.java (revision 0) +++ forgon-tools/src/main/java/com/forgon/response/ListDataResponse.java (revision 41335) @@ -0,0 +1,40 @@ +package com.forgon.response; + +import java.util.List; +import java.util.Objects; + +public class ListDataResponse extends OperatorResponse { + /** + * 响应的数据列表。可能为空。但是最好为空的时候,返回一个空列表,而不是null,比如:Collection.EMPTY_LIST + */ + private List data; + + public ListDataResponse() { + } + + public ListDataResponse(List data) { + this.data = data; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + @Override + public boolean equals(Object object) { + if (this == object) return true; + if (!(object instanceof ListDataResponse)) return false; + if (!super.equals(object)) return false; + ListDataResponse that = (ListDataResponse) object; + return Objects.equals(data, that.data); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), data); + } +}