Files
EmailBill/Repository/MessageRecordRepository.cs
孙诚 13bf23a48c
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 22s
Docker Build & Deploy / Deploy to Production (push) Successful in 6s
实现消息记录功能,包括增删改查和标记已读,优化消息列表展示和未读消息计数
2025-12-29 14:18:09 +08:00

32 lines
1.0 KiB
C#

namespace Repository;
public interface IMessageRecordRepository : IBaseRepository<MessageRecord>
{
Task<(IEnumerable<MessageRecord> List, long Total)> GetPagedListAsync(int pageIndex, int pageSize);
Task<bool> MarkAllAsReadAsync();
}
public class MessageRecordRepository(IFreeSql freeSql) : BaseRepository<MessageRecord>(freeSql), IMessageRecordRepository
{
public async Task<(IEnumerable<MessageRecord> List, long Total)> GetPagedListAsync(int pageIndex, int pageSize)
{
var list = await FreeSql.Select<MessageRecord>()
.OrderByDescending(x => x.CreateTime)
.Count(out var total)
.Page(pageIndex, pageSize)
.ToListAsync();
return (list, total);
}
public async Task<bool> MarkAllAsReadAsync()
{
var affected = await FreeSql.Update<MessageRecord>()
.Set(a => a.IsRead, true)
.Set(a => a.UpdateTime, DateTime.Now)
.Where(a => !a.IsRead)
.ExecuteAffrowsAsync();
return affected >= 0;
}
}