IGroupRepository.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Text.RegularExpressions;
  5. using System.Threading.Tasks;
  6. using GxPress.Common.Page;
  7. using GxPress.Request.App.Group;
  8. using GxPress.Result.App.Group;
  9. using GxPress.Result.App.GroupUser;
  10. using Datory;
  11. using GxPress.Entity;
  12. using GxPress.Request.App.Topic;
  13. using GxPress.Result.Job;
  14. namespace GxPress.Repository.Interface
  15. {
  16. public interface IGroupRepository : IRepository
  17. {
  18. Task<int> InsertAsync(GroupInRequest request);
  19. Task<bool> UpdateAsync(GroupUpRequest request);
  20. Task<bool> DeleteAsync(int id);
  21. Task<bool> DeleteAsync(SqlKata.Query query);
  22. Task<PagedList<GroupUserFindResult>> FindGroupByGroupFolderId(GroupSearchRequest request);
  23. Task<GroupDetailResult> GroupDetailAsync(GroupDetailRequest request);
  24. /// <summary>
  25. /// 获取用户未读取话题数量
  26. /// </summary>
  27. /// <param name="userId"></param>
  28. /// <param name="groupId"></param>
  29. /// <returns></returns>
  30. Task<int> GetUReadCountAsync(int userId, int groupId);
  31. /// <summary>
  32. /// 获取小组的共享话题数量
  33. /// </summary>
  34. /// <param name="groupId"></param>
  35. /// <returns></returns>
  36. Task<int> SharingCountAsync(int groupId);
  37. Task<Entity.Group> GetAsync(int id);
  38. /// <summary>
  39. /// 是否免打扰
  40. /// </summary>
  41. /// <param name="groupId"></param>
  42. /// <returns></returns>
  43. Task<bool> SetGroupIsAdminAsync(int groupId);
  44. /// <summary>
  45. /// 是否禁言
  46. /// </summary>
  47. /// <param name="groupId"></param>
  48. /// <returns></returns>
  49. Task<bool> SetGroupIsWordsAsync(int groupId);
  50. /// <summary>
  51. /// 获取小组详情
  52. /// </summary>
  53. /// <param name="guId"></param>
  54. /// <returns></returns>
  55. Task<GroupDetailResult> GroupDetailByGuIdAsync(string guId,int userId);
  56. Task<IEnumerable<GroupUser>> GetAllAsync(SqlKata.Query query);
  57. /// <summary>
  58. /// 搜索小组成员
  59. /// </summary>
  60. /// <param name="request"></param>
  61. /// <returns></returns>
  62. Task<IEnumerable<GroupUserListResult>> SearchGroupUserAsync(TopicDetailListRequest request);
  63. Task<List<JobGroupResult>> ElasticSearchGroup();
  64. }
  65. }