فهرست منبع

短信发送增加手机号验证

tangjiang 1 هفته پیش
والد
کامیت
fcfe2a2e10
1فایلهای تغییر یافته به همراه25 افزوده شده و 17 حذف شده
  1. 25 17
      src/Hotline/Push/FWMessage/PushDomainService.cs

+ 25 - 17
src/Hotline/Push/FWMessage/PushDomainService.cs

@@ -3,18 +3,12 @@ using Hotline.EventBus;
 using Hotline.Orders;
 using Hotline.Push.Notifies;
 using Hotline.Share.Dtos.Push;
-using Hotline.Share.Dtos.SendSms;
 using Hotline.Share.Enums.Push;
+using Hotline.Share.Tools;
 using Mapster;
 using MapsterMapper;
-using MediatR;
-using Microsoft.AspNetCore.Http;
 using Microsoft.Extensions.Logging;
-using Microsoft.Extensions.Options;
-using System.Net;
-using System.Net.Http.Json;
 using System.Text.RegularExpressions;
-using System.Xml;
 using XF.Domain.Dependency;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
@@ -107,19 +101,33 @@ public class PushDomainService : IPushDomainService, IScopeDependency
         }
         #endregion
         var message = _mapper.Map<Message>(messageDto);
+        //验证手机号是否正确
+        var isRight = message.TelNumber.IsPhoneNumber();
+        //如果不正确直接写入失败,不往短信平台推送
+        if (isRight == false)
+        {
+            message.Status = EPushStatus.Failed;
+            message.SendState = ESendState.Failed;
+            message.Reason = "手机号码格式错误";
+        }
+
         var id = await _messageRepository.AddAsync(message, cancellation);//写入本地数据库
 
-        PushMessageDto pushMessage = new()
+        //手机号码正确推送短信
+        if (isRight)
         {
-            ClientId = "Hotline",
-            ExternalId = id,
-            Content = message.Content,
-            Remark = message.Remark,
-            Name = message.Name,
-            TelNumber = message.TelNumber
-        };
-        //消息队列
-        await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.SendSms, pushMessage, cancellationToken: cancellation);
+            PushMessageDto pushMessage = new()
+            {
+                ClientId = "Hotline",
+                ExternalId = id,
+                Content = message.Content,
+                Remark = message.Remark,
+                Name = message.Name,
+                TelNumber = message.TelNumber
+            };
+            //消息队列
+            await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.SendSms, pushMessage, cancellationToken: cancellation);
+        }
     }
 
     /// <summary>