GroupChatUserService.AddUsers.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using System.Threading.Tasks;
  4. using GxPress.Request.App.IM;
  5. namespace GxPress.Service.Implement.GroupChatUser
  6. {
  7. public partial class GroupChatUserService
  8. {
  9. /// <summary>
  10. /// 添加群用户
  11. /// </summary>
  12. /// <param name="request"></param>
  13. /// <returns></returns>
  14. public async Task<bool> InsertAsync(InsertGroupChatUsersRequest request)
  15. {
  16. return await AddUsers(request);
  17. }
  18. /// <summary>
  19. /// 添加群用户
  20. /// </summary>
  21. /// <param name="request"></param>
  22. /// <returns></returns>
  23. public async Task<bool> AddUsers(InsertGroupChatUsersRequest request)
  24. {
  25. var groupChat = await _groupChatRepository.GetGroupChatByImIdAsync(request.GroupChatImId);
  26. var users = await _groupChatUserRepository.FindGroupChatUserByImId(groupChat.GroupChatImId);
  27. var userInts = new List<int>();
  28. if (request.UserIds.Count == 0)
  29. return true;
  30. foreach (var item in request.UserIds.Distinct())
  31. {
  32. if (!users.Any(n => n.UserId == item))
  33. {
  34. userInts.Add(item);
  35. }
  36. }
  37. request.UserIds = userInts;
  38. return await _imService.InsertGroupChatUsersAsync(request);
  39. }
  40. }
  41. }