123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package com.persagy.framework.common.pojo;
- import com.persagy.framework.common.exception.ErrorCode;
- import com.persagy.framework.common.exception.ServiceException;
- import com.persagy.framework.common.exception.enums.GlobalErrorCodeConstants;
- import com.fasterxml.jackson.annotation.JsonIgnore;
- import lombok.Data;
- import org.springframework.util.Assert;
- import java.io.Serializable;
- import java.util.Objects;
- /**
- * 通用返回
- *
- * @param <T> 数据泛型
- */
- @Data
- public class CommonResult<T> implements Serializable {
- /**
- * 错误码
- *
- * @see ErrorCode#getCode()
- */
- private Integer code;
- /**
- * 返回数据
- */
- private T data;
- /**
- * 错误提示,用户可阅读
- *
- * @see ErrorCode#getMsg() ()
- */
- private String msg;
- /**
- * 将传入的 result 对象,转换成另外一个泛型结果的对象
- *
- * 因为 A 方法返回的 CommonResult 对象,不满足调用其的 B 方法的返回,所以需要进行转换。
- *
- * @param result 传入的 result 对象
- * @param <T> 返回的泛型
- * @return 新的 CommonResult 对象
- */
- public static <T> CommonResult<T> error(CommonResult<?> result) {
- return error(result.getCode(), result.getMsg());
- }
- public static <T> CommonResult<T> error(Integer code, String message) {
- Assert.isTrue(!GlobalErrorCodeConstants.SUCCESS.getCode().equals(code), "code 必须是错误的!");
- CommonResult<T> result = new CommonResult<>();
- result.code = code;
- result.msg = message;
- return result;
- }
- public static <T> CommonResult<T> error(ErrorCode errorCode) {
- return error(errorCode.getCode(), errorCode.getMsg());
- }
- public static <T> CommonResult<T> success(T data) {
- CommonResult<T> result = new CommonResult<>();
- result.code = GlobalErrorCodeConstants.SUCCESS.getCode();
- result.data = data;
- result.msg = "";
- return result;
- }
- public static boolean isSuccess(Integer code) {
- return Objects.equals(code, GlobalErrorCodeConstants.SUCCESS.getCode());
- }
- @JsonIgnore // 避免 jackson 序列化
- public boolean isSuccess() {
- return isSuccess(code);
- }
- @JsonIgnore // 避免 jackson 序列化
- public boolean isError() {
- return !isSuccess();
- }
- // ========= 和 Exception 异常体系集成 =========
- /**
- * 判断是否有异常。如果有,则抛出 {@link ServiceException} 异常
- */
- public void checkError() throws ServiceException {
- if (isSuccess()) {
- return;
- }
- // 业务异常
- throw new ServiceException(code, msg);
- }
- public static <T> CommonResult<T> error(ServiceException serviceException) {
- return error(serviceException.getCode(), serviceException.getMessage());
- }
- }
|