using System.Linq.Expressions; namespace HttpClientStudy.WebApp { /// <summary> /// API 返回基类 /// </summary> public class BaseResult { /// <summary> /// 接口返回代码 /// </summary> public int Code { get; set; } /// <summary> /// 接口返回说明信息 /// </summary> public string? Message { get; set; } /// <summary> /// 接口返回数据 /// </summary> public object? Data { get; set; } = string.Empty; } /// <summary> /// API 泛型返回基类 /// </summary> /// <typeparam name="T"></typeparam> public class BaseResult<T> : BaseResult { /// <summary> /// 创建返回基数 /// </summary> /// <param name="data">泛型数据</param> /// <param name="code">编码</param> /// <param name="message">说明信息</param> /// <returns></returns> public static BaseResult<T> Create(T? data = default, int code = 0, string message = "") { return new BaseResult<T> { Data = data, Code = code, Message = message }; } /// <summary> /// 泛型返回核心数据 /// </summary> public new T? Data { get; set; } } /// <summary> /// API返回基类 工具类 /// </summary> public static class BaseResultUtil { /// <summary> /// 创建 泛型返回基类 /// </summary> public static BaseResult<TData> Create<TData>(TData data, int code = 0, string message = "") { return new BaseResult<TData>() { Data = data, Code = code, Message = message }; } /// <summary> /// 创建 泛型成功返回基类 /// </summary> public static BaseResult<TData> Success<TData>() { return Success<TData>(default, 1, "成功"); } /// <summary> /// 创建 泛型成功返回基类 /// </summary> public static BaseResult<TData> Success<TData>(TData? data) { return Success(data, 1, "成功"); } /// <summary> /// 创建 泛型成功返回基类 /// </summary> public static BaseResult<TData> Success<TData>(TData? data, string message) { return Success(data, 1, message); } /// <summary> /// 创建 泛型成功返回基类 /// </summary> public static BaseResult<TData> Success<TData>(TData? data, int code, string message) { return new BaseResult<TData>() { Data = data, Code = code, Message = message }; } /// <summary> /// 创建 泛型错误返回基类 /// </summary> public static BaseResult<TData> Error<TData>() { return Error<TData>(default, 0, "错误"); } /// <summary> /// 创建 泛型错误返回基类 /// </summary> public static BaseResult<TData> Error<TData>(TData? data) { return Error(data, 0, "错误"); } /// <summary> /// 创建 泛型错误返回基类 /// </summary> public static BaseResult<TData> Error<TData>(TData? data, int code = 0, string message = "错误") { return new BaseResult<TData>() { Data = data, Code = code, Message = message }; } /// <summary> /// 创建 泛型失败返回基类 /// </summary> public static BaseResult<TData> Fail<TData>() { return Fail<TData>(default, 0, "失败"); } /// <summary> /// 创建 泛型失败返回基类 /// </summary> public static BaseResult<TData> Fail<TData>(TData? data) { return Fail(data, 0, "失败"); } /// <summary> /// 创建 泛型失败返回基类 /// </summary> public static BaseResult<TData> Fail<TData>(TData? data, int code = 0, string message = "失败") { return new BaseResult<TData>() { Data = data, Code = 0, Message = "失败" }; } /// <summary> /// 创建 泛型异常返回基类 /// </summary> public static BaseResult<TData> Exception<TData>(Exception ex) { return Exception<TData>(ex, default,0); } /// <summary> /// 创建 泛型异常返回基类 /// </summary> /// <typeparam name="TData"></typeparam> /// <param name="ex"></param> /// <param name="data"></param> /// <returns></returns> public static BaseResult<TData> Exception<TData>(Exception ex, TData? data) { return Exception(ex, data, 0); } /// <summary> /// 创建 泛型异常返回基类 /// </summary> public static BaseResult<TData> Exception<TData>(Exception ex, TData? data, int code = 0) { return new BaseResult<TData>() { Data = data, Code = code, Message = $"异常:{ex.Message}" }; } /// <summary> /// 创建 泛型默认返回基类 /// </summary> public static BaseResult<TData> Default<TData>(TData? data = default) { return new BaseResult<TData>() { Code = 0, Message = "", Data = data }; } } }