chore: add documentation comments and stylecop rules
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
public static class DatabaseConstants
|
||||
{
|
||||
/// <summary>
|
||||
/// 默认业务库(AppDatabase)。
|
||||
/// 默认业务库(AppDatabase).
|
||||
/// </summary>
|
||||
public const string AppDataSource = "AppDatabase";
|
||||
|
||||
|
||||
@@ -5,15 +5,43 @@ namespace TakeoutSaaS.Shared.Abstractions.Constants;
|
||||
/// </summary>
|
||||
public static class ErrorCodes
|
||||
{
|
||||
/// <summary>
|
||||
/// 请求参数错误。
|
||||
/// </summary>
|
||||
public const int BadRequest = 400;
|
||||
|
||||
/// <summary>
|
||||
/// 未授权访问。
|
||||
/// </summary>
|
||||
public const int Unauthorized = 401;
|
||||
|
||||
/// <summary>
|
||||
/// 权限不足。
|
||||
/// </summary>
|
||||
public const int Forbidden = 403;
|
||||
|
||||
/// <summary>
|
||||
/// 资源未找到。
|
||||
/// </summary>
|
||||
public const int NotFound = 404;
|
||||
|
||||
/// <summary>
|
||||
/// 资源冲突。
|
||||
/// </summary>
|
||||
public const int Conflict = 409;
|
||||
|
||||
/// <summary>
|
||||
/// 校验失败。
|
||||
/// </summary>
|
||||
public const int ValidationFailed = 422;
|
||||
|
||||
/// <summary>
|
||||
/// 服务器内部错误。
|
||||
/// </summary>
|
||||
public const int InternalServerError = 500;
|
||||
|
||||
// 业务自定义区间(10000+)
|
||||
/// <summary>
|
||||
/// 业务自定义错误(10000+)。
|
||||
/// </summary>
|
||||
public const int BusinessError = 10001;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace TakeoutSaaS.Shared.Abstractions.Results;
|
||||
/// <summary>
|
||||
/// 统一的 API 返回结果包装。
|
||||
/// </summary>
|
||||
/// <typeparam name="T">数据载荷类型</typeparam>
|
||||
/// <typeparam name="T">数据载荷类型。</typeparam>
|
||||
public sealed record ApiResponse<T>
|
||||
{
|
||||
/// <summary>
|
||||
@@ -92,6 +92,9 @@ public sealed record ApiResponse<T>
|
||||
Timestamp = DateTime.UtcNow
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// 解析当前 TraceId。
|
||||
/// </summary>
|
||||
private static string ResolveTraceId()
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(TraceContext.TraceId))
|
||||
@@ -113,9 +116,19 @@ public sealed record ApiResponse<T>
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 作为 TraceId 缺失时的本地雪花 ID 备用生成器。
|
||||
/// </summary>
|
||||
internal sealed class IdFallbackGenerator
|
||||
{
|
||||
/// <summary>
|
||||
/// 延迟初始化的单例实例承载。
|
||||
/// </summary>
|
||||
private static readonly Lazy<IdFallbackGenerator> Lazy = new(() => new IdFallbackGenerator());
|
||||
|
||||
/// <summary>
|
||||
/// 获取备用雪花生成器单例。
|
||||
/// </summary>
|
||||
public static IdFallbackGenerator Instance => Lazy.Value;
|
||||
|
||||
private readonly object _sync = new();
|
||||
@@ -126,6 +139,9 @@ internal sealed class IdFallbackGenerator
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成雪花风格的本地备用 ID。
|
||||
/// </summary>
|
||||
public long NextId()
|
||||
{
|
||||
lock (_sync)
|
||||
@@ -149,6 +165,9 @@ internal sealed class IdFallbackGenerator
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 等待到下一个毫秒以避免序列冲突。
|
||||
/// </summary>
|
||||
private static long WaitNextMillis(long lastTimestamp)
|
||||
{
|
||||
var timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
||||
|
||||
@@ -11,7 +11,6 @@ namespace TakeoutSaaS.Shared.Web.Middleware;
|
||||
/// </summary>
|
||||
public sealed class RequestLoggingMiddleware(RequestDelegate next, ILogger<RequestLoggingMiddleware> logger)
|
||||
{
|
||||
|
||||
public async Task InvokeAsync(HttpContext context)
|
||||
{
|
||||
var stopwatch = Stopwatch.StartNew();
|
||||
|
||||
@@ -12,8 +12,6 @@ namespace TakeoutSaaS.Shared.Web.Security;
|
||||
/// </remarks>
|
||||
public sealed class HttpContextCurrentUserAccessor(IHttpContextAccessor httpContextAccessor) : ICurrentUserAccessor
|
||||
{
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public long UserId
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user