版本260406

This commit is contained in:
2026-04-06 22:04:05 +08:00
parent 7dc5e73af7
commit 0b150470be
216 changed files with 98993 additions and 33 deletions

View File

@@ -0,0 +1,62 @@
namespace OrpaonVision.Core.Results;
/// <summary>
/// 分页结果。
/// </summary>
/// <typeparam name="T">数据项类型。</typeparam>
public sealed class PagedResult<T>
{
/// <summary>
/// 数据项列表。
/// </summary>
public IReadOnlyList<T> Items { get; init; } = [];
/// <summary>
/// 总记录数。
/// </summary>
public int TotalCount { get; init; }
/// <summary>
/// 页码从1开始
/// </summary>
public int PageIndex { get; init; }
/// <summary>
/// 每页大小。
/// </summary>
public int PageSize { get; init; }
/// <summary>
/// 总页数。
/// </summary>
public int TotalPages => (int)Math.Ceiling((double)TotalCount / PageSize);
/// <summary>
/// 是否有上一页。
/// </summary>
public bool HasPreviousPage => PageIndex > 1;
/// <summary>
/// 是否有下一页。
/// </summary>
public bool HasNextPage => PageIndex < TotalPages;
/// <summary>
/// 创建成功的分页结果。
/// </summary>
/// <param name="items">数据项列表。</param>
/// <param name="totalCount">总记录数。</param>
/// <param name="pageIndex">页码。</param>
/// <param name="pageSize">每页大小。</param>
/// <returns>分页结果。</returns>
public static PagedResult<T> Success(IReadOnlyList<T> items, int totalCount, int pageIndex, int pageSize)
{
return new PagedResult<T>
{
Items = items,
TotalCount = totalCount,
PageIndex = pageIndex,
PageSize = pageSize
};
}
}

View File

@@ -47,6 +47,20 @@ public class Result
};
}
/// <summary>
/// 创建成功结果(携带 TraceId
/// </summary>
public static Result SuccessWithTrace(string traceId, string code = "OK", string message = "Success")
{
return new Result
{
Succeeded = true,
Code = code,
Message = message,
TraceId = traceId
};
}
/// <summary>
/// 创建失败结果。
/// </summary>
@@ -60,6 +74,45 @@ public class Result
Errors = errors
};
}
/// <summary>
/// 创建失败结果(携带 TraceId
/// </summary>
public static Result FailWithTrace(string code, string message, string traceId, params string[] errors)
{
return new Result
{
Succeeded = false,
Code = code,
Message = message,
Errors = errors,
TraceId = traceId
};
}
/// <summary>
/// 由异常创建失败结果。
/// </summary>
public static Result FromException(Exception exception, string code = "UNHANDLED_EXCEPTION", string message = "系统出现未处理异常。", string? traceId = null)
{
var errors = new List<string>();
var current = exception;
while (current is not null)
{
errors.Add(current.Message);
current = current.InnerException;
}
return new Result
{
Succeeded = false,
Code = code,
Message = message,
Errors = errors,
TraceId = traceId
};
}
}
/// <summary>
@@ -86,6 +139,21 @@ public sealed class Result<T> : Result
};
}
/// <summary>
/// 创建成功结果(携带 TraceId
/// </summary>
public static Result<T> SuccessWithTrace(T data, string traceId, string code = "OK", string message = "Success")
{
return new Result<T>
{
Succeeded = true,
Code = code,
Message = message,
Data = data,
TraceId = traceId
};
}
/// <summary>
/// 创建失败结果。
/// </summary>
@@ -99,4 +167,19 @@ public sealed class Result<T> : Result
Errors = errors
};
}
/// <summary>
/// 创建失败结果(携带 TraceId
/// </summary>
public static new Result<T> FailWithTrace(string code, string message, string traceId, params string[] errors)
{
return new Result<T>
{
Succeeded = false,
Code = code,
Message = message,
Errors = errors,
TraceId = traceId
};
}
}