|
@@ -0,0 +1,40 @@
|
|
|
+using Hotline.Application.FlowEngine;
|
|
|
+using Hotline.DataSharing.Province.Notifications;
|
|
|
+using Hotline.File;
|
|
|
+using Hotline.Orders;
|
|
|
+using Hotline.Share.Dtos.Order;
|
|
|
+using Hotline.Share.Enums.Order;
|
|
|
+using MapsterMapper;
|
|
|
+using MediatR;
|
|
|
+
|
|
|
+namespace Hotline.Application.Handlers.Order
|
|
|
+{
|
|
|
+ public class OrderResultNotifyHandler : INotificationHandler<OrderResultNotify>
|
|
|
+ {
|
|
|
+ private readonly IOrderRepository _orderRepository;
|
|
|
+ private readonly IWorkflowApplication _workflowApplication;
|
|
|
+
|
|
|
+ public OrderResultNotifyHandler(
|
|
|
+ IOrderRepository orderRepository,
|
|
|
+ IWorkflowApplication workflowApplication)
|
|
|
+ {
|
|
|
+ _orderRepository = orderRepository;
|
|
|
+ _workflowApplication = workflowApplication;
|
|
|
+ }
|
|
|
+
|
|
|
+ public async Task Handle(OrderResultNotify request, CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+ var order = await _orderRepository.GetAsync(request.OrderId, cancellationToken);
|
|
|
+ if (order != null)
|
|
|
+ {
|
|
|
+ if ("0".Equals(request.FinishType))
|
|
|
+ {
|
|
|
+ //todo 等_workflowApplication 新加一个退回上一个节点的方法
|
|
|
+ }
|
|
|
+ else if ("1".Equals(request.FinishType)) {
|
|
|
+ await _workflowApplication.JumpToEndAsync(order.WorkflowId, request.Opinion, cancellationToken: cancellationToken);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|