Procházet zdrojové kódy

Merge branch 'master' of http://110.188.24.182:10023/Fengwo/hotline

xf před 1 rokem
rodič
revize
ec11a7c025

+ 13 - 13
src/Hotline.Share/Dtos/Push/MessageDto.cs

@@ -9,10 +9,20 @@ namespace Hotline.Share.Dtos.Push
         /// </summary>
         public EPushBusiness PushBusiness { get; set; }
 
+        /// <summary>
+        /// 接收姓名
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 接收手机号码
+        /// </summary>
+        public string TelNumber { get; set; }
+
         /// <summary>
         /// 外部业务唯一编号
         /// </summary>
-        public string ExternalId { get; set; }
+        public string? ExternalId { get; set; }
 
         /// <summary>
         /// 关联工单编号
@@ -22,7 +32,7 @@ namespace Hotline.Share.Dtos.Push
         /// <summary>
         /// 推送平台
         /// </summary>
-        public EPushPlatform PushPlatform { get; set; }
+        public EPushPlatform? PushPlatform { get; set; } = EPushPlatform.Sms;
 
         /// <summary>
         /// 模板
@@ -39,19 +49,9 @@ namespace Hotline.Share.Dtos.Push
         /// </summary>
         public string? Remark { get; set; }
 
-        /// <summary>
-        /// 接收姓名
-        /// </summary>
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 接收手机号码
-        /// </summary>
-        public string TelNumber { get; set; }
-
         /// <summary>
         /// 参数
         /// </summary>
-        public List<string> Params { get; set; }
+        public List<string>? Params { get; set; }
     }
 }

+ 4 - 4
src/Hotline/Push/FWMessage/Message.cs

@@ -21,8 +21,8 @@ namespace Hotline.Push.FWMessage
         /// <summary>
         /// 外部业务唯一编号
         /// </summary>
-        [SugarColumn(ColumnDescription = "外部业务唯一编号", ColumnDataType = "varchar(50)")]
-        public string ExternalId { get; set; }
+        [SugarColumn(ColumnDescription = "外部业务唯一编号", ColumnDataType = "varchar(50)", IsNullable = true)]
+        public string? ExternalId { get; set; }
 
         /// <summary>
         /// 业务系统短信ID
@@ -33,8 +33,8 @@ namespace Hotline.Push.FWMessage
         /// <summary>
         /// 推送平台
         /// </summary>
-        [SugarColumn(ColumnDescription = "推送平台")]
-        public EPushPlatform PushPlatform { get; set; }
+        [SugarColumn(ColumnDescription = "推送平台"), IsNullable = true]
+        public EPushPlatform? PushPlatform { get; set; } = EPushPlatform.Sms;
 
         /// <summary>
         /// 推送状态

+ 18 - 12
src/Hotline/Push/FWMessage/PushDomainService.cs

@@ -1,4 +1,6 @@
 using DotNetCore.CAP;
+using Hotline.Orders;
+using Hotline.Share.Dtos.FlowEngine;
 using Hotline.Share.Dtos.Push;
 using Hotline.Share.Dtos.Push.FWMessage;
 using Hotline.Share.Enums.Push;
@@ -69,7 +71,7 @@ public class PushDomainService : IPushDomainService, IScopeDependency
 
         #region 替换模板内容
         //如果模板为空,参数为空则直接用短信内容
-        if (!string.IsNullOrEmpty(messageDto.TemplateCode) && messageDto.Params.Count > 0)
+        if (!string.IsNullOrEmpty(messageDto.TemplateCode))
         {
             //查询模板信息
             var messageTemplate = await _messageTemplateRepository.GetAsync(p => p.Code == messageDto.TemplateCode, cancellation);
@@ -77,19 +79,23 @@ public class PushDomainService : IPushDomainService, IScopeDependency
                 throw UserFriendlyException.SameMessage("未找到模板短信!");
 
             string Template = messageTemplate.Content;
-            //正则查询模板中需要替换的内容
-            Regex regex = new(@"\{[a-zA-Z0-9]{1,}\}");
-            var matches = regex.Matches(Template);
-            if (matches != null && matches.Count != messageDto.Params.Count)
-                //参数与需要替换的字符数不匹配
-                throw UserFriendlyException.SameMessage("模板需要参数与实际传递参数个数不匹配!");
-            //reason = "模板需要参数与实际传递参数个数不匹配!";
-
-            //根据正则查询出来的匹配项替换内容
-            for (int i = 0; i < matches.Count; i++)
-                Template = Template.Replace(matches[i].ToString(), messageDto.Params[i]);
+            if (messageDto.Params != null && messageDto.Params.Count > 0)
+            {
+                //正则查询模板中需要替换的内容
+                Regex regex = new(@"\{[a-zA-Z0-9]{1,}\}");
+                var matches = regex.Matches(Template);
+                if (matches != null && matches.Count != messageDto.Params.Count)
+                    //参数与需要替换的字符数不匹配
+                    throw UserFriendlyException.SameMessage("模板需要参数与实际传递参数个数不匹配!");
+                //reason = "模板需要参数与实际传递参数个数不匹配!";
+
+                //根据正则查询出来的匹配项替换内容
+                for (int i = 0; i < matches.Count; i++)
+                    Template = Template.Replace(matches[i].ToString(), messageDto.Params[i]);
 
+            }
             messageDto.Content = Template;
+
         }
         #endregion
         var message = _mapper.Map<Message>(messageDto);