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; } } }