实现消息记录功能,包括增删改查和标记已读,优化消息列表展示和未读消息计数
This commit is contained in:
31
Repository/MessageRecordRepository.cs
Normal file
31
Repository/MessageRecordRepository.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user