Forráskód Böngészése

重构配置文件,智能质检、回访、企业专班配置

xf 8 hónapja
szülő
commit
6dc61e0947
25 módosított fájl, 185 hozzáadás és 141 törlés
  1. 4 4
      src/Hotline.Ai.Jths/AiJthsStartupExtensions.cs
  2. 55 55
      src/Hotline.Ai.Jths/AiVisitConfig.cs
  3. 1 0
      src/Hotline.Api/Controllers/CommonPController.cs
  4. 1 0
      src/Hotline.Api/Controllers/OrderController.cs
  5. 1 0
      src/Hotline.Api/Controllers/PbxController.cs
  6. 1 0
      src/Hotline.Api/Controllers/QualityController.cs
  7. 7 11
      src/Hotline.Api/StartupExtensions.cs
  8. 1 0
      src/Hotline.Api/StartupHelper.cs
  9. 40 22
      src/Hotline.Api/config/appsettings.Development.json
  10. 1 0
      src/Hotline.Application/Handlers/CallCenter/ExtState/IdleNotificationHandler.cs
  11. 1 0
      src/Hotline.Application/Handlers/CallCenter/System/BootupNotificationHandler.cs
  12. 14 22
      src/Hotline.Application/Handlers/FlowEngine/WorkflowEndHandler.cs
  13. 1 0
      src/Hotline.Application/Handlers/FlowEngine/WorkflowStartHandler.cs
  14. 1 0
      src/Hotline.Application/Quality/QualityApplication.cs
  15. 15 15
      src/Hotline.YbEnterprise.Sdk/EnterpriseConfig.cs
  16. 6 9
      src/Hotline.YbEnterprise.Sdk/EnterpriseService.cs
  17. 1 0
      src/Hotline.YbEnterprise.Sdk/HotlineYbEnterpriseStartupExtensions.cs
  18. 1 0
      src/Hotline/CallCenter/Calls/CallDomainService.cs
  19. 1 0
      src/Hotline/CallCenter/Ivrs/IvrDomainService.cs
  20. 1 0
      src/Hotline/CallCenter/Manage/VoiceFileDomainService.cs
  21. 1 0
      src/Hotline/CallCenter/Tels/TelDomainService.cs
  22. 13 0
      src/Hotline/Configurations/AiQualityConfiguration.cs
  23. 4 3
      src/Hotline/Configurations/AppConfiguration.cs
  24. 12 0
      src/Hotline/Configurations/EnterpriseConfiguration.cs
  25. 1 0
      src/Hotline/Users/UserDomainService.cs

+ 4 - 4
src/Hotline.Ai.Jths/AiJthsStartupExtensions.cs

@@ -24,8 +24,8 @@ namespace Hotline.Ai.Jths
 			return services;
 		}
 	}
-	public class AiQualityConfig
-	{
-		public string Url { get; set; }
-	}
+	//public class AiQualityConfig
+	//{
+	//	public string Url { get; set; }
+	//}
 }

+ 55 - 55
src/Hotline.Ai.Jths/AiVisitConfig.cs

@@ -1,70 +1,70 @@
 
-namespace Hotline.Ai.Jths
-{
-    public class AiVisitConfig
-    {
-        public string Url { get; set; }
-        public string Appkey { get; set; }
-        public string ServiceVersion { get; set; }
-        //public string SceneUid { get; set; }
-        //public string RuleUid { get;set; }
+//namespace Hotline.Ai.Jths
+//{
+//    public class AiVisitConfig
+//    {
+//        public string Url { get; set; }
+//        public string Appkey { get; set; }
+//        public string ServiceVersion { get; set; }
+//        //public string SceneUid { get; set; }
+//        //public string RuleUid { get;set; }
 
-        ///// <summary>
-        ///// 来电名称
-        ///// </summary>
-        //public string VisitFromNameKey { get; set; }
+//        ///// <summary>
+//        ///// 来电名称
+//        ///// </summary>
+//        //public string VisitFromNameKey { get; set; }
 
 
-        ///// <summary>
-        ///// 来电性别
-        ///// </summary>
-        //public string VisitFromGenderKey { get; set; }
+//        ///// <summary>
+//        ///// 来电性别
+//        ///// </summary>
+//        //public string VisitFromGenderKey { get; set; }
 
-        ///// <summary>
-        ///// 来电时间
-        ///// </summary>
-        //public string VisitCreationTimeKey { get; set; }
+//        ///// <summary>
+//        ///// 来电时间
+//        ///// </summary>
+//        //public string VisitCreationTimeKey { get; set; }
 
-        ///// <summary>
-        ///// 工单标题
-        ///// </summary>
-        //public string VisitOrderTitleKey { get; set; }
+//        ///// <summary>
+//        ///// 工单标题
+//        ///// </summary>
+//        //public string VisitOrderTitleKey { get; set; }
 
-        ///// <summary>
-        ///// 是否来电工单
-        ///// </summary>
-        //public string VisitIsCallOrder { get; set; }
+//        ///// <summary>
+//        ///// 是否来电工单
+//        ///// </summary>
+//        //public string VisitIsCallOrder { get; set; }
 
-        ///// <summary>
-        ///// 是否联系
-        ///// </summary>
-        //public string QuestionIdZone { get; set; }
+//        ///// <summary>
+//        ///// 是否联系
+//        ///// </summary>
+//        //public string QuestionIdZone { get; set; }
 
 
-        ///// <summary>
-        ///// 是否解决
-        ///// </summary>
-        //public string QuestionIdOne { get; set; }
+//        ///// <summary>
+//        ///// 是否解决
+//        ///// </summary>
+//        //public string QuestionIdOne { get; set; }
 
-        ///// <summary>
-        ///// 办件结果满意度
-        ///// </summary>
-        //public string QuestionIdTwo { get; set;}
+//        ///// <summary>
+//        ///// 办件结果满意度
+//        ///// </summary>
+//        //public string QuestionIdTwo { get; set;}
 
-        ///// <summary>
-        ///// 坐席是否满意
-        ///// </summary>
-        //public string QuestionIdThree { get; set; }
+//        ///// <summary>
+//        ///// 坐席是否满意
+//        ///// </summary>
+//        //public string QuestionIdThree { get; set; }
 
-        ///// <summary>
-        ///// 办件结果不满意原因
-        ///// </summary>
-        //public string VisitContentIdOne { get; set; }
+//        ///// <summary>
+//        ///// 办件结果不满意原因
+//        ///// </summary>
+//        //public string VisitContentIdOne { get; set; }
 
-        ///// <summary>
-        ///// 坐席不满意原因
-        ///// </summary>
-        //public string VisitContentIdTwo { get; set;}
+//        ///// <summary>
+//        ///// 坐席不满意原因
+//        ///// </summary>
+//        //public string VisitContentIdTwo { get; set;}
 
-    }
-}
+//    }
+//}

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

@@ -20,6 +20,7 @@ using Microsoft.Extensions.Options;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
+using Hotline.Configurations;
 
 namespace Hotline.Api.Controllers
 {

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

@@ -7,6 +7,7 @@ using Hotline.Application.Orders;
 using Hotline.Application.Quality;
 using Hotline.Caching.Interfaces;
 using Hotline.CallCenter.Configs;
+using Hotline.Configurations;
 using Hotline.ContingencyManagement;
 using Hotline.ContingencyManagement.Notifies;
 using Hotline.Enterprise;

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

@@ -31,6 +31,7 @@ using Microsoft.AspNetCore.Authorization;
 using Microsoft.Extensions.Options;
 using XF.Domain.Repository;
 using Tr.Sdk;
+using Hotline.Configurations;
 
 namespace Hotline.Api.Controllers
 {

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

@@ -20,6 +20,7 @@ using Hotline.Api.Filter;
 using Hotline.Application.CallCenter;
 using Hotline.CallCenter.Configs;
 using Microsoft.Extensions.Options;
+using Hotline.Configurations;
 
 namespace Hotline.Api.Controllers
 {

+ 7 - 11
src/Hotline.Api/StartupExtensions.cs

@@ -28,6 +28,7 @@ using Hotline.CallCenter.Calls;
 using Swashbuckle.AspNetCore.SwaggerUI;
 using Hotline.EventBus;
 using MediatR.Pipeline;
+using Hotline.Configurations;
 
 namespace Hotline.Api;
 
@@ -49,6 +50,7 @@ internal static class StartupExtensions
 
         var appConfigurationSection = configuration.GetRequiredSection(nameof(AppConfiguration));
         var appConfiguration = appConfigurationSection.Get<AppConfiguration>();
+        if (appConfiguration is null) throw new ArgumentNullException(nameof(appConfiguration));
         services.Configure<AppConfiguration>(d => appConfigurationSection.Bind(d));
 
         var callCenterConfigurationSection = configuration.GetRequiredSection(nameof(CallCenterConfiguration));
@@ -107,20 +109,14 @@ internal static class StartupExtensions
         {
             case AppDefaults.AppScope.YiBin:
                 //jths 
-                services.AddAiJths(configuration.GetSection("AiQuality").Get<AiQualityConfig>().Url);
-
-                var aiVisitConfigSection = configuration.GetSection("AiVisit");
-                var aiVisitConfig = aiVisitConfigSection.Get<AiVisitConfig>();
+                services.AddAiJths(appConfiguration.YiBin.AiQuality.Url);
                 services.AddAiVisitService(
-                    aiVisitConfig.Url,
-                    aiVisitConfig.Appkey,
-                    aiVisitConfig.ServiceVersion);
-                services.Configure<AiVisitConfig>(d => aiVisitConfigSection.Bind(d));
+                    appConfiguration.YiBin.AiVisit.Url,
+                    appConfiguration.YiBin.AiVisit.Appkey,
+                    appConfiguration.YiBin.AiVisit.ServiceVersion);
 
                 //宜宾企业服务
-                services.Configure<EnterpriseConfig>(d => configuration.GetSection("Enterprise").Bind(d));
-                var enterpriseConfig = configuration.GetSection("Enterprise").Get<EnterpriseConfig>();
-                services.AddYbEnterpriseSdk(enterpriseConfig?.AddressUrl);
+                services.AddYbEnterpriseSdk(appConfiguration.YiBin.Enterprise.AddressUrl);
                 break;
             case AppDefaults.AppScope.ZiGong:
                 break;

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

@@ -5,6 +5,7 @@ using Hotline.Application;
 using Hotline.Application.Jobs;
 using Hotline.Application.Orders;
 using Hotline.CallCenter.Configs;
+using Hotline.Configurations;
 using Hotline.EventBus;
 using Hotline.Identity;
 using Hotline.Repository.SqlSugar;

+ 40 - 22
src/Hotline.Api/config/appsettings.Development.json

@@ -3,7 +3,25 @@
   "AppConfiguration": {
     "AppScope": "YiBin",
     "YiBin": {
-      "CallCenterType": "TianRun" //XunShi、WeiErXin、TianRun、XingTang
+      "CallCenterType": "TianRun", //XunShi、WeiErXin、TianRun、XingTang
+      //智能回访
+      "AiVisit": {
+        "Url": "http://118.122.73.80:19061",
+        "Appkey": "MTAwMDAx",
+        "ServiceVersion": "V1.0.0" //接口版本号
+      },
+      //智能质检
+      "AiQuality": {
+        "Url": "http://118.122.73.80:19072/" // 正式
+        //"Url": "http://118.122.73.80:19072/", // 测试
+      },
+      //企业服务
+      "Enterprise": {
+        "AddressUrl": "http://10.12.185.227:8834/",
+        "ClientId": "1462598736",
+        "ClientSecret": "6nZtVK4rKfnsncGymUHB",
+        "TenantId": "000000"
+      }
     },
     "ZiGong": {
       "CallCenterType": "XingTang"
@@ -120,28 +138,28 @@
   //  "Password": "12345678aa",
   //  "Ip": "222.213.23.229"
   //},
-  //智能回访
-  "AiVisit": {
-    "Url": "http://118.122.73.80:19061",
-    "Appkey": "MTAwMDAx",
-    "ServiceVersion": "V1.0.0" //接口版本号
-  },
-  //智能质检
-  "AiQuality": {
-    "Url": "http://118.122.73.80:19072/" // 正式
-    //"Url": "http://118.122.73.80:19072/", // 测试
-  },
-  //企业服务
-  "Enterprise": {
-    "AddressUrl": "http://10.12.185.227:8834/",
-    "ClientId": "1462598736",
-    "ClientSecret": "6nZtVK4rKfnsncGymUHB",
-    "TenantId": "000000"
-  },
+  ////智能回访
+  //"AiVisit": {
+  //  "Url": "http://118.122.73.80:19061",
+  //  "Appkey": "MTAwMDAx",
+  //  "ServiceVersion": "V1.0.0" //接口版本号
+  //},
+  ////智能质检
+  //"AiQuality": {
+  //  "Url": "http://118.122.73.80:19072/" // 正式
+  //  //"Url": "http://118.122.73.80:19072/", // 测试
+  //},
+  ////企业服务
+  //"Enterprise": {
+  //  "AddressUrl": "http://10.12.185.227:8834/",
+  //  "ClientId": "1462598736",
+  //  "ClientSecret": "6nZtVK4rKfnsncGymUHB",
+  //  "TenantId": "000000"
+  //},
 
-  "SendSms": {
-    "Url": "http://localhost:50108/api/v1/PushMessage/addwaitmsg"
-  }
+  //"SendSms": {
+  //  "Url": "http://localhost:50108/api/v1/PushMessage/addwaitmsg"
+  //}
 
 
 }

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

@@ -3,6 +3,7 @@ using Hotline.Caching.Services;
 using Hotline.CallCenter.Configs;
 using Hotline.CallCenter.Devices;
 using Hotline.CallCenter.Tels;
+using Hotline.Configurations;
 using Hotline.EventBus;
 using Hotline.NewRock;
 using Hotline.Realtimes;

+ 1 - 0
src/Hotline.Application/Handlers/CallCenter/System/BootupNotificationHandler.cs

@@ -3,6 +3,7 @@ using Hotline.CallCenter.Configs;
 using Hotline.CallCenter.Devices;
 using Hotline.CallCenter.Ivrs;
 using Hotline.CallCenter.Tels;
+using Hotline.Configurations;
 using Hotline.EventBus;
 using Hotline.NewRock;
 using Hotline.Share.Notifications.NewRockCallCenter;

+ 14 - 22
src/Hotline.Application/Handlers/FlowEngine/WorkflowEndHandler.cs

@@ -3,13 +3,11 @@ using Hotline.Application.CallCenter;
 using Hotline.Application.JudicialManagement;
 using Hotline.Application.Orders;
 using Hotline.CallCenter.Tels;
-using Hotline.EventBus;
+using Hotline.Configurations;
 using Hotline.FlowEngine.Notifications;
 using Hotline.FlowEngine.WorkflowModules;
-using Hotline.JudicialManagement.Notifies;
 using Hotline.KnowledgeBase;
 using Hotline.Orders;
-using Hotline.Settings;
 using Hotline.Settings.TimeLimits;
 using Hotline.Share.Dtos.FlowEngine.Workflow;
 using Hotline.Share.Dtos.Order;
@@ -19,7 +17,6 @@ using MapsterMapper;
 using MediatR;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Options;
-using XF.Domain.Authentications;
 using XF.Domain.Repository;
 
 namespace Hotline.Application.Handlers.FlowEngine;
@@ -37,11 +34,10 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
     private readonly IRepository<OrderDelay> _orderDelayRepository;
     private readonly ITimeLimitDomainService _timeLimitDomainService;
     private readonly ILogger<WorkflowEndHandler> _logger;
-    // private readonly IRepository<TrCallRecord> _trCallRecordRepository;
-    private readonly IQualityApplication _qualityApplication;
+    private readonly IKnowledgeRepository _knowledgeRepository;
+    private readonly IEnforcementApplication _enforcementApplication;
+    private readonly ICallApplication _callApplication;
     private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
-    private readonly ISessionContext _sessionContext;
-    private readonly IRepository<OrderScreenDetail> _orderScreenDetailRepository;
 
     public WorkflowEndHandler(
         IKnowledgeDomainService knowledgeDomainService,
@@ -53,12 +49,11 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
         IMapper mapper,
         IRepository<OrderDelay> orderDelayRepository,
         ITimeLimitDomainService timeLimitDomainService,
+        IKnowledgeRepository knowledgeRepository,
         ILogger<WorkflowEndHandler> logger,
-        // IRepository<TrCallRecord> trCallRecordRepository,
+        IEnforcementApplication enforcementApplication,
+        ICallApplication callApplication,
         IOptionsSnapshot<AppConfiguration> appOptions)
-        IOptionsSnapshot<CallCenterConfiguration> callcenterOptions,
-        ISessionContext sessionContext,
-        IRepository<OrderScreenDetail> orderScreenDetailRepository)
     {
         _knowledgeDomainService = knowledgeDomainService;
         _orderDomainService = orderDomainService;
@@ -68,14 +63,13 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
         _capPublisher = capPublisher;
         _mapper = mapper;
         _orderDelayRepository = orderDelayRepository;
+        _timeLimitDomainService = timeLimitDomainService;
+        _logger = logger;
         _knowledgeRepository = knowledgeRepository;
-        _knowledgeWorkFlowRepository = knowledgeWorkFlowRepository;
+        _enforcementApplication = enforcementApplication;
+        _callApplication = callApplication;
         _appOptions = appOptions;
     }
-        _callcenterOptions = callcenterOptions;
-        _sessionContext = sessionContext;
-        _orderScreenDetailRepository = orderScreenDetailRepository;
-	}
 
     /// <summary>Handles a notification</summary>
     /// <param name="notification">The notification</param>
@@ -210,11 +204,9 @@ public class WorkflowEndHandler : INotificationHandler<EndWorkflowNotify>
                     //}
 
                     //司法行政监督管理-工单处理
-                    //如果没开启则不处理
-                    var isOpenJudicialManagement = _systemSettingCacheManager.GetSetting(SettingConstants.IsOpenJudicialManagement)?.SettingValue[0];
-                    if (isOpenJudicialManagement == "true")
-                        await _publisher.PublishAsync(new JudicialManagementOrderNotify(order), PublishStrategy.ParallelWhenAll, cancellationToken);
-
+                    await _enforcementApplication.AddEnforcementOrderAsync(order, cancellationToken);
+                    //推诿工单
+                    // await _enforcementApplication.AddPassTheBuckOrderAsync(order, _sessionContext.OrgId, _sessionContext.OrgName, cancellationToken);
                     break;
                 //case WorkflowModuleConsts.OrderScreen:
                 //    var screen = await _orderScreenRepository.GetAsync(workflow.ExternalId, cancellationToken);

+ 1 - 0
src/Hotline.Application/Handlers/FlowEngine/WorkflowStartHandler.cs

@@ -2,6 +2,7 @@
 using Hotline.Application.CallCenter;
 using Hotline.Application.Quality;
 using Hotline.CallCenter.Configs;
+using Hotline.Configurations;
 using Hotline.FlowEngine.Notifications;
 using Hotline.FlowEngine.WorkflowModules;
 using Hotline.KnowledgeBase;

+ 1 - 0
src/Hotline.Application/Quality/QualityApplication.cs

@@ -25,6 +25,7 @@ using XF.Domain.Dependency;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 using Hotline.Share.Enums.CallCenter;
+using Hotline.Configurations;
 
 namespace Hotline.Application.Quality
 {

+ 15 - 15
src/Hotline.YbEnterprise.Sdk/EnterpriseConfig.cs

@@ -1,19 +1,19 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+//using System;
+//using System.Collections.Generic;
+//using System.Linq;
+//using System.Text;
+//using System.Threading.Tasks;
 
-namespace Hotline.YbEnterprise.Sdk
-{
-	public class EnterpriseConfig
-	{
-		public string AddressUrl { get; set; }
+//namespace Hotline.YbEnterprise.Sdk
+//{
+//	public class EnterpriseConfig
+//	{
+//		public string AddressUrl { get; set; }
 
-		public string ClientId { get; set; }
+//		public string ClientId { get; set; }
 
-		public string ClientSecret { get; set; }
+//		public string ClientSecret { get; set; }
 
-		public string TenantId { get; set; }
-	}
-}
+//		public string TenantId { get; set; }
+//	}
+//}

+ 6 - 9
src/Hotline.YbEnterprise.Sdk/EnterpriseService.cs

@@ -1,33 +1,30 @@
 using Hotline.Enterprise;
-using Hotline.Share.Dtos;
-using RestSharp;
-using System.Collections;
 using System.Net.Http.Headers;
 using System.Net.Http.Json;
 using System.Text;
+using Hotline.Configurations;
 using Hotline.Share.Dtos.Enterprise;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Options;
 using XF.Domain.Cache;
 using XF.Domain.Exceptions;
-using XF.Domain.Dependency;
 
 namespace Hotline.YbEnterprise.Sdk
 {
-    public class EnterpriseService : IEnterpriseService, IScopeDependency
+    public class EnterpriseService : IEnterpriseService
     {
         private readonly IHttpClientFactory _httpClientFactory;
-        private readonly IOptionsSnapshot<EnterpriseConfig> _enterpriseOptions;
+        private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
         private readonly ITypedCache<YbEnterpriseToken> _tokenCache;
         private readonly ILogger<EnterpriseService> _logger;
         public EnterpriseService(
             IHttpClientFactory httpClientFactory,
-            IOptionsSnapshot<EnterpriseConfig> enterpriseOptions,
+            IOptionsSnapshot<AppConfiguration> appOptions,
             ITypedCache<YbEnterpriseToken> tokenCache,
             ILogger<EnterpriseService> logger)
         {
             _httpClientFactory = httpClientFactory;
-            _enterpriseOptions = enterpriseOptions;
+            _appOptions = appOptions;
             _tokenCache = tokenCache;
             _logger = logger;
         }
@@ -72,7 +69,7 @@ namespace Hotline.YbEnterprise.Sdk
 
         private async Task<YbEnterpriseToken> GetTokenAsync(CancellationToken cancellationToken)
         {
-            var config = _enterpriseOptions.Value;
+            var config = _appOptions.Value.YiBin.Enterprise;
             string authorization = config.ClientId + ":" + config.ClientSecret;
             authorization = Convert.ToBase64String(Encoding.UTF8.GetBytes(authorization));
             var result = await ExecuteAsync<object, YbEnterpriseResponse<YbEnterpriseToken>>(

+ 1 - 0
src/Hotline.YbEnterprise.Sdk/HotlineYbEnterpriseStartupExtensions.cs

@@ -9,6 +9,7 @@ namespace Hotline.Api.Sdk
     {
         public static IServiceCollection AddYbEnterpriseSdk(this IServiceCollection services, string? baseAddress)
         {
+            services.AddScoped<IEnterpriseService, EnterpriseService>();
             if (!string.IsNullOrEmpty(baseAddress))
                 services.AddHttpClient(YbEnterpriseDefaults.HttpName, d =>
                 {

+ 1 - 0
src/Hotline/CallCenter/Calls/CallDomainService.cs

@@ -1,5 +1,6 @@
 using Hotline.CallCenter.Configs;
 using Hotline.CallCenter.Devices;
+using Hotline.Configurations;
 using Hotline.Share.Requests;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Options;

+ 1 - 0
src/Hotline/CallCenter/Ivrs/IvrDomainService.cs

@@ -1,6 +1,7 @@
 using Hotline.Caching.Interfaces;
 using Hotline.CallCenter.Configs;
 using Hotline.CallCenter.Devices;
+using Hotline.Configurations;
 using Hotline.Settings;
 using Hotline.Share.Dtos.CallCenter;
 using Hotline.Share.Enums.CallCenter;

+ 1 - 0
src/Hotline/CallCenter/Manage/VoiceFileDomainService.cs

@@ -1,5 +1,6 @@
 using Hotline.CallCenter.Configs;
 using Hotline.CallCenter.Devices;
+using Hotline.Configurations;
 using Hotline.Share.Requests;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Options;

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

@@ -12,6 +12,7 @@ using Hotline.CallCenter.Configs;
 using Microsoft.Extensions.Options;
 using Hotline.Share.Dtos.CallCenter;
 using Microsoft.Extensions.DependencyInjection;
+using Hotline.Configurations;
 
 namespace Hotline.CallCenter.Tels;
 

+ 13 - 0
src/Hotline/Configurations/AiQualityConfiguration.cs

@@ -0,0 +1,13 @@
+namespace Hotline.Configurations;
+
+public class AiQualityConfiguration
+{
+    public string Url { get; set; }
+}
+
+public class AiVisitConfiguration
+{
+    public string Url { get; set; }
+    public string Appkey { get; set; }
+    public string ServiceVersion { get; set; }
+}

+ 4 - 3
src/Hotline/AppConfiguration.cs → src/Hotline/Configurations/AppConfiguration.cs

@@ -4,7 +4,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace Hotline
+namespace Hotline.Configurations
 {
     public class AppConfiguration
     {
@@ -27,16 +27,17 @@ namespace Hotline
 
     public class YiBinConfiguration : DefaultAppScopeConfiguration
     {
+        public AiQualityConfiguration AiQuality { get; set; }
+        public AiVisitConfiguration AiVisit { get; set; }
+        public EnterpriseConfiguration Enterprise { get; set; }
     }
 
     public class ZiGongConfiguration : DefaultAppScopeConfiguration
     {
-
     }
 
     public class LuZhouConfiguration : DefaultAppScopeConfiguration
     {
-
     }
 
     public abstract class DefaultAppScopeConfiguration

+ 12 - 0
src/Hotline/Configurations/EnterpriseConfiguration.cs

@@ -0,0 +1,12 @@
+namespace Hotline.Configurations;
+
+public class EnterpriseConfiguration
+{
+    public string AddressUrl { get; set; }
+
+    public string ClientId { get; set; }
+
+    public string ClientSecret { get; set; }
+
+    public string TenantId { get; set; }
+}

+ 1 - 0
src/Hotline/Users/UserDomainService.cs

@@ -11,6 +11,7 @@ using XF.Domain.Dependency;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 using Microsoft.Extensions.DependencyInjection;
+using Hotline.Configurations;
 
 namespace Hotline.Users
 {