Merge branch 'abp' of https://gitee.com/ccnetcore/Yi into abp
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
using AlibabaCloud.SDK.Dysmsapi20170525;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Volo.Abp.Domain.Services;
|
||||
using Yi.Framework.Rbac.Domain.Shared.Options;
|
||||
|
||||
namespace Yi.Framework.Rbac.Domain.Managers
|
||||
{
|
||||
public class AliyunManger : DomainService, IAliyunManger
|
||||
{
|
||||
private ILogger<AliyunManger> _logger;
|
||||
private AliyunOptions Options { get; set; }
|
||||
public AliyunManger(ILogger<AliyunManger> logger, IOptions<AliyunOptions> options)
|
||||
{
|
||||
Options = options.Value;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
private Client CreateClient()
|
||||
{
|
||||
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
|
||||
{
|
||||
// 必填,您的 AccessKey ID
|
||||
AccessKeyId = Options.AccessKeyId,
|
||||
// 必填,您的 AccessKey Secret
|
||||
AccessKeySecret = Options.AccessKeySecret,
|
||||
};
|
||||
// 访问的域名
|
||||
config.Endpoint = "dysmsapi.aliyuncs.com";
|
||||
return new Client(config);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 发送短信
|
||||
/// </summary>
|
||||
/// <param name="phoneNumbers"></param>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
public async Task SendSmsAsync(string phoneNumbers, string code)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
var _aliyunClient = CreateClient();
|
||||
AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest
|
||||
{
|
||||
PhoneNumbers = phoneNumbers,
|
||||
SignName = Options.Sms.SignName,
|
||||
TemplateCode = Options.Sms.TemplateCode,
|
||||
TemplateParam = System.Text.Json.JsonSerializer.Serialize(new { code })
|
||||
};
|
||||
|
||||
var response = await _aliyunClient.SendSmsAsync(sendSmsRequest);
|
||||
}
|
||||
|
||||
catch (Exception _error)
|
||||
{
|
||||
_logger.LogError(_error, "阿里云短信发送错误:" + _error.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public interface IAliyunManger
|
||||
{
|
||||
Task SendSmsAsync(string phoneNumbers, string code);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,13 +10,13 @@ namespace Yi.Framework.Rbac.Domain.SignalRHubs
|
||||
{
|
||||
[HubRoute("/hub/main")]
|
||||
[Authorize]
|
||||
public class OnlineUserHub : AbpHub
|
||||
public class OnlineUserHub : AbpHub
|
||||
{
|
||||
public static readonly List<OnlineUserModel> clientUsers = new();
|
||||
|
||||
|
||||
private HttpContext? _httpContext;
|
||||
private ILogger<OnlineUserHub> _logger=> LoggerFactory.CreateLogger<OnlineUserHub>();
|
||||
private ILogger<OnlineUserHub> _logger => LoggerFactory.CreateLogger<OnlineUserHub>();
|
||||
public OnlineUserHub(IHttpContextAccessor httpContextAccessor)
|
||||
{
|
||||
_httpContext = httpContextAccessor?.HttpContext;
|
||||
@@ -68,10 +68,15 @@ namespace Yi.Framework.Rbac.Domain.SignalRHubs
|
||||
//判断用户是否存在,否则添加集合
|
||||
if (user != null)
|
||||
{
|
||||
clientUsers.Remove(user);
|
||||
Clients.All.SendAsync("onlineNum", clientUsers.Count);
|
||||
//Clients.All.SendAsync(HubsConstant.OnlineUser, clientUsers);
|
||||
_logger.LogInformation($"用户{user?.UserName}离开了,当前已连接{clientUsers.Count}个");
|
||||
var clientUser = clientUsers.FirstOrDefault(x => x.ConnnectionId == user.ConnnectionId);
|
||||
if (clientUser is not null)
|
||||
{
|
||||
clientUsers.Remove(clientUser);
|
||||
Clients.All.SendAsync("onlineNum", clientUsers.Count);
|
||||
//Clients.All.SendAsync(HubsConstant.OnlineUser, clientUsers);
|
||||
_logger.LogInformation($"用户{user?.UserName}离开了,当前已连接{clientUsers.Count}个");
|
||||
}
|
||||
|
||||
}
|
||||
return base.OnDisconnectedAsync(exception);
|
||||
}
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="..\..\..\common.props" />
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
<PackageReference Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="2.0.24" />
|
||||
|
||||
<PackageReference Include="IPTools.China" Version="1.6.0" />
|
||||
|
||||
<PackageReference Include="TencentCloudSDK" Version="3.0.917" />
|
||||
|
||||
<PackageReference Include="UAParser" Version="3.1.47" />
|
||||
|
||||
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="8.0.0-rc.3" />
|
||||
<PackageReference Include="Volo.Abp.AspNetCore.SignalR" Version="8.0.0" />
|
||||
|
||||
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="8.0.0-rc.3" />
|
||||
<PackageReference Include="Volo.Abp.Caching" Version="8.0.0-rc.3" />
|
||||
<PackageReference Include="Volo.Abp.Ddd.Domain" Version="8.0.0" />
|
||||
<PackageReference Include="Volo.Abp.Caching" Version="8.0.0" />
|
||||
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
@@ -7,6 +7,7 @@ using Yi.Framework.Mapster;
|
||||
using Yi.Framework.Rbac.Domain.Authorization;
|
||||
using Yi.Framework.Rbac.Domain.Operlog;
|
||||
using Yi.Framework.Rbac.Domain.Shared;
|
||||
using Yi.Framework.Rbac.Domain.Shared.Options;
|
||||
|
||||
namespace Yi.Framework.Rbac.Domain
|
||||
{
|
||||
@@ -22,11 +23,15 @@ namespace Yi.Framework.Rbac.Domain
|
||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||
{
|
||||
var service = context.Services;
|
||||
var configuration = context.Services.GetConfiguration();
|
||||
service.AddControllers(options =>
|
||||
{
|
||||
options.Filters.Add<PermissionGlobalAttribute>();
|
||||
options.Filters.Add<OperLogGlobalAttribute>();
|
||||
});
|
||||
|
||||
//配置阿里云短信
|
||||
Configure<AliyunOptions>(configuration.GetSection(nameof(AliyunOptions)));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user