|  |  | @ -1,4 +1,9 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | using NPin.Framework.SettingManagement.Domain; |  |  |  | using Newtonsoft.Json; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | using NPin.Framework.SettingManagement.Domain; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | using NPin.Framework.Upms.Domain.Shared.Consts; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | using NPin.Framework.Upms.Domain.Shared.Enums; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | using NPin.Framework.Upms.Domain.Shared.Model; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | using NPin.Framework.Upms.Domain.Shared.Options; | 
			
		
	
		
		
			
				
					
					|  |  |  | using Volo.Abp.Settings; |  |  |  | using Volo.Abp.Settings; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | namespace NPin.Framework.Upms.Domain.Settings; |  |  |  | namespace NPin.Framework.Upms.Domain.Settings; | 
			
		
	
	
		
		
			
				
					|  |  | @ -16,8 +21,83 @@ public static class UpmsSettingManagerExtensions | 
			
		
	
		
		
			
				
					
					|  |  |  |         return settingManager.GetAllAsync(UpmsSettingManagementProvider.ProviderName, null, fallback); |  |  |  |         return settingManager.GetAllAsync(UpmsSettingManagementProvider.ProviderName, null, fallback); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public static Task<Dictionary<string, SettingValue>> GetByPrefixUpmsAsync(this ISettingManager settingManager, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         string namePrefix, bool fallback = false) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return settingManager.GetAllByPrefixAsync(namePrefix, UpmsSettingManagementProvider.ProviderName, null, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             fallback); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public static Task SetUpmsAsync(this ISettingManager settingManager, string name, string value) |  |  |  |     public static Task SetUpmsAsync(this ISettingManager settingManager, string name, string value) | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         return settingManager.SetAsync(name, value, UpmsSettingManagementProvider.ProviderName, null); |  |  |  |         return settingManager.SetAsync(name, value, UpmsSettingManagementProvider.ProviderName, null); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     #region 方便快捷获取配置的语法糖 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public static async Task<UpmsOptions> GetSysSettingAsync(this ISettingManager settingManager, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         UpmsOptions defaultVal) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         var configs = await settingManager.GetByPrefixUpmsAsync(ConfigKeyConst.SysSettingPrefix); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return new UpmsOptions | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             AdminPassword = Parser(ConfigKeyConst.SysDefaultAdminPassword, StringParser, defaultVal.AdminPassword), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             TenantAdminPassword = Parser(ConfigKeyConst.SysDefaultTenantAdminPassword, StringParser, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 defaultVal.TenantAdminPassword), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             EnableCaptcha = Parser(ConfigKeyConst.SysEnableCaptcha, BoolParser, defaultVal.EnableCaptcha), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             EnableRegister = Parser(ConfigKeyConst.SysEnableRegister, BoolParser, defaultVal.EnableRegister), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             EnableDataBaseBackup = Parser(ConfigKeyConst.SysEnableDataBaseBackup, BoolParser, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 defaultVal.EnableDataBaseBackup), | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         }; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         T Parser<T>(string key, Func<string?, T, T> getter, T defaults) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (!configs.ContainsKey(key)) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 return defaults; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             var val = configs[key].Value; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return getter(val, defaults); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         string StringParser(string? val, string defaults) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return val ?? defaults; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         bool BoolParser(string? val, bool defaults) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return bool.TryParse(val ?? bool.FalseString, out var ret) ? ret : defaults; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /// <summary> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /// 获取短信配置 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /// </summary> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /// <param name="settingManager"></param> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /// <returns></returns> | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public static async Task<SmsConfigModel> GetSmsConfigModelAsync(this ISettingManager settingManager) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         var smsConfigs = await settingManager.GetByPrefixUpmsAsync(ConfigKeyConst.SmsConfigPrefix); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         var configJson = smsConfigs[ConfigKeyConst.SmsConfigModel].Value; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         var settingsJson = smsConfigs[ConfigKeyConst.SmsSettings].Value; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         var providersJson = smsConfigs[ConfigKeyConst.SmsProviders].Value; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         var templateJson = smsConfigs[ConfigKeyConst.SmsTemplates].Value; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         var ret = JsonConvert.DeserializeObject<SmsConfigModel>(configJson ?? string.Empty) ?? new SmsConfigModel(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         ret.Settings = | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             JsonConvert.DeserializeObject<Dictionary<SmsTypeEnum, SmsSettings>>(settingsJson ?? string.Empty) ?? | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             new Dictionary<SmsTypeEnum, SmsSettings>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         ret.Providers = JsonConvert.DeserializeObject<List<SmsProvider>>(providersJson ?? string.Empty) ?? []; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         ret.Templates = JsonConvert.DeserializeObject<List<SmsTemplate>>(templateJson ?? string.Empty) ?? []; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return ret; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     #endregion | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } |