OftenContactService.Get.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using System.Threading.Tasks;
  4. using Datory;
  5. using GxPress.Common.Tools;
  6. using GxPress.Request.App.OftenContact;
  7. using GxPress.Request.GroupChatUser;
  8. using GxPress.Result.App.OftenContact;
  9. namespace GxPress.Service.Implement.OftenContact
  10. {
  11. public partial class OftenContactService
  12. {
  13. /// <summary>
  14. /// 获取用户
  15. /// </summary>
  16. /// <param name="individualGroupId"></param>
  17. /// <returns></returns>
  18. public async Task<IEnumerable<OftenContactInfo>> GetOftenContacts(OftenContactSearchRequest request)
  19. {
  20. //获取文件夹数据
  21. var result = new List<OftenContactInfo>();
  22. var data = await _repository.GetContactInfosAsync(request);
  23. foreach (var oftenContact in data)
  24. {
  25. if (oftenContact.ChatType == 1)
  26. {
  27. var user = await _userRepository.GetAsync(int.Parse(oftenContact.ContactUserId));
  28. if (user == null)
  29. continue;
  30. oftenContact.Name = user.Name;
  31. oftenContact.AvatarUrl = StringUtils.AddDomainMin(user.AvatarUrl);
  32. oftenContact.ImId = user.ImId;
  33. oftenContact.ToUserId = user.Id;
  34. }
  35. if (oftenContact.ChatType == 2)
  36. {
  37. var groupChat = await _groupChatRepository.GetAsync(Q.Where(nameof(Entity.GroupChat.GroupChatImId),
  38. oftenContact.ContactUserId));
  39. if (groupChat == null)
  40. continue;
  41. oftenContact.Name = groupChat.Name;
  42. oftenContact.AvatarUrl = StringUtils.AddDomainMin(groupChat.AvatarUrl);
  43. oftenContact.ImId = groupChat.GroupChatImId;
  44. var groupChatUserIsDisturbRequest = new GroupChatUserIsDisturbRequest();
  45. groupChatUserIsDisturbRequest.GroupChatId = groupChat.Id;
  46. groupChatUserIsDisturbRequest.UserId = oftenContact.UserId;
  47. oftenContact.IsDisturb = await groupChatUserRepository.IsDisturbAsync(groupChatUserIsDisturbRequest);
  48. }
  49. }
  50. result = data.ToList();
  51. return result;
  52. }
  53. /// <summary>
  54. /// 获取用户
  55. /// </summary>
  56. /// <param name="individualGroupId"></param>
  57. /// <returns></returns>
  58. public async Task<IEnumerable<OftenContactInfo>> GetOftenContactsAll(OftenContactSearchRequest request)
  59. {
  60. //获取文件夹数据
  61. var result = new List<OftenContactInfo>();
  62. var data = await _repository.GetContactInfoAllAsync(request);
  63. foreach (var oftenContact in data)
  64. {
  65. if (oftenContact.ChatType == 1)
  66. {
  67. var user = await _userRepository.GetAsync(int.Parse(oftenContact.ContactUserId));
  68. if (user == null)
  69. continue;
  70. oftenContact.Name = user.Name;
  71. oftenContact.AvatarUrl = StringUtils.AddDomainMin(user.AvatarUrl);
  72. oftenContact.ImId = user.ImId;
  73. oftenContact.ToUserId = user.Id;
  74. }
  75. if (oftenContact.ChatType == 2)
  76. {
  77. var groupChat = await _groupChatRepository.GetAsync(Q.Where(nameof(Entity.GroupChat.GroupChatImId),
  78. oftenContact.ContactUserId));
  79. if (groupChat == null)
  80. continue;
  81. oftenContact.Name = groupChat.Name;
  82. oftenContact.AvatarUrl = StringUtils.AddDomainMin(groupChat.AvatarUrl);
  83. oftenContact.ImId = groupChat.GroupChatImId;
  84. var groupChatUserIsDisturbRequest = new GroupChatUserIsDisturbRequest();
  85. groupChatUserIsDisturbRequest.GroupChatId = groupChat.Id;
  86. groupChatUserIsDisturbRequest.UserId = oftenContact.UserId;
  87. oftenContact.IsDisturb = await groupChatUserRepository.IsDisturbAsync(groupChatUserIsDisturbRequest);
  88. }
  89. }
  90. result = data.ToList();
  91. return result;
  92. }
  93. }
  94. }