Commit c327e35a by 桂前礼

finished append wxid

parent bfc1fdc2
...@@ -12,6 +12,7 @@ import com.pcloud.wechatgroup.message.dto.SendTextDTO; ...@@ -12,6 +12,7 @@ import com.pcloud.wechatgroup.message.dto.SendTextDTO;
import com.sdk.wxgroup.SendMessageTypeEnum; import com.sdk.wxgroup.SendMessageTypeEnum;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author lily * @author lily
...@@ -135,4 +136,13 @@ public interface BookKeywordBiz { ...@@ -135,4 +136,13 @@ public interface BookKeywordBiz {
* 按照书处理暗号回复,推送资源 * 按照书处理暗号回复,推送资源
*/ */
void dealByBookGroup(SendTextDTO sendTextDTO, Long bookGroupId, Boolean isPushUpdate); void dealByBookGroup(SendTextDTO sendTextDTO, Long bookGroupId, Boolean isPushUpdate);
/**
* 对文本中的URL进行参数拼接
* @param content 文本
* @param map 参数集合
* @return 拼接后的URL
*/
String appendUrlParams(String content, Map<String,String> map);
} }
package com.pcloud.book.keywords.biz.impl; package com.pcloud.book.keywords.biz.impl;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.pcloud.appcenter.app.dto.AppDto; import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookKeywordWarehouseBiz; import com.pcloud.book.book.biz.BookKeywordWarehouseBiz;
import com.pcloud.book.book.dto.BookGuideDelayDto;
import com.pcloud.book.consumer.app.AppConsr; import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr; import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.content.ResourceConsr; import com.pcloud.book.consumer.content.ResourceConsr;
...@@ -67,6 +65,7 @@ import com.pcloud.channelcenter.qrcode.vo.MessageBookVO; ...@@ -67,6 +65,7 @@ import com.pcloud.channelcenter.qrcode.vo.MessageBookVO;
import com.pcloud.channelcenter.qrcode.vo.QrWeixinParamVO; import com.pcloud.channelcenter.qrcode.vo.QrWeixinParamVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto; import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.constant.CacheConstant; import com.pcloud.common.constant.CacheConstant;
import com.pcloud.common.constant.UrlConstant;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
...@@ -112,7 +111,10 @@ import java.util.List; ...@@ -112,7 +111,10 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -615,7 +617,10 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -615,7 +617,10 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
Integer type = keywordReply.getType(); Integer type = keywordReply.getType();
if (ReplyTypeEnum.TEXT.value.equals(type)) { if (ReplyTypeEnum.TEXT.value.equals(type)) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO(); SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(keywordReply.getContent()); Map<String,String> paramMap = new HashMap<>();
paramMap.put("wxId",userWxId);
paramMap.put("robotWxId",robotId);
sendTextMessageVO.setContent(appendUrlParams(keywordReply.getContent(),paramMap));
sendTextMessageVO.setAltId(robotId); sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(userWxId); sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip); sendTextMessageVO.setIp(ip);
...@@ -718,6 +723,48 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -718,6 +723,48 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
} }
} }
/**
* 关键词 补充wxid
*/
public String appendUrlParams(String content, Map<String,String> map) {
String suffix = appendParams(map);
Pattern pattern = Pattern.compile("(https?)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]");
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
String group = matcher.group();
if (StringUtil.isEmpty(group)) {
continue;
}
// 短链接
if (group.startsWith("https://s.5rs.me/") && group.length() == 24) {
String hex = group.replaceAll(UrlConstant.OWN_SHORT_URL, "");
String originLink = UrlUtils.getUrl4Own(hex);
if (!StringUtil.isEmpty(originLink) && originLink.contains("?")) {
content = content.replace(group, UrlUtils.getShortUrl(originLink + "&" + suffix));
} else if (!StringUtil.isEmpty(originLink) && !originLink.contains("?")) {
content = content.replace(group, UrlUtils.getShortUrl(originLink + "?" + suffix));
}
}
if (group.contains("?")) {
content = content.replace(group, UrlUtils.getShortUrl(group + "&" + suffix));
}else {
content = content.replace(group, UrlUtils.getShortUrl(group + "?" + suffix));
}
}
return content;
}
private String appendParams(Map<String, String> map) {
Set<String> keys = map.keySet();
StringBuilder sb = new StringBuilder();
for (String key : keys) {
sb.append("&").append(key).append("=").append(map.get(key));
}
return sb.toString().replaceFirst("&", "");
}
@ParamLog("获取的关键词是否为社群书的简称") @ParamLog("获取的关键词是否为社群书的简称")
private void dealSelfShortBookName(SendTextDTO sendTextDTO) { private void dealSelfShortBookName(SendTextDTO sendTextDTO) {
String content = sendTextDTO.getTextContent(); String content = sendTextDTO.getTextContent();
......
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