All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fengwenyi.api.result.ResultTemplate Maven / Gradle / Ivy

There is a newer version: 3.0.0
Show newest version
package com.fengwenyi.api.result;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Map;

/**
 * 结果模板
 *
 * 


* *

* 属性介绍: *

* *
    *
  • {@code code} :结果码
  • *
  • {@code msg} :描述
  • *
  • {@code success} :成功标志
  • *
  • {@code header} :响应头
  • *
  • {@code body} :响应体
  • *
* *
* *

* 当 code(结果码)为 SUCCESS 时,表示成功。此时 success(成功标志)为 {@code true},表示成功。 *

* *

* 反之,当 code(结果码)不为 SUCCESS 时,表示失败。此时 success(成功标志)为 {@code false},表示失败。 *

* *


* *
* *

* 特注需要提醒的是,{@code success} 属性,默认是false,
* 如果你在返回的时候没有使用给定的 {@code success(...)} 方法。
* 那么,你需要手动修改值。
* 否则返回的值可能依旧是 {@code false}.
* 那么在做出判断时,使用该属性,可能不准确。 *

* *
* *

* 关于设计的说明: *

* *

* 这是顶层,不能再添加其他属性进行返回。
* 如果需要,解决方案:
* 如果是请求相关的,可以添加到 {@code header} 里面,这是一个 {@link Map}
* 如果是数据,必须保存到body里
*

* *
* * @author Erwin Feng * @since 2.7.0 */ public class ResultTemplate implements Serializable { private static final long serialVersionUID = 2694678370842576448L; /** * 结果码 */ private String code; /** * 描述 */ private String msg; /** * 结果状态,{@code true}-成功;{@code false}-失败 */ private Boolean success = Boolean.FALSE; /** * 结果头 */ private ResultHeader header; /** * 结果体 */ private T body; /** * 时间 */ private LocalDateTime date = LocalDateTime.now(); /** * 默认操作成功 */ private static final Result SUCCESS = Result.Default.SUCCESS; /** * 默认操作失败 */ private static final Result ERROR = Result.Default.ERROR; /** * 构造方法:无参数 */ public ResultTemplate() { } /** * 操作成功 * * @param {@link Void} * @return 响应封装类 {@link ResultTemplate} */ public static ResultTemplate success() { return new ResultTemplate() .setSuccess(Boolean.TRUE) .setCode(SUCCESS.getCode()) .setMsg(SUCCESS.getMsg()) ; } /** * 操作成功 * * @param body 响应体 * @param 响应体类型 * @return 响应封装类 {@link ResultTemplate} */ @SuppressWarnings("all") public static ResultTemplate success(T body) { return new ResultTemplate() .setSuccess(Boolean.TRUE) .setCode(SUCCESS.getCode()) .setMsg(SUCCESS.getMsg()) .setBody(body) ; } /** * 操作失败 * * @param {@link Void} * @return 响应封装类 {@link ResultTemplate} */ public static ResultTemplate fail() { return new ResultTemplate() .setCode(ERROR.getCode()) .setMsg(ERROR.getMsg()) ; } /** * 操作失败 * * @param msg 描述信息 * @param {@link Void} * @return 响应封装类 {@link ResultTemplate} */ @SuppressWarnings("all") public static ResultTemplate fail(String msg) { msg = StringUtils.isBlank(msg) ? ERROR.getMsg() : msg; return new ResultTemplate() .setCode(ERROR.getCode()) .setMsg(msg) ; } /** * 操作失败 * * @param returnCode {@link Result} * @param {@link Void} * @return 响应封装类 {@link ResultTemplate} */ public static ResultTemplate fail(Result returnCode) { return new ResultTemplate() .setCode(returnCode.getCode()) .setMsg(returnCode.getMsg()) ; } /** * 操作失败 * * @param returnCode {@link Result} * @param msg 描述信息 * @param {@link Void} * @return 响应封装类 {@link ResultTemplate} */ @SuppressWarnings("all") public static ResultTemplate fail(Result returnCode, String msg) { msg = StringUtils.isBlank(msg) ? returnCode.getMsg() : msg; return new ResultTemplate() .setCode(returnCode.getCode()) .setMsg(msg) ; } /** * 操作失败 * * @param code 返回码 * @param msg 描述信息 * @param {@link Void} * @return 响应封装类 {@link ResultTemplate} */ @SuppressWarnings("all") public static ResultTemplate fail(String code, String msg) { return new ResultTemplate() .setCode(code) .setMsg(msg) ; } /** * {@code code} 的get方法 * * @return {@code code} 的值 */ @SuppressWarnings("all") public String getCode() { return code; } /** * {@code code} 的get方法 * * @param code 响应码 * @return {@link ResultTemplate} */ private ResultTemplate setCode(String code) { this.code = code; return this; } /** * {@code msg} 的get方法 * * @return {@code msg} 的值 */ @SuppressWarnings("all") public String getMsg() { return msg; } /** * {@code msg} 的get方法 * * @param msg 信息 * @return {@link ResultTemplate} */ public ResultTemplate setMsg(String msg) { this.msg = msg; return this; } /** * {@code success} 的get方法 * * @return {@code success} 的值 */ @SuppressWarnings("all") public Boolean getSuccess() { return success; } /** * {@code success} 的get方法 * * @param success 操作结果 * @return {@link ResultTemplate} */ public ResultTemplate setSuccess(Boolean success) { this.success = success; return this; } /** * {@code header} 的get方法 * * @return {@code header} 的值 */ @SuppressWarnings("all") public ResultHeader getHeader() { return header; } /** * {@code header} 的get方法 * * @param header 响应头 * @return {@link ResultTemplate} */ public ResultTemplate setHeader(ResultHeader header) { this.header = header; return this; } /** * {@code body} 的get方法 * * @return {@code body} 的值 */ @SuppressWarnings("all") public T getBody() { return body; } /** * {@code body} 的set方法 * * @param body 响应体 * @return {@link ResultTemplate} */ public ResultTemplate setBody(T body) { this.body = body; return this; } public LocalDateTime getDate() { return date; } public ResultTemplate setDate(LocalDateTime date) { this.date = date; return this; } @Override public String toString() { return "ResultTemplate{" + "code='" + code + '\'' + ", msg='" + msg + '\'' + ", success=" + success + ", header=" + header + ", body=" + body + ", date=" + date + '}'; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy