first commot
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 8s
Docker Build & Deploy / Deploy to Production (push) Successful in 7s

This commit is contained in:
孙诚
2025-12-25 11:20:56 +08:00
commit 4526cc6396
104 changed files with 11070 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
namespace WebApi.Controllers.Dto;
public class BaseResponse
{
/// <summary>
/// 是否成功
/// </summary>
public bool Success { get; set; }
/// <summary>
/// 错误消息
/// </summary>
public string? Message { get; set; }
public static BaseResponse Fail(string message)
{
return new BaseResponse
{
Success = false,
Message = message
};
}
}
public class BaseResponse<T> : BaseResponse
{
/// <summary>
/// 返回数据
/// </summary>
public T? Data { get; set; }
public new static BaseResponse<T> Fail(string message)
{
return new BaseResponse<T>
{
Success = false,
Message = message
};
}
}

View File

@@ -0,0 +1,40 @@
namespace WebApi.Controllers.Dto;
/// <summary>
/// 邮件消息DTO包含额外的统计信息
/// </summary>
public class EmailMessageDto
{
public long Id { get; set; }
public string Subject { get; set; } = string.Empty;
public string From { get; set; } = string.Empty;
public string Body { get; set; } = string.Empty;
public string HtmlBody { get; set; } = string.Empty;
public DateTime ReceivedDate { get; set; }
public DateTime CreateTime { get; set; }
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 已解析的账单数量
/// </summary>
public int TransactionCount { get; set; }
/// <summary>
/// 从实体转换为DTO
/// </summary>
public static EmailMessageDto FromEntity(Entity.EmailMessage entity, int transactionCount = 0)
{
return new EmailMessageDto
{
Id = entity.Id,
Subject = entity.Subject,
From = entity.From,
Body = entity.Body,
HtmlBody = entity.HtmlBody,
ReceivedDate = entity.ReceivedDate,
CreateTime = entity.CreateTime,
UpdateTime = entity.UpdateTime,
TransactionCount = transactionCount
};
}
}

View File

@@ -0,0 +1,25 @@
namespace WebApi.Controllers.Dto;
public class PagedResponse<T> : BaseResponse<T[]>
{
public long LastId { get; set; } = 0;
/// <summary>
/// 最后一条记录的时间(用于游标分页)
/// </summary>
public DateTime? LastTime { get; set; }
/// <summary>
/// 总记录数
/// </summary>
public int Total { get; set; }
public new static PagedResponse<T> Fail(string message)
{
return new PagedResponse<T>
{
Success = false,
Message = message
};
}
}