content: package org.zeus.common;
  
  
  import com.fasterxml.jackson.annotation.JsonIgnore;
  import com.fasterxml.jackson.annotation.JsonInclude;
  
  import java.io.Serializable;
  
  /**
   * 服务响应对象封装
   * @author aichaellee
   */
  //保证序列化json的时候,如果是null的对象,key也会消失*/
  //@JsonSerialize(include =  JsonSerialize.Inclusion.NON_NULL)
  @JsonInclude(JsonInclude.Include.NON_NULL)
  public class ServerResponse<T> implements Serializable {
  
      private int status;
      private String msg;
      private T data;
  
      private ServerResponse(int status){
          this.status = status;
      }
      private ServerResponse(int status, T data){
          this.status = status;
          this.data = data;
      }
  
      private ServerResponse(int status, String msg, T data){
          this.status = status;
          this.msg = msg;
          this.data = data;
      }
  
      private ServerResponse(int status, String msg){
          this.status = status;
          this.msg = msg;
      }
  
      @JsonIgnore
      // 使之不在json序列化结果当中
      public boolean isSuccess(){
          return this.status == ResponseCode.SUCCESS.getCode();
      }
  
      public int getStatus(){
          return status;
      }
      public T getData(){
          return data;
      }
      public String getMsg(){
          return msg;
      }
  
  
      public static <T> ServerResponse<T> createBySuccess(){
          return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());
      }
  
      public static <T> ServerResponse<T> createBySuccess(String msg){
          return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg);
      }
  
      public static <T> ServerResponse<T> createBySuccess(T data){
          return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),data);
      }
  
      public static <T> ServerResponse<T> createBySuccess(String msg,T data){
          return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg,data);
      }
  
  
      public static <T> ServerResponse<T> createByError(){
          return new ServerResponse<T>(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getDesc());
      }
  
  
      public static <T> ServerResponse<T> createByError(String errorMessage){
          return new ServerResponse<T>(ResponseCode.ERROR.getCode(),errorMessage);
      }
  
      public static <T> ServerResponse<T> createByErrorCodeMessage(int errorCode,String errorMessage){
          return new ServerResponse<T>(errorCode,errorMessage);
      }
  
  
  
  
  
  
  
  
  
  
  
  
  
  }
  