Commit 6a7dd660 by 吴博

消息顺序

parent fb69a367
......@@ -8,3 +8,4 @@
*.idea/
*bin/
*download/
*.log
\ No newline at end of file
package com.pcloud.book.adnews.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.book.adnews.biz.AdNewsBiz;
import com.pcloud.book.adnews.check.AdNewsCheck;
import com.pcloud.book.adnews.dao.AdNewsBanDao;
......@@ -726,7 +727,8 @@ public class AdNewsBizImpl implements AdNewsBiz {
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(findIp(weixinGroupId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
@ParamLog("删除创建编辑早晚报定时任务")
......
package com.pcloud.book.advertising.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.app.dto.AppTypeDto;
import com.pcloud.appcenter.app.service.AppTypeService;
import com.pcloud.book.advertising.biz.AdvertisingSpaceBiz;
......@@ -728,7 +729,8 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
sendTextMessageVO.setContent(adTitle);
sendTextMessageVO.setIp(findIp(groupId));
LOGGER.info("发送微信消息-文字链接" + sendTextMessageVO.toString());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
} else if (AdPositionModeEnum.NEWS_SHARE.modeCode.equals(positionMode)) {
String adLink = jointLink(advertisingLink, classifyDTO.getBookGroupId(), group.getClassifyId(), group.getQrcodeId(), adId, settlementMethod);
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
......@@ -740,7 +742,8 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
sendArticleMessageVO.setPicUrl(adPic);
sendArticleMessageVO.setIp(findIp(groupId));
LOGGER.info("发送微信消息-图文分享" + sendArticleMessageVO.toString());
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
} else if (AdPositionModeEnum.JUST_PIC.modeCode.equals(positionMode)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setAltId(altId);
......@@ -748,7 +751,8 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
sendPicMessageVO.setPicUrl(adPic);
sendPicMessageVO.setIp(findIp(groupId));
LOGGER.info("发送微信消息-纯图片" + sendPicMessageVO.toString());
WxGroupSDK.sendPicMessage(sendPicMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
try {
Thread.sleep(5000);
......
package com.pcloud.book.clock.biz.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.clock.biz.BookClockBiz;
......@@ -401,7 +402,8 @@ public class BookClockBizImpl implements BookClockBiz {
if(!MapUtils.isEmpty(wxQrcodeDTOMap) && wxQrcodeDTOMap.containsKey(weixinGroupId)){
sendTextMessageVO.setIp(wxQrcodeDTOMap.getOrDefault(weixinGroupId,new BookWxQrcodeDTO()).getWechatGroupIp());
}
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
}
}
......
......@@ -26,6 +26,7 @@ import com.pcloud.wechatgroup.monitor.service.MonitorService;
import com.pcloud.wechatgroup.selfrobot.dto.*;
import com.pcloud.wechatgroup.selfrobot.service.SelfRobotService;
import com.sdk.wxgroup.BaseVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
......@@ -679,4 +680,13 @@ public class WechatGroupConsr {
}
return null;
}
public void sendMessage(String baseVO) throws BizException {
try {
selfRobotService.sendMessage(baseVO);
} catch (Exception e) {
log.error("机器人给用户发送消息失败.[sendMessage]:" + e.getMessage(), e);
}
}
}
......@@ -365,7 +365,8 @@ public class CustomPlanBizImpl implements CustomPlanBiz {
sendTextMessageVO.setAltId(robotWxId);
sendTextMessageVO.setWxGroupId(wxId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
});
return maxBatchId + 1;
......
package com.pcloud.book.group.tools;
import com.alibaba.fastjson.JSON;
import com.pcloud.book.clock.dto.BookClockKeywordDTO;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.SendDefaultGuideMessageDTO;
import com.pcloud.book.group.dto.SendGuideMessageDTO;
......@@ -30,6 +32,8 @@ import com.sdk.wxgroup.WxGroupSDK;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
......@@ -43,9 +47,13 @@ import java.util.stream.Collectors;
* @author lily
* @date 2019/4/19 17:03
*/
@Component
public class SendWeixinRequestTools {
private static final Logger LOGGER = LoggerFactory.getLogger(SendWeixinRequestTools.class);
@Autowired
private WechatGroupConsr wechatGroupConsr;
@ParamLog("修改微信群名称")
public static void changeGroupName(String robotWxId, String weixinGroupId, String groupName, String ip) {
ChangeNameVO changeNameVO = new ChangeNameVO();
......@@ -140,7 +148,7 @@ public class SendWeixinRequestTools {
}
@ParamLog("推送消息")
private static void sendMessage(SendMessageDTO sendMessageDTO, String robotId, String weixinGroupId, String ip, Integer code) {
private void sendMessage(SendMessageDTO sendMessageDTO, String robotId, String weixinGroupId, String ip, Integer code) {
if (ReplyTypeEnum.TEXT.value.equals(sendMessageDTO.getReplyType())) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(sendMessageDTO.getContent());
......@@ -148,7 +156,8 @@ public class SendWeixinRequestTools {
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
} else if (ReplyTypeEnum.IMAGE.value.equals(sendMessageDTO.getReplyType())) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(weixinGroupId);
......@@ -156,7 +165,8 @@ public class SendWeixinRequestTools {
sendPicMessageVO.setPicUrl(sendMessageDTO.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(code);
WxGroupSDK.sendPicMessage(sendPicMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
} else if (ReplyTypeEnum.APP.value.equals(sendMessageDTO.getReplyType()) || ReplyTypeEnum.LINK.value.equals(sendMessageDTO.getReplyType())) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setAltId(robotId);
......@@ -167,7 +177,8 @@ public class SendWeixinRequestTools {
sendArticleMessageVO.setTitle(sendMessageDTO.getContent());
sendArticleMessageVO.setIp(ip);
sendArticleMessageVO.setCode(code);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
}
......@@ -197,7 +208,7 @@ public class SendWeixinRequestTools {
@ParamLog("推送公众号消息")
public static void sendAccountMessage(String weixinGroupId, String recommendLanguage, String robotId,
public void sendAccountMessage(String weixinGroupId, String recommendLanguage, String robotId,
AccountSettingDto accountSettingDto, String ip) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
if (StringUtil.isEmpty(recommendLanguage)) {
......@@ -207,17 +218,19 @@ public class SendWeixinRequestTools {
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(weixinGroupId);
sendPicMessageVO.setAltId(robotId);
sendPicMessageVO.setPicUrl(accountSettingDto.getQrcodeUrl());
sendPicMessageVO.setIp(ip);
WxGroupSDK.sendPicMessage(sendPicMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
@ParamLog("推送关键词回复消息")
public static void sendKeywordMessage(ReplyKeywordDTO replyKeywordDTO, String robotId, String weixinGroupId, String ip, Integer code) {
public void sendKeywordMessage(ReplyKeywordDTO replyKeywordDTO, String robotId, String weixinGroupId, String ip, Integer code) {
SendMessageDTO sendMessageDTO = new SendMessageDTO();
BeanUtils.copyProperties(replyKeywordDTO, sendMessageDTO);
sendMessage(sendMessageDTO, robotId, weixinGroupId, ip, code);
......@@ -258,7 +271,7 @@ public class SendWeixinRequestTools {
}
@ParamLog("群欢迎语中推送关键词信息")
public static void sendKeywordsInfo(List<KeywordDTO> keywords, String robotId, String weixinGroupId, String ip){
public void sendKeywordsInfo(List<KeywordDTO> keywords, String robotId, String weixinGroupId, String ip){
if (ListUtils.isEmpty(keywords)) {
return;
}
......@@ -267,7 +280,7 @@ public class SendWeixinRequestTools {
}
@ParamLog("个人欢迎语中推送关键词信息")
public static void sendKeywordsInfoToSelf(List<KeywordDTO> keywords, String robotId, String toWxId, String ip){
public void sendKeywordsInfoToSelf(List<KeywordDTO> keywords, String robotId, String toWxId, String ip){
if (ListUtils.isEmpty(keywords)) {
return;
}
......@@ -275,7 +288,7 @@ public class SendWeixinRequestTools {
sendTextMessageToSelf(content, robotId, toWxId, ip);
}
private static String processContent(List<KeywordDTO> keywords, String robotId, String toWxId, String ip) {
private String processContent(List<KeywordDTO> keywords, String robotId, String toWxId, String ip) {
StringBuilder content = new StringBuilder();
for (int i = 0; i < keywords.size(); i++) {
KeywordDTO keywordDTO = keywords.get(i);
......@@ -293,29 +306,31 @@ public class SendWeixinRequestTools {
return content.toString();
}
private static void sendTextMessageToSelf(String content, String robotId, String toWxId, String ip){
private void sendTextMessageToSelf(String content, String robotId, String toWxId, String ip){
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
sendTextMessageVO.setWxGroupId(toWxId);
sendTextMessageVO.setContent(content);
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
public static void sendTextMessage(String content, String robotId, String weixinGroupId, String ip){
public void sendTextMessage(String content, String robotId, String weixinGroupId, String ip){
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(content);
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
/**
* 发送默认欢迎语
*/
public static void sendDefaultMessage(SendDefaultGuideMessageDTO dto) {
public void sendDefaultMessage(SendDefaultGuideMessageDTO dto) {
String groupName = dto.getGroupName();
String robotId = dto.getRobotId();
String weixinGroupId = dto.getWeixinGroupId();
......@@ -347,7 +362,7 @@ public class SendWeixinRequestTools {
}
@ParamLog("发送欢迎语消息")
public static void sendGuideMessage(SendGuideMessageDTO dto) {
public void sendGuideMessage(SendGuideMessageDTO dto) {
if (Objects.isNull(dto) || CollectionUtils.isEmpty(dto.getReplyMessages())) {
return;
}
......@@ -389,7 +404,8 @@ public class SendWeixinRequestTools {
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
// }
}
......@@ -512,7 +528,7 @@ public class SendWeixinRequestTools {
}
@ParamLog("欢迎语中推送关键词信息")
public static void sendClockKeywordsInfo(List<BookClockKeywordDTO> keywords, String robotId, String weixinGroupId, String ip) {
public void sendClockKeywordsInfo(List<BookClockKeywordDTO> keywords, String robotId, String weixinGroupId, String ip) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId);
......@@ -526,7 +542,8 @@ public class SendWeixinRequestTools {
String keyword = "关键词【" + bookClockKeywordDTO.getKeyword() + "】\n" + " " + bookClockKeywordDTO.getGuide();
if (content.length() + keyword.length() > 1000) {
sendTextMessageVO.setContent(content);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
content = keyword;
}else{
content = content + keyword;
......@@ -536,6 +553,7 @@ public class SendWeixinRequestTools {
}
}
sendTextMessageVO.setContent(content);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
}
package com.pcloud.book.guide.biz.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.guide.biz.PcloudRobotWakeUpBiz;
import com.pcloud.book.guide.dto.WakeUpInfoDto;
import com.pcloud.book.guide.entity.PcloudRobotWakeup;
......@@ -68,6 +70,8 @@ public class PcloudRobotWakeUpBizImpl implements PcloudRobotWakeUpBiz {
private PcloudRobotBiz pcloudRobotBiz;
@Autowired
private PcloudRobotWakeupClassifyMapper pcloudRobotWakeupClassifyMapper;
@Autowired
private WechatGroupConsr wechatGroupConsr;
@Override
public void robotWakeUpConfig(RobotWakeUpConfigVO robotWakeUpConfigVO) {
......@@ -240,7 +244,8 @@ public class PcloudRobotWakeUpBizImpl implements PcloudRobotWakeUpBiz {
txt.setContent(msg.getContent());
txt.setWxGroupId(wxid);
txt.setIp(ip);
WxGroupSDK.sendTextMessage(txt);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(txt));
}
if ("image".equals(msg.getType())) {
SendPicMessageVO pic = new SendPicMessageVO();
......@@ -249,7 +254,8 @@ public class PcloudRobotWakeUpBizImpl implements PcloudRobotWakeUpBiz {
pic.setWxId(wxid);
pic.setWxGroupId(wxid);
pic.setIp(ip);
WxGroupSDK.sendPicMessage(pic);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(pic));
}
if ("file".equals(msg.getType())) {
SendFileVO file = new SendFileVO();
......@@ -259,7 +265,8 @@ public class PcloudRobotWakeUpBizImpl implements PcloudRobotWakeUpBiz {
file.setWxId(wxid);
file.setWxGroupId(wxid);
file.setIp(ip);
WxGroupSDK.sendFile(file);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(file));
}
}
}
......
package com.pcloud.book.guide.runner;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.guide.dto.PcloudGuideDelayDto;
import com.pcloud.book.guide.entity.PcloudGuide;
import com.pcloud.book.guide.mapper.PcloudGuideMapper;
......@@ -14,17 +16,22 @@ import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendFileVO;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import static com.pcloud.book.guide.constant.PcloudGuideRedisConstant.PCLOUD_GUIDE_LOCK;
import static com.pcloud.book.guide.constant.PcloudGuideRedisConstant.PCLOUD_GUIDE_SUFFIX;
......@@ -46,6 +53,8 @@ public class PcloudGuideSilenceRunnerImpl implements ApplicationRunner {
private PcloudRobotDao pcloudRobotDao;
@Autowired
private ResourceConsr resourceConsr;
@Autowired
private WechatGroupConsr wechatGroupConsr;
@Override
public void run(ApplicationArguments applicationArguments) throws Exception {
......@@ -81,7 +90,11 @@ public class PcloudGuideSilenceRunnerImpl implements ApplicationRunner {
// 超时 推送引导语
if (!DateUtils.addSecond(pcloudGuideDelayDto.getSendTime(), pcloudGuideDelayDto.getSpanTime() + pcloudGuideDelayDto.getDuration()).after(new Date())) {
// 发送消息
for (PcloudGuideMessageVO message : pcloudGuideDelayDto.getMsgList()) {
List<PcloudGuideMessageVO> msgList = pcloudGuideDelayDto.getMsgList();
String groupId = UUID.randomUUID().toString();
int counts = msgList.size();
for (int i = 0; i < msgList.size(); i++) {
PcloudGuideMessageVO message = msgList.get(i);
Integer replyType = message.getReplyType();
if (ReplyTypeEnum.TEXT.value.equals(replyType)) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
......@@ -90,7 +103,11 @@ public class PcloudGuideSilenceRunnerImpl implements ApplicationRunner {
sendTextMessageVO.setWxGroupId(userId);
sendTextMessageVO.setIp(pcloudGuideDelayDto.getIp());
sendTextMessageVO.setCode(pcloudGuideDelayDto.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(groupId);
sendTextMessageVO.setCounts(counts);
sendTextMessageVO.setIndex(i);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.GUIDE);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
if (ReplyTypeEnum.IMAGE.value.equals(replyType)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
......@@ -99,7 +116,11 @@ public class PcloudGuideSilenceRunnerImpl implements ApplicationRunner {
sendPicMessageVO.setWxGroupId(userId);
sendPicMessageVO.setIp(pcloudGuideDelayDto.getIp());
sendPicMessageVO.setCode(pcloudGuideDelayDto.getCode());
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setMessageGroupId(groupId);
sendPicMessageVO.setCounts(counts);
sendPicMessageVO.setIndex(i);
sendPicMessageVO.setRobotProcessType(RobotProcessTypeEnum.GUIDE);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
if (ReplyTypeEnum.RESOURCE.value.equals(replyType)) {
SendFileVO sendFileVO = new SendFileVO();
......@@ -119,7 +140,11 @@ public class PcloudGuideSilenceRunnerImpl implements ApplicationRunner {
sendFileVO.setIp(pcloudGuideDelayDto.getIp());
sendFileVO.setAltId(pcloudGuideDelayDto.getRobotWxId());
sendFileVO.setWxId(userId);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setMessageGroupId(groupId);
sendFileVO.setCounts(counts);
sendFileVO.setIndex(i);
sendFileVO.setRobotProcessType(RobotProcessTypeEnum.GUIDE);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
}
......
package com.pcloud.book.keywords.biz.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.constant.BookConstant;
......@@ -69,6 +70,7 @@ import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.wechatgroup.message.dto.AgreeAddUserDTO;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.SendFileVO;
import com.sdk.wxgroup.SendGroupInviteVO;
......@@ -90,6 +92,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import static com.pcloud.book.guide.constant.PcloudGuideRedisConstant.PCLOUD_GUIDE_SUFFIX;
......@@ -151,6 +154,8 @@ public class BookGuideBizImpl implements BookGuideBiz {
private String wechatGroupLinkPrefix;
@Autowired
private PersonalStageJumpBiz personalStageJumpBiz;
@Autowired
private SendWeixinRequestTools sendWeixinRequestTools;
@ParamLog("同意加好友发送欢迎语")
@Override
......@@ -184,7 +189,11 @@ public class BookGuideBizImpl implements BookGuideBiz {
vo.setAltId(agreeAddUserDTO.getRobotWxId());
vo.setWxGroupId(agreeAddUserDTO.getUserWxId());
vo.setIp(agreeAddUserDTO.getIp());
WxGroupSDK.sendTextMessage(vo);
vo.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
vo.setCounts(1);
vo.setIndex(0);
vo.setMessageGroupId(UUID.randomUUID().toString());
wechatGroupConsr.sendMessage(JSON.toJSONString(vo));
return;
}
if (StringUtil.isBlank(cipher)) {
......@@ -220,7 +229,11 @@ public class BookGuideBizImpl implements BookGuideBiz {
vo.setWxGroupId(agreeAddUserDTO.getUserWxId());
vo.setIp(agreeAddUserDTO.getIp());
log.info("[同意加好友发送欢迎语] : {}", vo);
WxGroupSDK.sendTextMessage(vo);
vo.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
vo.setCounts(1);
vo.setIndex(0);
vo.setMessageGroupId(UUID.randomUUID().toString());
wechatGroupConsr.sendMessage(JSON.toJSONString(vo));
}
// 如果不是第一次就发关键词
// 根据暗号获取分类id和bookGroupId推送关键词欢迎语
......@@ -228,7 +241,7 @@ public class BookGuideBizImpl implements BookGuideBiz {
//发主打资源
sendMainKeyword(keywords,agreeAddUserDTO,dto,wxGroupId);
//发关键词列表
SendWeixinRequestTools.sendKeywordsInfoToSelf(keywords, agreeAddUserDTO.getRobotWxId(), agreeAddUserDTO.getUserWxId(), agreeAddUserDTO.getIp());
sendWeixinRequestTools.sendKeywordsInfoToSelf(keywords, agreeAddUserDTO.getRobotWxId(), agreeAddUserDTO.getUserWxId(), agreeAddUserDTO.getIp());
// 拉群
// final Integer peopleCounts = wxGroup.getUserNumber();
// 邀请好友进群有次数限制,目前测试为每天只能拉30-40人就操作频繁,所以在此加判断,超过30人或者群人数超过30人就发送邀请链接
......@@ -307,7 +320,11 @@ public class BookGuideBizImpl implements BookGuideBiz {
vo.setAltId(agreeAddUserDTO.getRobotWxId());
vo.setWxGroupId(agreeAddUserDTO.getUserWxId());
vo.setIp(agreeAddUserDTO.getIp());
WxGroupSDK.sendTextMessage(vo);
vo.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
vo.setCounts(1);
vo.setIndex(0);
vo.setMessageGroupId(UUID.randomUUID().toString());
wechatGroupConsr.sendMessage(JSON.toJSONString(vo));
return;
}
if (StringUtil.isBlank(cipher)) {
......@@ -342,8 +359,12 @@ public class BookGuideBizImpl implements BookGuideBiz {
vo.setAltId(agreeAddUserDTO.getRobotWxId());
vo.setWxGroupId(agreeAddUserDTO.getUserWxId());
vo.setIp(agreeAddUserDTO.getIp());
vo.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
vo.setCounts(1);
vo.setIndex(0);
vo.setMessageGroupId(UUID.randomUUID().toString());
log.info("[同意加好友发送欢迎语] : {}", vo);
WxGroupSDK.sendTextMessage(vo);
wechatGroupConsr.sendMessage(JSON.toJSONString(vo));
}
// 如果不是第一次就发关键词
// 根据暗号获取分类id和bookGroupId推送关键词欢迎语
......@@ -351,7 +372,7 @@ public class BookGuideBizImpl implements BookGuideBiz {
//发主打资源
sendMainKeyword(keywords,agreeAddUserDTO,dto,wxGroupId);
//发关键词列表
SendWeixinRequestTools.sendKeywordsInfoToSelf(keywords, agreeAddUserDTO.getRobotWxId(), agreeAddUserDTO.getUserWxId(), agreeAddUserDTO.getIp());
sendWeixinRequestTools.sendKeywordsInfoToSelf(keywords, agreeAddUserDTO.getRobotWxId(), agreeAddUserDTO.getUserWxId(), agreeAddUserDTO.getIp());
// 拉群
// final Integer peopleCounts = wxGroup.getUserNumber();
// 邀请好友进群有次数限制,目前测试为每天只能拉30-40人就操作频繁,所以在此加判断,超过30人或者群人数超过30人就发送邀请链接
......@@ -425,12 +446,13 @@ public class BookGuideBizImpl implements BookGuideBiz {
if (ListUtils.isEmpty(friendGuideList)){
return;
}
int i=0;
for (BookGroupFriendGuide bookGroupFriendGuide: friendGuideList){
i=i+1;
String groupId = UUID.randomUUID().toString();
int counts = friendGuideList.size();
for (int i = 0; i < friendGuideList.size(); i++) {
BookGroupFriendGuide bookGroupFriendGuide = friendGuideList.get(i);
Integer type = bookGroupFriendGuide.getType();
if (ReplyTypeEnum.TEXT.value.equals(type)) {
if (i==friendGuideList.size()){
if (i==friendGuideList.size() - 1){
String content=bookGroupFriendGuide.getContent();
if (!StringUtil.isEmpty(content)){
String endUrl = wechatGroupLinkPrefix+ "/dialog" + "?book_group_id=" + bookGroupId + "&wxId=" + userWxId + "&robotWxId=" + robotId;
......@@ -445,7 +467,11 @@ public class BookGuideBizImpl implements BookGuideBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(groupId);
sendTextMessageVO.setCounts(counts);
sendTextMessageVO.setIndex(i);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.GUIDE);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
if (ReplyTypeEnum.IMAGE.value.equals(type)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
......@@ -454,7 +480,11 @@ public class BookGuideBizImpl implements BookGuideBiz {
sendPicMessageVO.setPicUrl(bookGroupFriendGuide.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(code);
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setMessageGroupId(groupId);
sendPicMessageVO.setCounts(counts);
sendPicMessageVO.setIndex(i);
sendPicMessageVO.setRobotProcessType(RobotProcessTypeEnum.GUIDE);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
if (ReplyTypeEnum.LINK.value.equals(type)) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
......@@ -466,7 +496,11 @@ public class BookGuideBizImpl implements BookGuideBiz {
sendArticleMessageVO.setPicUrl(bookGroupFriendGuide.getPicUrl());
sendArticleMessageVO.setTitle(bookGroupFriendGuide.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setMessageGroupId(groupId);
sendArticleMessageVO.setCounts(counts);
sendArticleMessageVO.setIndex(i);
sendArticleMessageVO.setRobotProcessType(RobotProcessTypeEnum.GUIDE);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
if (ReplyTypeEnum.APP.value.equals(type)) {
return;
......@@ -489,7 +523,10 @@ public class BookGuideBizImpl implements BookGuideBiz {
sendFileVO.setIp(ip);
sendFileVO.setAltId(robotId);
sendFileVO.setWxId(userWxId);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setMessageGroupId(groupId);
sendFileVO.setCounts(counts);
sendFileVO.setIndex(i);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
}
log.info("临时demo发送个人号加好友欢迎语列表信息"+friendGuideList.toString());
......@@ -519,7 +556,7 @@ public class BookGuideBizImpl implements BookGuideBiz {
String linkUrl = SendWeixinRequestTools.splitUrlNew(accountSettingDto, replyKeywordDTO.getLinkUrl(), dto.getBookGroupId(), dto.getClassifyId(), groupQrcodeInfo.getId());
replyKeywordDTO.setLinkUrl(linkUrl);
}
SendWeixinRequestTools.sendKeywordMessage(replyKeywordDTO, agreeAddUserDTO.getRobotWxId(), agreeAddUserDTO.getUserWxId(), agreeAddUserDTO.getIp(), SendMessageTypeEnum.SELF.getCode());
sendWeixinRequestTools.sendKeywordMessage(replyKeywordDTO, agreeAddUserDTO.getRobotWxId(), agreeAddUserDTO.getUserWxId(), agreeAddUserDTO.getIp(), SendMessageTypeEnum.SELF.getCode());
}
}
}
......@@ -700,7 +737,7 @@ public class BookGuideBizImpl implements BookGuideBiz {
sendGuideMessageDTO.setDto(dto);
sendGuideMessageDTO.setIp(pushAddUserMessageDTO.getIp());
sendGuideMessageDTO.setAccountSettingDto(accountSettingDto);
SendWeixinRequestTools.sendDefaultMessage(sendGuideMessageDTO);
sendWeixinRequestTools.sendDefaultMessage(sendGuideMessageDTO);
} else {
//处理链接
handleUrl(replyMessages, wechatInfo, classifyQrcodeInfo);
......@@ -715,13 +752,13 @@ public class BookGuideBizImpl implements BookGuideBiz {
sendGuideMessageDTO.setIp(pushAddUserMessageDTO.getIp());
sendGuideMessageDTO.setCode(SendMessageTypeEnum.GROUP.getCode());
sendGuideMessageDTO.setAccountSettingDto(accountSettingDto);
SendWeixinRequestTools.sendGuideMessage(sendGuideMessageDTO);
sendWeixinRequestTools.sendGuideMessage(sendGuideMessageDTO);
//新增欢迎语应用触发记录
addGuideAppTouchRecord(replyMessages,weixinGroupId,classifyQrcodeInfo.getBookGroupId(),classifyQrcodeInfo.getClassifyId());
}
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());
}
}
......
package com.pcloud.book.keywords.biz.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
......@@ -90,6 +91,7 @@ import com.pcloud.book.personalstage.biz.PersonalStageBiz;
import com.pcloud.book.personalstage.biz.PersonalStageJumpBiz;
import com.pcloud.book.personalstage.enums.JumpTypeEnum;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.skill.dto.AppOrProductReplyDTO;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.constants.ChannelEnum;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
......@@ -251,6 +253,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
private PersonalStageBiz personalStageBiz;
@Autowired
private PersonalStageJumpBiz personalStageJumpBiz;
@Autowired
private SendWeixinRequestTools sendWeixinRequestTools;
/**
* 字符串切割长度
......@@ -625,6 +629,10 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
String ip = sendTextDTO.getIp();
Integer code = sendTextDTO.getCode();
String robotId = sendTextDTO.getWxId();
String uuid= UUID.randomUUID().toString();
RobotProcessTypeEnum robotProcessType=RobotProcessTypeEnum.USER_BOOK_SEARCH;
int counts=1;
int index=0;
if (bookDto==null){
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent("如果这里没有你需要的,小睿深表歉意,小睿还在不断丰富阅读内容,提升阅读体验,一旦发现好东西就会快马加鞭分享给你的!");
......@@ -632,12 +640,16 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(uuid);
sendTextMessageVO.setRobotProcessType(robotProcessType);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
String h5link = wechatGroupLinkPrefix +"/dialog/search?wxId=" + userWxId +"&robotWxId=" + robotId;
String linkUrl = UrlUtils.getShortUrl4Own(h5link);
linkUrl = "★" + linkUrl + "★";
sendTextMessageVO.setContent("详情点击进入:"+linkUrl);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}else {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setAltId(robotId);
......@@ -648,7 +660,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
String linkUrl = UrlUtils.getShortUrl4Own(h5link);
linkUrl = "★" + linkUrl + "★";
sendTextMessageVO.setContent("详情点击进入:"+linkUrl);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(uuid);
sendTextMessageVO.setRobotProcessType(robotProcessType);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
//插入触发记录
SearchRecord searchRecord=new SearchRecord();
searchRecord.setContent(bookName);
......@@ -812,8 +828,10 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
int a= (int) Math.floor(Math.random()*replies.size());
replies=Arrays.asList(replies.get(a));
}
String uuid= UUID.randomUUID().toString();
RobotProcessTypeEnum robotProcessType=RobotProcessTypeEnum.PCLOUD_KEYWORD;
for (PcloudKeywordReply reply:replies){
sendPcloudKeywordReply(reply, robotId, userWxId, ip, code);
sendPcloudKeywordReply(reply, robotId, userWxId, ip, code,uuid,robotProcessType,replies.indexOf(reply),replies.size());
}
//有关联技能,发送H5页面链接,取第一个技能
if (!StringUtil.isEmpty(pcloudKeyword.getSkillIds())){
......@@ -827,7 +845,10 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(UUID.randomUUID().toString());
sendTextMessageVO.setIndex(0);
sendTextMessageVO.setCounts(1);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
}else {
......@@ -839,7 +860,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
@ParamLog("平台端个人号关键词回复")
public void sendPcloudKeywordReply(PcloudKeywordReply reply, String robotId, String userWxId, String ip, Integer code){
public void sendPcloudKeywordReply(PcloudKeywordReply reply, String robotId, String userWxId, String ip, Integer code, String uuid, RobotProcessTypeEnum robotProcessType, int index, int counts){
Integer type = reply.getType();
if (ReplyTypeEnum.TEXT.value.equals(type)) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
......@@ -848,7 +869,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(uuid);
sendTextMessageVO.setRobotProcessType(robotProcessType);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
if (ReplyTypeEnum.IMAGE.value.equals(type)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
......@@ -857,11 +882,26 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendPicMessageVO.setPicUrl(reply.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(code);
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setMessageGroupId(uuid);
sendPicMessageVO.setRobotProcessType(robotProcessType);
sendPicMessageVO.setIndex(index);
sendPicMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
if (ReplyTypeEnum.APP.value.equals(type)) {
pcloudRobotSet.sendAppOrProductReply(reply.getServeType(), reply.getServeId(),
reply.getLinkUrl(), robotId,userWxId, ip, code);
AppOrProductReplyDTO appOrProductReplyDTO=new AppOrProductReplyDTO();
appOrProductReplyDTO.setServeType(reply.getServeType());
appOrProductReplyDTO.setServeId(reply.getServeId());
appOrProductReplyDTO.setLinkUrl(reply.getLinkUrl());
appOrProductReplyDTO.setRobotWxId(robotId);
appOrProductReplyDTO.setUserWxId(userWxId);
appOrProductReplyDTO.setIp(ip);
appOrProductReplyDTO.setSendMessageType(code);
appOrProductReplyDTO.setMessageGroupId(uuid);
appOrProductReplyDTO.setRobotProcessTypeEnum(robotProcessType);
appOrProductReplyDTO.setIndex(index);
appOrProductReplyDTO.setCounts(counts);
pcloudRobotSet.sendAppOrProductReply(appOrProductReplyDTO);
}
if (ReplyTypeEnum.RESOURCE.value.equals(type)) {
SendFileVO sendFileVO = new SendFileVO();
......@@ -881,7 +921,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendFileVO.setIp(ip);
sendFileVO.setAltId(robotId);
sendFileVO.setWxId(userWxId);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setMessageGroupId(uuid);
sendFileVO.setRobotProcessType(robotProcessType);
sendFileVO.setIndex(index);
sendFileVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
if (ReplyTypeEnum.LINK.value.equals(type)) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
......@@ -893,7 +937,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendArticleMessageVO.setPicUrl(reply.getPicUrl());
sendArticleMessageVO.setTitle(reply.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setMessageGroupId(uuid);
sendArticleMessageVO.setRobotProcessType(robotProcessType);
sendArticleMessageVO.setIndex(index);
sendArticleMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
}
......@@ -938,6 +986,10 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
String ip = sendTextDTO.getIp();
Integer code = sendTextDTO.getCode();
String robotId = sendTextDTO.getWxId();
String uuid= UUID.randomUUID().toString();
RobotProcessTypeEnum robotProcessType=RobotProcessTypeEnum.PCLOUD_NOT_KEYWORD;
int index=0;
int counts=1;
for (NotKeywordItem notKeywordItem:list){
Integer type = notKeywordItem.getType();
if (ReplyTypeEnum.TEXT.value.equals(type)) {
......@@ -947,7 +999,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(uuid);
sendTextMessageVO.setRobotProcessType(robotProcessType);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
if (ReplyTypeEnum.RESOURCE.value.equals(type)) {
SendFileVO sendFileVO = new SendFileVO();
......@@ -967,7 +1023,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendFileVO.setIp(ip);
sendFileVO.setAltId(robotId);
sendFileVO.setWxId(userWxId);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setMessageGroupId(uuid);
sendFileVO.setRobotProcessType(robotProcessType);
sendFileVO.setIndex(index);
sendFileVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
}
}
......@@ -982,8 +1042,12 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
if (ListUtils.isEmpty(replyList)){
return;
}
RobotProcessTypeEnum robotProcessType = RobotProcessTypeEnum.PCLOUD_KEYWORD;
String uuid = UUID.randomUUID().toString();
for (SelfRobotKeywordReply keywordReply : replyList){
Integer type = keywordReply.getType();
Integer index = replyList.indexOf(keywordReply);
Integer counts = replyList.size();
if (ReplyTypeEnum.TEXT.value.equals(type)) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
Map<String,String> paramMap = new HashMap<>();
......@@ -994,7 +1058,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(uuid);
sendTextMessageVO.setRobotProcessType(robotProcessType);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
if (ReplyTypeEnum.IMAGE.value.equals(type)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
......@@ -1003,7 +1071,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendPicMessageVO.setPicUrl(keywordReply.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(code);
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setMessageGroupId(uuid);
sendPicMessageVO.setRobotProcessType(robotProcessType);
sendPicMessageVO.setIndex(index);
sendPicMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
if (ReplyTypeEnum.LINK.value.equals(type)) {
/* SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
......@@ -1018,7 +1090,12 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);*/
sendTextMessageVO.setMessageGroupId(uuid);
sendTextMessageVO.setRobotProcessType(robotProcessType);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(sendTextMessageVO);;
*/
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(code);
......@@ -1029,7 +1106,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendArticleMessageVO.setPicUrl(keywordReply.getPicUrl());
sendArticleMessageVO.setTitle(keywordReply.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setMessageGroupId(uuid);
sendArticleMessageVO.setRobotProcessType(robotProcessType);
sendArticleMessageVO.setIndex(index);
sendArticleMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
if (ReplyTypeEnum.APP.value.equals(type)) {
BookGroupDTO bookGroupDTO = bookGroupDao.getDTOById(selfRobotKeyword.getBookGroupId());
......@@ -1056,7 +1137,12 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);*/
sendTextMessageVO.setMessageGroupId(uuid);
sendTextMessageVO.setRobotProcessType(robotProcessType);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(sendTextMessageVO);;
*/
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(code);
......@@ -1067,7 +1153,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendArticleMessageVO.setPicUrl(keywordReply.getPicUrl());
sendArticleMessageVO.setTitle(keywordReply.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setMessageGroupId(uuid);
sendArticleMessageVO.setRobotProcessType(robotProcessType);
sendArticleMessageVO.setIndex(index);
sendArticleMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
if (ReplyTypeEnum.RESOURCE.value.equals(type)) {
SendFileVO sendFileVO = new SendFileVO();
......@@ -1087,7 +1177,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendFileVO.setIp(ip);
sendFileVO.setAltId(robotId);
sendFileVO.setWxId(userWxId);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setMessageGroupId(uuid);
sendFileVO.setRobotProcessType(robotProcessType);
sendFileVO.setIndex(index);
sendFileVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
}
}
......@@ -1153,8 +1247,10 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
if (MethodEnum.RANDOM.value.equals(pcloudNotKeyword.getMethod())){
replies = Arrays.asList(replies.get(new Random().nextInt(replies.size())));
}
String uuid= UUID.randomUUID().toString();
RobotProcessTypeEnum robotProcessType=RobotProcessTypeEnum.PCLOUD_NOT_KEYWORD;
for (PcloudKeywordReply reply:replies){
sendPcloudKeywordReply(reply, robotId, userWxId, ip, code);
sendPcloudKeywordReply(reply, robotId, userWxId, ip, code, uuid,robotProcessType,replies.indexOf(reply),replies.size());
}
}
}
......@@ -1376,7 +1472,10 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
vo.setAltId(robotId);
vo.setWxGroupId(userWxId);
vo.setIp(ip);
WxGroupSDK.sendTextMessage(vo);
vo.setMessageGroupId(UUID.randomUUID().toString());
vo.setIndex(0);
vo.setCounts(1);
wechatGroupConsr.sendMessage(JSON.toJSONString(vo));
log.info("发送收到暗号后的本书介绍 : {}", vo);
}
......@@ -1434,7 +1533,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendTextMessageVO.setAltId(sendTextDTO.getWxId());
sendTextMessageVO.setWxGroupId(wxGroupId);
sendTextMessageVO.setIp(findIp(wxGroupId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
log.info("发送入群邀请链接之前发冒泡消息:"+sendTextMessageVO.toString());
}
......@@ -1579,7 +1679,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
if (content.length() > LE) {
replyKeywordDTO.setReplyType(ReplyTypeEnum.TEXT.value);
replyKeywordDTO.setContent(sb.toString());
SendWeixinRequestTools.sendKeywordMessage(replyKeywordDTO, robotId, weixinGroupId, ip, code);
sendWeixinRequestTools.sendKeywordMessage(replyKeywordDTO, robotId, weixinGroupId, ip, code);
sb = toAdd;
} else {
sb = content;
......@@ -1589,7 +1689,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
ReplyKeywordDTO keywordDTO = replyKeyWords.get(0);
keywordDTO.setReplyType(ReplyTypeEnum.TEXT.value);
keywordDTO.setContent(sb.toString());
SendWeixinRequestTools.sendKeywordMessage(keywordDTO, robotId, weixinGroupId, ip, code);
sendWeixinRequestTools.sendKeywordMessage(keywordDTO, robotId, weixinGroupId, ip, code);
for (ReplyKeywordDTO replyKeywordDTO : replyKeyWords) {
//新增关键词触发记录
......@@ -1671,7 +1771,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
robotId = wechatGroupConsr.getRobotIdByGroupId(weixinGroupId);
}
log.info("[关键词回复发送数据] : sendKeywordMessage replyKeywordDTO :{}, robotId:{}, weixinGroupId:{}", replyKeywordDTO, robotId, weixinGroupId);
SendWeixinRequestTools.sendKeywordMessage(replyKeywordDTO, robotId, weixinGroupId, ip, code);
sendWeixinRequestTools.sendKeywordMessage(replyKeywordDTO, robotId, weixinGroupId, ip, code);
//新增关键词触发记录
addKeywordAppTouchRecord(replyKeywordDTO, weixinGroupId, classifyQrcodeInfo.getClassifyId(), classifyQrcodeInfo.getBookGroupId());
//第一推送关键词消息埋点
......
package com.pcloud.book.keywords.biz.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException;
......@@ -534,7 +535,8 @@ public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(wxUserId);
sendTextMessageVO.setIp(getIpByRobot(robotId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
} else if ("file".equals(skill.getResourceType())) {
// 发送文件
SendFileVO sendFileVO = new SendFileVO();
......@@ -543,7 +545,8 @@ public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
sendFileVO.setIp(getIpByRobot(robotId));
sendFileVO.setAltId(robotId);
sendFileVO.setWxId(wxUserId);
WxGroupSDK.sendFile(sendFileVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
} else if ("img".equals(skill.getResourceType())) {
// 发送图片
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
......@@ -552,7 +555,8 @@ public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
sendPicMessageVO.setWxGroupId(wxUserId);
sendPicMessageVO.setPicUrl(skill.getImgUrl());
sendPicMessageVO.setIp(getIpByRobot(robotId));
WxGroupSDK.sendPicMessage(sendPicMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
});
return skill.getReplyContent();
......@@ -586,7 +590,8 @@ public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
sendPicMessageVO.setWxGroupId(wxUserId);
sendPicMessageVO.setPicUrl(skill.getImgUrl());
sendPicMessageVO.setIp(getIpByRobot(robotId));
WxGroupSDK.sendPicMessage(sendPicMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
});
return skill.getReplyContent();
}
......@@ -601,7 +606,8 @@ public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(wxUserId);
sendTextMessageVO.setIp(getIpByRobot(robotId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}else if (id == 2){
sendTextMessageVO.setContent("计划怎么样?我按照计划执行后效果很好哦,等你订阅后我们一起阅读");
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
......@@ -609,7 +615,8 @@ public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(wxUserId);
sendTextMessageVO.setIp(getIpByRobot(robotId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}else {
sendTextMessageVO.setContent(" 你还在犹豫吗?早起的鸟儿有虫吃,我先行动起来喽~");
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
......@@ -617,7 +624,8 @@ public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(wxUserId);
sendTextMessageVO.setIp(getIpByRobot(robotId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
}
......
package com.pcloud.book.mq.topic;
import com.alibaba.fastjson.JSON;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.dao.GroupQrcodeDao;
......@@ -70,7 +71,8 @@ public class UpdateWXGroupNameListener {
sendTextMessageVO.setWxGroupId(wechatGroupId);
LOGGER.info("发送警告文本消息"+sendTextMessageVO.toString());
sendTextMessageVO.setIp(findIp(wechatGroupId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
} catch (Exception e) {
LOGGER.error("接收修改群名称失败" + e.getMessage(), e);
......
package com.pcloud.book.mq.topic;
import com.alibaba.fastjson.JSON;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.LearningReportBiz;
import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.dao.BookGroupClassifyDao;
......@@ -56,6 +58,8 @@ public class WXGroupLearningReportListener {
private QrcodeSceneConsr qrcodeSceneConsr;
@Autowired
private WeixinQrcodeBiz weixinQrcodeBiz;
@Autowired
private WechatGroupConsr wechatGroupConsr;
@ParamLog("接收学习报告topic")
......@@ -108,7 +112,8 @@ public class WXGroupLearningReportListener {
sendTextMessageVO.setAltId(alt);
sendTextMessageVO.setContent("个人专属学习报告,及群成员元气排行榜。点击获取" + resultUrl);
sendTextMessageVO.setIp(findIp(wechatGroupId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
LOGGER.info("发送文字消息结束"+sendTextMessageVO.toString());
if (ListUtils.isEmpty(learningScoreDTOS)) {
LOGGER.info("没有排行记录,不发送图片groupQrcodeId=" + groupQrcodeId);
......@@ -119,7 +124,8 @@ public class WXGroupLearningReportListener {
sendPicMessageVO.setWxGroupId(wechatGroupId);
sendPicMessageVO.setAltId(alt);
sendPicMessageVO.setIp(findIp(wechatGroupId));
WxGroupSDK.sendPicMessage(sendPicMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
LOGGER.info("发送分享图消息结束"+sendPicMessageVO.toString());
} catch (Exception e) {
LOGGER.error("接收学习报告topic失败" + e.getMessage(), e);
......
package com.pcloud.book.pcloudkeyword.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.dao.BookDao;
......@@ -61,11 +62,7 @@ import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.message.dto.SendTextDTO;
import com.pcloud.wechatgroup.selfrobot.dto.RobotBaseInfoDTO;
import com.sdk.wxgroup.SendFileVO;
import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import com.sdk.wxgroup.*;
import com.sdk.wxgroup.im.mimc.BusinessConstant;
import com.sdk.wxgroup.im.mimc.dto.SendMomentsDTO;
import org.apache.commons.collections.MapUtils;
......@@ -77,11 +74,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
@Component("pcloudRobotBiz")
......@@ -307,6 +300,9 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
}
List<PcloudRobotWelcome> robotWelcomeList = pcloudRobotWelcomeDao.getRobotWelcomeListByPcloudClassifyId(pcloudRobot.getRobotType().longValue());
pcloudRobotSet.fillRobotWelcome(robotWelcomeList);
Integer count= robotWelcomeList.size();
String messageGroup = UUID.randomUUID().toString();
Integer index = 0;
for (PcloudRobotWelcome robotWelcome : robotWelcomeList) {
try {
Thread.sleep(1000 * welcomeDuration);
......@@ -321,7 +317,11 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(messageGroup);
sendTextMessageVO.setCounts(count);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
} else if (WelcomeReplyTypeEnum.IMAGE.value.equals(replyType)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(userWxId);
......@@ -329,7 +329,11 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
sendPicMessageVO.setPicUrl(robotWelcome.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setMessageGroupId(messageGroup);
sendPicMessageVO.setCounts(count);
sendPicMessageVO.setIndex(index);
sendPicMessageVO.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
} else if (WelcomeReplyTypeEnum.RESOURCE.value.equals(replyType)) {
SendFileVO sendFileVO = new SendFileVO();
sendFileVO.setFileUrl(robotWelcome.getResourceUrl());
......@@ -343,7 +347,11 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
sendFileVO.setAltId(robotWxId);
sendFileVO.setWxId(userWxId);
sendFileVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setMessageGroupId(messageGroup);
sendFileVO.setCounts(count);
sendFileVO.setIndex(index);
sendFileVO.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
} else if (WelcomeReplyTypeEnum.AUDIO.value.equals(replyType)){
SendMomentsDTO sendMomentsDTO=new SendMomentsDTO();
GroupRobotDTO info = wechatGroupConsr.getGroupRobotByRobotId(robotWxId);
......@@ -355,8 +363,13 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
sendMomentsDTO.setContent(userWxId);
sendMomentsDTO.setLink(robotWelcome.getResourceUrl());
sendMomentsDTO.setIp(ip);
sendMomentsDTO.setMessageGroupId(messageGroup);
sendMomentsDTO.setCounts(count);
sendMomentsDTO.setIndex(index);
sendMomentsDTO.setRobotProcessType(RobotProcessTypeEnum.WELCOME);
WxGroupSDK.sendMessageToPhone(sendMomentsDTO);
}
index ++;
}
}
if (robotClassify != null && robotClassify.getIsOpenPushH5url() != null && robotClassify.getIsOpenPushH5url() == 1) {
......@@ -370,7 +383,8 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
}
});
......@@ -696,7 +710,8 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
} else if(WelcomeReplyTypeEnum.IMAGE.value.equals(replyType)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(userWxId);
......@@ -704,7 +719,8 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
sendPicMessageVO.setPicUrl(tdReplyDTO.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendPicMessage(sendPicMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
} else if(WelcomeReplyTypeEnum.RESOURCE.value.equals(replyType)) {
String fileName = tdReplyDTO.getResourceName();
String fileType = tdReplyDTO.getFileType();
......@@ -718,7 +734,8 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
sendFileVO.setAltId(robotWxId);
sendFileVO.setWxId(userWxId);
sendFileVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendFile(sendFileVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
}
}
......
package com.pcloud.book.pcloudkeyword.set;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.enums.AppAndProductTypeEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome;
import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum;
import com.pcloud.book.skill.dto.AppOrProductReplyDTO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.ListUtils;
......@@ -38,6 +41,8 @@ public class PcloudRobotSet {
private AppConsr appConsr;
@Autowired
private QrcodeSceneConsr qrcodeSceneConsr;
@Autowired
private WechatGroupConsr wechatGroupConsr;
@ParamLog("填充欢迎语回复")
public void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) {
......@@ -72,15 +77,14 @@ public class PcloudRobotSet {
}
}
}
public void sendAppOrProductReply(String serveType, Long serveId, String linkUrl,
String robotWxId, String userWxId, String ip, Integer code) {
public void sendAppOrProductReply(AppOrProductReplyDTO replyDTO) {
AccountSettingDto accountSettingDto = null;
String typeName = "";
String picUrl = "";
String title = "";
String resultUrl = "";
if (AppAndProductTypeEnum.APP.value.equals(serveType)) {
AppDto appDto = appConsr.getBaseById(serveId);
if (AppAndProductTypeEnum.APP.value.equals(replyDTO.getServeType())) {
AppDto appDto = appConsr.getBaseById(replyDTO.getServeId());
if (appDto != null) {
accountSettingDto = qrcodeSceneConsr.getWechatInfo(appDto.getChannelId());
typeName = appDto.getTypeName();
......@@ -88,31 +92,35 @@ public class PcloudRobotSet {
title = appDto.getTitle();
}
if(accountSettingDto != null) {
String endUrl = linkUrl + "&wxId=" + userWxId + "&robotWxId=" + robotWxId;
String endUrl = replyDTO.getLinkUrl() + "&wxId=" + replyDTO.getUserWxId() + "&robotWxId=" + replyDTO.getRobotWxId();
String resultLinkUrl = SendWeixinRequestTools.splitUrl(accountSettingDto, endUrl);
resultUrl = UrlUtils.getShortUrl4Own(resultLinkUrl);
}
}
if (AppAndProductTypeEnum.PRODUCT.value.equals(serveType)) {
ProductDto productDto = productConsr.getProBaseById(serveId);
if (AppAndProductTypeEnum.PRODUCT.value.equals(replyDTO.getServeType())) {
ProductDto productDto = productConsr.getProBaseById(replyDTO.getServeId());
if (productDto != null) {
typeName = productDto.getProductTypeDto() == null ? "" : productDto.getProductTypeDto().getTypeName();
picUrl = productDto.getCoverImg();
title = productDto.getProductName();
resultUrl = UrlUtils.getShortUrl4Own(linkUrl + "&wxId=" + userWxId + "&robotWxId=" + robotWxId);
resultUrl = UrlUtils.getShortUrl4Own(replyDTO.getLinkUrl() + "&wxId=" + replyDTO.getUserWxId() + "&robotWxId=" + replyDTO.getRobotWxId());
}
}
if(!StringUtils.isEmpty(resultUrl)) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(code);
sendArticleMessageVO.setAltId(robotWxId);
sendArticleMessageVO.setCode(replyDTO.getSendMessageType());
sendArticleMessageVO.setAltId(replyDTO.getRobotWxId());
sendArticleMessageVO.setDescription(typeName);
sendArticleMessageVO.setWxGroupId(userWxId);
sendArticleMessageVO.setWxGroupId(replyDTO.getUserWxId());
sendArticleMessageVO.setLinkUrl(resultUrl);
sendArticleMessageVO.setPicUrl(picUrl);
sendArticleMessageVO.setTitle(title);
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setIp(replyDTO.getIp());
sendArticleMessageVO.setCounts(replyDTO.getCounts());
sendArticleMessageVO.setIndex(replyDTO.getIndex());
sendArticleMessageVO.setMessageGroupId(replyDTO.getMessageGroupId());
sendArticleMessageVO.setRobotProcessType(replyDTO.getRobotProcessTypeEnum());
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
}
......
package com.pcloud.book.personalstage.biz.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.pcloud.book.base.exception.BookBizException;
......@@ -62,6 +63,7 @@ import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserDTO;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendFileVO;
import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.SendPicMessageVO;
......@@ -86,6 +88,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;
import java.util.stream.Collectors;
@Component("personalStageBiz")
......@@ -555,7 +558,8 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
state = true;
}
if (!state){//客服介入不发唤醒
sendReplyItems(replyItems,robotId,userWxId,ip,wakeupDelayDTO.getPersonalStageUserId());
String uuId= UUID.randomUUID().toString();
sendReplyItems(replyItems,robotId,userWxId,ip,wakeupDelayDTO.getPersonalStageUserId(),uuId,RobotProcessTypeEnum.PERSONAL_STAGE_WAKEUP);
}
//下一个延时
List<PersonalStageWakeup> wakeups = personalStageWakeupDao.getListByPersonalStageId(personalStageId);
......@@ -695,8 +699,8 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
//替换需求定制单链接
this.replacePaperUrl(items, robotId, userWxId, personalStageReply.getPaperId(),ip);
}
sendReplyItems(items,robotId,userWxId,ip,personalStageUserId);
String uuId= UUID.randomUUID().toString();
sendReplyItems(items,robotId,userWxId,ip,personalStageUserId,uuId,RobotProcessTypeEnum.PERSONAL_STAGE_NOT_KEYWORD);
}
@ParamLog("替换用户输入内容")
......@@ -732,7 +736,8 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}else {
Random random = new Random();
Long replyId=idsNotHasSpe.get(random.nextInt(idsNotHasSpe.size()));
......@@ -912,12 +917,13 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
return;
}
this.replacePaperUrl(items, robotId, userWxId, paperId,ip);
sendReplyItems(items,robotId,userWxId,ip,personalStageUserId);
String uuId= UUID.randomUUID().toString();
sendReplyItems(items,robotId,userWxId,ip,personalStageUserId,uuId,RobotProcessTypeEnum.PERSONAL_STAGE_FUSING);
personalStageUserDao.updateFusingReplyCount(personalStageUserId);
}
@ParamLog("发送回复")
private void sendReplyItems(List<PersonalStageReplyItem> replyItems,String robotId, String userWxId, String ip,Long personalStageUserId){
private void sendReplyItems(List<PersonalStageReplyItem> replyItems,String robotId, String userWxId, String ip,Long personalStageUserId, String uuid, RobotProcessTypeEnum robotProcessType){
for (PersonalStageReplyItem item:replyItems){
Integer type=item.getReplyType();
if (ReplyTypeEnum.TEXT.value.equals(type)) {
......@@ -927,7 +933,11 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(uuid);
sendTextMessageVO.setRobotProcessType(robotProcessType);
sendTextMessageVO.setIndex(replyItems.indexOf(item));
sendTextMessageVO.setCounts(replyItems.size());
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
if (ReplyTypeEnum.IMAGE.value.equals(type)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
......@@ -936,7 +946,11 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
sendPicMessageVO.setPicUrl(item.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setMessageGroupId(uuid);
sendPicMessageVO.setRobotProcessType(robotProcessType);
sendPicMessageVO.setIndex(replyItems.indexOf(item));
sendPicMessageVO.setCounts(replyItems.size());
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
if (ReplyTypeEnum.RESOURCE.value.equals(type)) {
SendFileVO sendFileVO = new SendFileVO();
......@@ -956,7 +970,11 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
sendFileVO.setIp(ip);
sendFileVO.setAltId(robotId);
sendFileVO.setWxId(userWxId);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setMessageGroupId(uuid);
sendFileVO.setRobotProcessType(robotProcessType);
sendFileVO.setIndex(replyItems.indexOf(item));
sendFileVO.setCounts(replyItems.size());
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
if (ReplyTypeEnum.AUDIO.value.equals(type)) {
SendMomentsDTO sendMomentsDTO=new SendMomentsDTO();
......@@ -972,7 +990,11 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
sendMomentsDTO.setContent(userWxId);
sendMomentsDTO.setLink(resourceDTO.getFileUrl());
sendMomentsDTO.setIp(ip);
WxGroupSDK.sendMessageToPhone(sendMomentsDTO);
sendMomentsDTO.setMessageGroupId(uuid);
sendMomentsDTO.setRobotProcessType(robotProcessType);
sendMomentsDTO.setIndex(replyItems.indexOf(item));
sendMomentsDTO.setCounts(replyItems.size());
wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO));
}
}
}
......
package com.pcloud.book.personalstage.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.book.base.exception.BookBizException;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.pcloud.book.book.entity.Book;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.feedback.FeedbackConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
......@@ -46,10 +46,11 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.feedback.paper.dto.PaperAndQuestionDto;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserDTO;
import com.sdk.wxgroup.BaseVO;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import com.sdk.wxgroup.im.mimc.BusinessConstant;
import com.sdk.wxgroup.im.mimc.dto.SendMomentsDTO;
import lombok.extern.slf4j.Slf4j;
......@@ -527,7 +528,8 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
sendTextMessageVO.setWxGroupId(dto.getKey());
sendTextMessageVO.setIp(linkupDelayDTO.getIp());
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
fillMessageBaseInfo(sendTextMessageVO, linkupDelayDTO);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
} else if(ReplyTypeEnum.IMAGE.value.equals( jumpLinkup.getReplyType())) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(dto.getKey());
......@@ -535,7 +537,8 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
sendPicMessageVO.setPicUrl(jumpLinkup.getPicUrl());
sendPicMessageVO.setIp(linkupDelayDTO.getIp());
sendPicMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendPicMessage(sendPicMessageVO);
fillMessageBaseInfo(sendPicMessageVO, linkupDelayDTO);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
} else if (ReplyTypeEnum.AUDIO.value.equals( jumpLinkup.getReplyType())){
SendMomentsDTO sendMomentsDTO=new SendMomentsDTO();
Map<Long, ResourceDTO> map = resourceConsr.mapByIds(Arrays.asList(jumpLinkup.getResourceId()));
......@@ -550,11 +553,20 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
sendMomentsDTO.setContent(dto.getKey());
sendMomentsDTO.setLink(resourceDTO.getFileUrl());
sendMomentsDTO.setIp(linkupDelayDTO.getIp());
WxGroupSDK.sendMessageToPhone(sendMomentsDTO);
fillMessageBaseInfo(sendMomentsDTO, linkupDelayDTO);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO));
}
}
}
@ParamLog("填充消息基本属性")
private void fillMessageBaseInfo(BaseVO baseVO, BaseDelayDTO baseDelayDTO){
baseVO.setRobotProcessType(baseDelayDTO.getRobotProcessType());
baseVO.setMessageGroupId(baseDelayDTO.getMessageGroupId());
baseVO.setIndex(baseDelayDTO.getIndex());
baseVO.setCounts(baseDelayDTO.getCounts());
}
@ParamLog("处理用户提交表单阶段跳转")
public boolean handlePersonalStagePaperJump(String userWxId, String robotWxId, Long paperId, String emailContent){
if (null == paperId){
......@@ -850,7 +862,10 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
return;
}
this.replacePaperUrl(linkups, robotWxId, userWxId, jumpId, ip);
String messageGroupId = UUID.randomUUID().toString();
int count = linkups.size();
for (PersonalStageJumpLinkup jumpLinkup : linkups){
int i = linkups.indexOf(jumpLinkup);
if (jumpLinkup.getToStageStartTime()!=null&&jumpLinkup.getToStageStartTime()>0){
LinkupDelayDTO linkupDelayDTO=new LinkupDelayDTO();
linkupDelayDTO.setPersonalStageJumpLinkupId(jumpLinkup.getId());
......@@ -858,6 +873,10 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
linkupDelayDTO.setWxId(userWxId);
linkupDelayDTO.setIp(ip);
linkupDelayDTO.setPersonalStageUserId(personalStageUserId);
linkupDelayDTO.setRobotProcessType(RobotProcessTypeEnum.PERSONAL_STAGE_JUMP);
linkupDelayDTO.setMessageGroupId(messageGroupId);
linkupDelayDTO.setIndex(i);
linkupDelayDTO.setCounts(count);
DelayQueueDTO delayQueueDTO = DelayQueueDTO.builder().key(userWxId).type(PersonalStageConstant.PERSONALSTAGE_DELAY_LINKUP).msg(linkupDelayDTO).timeout(jumpLinkup.getToStageStartTime()*1000).build();
delayMessageSender.send(delayQueueDTO);
LOGGER.info("增加跳转衔接语延时"+delayQueueDTO.toString());
......@@ -869,7 +888,11 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.PERSONAL_STAGE_JUMP);
sendTextMessageVO.setMessageGroupId(messageGroupId);
sendTextMessageVO.setIndex(i);
sendTextMessageVO.setCounts(count);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
} else if(ReplyTypeEnum.IMAGE.value.equals( jumpLinkup.getReplyType())) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(userWxId);
......@@ -877,7 +900,11 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
sendPicMessageVO.setPicUrl(jumpLinkup.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setRobotProcessType(RobotProcessTypeEnum.PERSONAL_STAGE_JUMP);
sendPicMessageVO.setMessageGroupId(messageGroupId);
sendPicMessageVO.setIndex(i);
sendPicMessageVO.setCounts(count);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
} else if (ReplyTypeEnum.AUDIO.value.equals( jumpLinkup.getReplyType())){
SendMomentsDTO sendMomentsDTO=new SendMomentsDTO();
Map<Long, ResourceDTO> map = resourceConsr.mapByIds(Arrays.asList(jumpLinkup.getResourceId()));
......@@ -892,7 +919,11 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
sendMomentsDTO.setContent(userWxId);
sendMomentsDTO.setLink(resourceDTO.getFileUrl());
sendMomentsDTO.setIp(ip);
WxGroupSDK.sendMessageToPhone(sendMomentsDTO);
sendMomentsDTO.setRobotProcessType(RobotProcessTypeEnum.PERSONAL_STAGE_JUMP);
sendMomentsDTO.setMessageGroupId(messageGroupId);
sendMomentsDTO.setIndex(i);
sendMomentsDTO.setCounts(count);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendMomentsDTO));
}
}
}
......@@ -1013,7 +1044,11 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.PERSONAL_STAGE_DELAY_PROGRESS);
sendTextMessageVO.setMessageGroupId(UUID.randomUUID().toString());
sendTextMessageVO.setIndex(0);
sendTextMessageVO.setCounts(1);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
@Override
......@@ -1081,7 +1116,11 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.PERSONAL_STAGE_DELAY_PAPER);
sendTextMessageVO.setMessageGroupId(UUID.randomUUID().toString());
sendTextMessageVO.setIndex(0);
sendTextMessageVO.setCounts(1);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
JedisClusterUtils.setJson(sendKey,userWxId,30);
}
......
package com.pcloud.book.personalstage.dto;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("基础延时DTO (消息顺序使用)")
public class BaseDelayDTO implements Serializable {
@ApiModelProperty("消息类型")
private RobotProcessTypeEnum robotProcessType;
@ApiModelProperty("消息组id")
private String messageGroupId;
@ApiModelProperty("当前消息下标")
private int index;
@ApiModelProperty("消息总数")
private int counts;
}
......@@ -8,7 +8,7 @@ import java.io.Serializable;
@Data
@ApiModel("衔接语延时dto")
public class LinkupDelayDTO implements Serializable {
public class LinkupDelayDTO extends BaseDelayDTO {
@ApiModelProperty("衔接语id")
private Long personalStageJumpLinkupId;
......@@ -20,5 +20,4 @@ public class LinkupDelayDTO implements Serializable {
private String ip;
@ApiModelProperty("用户阶段记录id")
private Long personalStageUserId;
}
package com.pcloud.book.push.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.app.AppConsr;
......@@ -367,7 +368,8 @@ public class PushBizImpl implements PushBiz {
sendTextMessageVO.setContent(pushItem.getTextContent());
sendTextMessageVO.setPushGroupRecordId(pushGroupRecordId);
sendTextMessageVO.setIp(findIp(groupId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
if (ItemTypeEnum.LINK.value.equals(itemType)) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
......@@ -385,7 +387,8 @@ public class PushBizImpl implements PushBiz {
sendArticleMessageVO.setTitle(pushItem.getLinkTitle());
sendArticleMessageVO.setPushGroupRecordId(pushGroupRecordId);
sendArticleMessageVO.setIp(findIp(groupId));
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
if (ItemTypeEnum.APP.value.equals(itemType)) {
//通过群id获取对应基本信息
......@@ -411,7 +414,8 @@ public class PushBizImpl implements PushBiz {
sendArticleMessageVO.setTitle(appDto.getTitle());
sendArticleMessageVO.setPushGroupRecordId(pushGroupRecordId);
sendArticleMessageVO.setIp(findIp(groupId));
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
//新增群发应用作品触发记录
addPushAppTouchRecord(pushItem, groupId, classifyDTO.getId(), classifyDTO.getBookGroupId());
}
......@@ -433,7 +437,8 @@ public class PushBizImpl implements PushBiz {
sendArticleMessageVO.setTitle(productDto.getProductName());
sendArticleMessageVO.setPushGroupRecordId(pushGroupRecordId);
sendArticleMessageVO.setIp(findIp(groupId));
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
//新增群发应用作品触发记录
addPushAppTouchRecord(pushItem, groupId, classifyDTO.getId(), classifyDTO.getBookGroupId());
}
......@@ -446,7 +451,8 @@ public class PushBizImpl implements PushBiz {
sendPicMessageVO.setPicUrl(pushItem.getImageUrl());
sendPicMessageVO.setPushGroupRecordId(pushGroupRecordId);
sendPicMessageVO.setIp(findIp(groupId));
WxGroupSDK.sendPicMessage(sendPicMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
}
}
......@@ -1028,7 +1034,8 @@ public class PushBizImpl implements PushBiz {
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(findIp(weixinGroupId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
LOGGER.info("发送早晚报" + sendTextMessageVO.toString());
}
......
package com.pcloud.book.push.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.content.ResourceConsr;
......@@ -34,6 +35,7 @@ import com.pcloud.book.push.entity.SelfPushItem;
import com.pcloud.book.push.entity.SelfPushUser;
import com.pcloud.book.push.enums.ItemTypeEnum;
import com.pcloud.book.push.enums.PushStatusEnum;
import com.pcloud.book.skill.dto.AppOrProductReplyDTO;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog;
......@@ -303,8 +305,9 @@ public class SelfPushBizImpl implements SelfPushBiz {
sendUserIds.addAll(userIdList);
ThreadPoolUtils.SEND_MESSAGE_THREAD_POOL.execute(() -> {
for (String userId : sendUserIds) {
String uuid= UUID.randomUUID().toString();
for (SelfPushItem pushItem : itemList) {
sendSelfMsg(userId, altId, pushItem);
sendSelfMsg(userId, altId, pushItem, uuid, itemList.indexOf(pushItem),itemList.size());
}
}
selfPushItemDao.updatePushStatusByPushId(PushStatusEnum.SUCCESS.value, pushId);
......@@ -324,8 +327,9 @@ public class SelfPushBizImpl implements SelfPushBiz {
//查好友对应的小号
SelfRobotBookGroupDTO bookGroupDTO = bookGroupCipherUserDao.getSelfRobotBookGroupInfoByUser(userId, bookGroupId);
String altId = bookGroupDTO.getWxId();
String uuid= UUID.randomUUID().toString();
for (SelfPushItem pushItem : itemList) {
sendSelfMsg(userId, altId, pushItem);
sendSelfMsg(userId, altId, pushItem, uuid, itemList.indexOf(pushItem), itemList.size());
}
}
selfPushItemDao.updatePushStatusByPushId(PushStatusEnum.SUCCESS.value, pushId);
......@@ -376,13 +380,14 @@ public class SelfPushBizImpl implements SelfPushBiz {
* @param altId
* @param selfPushItem
*/
public void sendSelfMsg(String userWxId, String altId, SelfPushItem selfPushItem) {
public void sendSelfMsg(String userWxId, String altId, SelfPushItem selfPushItem, String uuid, Integer index, Integer counts) {
if (StringUtil.isEmpty(userWxId) || StringUtil.isEmpty(altId)){
return;
}
if(pcloudRobotBiz.getUserTdState(altId, userWxId) == 1) {
return;
}
RobotProcessTypeEnum robotProcessType = RobotProcessTypeEnum.SELF_PUSH;
Integer code = SendMessageTypeEnum.SELF.getCode();
Integer itemType = selfPushItem.getItemType();
if (ItemTypeEnum.TEXT.value.equals(itemType)) {
......@@ -393,7 +398,11 @@ public class SelfPushBizImpl implements SelfPushBiz {
sendTextMessageVO.setAltId(altId);
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(getIpByRobot(altId));
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setMessageGroupId(uuid);
sendTextMessageVO.setRobotProcessType(robotProcessType);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
return;
}
if (ItemTypeEnum.LINK.value.equals(itemType)) {
......@@ -407,19 +416,35 @@ public class SelfPushBizImpl implements SelfPushBiz {
sendArticleMessageVO.setPicUrl(selfPushItem.getLinkImageUrl());
sendArticleMessageVO.setTitle(selfPushItem.getLinkTitle());
sendArticleMessageVO.setIp(getIpByRobot(altId));
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setMessageGroupId(uuid);
sendArticleMessageVO.setRobotProcessType(robotProcessType);
sendArticleMessageVO.setIndex(index);
sendArticleMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
return;
}
if (ItemTypeEnum.APP.value.equals(itemType)) {
AppOrProductReplyDTO appOrProductReplyDTO = new AppOrProductReplyDTO();
appOrProductReplyDTO.setIp(getIpByRobot(altId));
appOrProductReplyDTO.setLinkUrl(selfPushItem.getLinkUrl());
appOrProductReplyDTO.setRobotWxId(altId);
appOrProductReplyDTO.setUserWxId(userWxId);
appOrProductReplyDTO.setSendMessageType(code);
appOrProductReplyDTO.setRobotProcessTypeEnum(robotProcessType);
appOrProductReplyDTO.setCounts(counts);
appOrProductReplyDTO.setIndex(index);
appOrProductReplyDTO.setMessageGroupId(uuid);
//发送应用
if(selfPushItem.getAppId() != null) {
pcloudRobotSet.sendAppOrProductReply(AppAndProductTypeEnum.APP.value, selfPushItem.getAppId(),
selfPushItem.getLinkUrl(), altId,userWxId, getIpByRobot(altId), code);
appOrProductReplyDTO.setServeType(AppAndProductTypeEnum.APP.value);
appOrProductReplyDTO.setServeId(selfPushItem.getAppId());
pcloudRobotSet.sendAppOrProductReply(appOrProductReplyDTO);
}
//发送作品
if(selfPushItem.getProductId() != null) {
pcloudRobotSet.sendAppOrProductReply(AppAndProductTypeEnum.PRODUCT.value, selfPushItem.getProductId(),
selfPushItem.getLinkUrl(), altId, userWxId, getIpByRobot(altId), code);
appOrProductReplyDTO.setServeType(AppAndProductTypeEnum.PRODUCT.value);
appOrProductReplyDTO.setServeId(selfPushItem.getProductId());
pcloudRobotSet.sendAppOrProductReply(appOrProductReplyDTO);
}
return;//应用类型参与群发C1002391
}
......@@ -430,7 +455,11 @@ public class SelfPushBizImpl implements SelfPushBiz {
sendPicMessageVO.setWxGroupId(userWxId);
sendPicMessageVO.setPicUrl(selfPushItem.getImageUrl());
sendPicMessageVO.setIp(getIpByRobot(altId));
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setMessageGroupId(uuid);
sendPicMessageVO.setRobotProcessType(robotProcessType);
sendPicMessageVO.setIndex(index);
sendPicMessageVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
return;
}
if (ItemTypeEnum.RESOURCE.value.equals(itemType)) {
......@@ -451,7 +480,11 @@ public class SelfPushBizImpl implements SelfPushBiz {
sendFileVO.setIp(getIpByRobot(altId));
sendFileVO.setAltId(altId);
sendFileVO.setWxId(userWxId);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setMessageGroupId(uuid);
sendFileVO.setRobotProcessType(robotProcessType);
sendFileVO.setIndex(index);
sendFileVO.setCounts(counts);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
}
......
package com.pcloud.book.reading.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.book.advertising.dao.AdvertisingBrandDao;
import com.pcloud.book.advertising.dto.AdvertisingBrandDTO;
import com.pcloud.book.advertising.entity.AdvertisingBrand;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.consumer.convert.ConvertConsr;
import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
......@@ -28,6 +30,7 @@ import com.pcloud.book.reading.dto.GroupingUserDTO;
import com.pcloud.book.reading.dto.ReadingActivityAdditionParamDTO;
import com.pcloud.book.reading.dto.ReadingActivityBaseParamDTO;
import com.pcloud.book.reading.dto.ReadingActivityDTO;
import com.pcloud.book.reading.dto.SendWxMsg4ReadingDTO;
import com.pcloud.book.reading.dto.UserBaseDTO;
import com.pcloud.book.reading.entity.*;
import com.pcloud.book.reading.enums.ContentTypeEnum;
......@@ -162,7 +165,8 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
sendText.setAltId(vo.getAltId());
sendText.setWxGroupId(vo.getWxId());
sendText.setIp(getIP(vo.getAltId()));
WxGroupSDK.sendTextMessage(sendText);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendText));
return;
}
// 转账金额不正确
......@@ -171,7 +175,8 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
sendText.setAltId(vo.getAltId());
sendText.setWxGroupId(vo.getWxId());
sendText.setIp(getIP(vo.getAltId()));
WxGroupSDK.sendTextMessage(sendText);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendText));
return;
}
if (Objects.isNull(byTransferId)) {
......@@ -209,9 +214,24 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
byTransferId.setStatus(BookBusinessConstants.CollectionStatus.COLLECTION_SUCCESSFUL.getCode());
this.bookGroupCollectionDao.update(byTransferId);
}
String messageGroupId = UUID.randomUUID().toString();
//发群规
this.sendWxMsg(SendMessageTypeEnum.SELF.getCode(),byTheme.getRuleType(),vo.getAltId(),vo.getWxId(),byTheme.getRule(),byTheme.getRuleResourceId(),null);
SendWxMsg4ReadingDTO sendWxMsg4ReadingDTO = new SendWxMsg4ReadingDTO();
sendWxMsg4ReadingDTO.setCounts(1);
sendWxMsg4ReadingDTO.setIndex(0);
sendWxMsg4ReadingDTO.setMessageGroupId(messageGroupId);
sendWxMsg4ReadingDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.READING_ACTIVITY);
sendWxMsg4ReadingDTO.setSendMessageType(SendMessageTypeEnum.SELF.getCode());
sendWxMsg4ReadingDTO.setRuleType(byTheme.getRuleType());
sendWxMsg4ReadingDTO.setRobotId(vo.getAltId());
sendWxMsg4ReadingDTO.setWxUserId(vo.getWxId());
sendWxMsg4ReadingDTO.setContent(byTheme.getRule());
sendWxMsg4ReadingDTO.setResourceId( byTheme.getRuleResourceId());
sendWxMsg4ReadingDTO.setWxGroupId(null);
this.sendWxMsg(sendWxMsg4ReadingDTO);
// 发送邀请进群链接
String messageGroupId4Link = UUID.randomUUID().toString();
if (JoinTypeEnum.LINK.value.equals(byTheme.getJoinType())) {
List<ReadingGroup> groupList = readingGroupDao.getByActivityId(byTheme.getId());
if (CollectionUtils.isEmpty(groupList)) {
......@@ -233,6 +253,11 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
inviteVO.setWxId(vo.getWxId());
inviteVO.setIp(getIP(vo.getAltId()));
WxGroupSDK.sendGroupInvite(inviteVO);
// inviteVO.setMessageGroupId(messageGroupId4Link);
// inviteVO.setCounts(1);
// inviteVO.setIndex(0);
// inviteVO.setRobotProcessType(RobotProcessTypeEnum.READING_ACTIVITY);
// wechatGroupConsr.sendMessage(JSON.toJSONString(inviteVO));
}
// 发送群二维码图片
if (JoinTypeEnum.QRCODE.value.equals(byTheme.getJoinType())) {
......@@ -241,7 +266,11 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
picMessageVO.setWxGroupId(vo.getWxId());
picMessageVO.setPicUrl(byTheme.getJoinQrcodePic());
picMessageVO.setIp(getIP(vo.getAltId()));
WxGroupSDK.sendPicMessage(picMessageVO);
picMessageVO.setCounts(1);
picMessageVO.setIndex(0);
picMessageVO.setMessageGroupId(messageGroupId);
picMessageVO.setRobotProcessType(RobotProcessTypeEnum.READING_ACTIVITY);
wechatGroupConsr.sendMessage(JSON.toJSONString(picMessageVO));
}
}
......@@ -613,27 +642,79 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
String altId = readingUser.getAltId();
String wxUserId = readingUser.getWxUserId();
//邀请语
String messageGroupId4invite = UUID.randomUUID().toString();
Integer counts4invite = inviteList.size();
Integer index4invite = 0;
for (ReadingInvite invite : inviteList) {
sendWxMsg(SendMessageTypeEnum.SELF.getCode(), invite.getInviteType(), altId, wxUserId, invite.getInviteContent(), invite.getInviteResourceId(), null);
SendWxMsg4ReadingDTO sendWxMsg4ReadingDTO = new SendWxMsg4ReadingDTO();
sendWxMsg4ReadingDTO.setCounts(counts4invite);
sendWxMsg4ReadingDTO.setIndex(index4invite);
sendWxMsg4ReadingDTO.setMessageGroupId(messageGroupId4invite);
sendWxMsg4ReadingDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.READING_ACTIVITY);
sendWxMsg4ReadingDTO.setSendMessageType(SendMessageTypeEnum.SELF.getCode());
sendWxMsg4ReadingDTO.setRuleType(invite.getInviteType());
sendWxMsg4ReadingDTO.setRobotId(altId);
sendWxMsg4ReadingDTO.setWxUserId(wxUserId);
sendWxMsg4ReadingDTO.setContent(invite.getInviteContent());
sendWxMsg4ReadingDTO.setResourceId(invite.getInviteResourceId());
sendWxMsg4ReadingDTO.setWxGroupId(null);
sendWxMsg(sendWxMsg4ReadingDTO);
index4invite++;
}
//无进群条件
if (JoinConditionEnum.NO.value.equals(readingActivity.getJoinCondition())){
//发群规
this.sendWxMsg(SendMessageTypeEnum.SELF.getCode(),readingActivity.getRuleType(), altId, wxUserId,readingActivity.getRule(),readingActivity.getRuleResourceId(),null);
SendWxMsg4ReadingDTO sendWxMsg4ReadingDTO = new SendWxMsg4ReadingDTO();
sendWxMsg4ReadingDTO.setCounts(1);
sendWxMsg4ReadingDTO.setIndex(0);
sendWxMsg4ReadingDTO.setMessageGroupId(UUID.randomUUID().toString());
sendWxMsg4ReadingDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.READING_ACTIVITY);
sendWxMsg4ReadingDTO.setSendMessageType(SendMessageTypeEnum.SELF.getCode());
sendWxMsg4ReadingDTO.setRuleType(readingActivity.getRuleType());
sendWxMsg4ReadingDTO.setRobotId(altId);
sendWxMsg4ReadingDTO.setWxUserId(wxUserId);
sendWxMsg4ReadingDTO.setContent(readingActivity.getRule());
sendWxMsg4ReadingDTO.setResourceId(readingActivity.getRuleResourceId());
sendWxMsg4ReadingDTO.setWxGroupId(null);
this.sendWxMsg(sendWxMsg4ReadingDTO);
//发群链接/群二维码
sendGroupInviteToUser(altId, wxUserId, readingActivity);
}
//关键词入群
else if (JoinConditionEnum.KEYWORD.value.equals(readingActivity.getJoinCondition())){
String content = "请回复:“" + readingActivity.getJoinKeyword() + "”,我会将入群链接发送给您。";
this.sendWxMsg(SendMessageTypeEnum.SELF.getCode(), ContentTypeEnum.TEXT.value, altId, wxUserId, content,null,null);
SendWxMsg4ReadingDTO sendWxMsg4ReadingDTO = new SendWxMsg4ReadingDTO();
sendWxMsg4ReadingDTO.setCounts(1);
sendWxMsg4ReadingDTO.setIndex(0);
sendWxMsg4ReadingDTO.setMessageGroupId(UUID.randomUUID().toString());
sendWxMsg4ReadingDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.READING_ACTIVITY);
sendWxMsg4ReadingDTO.setSendMessageType(SendMessageTypeEnum.SELF.getCode());
sendWxMsg4ReadingDTO.setRuleType(ContentTypeEnum.TEXT.value);
sendWxMsg4ReadingDTO.setRobotId(altId);
sendWxMsg4ReadingDTO.setWxUserId(wxUserId);
sendWxMsg4ReadingDTO.setContent(content);
sendWxMsg4ReadingDTO.setResourceId(null);
sendWxMsg4ReadingDTO.setWxGroupId(null);
this.sendWxMsg(sendWxMsg4ReadingDTO);
}
//转账入群
else if (JoinConditionEnum.TRANSFER.value.equals(readingActivity.getJoinCondition())){
String content = "活动名称:" + readingActivity.getTheme() + "\n活动费用:¥" + readingActivity.getJoinAmount()+
"\n若想参加本次活动,可直接转账给我,转账说明请填写活动名称。当转账金额与活动名称都符合时,我才会接受转账," +
"接受后我将发送入群链接(若人数较多,可能会有延迟)。";
this.sendWxMsg(SendMessageTypeEnum.SELF.getCode(), ContentTypeEnum.TEXT.value, altId, wxUserId, content,null,null);
SendWxMsg4ReadingDTO sendWxMsg4ReadingDTO = new SendWxMsg4ReadingDTO();
sendWxMsg4ReadingDTO.setCounts(1);
sendWxMsg4ReadingDTO.setIndex(0);
sendWxMsg4ReadingDTO.setMessageGroupId(UUID.randomUUID().toString());
sendWxMsg4ReadingDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.READING_ACTIVITY);
sendWxMsg4ReadingDTO.setSendMessageType(SendMessageTypeEnum.SELF.getCode());
sendWxMsg4ReadingDTO.setRuleType(ContentTypeEnum.TEXT.value);
sendWxMsg4ReadingDTO.setRobotId(altId);
sendWxMsg4ReadingDTO.setWxUserId(wxUserId);
sendWxMsg4ReadingDTO.setContent(content);
sendWxMsg4ReadingDTO.setResourceId(null);
sendWxMsg4ReadingDTO.setWxGroupId(null);
this.sendWxMsg(sendWxMsg4ReadingDTO);
}
try {
Thread.sleep(3000);
......@@ -674,7 +755,19 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
String altId = readingUser.getAltId();
String wxUserId = readingUser.getWxUserId();
if (!StringUtil.isEmpty(readingActivity.getAwardText())) {
sendWxMsg(SendMessageTypeEnum.SELF.getCode(), ContentTypeEnum.TEXT.value, altId, wxUserId, readingActivity.getAwardText(), null, null);
SendWxMsg4ReadingDTO sendWxMsg4ReadingDTO = new SendWxMsg4ReadingDTO();
sendWxMsg4ReadingDTO.setCounts(1);
sendWxMsg4ReadingDTO.setIndex(0);
sendWxMsg4ReadingDTO.setMessageGroupId(UUID.randomUUID().toString());
sendWxMsg4ReadingDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.READING_ACTIVITY);
sendWxMsg4ReadingDTO.setSendMessageType(SendMessageTypeEnum.SELF.getCode());
sendWxMsg4ReadingDTO.setRuleType( ContentTypeEnum.TEXT.value);
sendWxMsg4ReadingDTO.setRobotId(altId);
sendWxMsg4ReadingDTO.setWxUserId(wxUserId);
sendWxMsg4ReadingDTO.setContent(readingActivity.getAwardText());
sendWxMsg4ReadingDTO.setResourceId(null);
sendWxMsg4ReadingDTO.setWxGroupId(null);
sendWxMsg(sendWxMsg4ReadingDTO);
}
if (!StringUtil.isEmpty(readingActivity.getAwardPic())) {
sendSelfPic(altId, wxUserId, readingActivity.getAwardPic());
......@@ -697,34 +790,50 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
if (StringUtil.isEmpty(altId)) {
continue;
}
sendWxMsg(SendMessageTypeEnum.GROUP.getCode(), contentType, altId, null, content, resourceId, wxGroupId);
SendWxMsg4ReadingDTO sendWxMsg4ReadingDTO = new SendWxMsg4ReadingDTO();
sendWxMsg4ReadingDTO.setCounts(1);
sendWxMsg4ReadingDTO.setIndex(0);
sendWxMsg4ReadingDTO.setMessageGroupId(UUID.randomUUID().toString());
sendWxMsg4ReadingDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.READING_ACTIVITY);
sendWxMsg4ReadingDTO.setSendMessageType(SendMessageTypeEnum.GROUP.getCode());
sendWxMsg4ReadingDTO.setRuleType( contentType);
sendWxMsg4ReadingDTO.setRobotId(altId);
sendWxMsg4ReadingDTO.setWxUserId(null);
sendWxMsg4ReadingDTO.setContent(content);
sendWxMsg4ReadingDTO.setResourceId(resourceId);
sendWxMsg4ReadingDTO.setWxGroupId(wxGroupId);
this.sendWxMsg(sendWxMsg4ReadingDTO);
}
});
}
@ParamLog("发送文本或文件")
public void sendWxMsg(Integer code, Integer type, String altId, String userWxId, String content, String resourceId, String wxGroupId) {
String ip = getIP(altId);
if (ContentTypeEnum.TEXT.value.equals(type)) {
public void sendWxMsg(SendWxMsg4ReadingDTO readingDTO) {
String ip = getIP(readingDTO.getRobotId());
if (ContentTypeEnum.TEXT.value.equals(readingDTO.getRuleType())) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(content);
sendTextMessageVO.setAltId(altId);
if (SendMessageTypeEnum.SELF.getCode().equals(code)) {
sendTextMessageVO.setWxGroupId(userWxId);
} else if (SendMessageTypeEnum.GROUP.getCode().equals(code)) {
sendTextMessageVO.setWxGroupId(wxGroupId);
sendTextMessageVO.setContent(readingDTO.getContent());
sendTextMessageVO.setAltId(readingDTO.getRobotId());
if (SendMessageTypeEnum.SELF.getCode().equals(readingDTO.getSendMessageType())) {
sendTextMessageVO.setWxGroupId(readingDTO.getWxUserId());
} else if (SendMessageTypeEnum.GROUP.getCode().equals(readingDTO.getSendMessageType())) {
sendTextMessageVO.setWxGroupId(readingDTO.getWxGroupId());
}
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setCode(readingDTO.getSendMessageType());
sendTextMessageVO.setCounts(readingDTO.getCounts());
sendTextMessageVO.setIndex(readingDTO.getIndex());
sendTextMessageVO.setMessageGroupId(readingDTO.getMessageGroupId());
sendTextMessageVO.setRobotProcessType(readingDTO.getRobotProcessTypeEnum());
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
log.info("发送文本 sendTextMessageVO:{}", sendTextMessageVO);
return;
}
if (ContentTypeEnum.FILE.value.equals(type)) {
if (ContentTypeEnum.FILE.value.equals(readingDTO.getRuleType())) {
SendFileVO sendFileVO = new SendFileVO();
FileUploadInfo fileUploadInfo = convertConsr.getByFileId(resourceId);
FileUploadInfo fileUploadInfo = convertConsr.getByFileId(readingDTO.getResourceId());
if (null == fileUploadInfo) {
log.error("文件路径为空,resourceId"+resourceId);
log.error("文件路径为空,resourceId"+readingDTO.getResourceId());
return;
}
String fileName = fileUploadInfo.getName();
......@@ -736,15 +845,19 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
sendFileVO.setFileName(fileName);
sendFileVO.setFileUrl(fileUploadInfo.getUrl());
sendFileVO.setIp(ip);
sendFileVO.setAltId(altId);
if (SendMessageTypeEnum.SELF.getCode().equals(code)) {
sendFileVO.setWxId(userWxId);
} else if (SendMessageTypeEnum.GROUP.getCode().equals(code)) {
sendFileVO.setWxGroupId(wxGroupId);
sendFileVO.setWxId(wxGroupId);
}
sendFileVO.setCode(code);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setAltId(readingDTO.getRobotId());
if (SendMessageTypeEnum.SELF.getCode().equals(readingDTO.getSendMessageType())) {
sendFileVO.setWxId(readingDTO.getWxUserId());
} else if (SendMessageTypeEnum.GROUP.getCode().equals(readingDTO.getSendMessageType())) {
sendFileVO.setWxGroupId(readingDTO.getWxGroupId());
sendFileVO.setWxId(readingDTO.getWxGroupId());
}
sendFileVO.setCode(readingDTO.getSendMessageType());
sendFileVO.setCounts(readingDTO.getCounts());
sendFileVO.setIndex(readingDTO.getIndex());
sendFileVO.setMessageGroupId(readingDTO.getMessageGroupId());
sendFileVO.setRobotProcessType(readingDTO.getRobotProcessTypeEnum());
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
log.info("发送文件 sendFileVO:{}", sendFileVO);
return;
}
......@@ -775,7 +888,19 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
return;
}
//发群规
this.sendWxMsg(SendMessageTypeEnum.SELF.getCode(),readingActivity.getRuleType(),wxId,wxUserId,readingActivity.getRule(),readingActivity.getRuleResourceId(),null);
SendWxMsg4ReadingDTO sendWxMsg4ReadingDTO = new SendWxMsg4ReadingDTO();
sendWxMsg4ReadingDTO.setCounts(1);
sendWxMsg4ReadingDTO.setIndex(0);
sendWxMsg4ReadingDTO.setMessageGroupId(UUID.randomUUID().toString());
sendWxMsg4ReadingDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.READING_ACTIVITY);
sendWxMsg4ReadingDTO.setSendMessageType(SendMessageTypeEnum.SELF.getCode());
sendWxMsg4ReadingDTO.setRuleType(readingActivity.getRuleType());
sendWxMsg4ReadingDTO.setRobotId(wxId);
sendWxMsg4ReadingDTO.setWxUserId(wxUserId);
sendWxMsg4ReadingDTO.setContent(readingActivity.getRule());
sendWxMsg4ReadingDTO.setResourceId(readingActivity.getRuleResourceId());
sendWxMsg4ReadingDTO.setWxGroupId(null);
this.sendWxMsg(sendWxMsg4ReadingDTO);
//入群链接/群二维码
this.sendGroupInviteToUser(wxId, wxUserId, readingActivity);
}
......@@ -805,6 +930,11 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
sendGroupInviteVO.setWxGroupId(min);
sendGroupInviteVO.setIp(getIP(altId));
WxGroupSDK.sendGroupInvite(sendGroupInviteVO);
// sendGroupInviteVO.setCounts(1);
// sendGroupInviteVO.setIndex(0);
// sendGroupInviteVO.setMessageGroupId(UUID.randomUUID().toString());
// sendGroupInviteVO.setRobotProcessType(RobotProcessTypeEnum.READING_ACTIVITY);
// wechatGroupConsr.sendMessage(sendGroupInviteVO);
log.info("发送进群链接 sendGroupInviteVO:{}", sendGroupInviteVO);
return;
}
......@@ -822,7 +952,11 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
sendPicMessageVO.setWxGroupId(userWxId);
sendPicMessageVO.setPicUrl(pic);
sendPicMessageVO.setIp(getIP(altId));
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setCounts(1);
sendPicMessageVO.setIndex(0);
sendPicMessageVO.setMessageGroupId(UUID.randomUUID().toString());
sendPicMessageVO.setRobotProcessType(RobotProcessTypeEnum.READING_ACTIVITY);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
log.info("发送图片sendPicMessage:"+sendPicMessageVO);
}
......@@ -1147,7 +1281,11 @@ public class ReadingActivityBizImpl implements ReadingActivityBiz{
sendTextMessageVO.setAltId(addWXGroupDTO.getWxId());
sendTextMessageVO.setWxGroupId(weixinGroupId);
sendTextMessageVO.setIp(addWXGroupDTO.getIp());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setCounts(1);
sendTextMessageVO.setIndex(0);
sendTextMessageVO.setMessageGroupId(UUID.randomUUID().toString());
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.READING_ACTIVITY);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
}
}
......
package com.pcloud.book.reading.dto;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class SendWxMsg4ReadingDTO {
private Integer sendMessageType;
@ApiModelProperty("群规类型(1文本2文件)")
private Integer ruleType;
private String robotId;
private String wxUserId;
@ApiModelProperty("群规")
private String content;
private String resourceId;
private String wxGroupId;
private Integer counts;
private Integer index;
private String messageGroupId;
private RobotProcessTypeEnum robotProcessTypeEnum;
}
package com.pcloud.book.riddle.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.BookGroupClassifyBiz;
......@@ -203,7 +204,8 @@ public class RiddleRecordBizImpl implements RiddleRecordBiz {
sendTextMessageVO.setContent(content);
sendTextMessageVO.setIp(ip);
logger.info("发送文本消息," + sendTextMessageVO);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
@ParamLog("发送下一题")
......
package com.pcloud.book.skill.biz.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.label.LabelConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
......@@ -21,10 +23,12 @@ import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.string.StringUtilParent;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendGroupInviteVO;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -32,6 +36,7 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
import javax.annotation.Resource;
......@@ -51,6 +56,8 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
private ReadingActivityBiz readingActivityBiz;
@Resource
private LabelConsr labelConsr;
@Autowired
private WechatGroupConsr wechatGroupConsr;
@ParamLog("保存共读活动")
@Override
......@@ -101,6 +108,9 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
log.error("[processGroup] error 共读不存在");
return;
}
Integer count= 1;
String messageGroup = UUID.randomUUID().toString();
Integer index = 0;
if (0 == byId.getJoinType()) {
GroupQrcodeBaseInfoVO groupQrcode = groupQrcodeBiz.getBaseById(byId.getBookGroupQrcodeId());
if (Objects.isNull(groupQrcode)) {
......@@ -112,7 +122,11 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
vo.setAltId(robotWxId);
vo.setIp(readingActivityBiz.getIP(robotWxId));
vo.setWxGroupId(groupQrcode.getWeixinGroupId());
WxGroupSDK.sendGroupInvite(vo);
vo.setCounts(count);
vo.setMessageGroupId(messageGroup);
vo.setIndex(index);
vo.setRobotProcessType(RobotProcessTypeEnum.SKILL_REPLY);
wechatGroupConsr.sendMessage(JSON.toJSONString(vo));
log.info("[processGroup] sendGroupInvite:{}", vo);
}
if (1 == byId.getJoinType()) {
......@@ -121,7 +135,11 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
vo.setWxGroupId(wxId);
vo.setAltId(robotWxId);
vo.setIp(readingActivityBiz.getIP(robotWxId));
WxGroupSDK.sendPicMessage(vo);
vo.setCounts(count);
vo.setMessageGroupId(messageGroup);
vo.setIndex(index);
vo.setRobotProcessType(RobotProcessTypeEnum.SKILL_REPLY);
wechatGroupConsr.sendMessage(JSON.toJSONString(vo));
}
}
......
package com.pcloud.book.skill.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.app.AppConsr;
......@@ -19,6 +20,7 @@ import com.pcloud.book.skill.dao.PcloudGroupActivityDao;
import com.pcloud.book.skill.dao.PcloudResourceDao;
import com.pcloud.book.skill.dao.PcloudSkillDao;
import com.pcloud.book.skill.dao.PcloudSubReplyDao;
import com.pcloud.book.skill.dto.AppOrProductReplyDTO;
import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.book.skill.entity.PcloudResource;
import com.pcloud.book.skill.entity.PcloudSkill;
......@@ -442,6 +444,9 @@ public class PcloudSkillBizImpl implements PcloudSkillBiz {
}
private void sendSubReplyMessage(List<PcloudSubReply> subReplyList, String robotWxId, String userWxId) {
this.fillRelies(subReplyList);
Integer count = subReplyList.size();
Integer index = 0;
String messageGroupId = UUID.randomUUID().toString();
for(PcloudSubReply reply : subReplyList) {
Integer type = reply.getType();
GroupRobotDTO groupRobotDTO = wechatGroupConsr.getGroupRobotByWxId(robotWxId);
......@@ -453,7 +458,11 @@ public class PcloudSkillBizImpl implements PcloudSkillBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setCounts(count);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setMessageGroupId(messageGroupId);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.SKILL_REPLY);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
} else if(WelcomeReplyTypeEnum.IMAGE.value.equals(type)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(userWxId);
......@@ -461,7 +470,11 @@ public class PcloudSkillBizImpl implements PcloudSkillBiz {
sendPicMessageVO.setPicUrl(reply.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setCounts(count);
sendPicMessageVO.setIndex(index);
sendPicMessageVO.setMessageGroupId(messageGroupId);
sendPicMessageVO.setRobotProcessType(RobotProcessTypeEnum.SKILL_REPLY);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
} else if(WelcomeReplyTypeEnum.RESOURCE.value.equals(type)) {
SendFileVO sendFileVO = new SendFileVO();
sendFileVO.setFileUrl(reply.getResourceUrl());
......@@ -472,11 +485,27 @@ public class PcloudSkillBizImpl implements PcloudSkillBiz {
sendFileVO.setAltId(robotWxId);
sendFileVO.setWxId(userWxId);
sendFileVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setCounts(count);
sendFileVO.setIndex(index);
sendFileVO.setMessageGroupId(messageGroupId);
sendFileVO.setRobotProcessType(RobotProcessTypeEnum.SKILL_REPLY);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
} else if(ReplyTypeEnum.APP.value.equals(type)) {
pcloudRobotSet.sendAppOrProductReply(reply.getServeType(), reply.getServeId(),
reply.getLinkUrl(), robotWxId,userWxId, ip, SendMessageTypeEnum.SELF.getCode());
}
AppOrProductReplyDTO appOrProductReplyDTO = new AppOrProductReplyDTO();
appOrProductReplyDTO.setCounts(count);
appOrProductReplyDTO.setIndex(index);
appOrProductReplyDTO.setIp(ip);
appOrProductReplyDTO.setLinkUrl(reply.getLinkUrl());
appOrProductReplyDTO.setMessageGroupId(messageGroupId);
appOrProductReplyDTO.setRobotWxId(robotWxId);
appOrProductReplyDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.SKILL_REPLY);
appOrProductReplyDTO.setServeId(reply.getServeId());
appOrProductReplyDTO.setServeType(reply.getServeType());
appOrProductReplyDTO.setUserWxId(userWxId);
appOrProductReplyDTO.setSendMessageType(SendMessageTypeEnum.SELF.getCode());
pcloudRobotSet.sendAppOrProductReply(appOrProductReplyDTO);
}
index++;
}
}
......
package com.pcloud.book.skill.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
......@@ -80,11 +81,15 @@ public class PcloudSubRemindBizImpl implements PcloudSubRemindBiz {
if(ListUtils.isEmpty(replyMsgList)){
continue;
}
Integer count= 1;
String messageGroup = UUID.randomUUID().toString();
Integer index = 0;
for (PcloudSubReply pcloudSubReply : replyMsgList) {
Date sendTime = DateUtils.addMinute(createTime, pcloudSubReply.getRemindIntervalTime());
if(format.format(sendTime).equals(format.format(compareTime))){
this.sendSubReplyMessage(Arrays.asList(pcloudSubReply), pcloudSubRemind.getRobotWxId(), pcloudSubRemind.getWxUserId(),pcloudSubRemind.getRelSkillId(),pcloudSubRemind.getSkillType());
this.sendSubReplyMessage(Arrays.asList(pcloudSubReply), pcloudSubRemind.getRobotWxId(), pcloudSubRemind.getWxUserId(),pcloudSubRemind.getRelSkillId(),pcloudSubRemind.getSkillType(), messageGroup, count, index);
}
// index++;
}
// System.out.println(22);
}
......@@ -147,7 +152,7 @@ public class PcloudSubRemindBizImpl implements PcloudSubRemindBiz {
}
}
private void sendSubReplyMessage(List<PcloudSubReply> subReplyList, String robotWxId, String userWxId, Integer relSkillId, Integer skillType) {
private void sendSubReplyMessage(List<PcloudSubReply> subReplyList, String robotWxId, String userWxId, Integer relSkillId, Integer skillType,String messageGroupId, Integer count, Integer index) {
this.fillRelies(subReplyList);
for (PcloudSubReply reply : subReplyList) {
Integer type = reply.getType();
......@@ -160,7 +165,11 @@ public class PcloudSubRemindBizImpl implements PcloudSubRemindBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setCounts(count);
sendTextMessageVO.setMessageGroupId(messageGroupId);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.PCLOUD_SUB_REMIND);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
} else if (WelcomeReplyTypeEnum.IMAGE.value.equals(type)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(userWxId);
......@@ -168,7 +177,11 @@ public class PcloudSubRemindBizImpl implements PcloudSubRemindBiz {
sendPicMessageVO.setPicUrl(reply.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setCounts(count);
sendPicMessageVO.setMessageGroupId(messageGroupId);
sendPicMessageVO.setIndex(index);
sendPicMessageVO.setRobotProcessType(RobotProcessTypeEnum.PCLOUD_SUB_REMIND);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
} else if (WelcomeReplyTypeEnum.RESOURCE.value.equals(type)) {
SendFileVO sendFileVO = new SendFileVO();
sendFileVO.setFileUrl(reply.getResourceUrl());
......@@ -179,7 +192,11 @@ public class PcloudSubRemindBizImpl implements PcloudSubRemindBiz {
sendFileVO.setAltId(robotWxId);
sendFileVO.setWxId(userWxId);
sendFileVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setCounts(count);
sendFileVO.setMessageGroupId(messageGroupId);
sendFileVO.setIndex(index);
sendFileVO.setRobotProcessType(RobotProcessTypeEnum.PCLOUD_SUB_REMIND);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
} else if (ReplyTypeEnum.APP.value.equals(type)) {
Long serveId = reply.getServeId();
if (AppAndProductTypeEnum.APP.value.equals(reply.getServeType())) {
......@@ -198,7 +215,11 @@ public class PcloudSubRemindBizImpl implements PcloudSubRemindBiz {
sendArticleMessageVO.setPicUrl(reply.getPicUrl());
sendArticleMessageVO.setTitle(reply.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setCounts(count);
sendArticleMessageVO.setMessageGroupId(messageGroupId);
sendArticleMessageVO.setIndex(index);
sendArticleMessageVO.setRobotProcessType(RobotProcessTypeEnum.PCLOUD_SUB_REMIND);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
}
}
......@@ -216,7 +237,11 @@ public class PcloudSubRemindBizImpl implements PcloudSubRemindBiz {
String resultUrl = UrlUtils.getShortUrl4Own(finishLinkUrl);
content = content + "\n" + resultUrl;
sendTextMessageVO.setContent(content);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setCounts(count);
sendTextMessageVO.setMessageGroupId(messageGroupId);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.PCLOUD_SUB_REMIND);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
}
}
......
package com.pcloud.book.skill.dto;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AppOrProductReplyDTO {
@ApiModelProperty("应用或作品类型")
private String serveType;
@ApiModelProperty("应用或作品id")
private Long serveId;
@ApiModelProperty("链接地址")
private String linkUrl;
private String robotWxId;
private String userWxId;
private String ip;
private Integer sendMessageType;
private Integer counts;
private Integer index;
private String messageGroupId;
private RobotProcessTypeEnum robotProcessTypeEnum;
public AppOrProductReplyDTO(String serveType, Long serveId, String linkUrl, String robotWxId, String userWxId, String ip,
Integer sendMessageType, Integer counts, Integer index, String messageGroupId, RobotProcessTypeEnum robotProcessTypeEnum) {
this.serveType = serveType;
this.serveId = serveId;
this.linkUrl = linkUrl;
this.robotWxId = robotWxId;
this.userWxId = userWxId;
this.ip = ip;
this.sendMessageType = sendMessageType;
this.counts = counts;
this.index = index;
this.messageGroupId = messageGroupId;
this.robotProcessTypeEnum = robotProcessTypeEnum;
}
public AppOrProductReplyDTO() {
}
}
......@@ -42,7 +42,6 @@ import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserDTO;
import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -226,7 +225,7 @@ public class SelfPlanBizImpl implements SelfPlanBiz {
sendTextMessageVO.setAltId(robotWxId);
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
//WxGroupSDK.sendTextMessage(sendTextMessageVO);
});
}
}
......@@ -368,7 +367,7 @@ public class SelfPlanBizImpl implements SelfPlanBiz {
sendTextMessageVO.setAltId(robotWxId);
sendTextMessageVO.setWxGroupId(wxId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
//WxGroupSDK.sendTextMessage(sendTextMessageVO);
}
}
......
package com.pcloud.book.timecontrol.biz.impl;
import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.app.AppConsr;
......@@ -61,12 +62,12 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.labelcenter.label.service.LabelService;
import com.pcloud.wechatgroup.base.exception.WechatGroupBizException;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.SendFileVO;
import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -83,6 +84,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
/**
* @date: 2020年01月30日 14:20
......@@ -616,6 +618,7 @@ public class TaskBizImpl implements TaskBiz {
}
private void sendMessage(TimeControlPrizeItem timeControlPrizeItem, String ip, String wxUserId, String robotWxId) {
String groupId = UUID.randomUUID().toString();
if (timeControlPrizeItem.getPrizeType() == 1) {
//优惠券
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
......@@ -625,7 +628,11 @@ public class TaskBizImpl implements TaskBiz {
sendTextMessageVO.setAltId(robotWxId);
sendTextMessageVO.setWxGroupId(wxUserId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setIndex(0);
sendTextMessageVO.setCounts(1);
sendTextMessageVO.setMessageGroupId(groupId);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
} else if (timeControlPrizeItem.getPrizeType() == 2) {
//应用
if (AppAndProductTypeEnum.APP.value.equals(timeControlPrizeItem.getServeType())) {
......@@ -645,7 +652,11 @@ public class TaskBizImpl implements TaskBiz {
sendArticleMessageVO.setPicUrl(appDto.getSquareImg());
sendArticleMessageVO.setTitle(appDto.getTitle());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setIndex(0);
sendArticleMessageVO.setCounts(1);
sendArticleMessageVO.setMessageGroupId(groupId);
sendArticleMessageVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
}
} else if (timeControlPrizeItem.getPrizeType() == 3) {
......@@ -657,7 +668,11 @@ public class TaskBizImpl implements TaskBiz {
sendFileVO.setIp(ip);
sendFileVO.setAltId(robotWxId);
sendFileVO.setWxId(wxUserId);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setIndex(0);
sendFileVO.setCounts(1);
sendFileVO.setMessageGroupId(groupId);
sendFileVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
}
}
......@@ -669,9 +684,12 @@ public class TaskBizImpl implements TaskBiz {
@Override
public void sendReplyMessage(List<TimeControlReplyMessage> replyMessages, String wxUserId, String robotWxId, String ip) {
String groupId = UUID.randomUUID().toString();
int counts = replyMessages.size();
if (!ListUtils.isEmpty(replyMessages)) {
LOGGER.info("开始发送完成信息");
for (TimeControlReplyMessage replyMessage : replyMessages) {
for (int i = 0; i < replyMessages.size(); i++) {
TimeControlReplyMessage replyMessage = replyMessages.get(i);
if (replyMessage != null) {
Integer replyType = replyMessage.getReplyType();
if (ReplyTypeEnum.TEXT.value.equals(replyType)) {
......@@ -683,7 +701,11 @@ public class TaskBizImpl implements TaskBiz {
sendTextMessageVO.setAltId(robotWxId);
sendTextMessageVO.setWxGroupId(wxUserId);
sendTextMessageVO.setIp(ip);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setIndex(i);
sendTextMessageVO.setCounts(counts);
sendTextMessageVO.setMessageGroupId(groupId);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
} else if (ReplyTypeEnum.IMAGE.value.equals(replyType)) {
// 发送图片
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
......@@ -692,7 +714,11 @@ public class TaskBizImpl implements TaskBiz {
sendPicMessageVO.setWxGroupId(wxUserId);
sendPicMessageVO.setPicUrl(replyMessage.getPicUrl());
sendPicMessageVO.setIp(ip);
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setIndex(i);
sendPicMessageVO.setCounts(counts);
sendPicMessageVO.setMessageGroupId(groupId);
sendPicMessageVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
} else if (ReplyTypeEnum.APP.value.equals(replyType)) {
Long serveId = replyMessage.getServeId();
String completeLink = null;
......@@ -718,7 +744,11 @@ public class TaskBizImpl implements TaskBiz {
sendArticleMessageVO.setPicUrl(replyMessage.getPicUrl());
sendArticleMessageVO.setTitle(replyMessage.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setIndex(i);
sendArticleMessageVO.setCounts(counts);
sendArticleMessageVO.setMessageGroupId(groupId);
sendArticleMessageVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
} else if (ReplyTypeEnum.RESOURCE.value.equals(replyType)) {
SendFileVO sendFileVO = new SendFileVO();
Map<Long, ResourceDTO> map = resourceConsr.mapByIds(Arrays.asList(replyMessage.getResourceId()));
......@@ -738,7 +768,11 @@ public class TaskBizImpl implements TaskBiz {
sendFileVO.setAltId(robotWxId);
sendFileVO.setWxId(wxUserId);
sendFileVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setIndex(i);
sendFileVO.setCounts(counts);
sendFileVO.setMessageGroupId(groupId);
sendFileVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}else if (ReplyTypeEnum.LINK.value.equals(replyType)) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
......@@ -749,7 +783,11 @@ public class TaskBizImpl implements TaskBiz {
sendArticleMessageVO.setPicUrl(replyMessage.getPicUrl());
sendArticleMessageVO.setTitle(replyMessage.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setIndex(i);
sendArticleMessageVO.setCounts(counts);
sendArticleMessageVO.setMessageGroupId(groupId);
sendArticleMessageVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
}
}
......
package com.pcloud.book.timecontrol.biz.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
......@@ -7,13 +8,13 @@ import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.keywords.entity.RobotSkillDetail;
import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.set.PcloudRobotSet;
import com.pcloud.book.personal.dao.PcloudSkillRecordDao;
import com.pcloud.book.skill.biz.PcloudSubRemindBiz;
import com.pcloud.book.skill.dao.PcloudSkillDao;
import com.pcloud.book.skill.dao.PcloudSubReplyDao;
import com.pcloud.book.skill.dto.AppOrProductReplyDTO;
import com.pcloud.book.skill.entity.PcloudSkill;
import com.pcloud.book.skill.entity.PcloudSubReply;
import com.pcloud.book.skill.enums.SkillTypeEnum;
......@@ -38,19 +39,18 @@ import com.pcloud.book.util.common.YesOrNoEnums;
import com.pcloud.channelcenter.base.constants.ChannelConstants;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.sdk.wxgroup.RobotProcessTypeEnum;
import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.SendFileVO;
import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.SendPicMessageVO;
import com.sdk.wxgroup.SendTextMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -64,6 +64,7 @@ import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadFactory;
......@@ -186,9 +187,13 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
GroupRobotDTO groupRobotDTO = wechatGroupConsr.getGroupRobotByWxId(robotWxId);
String ip = weixinQrcodeBiz.getRobotIpByGeneration(groupRobotDTO.getVersion());
if (!ListUtils.isEmpty(bySkillIdAndType)) {
bySkillIdAndType.forEach(pcloudSubReply -> {
sendReply(pcloudSubReply, wxUserId, robotWxId, ip);
});
Integer count= bySkillIdAndType.size();
String messageGroup = UUID.randomUUID().toString();
Integer index = 0;
for (PcloudSubReply pcloudSubReply : bySkillIdAndType) {
sendReply(pcloudSubReply, wxUserId, robotWxId, ip, messageGroup, count, index);
index++;
}
}
});
//修改pcloud_sub_remind表状态
......@@ -197,7 +202,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
}
@ParamLog
private void sendReply(PcloudSubReply pcloudSubReply, String userWxId, String robotWxId, String ip) {
private void sendReply(PcloudSubReply pcloudSubReply, String userWxId, String robotWxId, String ip, String messageGroupId, Integer count, Integer index) {
Integer type = pcloudSubReply.getType();
if (ReplyTypeEnum.TEXT.value.equals(type)) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
......@@ -206,7 +211,11 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(1);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setCounts(count);
sendTextMessageVO.setMessageGroupId(messageGroupId);
sendTextMessageVO.setIndex(index);
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.SKILL_REPLY);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
if (ReplyTypeEnum.IMAGE.value.equals(type)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
......@@ -215,11 +224,26 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendPicMessageVO.setPicUrl(pcloudSubReply.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(1);
WxGroupSDK.sendPicMessage(sendPicMessageVO);
sendPicMessageVO.setCounts(count);
sendPicMessageVO.setMessageGroupId(messageGroupId);
sendPicMessageVO.setIndex(index);
sendPicMessageVO.setRobotProcessType(RobotProcessTypeEnum.SKILL_REPLY);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendPicMessageVO));
}
if (ReplyTypeEnum.APP.value.equals(type)) {
pcloudRobotSet.sendAppOrProductReply(pcloudSubReply.getServeType(), pcloudSubReply.getServeId(),
pcloudSubReply.getLinkUrl(), robotWxId, userWxId, ip, 1);
AppOrProductReplyDTO appOrProductReplyDTO = new AppOrProductReplyDTO();
appOrProductReplyDTO.setServeType(pcloudSubReply.getServeType());
appOrProductReplyDTO.setServeId(pcloudSubReply.getServeId());
appOrProductReplyDTO.setLinkUrl(pcloudSubReply.getLinkUrl());
appOrProductReplyDTO.setRobotWxId(robotWxId);
appOrProductReplyDTO.setRobotWxId(userWxId);
appOrProductReplyDTO.setIp(ip);
appOrProductReplyDTO.setSendMessageType(SendMessageTypeEnum.SELF.getCode());
appOrProductReplyDTO.setCounts(count);
appOrProductReplyDTO.setIndex(index);
appOrProductReplyDTO.setMessageGroupId(messageGroupId);
appOrProductReplyDTO.setRobotProcessTypeEnum(RobotProcessTypeEnum.SKILL_REPLY);
pcloudRobotSet.sendAppOrProductReply(appOrProductReplyDTO);
}
if (ReplyTypeEnum.LINK.value.equals(type)) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
......@@ -231,7 +255,11 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendArticleMessageVO.setPicUrl(pcloudSubReply.getPicUrl());
sendArticleMessageVO.setTitle(pcloudSubReply.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
sendArticleMessageVO.setCounts(count);
sendArticleMessageVO.setIndex(index);
sendArticleMessageVO.setMessageGroupId(messageGroupId);
sendArticleMessageVO.setRobotProcessType(RobotProcessTypeEnum.SKILL_REPLY);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendArticleMessageVO));
}
if (ReplyTypeEnum.RESOURCE.value.equals(type)) {
SendFileVO sendFileVO = new SendFileVO();
......@@ -249,7 +277,11 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendFileVO.setIp(ip);
sendFileVO.setAltId(robotWxId);
sendFileVO.setWxId(userWxId);
WxGroupSDK.sendFile(sendFileVO);
sendFileVO.setCounts(count);
sendFileVO.setIndex(index);
sendFileVO.setMessageGroupId(messageGroupId);
sendFileVO.setRobotProcessType(RobotProcessTypeEnum.SKILL_REPLY);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
}
}
......@@ -282,9 +314,13 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
GroupRobotDTO groupRobotDTO = wechatGroupConsr.getGroupRobotByWxId(taskSubscribe.getRobotWxId());
String ip = weixinQrcodeBiz.getRobotIpByGeneration(groupRobotDTO.getVersion());
if (!ListUtils.isEmpty(bySkillIdAndType)) {
bySkillIdAndType.forEach(pcloudSubReply -> {
sendReply(pcloudSubReply, wxUserId, taskSubscribe.getRobotWxId(), ip);
});
Integer count= bySkillIdAndType.size();
String messageGroupId = UUID.randomUUID().toString();
Integer index = 0;
for (PcloudSubReply pcloudSubReply : bySkillIdAndType) {
sendReply(pcloudSubReply, wxUserId, taskSubscribe.getRobotWxId(), ip, messageGroupId, count, index);
index++;
}
}
});
}
......@@ -336,7 +372,11 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendTextMessageVO.setIp(ip);
String content = "消息发送时间(" + DateUtils.formatDate(new Date())+")";
sendTextMessageVO.setContent(content);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setIndex(0);
sendTextMessageVO.setCounts(1);
sendTextMessageVO.setMessageGroupId(UUID.randomUUID().toString());
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));
}
if (YesOrNoEnums.YES.getValue().equals(timeControlTaskItem.getFinishConfirm()) || YesOrNoEnums.YES.getValue().equals(timeControlTaskItem.getTdConfirm())){
//封装退订提醒
......@@ -364,7 +404,11 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
}
}
sendTextMessageVO.setContent(content);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setIndex(0);
sendTextMessageVO.setCounts(1);
sendTextMessageVO.setMessageGroupId(UUID.randomUUID().toString());
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
if (YesOrNoEnums.YES.getValue().equals(timeControlTaskItem.getProgressGuidance())) {
//封装任务进度
......@@ -378,7 +422,11 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
+ "&taskItemId=" + taskItemId + "&wxUserId=" + wxUserId;
String content = "当前任务进度→\n" + UrlUtils.getShortUrl4Own(link) + "";
sendTextMessageVO.setContent(content);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
sendTextMessageVO.setIndex(0);
sendTextMessageVO.setCounts(1);
sendTextMessageVO.setMessageGroupId(UUID.randomUUID().toString());
sendTextMessageVO.setRobotProcessType(RobotProcessTypeEnum.TIME_CONTROL);
wechatGroupConsr.sendMessage(JSON.toJSONString(sendTextMessageVO));;
}
//更新发送状态
Integer completeState = null;
......
package com.pcloud.book.weixinclock.biz.impl;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
......@@ -711,7 +712,8 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
}
vo.setContent(sendContent);
LOGGER.info("微信群内加入并打卡:发送微信消息vo="+vo);
WxGroupSDK.sendTextMessage(vo);
// TODO sdk.message
wechatGroupConsr.sendMessage(JSON.toJSONString(vo));
return true;
}
......
......@@ -22,7 +22,7 @@ spring:
removeAbandonedTimeout: 180
logAbandoned: true
timeBetweenEvictionRunsMillis: 3000
minEvictableIdleTimeMillis: 3600000
minEvictableIdleTimeMillis: 3600000git
validationQuery: SELECT 'x' FROM DUAL
testWhileIdle: true
testOnBorrow: 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