mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-18 21:15:06 +08:00
107 lines
3.1 KiB
Java
107 lines
3.1 KiB
Java
![]() |
package cn.iocoder.dashboard.common.pojo;
|
|||
|
|
|||
|
import cn.iocoder.dashboard.common.exception.ErrorCode;
|
|||
|
import cn.iocoder.dashboard.common.exception.GlobalException;
|
|||
|
import cn.iocoder.dashboard.common.exception.ServiceException;
|
|||
|
import cn.iocoder.dashboard.common.exception.enums.GlobalErrorCodeConstants;
|
|||
|
import com.alibaba.fastjson.annotation.JSONField;
|
|||
|
import lombok.Data;
|
|||
|
import org.springframework.util.Assert;
|
|||
|
|
|||
|
import java.io.Serializable;
|
|||
|
|
|||
|
/**
|
|||
|
* 通用返回
|
|||
|
*
|
|||
|
* @param <T> 数据泛型
|
|||
|
*/
|
|||
|
@Data
|
|||
|
public final class CommonResult<T> implements Serializable {
|
|||
|
|
|||
|
/**
|
|||
|
* 错误码
|
|||
|
*
|
|||
|
* @see ErrorCode#getCode()
|
|||
|
*/
|
|||
|
private Integer code;
|
|||
|
/**
|
|||
|
* 返回数据
|
|||
|
*/
|
|||
|
private T data;
|
|||
|
/**
|
|||
|
* 错误提示,用户可阅读
|
|||
|
*
|
|||
|
* @see ErrorCode#getMessage() ()
|
|||
|
*/
|
|||
|
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.getMessage());
|
|||
|
}
|
|||
|
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
@JSONField(serialize = false) // 避免序列化
|
|||
|
public boolean isSuccess() {
|
|||
|
return GlobalErrorCodeConstants.SUCCESS.getCode().equals(code);
|
|||
|
}
|
|||
|
|
|||
|
@JSONField(serialize = false) // 避免序列化
|
|||
|
public boolean isError() {
|
|||
|
return !isSuccess();
|
|||
|
}
|
|||
|
|
|||
|
// ========= 和 Exception 异常体系集成 =========
|
|||
|
|
|||
|
/**
|
|||
|
* 判断是否有异常。如果有,则抛出 {@link GlobalException} 或 {@link ServiceException} 异常
|
|||
|
*/
|
|||
|
public void checkError() throws GlobalException, ServiceException {
|
|||
|
if (isSuccess()) {
|
|||
|
return;
|
|||
|
}
|
|||
|
// 全局异常
|
|||
|
if (GlobalErrorCodeConstants.isMatch(code)) {
|
|||
|
throw new GlobalException(code, msg);
|
|||
|
}
|
|||
|
// 业务异常
|
|||
|
throw new ServiceException(code, msg);
|
|||
|
}
|
|||
|
|
|||
|
public static <T> CommonResult<T> error(ServiceException serviceException) {
|
|||
|
return error(serviceException.getCode(), serviceException.getMessage());
|
|||
|
}
|
|||
|
|
|||
|
public static <T> CommonResult<T> error(GlobalException globalException) {
|
|||
|
return error(globalException.getCode(), globalException.getMessage());
|
|||
|
}
|
|||
|
|
|||
|
}
|