Selaa lähdekoodia

add order push sms

xf 1 vuosi sitten
vanhempi
commit
8b1eefbda0
1 muutettua tiedostoa jossa 39 lisäystä ja 9 poistoa
  1. 39 9
      src/Hotline.Api/Controllers/OrderController.cs

+ 39 - 9
src/Hotline.Api/Controllers/OrderController.cs

@@ -38,6 +38,9 @@ using Hotline.CallCenter.Calls;
 using Hotline.DataSharing.Province.Services;
 using Hotline.Share.Dtos.File;
 using Hotline.Application.Quality;
+using Hotline.Push.FWMessage;
+using Hotline.Share.Dtos.Push;
+using Hotline.Share.Enums.Push;
 
 namespace Hotline.Api.Controllers;
 
@@ -89,6 +92,7 @@ public class OrderController : BaseController
     private readonly IRepository<TrCallRecord> _trCallRecordRepository;
     private readonly ILogger<OrderController> _logger;
     private readonly IOrderApplication _orderApplication;
+    private readonly IPushDomainService _pushDomainService;
 
     public OrderController(
         IOrderDomainService orderDomainService,
@@ -133,7 +137,8 @@ public class OrderController : BaseController
         IRepository<WorkflowTrace> workflowTraceRepository,
         IRepository<TrCallRecord> trCallRecordRepository,
         ILogger<OrderController> logger,
-        IOrderApplication orderApplication)
+        IOrderApplication orderApplication,
+        IPushDomainService pushDomainService)
     {
         _orderDomainService = orderDomainService;
         _orderRepository = orderRepository;
@@ -178,6 +183,7 @@ public class OrderController : BaseController
         _trCallRecordRepository = trCallRecordRepository;
         _logger = logger;
         _orderApplication = orderApplication;
+        _pushDomainService = pushDomainService;
     }
 
     #region 工单发布
@@ -1047,7 +1053,7 @@ public class OrderController : BaseController
             startDto.DefinitionModuleCode = WorkflowModuleConsts.OrderDelay;
             startDto.Title = model.DelayReason;
             string workFlowId = await _workflowApplication.StartWorkflowAsync(startDto, model.Id,
-                    cancellationToken: HttpContext.RequestAborted);
+                cancellationToken: HttpContext.RequestAborted);
             model.WorkflowId = workFlowId;
             await _orderDelayRepository.UpdateAsync(model, HttpContext.RequestAborted);
         }
@@ -1266,7 +1272,7 @@ public class OrderController : BaseController
             startDto.DefinitionModuleCode = WorkflowModuleConsts.OrderScreen;
             startDto.Title = dto.Data.Content;
             workflowId = await _workflowApplication.StartWorkflowAsync(startDto, model.Id,
-                    cancellationToken: HttpContext.RequestAborted);
+                cancellationToken: HttpContext.RequestAborted);
             var screen = await _orderScreenRepository.GetAsync(model.Id, HttpContext.RequestAborted);
             if (screen != null)
             {
@@ -1727,11 +1733,13 @@ public class OrderController : BaseController
             .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone.Contains(dto.TransferPhone!))
             //.WhereIF(dto.OrgCodes.Any(), d => d.Workflow.Assigns.Any(s => dto.OrgCodes.Contains(s.OrgCode)))
             .WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.Workflow.ActualHandleOrgCode))
-            .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName.Contains(dto.NameOrNo!) || d.AcceptorStaffNo.Contains(dto.NameOrNo!))
+            .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo),
+                d => d.AcceptorName.Contains(dto.NameOrNo!) || d.AcceptorStaffNo.Contains(dto.NameOrNo!))
             .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
             .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
             .WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))
-            .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.FromPhone.Contains(dto.PhoneNo!) || d.Contact.Contains(dto.PhoneNo!))
+            .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo),
+                d => d.FromPhone.Contains(dto.PhoneNo!) || d.Contact.Contains(dto.PhoneNo!))
             .WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode)
             .WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart)
             .WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd)
@@ -1790,7 +1798,7 @@ public class OrderController : BaseController
             .Includes(d => d.OrderDelays)
             .Includes(d => d.OrderScreens)
             .Includes(d => d.OrderVisits, x => x.OrderVisitDetails)
-            .Includes(d=> d.OrderVisits,x=>x.Employee)
+            .Includes(d => d.OrderVisits, x => x.Employee)
             .FirstAsync(d => d.Id == id);
         if (order == null)
             return new();
@@ -1858,6 +1866,27 @@ public class OrderController : BaseController
 
         //内容分词
         await _orderApplication.OrderParticiple(dto.Content, order.Id, HttpContext.RequestAborted);
+
+        try
+        {
+            await _pushDomainService.PushAsync(new MessageDto
+            {
+                PushBusiness = EPushBusiness.OrderAccept,
+                ExternalId = order.Id,
+                OrderId = order.Id,
+                PushPlatform = EPushPlatform.Sms,
+                Content =
+                    $"12345温馨提示:您的来电已受理(流水号:{order.No};提取码:{order.Password}),可通过网站(http://hotline.12345lm.cn)进行查询,谢谢。【12345热线平台】)",
+                Name = order.FromName,
+                Remark = order.Title,
+                TelNumber = order.Contact
+            }, HttpContext.RequestAborted);
+        }
+        catch (Exception e)
+        {
+            _logger.LogError("创建工单推送sms失败,{err}", e.Message);
+        }
+
         return order.Id;
     }
 
@@ -1935,7 +1964,8 @@ public class OrderController : BaseController
         try
         {
             //期满时间
-            var expiredTimeConfig = _timeLimitDomainService.CalcExpiredTime(DateTime.Now, EFlowDirection.OrgToCenter, dto.Data.AcceptTypeCode);
+            var expiredTimeConfig =
+                _timeLimitDomainService.CalcExpiredTime(DateTime.Now, EFlowDirection.OrgToCenter, dto.Data.AcceptTypeCode);
 
             var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
             startDto.DefinitionModuleCode = WorkflowModuleConsts.OrderHandle;
@@ -2319,7 +2349,7 @@ public class OrderController : BaseController
                 {
                     await _provinceService.RevokeOrder(
                         new PublishSpecialDto
-                        { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(model) },
+                            { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(model) },
                         HttpContext.RequestAborted);
                 }
                 catch (Exception e)
@@ -2384,7 +2414,7 @@ public class OrderController : BaseController
                 {
                     await _provinceService.RevokeOrder(
                         new PublishSpecialDto
-                        { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(special) },
+                            { Order = _mapper.Map<OrderDto>(order), Special = _mapper.Map<OrderSpecialDto>(special) },
                         HttpContext.RequestAborted);
                 }
                 catch (Exception e)