feat:添加短信
This commit is contained in:
BIN
Yi.Framework.Net6/Yi.DataBaseTool.zip
Normal file
BIN
Yi.Framework.Net6/Yi.DataBaseTool.zip
Normal file
Binary file not shown.
@@ -103,6 +103,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.MultiTenancy",
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.DictionaryManager", "src\module\Yi.Framework.DictionaryManager\Yi.Framework.DictionaryManager.csproj", "{8941B30D-698B-477A-8737-43E7B4A8695A}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.DictionaryManager", "src\module\Yi.Framework.DictionaryManager\Yi.Framework.DictionaryManager.csproj", "{8941B30D-698B-477A-8737-43E7B4A8695A}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.Sms.Aliyun", "src\module\Yi.Framework.Sms.Aliyun\Yi.Framework.Sms.Aliyun.csproj", "{063178CF-C5B9-463C-A8A4-F32B743818E2}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@@ -269,6 +271,10 @@ Global
|
|||||||
{8941B30D-698B-477A-8737-43E7B4A8695A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{8941B30D-698B-477A-8737-43E7B4A8695A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{8941B30D-698B-477A-8737-43E7B4A8695A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{8941B30D-698B-477A-8737-43E7B4A8695A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{8941B30D-698B-477A-8737-43E7B4A8695A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{8941B30D-698B-477A-8737-43E7B4A8695A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{063178CF-C5B9-463C-A8A4-F32B743818E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{063178CF-C5B9-463C-A8A4-F32B743818E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{063178CF-C5B9-463C-A8A4-F32B743818E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{063178CF-C5B9-463C-A8A4-F32B743818E2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@@ -317,6 +323,7 @@ Global
|
|||||||
{1BF3115D-B027-4805-AF7B-41B3AE9CB355} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806}
|
{1BF3115D-B027-4805-AF7B-41B3AE9CB355} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806}
|
||||||
{590B1EC0-CDA9-4937-BE07-FBB04437D21F} = {5F2B846D-96CE-400A-878E-220498F4EE31}
|
{590B1EC0-CDA9-4937-BE07-FBB04437D21F} = {5F2B846D-96CE-400A-878E-220498F4EE31}
|
||||||
{8941B30D-698B-477A-8737-43E7B4A8695A} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806}
|
{8941B30D-698B-477A-8737-43E7B4A8695A} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806}
|
||||||
|
{063178CF-C5B9-463C-A8A4-F32B743818E2} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {6C1A3808-0F4F-43FB-A9FE-5F27A3BB2ECF}
|
SolutionGuid = {6C1A3808-0F4F-43FB-A9FE-5F27A3BB2ECF}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace Yi.Framework.Core.Sqlsugar
|
|||||||
public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context)
|
public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context)
|
||||||
{
|
{
|
||||||
services.AddTransient(typeof(IRepository<>), typeof(SqlsugarRepository<>));
|
services.AddTransient(typeof(IRepository<>), typeof(SqlsugarRepository<>));
|
||||||
services.Replace(new ServiceDescriptor(typeof(IUnitOfWorkManager), typeof(SqlsugarUnitOfWorkManager), ServiceLifetime.Singleton));
|
//services.Replace(new ServiceDescriptor(typeof(IUnitOfWorkManager), typeof(SqlsugarUnitOfWorkManager), ServiceLifetime.Singleton));
|
||||||
services.Replace(new ServiceDescriptor(typeof(IDataFilter), typeof(SqlsugarDataFilter), ServiceLifetime.Scoped));
|
services.Replace(new ServiceDescriptor(typeof(IDataFilter), typeof(SqlsugarDataFilter), ServiceLifetime.Scoped));
|
||||||
services.Configure<DbConnOptions>(Appsettings.appConfiguration("DbConnOptions"));
|
services.Configure<DbConnOptions>(Appsettings.appConfiguration("DbConnOptions"));
|
||||||
|
|
||||||
|
|||||||
@@ -12,11 +12,13 @@ using Yi.Framework.Data.Entities;
|
|||||||
using Yi.Framework.Data.Extensions;
|
using Yi.Framework.Data.Extensions;
|
||||||
using Yi.Framework.Data.Filters;
|
using Yi.Framework.Data.Filters;
|
||||||
using Yi.Framework.Ddd;
|
using Yi.Framework.Ddd;
|
||||||
|
using Yi.Framework.Uow;
|
||||||
|
|
||||||
namespace Yi.Framework.Data
|
namespace Yi.Framework.Data
|
||||||
{
|
{
|
||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(YiFrameworkDddModule)) ]
|
typeof(YiFrameworkDddModule),
|
||||||
|
typeof(YiFrameworkUowModule)) ]
|
||||||
public class YiFrameworkDataModule : IStartupModule
|
public class YiFrameworkDataModule : IStartupModule
|
||||||
{
|
{
|
||||||
public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
|
public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ namespace Yi.Framework.Ddd
|
|||||||
{
|
{
|
||||||
[DependsOn(
|
[DependsOn(
|
||||||
typeof(YiFrameworkCoreMapsterModule)
|
typeof(YiFrameworkCoreMapsterModule)
|
||||||
|
|
||||||
)]
|
)]
|
||||||
public class YiFrameworkDddModule:IStartupModule
|
public class YiFrameworkDddModule:IStartupModule
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using AlibabaCloud.SDK.Dysmsapi20170525;
|
||||||
|
using Tea;
|
||||||
|
|
||||||
|
namespace Yi.Framework.Sms.Aliyun
|
||||||
|
{
|
||||||
|
public class SmsAliyunManager
|
||||||
|
{
|
||||||
|
private static Client CreateClient(string accessKeyId, string accessKeySecret)
|
||||||
|
{
|
||||||
|
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
|
||||||
|
{
|
||||||
|
// 必填,您的 AccessKey ID
|
||||||
|
AccessKeyId = accessKeyId,
|
||||||
|
// 必填,您的 AccessKey Secret
|
||||||
|
AccessKeySecret = accessKeySecret,
|
||||||
|
};
|
||||||
|
// 访问的域名
|
||||||
|
config.Endpoint = "dysmsapi.aliyuncs.com";
|
||||||
|
return new Client(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Client AliyunClient { get; set; }
|
||||||
|
public SmsAliyunManager() {
|
||||||
|
|
||||||
|
AliyunClient = CreateClient("accessKeyId", "accessKeySecret");
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task Send(string phoneNumbers, string code)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest
|
||||||
|
{
|
||||||
|
PhoneNumbers = phoneNumbers,
|
||||||
|
SignName = "",
|
||||||
|
TemplateCode = code,
|
||||||
|
};
|
||||||
|
|
||||||
|
var response= await AliyunClient.SendSmsAsync(sendSmsRequest);
|
||||||
|
}
|
||||||
|
catch (TeaException error)
|
||||||
|
{
|
||||||
|
|
||||||
|
Console.WriteLine(error.Message);
|
||||||
|
}
|
||||||
|
catch (Exception _error)
|
||||||
|
{
|
||||||
|
Console.WriteLine(_error.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Yi.Framework.Sms.Aliyun
|
||||||
|
{
|
||||||
|
public class SmsAliyunOptions
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="2.0.23" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\framework\Yi.Framework.Core\Yi.Framework.Core.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using StartupModules;
|
||||||
|
|
||||||
|
namespace Yi.Framework.Sms.Aliyun
|
||||||
|
{
|
||||||
|
public class YiFrameworkSmsAliyunModule : IStartupModule
|
||||||
|
{
|
||||||
|
public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,9 +14,9 @@
|
|||||||
"DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ],
|
"DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ],
|
||||||
|
|
||||||
"DbConnOptions": {
|
"DbConnOptions": {
|
||||||
"Url": "DataSource=yi-sqlsugar-dev.db",
|
//"Url": "DataSource=yi-sqlsugar-dev.db",
|
||||||
//"Url": "server=106.52.94.217;port=3306;database=yi-bbs-dev;user id=root;password=Qz52013142020.",
|
"Url": "server=106.52.94.217;port=3306;database=yi-bbs-dev;user id=root;password=Qz52013142020.",
|
||||||
"DbType": "Sqlite",
|
"DbType": "Mysql",
|
||||||
"EnabledDbSeed": true,
|
"EnabledDbSeed": true,
|
||||||
"EnabledReadWrite": false,
|
"EnabledReadWrite": false,
|
||||||
"EnabledCodeFirst": true,
|
"EnabledCodeFirst": true,
|
||||||
|
|||||||
Binary file not shown.
@@ -13,7 +13,7 @@ namespace Yi.BBS.Application.Contracts.Forum.Dtos.Discuss
|
|||||||
public class DiscussCreateInputVo
|
public class DiscussCreateInputVo
|
||||||
{
|
{
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
public string Types { get; set; }
|
public string? Types { get; set; }
|
||||||
public string? Introduction { get; set; }
|
public string? Introduction { get; set; }
|
||||||
public DateTime? CreateTime { get; set; } = DateTime.Now;
|
public DateTime? CreateTime { get; set; } = DateTime.Now;
|
||||||
public string Content { get; set; }
|
public string Content { get; set; }
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace Yi.BBS.Application.Contracts.Forum.Dtos
|
|||||||
|
|
||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
public string Types { get; set; }
|
public string? Types { get; set; }
|
||||||
public string? Introduction { get; set; }
|
public string? Introduction { get; set; }
|
||||||
public int AgreeNum { get; set; }
|
public int AgreeNum { get; set; }
|
||||||
public int SeeNum { get; set; }
|
public int SeeNum { get; set; }
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace Yi.BBS.Application.Contracts.Forum.Dtos.Discuss
|
|||||||
public class DiscussUpdateInputVo
|
public class DiscussUpdateInputVo
|
||||||
{
|
{
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
public string Types { get; set; }
|
public string? Types { get; set; }
|
||||||
public string? Introduction { get; set; }
|
public string? Introduction { get; set; }
|
||||||
public int AgreeNum { get; set; }
|
public int AgreeNum { get; set; }
|
||||||
public int SeeNum { get; set; }
|
public int SeeNum { get; set; }
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ namespace Yi.BBS.Domain.Forum.Entities
|
|||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
public bool IsDeleted { get; set; }
|
public bool IsDeleted { get; set; }
|
||||||
|
|
||||||
|
[SugarColumn(Length = 9999)]
|
||||||
public string Content { get; set; }
|
public string Content { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace Yi.BBS.Domain.Forum.Entities
|
|||||||
[SugarColumn(IsPrimaryKey = true)]
|
[SugarColumn(IsPrimaryKey = true)]
|
||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
public string Types { get; set; }
|
public string? Types { get; set; }
|
||||||
public string? Introduction { get; set; }
|
public string? Introduction { get; set; }
|
||||||
public int AgreeNum { get; set; }
|
public int AgreeNum { get; set; }
|
||||||
public int SeeNum { get; set; }
|
public int SeeNum { get; set; }
|
||||||
@@ -34,6 +34,8 @@ namespace Yi.BBS.Domain.Forum.Entities
|
|||||||
/// 封面
|
/// 封面
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? Cover { get; set; }
|
public string? Cover { get; set; }
|
||||||
|
|
||||||
|
[SugarColumn(Length =9999)]
|
||||||
public string Content { get; set; }
|
public string Content { get; set; }
|
||||||
|
|
||||||
public string? Color { get; set; }
|
public string? Color { get; set; }
|
||||||
|
|||||||
@@ -14,9 +14,9 @@
|
|||||||
"DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ],
|
"DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ],
|
||||||
|
|
||||||
"DbConnOptions": {
|
"DbConnOptions": {
|
||||||
"Url": "DataSource=yi-sqlsugar-dev.db",
|
//"Url": "DataSource=yi-sqlsugar-dev.db",
|
||||||
//"Url": "server=106.52.94.217;port=3306;database=yi-bbs-dev;user id=root;password=Qz52013142020.",
|
"Url": "server=106.52.94.217;port=3306;database=yi-bbs-dev;user id=root;password=Qz52013142020.",
|
||||||
"DbType": "Sqlite",
|
"DbType": "Mysql",
|
||||||
"EnabledDbSeed": true,
|
"EnabledDbSeed": true,
|
||||||
"EnabledReadWrite": false,
|
"EnabledReadWrite": false,
|
||||||
"EnabledCodeFirst": true,
|
"EnabledCodeFirst": true,
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 616 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.4 KiB |
Binary file not shown.
@@ -65,7 +65,8 @@ namespace Yi.RBAC.Application.Identity
|
|||||||
[Autowired]
|
[Autowired]
|
||||||
private IUnitOfWorkManager _unitOfWorkManager { get; set; }
|
private IUnitOfWorkManager _unitOfWorkManager { get; set; }
|
||||||
|
|
||||||
|
[Autowired]
|
||||||
|
private IRepository<RoleEntity> _roleRepository { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 登录
|
/// 登录
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -152,7 +153,7 @@ namespace Yi.RBAC.Application.Identity
|
|||||||
|
|
||||||
var entity = await _userRepository.InsertReturnEntityAsync(newUser);
|
var entity = await _userRepository.InsertReturnEntityAsync(newUser);
|
||||||
//赋上一个初始角色
|
//赋上一个初始角色
|
||||||
var roleRepository = uow.GetRepository<RoleEntity>();
|
var roleRepository = _roleRepository;
|
||||||
var role = await roleRepository.GetFirstAsync(x => x.RoleName == UserConst.GuestRoleName);
|
var role = await roleRepository.GetFirstAsync(x => x.RoleName == UserConst.GuestRoleName);
|
||||||
if (role is not null)
|
if (role is not null)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user