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

Merge branch 'master' of http://git.fwt.com/Hotline/hotline

xf 2 жил өмнө
parent
commit
92aaa89a4a

+ 3 - 7
src/Hotline.Api/Controllers/PbxController.cs

@@ -603,9 +603,9 @@ namespace Hotline.Api.Controllers
         /// <returns></returns>
         [Permission(EPermission.GetTrunkList)]
         [HttpGet("turnk-list")]
-        public async Task<List<TrunkIvrManager>> GetTrunkList()
+        public async Task<IReadOnlyList<TrunkIvrManager>> GetTrunkList()
         {
-            return await _trunkIvrManagerRepository.QueryAsync();
+            return await _trunkIvrManagerRepository.GetTrunkList();
         }
 
         /// <summary>
@@ -689,11 +689,7 @@ namespace Hotline.Api.Controllers
             return new { WorkCategorys = ivr, RestCategory = ivr, WorkToGroup = group, RestToGroup = group, WorkDay = workDay };
         }
 
-        public class WorkDayModel
-        {
-            public string weekName { get; set; }
-            public string weekValue { get; set; }
-        }
+        
         #endregion
     }
 }

+ 0 - 1
src/Hotline.Api/StartupExtensions.cs

@@ -46,7 +46,6 @@ internal static class StartupExtensions
 #endif
 
         services.Configure<DeviceConfigs>(d => configuration.GetSection(nameof(DeviceConfigs)).Bind(d));
-        //services.Configure<WorkTimeSettings>(d => configuration.GetSection(nameof(WorkTimeSettings)).Bind(d));
         services.Configure<IdentityConfiguration>(d => configuration.GetSection(nameof(IdentityConfiguration)).Bind(d));
 
         // Add services to the container.

+ 1 - 0
src/Hotline.Application/Handlers/CallCenter/ExtState/BusyNotificationHandler.cs

@@ -1,5 +1,6 @@
 using Hotline.Caches;
 using Hotline.CallCenter.Tels;
+using Hotline.Share.Enums.CallCenter;
 using Hotline.Share.Notifications;
 using MediatR;
 using XF.Domain.Cache;

+ 1 - 0
src/Hotline.Application/Handlers/CallCenter/ExtState/IdleNotificationHandler.cs

@@ -1,5 +1,6 @@
 using Hotline.Caches;
 using Hotline.CallCenter.Tels;
+using Hotline.Share.Enums.CallCenter;
 using Hotline.Share.Notifications;
 using MediatR;
 using XF.Domain.Cache;

+ 1 - 0
src/Hotline.Application/Handlers/CallCenter/ExtState/OfflineNotificationHandler.cs

@@ -1,5 +1,6 @@
 using Hotline.Caches;
 using Hotline.CallCenter.Tels;
+using Hotline.Share.Enums.CallCenter;
 using Hotline.Share.Notifications;
 using MediatR;
 using XF.Domain.Cache;

+ 1 - 0
src/Hotline.Application/Handlers/CallCenter/ExtState/OnlineNotificationHandler.cs

@@ -1,5 +1,6 @@
 using Hotline.Caches;
 using Hotline.CallCenter.Tels;
+using Hotline.Share.Enums.CallCenter;
 using Hotline.Share.Notifications;
 using MediatR;
 using XF.Domain.Cache;

+ 1 - 1
src/Hotline.Application/Handlers/CallCenter/FlowControl/IncomingNotificationHandler.cs

@@ -174,7 +174,7 @@ namespace Hotline.Application.Handlers.CallCenter.FlowControl
 
         private CorrectIvr GetCorrectCategory(TrunkIvrManager settings)
         {
-            if (!settings.WorkDay.Contains(((int)DateTime.Now.DayOfWeek).ToString()))
+            if (!settings.WorkDay.Any(x=>x.weekValue == ((int)DateTime.Now.DayOfWeek).ToString()))
                 return new CorrectIvr() { eCorrectIvr = settings.RestCategory != "" ? ECorrectIvr.Ivr : ECorrectIvr.Group, ReturnValue = settings.RestCategory != "" ? settings.RestCategory : settings.RestToGroup };
 
             var time = TimeOnly.FromDateTime(DateTime.Now);

+ 11 - 0
src/Hotline.Repository.SqlSugar/System/TrunkIvrManagerRepository.cs

@@ -15,5 +15,16 @@ namespace Hotline.Repository.SqlSugar.System
         public TrunkIvrManagerRepository(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
         {
         }
+
+
+        public async Task<IReadOnlyList<TrunkIvrManager>> GetTrunkList()
+        {
+            return await Db.Queryable<TrunkIvrManager>()
+                    .Includes(d => d.WorkCategoryModel)
+                    .Includes(d => d.RestCategoryModel)
+                    //.Includes(d=> d.WorkToGroupModel.MappingField(z=>z.No,()=>d.WorkToGroup))
+                    .Includes(d=> d.RestToGroupModel.MappingField(z=>z.No,()=>d.RestToGroup))
+                    .ToListAsync();
+        }
     }
 }

+ 8 - 1
src/Hotline.Share/Dtos/Trunk/TrunkDto.cs

@@ -13,12 +13,19 @@ namespace Hotline.Share.Dtos.Trunk
         public string MorningEnd { get;set; }
         public string AfterBegin { get; set; }
         public string AfterEnd { get; set; }
-        public string WorkDay { get; set; }
+        public List<WorkDayModel> WorkDay { get; set; } = new();
         public string WorkCategory { get; set; }
         public string RestCategory { get; set; }
         public string WorkToGroup { get; set; }
         public string RestToGroup { get; set; }
         public bool IsEnable { get; set; }
+
+    }
+
+    public class WorkDayModel
+    {
+        public string weekName { get; set; }
+        public string weekValue { get; set; }
     }
 
     public class UpdateTrunkDto:AddTrunkDto

+ 1 - 0
src/Hotline/CallCenter/Tels/Tel.cs

@@ -1,4 +1,5 @@
 using System.ComponentModel;
+using Hotline.Share.Enums.CallCenter;
 using SqlSugar;
 using XF.Domain.Entities;
 using XF.Domain.Repository;

+ 4 - 0
src/Hotline/Hotline.csproj

@@ -6,6 +6,10 @@
     <Nullable>enable</Nullable>
   </PropertyGroup>
 
+  <ItemGroup>
+    <Compile Remove="CallCenter\Tels\ETelStatus.cs" />
+  </ItemGroup>
+
   <ItemGroup>
     <PackageReference Include="Mapster" Version="7.3.0" />
     <PackageReference Include="MediatR" Version="10.0.1" />

+ 1 - 1
src/Hotline/Settings/ITrunkIvrManagerRepository.cs

@@ -4,6 +4,6 @@ namespace Hotline.Settings
 {
     public interface ITrunkIvrManagerRepository: IRepository<TrunkIvrManager>
     {
-
+        Task<IReadOnlyList<TrunkIvrManager>> GetTrunkList();
     }
 }

+ 20 - 3
src/Hotline/Settings/TrunkIvrManager.cs

@@ -1,4 +1,7 @@
-using SqlSugar;
+using Hotline.CallCenter.Ivrs;
+using Hotline.CallCenter.Tels;
+using Hotline.Share.Dtos.Trunk;
+using SqlSugar;
 using System.ComponentModel;
 using XF.Domain.Repository;
 
@@ -35,7 +38,8 @@ namespace Hotline.Settings
         /// <summary>
         /// 工作日
         /// </summary>
-        public string WorkDay { get; set; }
+        [SugarColumn(ColumnDataType = "varchar(255)", IsJson = true)]
+        public List<WorkDayModel> WorkDay { get; set; }
 
         /// <summary>
         /// 工作时间IVR
@@ -43,27 +47,40 @@ namespace Hotline.Settings
         [SugarColumn(IsNullable = true)]
         public string WorkCategory { get; set; }
 
+        [Navigate(NavigateType.OneToOne, nameof(WorkCategory))]
+        public IvrCategory? WorkCategoryModel { get; set; }
+
         /// <summary>
         /// 休息时间IVR
         /// </summary>
         [SugarColumn(IsNullable = true)]
         public string RestCategory { get; set; }
 
+        [Navigate(NavigateType.OneToOne, nameof(RestCategory))]
+        public IvrCategory? RestCategoryModel { get; set; }
+
         /// <summary>
         /// 工作时间直接转分机组
         /// </summary>
         [SugarColumn(IsNullable = true)]
         public string WorkToGroup { get; set; }
 
+        [Navigate(NavigateType.Dynamic, null)]
+        public TelGroup? WorkToGroupModel { get; set; }
+
         /// <summary>
         /// 休息时间直接转分机组
         /// </summary>
         [SugarColumn(IsNullable = true)]
-        public string RestToGroup { get; set; }
+        public string? RestToGroup { get; set; }
+
+        [Navigate(NavigateType.Dynamic, null)]
+        public TelGroup? RestToGroupModel { get; set; }
 
         /// <summary>
         /// 是否启用
         /// </summary>
         public bool IsEnable { get; set; }
     }
+
 }