GroupChatUserService.Delete.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading.Tasks;
  5. using System.Transactions;
  6. using GxPress.Common.Exceptions;
  7. namespace GxPress.Service.Implement.GroupChatUser
  8. {
  9. public partial class GroupChatUserService
  10. {
  11. /// <summary>
  12. /// 移除用户成员
  13. /// </summary>
  14. /// <param name="groupChatUserIds"></param>
  15. /// <returns></returns>
  16. public async Task<bool> DeleteAsync(List<int> groupChatUserIds)
  17. {
  18. try
  19. {
  20. using (TransactionScope transactionScope = new TransactionScope())
  21. {
  22. foreach (var item in groupChatUserIds)
  23. {
  24. //获取成员
  25. var groupChartUser = await _groupChatUserRepository.FindGroupChatUserByIdAsync(item);
  26. //获取群
  27. var groupChart = await _groupChatRepository.FindGroupChatByIdAsync(groupChartUser.GroupChatId);
  28. //获取聊天界面
  29. var oftenContact =
  30. await _oftenContactRepository.FindOftenContactAsync(groupChartUser.UserId,
  31. groupChart.GroupChatImId);
  32. //删除聊天界面
  33. await _oftenContactRepository.DeleteAsync(oftenContact.Id);
  34. //删除群成员
  35. await _groupChatUserRepository.DeleteAsync(groupChartUser.Id);
  36. }
  37. transactionScope.Complete();
  38. }
  39. }
  40. catch (Exception e)
  41. {
  42. throw new BusinessException(e.Message);
  43. }
  44. return true;
  45. }
  46. }
  47. }