using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Datory;
using GxPress.Common.Tools;
using GxPress.Entity;
using GxPress.Request.App.OftenContact;
using GxPress.Request.GroupChatUser;
using GxPress.Result.App.OftenContact;
namespace GxPress.Service.Implement.OftenContact
{
public partial class OftenContactService
{
///
/// 获取用户
///
///
///
public async Task> GetOftenContacts(OftenContactSearchRequest request)
{
//获取文件夹数据
var result = new List();
var data = await _repository.GetContactInfosAsync(request);
for (int i = 0; i < data.Count; i++)
{
if (data[i].ChatType == 1)
{
var user = await _userRepository.GetAsync(int.Parse(data[i].ContactUserId));
if (user == null)
{
data.Remove(data[i]);
continue;
}
data[i].Name = user.Name;
data[i].AvatarUrl = StringUtils.AddDomainMin(user.AvatarUrl);
data[i].ImId = user.ImId;
data[i].ToUserId = user.Id;
}
if (data[i].ChatType == 2)
{
var groupChat = await _groupChatRepository.GetAsync(Q.Where(nameof(Entity.GroupChat.GroupChatImId),
data[i].ContactUserId));
if (groupChat == null)
{
data.Remove(data[i]);
continue;
}
data[i].Name = groupChat.Name;
data[i].AvatarUrl = StringUtils.AddDomainMin(groupChat.AvatarUrl);
data[i].ImId = groupChat.GroupChatImId;
var groupChatUserIsDisturbRequest = new GroupChatUserIsDisturbRequest();
groupChatUserIsDisturbRequest.GroupChatId = groupChat.Id;
groupChatUserIsDisturbRequest.UserId = data[i].UserId;
data[i].IsDisturb = await groupChatUserRepository.IsDisturbAsync(groupChatUserIsDisturbRequest);
}
}
result = data.ToList();
return result;
}
///
/// 获取用户
///
///
///
public async Task> GetOftenContactsAll(OftenContactSearchRequest request)
{
//获取文件夹数据
var result = new List();
var data = await _repository.GetContactInfoAllAsync(request);
foreach (var oftenContact in data)
{
if (oftenContact.ChatType == 1)
{
var user = await _userRepository.GetAsync(int.Parse(oftenContact.ContactUserId));
if (user == null)
continue;
oftenContact.Name = user.Name;
oftenContact.AvatarUrl = StringUtils.AddDomainMin(user.AvatarUrl);
oftenContact.ImId = user.ImId;
oftenContact.ToUserId = user.Id;
}
if (oftenContact.ChatType == 2)
{
var groupChat = await _groupChatRepository.GetAsync(Q.Where(nameof(Entity.GroupChat.GroupChatImId),
oftenContact.ContactUserId));
if (groupChat == null)
continue;
oftenContact.Name = groupChat.Name;
oftenContact.AvatarUrl = StringUtils.AddDomainMin(groupChat.AvatarUrl);
oftenContact.ImId = groupChat.GroupChatImId;
var groupChatUserIsDisturbRequest = new GroupChatUserIsDisturbRequest();
groupChatUserIsDisturbRequest.GroupChatId = groupChat.Id;
groupChatUserIsDisturbRequest.UserId = oftenContact.UserId;
oftenContact.IsDisturb = await groupChatUserRepository.IsDisturbAsync(groupChatUserIsDisturbRequest);
}
}
result = data.ToList();
return result;
}
}
}