ICallApplication.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. using Hotline.CallCenter.BlackLists;
  2. using Hotline.CallCenter.Calls;
  3. using Hotline.CallCenter.Tels;
  4. using Hotline.Share.Dtos;
  5. using Hotline.Share.Dtos.CallCenter;
  6. using Hotline.Share.Dtos.TrCallCenter;
  7. using Hotline.Share.Enums.CallCenter;
  8. namespace Hotline.Application.CallCenter
  9. {
  10. public interface ICallApplication
  11. {
  12. /// <summary>
  13. /// 查询分机
  14. /// </summary>
  15. Task<IReadOnlyList<TelDto>> QueryTelsAsync(CancellationToken cancellationToken);
  16. /// <summary>
  17. /// 查询分机组
  18. /// </summary>
  19. Task<IReadOnlyList<TelGroupDto>> QueryTelGroupsAsync(CancellationToken cancellationToken);
  20. #region 黑名单
  21. /// <summary>
  22. /// 新增黑名单
  23. /// </summary>
  24. Task<string> AddBlackListAsync(AddBlacklistDto dto, CancellationToken cancellationToken);
  25. /// <summary>
  26. /// 删除黑名单
  27. /// </summary>
  28. Task RemoveBlackListAsync(string id, CancellationToken cancellationToken);
  29. /// <summary>
  30. /// 查询黑名单
  31. /// </summary>
  32. Task<List<Blacklist>> QueryBlackListsAsync(CancellationToken cancellationToken);
  33. #endregion
  34. /// <summary>
  35. /// 签入
  36. /// </summary>
  37. Task<TrOnDutyResponseDto> SignInAsync(SignInDto dto, CancellationToken cancellationToken);
  38. /// <summary>
  39. /// 签出
  40. /// </summary>
  41. Task SingOutAsync(CancellationToken cancellationToken);
  42. /// <summary>
  43. /// 签出
  44. /// </summary>
  45. Task SingOutAsync(string telNo, CancellationToken cancellationToken);
  46. /// <summary>
  47. /// 查询当前用户的分机状态
  48. /// </summary>
  49. /// <param name="cancellationToken"></param>
  50. /// <returns></returns>
  51. Task<TrOnDutyResponseDto> GetTelStateAsync(CancellationToken cancellationToken);
  52. /// <summary>
  53. /// 定量查询通话记录
  54. /// </summary>
  55. Task<IReadOnlyList<CallNativeDto>> QueryCallsFixedAsync(QueryCallsFixedDto dto, CancellationToken cancellationToken);
  56. /// <summary>
  57. /// 查询分机操作记录(定量)
  58. /// </summary>
  59. Task<IReadOnlyList<TelOperation>> QueryTelOperationsAsync(QueryTelOperationsFixedDto dto,
  60. CancellationToken cancellationToken);
  61. /// <summary>
  62. /// 依据通话记录编号获取映射后的callId
  63. /// </summary>
  64. Task<string> GetOrSetCallIdAsync(string callNo, CancellationToken cancellationToken);
  65. Task<CallidRelation> GetRelationAsync(string callNo, CancellationToken cancellation);
  66. Task AddRelationAsync(CallidRelation relation, CancellationToken cancellation);
  67. /// <summary>
  68. /// 乐观并发更新映射关系
  69. /// </summary>
  70. Task<int> UpdateRelationOptLockAsync(CallidRelation relation, CancellationToken cancellationToken);
  71. /// <summary>
  72. /// 查询通话记录列表
  73. /// </summary>
  74. Task<List<CallNative>> GetCallListAsync(string callId, CancellationToken cancellationToken);
  75. /// <summary>
  76. /// 查询通话记录
  77. /// </summary>
  78. /// <param name="callId"></param>
  79. /// <param name="cancellationToken"></param>
  80. /// <returns></returns>
  81. Task<CallNative?> GetCallAsync(string callId, CancellationToken cancellationToken);
  82. /// <summary>
  83. /// 查询通话记录
  84. /// </summary>
  85. Task<List<CallNative>> QueryCallsAsync(
  86. string? phone = null,
  87. ECallDirection? direction = null,
  88. DateTime? callStartTimeStart = null,
  89. DateTime? callStartTimeEnd = null,
  90. CancellationToken cancellationToken = default);
  91. #region tianrun
  92. Task<TrCallRecord?> GetTianrunCallAsync(string callId, CancellationToken cancellationToken);
  93. /// <summary>
  94. /// 根据转写ID获取通话信息
  95. /// </summary>
  96. /// <returns></returns>
  97. Task<TrCallRecord?> GetTianrunCallTransliterationAsync(string transliterationId, CancellationToken cancellationToken);
  98. /// <summary>
  99. /// 修改转写状态
  100. /// </summary>
  101. /// <returns></returns>
  102. Task EditTransliterationStateAsync(string callId, ECallTransliterationState state,string transliterationId, CancellationToken cancellationToken);
  103. /// <summary>
  104. /// 关联通话记录与order(添润)
  105. /// </summary>
  106. Task RelateTianrunCallWithOrderAsync(string callId, string orderId, CancellationToken cancellationToken);
  107. /// <summary>
  108. /// 查询通话记录
  109. /// </summary>
  110. Task<List<TrCallRecord>> QueryTianrunCallsAsync(
  111. string? phone = null,
  112. ECallDirection? direction = null,
  113. DateTime? callStartTimeStart = null,
  114. DateTime? callStartTimeEnd = null,
  115. CancellationToken cancellationToken = default);
  116. #endregion
  117. /// <summary>
  118. /// 查询分机操作选项
  119. /// </summary>
  120. /// <returns></returns>
  121. List<Kv> GetTelOperationOptions();
  122. }
  123. }