package top.rayc.utility.exception; import java.text.MessageFormat; import java.util.Arrays; import lombok.Data; import lombok.extern.slf4j.Slf4j; @Slf4j @Data public class MessageCode { private Integer status; private String message; public Integer getStatus() { return this.status; } public void setStatus(Integer status) { this.status = status; } public String getMessage() { return this.message; } public void setMessage(String message) { this.message = message; } private MessageCode(Integer code, String msg) { this.status = code; this.message = msg; } public static MessageCode build(Integer code, String msg) { return new MessageCode(code, msg); } public static MessageCode SUCCESS = MessageCode.build(200, "ok"); public static MessageCode UN_KNOWN = MessageCode.build(200, ""); public static MessageCode SYSTEM_ERROR = MessageCode.build(200, "systemError"); public static MessageCode COMPONENT_ERROR = MessageCode.build(200, "componentError"); public static MessageCode RUNTIME_ERROR = MessageCode.build(200, "runtimeError"); public static MessageCode REMOTE_ERROR = MessageCode.build(200, "callRemoteError"); public static MessageCode CHECK_ERROR = MessageCode.build(200, "校验失败:{0}"); public String getSubMsg(String[] sub) { if (this.message == null) { return ""; } if (sub == null || sub.length == 0) { return this.message; } String[] subArr = Arrays.stream(sub) .map(item -> { if (item.isEmpty()) { return ""; } else { return item; } }) .toArray(String[]::new); try { return MessageFormat.format(this.message, subArr); } catch (Exception e) { log.error(e.getMessage(), e); return this.getMessage(); } } public static org.slf4j.Logger getLog() { return log; } }