Просмотр исходного кода

😎1、简化配置文件 2、修复列查询未重置tableData 3、更新sms配置

zuohuaijun 2 лет назад
Родитель
Сommit
434c0cb32c

+ 1 - 1
Admin.NET/Admin.NET.Application/Configuration/CodeGen.json

@@ -3,7 +3,7 @@
 
   // 代码生成配置项-程序集名称集合
   "CodeGen": {
-    "EntityAssemblyNames": [ "Admin.NET.Core", "Admin.NET.Application" ],
+    "EntityAssemblyNames": [ "Admin." ],
     "BaseEntityNames": [ "EntityTenantId", "EntityTenant", "EntityTenantBaseData", "EntityBaseData", "EntityBase", "EntityBaseId" ],
     "EntityBaseColumn": {
       "EntityTenantId": [ "Id", "TenantId" ],

+ 1 - 1
Admin.NET/Admin.NET.Application/Configuration/Enum.json

@@ -3,6 +3,6 @@
 
   // 枚举实体所在程序集名称集合
   "Enum": {
-    "EntityAssemblyNames": [ "Admin.NET.Core", "Admin.NET.Application", "Admin.NET.AppCMS" ]
+    "EntityAssemblyNames": [ "Admin." ]
   }
 }

+ 22 - 4
Admin.NET/Admin.NET.Application/Configuration/SMS.json

@@ -5,15 +5,33 @@
     "Aliyun": {
       "AccessKeyId": "",
       "AccessKeySecret": "",
-      "SignName": "AdminNET 平台", // 短信签名
-      "TemplateCode": "" // 短信模板
+      "Templates": [
+        {
+          "Id": "0",
+          "SignName": "AdminNET 平台",
+          "TemplateCode": "SMS_291005708",
+          "Content": "您的验证码为:${code},请勿泄露于他人!"
+        },
+        {
+          "Id": "1",
+          "SignName": "AdminNET 平台",
+          "TemplateCode": "SMS_462801755",
+          "Content": "注册成功,感谢您的注册,请妥善保管您的账户信息"
+        }
+      ]
     },
     "Tencentyun": {
       "SdkAppId": "",
       "AccessKeyId": "",
       "AccessKeySecret": "",
-      "SignName": "AdminNET 平台", // 短信签名
-      "TemplateCode": "" // 短信模板
+      "Templates": [
+        {
+          "Id": "0",
+          "SignName": "AdminNET 平台",
+          "TemplateCode": "",
+          "Content": ""
+        }
+      ]
     }
   }
 }

+ 18 - 3
Admin.NET/Admin.NET.Core/Option/SMSOptions.cs

@@ -40,12 +40,27 @@ public sealed class SMSSettings
     public string AccessKeySecret { get; set; }
 
     /// <summary>
-    /// 短信签名
+    /// Templates
     /// </summary>
-    public string SignName { get; set; }
+    public List<SmsTemplate> Templates { get; set; }
 
     /// <summary>
-    /// 短信模板
+    /// GetTemplate
     /// </summary>
+    public SmsTemplate GetTemplate(string id = "0")
+    {
+        foreach (var template in Templates)
+        {
+            if (template.Id == id) { return template; }
+        }
+        return null;
+    }
+}
+
+public class SmsTemplate
+{
+    public string Id { get; set; } = string.Empty;
+    public string SignName { get; set; }
     public string TemplateCode { get; set; }
+    public string Content { get; set; }
 }

+ 9 - 4
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs

@@ -248,10 +248,15 @@ public class SysCodeGenService : IDynamicApiController, ITransient
         var types = new List<Type>();
         if (_codeGenOptions.EntityAssemblyNames != null)
         {
-            foreach (var assemblyName in _codeGenOptions.EntityAssemblyNames)
+            var assemblies = AppDomain.CurrentDomain.GetAssemblies();
+            foreach (var assembly in assemblies)
             {
-                Assembly asm = Assembly.Load(assemblyName);
-                types.AddRange(asm.GetExportedTypes().ToList());
+                var assemblyName = assembly.GetName().Name;
+                if (_codeGenOptions.EntityAssemblyNames.Contains(assemblyName) || _codeGenOptions.EntityAssemblyNames.Any(name => assemblyName.Contains(name)))
+                {
+                    Assembly asm = Assembly.Load(assemblyName);
+                    types.AddRange(asm.GetExportedTypes().ToList());
+                }
             }
         }
         bool IsMyAttribute(Attribute[] o)
@@ -343,7 +348,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
             PrintType = input.PrintType,
             PrintName = input.PrintName,
         };
-        //模板目录
+        // 模板目录
         var templatePathList = GetTemplatePathList(input);
         var templatePath = Path.Combine(App.WebHostEnvironment.WebRootPath, "Template");
 

+ 4 - 1
Admin.NET/Admin.NET.Core/Service/Enum/SysEnumService.cs

@@ -27,7 +27,10 @@ public class SysEnumService : IDynamicApiController, ITransient
     [DisplayName("获取所有枚举类型")]
     public List<EnumTypeOutput> GetEnumTypeList()
     {
-        var enumTypeList = App.EffectiveTypes.Where(u => u.IsEnum && _enumOptions.EntityAssemblyNames.Contains(u.Assembly.GetName().Name)).OrderBy(u => u.Name).OrderBy(u => u.FullName).ToList();
+        var enumTypeList = App.EffectiveTypes.Where(t => t.IsEnum)
+            .Where(t => _enumOptions.EntityAssemblyNames.Contains(t.Assembly.GetName().Name) || _enumOptions.EntityAssemblyNames.Any(name => t.Assembly.GetName().Name.Contains(name)))
+            .OrderBy(u => u.Name).OrderBy(u => u.FullName)
+            .ToList();
 
         var result = new List<EnumTypeOutput>();
         foreach (var item in enumTypeList)

+ 10 - 6
Admin.NET/Admin.NET.Core/Service/Message/SysSmsService.cs

@@ -8,6 +8,7 @@ using AlibabaCloud.SDK.Dysmsapi20170525.Models;
 using TencentCloud.Common;
 using TencentCloud.Common.Profile;
 using TencentCloud.Sms.V20190711;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.ComponentTCBBatchCreateContainerServiceVersionRequest.Types;
 
 namespace Admin.NET.Core.Service;
 
@@ -65,11 +66,12 @@ public class SysSmsService : IDynamicApiController, ITransient
         });
 
         var client = CreateAliyunClient();
+        var template = _smsOptions.Aliyun.GetTemplate();
         var sendSmsRequest = new SendSmsRequest
         {
             PhoneNumbers = phoneNumber, // 待发送手机号, 多个以逗号分隔
-            SignName = _smsOptions.Aliyun.SignName, // 短信签名
-            TemplateCode = _smsOptions.Aliyun.TemplateCode, // 短信模板
+            SignName = template.SignName, // 短信签名
+            TemplateCode = template.TemplateCode, // 短信模板
             TemplateParam = templateParam.ToString(), // 模板中的变量替换JSON串
             OutId = YitIdHelper.NextId().ToString()
         };
@@ -104,11 +106,12 @@ public class SysSmsService : IDynamicApiController, ITransient
             throw Oops.Oh("短信内容不能为空");
 
         var client = CreateAliyunClient();
+        var template = _smsOptions.Aliyun.GetTemplate();
         var sendSmsRequest = new SendSmsRequest
         {
             PhoneNumbers = phoneNumber, // 待发送手机号, 多个以逗号分隔
-            SignName = _smsOptions.Aliyun.SignName, // 短信签名
-            TemplateCode = _smsOptions.Aliyun.TemplateCode, // 短信模板
+            SignName = template.SignName, // 短信签名
+            TemplateCode = template.TemplateCode, // 短信模板
             TemplateParam = templateParam.ToString(), // 模板中的变量替换JSON串
             OutId = YitIdHelper.NextId().ToString()
         };
@@ -142,13 +145,14 @@ public class SysSmsService : IDynamicApiController, ITransient
 
         // 实例化要请求产品的client对象,clientProfile是可选的
         var client = new SmsClient(CreateTencentClient(), "ap-guangzhou", new ClientProfile() { HttpProfile = new HttpProfile() { Endpoint = ("sms.tencentcloudapi.com") } });
+        var template = _smsOptions.Tencentyun.GetTemplate();
         // 实例化一个请求对象,每个接口都会对应一个request对象
         var req = new TencentCloud.Sms.V20190711.Models.SendSmsRequest
         {
             PhoneNumberSet = new string[] { "+86" + phoneNumber.Trim(',') },
             SmsSdkAppid = _smsOptions.Tencentyun.SdkAppId,
-            Sign = _smsOptions.Tencentyun.SignName,
-            TemplateID = _smsOptions.Tencentyun.TemplateCode,
+            Sign = template.SignName,
+            TemplateID = template.TemplateCode,
             TemplateParamSet = new string[] { verifyCode.ToString() }
         };
 

+ 1 - 1
Web/src/views/system/database/index.vue

@@ -135,6 +135,7 @@ const handleQueryTable = async () => {
 
 	var res = await getAPI(SysDatabaseApi).apiSysDatabaseTableListConfigIdGet(state.configId);
 	let tableData = res.data.result ?? [];
+	state.tableData = [];
 	tableData.forEach((element: any) => {
 		//排除zero_开头的表
 		if (!element.name.startsWith('zero_')) {
@@ -150,7 +151,6 @@ const handleQueryColumn = async () => {
 	if (state.tableName == '' || typeof state.tableName == 'undefined') return;
 
 	state.loading1 = true;
-	state.tableData = [];
 	var res = await getAPI(SysDatabaseApi).apiSysDatabaseColumnListTableNameConfigIdGet(state.tableName, state.configId);
 	state.columnData = res.data.result ?? [];
 	state.loading1 = false;