package com.kmall.admin.haikong.utils; import com.google.common.base.Strings; import com.kmall.admin.utils.data.response.ResponseMessageData; import com.kmall.admin.utils.oms.result.Result; import java.util.List; import java.util.Map; /** * @author Scott Chen * @date 2017/4/20 */ public class ResponseMessage { private static final String SUCCESS_CODE = "0"; private static final String SUCCESS_INFO = "成功"; public static final String ERROR_CODE = "-1"; public static final String ERROR_INFO = "消息错误"; private static final String FAILURE_CODE = "-2"; private static final String FAILUER_INFO = "消息失败"; private String code; private String msg; private ResponseMessageData data; private ResponseMessage() { } public String getCode() { return code; } public String getMsg() { return msg; } public ResponseMessageData getData() { return data; } public static boolean isSuccess(ResponseMessage message) { return message.getCode() == null ? false : message.getCode().equals(SUCCESS_CODE) ? true : false; } public static ResponseMessage transResponseMessage(Object object) { if (object instanceof Message) { Message message = (Message) object; return new Builder(message.getCode(), message.getMsg(), Object.class).build(); } else if (object instanceof Result) { Result result = (Result) object; return new Builder(result.getCode(), result.getMsg(), result.getData(), Object.class).build(); } else { return null; } } public static Builder builder() { return new Builder(); } public static Builder builder(String code, String msg) { return new Builder(code, msg); } public static Builder builder(String code, String msg, ResponseMessageData responseMessageData) { return new Builder(code, msg, responseMessageData); } public static Builder builder(String code, String msg, List list) { return new Builder(code, msg, list); } public static Builder builder(T t, Class type) { return new Builder(SUCCESS_CODE, SUCCESS_INFO, t, type); } public static Builder builder(String msg, T t, Class type) { return new Builder(SUCCESS_CODE, msg, t, type); } public static Builder builder(String code, String msg, T t, Class type) { return new Builder(code, msg, t, type); } //---------- 直接返回结果 ---------- //成功 public static ResponseMessage success() { return new Builder().build(); } public static ResponseMessage success(String code, String msg) { return new Builder(code, msg).build(); } public static ResponseMessage success(String msg) { return new Builder(SUCCESS_CODE, msg).build(); } public static ResponseMessage success(Map map) { return new Builder(SUCCESS_CODE, SUCCESS_INFO, map).build(); } public static ResponseMessage success(String msg, Map map) { return new Builder(SUCCESS_CODE, msg, map).build(); } public static ResponseMessage success(List rows) { return new Builder(SUCCESS_CODE, SUCCESS_INFO, rows).build(); } public static ResponseMessage success(String msg, List rows) { return new Builder(SUCCESS_CODE, msg, rows).build(); } public static ResponseMessage success(String code, String msg, List rows) { return new Builder(code, msg, rows).build(); } public static ResponseMessage success(T t, Class type) { return new Builder(SUCCESS_CODE, SUCCESS_INFO, t, type).build(); } public static ResponseMessage success(String msg, T t, Class type) { return new Builder(SUCCESS_CODE, msg, t, type).build(); } public static ResponseMessage success(String code, String msg, T t, Class type) { return new Builder(code, msg, t, type).build(); } //错误 public static ResponseMessage error() { return new Builder(ERROR_CODE, ERROR_INFO).build(); } public static ResponseMessage error(String code, String msg) { return new Builder(code, msg).build(); } public static ResponseMessage error(String msg) { return new Builder(ERROR_CODE, msg).build(); } public static ResponseMessage error(Map map) { return new Builder(ERROR_CODE, ERROR_INFO, map).build(); } public static ResponseMessage error(String msg, Map map) { return new Builder(ERROR_CODE, msg, map).build(); } public static ResponseMessage error(List rows) { return new Builder(ERROR_CODE, ERROR_INFO, rows).build(); } public static ResponseMessage error(String msg, List rows) { return new Builder(ERROR_CODE, msg, rows).build(); } public static ResponseMessage error(String code, String msg, List rows) { return new Builder(code, msg, rows).build(); } //失败 public static ResponseMessage failed() { return new Builder(FAILURE_CODE, FAILUER_INFO).build(); } public static ResponseMessage failed(String code, String msg) { return new Builder(code, msg).build(); } public static ResponseMessage failed(String msg) { return new Builder(FAILURE_CODE, msg).build(); } public static ResponseMessage failed(Map map) { return new Builder(ERROR_CODE, ERROR_INFO, map).build(); } public static ResponseMessage failed(String msg, Map map) { return new Builder(ERROR_CODE, msg, map).build(); } public static ResponseMessage failed(List rows) { return new Builder(FAILURE_CODE, FAILUER_INFO, rows).build(); } public static ResponseMessage failed(String msg, List rows) { return new Builder(ERROR_CODE, msg, rows).build(); } public static ResponseMessage failed(String code, String msg, List rows) { return new Builder(code, msg, rows).build(); } /** * 消息构建器类 */ public static class Builder { private String code; private String msg; private ResponseMessageData data; public Builder() { this.code = SUCCESS_CODE; this.msg = SUCCESS_INFO; this.data = ResponseMessageData.builder().build(); } public Builder(String code, String msg) { this.code = Strings.isNullOrEmpty(code) ? SUCCESS_CODE : code; this.msg = Strings.isNullOrEmpty(msg) ? SUCCESS_INFO : msg; this.data = ResponseMessageData.builder().build(); } public Builder(String code, String msg, ResponseMessageData responseMessageData) { this.code = Strings.isNullOrEmpty(code) ? SUCCESS_CODE : code; this.msg = Strings.isNullOrEmpty(msg) ? SUCCESS_INFO : msg; this.data = responseMessageData; } public Builder(String code, String msg, Map map) { this.code = Strings.isNullOrEmpty(code) ? SUCCESS_CODE : code; this.msg = Strings.isNullOrEmpty(msg) ? SUCCESS_INFO : msg; this.data = ResponseMessageData.builder(map, Map.class).build(); } public Builder(String code, String msg, List rows) { this.code = Strings.isNullOrEmpty(code) ? SUCCESS_CODE : code; this.msg = Strings.isNullOrEmpty(msg) ? SUCCESS_INFO : msg; this.data = ResponseMessageData.builder(rows).build(); } public Builder(T t, Class type) { this.code = SUCCESS_CODE; this.msg = SUCCESS_INFO; this.data = ResponseMessageData.builder(t, type).build(); } public Builder(String msg, T t, Class type) { this.code = SUCCESS_CODE; this.msg = Strings.isNullOrEmpty(msg) ? SUCCESS_INFO : msg; this.data = ResponseMessageData.builder(t, type).build(); } public Builder(String code, String msg, T t, Class type) { this.code = Strings.isNullOrEmpty(code) ? SUCCESS_CODE : code; this.msg = Strings.isNullOrEmpty(msg) ? SUCCESS_INFO : msg; this.data = ResponseMessageData.builder(t, type).build(); } public Builder setCode(String code) { this.code = code; return this; } public Builder setMsg(String msg) { this.msg = msg; return this; } public Builder setData(ResponseMessageData data) { this.data = data; return this; } public ResponseMessage build() { ResponseMessage message = new ResponseMessage(); message.code = this.code; message.msg = this.msg; message.data = this.data; return message; } } }