fix
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 24s
Docker Build & Deploy / Deploy to Production (push) Successful in 6s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 3s

This commit is contained in:
SunCheng
2026-01-30 10:41:19 +08:00
parent d9703d31ae
commit 704f58b1a1
46 changed files with 6074 additions and 301 deletions

View File

@@ -3,7 +3,7 @@
public interface IBudgetRepository : IBaseRepository<BudgetRecord>
{
Task<decimal> GetCurrentAmountAsync(BudgetRecord budget, DateTime startDate, DateTime endDate);
Task UpdateBudgetCategoryNameAsync(string oldName, string newName, TransactionType type);
}
@@ -35,7 +35,7 @@ public class BudgetRepository(IFreeSql freeSql) : BaseRepository<BudgetRecord>(f
public async Task UpdateBudgetCategoryNameAsync(string oldName, string newName, TransactionType type)
{
var records = await FreeSql.Select<BudgetRecord>()
.Where(b => b.SelectedCategories.Contains(oldName) &&
.Where(b => b.SelectedCategories.Contains(oldName) &&
((type == TransactionType.Expense && b.Category == BudgetCategory.Expense) ||
(type == TransactionType.Income && b.Category == BudgetCategory.Income)))
.ToListAsync();

View File

@@ -3,7 +3,7 @@
public interface IEmailMessageRepository : IBaseRepository<EmailMessage>
{
Task<EmailMessage?> ExistsAsync(string md5);
/// <summary>
/// 分页获取邮件列表(游标分页)
/// </summary>
@@ -12,7 +12,7 @@ public interface IEmailMessageRepository : IBaseRepository<EmailMessage>
/// <param name="pageSize">每页数量</param>
/// <returns>邮件列表、最后接收时间和最后ID</returns>
Task<(List<EmailMessage> list, DateTime? lastReceivedDate, long lastId)> GetPagedListAsync(DateTime? lastReceivedDate, long? lastId, int pageSize = 20);
/// <summary>
/// 获取总数
/// </summary>
@@ -31,20 +31,20 @@ public class EmailMessageRepository(IFreeSql freeSql) : BaseRepository<EmailMess
public async Task<(List<EmailMessage> list, DateTime? lastReceivedDate, long lastId)> GetPagedListAsync(DateTime? lastReceivedDate, long? lastId, int pageSize = 20)
{
var query = FreeSql.Select<EmailMessage>();
// 如果提供了游标,则获取小于游标位置的记录
if (lastReceivedDate.HasValue && lastId.HasValue)
{
query = query.Where(e => e.ReceivedDate < lastReceivedDate.Value ||
query = query.Where(e => e.ReceivedDate < lastReceivedDate.Value ||
(e.ReceivedDate == lastReceivedDate.Value && e.Id < lastId.Value));
}
var list = await query
.OrderByDescending(e => e.ReceivedDate)
.OrderByDescending(e => e.Id)
.Page(1, pageSize)
.ToListAsync();
var lastRecord = list.Count > 0 ? list.Last() : null;
return (list, lastRecord?.ReceivedDate, lastRecord?.Id ?? 0);
}

View File

@@ -15,7 +15,7 @@ public class MessageRecordRepository(IFreeSql freeSql) : BaseRepository<MessageR
.Count(out var total)
.Page(pageIndex, pageSize)
.ToListAsync();
return (list, total);
}

View File

@@ -29,12 +29,12 @@ public interface ITransactionPeriodicRepository : IBaseRepository<TransactionPer
/// <summary>
/// 周期性账单仓储实现
/// </summary>
public class TransactionPeriodicRepository(IFreeSql freeSql)
public class TransactionPeriodicRepository(IFreeSql freeSql)
: BaseRepository<TransactionPeriodic>(freeSql), ITransactionPeriodicRepository
{
public async Task<IEnumerable<TransactionPeriodic>> GetPagedListAsync(
int pageIndex,
int pageSize,
int pageIndex,
int pageSize,
string? searchKeyword = null)
{
var query = FreeSql.Select<TransactionPeriodic>();
@@ -42,8 +42,8 @@ public class TransactionPeriodicRepository(IFreeSql freeSql)
// 搜索关键词
if (!string.IsNullOrWhiteSpace(searchKeyword))
{
query = query.Where(x =>
x.Reason.Contains(searchKeyword) ||
query = query.Where(x =>
x.Reason.Contains(searchKeyword) ||
x.Classify.Contains(searchKeyword));
}
@@ -60,8 +60,8 @@ public class TransactionPeriodicRepository(IFreeSql freeSql)
if (!string.IsNullOrWhiteSpace(searchKeyword))
{
query = query.Where(x =>
x.Reason.Contains(searchKeyword) ||
query = query.Where(x =>
x.Reason.Contains(searchKeyword) ||
x.Classify.Contains(searchKeyword));
}