[*] 逻辑调整
This commit is contained in:
@@ -9,10 +9,8 @@ import com.acgist.taoyao.boot.utils.JSONUtils;
|
||||
import com.fasterxml.jackson.annotation.JsonIncludeProperties;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
@@ -25,12 +23,15 @@ import lombok.Setter;
|
||||
@Setter
|
||||
@Schema(title = "消息", description = "消息")
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@JsonIncludeProperties(value = { "code", "message", "header", "body" })
|
||||
public class Message implements Cloneable, Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 成功标识
|
||||
*/
|
||||
public static final String CODE_0000 = "0000";
|
||||
|
||||
/**
|
||||
* 状态编码
|
||||
@@ -53,6 +54,20 @@ public class Message implements Cloneable, Serializable {
|
||||
@Schema(title = "消息主体", description = "消息主体")
|
||||
private Object body;
|
||||
|
||||
public Message() {
|
||||
// 默认消息都是成功
|
||||
final MessageCode messageCode = MessageCode.CODE_0000;
|
||||
this.code = messageCode.getCode();
|
||||
this.message = messageCode.getMessage();
|
||||
}
|
||||
|
||||
public Message(String code, String message, Header header, Object body) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
this.header = header;
|
||||
this.body = body;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
*/
|
||||
@@ -61,21 +76,21 @@ public class Message implements Cloneable, Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
* @param messageCode 状态编码
|
||||
*/
|
||||
public void setCode(MessageCode code) {
|
||||
this.setCode(code, null);
|
||||
public void setCode(MessageCode messageCode) {
|
||||
this.setCode(messageCode, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
* @param message 状态描述
|
||||
* @param messageCode 状态编码
|
||||
* @param message 状态描述
|
||||
*
|
||||
* @return this
|
||||
*/
|
||||
public Message setCode(MessageCode code, String message) {
|
||||
this.code = code.getCode();
|
||||
this.message = StringUtils.isEmpty(message) ? code.getMessage() : message;
|
||||
public Message setCode(MessageCode messageCode, String message) {
|
||||
this.code = messageCode.getCode();
|
||||
this.message = StringUtils.isEmpty(message) ? messageCode.getMessage() : message;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -106,22 +121,22 @@ public class Message implements Cloneable, Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
* @param messageCode 状态编码
|
||||
*
|
||||
* @return 失败消息
|
||||
*/
|
||||
public static final Message fail(MessageCode code) {
|
||||
return fail(code, null, null);
|
||||
public static final Message fail(MessageCode messageCode) {
|
||||
return fail(messageCode, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
* @param body 消息主体
|
||||
* @param messageCode 状态编码
|
||||
* @param body 消息主体
|
||||
*
|
||||
* @return 失败消息
|
||||
*/
|
||||
public static final Message fail(MessageCode code, Object body) {
|
||||
return fail(code, null, body);
|
||||
public static final Message fail(MessageCode messageCode, Object body) {
|
||||
return fail(messageCode, null, body);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -135,7 +150,7 @@ public class Message implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* @param message 状态描述
|
||||
* @param body 消息主体
|
||||
* @param body 消息主体
|
||||
*
|
||||
* @return 失败消息
|
||||
*/
|
||||
@@ -144,25 +159,25 @@ public class Message implements Cloneable, Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
* @param message 状态描述
|
||||
* @param messageCode 状态编码
|
||||
* @param message 状态描述
|
||||
*
|
||||
* @return 失败消息
|
||||
*/
|
||||
public static final Message fail(MessageCode code, String message) {
|
||||
return fail(code, message, null);
|
||||
public static final Message fail(MessageCode messageCode, String message) {
|
||||
return fail(messageCode, message, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
* @param message 状态描述
|
||||
* @param body 消息主体
|
||||
* @param messageCode 状态编码
|
||||
* @param message 状态描述
|
||||
* @param body 消息主体
|
||||
*
|
||||
* @return 失败消息
|
||||
*/
|
||||
public static final Message fail(MessageCode code, String message, Object body) {
|
||||
public static final Message fail(MessageCode messageCode, String message, Object body) {
|
||||
final Message failMessage = new Message();
|
||||
failMessage.setCode(code == null ? MessageCode.CODE_9999 : code, message);
|
||||
failMessage.setCode(messageCode == null ? MessageCode.CODE_9999 : messageCode, message);
|
||||
failMessage.body = body;
|
||||
return failMessage;
|
||||
}
|
||||
@@ -195,9 +210,13 @@ public class Message implements Cloneable, Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isSuccess() {
|
||||
return CODE_0000.equals(this.code);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return JSONUtils.toJSON(this);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public class MessageCodeException extends RuntimeException {
|
||||
/**
|
||||
* 状态编码
|
||||
*/
|
||||
private final MessageCode code;
|
||||
private final MessageCode messageCode;
|
||||
|
||||
/**
|
||||
* @param message 异常消息
|
||||
@@ -41,40 +41,40 @@ public class MessageCodeException extends RuntimeException {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
* @param messageCode 状态编码
|
||||
* @param message 异常消息
|
||||
*
|
||||
* @return 状态编码异常
|
||||
*/
|
||||
public static final MessageCodeException of(MessageCode code, String message) {
|
||||
return of(null, code, message);
|
||||
public static final MessageCodeException of(MessageCode messageCode, String message) {
|
||||
return of(null, messageCode, message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param t 异常
|
||||
* @param code 状态编码
|
||||
* @param messageCode 状态编码
|
||||
* @param message 异常消息
|
||||
*
|
||||
* @return 状态编码异常
|
||||
*/
|
||||
public static final MessageCodeException of(Throwable t, MessageCode code, String message) {
|
||||
if(code == null) {
|
||||
code = MessageCode.CODE_9999;
|
||||
public static final MessageCodeException of(Throwable t, MessageCode messageCode, String message) {
|
||||
if(messageCode == null) {
|
||||
messageCode = MessageCode.CODE_9999;
|
||||
}
|
||||
if(StringUtils.isEmpty(message)) {
|
||||
message = Objects.isNull(t) ? code.getMessage() : t.getMessage();
|
||||
message = Objects.isNull(t) ? messageCode.getMessage() : t.getMessage();
|
||||
}
|
||||
return new MessageCodeException(t, code, message);
|
||||
return new MessageCodeException(t, messageCode, message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param t 异常
|
||||
* @param code 状态编码
|
||||
* @param messageCode 状态编码
|
||||
* @param message 异常消息
|
||||
*/
|
||||
public MessageCodeException(Throwable t, MessageCode code, String message) {
|
||||
public MessageCodeException(Throwable t, MessageCode messageCode, String message) {
|
||||
super(message, t);
|
||||
this.code = code;
|
||||
this.messageCode = messageCode;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -61,13 +61,13 @@ public final class ErrorUtils {
|
||||
/**
|
||||
* 注册异常(注意继承顺序)
|
||||
*
|
||||
* @param code 状态编码
|
||||
* @param messageCode 状态编码
|
||||
* @param clazz 异常类型
|
||||
*/
|
||||
public static final void register(MessageCode code, Class<?> clazz) {
|
||||
log.debug("注册状态编码异常映射:{} - {}", code, clazz);
|
||||
public static final void register(MessageCode messageCode, Class<?> clazz) {
|
||||
log.debug("注册状态编码异常映射:{} - {}", messageCode, clazz);
|
||||
synchronized (CODE_MAPPING) {
|
||||
CODE_MAPPING.put(clazz, code);
|
||||
CODE_MAPPING.put(clazz, messageCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public final class ErrorUtils {
|
||||
final Object rootError = rootException(globalError);
|
||||
if(rootError instanceof MessageCodeException messageCodeException) {
|
||||
// 状态编码异常
|
||||
final MessageCode messageCode = messageCodeException.getCode();
|
||||
final MessageCode messageCode = messageCodeException.getMessageCode();
|
||||
status = messageCode.getStatus();
|
||||
message = Message.fail(messageCode, messageCodeException.getMessage());
|
||||
} else if(rootError instanceof Throwable throwable) {
|
||||
|
||||
@@ -70,12 +70,12 @@ public interface Protocol {
|
||||
Message build(Object body);
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
* @param messageCode 状态编码
|
||||
* @param body 消息主体
|
||||
*
|
||||
* @return 信令消息
|
||||
*/
|
||||
Message build(MessageCode code, Object body);
|
||||
Message build(MessageCode messageCode, Object body);
|
||||
|
||||
/**
|
||||
* @param message 状态描述
|
||||
@@ -86,22 +86,22 @@ public interface Protocol {
|
||||
Message build(String message, Object body);
|
||||
|
||||
/**
|
||||
* @param code 状态编码
|
||||
* @param messageCode 状态编码
|
||||
* @param message 状态描述
|
||||
* @param body 消息主体
|
||||
*
|
||||
* @return 信令消息
|
||||
*/
|
||||
Message build(MessageCode code, String message, Object body);
|
||||
Message build(MessageCode messageCode, String message, Object body);
|
||||
|
||||
/**
|
||||
* @param id 消息标识
|
||||
* @param code 状态编码
|
||||
* @param messageCode 状态编码
|
||||
* @param message 状态描述
|
||||
* @param body 消息主体
|
||||
*
|
||||
* @return 信令消息
|
||||
*/
|
||||
Message build(Long id, MessageCode code, String message, Object body);
|
||||
Message build(Long id, MessageCode messageCode, String message, Object body);
|
||||
|
||||
}
|
||||
|
||||
@@ -79,8 +79,8 @@ public abstract class ProtocolAdapter implements Protocol {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message build(MessageCode code, Object body) {
|
||||
return this.build(null, code, null, body);
|
||||
public Message build(MessageCode messageCode, Object body) {
|
||||
return this.build(null, messageCode, null, body);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -89,12 +89,12 @@ public abstract class ProtocolAdapter implements Protocol {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message build(MessageCode code, String message, Object body) {
|
||||
return this.build(null, code, message, body);
|
||||
public Message build(MessageCode messageCode, String message, Object body) {
|
||||
return this.build(null, messageCode, message, body);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message build(Long id, MessageCode code, String message, Object body) {
|
||||
public Message build(Long id, MessageCode messageCode, String message, Object body) {
|
||||
// 消息标识
|
||||
if(id == null) {
|
||||
id = this.idService.buildId();
|
||||
@@ -107,7 +107,7 @@ public abstract class ProtocolAdapter implements Protocol {
|
||||
.build();
|
||||
final Message build = Message.builder().build();
|
||||
// 设置状态编码、状态描述:默认成功
|
||||
build.setCode(code == null ? MessageCode.CODE_0000 : code, message);
|
||||
build.setCode(messageCode == null ? MessageCode.CODE_0000 : messageCode, message);
|
||||
// 设置消息头部
|
||||
build.setHeader(header);
|
||||
// 设置消息主体
|
||||
|
||||
@@ -32,7 +32,7 @@ public class PlatformErrorProtocol extends ProtocolClientAdapter {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message build(Long id, MessageCode code, String message, Object body) {
|
||||
public Message build(Long id, MessageCode messageCode, String message, Object body) {
|
||||
final Long oldId = this.idLocal.get();
|
||||
if(oldId == null) {
|
||||
id = this.idService.buildId();
|
||||
@@ -41,7 +41,7 @@ public class PlatformErrorProtocol extends ProtocolClientAdapter {
|
||||
this.idLocal.remove();
|
||||
}
|
||||
// 默认设置失败状态
|
||||
return super.build(id, code == null ? MessageCode.CODE_9999 : code, message, body);
|
||||
return super.build(id, messageCode == null ? MessageCode.CODE_9999 : messageCode, message, body);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,7 +61,7 @@ public class PlatformErrorProtocol extends ProtocolClientAdapter {
|
||||
final String exceptionMessage = e.getMessage();
|
||||
if(e instanceof MessageCodeException messageCodeException) {
|
||||
// 自定义的异常
|
||||
message.setCode(messageCodeException.getCode(), messageCodeException.getMessage());
|
||||
message.setCode(messageCodeException.getMessageCode(), messageCodeException.getMessage());
|
||||
} else if(StringUtils.isNotEmpty(exceptionMessage) && exceptionMessage.length() <= Byte.MAX_VALUE) {
|
||||
// 少量信息返回异常信息
|
||||
message.setMessage(exceptionMessage);
|
||||
|
||||
Reference in New Issue
Block a user