diff --git a/pom.xml b/pom.xml index 1767a64..e8f89a8 100644 --- a/pom.xml +++ b/pom.xml @@ -272,12 +272,6 @@ - - xyz.zhouxy.plusone - plusone-commons - 0.1.0-SNAPSHOT - - diff --git a/src/main/java/com/nantian/demo/exception/handler/DefaultHandler.java b/src/main/java/com/nantian/demo/exception/handler/DefaultHandler.java index add5bd8..eeab2b5 100644 --- a/src/main/java/com/nantian/demo/exception/handler/DefaultHandler.java +++ b/src/main/java/com/nantian/demo/exception/handler/DefaultHandler.java @@ -3,9 +3,12 @@ package com.nantian.demo.exception.handler; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; -import xyz.zhouxy.plusone.commons.util.RestfulResult; +import com.nantian.demo.util.RestfulResult; -// @RestControllerAdvice +/** + * 异常处理器测试 + */ +@RestControllerAdvice public class DefaultHandler { @ExceptionHandler(Exception.class) public RestfulResult handle(Exception e) { diff --git a/src/main/java/com/nantian/demo/servcie/Tapp002Service.java b/src/main/java/com/nantian/demo/servcie/Tapp002Service.java index c099ea4..64ae534 100644 --- a/src/main/java/com/nantian/demo/servcie/Tapp002Service.java +++ b/src/main/java/com/nantian/demo/servcie/Tapp002Service.java @@ -4,15 +4,13 @@ import java.util.Map; import org.springframework.stereotype.Service; +import com.nantian.demo.util.RestfulResult; import com.nantian.mfp.pub.service.TxBaseService; -import xyz.zhouxy.plusone.commons.util.RestfulResult; - /** -* 外呼demo +* 交易服务测试 * -* @author ganlaifei -* @date 2023/3/31 17:21 +* @author ZhouXY */ @Service public class Tapp002Service extends TxBaseService { diff --git a/src/main/java/com/nantian/demo/util/RestfulResult.java b/src/main/java/com/nantian/demo/util/RestfulResult.java new file mode 100644 index 0000000..7716282 --- /dev/null +++ b/src/main/java/com/nantian/demo/util/RestfulResult.java @@ -0,0 +1,118 @@ +package com.nantian.demo.util; + +import java.util.function.BooleanSupplier; +import java.util.function.Supplier; + +import javax.annotation.Nullable; + +import org.springframework.util.Assert; + +import com.fasterxml.jackson.annotation.JsonInclude; + +/** + * 对返回给前端的数据进行封装 + * + * @author ZhouXY + */ +@JsonInclude(JsonInclude.Include.NON_NULL) +public class RestfulResult { + + public static final int SUCCESS_STATUS = 2000000; + public static final int DEFAULT_ERROR_STATUS = 9999999; + + private final Object status; + private final String message; + + private final @Nullable Object data; + + private RestfulResult(final Object status, final String message) { + this(status, message, null); + } + + public static RestfulResult success() { + return new RestfulResult(SUCCESS_STATUS, "操作成功"); + } + + public static RestfulResult success(final String message) { + Assert.notNull(message, "Message must not be null."); + return new RestfulResult(SUCCESS_STATUS, message); + } + + public static RestfulResult success(final String message, @Nullable final Object data) { + Assert.notNull(message, "Message must not be null."); + return new RestfulResult(SUCCESS_STATUS, message, data); + } + + public static RestfulResult error() { + return new RestfulResult(DEFAULT_ERROR_STATUS, "未知错误"); + } + + public static RestfulResult error(final Object status, final String message) { + Assert.notNull(status, "Status must not be null."); + Assert.notNull(message, "Message must not be null."); + return new RestfulResult(status, message); + } + + public static RestfulResult error(final Object status, final String message, @Nullable final Object data) { + Assert.notNull(status, "Status must not be null."); + Assert.notNull(message, "Message must not be null."); + return new RestfulResult(status, message, data); + } + + public static RestfulResult error(final Object status, final Throwable e) { + Assert.notNull(status, "Status must not be null."); + Assert.notNull(e, "Exception must not be null."); + String msg = e.getMessage(); + if (msg == null) { + msg = ""; + } + return new RestfulResult(status, msg); + } + + public static RestfulResult of(final boolean isSuccess, + final Supplier success, final Supplier error) { + Assert.notNull(success, "Success supplier must not be null."); + Assert.notNull(error, "Error supplier must not be null."); + return isSuccess ? success.get() : error.get(); + } + + public static RestfulResult of(final BooleanSupplier isSuccess, + final Supplier success, final Supplier error) { + Assert.notNull(isSuccess, "Conditions for success must not be null."); + Assert.notNull(success, "Success supplier must not be null."); + Assert.notNull(error, "Error supplier must not be null."); + return isSuccess.getAsBoolean() ? success.get() : error.get(); + } + + // Constructors + + private RestfulResult(final Object status, final String message, @Nullable final Object data) { + this.status = status; + this.message = message; + this.data = data; + } + + // Constructors end + + // Getters + + public Object getStatus() { + return status; + } + + public String getMessage() { + return message; + } + + @Nullable + public Object getData() { + return data; + } + + // Getters end + + @Override + public String toString() { + return "RestfulResult [status=" + status + ", message=" + message + ", data=" + data + "]"; + } +}