Commit 6a7dd660 by 吴博

消息顺序

parent fb69a367
......@@ -7,4 +7,5 @@
*logs/
*.idea/
*bin/
*download/
\ No newline at end of file
*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.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.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.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.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