using System; using System.Collections.Generic; namespace Store.Framework.Models { public static class ResultCode { public const int Success = 200; public const int Fail = 500; public const int Unauthorized = 401; public const int Forbidden = 403; public const int NotFound = 404; /// /// 参数校验失败 /// public const int ValidationError = 1001; /// /// 业务逻辑异常 /// public const int BusinessError = 2001; /// /// 服务器内部错误 /// public const int ServerError = 5000; } /// /// 非泛型基类,用于统一处理 /// public abstract class ApiResultBase { /// 业务状态码 public int Code { get; set; } = ResultCode.Success; /// 提示信息 public string Msg { get; set; } /// 请求是否成功 public bool IsSuccess => Code == ResultCode.Success; } /// /// 泛型响应 /// public class ApiResult : ApiResultBase { public T Data { get; set; } public static ApiResult Success(T data, string msg = "操作成功") => new ApiResult { Code = ResultCode.Success, Data = data, Msg = msg }; public static ApiResult Fail(string msg = "操作失败", int code = ResultCode.Fail, T data = default) => new ApiResult { Code = code, Msg = msg, Data = data }; } /// /// 无数据响应(等同于 ApiResult) /// public class ApiResult : ApiResult { public static ApiResult Success(string msg = "操作成功") => new ApiResult { Code = ResultCode.Success, Msg = msg }; public static ApiResult Fail(string msg = "操作失败", int code = ResultCode.Fail) => new ApiResult { Code = code, Msg = msg }; } public class ApiPageResult: ApiResult { public long Total { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public int TotalPages => PageSize > 0 ? (int)Math.Ceiling((double)Total / PageSize) : 0; public List List { get; set; } = new(); public ApiPageResult() { } public ApiPageResult(List list, long total, int pageIndex, int pageSize) { List = list; Total = total; PageIndex = pageIndex; PageSize = pageSize; } } }