Commit 472d4187 by xieshixiang

新增返回信息封装

parent 79bb66e5
package com.hikcreate.edl.pub.web.mobile.infra.core.Result;
import com.hikcreate.common.sdk.exception.BusinessException;
import com.hikcreate.common.sdk.response.apiparam.Response;
import lombok.Data;
/**
* 统一的返回结果,作为服务间进行通信的数据协议。<br/>
* code表示状态码,不同服务不同接口会返回不同的状态码<br/>
* msg表示返回的结果信息描述<br/>
* data作为泛型参数类型,在不同接口可以定义不同的类型
*
* @param <T> 数据泛型类型
*/
@Data
public class Result<T> {
/**
* 成功标记
*/
private boolean success = true;
/**
* 状态码
*/
private long code;
/**
* 描述
*/
private String msg;
/**
* 挂载数据
*/
private T data;
public Result<T> fallback() {
return fallback(code, msg);
}
public Result<T> fallback(String msg) {
return fallback(code, msg);
}
public Result<T> fallback(long code) {
return fallback(code, msg);
}
/**
* 失败时抛出业务异常
*
* @param code 状态码
* @param msg 描述
* @return 当前对象
*/
public Result<T> fallback(long code, String msg) {
if (!success) {
BusinessException ex = new BusinessException(code, msg);
throw ex;
}
return this;
}
}
package com.hikcreate.edl.pub.web.mobile.infra.core.Result;
import com.hikcreate.common.sdk.response.statuscode.IStatusCode;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author: xieshixiang
* @time:2020/6/24 10:28
**/
@AllArgsConstructor
@Getter
public enum ResultCode {
SUCCESS(1000, "操作成功"),
SYSTEM_ERROR(1001, "系统出现错误[1001]"),
PERMISSION_DENIED(1002, "没有权限"),
DATA_ERROR(1003, "数据错误"),
REPEAT_SUBMIT(1004, "重复提交"),
PARAM_ERROR(1005, "参数错误"),
BUSINESS_ERROR(1006, "业务错误"),
SIGN_ERROR(1007, "登录失效"),
NO_TOKEN(1008, "登录失效,请重新登录"),
CROWDED_ERROR(1009, "被挤下线"),
INVALID_TOKEN(1010, "登录失效,请重新登录"),
EXPIRED_TOKEN(1011, "登录失效,请重新登录"),
OUTDATE_WEAPP_VERSION(1012, "有更新的版本,请重启小程序"),
ACCOUNT_IS_FROZEN(1013, "用户账号被冻结"),
INVALID_REQUEST(1014, "非法的请求"),
ALERT_ERROR(1015, "业务错误"),
BLANK_BOX_ERROR(1016, "空盒子错误"),
BLANK_LIST_ERROR(1017, "空列表错误"),
;
/**
* 状态码
*/
private long code;
/**
* 描述信息
*/
private String msg;
}
package com.hikcreate.edl.pub.web.mobile.infra.core.Result;
import com.hikcreate.common.sdk.response.statuscode.StatusCode;
public class ResultGenerator {
public static <T> Result<T> success() {
return new Result<>();
}
public static <T> Result<T> success(String msg, T data) {
Result<T> result = new Result<>();
result.setMsg(msg);
result.setData(data);
return result;
}
public static <T> Result<T> success(T data) {
Result<T> result = new Result<>();
result.setData(data);
return result;
}
public static <T> Result<T> success4Msg(String msg) {
Result<T> result = new Result<>();
result.setMsg(msg);
return result;
}
public static <T> Result<T> fail(String msg) {
Result<T> result = new Result<>();
result.setSuccess(false);
result.setCode(StatusCode.BUSINESS_ERROR.getCode());
result.setMsg(msg);
return result;
}
public static <T> Result<T> fail(ResultCode statusCode) {
Result<T> result = new Result<>();
result.setSuccess(false);
result.setCode(statusCode.getCode());
result.setMsg(statusCode.getMsg());
return result;
}
public static <T> Result<T> fail(long code, String msg) {
Result<T> result = new Result<>();
result.setSuccess(false);
result.setCode(code);
result.setMsg(msg);
return result;
}
public static <T> Result<T> fail(long code, String msg, T data) {
Result<T> result = new Result<>();
result.setSuccess(false);
result.setCode(code);
result.setMsg(msg);
result.setData(data);
return result;
}
public static <T> Result<T> copy(Result<?> from) {
Result<T> result = new Result<>();
result.setSuccess(from.isSuccess());
result.setCode(from.getCode());
result.setMsg(from.getMsg());
return result;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment