187 lines
5.7 KiB
C#
187 lines
5.7 KiB
C#
using System.Net;
|
|
using Bunny.Dao.Model.Constant.Result;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Bunny.Dao.Model.Result;
|
|
|
|
[Serializable]
|
|
public class Result<T>(HttpStatusCode code, T? data, string? message)
|
|
{
|
|
public Result(HttpStatusCode code, string? message) : this(code, default, message)
|
|
{
|
|
}
|
|
|
|
private Result(int code, T? data, string message) : this((HttpStatusCode)code, data, message)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// 返回码
|
|
/// </summary>
|
|
public HttpStatusCode Code { get; set; } = code;
|
|
|
|
/// <summary>
|
|
/// 返回说明
|
|
/// </summary>
|
|
public string? Message { get; set; } = message;
|
|
|
|
/// <summary>
|
|
/// 返回数据体 可为空
|
|
/// </summary>
|
|
public T? Data { get; set; } = data;
|
|
|
|
// 不再继承 IActionResult
|
|
public Task ExecuteResultAsync(ActionContext context)
|
|
{
|
|
return new Task<Result<T>>(() => new Result<T>(code, data, message));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 操作成功
|
|
/// </summary>
|
|
public static Result<T> Success()
|
|
{
|
|
return new Result<T>(HttpStatusCode.OK, default, SuccessConstant.Success);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 返回成功对象消息
|
|
/// </summary>
|
|
/// <param name="data">数据内容分</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Success(T data)
|
|
{
|
|
return new Result<T>(HttpStatusCode.OK, data, SuccessConstant.Success);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 自定义返回成功消息
|
|
/// </summary>
|
|
/// <param name="code">code状态码</param>
|
|
/// <param name="message">消息内容</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Success(HttpStatusCode code, string message)
|
|
{
|
|
return new Result<T>(code, default, message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 自定义返回成功消息
|
|
/// </summary>
|
|
/// <param name="code">code状态码</param>
|
|
/// <param name="data">数据内容分</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Success(HttpStatusCode code, T data)
|
|
{
|
|
return new Result<T>(code, data, SuccessConstant.Success);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 自定义返回成功消息
|
|
/// </summary>
|
|
/// <param name="message">消息内容</param>
|
|
/// <param name="data">数据内容分</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Success(string message, T data)
|
|
{
|
|
return new Result<T>(HttpStatusCode.OK, data, message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 自定义返回成功消息
|
|
/// </summary>
|
|
/// <param name="code">code状态码</param>
|
|
/// <param name="data">数据内容分</param>
|
|
/// <param name="message">消息内容</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Success(HttpStatusCode code, T data, string message)
|
|
{
|
|
return new Result<T>(code, data, message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 返回错误对象
|
|
/// </summary>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Error()
|
|
{
|
|
return new Result<T>(HttpStatusCode.InternalServerError, default, ErrorConstant.InternalServerError);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 返回错误对象
|
|
/// </summary>
|
|
/// <param name="code">code状态码</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Error(HttpStatusCode code)
|
|
{
|
|
return new Result<T>(code, default, ErrorConstant.InternalServerError);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 返回错误对象
|
|
/// </summary>
|
|
/// <param name="data">数据内容分</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Error(T? data)
|
|
{
|
|
return new Result<T>(HttpStatusCode.InternalServerError, data, ErrorConstant.InternalServerError);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 自定义返回成功消息
|
|
/// </summary>
|
|
/// <param name="code">code状态码</param>
|
|
/// <param name="message">消息内容</param>
|
|
/// <param name="data">错误数据</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Error(int code, string message, T? data = default)
|
|
{
|
|
return new Result<T>(code, data, message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 自定义返回成功消息
|
|
/// </summary>
|
|
/// <param name="code">code状态码</param>
|
|
/// <param name="message">消息内容</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Error(HttpStatusCode code, string message)
|
|
{
|
|
return new Result<T>(code, default, message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 返回错误对象
|
|
/// </summary>
|
|
/// <param name="code">code状态码</param>
|
|
/// <param name="data">数据内容分</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Error(HttpStatusCode code, T data)
|
|
{
|
|
return new Result<T>(code, data, ErrorConstant.InternalServerError);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 返回错误对象
|
|
/// </summary>
|
|
/// <param name="message">消息内容</param>
|
|
/// <param name="data">数据内容分</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Error(T data, string message)
|
|
{
|
|
return new Result<T>(HttpStatusCode.InternalServerError, data, message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 自定义返回成功消息
|
|
/// </summary>
|
|
/// <param name="code">code状态码</param>
|
|
/// <param name="data">数据内容分</param>
|
|
/// <param name="message">消息内容</param>
|
|
/// <returns>返回的数据内容</returns>
|
|
public static Result<T> Error(HttpStatusCode code, T data, string message)
|
|
{
|
|
return new Result<T>(code, data, message);
|
|
}
|
|
} |