超市
This commit is contained in:
@ -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());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user