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": {
"EntityAssemblyNames": [ "Admin.NET.Core", "Admin.NET.Application" ],
"EntityAssemblyNames": [ "Admin." ],
"BaseEntityNames": [ "EntityTenantId", "EntityTenant", "EntityTenantBaseData", "EntityBaseData", "EntityBase", "EntityBaseId" ],
"EntityBaseColumn": {
"EntityTenantId": [ "Id", "TenantId" ],

View File

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

View File

@ -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": ""
}
]
}
}
}

View File

@ -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; }
}

View File

@ -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)

View File

@ -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)

View File

@ -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() }
};