Merge pull request '简化 Enum.json和CodeGen.json中的名称配置' (#5) from coolcalf/Admin.NET.Pro:main into main

Reviewed-on: http://101.43.53.74:3000/Admin.NET/Admin.NET.Pro/pulls/5
This commit is contained in:
zuohuaijun 2024-06-28 00:33:33 +08:00
commit af240b3522
7 changed files with 64 additions and 19 deletions

View File

@ -3,7 +3,7 @@
// - // -
"CodeGen": { "CodeGen": {
"EntityAssemblyNames": [ "Admin.NET.Core", "Admin.NET.Application" ], "EntityAssemblyNames": [ "Admin." ],
"BaseEntityNames": [ "EntityTenantId", "EntityTenant", "EntityTenantBaseData", "EntityBaseData", "EntityBase", "EntityBaseId" ], "BaseEntityNames": [ "EntityTenantId", "EntityTenant", "EntityTenantBaseData", "EntityBaseData", "EntityBase", "EntityBaseId" ],
"EntityBaseColumn": { "EntityBaseColumn": {
"EntityTenantId": [ "Id", "TenantId" ], "EntityTenantId": [ "Id", "TenantId" ],

View File

@ -3,6 +3,6 @@
// //
"Enum": { "Enum": {
"EntityAssemblyNames": [ "Admin.NET.Core", "Admin.NET.Application", "Admin.NET.AppCMS" ] "EntityAssemblyNames": [ "Admin." ]
} }
} }

View File

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

View File

@ -40,12 +40,27 @@ public sealed class SMSSettings
public string AccessKeySecret { get; set; } public string AccessKeySecret { get; set; }
/// <summary> /// <summary>
/// 短信签名 /// Templates
/// </summary> /// </summary>
public string SignName { get; set; } public List<SmsTemplate> Templates { get; set; }
/// <summary> /// <summary>
/// 短信模板 /// GetTemplate
/// </summary> /// </summary>
public string TemplateCode { get; set; } 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; }
} }

View File

@ -248,10 +248,15 @@ public class SysCodeGenService : IDynamicApiController, ITransient
var types = new List<Type>(); var types = new List<Type>();
if (_codeGenOptions.EntityAssemblyNames != null) 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); var assemblyName = assembly.GetName().Name;
types.AddRange(asm.GetExportedTypes().ToList()); 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) bool IsMyAttribute(Attribute[] o)

View File

@ -27,7 +27,10 @@ public class SysEnumService : IDynamicApiController, ITransient
[DisplayName("获取所有枚举类型")] [DisplayName("获取所有枚举类型")]
public List<EnumTypeOutput> GetEnumTypeList() 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>(); var result = new List<EnumTypeOutput>();
foreach (var item in enumTypeList) foreach (var item in enumTypeList)

View File

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