ICallApplication.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  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.Order;
  7. using Hotline.Share.Dtos.TrCallCenter;
  8. using Hotline.Share.Enums.CallCenter;
  9. using Hotline.Share.Enums.Order;
  10. namespace Hotline.Application.CallCenter
  11. {
  12. public interface ICallApplication
  13. {
  14. /// <summary>
  15. /// 查询分机
  16. /// </summary>
  17. Task<(int, IList<TelDto>)> QueryTelsAsync(QueryTelsInDto dto, CancellationToken cancellationToken);
  18. /// <summary>
  19. /// 查询分机组
  20. /// </summary>
  21. Task<IReadOnlyList<TelGroupDto>> QueryTelGroupsAsync(CancellationToken cancellationToken);
  22. #region 黑名单
  23. /// <summary>
  24. /// 新增黑名单
  25. /// </summary>
  26. Task<string> AddBlackListAsync(AddBlacklistDto dto, CancellationToken cancellationToken);
  27. /// <summary>
  28. /// 删除黑名单
  29. /// </summary>
  30. Task RemoveBlackListAsync(string id, CancellationToken cancellationToken);
  31. /// <summary>
  32. /// 查询黑名单
  33. /// </summary>
  34. Task<List<Blacklist>> QueryBlackListsAsync(CancellationToken cancellationToken);
  35. #endregion
  36. /// <summary>
  37. /// 签入
  38. /// </summary>
  39. Task<TrOnDutyResponseDto> SignInAsync(SignInDto dto, CancellationToken cancellationToken);
  40. /// <summary>
  41. /// 签出
  42. /// </summary>
  43. Task SingOutAsync(CancellationToken cancellationToken);
  44. /// <summary>
  45. /// 签出
  46. /// </summary>
  47. Task SingOutAsync(string telNo, CancellationToken cancellationToken);
  48. /// <summary>
  49. /// 查询当前用户的分机状态
  50. /// </summary>
  51. /// <param name="cancellationToken"></param>
  52. /// <returns></returns>
  53. Task<TrOnDutyResponseDto> GetTelStateAsync(CancellationToken cancellationToken);
  54. /// <summary>
  55. /// 定量查询通话记录
  56. /// </summary>
  57. Task<IReadOnlyList<CallNativeDto>> QueryCallsFixedAsync(QueryCallsFixedDto dto, CancellationToken cancellationToken);
  58. /// <summary>
  59. /// 查询分机操作记录(定量)
  60. /// </summary>
  61. Task<IReadOnlyList<TelOperation>> QueryTelOperationsAsync(QueryTelOperationsFixedDto dto,
  62. CancellationToken cancellationToken);
  63. /// <summary>
  64. /// 依据通话记录编号获取映射后的callId
  65. /// </summary>
  66. Task<string?> GetOrSetCallIdAsync(string? callNo, CancellationToken cancellationToken);
  67. /// <summary>
  68. /// 发送延迟消息让回访去关联通话记录
  69. /// </summary>
  70. /// <param name="cancellationToken"></param>
  71. /// <returns></returns>
  72. Task PublishVisitRelevanceCallIdAsync(OrderRelevanceCallIdDto dto, CancellationToken cancellationToken);
  73. Task<CallidRelation> GetRelationAsync(string callNo, CancellationToken cancellation);
  74. Task AddRelationAsync(CallidRelation relation, CancellationToken cancellation);
  75. /// <summary>
  76. /// 乐观并发更新映射关系
  77. /// </summary>
  78. Task<int> UpdateRelationOptLockAsync(CallidRelation relation, CancellationToken cancellationToken);
  79. /// <summary>
  80. /// 查询通话记录列表
  81. /// </summary>
  82. Task<List<CallNative>> GetCallListAsync(string callId, CancellationToken cancellationToken);
  83. /// <summary>
  84. /// 查询通话记录
  85. /// </summary>
  86. /// <param name="callId"></param>
  87. /// <param name="cancellationToken"></param>
  88. /// <returns></returns>
  89. Task<CallNative?> GetCallAsync(string callId, CancellationToken cancellationToken);
  90. /// <summary>
  91. /// 查询通话记录
  92. /// 因为自贡的系统中有回访和通话记录未关联的异常数据, 使用此方法查询通话记录
  93. /// </summary>
  94. Task<CallNative> GetCallByTimeAndToNoAsync(string toNo, DateTime time, CancellationToken cancellationToken);
  95. /// <summary>
  96. /// 查询通话记录
  97. /// 因为自贡的系统中有回访和通话记录未关联的异常数据, 使用此方法查询通话记录
  98. /// </summary>
  99. Task<CallNative> GetCallByCallNoAsync(string callNo, CancellationToken cancellationToken);
  100. /// <summary>
  101. /// 查询通话记录
  102. /// </summary>
  103. Task<List<CallNative>> QueryCallsAsync(
  104. string? phone = null,
  105. ECallDirection? direction = null,
  106. DateTime? callStartTimeStart = null,
  107. DateTime? callStartTimeEnd = null,
  108. CancellationToken cancellationToken = default);
  109. #region tianrun
  110. Task<TrCallRecord?> GetTianrunCallAsync(string callId, CancellationToken cancellationToken);
  111. /// <summary>
  112. /// 根据转写ID获取通话信息
  113. /// </summary>
  114. /// <returns></returns>
  115. Task<TrCallRecord?> GetTianrunCallTransliterationAsync(string transliterationId, CancellationToken cancellationToken);
  116. /// <summary>
  117. /// 修改转写状态
  118. /// </summary>
  119. /// <returns></returns>
  120. Task EditTransliterationStateAsync(string callId, ECallTransliterationState state,string transliterationId, CancellationToken cancellationToken);
  121. /// <summary>
  122. /// 关联通话记录与order(添润)
  123. /// </summary>
  124. Task RelateTianrunCallWithOrderAsync(string callId, string orderId, CancellationToken cancellationToken);
  125. /// <summary>
  126. /// 处理工单和通话记录关联问题
  127. /// </summary>
  128. /// <param name="orderId"></param>
  129. /// <param name="cancellationToken"></param>
  130. /// <returns></returns>
  131. Task<string> OrderRelateCallHandlerAsync(string orderId, CancellationToken cancellationToken);
  132. /// <summary>
  133. /// 查询通话记录
  134. /// </summary>
  135. Task<List<TrCallRecord>> QueryTianrunCallsAsync(
  136. string? phone = null,
  137. ECallDirection? direction = null,
  138. DateTime? callStartTimeStart = null,
  139. DateTime? callStartTimeEnd = null,
  140. CancellationToken cancellationToken = default);
  141. #endregion
  142. /// <summary>
  143. /// 查询分机操作选项
  144. /// </summary>
  145. /// <returns></returns>
  146. List<Kv> GetTelOperationOptions();
  147. /// <summary>
  148. /// 查询语音评价内容
  149. /// </summary>
  150. /// <param name="orderId"></param>
  151. /// <returns></returns>
  152. Task<EVoiceEvaluate> GetReplyVoiceOrDefaultByOrderIdAsync(string orderId);
  153. /// <summary>
  154. /// 保存回访详情时发送延迟消息同步通话记录
  155. /// 如果回访通话记录有多条, 需要关联通话时长最长的那条
  156. /// </summary>
  157. Task OrderVisitRelevanceCallIdAsync(VisitDto dto, CancellationToken cancellationToken);
  158. /// <summary>
  159. /// 根据 OrderId 返回用户电话评价枚举
  160. /// </summary>
  161. /// <param name="orderId"></param>
  162. /// <returns></returns>
  163. Task<ESeatEvaluate> GetSeatDefaultByOrderIdAsync(string orderId);
  164. }
  165. }