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