using Application.Dto.Message;
using Service.Message;
namespace Application;
///
/// 消息记录应用服务接口
///
public interface IMessageRecordApplication
{
///
/// 获取消息列表(分页)
///
Task GetListAsync(int pageIndex = 1, int pageSize = 20);
///
/// 获取未读消息数量
///
Task GetUnreadCountAsync();
///
/// 标记为已读
///
Task MarkAsReadAsync(long id);
///
/// 全部标记为已读
///
Task MarkAllAsReadAsync();
///
/// 删除消息
///
Task DeleteAsync(long id);
///
/// 新增消息
///
Task AddAsync(MessageRecord message);
}
///
/// 消息记录应用服务实现
///
public class MessageRecordApplication(
IMessageService messageService
) : IMessageRecordApplication
{
public async Task GetListAsync(int pageIndex = 1, int pageSize = 20)
{
var (list, total) = await messageService.GetPagedListAsync(pageIndex, pageSize);
return new MessagePagedResult
{
Data = list.Select(MapToResponse).ToArray(),
Total = (int)total
};
}
public async Task GetUnreadCountAsync()
{
return await messageService.GetUnreadCountAsync();
}
public async Task MarkAsReadAsync(long id)
{
return await messageService.MarkAsReadAsync(id);
}
public async Task MarkAllAsReadAsync()
{
return await messageService.MarkAllAsReadAsync();
}
public async Task DeleteAsync(long id)
{
return await messageService.DeleteAsync(id);
}
public async Task AddAsync(MessageRecord message)
{
return await messageService.AddAsync(message);
}
private static MessageRecordResponse MapToResponse(MessageRecord record)
{
return new MessageRecordResponse
{
Id = record.Id,
Title = record.Title,
Content = record.Content,
IsRead = record.IsRead,
CreateTime = record.CreateTime
};
}
}