Commit 1ffad909 by 裴大威

feat edit msg frequency

parent 3242cb51
...@@ -25,6 +25,7 @@ import com.sdk.wxgroup.WxGroupSDK; ...@@ -25,6 +25,7 @@ import com.sdk.wxgroup.WxGroupSDK;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
...@@ -133,11 +134,19 @@ public class SendWeixinRequestTools { ...@@ -133,11 +134,19 @@ public class SendWeixinRequestTools {
} }
@ParamLog("发送欢迎语消息") @ParamLog("发送欢迎语消息")
public static void sendGuideMessage(List<ReplyMessageVO> replyMessages, String robotId, String weixinGroupId, String ip, Integer code) { public static void sendGuideMessage(List<ReplyMessageVO> replyMessages, String robotId, String weixinGroupId, Boolean isGroupRobot, List<KeywordDTO> keywords, String ip, Integer code) {
//JedisClusterUtils.del("BOOK:WEIXINGROUP:GUIDEUSER" + weixinGroupId); //JedisClusterUtils.del("BOOK:WEIXINGROUP:GUIDEUSER" + weixinGroupId);
if (ListUtils.isEmpty(replyMessages)) { if (ListUtils.isEmpty(replyMessages)) {
return; return;
} }
StringBuilder sb = new StringBuilder();
if (!CollectionUtils.isEmpty(keywords) && isGroupRobot) {
sb.append("\n\n在群内回复以下关键词:\n");
for (KeywordDTO keyword : keywords) {
sb.append("【").append(keyword.getKeywords()).append("】 ");
}
sb.append(",领取任务或资源");
}
int i = 0; int i = 0;
for (ReplyMessageVO replyMessageVO : replyMessages) { for (ReplyMessageVO replyMessageVO : replyMessages) {
SendMessageDTO sendMessageDTO = new SendMessageDTO(); SendMessageDTO sendMessageDTO = new SendMessageDTO();
...@@ -147,9 +156,14 @@ public class SendWeixinRequestTools { ...@@ -147,9 +156,14 @@ public class SendWeixinRequestTools {
LOGGER.info("发送欢迎语" + nickNameStr); LOGGER.info("发送欢迎语" + nickNameStr);
if (StringUtils.isNotEmpty(nickNameStr)) { if (StringUtils.isNotEmpty(nickNameStr)) {
if (ReplyTypeEnum.TEXT.value.equals(sendMessageDTO.getReplyType())) { if (ReplyTypeEnum.TEXT.value.equals(sendMessageDTO.getReplyType())) {
sendMessageDTO.setContent(nickNameStr + " " + sendMessageDTO.getContent()); sendMessageDTO.setContent(nickNameStr + " " + sendMessageDTO.getContent() + sb.toString());
} else { } else {
sendAtMessage(nickNameStr, robotId, weixinGroupId, ip); SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(nickNameStr);
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
} }
} }
} }
...@@ -191,16 +205,16 @@ public class SendWeixinRequestTools { ...@@ -191,16 +205,16 @@ public class SendWeixinRequestTools {
} }
} }
private static void sendAtMessage(String nickNameStr,String robotId,String weixinGroupId, String ip){ // private static void sendAtMessage(String nickNameStr,String robotId,String weixinGroupId, String ip){
//
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO(); // SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(nickNameStr); // sendTextMessageVO.setContent(nickNameStr);
sendTextMessageVO.setAltId(robotId); // sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId); // sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(ip); // sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO); // WxGroupSDK.sendTextMessage(sendTextMessageVO);
//
} // }
private static String addLinkParam(String url, Long groupQrcodeId, Long classifyId, Long bookGroupId) { private static String addLinkParam(String url, Long groupQrcodeId, Long classifyId, Long bookGroupId) {
if (StringUtil.isEmpty(url)) { if (StringUtil.isEmpty(url)) {
...@@ -340,21 +354,28 @@ public class SendWeixinRequestTools { ...@@ -340,21 +354,28 @@ public class SendWeixinRequestTools {
// WxGroupSDK.sendTextMessage(sendTextMessageVO); // WxGroupSDK.sendTextMessage(sendTextMessageVO);
} }
public static void sendDefaultMessage(String groupName, String robotId, String weixinGroupId, Boolean isHaveKeywords, String ip) { public static void sendDefaultMessage(String groupName, String robotId, String weixinGroupId, Boolean isHaveKeywords, Boolean isGroupRobot, List<KeywordDTO> keywords, String ip) {
String content = getNickNameStr(weixinGroupId); StringBuilder content = new StringBuilder(getNickNameStr(weixinGroupId));
if (StringUtil.isEmpty(groupName)) { if (StringUtil.isEmpty(groupName)) {
content += " 欢迎加入本群!"; content.append(" 欢迎加入本群!");
} else { } else {
content += " 欢迎加入" + groupName + "!"; content.append(" 欢迎加入").append(groupName).append("!");
} }
if(isHaveKeywords){ if(isHaveKeywords){
content = content + "本群目的为学习交流和学习辅导,线上资源和工具为图书的增值服务,可根据实际情况配合图书一起使用。在群内回复以下关键词领取任务或资源:"; // content = content + "本群目的为学习交流和学习辅导,线上资源和工具为图书的增值服务,可根据实际情况配合图书一起使用。在群内回复以下关键词领取任务或资源:";
content.append("本群目的为学习交流和学习辅导,线上资源和工具为图书的增值服务,可根据实际情况配合图书一起使用。\n\n在群内回复以下关键词:\n");
} }
sendTextMessage(content, robotId, weixinGroupId, ip); if (!CollectionUtils.isEmpty(keywords) && isGroupRobot) {
for (KeywordDTO keyword : keywords) {
content.append("【").append(keyword.getKeywords()).append("】 ");
}
}
content.append(",领取任务或资源");
sendTextMessage(content.toString(), robotId, weixinGroupId, ip);
} }
private static String getNickNameStr(String weixinGroupId) { private static String getNickNameStr(String weixinGroupId) {
String nameStr = ""; StringBuilder nameStr = new StringBuilder();
Map<String, Integer> nickNames = JedisClusterUtils.getJson("BOOK:WEIXINGROUP:GUIDEUSER" + weixinGroupId, Map.class); Map<String, Integer> nickNames = JedisClusterUtils.getJson("BOOK:WEIXINGROUP:GUIDEUSER" + weixinGroupId, Map.class);
int i = 0; int i = 0;
List<String> names = new ArrayList<>(); List<String> names = new ArrayList<>();
...@@ -371,11 +392,11 @@ public class SendWeixinRequestTools { ...@@ -371,11 +392,11 @@ public class SendWeixinRequestTools {
for (String nickName : names) { for (String nickName : names) {
nickNames.remove(nickName); nickNames.remove(nickName);
if (StringUtils.isNotEmpty(nickName)) { if (StringUtils.isNotEmpty(nickName)) {
nameStr = nameStr + "@" + nickName + " "; nameStr.append("@").append(nickName).append(" ");
} }
} }
JedisClusterUtils.setJson("BOOK:WEIXINGROUP:GUIDEUSER" + weixinGroupId, nickNames, 600); JedisClusterUtils.setJson("BOOK:WEIXINGROUP:GUIDEUSER" + weixinGroupId, nickNames, 600);
return nameStr; return nameStr.toString();
} }
@ParamLog("欢迎语中推送关键词信息") @ParamLog("欢迎语中推送关键词信息")
......
...@@ -376,50 +376,21 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -376,50 +376,21 @@ public class BookGuideBizImpl implements BookGuideBiz {
GroupQrcodeBaseInfoVO groupInfo = groupQrcodeBiz.getBaseById(classifyQrcodeInfo.getGroupQrcodeId()); GroupQrcodeBaseInfoVO groupInfo = groupQrcodeBiz.getBaseById(classifyQrcodeInfo.getGroupQrcodeId());
//推送消息 刘娜需求 1001282 群不推送关键词 //推送消息 刘娜需求 1001282 群不推送关键词
// 若非之前的机器人则不回复普通关键词 // 若非之前的机器人则不回复普通关键词
SendWeixinRequestTools.sendDefaultMessage(groupInfo == null ? "" : groupInfo.getGroupName(), robotId, weixinGroupId, isHaveKeywords, pushAddUserMessageDTO.getIp()); SendWeixinRequestTools.sendDefaultMessage(groupInfo == null ? "" : groupInfo.getGroupName(), robotId, weixinGroupId, isHaveKeywords, groupRobot, keywords, pushAddUserMessageDTO.getIp());
} else { } else {
//处理链接 //处理链接
handleUrl(replyMessages, wechatInfo, classifyQrcodeInfo); handleUrl(replyMessages, wechatInfo, classifyQrcodeInfo);
//推送消息 //推送消息
SendWeixinRequestTools.sendGuideMessage(replyMessages, robotId, weixinGroupId, pushAddUserMessageDTO.getIp(), SendMessageTypeEnum.GROUP.getCode()); SendWeixinRequestTools.sendGuideMessage(replyMessages, robotId, weixinGroupId, groupRobot, keywords, pushAddUserMessageDTO.getIp(), SendMessageTypeEnum.GROUP.getCode());
//新增欢迎语应用触发记录 //新增欢迎语应用触发记录
addGuideAppTouchRecord(replyMessages,weixinGroupId,classifyQrcodeInfo.getBookGroupId(),classifyQrcodeInfo.getClassifyId()); addGuideAppTouchRecord(replyMessages,weixinGroupId,classifyQrcodeInfo.getBookGroupId(),classifyQrcodeInfo.getClassifyId());
} }
//获取关键词信息(改成10个了)刘娜需求 1001282 群不推送关键词
if (groupRobot) {
SendWeixinRequestTools.sendKeywordsInfo(keywords, robotId, weixinGroupId, pushAddUserMessageDTO.getIp());
}
//如果设置了群学习报告,加一个群学习报告的关键词 //如果设置了群学习报告,加一个群学习报告的关键词
pushLearningReport(classifyQrcodeInfo,robotId, weixinGroupId, pushAddUserMessageDTO.getIp()); pushLearningReport(classifyQrcodeInfo,robotId, weixinGroupId, pushAddUserMessageDTO.getIp());
if (bookGuide != null && bookGuide.getIsRecommend() != null && bookGuide.getIsRecommend() == 1) { if (bookGuide != null && bookGuide.getIsRecommend() != null && bookGuide.getIsRecommend() == 1) {
//推送公众号消息 //推送公众号消息
SendWeixinRequestTools.sendAccountMessage(weixinGroupId, bookGuide.getRecommendLanguage(), robotId, wechatInfo, pushAddUserMessageDTO.getIp()); SendWeixinRequestTools.sendAccountMessage(weixinGroupId, bookGuide.getRecommendLanguage(), robotId, wechatInfo, pushAddUserMessageDTO.getIp());
} }
//校验该群是否与微信群打卡有关
/*List<Long> bookClockInfoIdList = bookClockCheck.checkGroupIsClock(classifyQrcodeInfo);
if(!ListUtils.isEmpty(bookClockInfoIdList)){
Map<String,Object> paramMap = new HashMap<>();
int i = 0;
List<BookClockKeywordDTO> bookClockKeywordDTOList = new ArrayList<>();
for (Long bookClockInfoId:bookClockInfoIdList) {
i++;
if(i >= 5){
break;
}
paramMap.put("bookClockInfoId",bookClockInfoId);
List<BookClockKeywordDTO> bookClockKeywordDTOS = bookClockKeywordDao.getKeywordsByInfoId(paramMap);
bookClockKeywordDTOList.addAll(bookClockKeywordDTOS);
if(i%2 == 0){
log.info("欢迎语中推送关键词信息,bookClockKeywordDTOList="+bookClockKeywordDTOList);
SendWeixinRequestTools.sendClockKeywordsInfo(bookClockKeywordDTOList, robotId, weixinGroupId, pushAddUserMessageDTO.getIp());
bookClockKeywordDTOList.clear();
}else if(i == bookClockInfoIdList.size()){
SendWeixinRequestTools.sendClockKeywordsInfo(bookClockKeywordDTOList, robotId, weixinGroupId, pushAddUserMessageDTO.getIp());
bookClockKeywordDTOList.clear();
}
}
}*/
} }
@ParamLog("推关学习报告/猜谜语关键词消息") @ParamLog("推关学习报告/猜谜语关键词消息")
......
...@@ -545,7 +545,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -545,7 +545,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
log.info("[关键词消息回复] redisContent:{} insertBookKeywordRecord return", redisContent); log.info("[关键词消息回复] redisContent:{} insertBookKeywordRecord return", redisContent);
return true; return true;
} else { } else {
JedisClusterUtils.setJson("BOOK:KEYWORD:" + weixinGroupId + "-" + replyKeywordDTO.getKeywordId(), replyKeywordDTO.getKeywordId(), 10); JedisClusterUtils.setJson("BOOK:KEYWORD:" + weixinGroupId + "-" + replyKeywordDTO.getKeywordId(), replyKeywordDTO.getKeywordId(), 30);
insertBookKeywordRecord(dto, replyKeywordDTO.getKeywordId(), userWxId, weixinGroupId, true); insertBookKeywordRecord(dto, replyKeywordDTO.getKeywordId(), userWxId, weixinGroupId, true);
} }
return false; return false;
......
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