From 1c05cf2786334a6347f198049af67ac740e42b58 Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Thu, 11 Apr 2024 11:04:15 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 14 +++++
.../Services/Public/SendMessageService.cs | 57 ++++++++++++++++++-
2 files changed, 70 insertions(+), 1 deletion(-)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 54dd860f..f869a0d6 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -6207,6 +6207,20 @@
+
+
+ 合并属性
+
+
+
+
+
+
+ 按450个字开始分组
+
+
+
+
上传文件
diff --git a/src/WMS.Web.Domain/Services/Public/SendMessageService.cs b/src/WMS.Web.Domain/Services/Public/SendMessageService.cs
index 36bf59da..650bcdbe 100644
--- a/src/WMS.Web.Domain/Services/Public/SendMessageService.cs
+++ b/src/WMS.Web.Domain/Services/Public/SendMessageService.cs
@@ -265,7 +265,16 @@ namespace WMS.Web.Domain.Services
if (!sms_result.IsSuccess && sms_result.Message == "isv.PARAM_LENGTH_LIMIT")
{
//分段发送:以字数480长度分段
- var contentParts = this.SplitContent(content, 480);
+ //var contentParts = this.SplitContent(content, 480);
+ //foreach (var partContent in contentParts)
+ //{
+ // this.SendSms(item.PhoneNumbers, partContent);
+ //}
+
+ //1.先合并属性:规格和数量
+ var materials= this.MergeProperties(item.Details);
+ //2.按450个字分组成多个字符串集合
+ var contentParts = this.MergeStrings(materials);
foreach (var partContent in contentParts)
{
this.SendSms(item.PhoneNumbers, partContent);
@@ -313,5 +322,51 @@ namespace WMS.Web.Domain.Services
}
return parts;
}
+
+ ///
+ /// 合并属性
+ ///
+ ///
+ ///
+ public List MergeProperties(List details)
+ {
+ List result = new List();
+ foreach (var det in details)
+ {
+ result.Add($"{det.Specifications} 数量{Convert.ToInt32(det.Qty)}");
+ }
+ return result;
+ }
+
+ ///
+ /// 按450个字开始分组
+ ///
+ ///
+ ///
+ public List MergeStrings(List strings)
+ {
+ List result = new List();
+ StringBuilder currentGroup = new StringBuilder();
+
+ foreach (var str in strings)
+ {
+ if (currentGroup.Length + str.Length > 450)
+ {
+ // 当前字符串超过50个字符,将当前分组加入结果集并重置currentGroup
+ result.Add(currentGroup.ToString());
+ currentGroup.Clear();
+ }
+
+ // 添加当前字符串到当前分组
+ currentGroup.Append(str);
+ }
+
+ // 添加最后一个分组
+ if (currentGroup.Length > 0)
+ {
+ result.Add(currentGroup.ToString());
+ }
+ return result;
+ }
}
}