using Infrastructure.Constant;
using Newtonsoft.Json;
namespace Infrastructure.Model
{
///
/// 统一的API返回结果类
///
public class ApiResult
{
///
/// 返回码
///
public int Code { get; set; }
///
/// 返回信息
///
public string Msg { get; set; }
///
/// 如果data值为null,则忽略序列化将不会返回data字段
///
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public object Data { get; set; }
///
/// 初始化一个新创建的APIResult对象,使其表示一个空消息
///
public ApiResult()
{
}
///
/// 初始化一个新创建的 ApiResult 对象
///
/// 返回码
/// 返回信息
public ApiResult(int code, string msg)
{
Code = code;
Msg = msg;
}
///
/// 初始化一个新创建的 ApiResult 对象
///
/// 返回码
/// 返回信息
/// 返回数据
public ApiResult(int code, string msg, object data)
{
Code = code;
Msg = msg;
if (data != null)
{
Data = data;
}
}
///
/// 返回成功消息
///
///
public ApiResult Success()
{
Code = (int)ResultCode.SUCCESS;
Msg = "success";
return this;
}
///
/// 返回成功消息
///
/// 数据对象
/// 成功消息
public static ApiResult Success(object data)
{
return new ApiResult(HttpStatus.SUCCESS, "success", data);
}
///
/// 返回成功消息
///
/// 返回内容
/// 成功消息
public static ApiResult Success(string msg)
{
return new ApiResult(HttpStatus.SUCCESS, msg, null);
}
///
/// 返回成功消息
///
/// 返回内容
/// 返回的数据对象
/// 成功消息
public static ApiResult Success(string msg, object data)
{
return new ApiResult(HttpStatus.SUCCESS, msg, data);
}
///
/// 访问被拒
///
public ApiResult On401()
{
Code = (int)ResultCode.DENY;
Msg = "access denyed";
return this;
}
///
/// 返回失败消息
///
/// 错误码
/// 返回的失败信息
///
public static ApiResult Error(int code, string msg)
{
return new ApiResult(code, msg);
}
///
/// 返回失败消息
/// 自定义异常
///
/// 返回的失败信息
///
public static ApiResult Error(string msg)
{
return new ApiResult((int)ResultCode.CUSTOM_ERROR, msg);
}
public override string ToString()
{
return $"msg={Msg},data={Data}";
}
}
public class ApiResult : ApiResult
{
public T Result { get; set; }
}
}