namespace Service; public interface IMessageRecordService { Task<(IEnumerable List, long Total)> GetPagedListAsync(int pageIndex, int pageSize); Task GetByIdAsync(long id); Task AddAsync(MessageRecord message); Task AddAsync(string title, string content); Task MarkAsReadAsync(long id); Task MarkAllAsReadAsync(); Task DeleteAsync(long id); Task GetUnreadCountAsync(); } public class MessageRecordService(IMessageRecordRepository messageRepo, INotificationService notificationService) : IMessageRecordService { public async Task<(IEnumerable List, long Total)> GetPagedListAsync(int pageIndex, int pageSize) { return await messageRepo.GetPagedListAsync(pageIndex, pageSize); } public async Task GetByIdAsync(long id) { return await messageRepo.GetByIdAsync(id); } public async Task AddAsync(MessageRecord message) { return await messageRepo.AddAsync(message); } public async Task AddAsync(string title, string content) { var message = new MessageRecord { Title = title, Content = content, IsRead = false }; var result = await messageRepo.AddAsync(message); if (result) { await notificationService.SendNotificationAsync($"新增的账单通知: {title}"); } return result; } public async Task MarkAsReadAsync(long id) { var message = await messageRepo.GetByIdAsync(id); if (message == null) return false; message.IsRead = true; message.UpdateTime = DateTime.Now; return await messageRepo.UpdateAsync(message); } public async Task MarkAllAsReadAsync() { return await messageRepo.MarkAllAsReadAsync(); } public async Task DeleteAsync(long id) { return await messageRepo.DeleteAsync(id); } public async Task GetUnreadCountAsync() { var list = await messageRepo.GetAllAsync(); return list.Count(x => !x.IsRead); } }