OrderRelateCallHandler.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using DotNetCore.CAP;
  2. using Hotline.Application.CallCenter;
  3. using Hotline.CallCenter.Calls;
  4. using Hotline.Orders;
  5. using Hotline.Share.Dtos.Order;
  6. using Hotline.Share.Mq;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using XF.Domain.Dependency;
  13. using XF.Domain.Repository;
  14. namespace Hotline.Application.Orders.Handles.Order
  15. {
  16. public class OrderRelateCallHandler : ICapSubscribe, ITransientDependency
  17. {
  18. private readonly ICallApplication _callApplication;
  19. public OrderRelateCallHandler(ICallApplication callApplication)
  20. {
  21. _callApplication = callApplication;
  22. }
  23. /// <summary>
  24. /// 工单关联通话记录
  25. /// </summary>
  26. /// <param name="orderId"></param>
  27. /// <param name="cancellationToken"></param>
  28. /// <returns></returns>
  29. [CapSubscribe(EventNames.OrderRelateCall)]
  30. public async Task OrderRelateCallAsync(string orderId, CancellationToken cancellationToken)
  31. {
  32. await _callApplication.OrderRelateCallHandlerAsync(orderId, cancellationToken);
  33. }
  34. }
  35. /// <summary>
  36. /// 保存回访详情时发送延迟消息同步通话记录
  37. /// 如果回访通话记录有多条, 需要关联通话时长最长的那条
  38. /// </summary>
  39. public class OrderVisitRelateCallHandler : ICapSubscribe, ITransientDependency
  40. {
  41. private readonly ICallApplication _callApplication;
  42. public OrderVisitRelateCallHandler(ICallApplication callApplication)
  43. {
  44. _callApplication = callApplication;
  45. }
  46. [CapSubscribe(EventNames.VisitCallDelay)]
  47. public async Task OrderVisitRelateCallAsync(VisitDto dto, CancellationToken cancellationToken)
  48. {
  49. await _callApplication.OrderVisitRelevanceCallIdAsync(dto, cancellationToken);
  50. }
  51. }
  52. }