using ApiTools.Core;
|
using MediatR;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace ApiTools.Application
|
{
|
public class SendSmsCommandHandler(
|
SmsUtils utils
|
) :
|
IRequestHandler<SendSmsCommand, Guid>,
|
IRequestHandler<CheckVerifyCodeSmsCommand, bool>
|
{
|
private readonly SmsUtils utils = utils;
|
|
/// <summary>
|
/// 发送短信
|
/// </summary>
|
/// <param name="request"></param>
|
/// <param name="cancellationToken"></param>
|
/// <returns></returns>
|
public async Task<Guid> Handle(SendSmsCommand request, CancellationToken cancellationToken)
|
{
|
return await utils.Send(new SendSmsModel
|
{
|
PhoneNumber = request.PhoneNumber,
|
TemplateCode = request.TemplateCode,
|
Expiry = request.Expiry,
|
ChannelCreatedUserId = request.ChannelCreatedUserId
|
}, request.TemplateParam, cancellationToken);
|
}
|
|
/// <summary>
|
/// 校验验证码
|
/// </summary>
|
/// <param name="request"></param>
|
/// <param name="cancellationToken"></param>
|
/// <returns></returns>
|
public async Task<bool> Handle(CheckVerifyCodeSmsCommand request, CancellationToken cancellationToken)
|
{
|
await utils.CheckVerifyCode(new CheckVerifyCodeModel
|
{
|
PhoneNumber = request.PhoneNumber,
|
TemplateCode = request.TemplateCode,
|
VerifyCode = request.VerifyCode,
|
}, cancellationToken);
|
return true;
|
}
|
}
|
}
|