|
@@ -1,6 +1,7 @@
|
|
using DotNetCore.CAP;
|
|
using DotNetCore.CAP;
|
|
using Hotline.Application.Orders;
|
|
using Hotline.Application.Orders;
|
|
using Hotline.Article;
|
|
using Hotline.Article;
|
|
|
|
+using Hotline.CallCenter.Calls;
|
|
using Hotline.CallCenter.Tels;
|
|
using Hotline.CallCenter.Tels;
|
|
using Hotline.FlowEngine.Notifications;
|
|
using Hotline.FlowEngine.Notifications;
|
|
using Hotline.FlowEngine.WorkflowModules;
|
|
using Hotline.FlowEngine.WorkflowModules;
|
|
@@ -11,6 +12,7 @@ using Hotline.Settings.TimeLimits;
|
|
using Hotline.Share.Dtos;
|
|
using Hotline.Share.Dtos;
|
|
using Hotline.Share.Dtos.FlowEngine.Workflow;
|
|
using Hotline.Share.Dtos.FlowEngine.Workflow;
|
|
using Hotline.Share.Dtos.Order;
|
|
using Hotline.Share.Dtos.Order;
|
|
|
|
+using Hotline.Share.Dtos.TrCallCenter;
|
|
using Hotline.Share.Enums.Order;
|
|
using Hotline.Share.Enums.Order;
|
|
using MapsterMapper;
|
|
using MapsterMapper;
|
|
using MediatR;
|
|
using MediatR;
|
|
@@ -46,8 +48,9 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
|
|
private readonly ILogger<WorkflowEndHandler> _logger;
|
|
private readonly ILogger<WorkflowEndHandler> _logger;
|
|
private readonly IKnowledgeRepository _knowledgeRepository;
|
|
private readonly IKnowledgeRepository _knowledgeRepository;
|
|
private readonly IKnowledgeWorkFlowRepository _knowledgeWorkFlowRepository;
|
|
private readonly IKnowledgeWorkFlowRepository _knowledgeWorkFlowRepository;
|
|
|
|
+ private readonly IRepository<TrCallRecord> _trCallRecordRepository;
|
|
|
|
|
|
- public WorkflowEndHandler(
|
|
|
|
|
|
+ public WorkflowEndHandler(
|
|
IKnowledgeDomainService knowledgeDomainService,
|
|
IKnowledgeDomainService knowledgeDomainService,
|
|
IOrderDomainService orderDomainService,
|
|
IOrderDomainService orderDomainService,
|
|
IOrderApplication orderApplication,
|
|
IOrderApplication orderApplication,
|
|
@@ -69,7 +72,8 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
|
|
IMediator mediator,
|
|
IMediator mediator,
|
|
IKnowledgeRepository knowledgeRepository,
|
|
IKnowledgeRepository knowledgeRepository,
|
|
IKnowledgeWorkFlowRepository knowledgeWorkFlowRepository,
|
|
IKnowledgeWorkFlowRepository knowledgeWorkFlowRepository,
|
|
- ILogger<WorkflowEndHandler> logger)
|
|
|
|
|
|
+ ILogger<WorkflowEndHandler> logger,
|
|
|
|
+ IRepository<TrCallRecord> trCallRecordRepository)
|
|
{
|
|
{
|
|
_knowledgeDomainService = knowledgeDomainService;
|
|
_knowledgeDomainService = knowledgeDomainService;
|
|
_orderDomainService = orderDomainService;
|
|
_orderDomainService = orderDomainService;
|
|
@@ -92,7 +96,8 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
|
|
_logger = logger;
|
|
_logger = logger;
|
|
_knowledgeRepository = knowledgeRepository;
|
|
_knowledgeRepository = knowledgeRepository;
|
|
_knowledgeWorkFlowRepository = knowledgeWorkFlowRepository;
|
|
_knowledgeWorkFlowRepository = knowledgeWorkFlowRepository;
|
|
- }
|
|
|
|
|
|
+ _trCallRecordRepository = trCallRecordRepository;
|
|
|
|
+ }
|
|
|
|
|
|
/// <summary>Handles a notification</summary>
|
|
/// <summary>Handles a notification</summary>
|
|
/// <param name="notification">The notification</param>
|
|
/// <param name="notification">The notification</param>
|
|
@@ -144,12 +149,17 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
|
|
:0;
|
|
:0;
|
|
order.File(now, handleDuration, fileDuration, allDuration);
|
|
order.File(now, handleDuration, fileDuration, allDuration);
|
|
await _orderRepository.UpdateAsync(order, cancellationToken);
|
|
await _orderRepository.UpdateAsync(order, cancellationToken);
|
|
-
|
|
|
|
- await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFiled, new OrderFlowDto
|
|
|
|
|
|
+ var callRecord = await _trCallRecordRepository.GetAsync(p => p.CallAccept == order.CallId, cancellationToken);
|
|
|
|
+ var orderFlowDto = new OrderFlowDto
|
|
{
|
|
{
|
|
Order = _mapper.Map<OrderDto>(order),
|
|
Order = _mapper.Map<OrderDto>(order),
|
|
WorkflowTrace = _mapper.Map<WorkflowTraceDto>(notification.Trace)
|
|
WorkflowTrace = _mapper.Map<WorkflowTraceDto>(notification.Trace)
|
|
- }, cancellationToken: cancellationToken);
|
|
|
|
|
|
+ };
|
|
|
|
+ if (callRecord!=null)
|
|
|
|
+ {
|
|
|
|
+ orderFlowDto.TrCallRecordDto = _mapper.Map<TrCallDto>(callRecord);
|
|
|
|
+ }
|
|
|
|
+ await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderFiled, orderFlowDto, cancellationToken: cancellationToken);
|
|
|
|
|
|
break;
|
|
break;
|
|
case WorkflowModuleConsts.OrderScreen:
|
|
case WorkflowModuleConsts.OrderScreen:
|