mirror of
https://gitee.com/ccnetcore/Yi
synced 2026-03-11 20:19:27 +08:00
73 lines
2.5 KiB
C#
73 lines
2.5 KiB
C#
|
|
using Mapster;
|
|||
|
|
using Microsoft.AspNetCore.Authorization;
|
|||
|
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
|
using SqlSugar;
|
|||
|
|
using Volo.Abp.Application.Dtos;
|
|||
|
|
using Volo.Abp.Application.Services;
|
|||
|
|
using Yi.Framework.Bbs.Application.Contracts.Dtos.Notice;
|
|||
|
|
using Yi.Framework.Bbs.Domain.Entities;
|
|||
|
|
using Yi.Framework.SqlSugarCore.Abstractions;
|
|||
|
|
|
|||
|
|
namespace Yi.Framework.Bbs.Application.Services
|
|||
|
|
{
|
|||
|
|
public class BbsNoticeService : ApplicationService
|
|||
|
|
{
|
|||
|
|
private ISqlSugarRepository<BbsNoticeAggregateRoot, Guid> _repository;
|
|||
|
|
public BbsNoticeService(ISqlSugarRepository<BbsNoticeAggregateRoot, Guid> repository)
|
|||
|
|
{
|
|||
|
|
_repository = repository;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询用户的消息,需登录
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="input"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
/// <exception cref="NotImplementedException"></exception>
|
|||
|
|
[Authorize]
|
|||
|
|
public async Task<PagedResultDto<BbsNoticeGetListOutputDto>> GetListAsync(BbsNoticeGetListInputVo input)
|
|||
|
|
{
|
|||
|
|
RefAsync<int> total = 0;
|
|||
|
|
var entities = await _repository._DbQueryable.Where(x => x.AcceptUserId == CurrentUser.Id)
|
|||
|
|
.OrderByDescending(x => x.CreationTime)
|
|||
|
|
.ToPageListAsync(input.SkipCount, input.MaxResultCount, total);
|
|||
|
|
|
|||
|
|
var output = entities.Adapt<List<BbsNoticeGetListOutputDto>>();
|
|||
|
|
return new PagedResultDto<BbsNoticeGetListOutputDto>(total, output);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 已读消息,不传guid,代表一键已读,需登录
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[Authorize]
|
|||
|
|
[Route("bbs-notice/read/{noticeId?}")]
|
|||
|
|
public async Task PutReadAsync(Guid? noticeId)
|
|||
|
|
{
|
|||
|
|
//一键已读
|
|||
|
|
if (noticeId is null)
|
|||
|
|
{
|
|||
|
|
await _repository._Db.Updateable<BbsNoticeAggregateRoot>()
|
|||
|
|
.SetColumns(it => it.IsRead == true)
|
|||
|
|
.Where(x => x.AcceptUserId == CurrentUser.Id)
|
|||
|
|
.Where(x => x.IsRead == false)
|
|||
|
|
.ExecuteCommandAsync();
|
|||
|
|
}
|
|||
|
|
//已读一条
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
await _repository._Db.Updateable<BbsNoticeAggregateRoot>()
|
|||
|
|
.SetColumns(it => it.IsRead == true)
|
|||
|
|
.Where(x => x.AcceptUserId == CurrentUser.Id)
|
|||
|
|
.Where(x => x.IsRead == false)
|
|||
|
|
.Where(x => x.Id == noticeId)
|
|||
|
|
.ExecuteCommandAsync();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|