75 lines
2.0 KiB
Java
75 lines
2.0 KiB
Java
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;
|
|
}
|
|
|
|
|
|
|
|
}
|