Dun.Jason 1 year ago
parent
commit
4208d4a37e

+ 3 - 0
src/Hotline.Api/Controllers/AiController.cs

@@ -171,6 +171,7 @@ namespace Hotline.Api.Controllers
                             aiOrderVisitDetail.OrderVisit.VisitState = Share.Enums.Order.EVisitState.Visited;
                             aiOrderVisitDetail.OrderVisit.AiVisitCount++;
                             aiOrderVisitDetail.OrderVisit.VisitTime = DateTime.Now;
+                            aiOrderVisitDetail.OrderVisit.IsPutThrough = true;
                             aiOrderVisitDetail.OrderVisit.VisitType = Share.Enums.Order.EVisitType.ChipVoiceVisit;
                             aiOrderVisitDetail.OrderVisit.AiVisitTime();
                             await _orderVisitRepository.UpdateAsync(aiOrderVisitDetail.OrderVisit, HttpContext.RequestAborted);
@@ -190,6 +191,8 @@ namespace Hotline.Api.Controllers
                             aiOrderVisit.TaskState = Share.Enums.Ai.EAiOrderVisitTaskState.Ended;
                         }
                         await _aiOrderVisitRepository.UpdateAsync(aiOrderVisit, HttpContext.RequestAborted);
+
+                        //处理不满意结果TODO(不满意设置为失效,生成新的人工回访记录)
                     }
                     
                 }

+ 30 - 1
src/Hotline.Application/Handlers/Order/AddVisitNotifyHandler.cs

@@ -3,6 +3,7 @@ using Hotline.Orders.Notifications;
 using Hotline.Settings;
 using Hotline.Share.Dtos;
 using Hotline.Share.Enums.Order;
+using MapsterMapper;
 using MediatR;
 using XF.Domain.Repository;
 
@@ -17,13 +18,15 @@ namespace Hotline.Application.Handlers.Order
         private readonly IRepository<OrderVisitDetail> _orderVisitedDetailRepository;
         private readonly IRepository<SystemDicData> _systemDicDataRepository;
         private readonly IOrderRepository _orderRepository;
+        private readonly IMapper _mapper;
 
-        public AddVisitNotifyHandler(IRepository<OrderVisit> orderVisitRepository, IRepository<OrderVisitDetail> orderVisitedDetailRepository,IRepository<SystemDicData> systemDicDataRepository,IOrderRepository orderRepository)
+        public AddVisitNotifyHandler(IRepository<OrderVisit> orderVisitRepository, IRepository<OrderVisitDetail> orderVisitedDetailRepository,IRepository<SystemDicData> systemDicDataRepository,IOrderRepository orderRepository,IMapper mapper)
         {
             _orderVisitRepository = orderVisitRepository;
             _orderVisitedDetailRepository = orderVisitedDetailRepository;
             _systemDicDataRepository = systemDicDataRepository;
             _orderRepository = orderRepository;
+            _mapper = mapper;
         }
 
 
@@ -77,6 +80,32 @@ namespace Hotline.Application.Handlers.Order
                         //工单
                         orderVisit.Order.Visited(orgProcessingResults.Key, orgProcessingResults.Value);
                         await _orderRepository.UpdateAsync(orderVisit.Order);
+
+                        //处理网站通知差评数据
+                        if(orderVisit.Order.Source== ESource.Hotline && orderVisit.OrderVisitDetails.Any(x=> x.OrgHandledAttitude?.Key=="1" || x.OrgHandledAttitude?.Key == "2" || x.OrgProcessingResults?.Key=="1" || x.OrgProcessingResults?.Key == "2"))
+                        {
+                            //包含不满意数据,重新生成新的回访
+                            var newOrderVisit = _mapper.Map<OrderVisit>(orderVisit);
+                            newOrderVisit.InitId();
+                            newOrderVisit.VisitState = EVisitState.NoSatisfiedWaitForVisit;
+                            newOrderVisit.VisitTime = null;
+                            newOrderVisit.IsCanHandle = false;
+                            newOrderVisit.IsCanAiVisit = false;
+                            newOrderVisit.AiVisitCount = 0;
+                            await _orderVisitRepository.AddAsync(newOrderVisit,cancellationToken);
+                            var list = _mapper.Map<List<OrderVisitDetail>>(orderVisit.OrderVisitDetails);
+                            list.ForEach(x =>
+                            {
+                                x.VisitId = newOrderVisit.Id;
+                                x.VoiceEvaluate = null;
+                                x.VoiceEvaluate = null;
+                                x.OrgHandledAttitude = null;
+                                x.OrgNoSatisfiedReason = null;
+                                x.OrgProcessingResults = null;
+                                x.VisitContent = "";
+                            });
+                            await _orderVisitedDetailRepository.AddRangeAsync(list, cancellationToken);
+                        }
                     }
                 }
             }

+ 1 - 1
src/Hotline.Repository.SqlSugar/System/SystemMenuRepository.cs

@@ -75,7 +75,7 @@ namespace Hotline.Repository.SqlSugar.System
             if (model != null)
             {
                 var perList = codes.Intersect(model.FastMenuArr).ToList();
-                return await Db.Queryable<SystemMenu>().Where(x => perList.Contains(x.PermissionCode) && x.MenuType == Share.Enums.Settings.EMenuType.Menu).ToListAsync();
+                return await Db.Queryable<SystemMenu>().Where(x => perList.Contains(x.PermissionCode) && x.MenuType == Share.Enums.Settings.EMenuType.Page).ToListAsync();
             }
             return new List<SystemMenu>();
         }

+ 3 - 3
src/Hotline/Permissions/EPermission.cs

@@ -1605,19 +1605,19 @@ namespace Hotline.Permissions
 
         #endregion
 
-        #region 大屏管理(100000)
+        #region 大屏管理(12,00,00)
         /// <summary>
         /// 大屏管理
         /// </summary>
         [Display(GroupName = "大屏管理",Name = "大屏管理",Description ="大屏管理")]
-        ScreenManage = 100000,
+        ScreenManage = 120000,
 
         #region 大屏数据
         /// <summary>
         /// 数据大屏
         /// </summary>
         [Display(GroupName ="大屏管理",Name = "数据大屏",Description ="数据大屏")]
-        ScreenData = 100100,
+        ScreenData = 120100,
 
         #endregion
         #endregion