Эх сурвалжийг харах

Merge branch 'fix/put_order' into test

qinchaoyue 4 сар өмнө
parent
commit
bbcc6d10e1

+ 1 - 1
src/Hotline.Api/Controllers/OrderController.cs

@@ -3688,7 +3688,7 @@ public class OrderController : BaseController
             }
             }
         }
         }
 
 
-        await _orderRepository.UpdateNav(order).Include(d => d.OrderExtension).ExecuteCommandAsync();
+        await _orderRepository.UpdateNav(order, new UpdateNavRootOptions { IgnoreColumns = ["CallId"] }).Include(d => d.OrderExtension).ExecuteCommandAsync();
 
 
         //订阅此事件的内部处理工单数据只能更新各自业务的字段,不能全部更新
         //订阅此事件的内部处理工单数据只能更新各自业务的字段,不能全部更新
         //修改工单其他处理事件  (受理短信)
         //修改工单其他处理事件  (受理短信)

+ 45 - 3
src/Hotline.Api/Controllers/PushProvinceController.cs

@@ -12,7 +12,9 @@ using MapsterMapper;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.Extensions.Options;
 using Microsoft.Extensions.Options;
+using Microsoft.VisualBasic;
 using SqlSugar;
 using SqlSugar;
+using System.Text;
 using XF.Domain.Repository;
 using XF.Domain.Repository;
 
 
 namespace Hotline.Api.Controllers
 namespace Hotline.Api.Controllers
@@ -55,7 +57,7 @@ namespace Hotline.Api.Controllers
         {
         {
             Provinces = Provinces.Trim();
             Provinces = Provinces.Trim();
             string[] provinceNos = Provinces.Split(',');
             string[] provinceNos = Provinces.Split(',');
-            for (int i = 0; i < provinceNos.Length; i++)
+            for (int i = 0;i < provinceNos.Length;i++)
             {
             {
                 provinceNos[i] = provinceNos[i].Trim();
                 provinceNos[i] = provinceNos[i].Trim();
             }
             }
@@ -84,7 +86,7 @@ namespace Hotline.Api.Controllers
         {
         {
             Provinces = Provinces.Trim();
             Provinces = Provinces.Trim();
             string[] provinceNos = Provinces.Split(',');
             string[] provinceNos = Provinces.Split(',');
-            for (int i = 0; i < provinceNos.Length; i++)
+            for (int i = 0;i < provinceNos.Length;i++)
             {
             {
                 provinceNos[i] = provinceNos[i].Trim();
                 provinceNos[i] = provinceNos[i].Trim();
             }
             }
@@ -135,7 +137,7 @@ namespace Hotline.Api.Controllers
         {
         {
             Provinces = Provinces.Trim();
             Provinces = Provinces.Trim();
             string[] provinceNos = Provinces.Split(',');
             string[] provinceNos = Provinces.Split(',');
-            for (int i = 0; i < provinceNos.Length; i++)
+            for (int i = 0;i < provinceNos.Length;i++)
             {
             {
                 provinceNos[i] = provinceNos[i].Trim();
                 provinceNos[i] = provinceNos[i].Trim();
             }
             }
@@ -182,6 +184,46 @@ namespace Hotline.Api.Controllers
             }
             }
         }
         }
 
 
+        /// <summary>
+        /// 根据省编号重新执行工单和通话记录关联并推送省上
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("OrderRelateCallHandler")]
+        [AllowAnonymous]
+        public async Task<dynamic> OrderRelateCallHandlerAsync([FromBody] string provinces)
+        {
+            provinces = provinces.Trim();
+            var provinceNos = provinces.Split(',');
+            for (int i = 0;i < provinceNos.Length;i++)
+            {
+                provinceNos[i] = provinceNos[i].Trim();
+            }
+
+            var orders = await _orderRepository.Queryable()
+                .Where(d => provinceNos.Contains(d.ProvinceNo))
+                .Select(d => new { d.Id, d.ProvinceNo })
+                .ToListAsync(HttpContext.RequestAborted);
 
 
+            dynamic sb = new System.Dynamic.ExpandoObject();
+            var sbs = new List<dynamic>();
+            foreach (var order in orders)
+            {
+                sb.OrderId = order.Id;
+                sb.ProvinceNo = order.ProvinceNo;
+                try
+                {
+                    sb.Message = await _callApplication.OrderRelateCallHandlerAsync(order.Id, HttpContext.RequestAborted);
+                }
+                catch (ArgumentException e)
+                {
+                    sb.Message = e.Message;
+                }
+                finally
+                {
+                    sbs.Add(sb);
+                }
+            }
+            return sbs;
+        }
     }
     }
 }
 }

+ 8 - 5
src/Hotline.Application/CallCenter/DefaultCallApplication.cs

@@ -527,7 +527,7 @@ public abstract class DefaultCallApplication : ICallApplication
     /// <param name="orderId"></param>
     /// <param name="orderId"></param>
     /// <param name="cancellationToken"></param>
     /// <param name="cancellationToken"></param>
     /// <returns></returns>
     /// <returns></returns>
-    public virtual async Task OrderRelateCallHandlerAsync(string orderId, CancellationToken cancellationToken)
+    public virtual async Task<string> OrderRelateCallHandlerAsync(string orderId, CancellationToken cancellationToken)
     {
     {
         var orderCall = await _orderRepository.Queryable()
         var orderCall = await _orderRepository.Queryable()
             .LeftJoin<CallNative>((o, c) => o.CallId == c.Id)
             .LeftJoin<CallNative>((o, c) => o.CallId == c.Id)
@@ -536,8 +536,9 @@ public abstract class DefaultCallApplication : ICallApplication
             .FirstAsync(cancellationToken);
             .FirstAsync(cancellationToken);
         if (orderCall is null || orderCall.CallNo.IsNullOrEmpty())
         if (orderCall is null || orderCall.CallNo.IsNullOrEmpty())
         {
         {
-            _logger.LogInformation($"延迟更新工单通话, 工单: {orderId} 根据 order.id left join call_native 信息为空; 消息队列无须重试");
-            return;
+            string message = $"延迟更新工单通话, 工单: {orderId} 根据 order.id left join call_native 信息为空; 消息队列无须重试";
+            _logger.LogInformation(message);
+            return message;
         }
         }
 
 
         var call = await _callNativeRepository.Queryable()
         var call = await _callNativeRepository.Queryable()
@@ -559,7 +560,7 @@ public abstract class DefaultCallApplication : ICallApplication
                 Order = (await _orderRepository.GetAsync(orderId, cancellationToken)).Adapt<OrderDto>(),
                 Order = (await _orderRepository.GetAsync(orderId, cancellationToken)).Adapt<OrderDto>(),
                 TrCallRecordDto = call.Adapt<TrCallDto>()
                 TrCallRecordDto = call.Adapt<TrCallDto>()
             }, cancellationToken: cancellationToken);
             }, cancellationToken: cancellationToken);
-            return;
+            return "需要更新的callId 和 order.callId 相同(完成推省上)";
         }
         }
 
 
         await _orderRepository.Updateable()
         await _orderRepository.Updateable()
@@ -578,7 +579,9 @@ public abstract class DefaultCallApplication : ICallApplication
             Order = (await _orderRepository.GetAsync(orderId, cancellationToken)).Adapt<OrderDto>(),
             Order = (await _orderRepository.GetAsync(orderId, cancellationToken)).Adapt<OrderDto>(),
             TrCallRecordDto = call.Adapt<TrCallDto>()
             TrCallRecordDto = call.Adapt<TrCallDto>()
         }, cancellationToken: cancellationToken);
         }, cancellationToken: cancellationToken);
-        _systemLogRepository.Add("延迟更新工单通话", orderId, $"原CallId: {orderCall.CallId}, 更新CallId: {call.Id}", status: 1);
+        var msg = $"原CallId: {orderCall.CallId}, 更新CallId: {call.Id}";
+        _systemLogRepository.Add("延迟更新工单通话", orderId, msg, status: 1);
+        return msg + "(完成推省上)";
     }
     }
 
 
     /// <summary>
     /// <summary>

+ 1 - 1
src/Hotline.Application/CallCenter/ICallApplication.cs

@@ -156,7 +156,7 @@ namespace Hotline.Application.CallCenter
         /// <param name="orderId"></param>
         /// <param name="orderId"></param>
         /// <param name="cancellationToken"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
         /// <returns></returns>
-        Task OrderRelateCallHandlerAsync(string orderId, CancellationToken cancellationToken);
+        Task<string> OrderRelateCallHandlerAsync(string orderId, CancellationToken cancellationToken);
 
 
         /// <summary>
         /// <summary>
         /// 查询通话记录
         /// 查询通话记录

+ 2 - 1
src/Hotline.Application/CallCenter/TianRunCallApplication.cs

@@ -192,7 +192,7 @@ namespace Hotline.Application.CallCenter
         /// <param name="orderId"></param>
         /// <param name="orderId"></param>
         /// <param name="cancellationToken"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
         /// <returns></returns>
-        public override async Task OrderRelateCallHandlerAsync(string orderId, CancellationToken cancellationToken)
+        public override async Task<string> OrderRelateCallHandlerAsync(string orderId, CancellationToken cancellationToken)
         {
         {
             var order = await _orderRepository.GetAsync(orderId, cancellationToken);
             var order = await _orderRepository.GetAsync(orderId, cancellationToken);
             if (order != null)
             if (order != null)
@@ -211,6 +211,7 @@ namespace Hotline.Application.CallCenter
                     }
                     }
                 }
                 }
             }
             }
+            return "ok";
         }
         }
 
 
         /// <summary>
         /// <summary>