This commit is contained in:
seesaw
2024-09-27 18:18:44 +08:00
parent 35f549ef70
commit 84e3105eee
34 changed files with 1263 additions and 80 deletions

View File

@ -16,7 +16,7 @@ import java.util.Objects;
* @param <T> 数据泛型
*/
@Data
public class StoreResult<T> implements Serializable {
public class StoreResult<T> {
/**
* 错误码
@ -37,79 +37,29 @@ public class StoreResult<T> implements Serializable {
private Boolean success;
/**
* 将传入的 result 对象,转换成另外一个泛型结果的对象
*
* 因为 A 方法返回的 CommonResult 对象,不满足调用其的 B 方法的返回,所以需要进行转换。
*
* @param result 传入的 result 对象
* @param <T> 返回的泛型
* @return 新的 CommonResult 对象
*/
public static <T> StoreResult<T> error(StoreResult<?> result) {
return error(result.getStatusCode(), result.getMessage());
}
public static <T> StoreResult<T> error(String code, String message) {
Assert.isTrue(!GlobalErrorCodeConstants.SUCCESS.getCode().equals(code), "code 必须是错误的!");
StoreResult<T> result = new StoreResult<>();
result.statusCode = code;
result.message = message;
return result;
}
public static <T> StoreResult<T> error(ErrorCode errorCode) {
return error(errorCode.getCode().toString(), errorCode.getMsg());
}
public static <T> StoreResult<T> success(T data) {
StoreResult<T> result = new StoreResult<>();
result.statusCode = "200";
result.data = data;
result.message = "";
result.message = "操作成功";
result.success = true;
return result;
}
public static boolean isSuccess(String code) {
return Objects.equals(code, GlobalErrorCodeConstants.SUCCESS.getCode().toString());
public static <T> StoreResult<T> fail(String message) {
StoreResult<T> result = new StoreResult<>();
result.statusCode = "300";
result.message = message;
result.success = false;
return result;
}
@JsonIgnore // 避免 jackson 序列化
public boolean isSuccess() {
return isSuccess(statusCode);
}
@JsonIgnore // 避免 jackson 序列化
public boolean isError() {
return !isSuccess();
}
// ========= 和 Exception 异常体系集成 =========
/**
* 判断是否有异常。如果有,则抛出 {@link ServiceException} 异常
*/
public void checkError() throws ServiceException {
if (isSuccess()) {
return;
}
// 业务异常
throw new ServiceException(Integer.valueOf(statusCode), message);
}
/**
* 判断是否有异常。如果有,则抛出 {@link ServiceException} 异常
* 如果没有,则返回 {@link #data} 数据
*/
@JsonIgnore // 避免 jackson 序列化
public T getCheckedData() {
checkError();
return data;
}
public static <T> StoreResult<T> error(ServiceException serviceException) {
return error(serviceException.getCode().toString(), serviceException.getMessage());
}
}