packagecom.yixiu.crm.common.util;/*** @auther: shaoshuaui.zheng
* @description:
* @date: 2019/1/2 17:47*/
importcom.alibaba.fastjson.JSONObject;importcom.fasterxml.jackson.annotation.JsonInclude;importcom.yixiu.crm.model.response.PageResponse;importjava.io.Serializable;/*** 保证序列化json的时候,如果是null的对象,key也会消失*/@JsonInclude(JsonInclude.Include.NON_NULL)public final class ServerResponse implementsSerializable {private intstatus;privateString nextPage;privateString msg;privateT data;/*** 分页信息*/
privatePageResponse pageInfo;/*** 状态码
*
*@paramstatus*/
private ServerResponse(intstatus) {this.status =status;this.msg = "加载成功!";
}/*** 状态码 + 数据
*
*@paramstatus
*@paramdata*/
private ServerResponse(intstatus, T data) {this.status =status;this.data =data;this.msg = "加载成功!";
}/*** 状态码 + 数据 + 分页
*
*@paramstatus
*@paramdata*/
private ServerResponse(intstatus, T data, String nextPage) {this.status =status;this.data =data;this.nextPage =nextPage;this.msg = "加载成功!";
}public ServerResponse(intstatus, T data, PageResponse pageInfo) {this.status =status;this.data =data;this.pageInfo =pageInfo;this.msg = "加载成功!";
}/*** 状态码 + 消息 + 数据
*
*@paramstatus
*@parammsg
*@paramdata*/
private ServerResponse(intstatus, String msg, T data) {this.status =status;this.msg =msg;this.data =data;
}/*** 状态码 + 消息
*
*@paramstatus
*@parammsg*/
private ServerResponse(intstatus, String msg) {this.status =status;this.msg =msg;
}/*** 使之不在json序列化结果当中
*
*@return
*/
public booleanisSuccess() {return this.status ==ResponseCode.SUCCESS.getCode();
}public intgetStatus() {returnstatus;
}publicString getNextPage() {returnnextPage;
}public voidsetNextPage(String nextPage) {this.nextPage =nextPage;
}publicT getData() {returndata;
}publicString getMsg() {returnmsg;
}publicPageResponse getPageInfo() {returnpageInfo;
}public voidsetPageInfo(PageResponse pageInfo) {this.pageInfo =pageInfo;
}/*** 返回成功-无参数
*
*@param
*@return
*/
public static ServerResponsecreateBySuccess() {return new ServerResponse(ResponseCode.SUCCESS.getCode());
}/*** 返回成功-消息
*
*@parammsg
*@param
*@return
*/
public static ServerResponsecreateBySuccessMessage(String msg) {return new ServerResponse(ResponseCode.SUCCESS.getCode(), msg);
}/*** 返回成功-数据
*
*@paramdata
*@param
*@return
*/
public static ServerResponsecreateBySuccess(T data) {return new ServerResponse(ResponseCode.SUCCESS.getCode(), data);
}/*** 返回成功-数据 + 分页
*
*@paramdata
*@param
*@return
*/
public static ServerResponsecreateBySuccess(T data, String nextPage) {return new ServerResponse(ResponseCode.SUCCESS.getCode(), data, nextPage);
}/*** 返回成功-数据 + 分页
*
*@paramdata
*@param
*@return
*/
public static ServerResponsecreateBySuccess(T data, PageResponse pageInfo) {return new ServerResponse(ResponseCode.SUCCESS.getCode(), data, pageInfo);
}/*** 返回成功-消息 + 数据
*
*@parammsg
*@paramdata
*@param
*@return
*/
public static ServerResponsecreateBySuccess(String msg, T data) {return new ServerResponse(ResponseCode.SUCCESS.getCode(), msg, data);
}/*** 返回错误-无参数
*
*@param
*@return
*/
public static ServerResponsecreateByError() {return new ServerResponse(ResponseCode.ERROR.getCode(), ResponseCode.ERROR.getDesc());
}/*** 返回异常-无参数
*
*@param
*@return
*/
public static ServerResponsecreateByException() {return new ServerResponse(ResponseCode.ERROR.getCode(), ResponseCode.ERROR.getDesc());
}/*** 返回错误-消息
*
*@paramerrorMessage
*@param
*@return
*/
public static ServerResponsecreateByErrorMessage(String errorMessage) {return new ServerResponse(ResponseCode.ERROR.getCode(), errorMessage);
}/*** 返回错误-错误码 + 消息
*
*@paramerrorCode
*@paramerrorMessage
*@param
*@return
*/
public static ServerResponse createByErrorCodeMessage(interrorCode, String errorMessage) {return new ServerResponse(errorCode, errorMessage);
}
@OverridepublicString toString() {return JSONObject.toJSONString(this);
}
}