Commit eb1bceba by 裴大威

Merge branch 'feat-dw-editGuide' into 'master'

feat 紧急需求欢迎语文案修改

See merge request rays/pcloud-book!163
parents 76dbe420 66f05147
......@@ -139,88 +139,6 @@ public class SendWeixinRequestTools {
}*/
}
@ParamLog("发送欢迎语消息")
public static void sendGuideMessage(SendGuideMessageDTO dto) {
if (Objects.isNull(dto) || CollectionUtils.isEmpty(dto.getReplyMessages())) {
return;
}
List<ReplyMessageVO> replyMessages = dto.getReplyMessages();
String robotId = dto.getRobotId();
String weixinGroupId = dto.getWeixinGroupId();
Boolean isGroupRobot = dto.getIsGroupRobot();
List<KeywordDTO> keywords = dto.getKeywords();
KeywordStatusDTO keywordStatusDTO = dto.getDto();
GroupClassifyQrcodeDTO classifyQrcodeInfo = dto.getClassifyQrcodeInfo();
String ip = dto.getIp();
Integer code = dto.getCode();
int i = 0;
for (ReplyMessageVO replyMessageVO : replyMessages) {
SendMessageDTO sendMessageDTO = new SendMessageDTO();
BeanUtils.copyProperties(replyMessageVO, sendMessageDTO);
String nickNameStr = getNickNameStr(weixinGroupId);
if(i==0) {
LOGGER.info("发送欢迎语" + nickNameStr);
// if (StringUtils.isNotEmpty(nickNameStr)) {
if (ReplyTypeEnum.TEXT.value.equals(sendMessageDTO.getReplyType())) {
String s = nickNameStr + " " + sendMessageDTO.getContent();
StringBuilder sb = new StringBuilder();
boolean isOld = true;
if (!CollectionUtils.isEmpty(keywords) && isGroupRobot) {
sb.append("\n\n本群配有以下资源服务,戳链接立即获取:\n");
List<KeywordDTO> collect = keywords.stream()
.filter(p -> (ReplyTypeEnum.IMAGE.value.equals(p.getReplyType()) || ReplyTypeEnum.TEXT.value.equals(p.getReplyType())))
.collect(Collectors.toList());
// 1001745 包含图片则不合并关键词详情
if (CollectionUtils.isEmpty(collect)){
isOld = false;
for (KeywordDTO keyword : keywords) {
if ((s.length() + sb.length()) >= 1000 && (sb.length() + (keyword.getKeywords() + "\n").length()) >= 875) {
break;
}
sb.append("【").append(keyword.getKeywords()).append("】\n");
if (ReplyTypeEnum.LINK.value.equals(keyword.getReplyType()) || ReplyTypeEnum.APP.value.equals(keyword.getReplyType())) {
String linkUrl = SendWeixinRequestTools.splitUrlNew(dto.getAccountSettingDto(), keyword.getLinkUrl(), classifyQrcodeInfo.getBookGroupId(), classifyQrcodeInfo.getClassifyId(), classifyQrcodeInfo.getGroupQrcodeId());
sb.append(" ").append(keyword.getDescription()).append(keyword.getContent()).append(UrlUtils.getShortUrl4Own(linkUrl)).append("\n\n");
}
}
} else {
for (KeywordDTO keyword : keywords) {
if ((s.length() + sb.length()) >= 1000 && (sb.length() + (keyword.getKeywords() + "\n").length()) >= 922) {
break;
}
sb.append("【").append(keyword.getKeywords()).append("】");
}
}
}
StringBuilder groupKeyword = getGroupKeyword(keywordStatusDTO, sb, isOld);
groupKeyword.append("后续也可以回复【】里的关键词,再次领取");
// 1001692 自定义欢迎语+关键词文案,如果超过300字,关键词拆分出来发
if (s.length() + groupKeyword.length() >= 1000) {
sendMessageDTO.setContent(s);
sendMessage(sendMessageDTO, robotId, weixinGroupId, ip, code);
sendMessageDTO.setContent(groupKeyword.toString().replaceFirst("\n\n", ""));
sendMessage(sendMessageDTO, robotId, weixinGroupId, ip, code);
i++;
continue;
} else {
sendMessageDTO.setContent(s + groupKeyword.toString());
}
} else {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(nickNameStr);
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
}
// }
}
sendMessage(sendMessageDTO, robotId, weixinGroupId, ip, code);
i++;
}
}
@ParamLog("推送消息")
private static void sendMessage(SendMessageDTO sendMessageDTO, String robotId, String weixinGroupId, String ip, Integer code) {
if (ReplyTypeEnum.TEXT.value.equals(sendMessageDTO.getReplyType())) {
......@@ -427,25 +345,27 @@ public class SendWeixinRequestTools {
}
StringBuilder sb = new StringBuilder();
boolean isOld = true;
if (!CollectionUtils.isEmpty(keywords) && isGroupRobot) {
sb.append("\n\n本群配有以下资源服务,戳链接立即获取:\n");
boolean haveKeyword = !CollectionUtils.isEmpty(keywords) && isGroupRobot;
if (haveKeyword) {
List<KeywordDTO> collect = keywords.stream()
.filter(p -> (ReplyTypeEnum.IMAGE.value.equals(p.getReplyType()) || ReplyTypeEnum.TEXT.value.equals(p.getReplyType())))
.collect(Collectors.toList());
// 1001745 包含图片则不合并关键词详情
// 1001745 包含图片和文字则不合并关键词详情,其他情况走之前的模式
if (CollectionUtils.isEmpty(collect)){
isOld = false;
sb.append("\n\n本群配有以下资源服务,戳链接立即获取:\n");
for (KeywordDTO keyword : keywords) {
if ((content.length() + sb.length()) >= 1000 && (sb.length() + (keyword.getKeywords() + "\n").length()) >= 875) {
if (sb.length() + (keyword.getKeywords() + "\n").length() >= 830) {
break;
}
sb.append("【").append(keyword.getKeywords()).append("】\n");
if (ReplyTypeEnum.LINK.value.equals(keyword.getReplyType()) || ReplyTypeEnum.APP.value.equals(keyword.getReplyType())) {
String linkUrl = SendWeixinRequestTools.splitUrlNew(dto.getAccountSettingDto(), keyword.getLinkUrl(), classifyQrcodeInfo.getBookGroupId(), classifyQrcodeInfo.getClassifyId(), classifyQrcodeInfo.getGroupQrcodeId());
sb.append(" ").append(keyword.getDescription()).append(keyword.getContent()).append(UrlUtils.getShortUrl4Own(linkUrl)).append("\n\n");
sb.append(" ").append(keyword.getContent()).append(UrlUtils.getShortUrl4Own(linkUrl)).append("\n\n");
}
}
} else {
sb.append("\n\n在群内回复以下关键词,领取任务或资源:\n");
for (KeywordDTO keyword : keywords) {
if ((content.length() + sb.length()) >= 1000 && (sb.length() + (keyword.getKeywords() + "\n").length()) >= 922) {
break;
......@@ -454,8 +374,11 @@ public class SendWeixinRequestTools {
}
}
}
// 运营关键词
StringBuilder groupKeyword = getGroupKeyword(keywordStatusDTO, sb, isOld);
groupKeyword.append("后续也可以回复【】里的关键词,再次领取");
if (haveKeyword && !isOld) {
groupKeyword.append("后续也可以回复【】里的关键词,再次领取");
}
// 1001692 自定义欢迎语+关键词文案,如果超过300字,关键词拆分出来发
if ((content.length() + sb.length()) >= 1000) {
sendTextMessage(content.toString(), robotId, weixinGroupId, ip);
......@@ -465,27 +388,125 @@ public class SendWeixinRequestTools {
}
}
@ParamLog("发送欢迎语消息")
public static void sendGuideMessage(SendGuideMessageDTO dto) {
if (Objects.isNull(dto) || CollectionUtils.isEmpty(dto.getReplyMessages())) {
return;
}
List<ReplyMessageVO> replyMessages = dto.getReplyMessages();
String robotId = dto.getRobotId();
String weixinGroupId = dto.getWeixinGroupId();
Boolean isGroupRobot = dto.getIsGroupRobot();
List<KeywordDTO> keywords = dto.getKeywords();
KeywordStatusDTO keywordStatusDTO = dto.getDto();
GroupClassifyQrcodeDTO classifyQrcodeInfo = dto.getClassifyQrcodeInfo();
String ip = dto.getIp();
Integer code = dto.getCode();
int i = 0;
for (ReplyMessageVO replyMessageVO : replyMessages) {
SendMessageDTO sendMessageDTO = new SendMessageDTO();
BeanUtils.copyProperties(replyMessageVO, sendMessageDTO);
String nickNameStr = getNickNameStr(weixinGroupId);
if(i != 0) {
LOGGER.info("发送欢迎语" + nickNameStr);
// if (StringUtils.isNotEmpty(nickNameStr)) {
if (ReplyTypeEnum.TEXT.value.equals(sendMessageDTO.getReplyType())) {
String s = nickNameStr + " " + sendMessageDTO.getContent();
StringBuilder sb = new StringBuilder();
boolean isOld = true;
boolean haveKeyword = !CollectionUtils.isEmpty(keywords) && isGroupRobot;
if (haveKeyword) {
List<KeywordDTO> collect = keywords.stream()
.filter(p -> (ReplyTypeEnum.IMAGE.value.equals(p.getReplyType()) || ReplyTypeEnum.TEXT.value.equals(p.getReplyType())))
.collect(Collectors.toList());
// 1001745 包含图片则不合并关键词详情
if (CollectionUtils.isEmpty(collect)){
isOld = false;
sb.append("\n\n本群配有以下资源服务,戳链接立即获取:\n");
for (KeywordDTO keyword : keywords) {
if (sb.length() + (keyword.getKeywords() + "\n").length() >= 850) {
break;
}
sb.append("【").append(keyword.getKeywords()).append("】\n");
if (ReplyTypeEnum.LINK.value.equals(keyword.getReplyType()) || ReplyTypeEnum.APP.value.equals(keyword.getReplyType())) {
String linkUrl = SendWeixinRequestTools.splitUrlNew(dto.getAccountSettingDto(), keyword.getLinkUrl(), classifyQrcodeInfo.getBookGroupId(), classifyQrcodeInfo.getClassifyId(), classifyQrcodeInfo.getGroupQrcodeId());
sb.append(" ").append(keyword.getDescription()).append(keyword.getContent()).append(UrlUtils.getShortUrl4Own(linkUrl)).append("\n\n");
}
}
} else {
sb.append("\n\n在群内回复以下关键词,领取任务或资源:\n");
for (KeywordDTO keyword : keywords) {
if ((s.length() + sb.length()) >= 1000 && (sb.length() + (keyword.getKeywords() + "\n").length()) >= 922) {
break;
}
sb.append("【").append(keyword.getKeywords()).append("】");
}
}
}
StringBuilder groupKeyword = getGroupKeyword(keywordStatusDTO, sb, isOld);
if (haveKeyword && !isOld) {
groupKeyword.append("后续也可以回复【】里的关键词,再次领取");
}
// 1001692 自定义欢迎语+关键词文案,如果超过300字,关键词拆分出来发
if (s.length() + groupKeyword.length() >= 1000) {
sendMessageDTO.setContent(s);
sendMessage(sendMessageDTO, robotId, weixinGroupId, ip, code);
sendMessageDTO.setContent(groupKeyword.toString().replaceFirst("\n\n", ""));
sendMessage(sendMessageDTO, robotId, weixinGroupId, ip, code);
i++;
continue;
} else {
sendMessageDTO.setContent(s + groupKeyword.toString());
}
} else {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(nickNameStr);
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
}
// }
}
sendMessage(sendMessageDTO, robotId, weixinGroupId, ip, code);
i++;
}
}
/**
* 组装群运营关键词
* @param dto 运营关键词相关参数
* @param sb 推送内容
* @param isOld 包含图片或者文字走旧流程就不包含描述,否则加描述
* @return 最终发送内容
*/
private static StringBuilder getGroupKeyword(KeywordStatusDTO dto, StringBuilder sb, Boolean isOld) {
if (!sb.toString().contains("【") && (dto.getClockOpen() || dto.getRiddleOpen() || dto.getReportOpen())) {
sb.append("\n\n在群内回复以下关键词:");
sb.append("\n\n在群内回复以下关键词:\n");
}
if (dto.getReportOpen()) {
if (isOld) {
sb.append("\n\n");
sb.append("【学习报告】");
if (!isOld) {
sb.append("\n回复学习报告,获取个人学习报告,与群成员PK元气值\n\n");
}
sb.append("【学习报告】\n回复学习报告,获取个人学习报告,与群成员PK元气值\n\n");
}
if (dto.getRiddleOpen()) {
if (isOld && !sb.toString().contains("【学习报告】")) {
if (!isOld && !sb.toString().contains("【学习报告】")) {
sb.append("\n");
}
sb.append("【猜谜语】\n回复猜谜语,开启群游戏,连续答对5题,所有群成员可获得精美礼券\n\n");
sb.append("【猜谜语】");
if (!isOld) {
sb.append("\n回复猜谜语,开启群游戏,连续答对5题,所有群成员可获得精美礼券\n\n");
}
}
if (dto.getClockOpen()) {
if (isOld && !sb.toString().contains("【学习报告】") && !sb.toString().contains("【猜谜语】")) {
if (!isOld && !sb.toString().contains("【学习报告】") && !sb.toString().contains("【猜谜语】")) {
sb.append("\n");
}
sb.append("【").append(dto.getClockKeyword()).append("】\n").append(dto.getClockGuide()).append("\n\n");
sb.append("【").append(dto.getClockKeyword()).append("】");
if (!isOld) {
sb.append("\n").append(dto.getClockGuide()).append("\n\n");
}
}
return sb;
}
......
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