TANG JIANG 1 year ago
parent
commit
8953f4da73

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

@@ -12,7 +12,7 @@ namespace Hotline.Share.Dtos.Push
         /// <summary>
         /// 外部业务唯一编号
         /// </summary>
-        public string ExternalId { get; set; }
+        public string? ExternalId { get; set; }
 
         /// <summary>
         /// 关联工单编号
@@ -22,7 +22,7 @@ namespace Hotline.Share.Dtos.Push
         /// <summary>
         /// 推送平台
         /// </summary>
-        public EPushPlatform PushPlatform { get; set; }
+        public EPushPlatform PushPlatform { get; set; } = EPushPlatform.Sms;
 
         /// <summary>
         /// 模板
@@ -52,6 +52,6 @@ namespace Hotline.Share.Dtos.Push
         /// <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>
         /// 推送状态

+ 20 - 14
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]);
-
-            messageDto.Content = Template;
+            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);