diff --git a/Repository/TransactionRecordRepository.cs b/Repository/TransactionRecordRepository.cs index 6a4ba64..a6a12c8 100644 --- a/Repository/TransactionRecordRepository.cs +++ b/Repository/TransactionRecordRepository.cs @@ -19,9 +19,9 @@ public interface ITransactionRecordRepository : IBaseRepository筛选月份 /// 交易记录列表、最后发生时间和最后ID Task<(List list, DateTime? lastOccurredAt, long lastId)> GetPagedListAsync( - DateTime? lastOccurredAt, - long? lastId, - int pageSize = 20, + DateTime? lastOccurredAt, + long? lastId, + int pageSize = 20, string? searchKeyword = null, string? classify = null, TransactionType? type = null, @@ -130,7 +130,7 @@ public interface ITransactionRecordRepository : IBaseRepository关键词 /// 匹配的交易记录列表 Task> QueryByWhereAsync(string sql); - + /// /// 执行完整的SQL查询 /// @@ -163,9 +163,9 @@ public class TransactionRecordRepository(IFreeSql freeSql) : BaseRepository list, DateTime? lastOccurredAt, long lastId)> GetPagedListAsync( - DateTime? lastOccurredAt, - long? lastId, - int pageSize = 20, + DateTime? lastOccurredAt, + long? lastId, + int pageSize = 20, string? searchKeyword = null, string? classify = null, TransactionType? type = null, @@ -175,25 +175,24 @@ public class TransactionRecordRepository(IFreeSql freeSql) : BaseRepository(); // 如果提供了搜索关键词,则添加搜索条件 - if (!string.IsNullOrWhiteSpace(searchKeyword)) - { - query = query.Where(t => t.Reason.Contains(searchKeyword) || - t.Classify.Contains(searchKeyword) || - t.Card.Contains(searchKeyword) || - t.ImportFrom.Contains(searchKeyword)); - } + query = query.WhereIf(!string.IsNullOrWhiteSpace(searchKeyword), + t => t.Reason.Contains(searchKeyword!) || + t.Classify.Contains(searchKeyword!) || + t.Card.Contains(searchKeyword!) || + t.ImportFrom.Contains(searchKeyword!)); // 按分类筛选 if (!string.IsNullOrWhiteSpace(classify)) { + if (classify == "未分类") + { + classify = string.Empty; + } query = query.Where(t => t.Classify == classify); } // 按交易类型筛选 - if (type.HasValue) - { - query = query.Where(t => t.Type == type.Value); - } + query = query.WhereIf(type.HasValue, t => t.Type == type!.Value); // 按年月筛选 if (year.HasValue && month.HasValue) @@ -370,7 +369,7 @@ public class TransactionRecordRepository(IFreeSql freeSql) : BaseRepository(); - + foreach (System.Data.DataRow row in dt.Rows) { var expando = new System.Dynamic.ExpandoObject() as IDictionary; @@ -380,7 +379,7 @@ public class TransactionRecordRepository(IFreeSql freeSql) : BaseRepository GetMonthlyStatisticsAsync(int year, int month) @@ -401,7 +400,7 @@ public class TransactionRecordRepository(IFreeSql freeSql) : BaseRepository - + 日历 - + 统计 - + 账单 - + 邮件 - + 设置 @@ -25,7 +25,7 @@