ray-backend/ray-infrastructure-utility/src/main/java/top/rayc/utility/exception/MessageCode.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;
}
}