Procházet zdrojové kódy

Merge branch 'dev' of http://110.188.24.182:10023/Fengwo/hotline into dev

田爽 před 6 měsíci
rodič
revize
1d442d7446

+ 17 - 13
src/Hotline.Api/Controllers/SysController.cs

@@ -1,25 +1,18 @@
-using Hotline.Caching.Interfaces;
+using Hotline.Application.Systems;
+using Hotline.Caching.Interfaces;
 using Hotline.Permissions;
-using Hotline.Quality;
 using Hotline.Repository.SqlSugar.Extensions;
-using Hotline.Repository.SqlSugar.System;
 using Hotline.Settings;
 using Hotline.Settings.CommonOpinions;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Dic;
 using Hotline.Share.Dtos.Menu;
-using Hotline.Share.Dtos.Quality;
 using Hotline.Share.Dtos.Settings;
-using Hotline.Share.Dtos.Trunk;
-using Hotline.Share.Enums.Quality;
 using Hotline.Share.Enums.Settings;
 using Hotline.Share.Requests;
 using MapsterMapper;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Rendering;
-using System.Diagnostics.CodeAnalysis;
-using System.Text.RegularExpressions;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
@@ -44,7 +37,7 @@ namespace Hotline.Api.Controllers
         private readonly ISessionContext _sessionContext;
         private readonly ISystemDicDataCacheManager _systemDicDataCacheManager;
         private readonly IRepository<SystemLog> _systemLogRepository;
-        private readonly IRepository<SystemMobilArea> _systemMobilAreaRepository;
+        private readonly ISystemMobilAreaApplication _systemMobilAreaApplication;
 
         /// <summary>
         /// 系统管理相关接口
@@ -61,7 +54,7 @@ namespace Hotline.Api.Controllers
         /// <param name="sessionContext"></param>
         /// <param name="systemDicDataCacheManager"></param>
         /// <param name="systemLogRepository"></param>
-        /// <param name="systemMobilAreaRepository"></param>
+        /// <param name="systemMobilAreaApplication"></param>
         public SysController(
             IMapper mapper,
             IRepository<SystemSetting> systemSettingsRepository,
@@ -75,7 +68,7 @@ namespace Hotline.Api.Controllers
             ISessionContext sessionContext,
             ISystemDicDataCacheManager systemDicDataCacheManager,
             IRepository<SystemLog> systemLogRepository,
-            IRepository<SystemMobilArea> systemMobilAreaRepository
+            ISystemMobilAreaApplication systemMobilAreaApplication
             )
         {
             _mapper = mapper;
@@ -90,7 +83,7 @@ namespace Hotline.Api.Controllers
             _sessionContext = sessionContext;
             _systemDicDataCacheManager = systemDicDataCacheManager;
             _systemLogRepository = systemLogRepository;
-            _systemMobilAreaRepository = systemMobilAreaRepository;
+            _systemMobilAreaApplication = systemMobilAreaApplication;
         }
 
         #region 菜单管理
@@ -591,5 +584,16 @@ namespace Hotline.Api.Controllers
 
         #endregion
 
+        /// <summary>
+        /// 验证电话外呼是否需要加0
+        /// </summary>
+        /// <param name="mobile"></param>
+        /// <returns></returns>
+        [HttpGet("vaild_mobile/{mobile}")]
+        public async Task<string> VaildMobile(string mobile)
+        {
+            return await _systemMobilAreaApplication.VaildMobile(mobile);
+        }
+
     }
 }

+ 14 - 6
src/Hotline.Application/Systems/ISystemMobilAreaApplication.cs

@@ -1,14 +1,22 @@
 using Hotline.Share.Dtos.Settings;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 
 namespace Hotline.Application.Systems
 {
     public interface ISystemMobilAreaApplication
     {
-        Task<SystemMobilAreaDto> GetPhoneCardArea(string PhoneNum,CancellationToken cancellationToken);
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="PhoneNum"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        Task<SystemMobilAreaDto> GetPhoneCardArea(string PhoneNum, CancellationToken cancellationToken);
+
+        /// <summary>
+        /// 验证电话外呼是否需要加0
+        /// </summary>
+        /// <param name="Mobile"></param>
+        /// <returns></returns>
+        Task<string> VaildMobile(string Mobile);
     }
 }

+ 58 - 8
src/Hotline.Application/Systems/SystemMobilAreaApplication.cs

@@ -1,12 +1,8 @@
-using Hotline.Settings;
+using Hotline.Configurations;
+using Hotline.Settings;
 using Hotline.Share.Dtos.Settings;
-using Microsoft.AspNetCore.Http;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using Microsoft.Extensions.Options;
 using System.Text.RegularExpressions;
-using System.Threading.Tasks;
 using XF.Domain.Dependency;
 using XF.Domain.Repository;
 
@@ -15,12 +11,26 @@ namespace Hotline.Application.Systems
     public class SystemMobilAreaApplication : ISystemMobilAreaApplication, IScopeDependency
     {
         private readonly IRepository<SystemMobilArea> _systemMobilAreaRepository;
+        private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
 
-        public SystemMobilAreaApplication(IRepository<SystemMobilArea> systemMobilAreaRepository)
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="systemMobilAreaRepository"></param>
+        /// <param name="appOptions"></param>
+        public SystemMobilAreaApplication(IRepository<SystemMobilArea> systemMobilAreaRepository,
+             IOptionsSnapshot<AppConfiguration> appOptions)
         {
             _systemMobilAreaRepository = systemMobilAreaRepository;
+            _appOptions = appOptions;
         }
 
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="PhoneNum"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
         public async Task<SystemMobilAreaDto> GetPhoneCardArea(string PhoneNum, CancellationToken cancellationToken)
         {
             SystemMobilAreaDto areaDto = new SystemMobilAreaDto();
@@ -73,6 +83,46 @@ namespace Hotline.Application.Systems
             return areaDto;
         }
 
+        /// <summary>
+        /// 验证电话外呼是否需要加0
+        /// </summary>
+        /// <param name="Mobile"></param>
+        /// <returns></returns>
+        public async Task<string> VaildMobile(string Mobile)
+        {
+            string strMobile = Mobile;
+            // 验证是否存在0
+            if (false == string.IsNullOrWhiteSpace(strMobile))
+            {
+                // 前缀是否为0
+                string firstChar = strMobile.Substring(0, 1);
+                if (firstChar == "0" && strMobile.Length > 1)
+                {
+                    strMobile = strMobile.Substring(1, strMobile.Length - 1);
+                }
+                Regex regex = new Regex("^1[0-9]{10}$");
+                bool bCheck = regex.IsMatch(strMobile);
+                if (true == bCheck)
+                {// 是手机号码
+                 // 获取前7位
+                    string sevenChar = strMobile.Substring(0, 7);
+                    var cityName = "四川省自贡市";
+                    if (_appOptions.Value.IsZiGong)
+                        cityName = "四川省自贡市";
+                    else if (_appOptions.Value.IsYiBin)
+                        cityName = "四川省宜宾市";
+                    else if (_appOptions.Value.IsLuZhou)
+                        cityName = "四川省泸州市";
+                    var data = await _systemMobilAreaRepository.GetAsync(p => p.MobileAreaName == cityName && p.MobileCode == sevenChar);
+                    if (data is null)
+                    {
+                        return strMobile = "0" + strMobile;
+                    }
+                }
+            }
+            // 返回结果
+            return Mobile;
+        }
 
         #region 验证手机号码
         /// <summary>