Commit 44251279 by 郑永强

合并早晚报消息

parent 14343e0c
...@@ -89,6 +89,9 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -89,6 +89,9 @@ public class AdNewsBizImpl implements AdNewsBiz {
private static final String AD_EVENING_NEWS_SCHEDULE_PRE = "AD_EVENING_NEWS_SCHEDULE_"; private static final String AD_EVENING_NEWS_SCHEDULE_PRE = "AD_EVENING_NEWS_SCHEDULE_";
// 发送消息的长度限制
private static final Integer SEND_MESSAGE_LENGTH=300;
@Value("${wechat.group.link.prefix}") @Value("${wechat.group.link.prefix}")
private String wechatGroupLinkPrefix; private String wechatGroupLinkPrefix;
...@@ -304,7 +307,7 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -304,7 +307,7 @@ public class AdNewsBizImpl implements AdNewsBiz {
adNews.setShortUrl(UrlUtils.getShortUrl4Own(transferUrl)); adNews.setShortUrl(UrlUtils.getShortUrl4Own(transferUrl));
} }
} }
// 将多条需要发送的早晚报拼接成300字符一组的消息 // 将多条需要发送的早晚报拼接成小于字数限制一组的消息
contents = this.concatContent(adNewsList); contents = this.concatContent(adNewsList);
// 将对应群的消息发送出去 // 将对应群的消息发送出去
this.sendAdNewsToWechatGroup(adNewsSet, new ArrayList<GroupQrcodeFoAdDTO>() {{ this.sendAdNewsToWechatGroup(adNewsSet, new ArrayList<GroupQrcodeFoAdDTO>() {{
...@@ -393,6 +396,21 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -393,6 +396,21 @@ public class AdNewsBizImpl implements AdNewsBiz {
if (StringUtil.isEmpty(robotId)) { if (StringUtil.isEmpty(robotId)) {
LOGGER.info("发送编辑端早晚报未找到小号" + weixinGroupId); LOGGER.info("发送编辑端早晚报未找到小号" + weixinGroupId);
} }
// 如果正文内容的长度小于1,说明文字少于限制数,那么就可以合并发送
if(contents.size()==1){
String temp = contents.get(0);
if (!StringUtil.isEmpty(startContent)) { temp = startContent.concat("\n").concat(temp); }
if (!StringUtil.isEmpty(endContent)) { temp = temp.concat("\n").concat(endContent); }
// 判断合并后的字数长度是否大于限制
if(temp.length() <= SEND_MESSAGE_LENGTH){
// 直接发送合并后的消息
sendAdNewsText(temp, robotId, weixinGroupId);
return;
}
}
if (!StringUtil.isEmpty(startContent)) { if (!StringUtil.isEmpty(startContent)) {
//发送开场语 //发送开场语
sendAdNewsText(startContent, robotId, weixinGroupId); sendAdNewsText(startContent, robotId, weixinGroupId);
...@@ -428,10 +446,10 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -428,10 +446,10 @@ public class AdNewsBizImpl implements AdNewsBiz {
} }
/** /**
* 将内容拼接为300字符一条数据项的数组【微信目前单次消息发送字符长度为300 * 将内容拼接为 SEND_MESSAGE_LENGTH 字符一条数据项的数组【微信目前单次消息发送字符长度存在字数限制
* 拼接内容大致为 * 拼接内容大致为
* 1.xxxxxxxxxxx 2.xxxxxxxxxx 3.xxxxxxxx 【假设此条数据加下一条数据【4.xxx】 就大于300字符,那就先将之前的存一条到数组】 * 1.xxxxxxxxxxx 2.xxxxxxxxxx 3.xxxxxxxx 【假设此条数据加下一条数据【4.xxx】 就大于限制数,那就先将之前的存一条到数组】
* 4.xxxxx 5.xxxxxxx 【多余300字符再重新拼接,以此循环下去】 * 4.xxxxx 5.xxxxxxx 【多余限制数的字符再重新拼接,以此循环下去】
* *
* @param adNewsList * @param adNewsList
* @return * @return
...@@ -442,8 +460,8 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -442,8 +460,8 @@ public class AdNewsBizImpl implements AdNewsBiz {
int i = 1; int i = 1;
for (AdNews adNews : adNewsList) { for (AdNews adNews : adNewsList) {
String temp = content + i + "." + adNews.getTitle() + adNews.getShortUrl() + "\n"; String temp = content + i + "." + adNews.getTitle() + adNews.getShortUrl() + "\n";
if (temp.length() >= 300) { if (temp.length() >= SEND_MESSAGE_LENGTH) {
// 如果本次拼接后的长度大于 300,那么将之前拼接的内容存入数组 // 如果本次拼接后的长度大于限制数,那么将之前拼接的内容存入数组
contents.add(content); contents.add(content);
// 重置 content 的内容 // 重置 content 的内容
content = i + "." + adNews.getTitle() + adNews.getShortUrl() + "\n"; content = i + "." + adNews.getTitle() + adNews.getShortUrl() + "\n";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment