From 5b86cd10f893872da68c040adea52953eb25c4a0 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 09 九月 2025 15:08:22 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs b/FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs
index e280385..fe1f343 100644
--- a/FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs
+++ b/FlexJobApi.Core/Utils/SmsUtils/SmsUtils.cs
@@ -1,9 +1,13 @@
 锘縰sing Azure.Core;
+using Furion;
 using Furion.DatabaseAccessor;
 using Furion.FriendlyException;
+using Furion.UnifyResult;
 using Mapster;
 using MediatR;
 using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Options;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -19,14 +23,28 @@
     public class SmsUtils
     {
         private readonly IRepository<SmsLog, LogDbContextLocator> rep;
+        private readonly IOptions<AliyunOptions> options;
         private readonly AliyunSmsUtils aliyunSmsUtils;
 
         public SmsUtils(
             IRepository<SmsLog, LogDbContextLocator> rep,
+            IOptions<AliyunOptions> options,
             AliyunSmsUtils aliyunSmsUtils)
         {
             this.rep = rep;
+            this.options = options;
             this.aliyunSmsUtils = aliyunSmsUtils;
+        }
+
+        public async Task<Guid> Send(SendSmsModel model, object templateParam, CancellationToken cancellationToken = default)
+        {
+            var entity = new SmsLog();
+            model.Adapt(entity);
+            entity.Expiry = DateTime.Now.AddMinutes(10);
+            entity.TemplateParam = templateParam.ToJson();
+            await aliyunSmsUtils.SendAsync(model.PhoneNumber, model.TemplateCode, entity.TemplateParam, cancellationToken);
+            await rep.InsertAsync(entity);
+            return entity.Id;
         }
 
         public async Task<Guid> SendVerifyCode(SendVerifyCodeModel model, CancellationToken cancellationToken = default)
@@ -38,6 +56,13 @@
             entity.TemplateParam = new { code }.ToJson();
             await aliyunSmsUtils.SendAsync(model.PhoneNumber, model.TemplateCode, entity.TemplateParam, cancellationToken);
             await rep.InsertAsync(entity);
+            if (options.Value.SMS.WithoutVerifyCode)
+            {
+                UnifyContext.Fill(new
+                {
+                    Code = code
+                });
+            }
             return entity.Id;
         }
 

--
Gitblit v1.9.1