sunpengfei
2025-08-15 6abe988bee26f64b610e427b8795b6fd36a549ec
FlexJobApi.UserServer.Application/Auths/Commands/VerifyCodeCommandHandler.cs
@@ -1,4 +1,5 @@
using FlexJobApi.Core;
using Furion.DatabaseAccessor;
using Mapster;
using MediatR;
using System;
@@ -12,27 +13,42 @@
    /// <summary>
    /// 验证码命令处理器
    /// </summary>
    public class VerifyCodeCommandHandler
        : IRequestHandler<SendVerifyCodeCommand, Guid>
    public class VerifyCodeCommandHandler(
            SmsUtils smsUtils
        ) :
        IRequestHandler<SendLoginOrRegisterVerifyCodeCommand, Guid>,
        IRequestHandler<UpdatePhoneNumberVerifyCodeCommand, Guid>
    {
        private readonly SmsUtils smsUtils = smsUtils;
        /// <summary>
        /// 发送验证码
        /// 发送登录或注册短信
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public Task<Guid> Handle(SendVerifyCodeCommand request, CancellationToken cancellationToken)
        public Task<Guid> Handle(SendLoginOrRegisterVerifyCodeCommand request, CancellationToken cancellationToken)
        {
            throw new Exception();
            //var code = new Random().Next(100000, 999999).ToString();
            //var entity = new SmsLog();
            //request.Adapt(entity);
            //entity.Expiry = DateTime.Now.AddMinutes(30);
            //entity.TemplateParam = new { code }.ToJson();
            //await utils.SendAsync(request.PhoneNumber, request.TemplateCode, entity.TemplateParam, cancellationToken);
            //rep.Add(entity);
            //await rep.SaveChangesAsync(cancellationToken);
            //return new FriendlyEmptyCallback("验证码已发送,请查收");
            return smsUtils.SendVerifyCode(new SendVerifyCodeModel
            {
                PhoneNumber = request.PhoneNumber,
                TemplateCode = EnumSmsTemplateCode.LoginOrRegister
            });
        }
        /// <summary>
        /// 发送更换手机号短信
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public Task<Guid> Handle(UpdatePhoneNumberVerifyCodeCommand request, CancellationToken cancellationToken)
        {
            return smsUtils.SendVerifyCode(new SendVerifyCodeModel
            {
                PhoneNumber = request.PhoneNumber,
                TemplateCode = EnumSmsTemplateCode.UpdateUserPhoneNumber
            });
        }
    }
}