Commit 32fad15a by 1244575290@qq.com

发送应用作品消息

parent 18c910bc
...@@ -267,4 +267,20 @@ public class ProductConsr { ...@@ -267,4 +267,20 @@ public class ProductConsr {
} }
} }
public List<Long> getChannelIdsByProId(Long productId) throws BizException {
LOGGER.info("【资源中心(消)】获取作品已上架的所有运营平台,<START>.[productId]=" + productId + "]");
if (productId == null) {
return null;
}
try {
return ResponseHandleUtil.parseList(productService.getChannelIdsByProId(productId), Long.class);
} catch (BizException e) {
LOGGER.warn("【资源中心(消)】获取作品已上架的所有运营平台失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("【资源中心(消)】获取作品已上架的所有运营平台.[getChannelIdsByProId]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
}
}
} }
...@@ -85,6 +85,7 @@ import com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify; ...@@ -85,6 +85,7 @@ import com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify;
import com.pcloud.book.pcloudkeyword.enums.KeywordTypeEnum; import com.pcloud.book.pcloudkeyword.enums.KeywordTypeEnum;
import com.pcloud.book.pcloudkeyword.enums.MethodEnum; import com.pcloud.book.pcloudkeyword.enums.MethodEnum;
import com.pcloud.book.pcloudkeyword.enums.RelevanceTypeEnum; import com.pcloud.book.pcloudkeyword.enums.RelevanceTypeEnum;
import com.pcloud.book.pcloudkeyword.set.PcloudRobotSet;
import com.pcloud.book.reading.biz.ReadingActivityBiz; import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.constants.ChannelEnum; import com.pcloud.channelcenter.base.constants.ChannelEnum;
...@@ -241,6 +242,9 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -241,6 +242,9 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
private SearchRecordDao searchRecordDao; private SearchRecordDao searchRecordDao;
@Autowired @Autowired
private AdviserConsr adviserConsr; private AdviserConsr adviserConsr;
@Autowired
private PcloudRobotSet pcloudRobotSet;
/** /**
* 字符串切割长度 * 字符串切割长度
*/ */
...@@ -839,26 +843,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -839,26 +843,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
WxGroupSDK.sendPicMessage(sendPicMessageVO); WxGroupSDK.sendPicMessage(sendPicMessageVO);
} }
if (ReplyTypeEnum.APP.value.equals(type)) { if (ReplyTypeEnum.APP.value.equals(type)) {
if (AppAndProductTypeEnum.APP.value.equals(reply.getServeType())) { pcloudRobotSet.sendAppOrProductReply(reply.getServeType(), reply.getServeId(),
AppDto appDto = appConsr.getBaseById(reply.getServeId()); reply.getLinkUrl(), robotId,userWxId, ip, code);
if (appDto != null) {
AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(appDto.getChannelId());
// 处理链接地址
String endUrl = reply.getLinkUrl() + "&wxId=" + userWxId + "&robotWxId=" + robotId;
String linkUrl = SendWeixinRequestTools.splitUrl(accountSettingDto, endUrl);
String resultUrl = UrlUtils.getShortUrl4Own(linkUrl);
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(code);
sendArticleMessageVO.setAltId(robotId);
sendArticleMessageVO.setDescription(appDto.getTypeName());
sendArticleMessageVO.setWxGroupId(userWxId);
sendArticleMessageVO.setLinkUrl(resultUrl);
sendArticleMessageVO.setPicUrl(appDto.getSquareImg());
sendArticleMessageVO.setTitle(appDto.getTitle());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
}
}
} }
if (ReplyTypeEnum.RESOURCE.value.equals(type)) { if (ReplyTypeEnum.RESOURCE.value.equals(type)) {
SendFileVO sendFileVO = new SendFileVO(); SendFileVO sendFileVO = new SendFileVO();
......
package com.pcloud.book.pcloudkeyword.set; package com.pcloud.book.pcloudkeyword.set;
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.content.ResourceConsr;
import com.pcloud.book.consumer.resource.ProductConsr;
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.entity.PcloudRobotWelcome;
import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum; import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.httpclient.UrlUtils;
import com.pcloud.contentcenter.resource.dto.ResourceDTO; import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.sdk.wxgroup.SendArticleMessageVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -19,6 +32,12 @@ public class PcloudRobotSet { ...@@ -19,6 +32,12 @@ public class PcloudRobotSet {
@Autowired @Autowired
private ResourceConsr resourceConsr; private ResourceConsr resourceConsr;
@Autowired
private ProductConsr productConsr;
@Autowired
private AppConsr appConsr;
@Autowired
private QrcodeSceneConsr qrcodeSceneConsr;
@ParamLog("填充欢迎语回复") @ParamLog("填充欢迎语回复")
public void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) { public void fillRobotWelcome(List<PcloudRobotWelcome> robotWelcomeList) {
...@@ -53,5 +72,48 @@ public class PcloudRobotSet { ...@@ -53,5 +72,48 @@ public class PcloudRobotSet {
} }
} }
} }
public void sendAppOrProductReply(String serveType, Long serveId, String linkUrl,
String robotWxId, String userWxId, String ip, Integer code) {
AccountSettingDto accountSettingDto = null;
String typeName = "";
String picUrl = "";
String title = "";
String resultUrl = "";
if (AppAndProductTypeEnum.APP.value.equals(serveType)) {
AppDto appDto = appConsr.getBaseById(serveId);
if (appDto != null) {
accountSettingDto = qrcodeSceneConsr.getWechatInfo(appDto.getChannelId());
typeName = appDto.getTypeName();
picUrl = appDto.getSquareImg();
title = appDto.getTitle();
}
if(accountSettingDto != null) {
String endUrl = linkUrl + "&wxId=" + userWxId + "&robotWxId=" + robotWxId;
String resultLinkUrl = SendWeixinRequestTools.splitUrl(accountSettingDto, endUrl);
resultUrl = UrlUtils.getShortUrl4Own(resultLinkUrl);
}
}
if (AppAndProductTypeEnum.PRODUCT.value.equals(serveType)) {
ProductDto productDto = productConsr.getProBaseById(serveId);
if (productDto != null) {
typeName = productDto.getProductTypeDto() == null ? "" : productDto.getProductTypeDto().getTypeName();
picUrl = productDto.getCoverImg();
title = productDto.getProductName();
resultUrl = UrlUtils.getShortUrl4Own(linkUrl + "&wxId=" + userWxId + "&robotWxId=" + robotWxId);
}
}
if(!StringUtils.isEmpty(resultUrl)) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(code);
sendArticleMessageVO.setAltId(robotWxId);
sendArticleMessageVO.setDescription(typeName);
sendArticleMessageVO.setWxGroupId(userWxId);
sendArticleMessageVO.setLinkUrl(resultUrl);
sendArticleMessageVO.setPicUrl(picUrl);
sendArticleMessageVO.setTitle(title);
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
}
}
} }
package com.pcloud.book.push.biz.impl; package com.pcloud.book.push.biz.impl;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.content.ResourceConsr; import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.user.PartyConsr; import com.pcloud.book.consumer.user.PartyConsr;
...@@ -10,12 +11,14 @@ import com.pcloud.book.group.dao.WeixinQrcodeGenerationDao; ...@@ -10,12 +11,14 @@ import com.pcloud.book.group.dao.WeixinQrcodeGenerationDao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.SelfRobotBookGroupDTO; import com.pcloud.book.group.dto.SelfRobotBookGroupDTO;
import com.pcloud.book.group.entity.WeixinQrcodeGeneration; import com.pcloud.book.group.entity.WeixinQrcodeGeneration;
import com.pcloud.book.group.enums.AppAndProductTypeEnum;
import com.pcloud.book.group.set.GroupSet; import com.pcloud.book.group.set.GroupSet;
import com.pcloud.book.group.vo.UserBookInfoVO; import com.pcloud.book.group.vo.UserBookInfoVO;
import com.pcloud.book.guide.dto.PcloudGuideMessageDTO; import com.pcloud.book.guide.dto.PcloudGuideMessageDTO;
import com.pcloud.book.keywords.enums.ReplyTypeEnum; import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO; import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz; import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.set.PcloudRobotSet;
import com.pcloud.book.push.biz.SelfPushBiz; import com.pcloud.book.push.biz.SelfPushBiz;
import com.pcloud.book.push.constant.PushConstant; import com.pcloud.book.push.constant.PushConstant;
import com.pcloud.book.push.dao.SelfPushDao; import com.pcloud.book.push.dao.SelfPushDao;
...@@ -29,6 +32,7 @@ import com.pcloud.book.push.entity.SelfPushUser; ...@@ -29,6 +32,7 @@ import com.pcloud.book.push.entity.SelfPushUser;
import com.pcloud.book.push.enums.ItemTypeEnum; import com.pcloud.book.push.enums.ItemTypeEnum;
import com.pcloud.book.push.enums.PushStatusEnum; import com.pcloud.book.push.enums.PushStatusEnum;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.SystemCode; import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -40,6 +44,7 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO; ...@@ -40,6 +44,7 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.facade.quartz.entity.CallBackParam; import com.pcloud.facade.quartz.entity.CallBackParam;
import com.pcloud.facade.quartz.entity.ScheduleJob; import com.pcloud.facade.quartz.entity.ScheduleJob;
import com.pcloud.facade.quartz.service.ScheduleService; import com.pcloud.facade.quartz.service.ScheduleService;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.usercenter.user.entity.UserLogin; import com.pcloud.usercenter.user.entity.UserLogin;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO; import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserDTO; import com.pcloud.wechatgroup.group.dto.GroupUserDTO;
...@@ -92,6 +97,8 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -92,6 +97,8 @@ public class SelfPushBizImpl implements SelfPushBiz {
private PcloudRobotBiz pcloudRobotBiz; private PcloudRobotBiz pcloudRobotBiz;
@Autowired @Autowired
private ResourceConsr resourceConsr; private ResourceConsr resourceConsr;
@Autowired
private PcloudRobotSet pcloudRobotSet;
private static final String self_push_SCHEDULE_PRE = "self_push_"; private static final String self_push_SCHEDULE_PRE = "self_push_";
...@@ -399,7 +406,17 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -399,7 +406,17 @@ public class SelfPushBizImpl implements SelfPushBiz {
return; return;
} }
if (ItemTypeEnum.APP.value.equals(itemType)) { if (ItemTypeEnum.APP.value.equals(itemType)) {
return;//应用类型不参与群发C1002029 //发送应用
if(selfPushItem.getAppId() != null) {
pcloudRobotSet.sendAppOrProductReply(AppAndProductTypeEnum.APP.value, selfPushItem.getAppId(),
selfPushItem.getLinkUrl(), altId,userWxId, getIpByRobot(altId), code);
}
//发送作品
if(selfPushItem.getProductId() != null) {
pcloudRobotSet.sendAppOrProductReply(AppAndProductTypeEnum.PRODUCT.value, selfPushItem.getProductId(),
selfPushItem.getLinkUrl(), altId, userWxId, getIpByRobot(altId), code);
}
return;//应用类型参与群发C1002391
} }
if (ItemTypeEnum.IMAGE.value.equals(itemType)) { if (ItemTypeEnum.IMAGE.value.equals(itemType)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO(); SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
......
...@@ -12,6 +12,7 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools; ...@@ -12,6 +12,7 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.keywords.enums.ReplyTypeEnum; import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.biz.PcloudKeywordBiz; import com.pcloud.book.pcloudkeyword.biz.PcloudKeywordBiz;
import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum; import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.set.PcloudRobotSet;
import com.pcloud.book.skill.biz.PcloudSkillBiz; import com.pcloud.book.skill.biz.PcloudSkillBiz;
import com.pcloud.book.skill.check.PcloudSkillCheck; import com.pcloud.book.skill.check.PcloudSkillCheck;
import com.pcloud.book.skill.dao.PcloudGroupActivityDao; import com.pcloud.book.skill.dao.PcloudGroupActivityDao;
...@@ -71,6 +72,8 @@ public class PcloudSkillBizImpl implements PcloudSkillBiz { ...@@ -71,6 +72,8 @@ public class PcloudSkillBizImpl implements PcloudSkillBiz {
private PcloudGroupActivityDao pcloudGroupActivityDao; private PcloudGroupActivityDao pcloudGroupActivityDao;
@Autowired @Autowired
private PcloudKeywordBiz pcloudKeywordBiz; private PcloudKeywordBiz pcloudKeywordBiz;
@Autowired
private PcloudRobotSet pcloudRobotSet;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ParamLog("新增技能") @ParamLog("新增技能")
...@@ -458,26 +461,8 @@ public class PcloudSkillBizImpl implements PcloudSkillBiz { ...@@ -458,26 +461,8 @@ public class PcloudSkillBizImpl implements PcloudSkillBiz {
sendFileVO.setCode(SendMessageTypeEnum.SELF.getCode()); sendFileVO.setCode(SendMessageTypeEnum.SELF.getCode());
WxGroupSDK.sendFile(sendFileVO); WxGroupSDK.sendFile(sendFileVO);
} else if(ReplyTypeEnum.APP.value.equals(type)) { } else if(ReplyTypeEnum.APP.value.equals(type)) {
Long serveId=reply.getServeId(); pcloudRobotSet.sendAppOrProductReply(reply.getServeType(), reply.getServeId(),
if (AppAndProductTypeEnum.APP.value.equals(reply.getServeType())) { reply.getLinkUrl(), robotWxId,userWxId, ip, SendMessageTypeEnum.SELF.getCode());
AppDto appDto = appConsr.getBaseById(serveId);
if (appDto != null) {
AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(appDto.getChannelId());
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(SendMessageTypeEnum.SELF.getCode());
sendArticleMessageVO.setAltId(robotWxId);
sendArticleMessageVO.setDescription(reply.getDescription());
sendArticleMessageVO.setWxGroupId(userWxId);
// 处理链接地址
String endUrl = reply.getLinkUrl();
String linkUrl = SendWeixinRequestTools.splitUrl(accountSettingDto, endUrl);
sendArticleMessageVO.setLinkUrl(linkUrl);
sendArticleMessageVO.setPicUrl(reply.getPicUrl());
sendArticleMessageVO.setTitle(reply.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
}
}
} }
} }
} }
......
...@@ -9,6 +9,7 @@ import com.pcloud.book.consumer.resource.ProductConsr; ...@@ -9,6 +9,7 @@ import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.WeixinQrcodeBiz; import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.keywords.enums.ReplyTypeEnum; import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.set.PcloudRobotSet;
import com.pcloud.book.skill.biz.PcloudSubRemindBiz; import com.pcloud.book.skill.biz.PcloudSubRemindBiz;
import com.pcloud.book.skill.dao.PcloudSkillDao; import com.pcloud.book.skill.dao.PcloudSkillDao;
import com.pcloud.book.skill.dao.PcloudSubReplyDao; import com.pcloud.book.skill.dao.PcloudSubReplyDao;
...@@ -114,6 +115,8 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz { ...@@ -114,6 +115,8 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
private PcloudSubRemindBiz pcloudSubRemindBiz; private PcloudSubRemindBiz pcloudSubRemindBiz;
@Value("${wechat.group.link.prefix}") @Value("${wechat.group.link.prefix}")
private String wechatGroupLinkPrefix; private String wechatGroupLinkPrefix;
@Autowired
private PcloudRobotSet pcloudRobotSet;
@Override @Override
@ParamLog("任务订阅") @ParamLog("任务订阅")
...@@ -203,6 +206,10 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz { ...@@ -203,6 +206,10 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendPicMessageVO.setCode(1); sendPicMessageVO.setCode(1);
WxGroupSDK.sendPicMessage(sendPicMessageVO); WxGroupSDK.sendPicMessage(sendPicMessageVO);
} }
if (ReplyTypeEnum.APP.value.equals(type)) {
pcloudRobotSet.sendAppOrProductReply(pcloudSubReply.getServeType(), pcloudSubReply.getServeId(),
pcloudSubReply.getLinkUrl(), robotWxId, userWxId, ip, 1);
}
if (ReplyTypeEnum.LINK.value.equals(type)) { if (ReplyTypeEnum.LINK.value.equals(type)) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO(); SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(1); sendArticleMessageVO.setCode(1);
......
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