Przeglądaj źródła

Merge branch 'test' into lib/test

libin 1 miesiąc temu
rodzic
commit
15411a0f4c

+ 26 - 0
src/Hotline.Api/Controllers/Bigscreen/SeatController.cs

@@ -3,6 +3,7 @@ using Hotline.Caching.Interfaces;
 using Hotline.CallCenter.Tels;
 using Hotline.CallCenter.Tels.CallTelDomain;
 using Hotline.Settings;
+using Hotline.Share.Dtos.CallCenter;
 using Hotline.Share.Dtos.TrCallCenter;
 using Mapster;
 using Microsoft.AspNetCore.Authorization;
@@ -61,5 +62,30 @@ namespace Hotline.Api.Controllers.Bigscreen
             });
             return list;
         }
+
+        /// <summary>
+        /// 获取监听分机
+        /// </summary>
+        /// <returns></returns>
+        [AllowAnonymous]
+        [HttpGet("query-listentels-xingtang")]
+        public async Task<List<TelOutDto>> GetListenTelsXT()
+        {
+            var listenTels = _systemSettingCacheManager.GetSetting(SettingConstants.ListenTels)?.SettingValue;
+            var callOuttQueueId = _systemSettingCacheManager.GetSetting(SettingConstants.CallOutQueueId)?.SettingValue;
+            List<TelOutDto> list = [];
+            if (listenTels != null && callOuttQueueId != null)
+            {
+                foreach (var item in listenTels)
+                {
+                    list.Add(new TelOutDto()
+                    {
+                        Queue = callOuttQueueId[0],
+                        TelNo = item
+                    });
+                }
+            }
+            return list;
+        }
     }
 }

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

@@ -92,6 +92,7 @@ namespace Hotline.Api.Controllers
         /// 签入
         /// </summary>
         [HttpPost("signin")]
+        [LogFilter("分机签入")]
         public Task<TrOnDutyResponseDto> SignIn([FromBody] SignInDto dto)
             => _callApplication.SignInAsync(dto, HttpContext.RequestAborted);
 
@@ -99,6 +100,7 @@ namespace Hotline.Api.Controllers
         /// 签出
         /// </summary>
         [HttpPost("signout")]
+        [LogFilter("分机签出")]
         public Task SignOut()
             => _callApplication.SingOutAsync(HttpContext.RequestAborted);
 
@@ -106,6 +108,7 @@ namespace Hotline.Api.Controllers
         /// 签出
         /// </summary>
         [HttpPost("signout/{telNo}")]
+        [LogFilter("分机签出")]
         public Task SignOut(string telNo)
             => _callApplication.SingOutAsync(telNo, HttpContext.RequestAborted);
 

+ 2 - 12
src/Hotline.Api/Controllers/IPPbxController.cs

@@ -1,16 +1,11 @@
 using DotNetCore.CAP;
 using Hotline.CallCenter.Tels.CallTelDomain;
-using ExtendedNumerics.Exceptions;
-using Hotline.Ai.Quality;
-using Hotline.Application.CallCenter.Calls;
 using Hotline.Application.Systems;
 using Hotline.Application.Tels;
 using Hotline.Caching.Interfaces;
 using Hotline.CallCenter.Calls;
-using Hotline.CallCenter.Configs;
 using Hotline.CallCenter.Tels;
 using Hotline.Orders;
-using Hotline.Permissions;
 using Hotline.Quality;
 using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Settings;
@@ -24,27 +19,20 @@ using Hotline.Users;
 using MapsterMapper;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Options;
 using Newtonsoft.Json;
-using System.Threading;
 using Hotline.EventBus;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Filters;
 using XF.Domain.Repository;
 using XF.Utility.EnumExtensions;
-using Hotline.FlowEngine.Notifications;
 using Hotline.Quality.Notifications;
 using Hotline.Share.Dtos.Quality;
-using MongoDB.Driver;
-using Hotline.Repository.SqlSugar.CallCenter;
-using SqlSugar;
 using Hotline.Tools;
 using Hotline.Api.Filter;
 using XF.Domain.Cache;
 using Hotline.Application.CallCenter;
 using Mapster;
-using Tr.Sdk;
 
 namespace Hotline.Api.Controllers
 {
@@ -370,6 +358,7 @@ namespace Hotline.Api.Controllers
         /// </summary>
         /// <returns></returns>
         [HttpPost("rest")]
+        [LogFilter("分机小休")]
         public async Task Rest([FromBody] TrRestDto dto)
         {
             var work = _userCacheManager.GetWorkByUser(_sessionContext.RequiredUserId);
@@ -392,6 +381,7 @@ namespace Hotline.Api.Controllers
         /// </summary>
         /// <returns></returns>
         [HttpPost("unrest")]
+        [LogFilter("分机取消小休")]
         public async Task UnRest()
         {
             var work = _userCacheManager.GetWorkByUser(_sessionContext.RequiredUserId);

+ 1 - 0
src/Hotline.Api/Controllers/IdentityController.cs

@@ -157,6 +157,7 @@ jxrWXHbT1FB6DqkdOnBbQqS1Azqz5HxLlSyEK3F60e3SgB5iZsDZ
             MenuLogoImageMini = menuLogoImageMini,
             IsLoginMessageCode = IsLoginMessageCode,
             AppScope = _appOptions.Value.AppScope,
+            CallCenterSocketUrl = _systemSettingCacheManager.GetSetting(SettingConstants.CallCenterSocketUrl).SettingValue?.FirstOrDefault(),
         };
     }
 

+ 0 - 13
src/Hotline.Api/Hotline.Api.csproj

@@ -42,17 +42,4 @@
     <None Remove="logs\**" />
   </ItemGroup>
 
-  <ItemGroup>
-    <Compile Remove="Controllers\Order\OrderComplementController.cs" />
-    <Compile Remove="logs\**" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <EmbeddedResource Remove="logs\**" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <Content Remove="logs\**" />
-  </ItemGroup>
-
 </Project>

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

@@ -108,7 +108,7 @@ public abstract class DefaultCallApplication : ICallApplication
     public virtual async Task<IReadOnlyList<TelGroupDto>> QueryGroupTel(CancellationToken cancellationToken)
     {
         var data = await _telGroupRepository.Queryable().Includes(d => d.Tels)
-         // .Select<TelGroupDto>()
+          // .Select<TelGroupDto>()
           .ToListAsync(cancellationToken);
         return _mapper.Map<IReadOnlyList<TelGroupDto>>(data);
     }
@@ -295,12 +295,13 @@ public abstract class DefaultCallApplication : ICallApplication
             .WhereIF(dto.IsMissOrder != null && dto.IsMissOrder.Value == true, (d, o, v) => string.IsNullOrEmpty(o.Id) == true)
             .WhereIF(dto.IsMissOrder != null && dto.IsMissOrder.Value == false, (d, o, v) => string.IsNullOrEmpty(o.Id) == false)
             .OrderByIF(dto.SortField.IsNullOrEmpty(), (d, o, v) => d.BeginIvrTime, OrderByType.Desc)
-            .OrderByIF(dto is { SortField: "waitduration", SortRule: 0 }, (d, o, v) =>  d.WaitDuration , OrderByType.Asc)
+            .OrderByIF(dto is { SortField: "waitduration", SortRule: 0 }, (d, o, v) => d.WaitDuration, OrderByType.Asc)
             .OrderByIF(dto is { SortField: "waitduration", SortRule: 1 }, (d, o, v) => d.WaitDuration, OrderByType.Desc);
 
         query = query.WhereIF(dto.Type == 3, (d, o, v) => d.AnsweredTime == null);
         query = query.WhereIF(dto.Type == 1, (d, o, v) => d.Direction == ECallDirection.In && d.AnsweredTime != null);
         query = query.WhereIF(dto.Type == 2, (d, o, v) => d.Direction == ECallDirection.Out && d.AnsweredTime != null);
+        query = query.WhereIF(dto.Type != 3 && !string.IsNullOrEmpty(dto.StaffNo), p => p.StaffNo == dto.StaffNo);
 
         if (dto.Type == 2)
         {
@@ -336,7 +337,8 @@ public abstract class DefaultCallApplication : ICallApplication
                         .Where(m => m.CallNo == d.CallNo && m.TelNo != "0")
                         .Max(m => m.TelNo)
                     ),
-            }, true);
+            }, true)
+                .WhereIF(!string.IsNullOrEmpty(dto.StaffNo), p => p.StaffNo == dto.StaffNo);
         }
         return query.Select((d, o, v) => new CallNativeDto
         {

+ 1 - 2
src/Hotline.Application/OrderApp/OrderApplication.cs

@@ -1,7 +1,6 @@
 using System.Data;
 using System.Dynamic;
 using DotNetCore.CAP;
-using ExtendedNumerics.Exceptions;
 using FluentValidation;
 using Hotline.Application.FlowEngine;
 using Hotline.Application.Quality;
@@ -5486,7 +5485,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                     throw new UserFriendlyException($"该部门领导角色未设置用户,部门:{step.HandlerOrgId}, 角色:{SettingConstants.RoleJingBanRen}");
                 break;
             default:
-                throw new OutOfRangeException(nameof(GetHandlerRandomAsync));
+                throw new ArgumentOutOfRangeException(nameof(GetHandlerRandomAsync));
         }
 
         return user;

+ 2 - 0
src/Hotline.Share/Dtos/CallCenter/QueryCallsFixedDto.cs

@@ -23,6 +23,8 @@ namespace Hotline.Share.Dtos.CallCenter
 
         public EEndBy? EndBy { get; set; }
 
+        public string? StaffNo {  get; set; }
+
         /// <summary>
         /// 呼入时间
         /// </summary>

+ 0 - 1
src/Hotline.XingTang/Hotline.XingTang.csproj

@@ -7,7 +7,6 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\Hotline.Application\Hotline.Application.csproj" />
     <ProjectReference Include="..\Hotline\Hotline.csproj" />
     <ProjectReference Include="..\XingTang.Sdk\XingTang.Sdk.csproj" />
   </ItemGroup>

+ 1 - 11
src/Hotline.XingTang/ServiceCollectionExtensions.cs

@@ -1,15 +1,5 @@
-using Fw.Utility.UnifyResponse;
-using Hotline.CallCenter.Tels;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Http;
+using Hotline.CallCenter.Tels;
 using Microsoft.Extensions.DependencyInjection;
-using NPOI.SS.Formula.Functions;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using static System.Runtime.InteropServices.JavaScript.JSType;
 
 namespace Hotline.XingTang;
 public static class ServiceCollectionExtensions