using System.Collections.Generic; using System.Threading.Tasks; using GxPress.Auth; using GxPress.Common.Page; using GxPress.Repository.Interface.Missive; using GxPress.Request.App.Missive; using GxPress.Result.App.Missive; using GxPress.Service.Interface.Missive; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Linq; using System; namespace GxPress.Api.AppControllers { /// /// 站内信 /// [Route("api/app/missive")] [ApiController] [Authorize] public class MissiveController : ControllerBase { private readonly IMissiveRepository _missiveRepository; private readonly IMissiveAnalyzeRepository _missiveAnalyzeRepository; private readonly IMissiveService _missiveService; private readonly ILoginContext _loginContext; public MissiveController(IMissiveRepository missiveRepository, IMissiveService missiveService, ILoginContext loginContext, IMissiveAnalyzeRepository missiveAnalyzeRepository) { _missiveRepository = missiveRepository; _missiveService = missiveService; _loginContext = loginContext; _missiveAnalyzeRepository = missiveAnalyzeRepository; } /// /// 根据站内信ID获取详情 /// /// /// [HttpGet("get/{missiveId}")] public async Task GetMissiveInfo(int missiveId) { return await _missiveService.GetMissiveInfoAsync(missiveId, _loginContext.AccountId); } /// /// 添加/修改站内信 /// /// /// [HttpPut("add")] public async Task Insert(MissiveInRequest request) { // request.HtmlContent = StringUtils.RemoveEmoji(request.HtmlContent); // request.Content = StringUtils.RemoveEmoji(request.Content); // request.Title = StringUtils.RemoveEmoji(request.Title); request.UserId = _loginContext.AccountId; request.MissiveAddresseeUserIds.Remove(request.UserId); request.MissiveCcUserIds.Remove(request.UserId); return await _missiveService.InsertOrUpdateAsync(request); } /// /// 获取站内信列表 /// /// /// [HttpPost("search")] public async Task> GetMissiveSearchResult(MissiveSearchRequest request) { request.UserId = _loginContext.AccountId; return await _missiveService.GetMissiveSearchResultAsync(request); } /// /// 文章点赞 评论点赞 文章收藏 文章转发 已废弃 /// /// [HttpPost("analyze")] public async Task AddMissiveAnalyze([FromBody] MissiveAnalyzeRequest request) { request.UserId = _loginContext.AccountId; return await _missiveAnalyzeRepository.SetMissiveAnalyzeAsync(request); } /// /// 获取站内信详情 /// /// /// [HttpGet("{id}")] public async Task GetMissiveDetail(int id) { return await _missiveService.GetMissiveDetailAsync(id); } /// /// 获取站内信详情-web专属 /// /// /// [HttpGet("web/{id}")] [AllowAnonymous] public async Task GetWebMissiveDetail(int id) { var missiveInfos = await _missiveService.GetMissiveInfoAsync(id, 0); missiveInfos.Items = missiveInfos.Items.OrderByDescending(n => Convert.ToDateTime(n.CreatedDate)).ToList(); return missiveInfos; } /// /// 获取站内信已读未读数据 /// /// /// [HttpPost("read")] public async Task> GetMissiveReadListAsync(MissiveReadListRequest request) { return await _missiveService.GetMissiveReadListAsync(request); } /// /// 站内信撤回 /// /// /// [HttpPut("recall/{missiveId}")] public async Task RecallAsync(int missiveId) { return await _missiveService.RecallAsync(missiveId); } } }