|
@@ -0,0 +1,149 @@
|
|
|
+using System.Threading.Tasks;
|
|
|
+using GxPress.Auth;
|
|
|
+using GxPress.Repository.Interface;
|
|
|
+using GxPress.Request.App.OftenContact;
|
|
|
+using GxPress.Result.App.OftenContact;
|
|
|
+using Microsoft.AspNetCore.Authorization;
|
|
|
+using Microsoft.AspNetCore.Mvc;
|
|
|
+using Microsoft.Extensions.Logging;
|
|
|
+using GxPress.Service.Interface.OftenContact;
|
|
|
+using System.Collections.Generic;
|
|
|
+using GxPress.Result.Chat;
|
|
|
+using GxPress.Service.Interface.Chat;
|
|
|
+
|
|
|
+namespace GxPress.Api.AppControllers
|
|
|
+{
|
|
|
+ /// <summary>
|
|
|
+ /// 好友
|
|
|
+ /// </summary>
|
|
|
+ [Route("api/web/often-contact")]
|
|
|
+ [ApiController]
|
|
|
+ [Authorize]
|
|
|
+ public partial class WebOftenContactController : ControllerBase
|
|
|
+ {
|
|
|
+ private readonly ILogger<OftenContactController> _logger;
|
|
|
+ private readonly IOftenContactRepository _repository;
|
|
|
+ private readonly ILoginContext _loginContext;
|
|
|
+ private readonly IOftenContactService _oftenContactService;
|
|
|
+ private readonly IChatSearchService chatSearchService;
|
|
|
+ public WebOftenContactController(ILogger<OftenContactController> logger, IOftenContactRepository repository, ILoginContext loginContext, IOftenContactService oftenContactService, IChatSearchService chatSearchService)
|
|
|
+ {
|
|
|
+ _logger = logger;
|
|
|
+ _repository = repository;
|
|
|
+ _loginContext = loginContext;
|
|
|
+ _oftenContactService = oftenContactService;
|
|
|
+ this.chatSearchService = chatSearchService;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 根据文件ID获取用户和下面的数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("list")]
|
|
|
+ public async Task<IEnumerable<OftenContactInfo>> GetOftenContactsAsync(OftenContactSearchRequest request)
|
|
|
+ {
|
|
|
+ request.UserId = _loginContext.AccountId;
|
|
|
+ return await _oftenContactService.GetOftenContacts(request);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 获取聊天界面和验证最新时间
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="individualGroupId"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("list/{individualGroupId}")]
|
|
|
+ public async Task<OftenContactInfoGenericResult> GetOftenContactInfoGenericResult(int individualGroupId)
|
|
|
+ {
|
|
|
+ var request = new OftenContactSearchRequest()
|
|
|
+ {
|
|
|
+ UserId = _loginContext.AccountId,
|
|
|
+ IndividualGroupId = individualGroupId
|
|
|
+ };
|
|
|
+ return await _oftenContactService.GetOftenContactInfoGenericResult(request);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 根据文件ID获取用户和下面的数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("all-list")]
|
|
|
+ public async Task<IEnumerable<OftenContactInfo>> GetOftenContactAllAsync(OftenContactSearchRequest request)
|
|
|
+ {
|
|
|
+ request.UserId = _loginContext.AccountId;
|
|
|
+ return await _oftenContactService.GetOftenContactsAll(request);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 添加
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("add")]
|
|
|
+ public async Task<OftenContactDto> Insert(OftenContactInRequest request)
|
|
|
+ {
|
|
|
+ var result = new OftenContactDto();
|
|
|
+ result = await _oftenContactService.InsertAsync(request, _loginContext.AccountId);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// /// 移除文件夹关系
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("remove")]
|
|
|
+ public async Task<bool> RemoveOftenContact(OftenContactDeRequest request)
|
|
|
+ {
|
|
|
+ return await _repository.RemoveOftenContactAsync(request);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 设置置顶
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("is-top")]
|
|
|
+ public async Task<bool> SetOftenContactIsTop(OftenContactDeRequest request)
|
|
|
+ {
|
|
|
+ return await _repository.SetOftenContactIsTopAsync(request);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 移动到文件夹
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("move")]
|
|
|
+ public async Task<bool> MoveOftenContactToIndividualGroup(OftenContactUpRequest request)
|
|
|
+ {
|
|
|
+ return await _repository.MoveOftenContactToIndividualGroupAsync(request);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 删除聊天界面
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="oftenContactIds"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("delete")]
|
|
|
+ public async Task<bool> DeleteAsync(OftenContactsDeRequest oftenContactIds)
|
|
|
+ {
|
|
|
+ return await _repository.DeleteAsync(oftenContactIds.OftenContactIds);
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 搜索单聊
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="keyWord"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("search/{keyWord}")]
|
|
|
+ public async Task<IEnumerable<ChatSearchResult>> GetChatSearchAsync(string keyWord)
|
|
|
+ {
|
|
|
+ var result = new List<ChatSearchResult>();
|
|
|
+ //搜索文件夹
|
|
|
+ result.AddRange(await chatSearchService.GetChatFolderNameSearchAsync(keyWord, _loginContext.AccountId));
|
|
|
+ //群聊
|
|
|
+ result.AddRange(await chatSearchService.GetGroupChatNameSearchAsync(keyWord, _loginContext.AccountId));
|
|
|
+ //单聊
|
|
|
+ result.AddRange(await chatSearchService.GetChatSearchAsync(keyWord, _loginContext.AccountId));
|
|
|
+ //好友
|
|
|
+ result.AddRange(await chatSearchService.GetFriendUserInfoResult(keyWord, _loginContext.AccountId));
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|