Commit d1066982 by zhuyajie

1002600qq群发

parent 7a441403
...@@ -25,9 +25,14 @@ public enum LargeTempletEnum { ...@@ -25,9 +25,14 @@ public enum LargeTempletEnum {
*/ */
SPECIAL_AGENT(5, "特殊出版社"), SPECIAL_AGENT(5, "特殊出版社"),
/** /**
* 小睿 * 小睿-微信
*/ */
XIAORUI(6,"小睿"); XIAORUI(6,"小睿(微信)"),
/**
* 小睿-QQ
*/
XIAORUI_QQ(7,"小睿(QQ)");
public final Integer code; public final Integer code;
......
...@@ -28,7 +28,6 @@ import com.pcloud.wechatgroup.monitor.service.MonitorService; ...@@ -28,7 +28,6 @@ import com.pcloud.wechatgroup.monitor.service.MonitorService;
import com.pcloud.wechatgroup.selfrobot.dto.*; import com.pcloud.wechatgroup.selfrobot.dto.*;
import com.pcloud.wechatgroup.selfrobot.service.SelfRobotService; import com.pcloud.wechatgroup.selfrobot.service.SelfRobotService;
import com.sdk.wxgroup.BaseVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -620,10 +619,10 @@ public class WechatGroupConsr { ...@@ -620,10 +619,10 @@ public class WechatGroupConsr {
} }
@ParamLog("获取小号所有好友") @ParamLog("获取小号所有好友")
public List<String> getFriendByRobotId(String altId) { public List<String> getFriendByRobotId(String altId, Integer altType) {
List<String> ids = new ArrayList<>(); List<String> ids = new ArrayList<>();
try { try {
ids = ResponseHandleUtil.parseList(selfRobotService.getFriendByRobotId(altId), String.class); ids = ResponseHandleUtil.parseList(selfRobotService.getFriendByRobotIdAndType(altId,altType), String.class);
}catch (Exception e){ }catch (Exception e){
log.error("[selfRobotService.getFriendByRobotId]调用失败" + e.getMessage(), e); log.error("[selfRobotService.getFriendByRobotId]调用失败" + e.getMessage(), e);
} }
...@@ -631,13 +630,14 @@ public class WechatGroupConsr { ...@@ -631,13 +630,14 @@ public class WechatGroupConsr {
} }
@ParamLog("分页查小号好友id") @ParamLog("分页查小号好友id")
public PageBeanNew<String> listPageFriend(Integer currentPage,Integer numPerPage,String robotId,String name){ public PageBeanNew<String> listPageFriend(Integer currentPage, Integer numPerPage, String robotId, String name, Integer groupRobotType){
PageBeanNew<String> pageBeanNew = null; PageBeanNew<String> pageBeanNew = null;
FriendParamDTO friendParamDTO = new FriendParamDTO(); FriendParamDTO friendParamDTO = new FriendParamDTO();
friendParamDTO.setCurrentPage(currentPage); friendParamDTO.setCurrentPage(currentPage);
friendParamDTO.setNumPerPage(numPerPage); friendParamDTO.setNumPerPage(numPerPage);
friendParamDTO.setRobotId(robotId); friendParamDTO.setRobotId(robotId);
friendParamDTO.setName(name); friendParamDTO.setName(name);
friendParamDTO.setGroupRobotType(groupRobotType);
try { try {
ResponseEntity responseEntity = selfRobotService.listPageFriendId(friendParamDTO); ResponseEntity responseEntity = selfRobotService.listPageFriendId(friendParamDTO);
Object object = ResponseHandleUtil.parseResponse(responseEntity); Object object = ResponseHandleUtil.parseResponse(responseEntity);
...@@ -699,4 +699,22 @@ public class WechatGroupConsr { ...@@ -699,4 +699,22 @@ public class WechatGroupConsr {
} }
} }
public Map<String, GroupUserDTO> mapWxUserInfoByWxIdListAndType(List<String> wechatUserIds, Integer groupRobotType) {
Map<String, GroupUserDTO> map = new HashMap<>();
try {
map = ResponseHandleUtil.parseMapResponse(groupMemberService.mapWxUserInfoByWxIdListAndType(wechatUserIds,groupRobotType), String.class, GroupUserDTO.class);
} catch (Exception e) {
log.error("批量获取用户信息.[mapWxUserInfoByWxIdList]失败" + e.getMessage(), e);
}
return map;
}
public void sendMessage4QQ(PrivateMsgSendVO privateMsgSendVO) {
try {
CoolQSDK.sendPrivateMsg(privateMsgSendVO);
} catch (Exception e) {
log.error("qq机器人给用户发送消息失败.[sendMessage]:" + e.getMessage(), e);
}
}
} }
...@@ -107,6 +107,7 @@ import com.pcloud.book.keywords.enums.ReplyTypeEnum; ...@@ -107,6 +107,7 @@ import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.keywords.vo.ListKeywordVO; import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz; import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot; import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.push.enums.AltTypeEnum;
import com.pcloud.book.reading.dao.ReadingUserDao; import com.pcloud.book.reading.dao.ReadingUserDao;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.constants.ChannelConstants; import com.pcloud.channelcenter.base.constants.ChannelConstants;
...@@ -161,6 +162,7 @@ import com.pcloud.settlementcenter.record.dto.ProductStaticUnderAppMapDTO; ...@@ -161,6 +162,7 @@ import com.pcloud.settlementcenter.record.dto.ProductStaticUnderAppMapDTO;
import com.pcloud.settlementcenter.record.service.SettlementService; import com.pcloud.settlementcenter.record.service.SettlementService;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto; import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.videolesson.schedule.service.ScheduleService; import com.pcloud.videolesson.schedule.service.ScheduleService;
import com.pcloud.wechatgroup.base.exception.WechatGroupBizException;
import com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO; import com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO; import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserCountDTO; import com.pcloud.wechatgroup.group.dto.GroupUserCountDTO;
...@@ -3819,18 +3821,23 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -3819,18 +3821,23 @@ public class BookGroupBizImpl implements BookGroupBiz {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
//判断robotid是否是小睿 //判断robotid是否是小睿
String robotId = userSelectParamDTO.getRobotId(); String robotId = userSelectParamDTO.getRobotId();
Integer groupRobotType = userSelectParamDTO.getGroupRobotType();
List<UserBookInfoVO> list = new ArrayList<>(); List<UserBookInfoVO> list = new ArrayList<>();
Integer totalCount = 0; Integer totalCount = 0;
if (StringUtil.isEmpty(robotId)){ if (StringUtil.isEmpty(robotId)){
throw new BizException(BizException.PARAM_IS_NULL.getCode(),"robotId为空"); throw new BizException(BizException.PARAM_IS_NULL.getCode(),"robotId为空");
} }
if (null == groupRobotType) {
groupRobotType = AltTypeEnum.WECHAT.code;
}
PcloudRobot pcloudRobot = pcloudRobotBiz.getPcloudRobotByWxId(robotId); PcloudRobot pcloudRobot = pcloudRobotBiz.getPcloudRobotByWxId(robotId);
if (null != pcloudRobot){ if (null != pcloudRobot){
PageBeanNew<String> wechatUserIdPage = wechatGroupConsr.listPageFriend(currentPage,numPerPage, PageBeanNew<String> wechatUserIdPage = wechatGroupConsr.listPageFriend(currentPage,numPerPage,
robotId,userSelectParamDTO.getUserQuery()); robotId,userSelectParamDTO.getUserQuery(),groupRobotType);
if (!ListUtils.isEmpty(wechatUserIdPage.getRecordList())){ if (!ListUtils.isEmpty(wechatUserIdPage.getRecordList())){
List<String> wechatUserIds = wechatUserIdPage.getRecordList(); List<String> wechatUserIds = wechatUserIdPage.getRecordList();
list = groupSet.setUserBookInfo4SelfPush4XIAORUI(wechatUserIds); list = groupSet.setUserBookInfo4SelfPush4XIAORUI(wechatUserIds,groupRobotType);
totalCount = wechatUserIdPage.getTotalCount(); totalCount = wechatUserIdPage.getTotalCount();
} }
}else { }else {
......
package com.pcloud.book.group.dto; package com.pcloud.book.group.dto;
import org.springframework.beans.factory.annotation.Value;
import java.util.List; import java.util.List;
import javax.ws.rs.DefaultValue;
import feign.Client.Default;
import lombok.Data; import lombok.Data;
/** /**
...@@ -53,4 +58,9 @@ public class UserSelectParamDTO { ...@@ -53,4 +58,9 @@ public class UserSelectParamDTO {
* 不展示活动已邀请的读者-共读活动 * 不展示活动已邀请的读者-共读活动
*/ */
private Boolean invitedFilter; private Boolean invitedFilter;
/**
* 个人号类型 1 微信 2 qq
*/
private Integer groupRobotType;
} }
...@@ -802,10 +802,10 @@ public class GroupSet { ...@@ -802,10 +802,10 @@ public class GroupSet {
} }
public List<UserBookInfoVO> setUserBookInfo4SelfPush4XIAORUI(List<String> wechatUserIds) { public List<UserBookInfoVO> setUserBookInfo4SelfPush4XIAORUI(List<String> wechatUserIds, Integer groupRobotType) {
List<UserBookInfoVO> userBookInfoVOS = new ArrayList<>(); List<UserBookInfoVO> userBookInfoVOS = new ArrayList<>();
if (!ListUtils.isEmpty(wechatUserIds)){ if (!ListUtils.isEmpty(wechatUserIds)){
Map<String, GroupUserDTO> userDTOMap = wechatGroupConsr.mapWxUserInfoByWxIdList(wechatUserIds); Map<String, GroupUserDTO> userDTOMap = wechatGroupConsr.mapWxUserInfoByWxIdListAndType(wechatUserIds,groupRobotType);
List<Long> labelIds = new ArrayList<>(); List<Long> labelIds = new ArrayList<>();
for (String wechatUserId : wechatUserIds) { for (String wechatUserId : wechatUserIds) {
//用户信息 //用户信息
......
...@@ -110,5 +110,7 @@ public interface PcloudRobotBiz { ...@@ -110,5 +110,7 @@ public interface PcloudRobotBiz {
void handleMiniAppQr(); void handleMiniAppQr();
PcloudRobotResponseVO getSelfRobotClassify(String robotId);
void sendQQWelcomeReply(Long receiverId, Long userId, List<PcloudRobotWelcome> robotWelcomeListByPcloudClassifyId); void sendQQWelcomeReply(Long receiverId, Long userId, List<PcloudRobotWelcome> robotWelcomeListByPcloudClassifyId);
} }
...@@ -17,6 +17,7 @@ import com.pcloud.book.consumer.resource.ProductConsr; ...@@ -17,6 +17,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.constant.BookBusinessConstants; import com.pcloud.book.group.constant.BookBusinessConstants;
import com.pcloud.book.group.enums.AppAndProductTypeEnum; import com.pcloud.book.group.enums.AppAndProductTypeEnum;
import com.pcloud.book.group.enums.LargeTempletEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools; import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.guide.biz.PcloudGuideBiz; import com.pcloud.book.guide.biz.PcloudGuideBiz;
import com.pcloud.book.guide.biz.PcloudRobotWakeUpBiz; import com.pcloud.book.guide.biz.PcloudRobotWakeUpBiz;
...@@ -50,6 +51,7 @@ import com.pcloud.book.push.biz.SelfPushBiz; ...@@ -50,6 +51,7 @@ import com.pcloud.book.push.biz.SelfPushBiz;
import com.pcloud.book.push.dao.PersonalAppletsDao; import com.pcloud.book.push.dao.PersonalAppletsDao;
import com.pcloud.book.push.entity.PersonalApplets; import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.book.push.enums.ItemTypeEnum; import com.pcloud.book.push.enums.ItemTypeEnum;
import com.pcloud.book.push.enums.AltTypeEnum;
import com.pcloud.book.skill.biz.PcloudSkillBiz; import com.pcloud.book.skill.biz.PcloudSkillBiz;
import com.pcloud.book.skill.entity.PcloudSkill; import com.pcloud.book.skill.entity.PcloudSkill;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
...@@ -422,7 +424,7 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz { ...@@ -422,7 +424,7 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
index ++; index ++;
} }
} }
if (isOpenH5== 1) { if (robotClassify != null && robotClassify.getIsOpenPushH5url() != null && robotClassify.getIsOpenPushH5url() == 1) {
//发送H5链接 //发送H5链接
String endUrl = wechatLinkPrefix + "/dialog" + "?book_group_id=" + 0 + "&wxId=" + userWxId + "&robotWxId=" + robotWxId; String endUrl = wechatLinkPrefix + "/dialog" + "?book_group_id=" + 0 + "&wxId=" + userWxId + "&robotWxId=" + robotWxId;
String resultUrl = UrlUtils.getShortUrl4Own(endUrl); String resultUrl = UrlUtils.getShortUrl4Own(endUrl);
...@@ -665,12 +667,19 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz { ...@@ -665,12 +667,19 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
} }
@Override @Override
public PageBeanNew<PcloudRobotResponseVO> listSelfRobotByClassify(Integer largeTemplet, Long classifyId, String keyword, Integer currentPage, Integer numPerPage) { public PageBeanNew<PcloudRobotResponseVO> listSelfRobotByClassify(Integer largeTemplet, Long classifyId, String keyword,
Integer currentPage, Integer numPerPage) {
Integer groupRobotType = null;
if (largeTemplet==6){//小睿(微信)
groupRobotType = 1;
} else if (largeTemplet==7){//小睿(QQ)
groupRobotType = 2;
}
List<PcloudRobotResponseVO> vos = new ArrayList<>(); List<PcloudRobotResponseVO> vos = new ArrayList<>();
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
paramMap.put("classifyId", classifyId); paramMap.put("classifyId", classifyId);
paramMap.put("keyword", keyword); paramMap.put("keyword", keyword);
if (!new Integer(6).equals(largeTemplet)){ if (!LargeTempletEnum.XIAORUI.code.equals(largeTemplet) && !LargeTempletEnum.XIAORUI_QQ.code.equals(largeTemplet)){
List<RobotBaseInfoDTO> baseInfoDTOList = wechatGroupConsr.getRobotInfoByTemplet(largeTemplet); List<RobotBaseInfoDTO> baseInfoDTOList = wechatGroupConsr.getRobotInfoByTemplet(largeTemplet);
if (ListUtils.isEmpty(baseInfoDTOList)){ if (ListUtils.isEmpty(baseInfoDTOList)){
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>()); return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
...@@ -704,6 +713,7 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz { ...@@ -704,6 +713,7 @@ public class PcloudRobotBizImpl implements PcloudRobotBiz {
} }
paramMap.put("wxIds", wxIds); paramMap.put("wxIds", wxIds);
} }
paramMap.put("groupRobotType", groupRobotType);
PageBeanNew<RobotClassifyDTO> pageBeanNew = pcloudRobotDao.listPageNew(new PageParam(currentPage, numPerPage),paramMap, "listSelfRobotByClassify"); PageBeanNew<RobotClassifyDTO> pageBeanNew = pcloudRobotDao.listPageNew(new PageParam(currentPage, numPerPage),paramMap, "listSelfRobotByClassify");
List<RobotClassifyDTO> robotClassifyDTOS = pageBeanNew.getRecordList(); List<RobotClassifyDTO> robotClassifyDTOS = pageBeanNew.getRecordList();
if (ListUtils.isEmpty(robotClassifyDTOS)) { if (ListUtils.isEmpty(robotClassifyDTOS)) {
...@@ -968,4 +978,9 @@ wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO)); ...@@ -968,4 +978,9 @@ wechatGroupConsr.sendMessage(JSON.toJSONString(sendFileVO));
} }
} }
@Override
public PcloudRobotResponseVO getSelfRobotClassify(String robotId) {
return pcloudRobotDao.getSelfRobotClassify(robotId);
}
} }
...@@ -3,6 +3,7 @@ package com.pcloud.book.pcloudkeyword.dao; ...@@ -3,6 +3,7 @@ package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO; import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dto.PcloudRobotCountDTO; import com.pcloud.book.pcloudkeyword.dto.PcloudRobotCountDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot; import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotResponseVO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List; import java.util.List;
...@@ -52,4 +53,5 @@ public interface PcloudRobotDao extends BaseDao<PcloudRobot> { ...@@ -52,4 +53,5 @@ public interface PcloudRobotDao extends BaseDao<PcloudRobot> {
List<PcloudRobotCountDTO> getPcloudRobotCount(List<Long> classifyIds); List<PcloudRobotCountDTO> getPcloudRobotCount(List<Long> classifyIds);
PcloudRobotResponseVO getSelfRobotClassify(String robotId);
} }
...@@ -5,6 +5,7 @@ import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO; ...@@ -5,6 +5,7 @@ import com.pcloud.book.pcloudKeyword.dto.RobotClassifyDTO;
import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao; import com.pcloud.book.pcloudkeyword.dao.PcloudRobotDao;
import com.pcloud.book.pcloudkeyword.dto.PcloudRobotCountDTO; import com.pcloud.book.pcloudkeyword.dto.PcloudRobotCountDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot; import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotResponseVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -112,4 +113,10 @@ public class PcloudRobotDaoImpl extends BaseDaoImpl<PcloudRobot> implements Pclo ...@@ -112,4 +113,10 @@ public class PcloudRobotDaoImpl extends BaseDaoImpl<PcloudRobot> implements Pclo
map.put("classifyIds", classifyIds); map.put("classifyIds", classifyIds);
return getSessionTemplate().selectList(getStatement("getPcloudRobotCount"), map); return getSessionTemplate().selectList(getStatement("getPcloudRobotCount"), map);
} }
@Override
public PcloudRobotResponseVO getSelfRobotClassify(String robotId) {
return this.getSessionTemplate().selectOne(this.getStatement("getSelfRobotClassify"), robotId);
}
} }
...@@ -5,6 +5,7 @@ import com.pcloud.book.pcloudkeyword.dto.PcloudTdDTO; ...@@ -5,6 +5,7 @@ import com.pcloud.book.pcloudkeyword.dto.PcloudTdDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudClassifyTemplate; import com.pcloud.book.pcloudkeyword.entity.PcloudClassifyTemplate;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot; import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome; import com.pcloud.book.pcloudkeyword.entity.PcloudRobotWelcome;
import com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotResponseVO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
...@@ -295,4 +296,15 @@ public class PcloudRobotFacade { ...@@ -295,4 +296,15 @@ public class PcloudRobotFacade {
pcloudRobotBiz.updateUniqueNumber(id, uniqueNumber); pcloudRobotBiz.updateUniqueNumber(id, uniqueNumber);
return new ResponseDto<>(); return new ResponseDto<>();
} }
@ApiOperation(value = "根据小号id获取小号信息")
@GetMapping("getSelfRobotClassify")
ResponseDto<?> getSelfRobotClassify(
@RequestHeader("token") String token,
@RequestParam(value = "robotId") String robotId
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<PcloudRobotResponseVO>(pcloudRobotBiz.getSelfRobotClassify(robotId));
}
} }
package com.pcloud.book.push.biz.impl; package com.pcloud.book.push.biz.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.pcloud.appcenter.app.dto.AppDto; import com.dcg.coolq.sdk.message.MessageBuilder;
import com.dcg.coolq.sdk.message.components.ComponentImage;
import com.dcg.coolq.sdk.message.components.ComponentRecord;
import com.dcg.coolq.sdk.message.components.ComponentText;
import com.dcg.coolq.sdk.message.vos.send.PrivateMsgSendVO;
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;
...@@ -16,12 +20,10 @@ import com.pcloud.book.group.enums.AppAndProductTypeEnum; ...@@ -16,12 +20,10 @@ import com.pcloud.book.group.enums.AppAndProductTypeEnum;
import com.pcloud.book.group.enums.LargeTempletEnum; import com.pcloud.book.group.enums.LargeTempletEnum;
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.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.entity.PcloudRobot; import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.pcloudkeyword.enums.WelcomeReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.set.PcloudRobotSet; 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;
...@@ -37,11 +39,11 @@ import com.pcloud.book.push.entity.PersonalApplets; ...@@ -37,11 +39,11 @@ import com.pcloud.book.push.entity.PersonalApplets;
import com.pcloud.book.push.entity.SelfPush; import com.pcloud.book.push.entity.SelfPush;
import com.pcloud.book.push.entity.SelfPushItem; import com.pcloud.book.push.entity.SelfPushItem;
import com.pcloud.book.push.entity.SelfPushUser; import com.pcloud.book.push.entity.SelfPushUser;
import com.pcloud.book.push.enums.AltTypeEnum;
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.skill.dto.AppOrProductReplyDTO; import com.pcloud.book.skill.dto.AppOrProductReplyDTO;
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;
...@@ -53,7 +55,6 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO; ...@@ -53,7 +55,6 @@ 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;
...@@ -131,6 +132,7 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -131,6 +132,7 @@ public class SelfPushBizImpl implements SelfPushBiz {
SelfPush selfPush = new SelfPush(); SelfPush selfPush = new SelfPush();
selfPush.setCreateUser(partyId); selfPush.setCreateUser(partyId);
selfPush.setUpdateUser(partyId); selfPush.setUpdateUser(partyId);
selfPush.setAltType(addParamDTO.getAltType());
if (SystemCode.adviser.code.equalsIgnoreCase(addParamDTO.getSystemCode())){ if (SystemCode.adviser.code.equalsIgnoreCase(addParamDTO.getSystemCode())){
selfPush.setBookGroupId(addParamDTO.getBookGroupId()); selfPush.setBookGroupId(addParamDTO.getBookGroupId());
selfPush.setSendAll(false); selfPush.setSendAll(false);
...@@ -138,7 +140,7 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -138,7 +140,7 @@ public class SelfPushBizImpl implements SelfPushBiz {
if (SystemCode.pcloud.code.equalsIgnoreCase(addParamDTO.getSystemCode())){ if (SystemCode.pcloud.code.equalsIgnoreCase(addParamDTO.getSystemCode())){
selfPush.setAltId(addParamDTO.getAltId()); selfPush.setAltId(addParamDTO.getAltId());
if (addParamDTO.getSendAll()){//发送全部好友 if (addParamDTO.getSendAll()){//发送全部好友
List<String> userIdList = wechatGroupConsr.getFriendByRobotId(addParamDTO.getAltId()); List<String> userIdList = wechatGroupConsr.getFriendByRobotId(addParamDTO.getAltId(),addParamDTO.getAltType());
addParamDTO.setUserIdList(userIdList); addParamDTO.setUserIdList(userIdList);
} }
selfPush.setSendAll(addParamDTO.getSendAll()); selfPush.setSendAll(addParamDTO.getSendAll());
...@@ -309,7 +311,7 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -309,7 +311,7 @@ public class SelfPushBizImpl implements SelfPushBiz {
} }
/** /**
* 微信群消息推送 * 群发消息推送
*/ */
private void msgPush(List<String> userIdList, List<SelfPushItem> itemList, Long pushId) { private void msgPush(List<String> userIdList, List<SelfPushItem> itemList, Long pushId) {
SelfPush selfPush = selfPushDao.getById(pushId); SelfPush selfPush = selfPushDao.getById(pushId);
...@@ -327,7 +329,11 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -327,7 +329,11 @@ public class SelfPushBizImpl implements SelfPushBiz {
for (String userId : sendUserIds) { for (String userId : sendUserIds) {
String uuid= UUID.randomUUID().toString(); String uuid= UUID.randomUUID().toString();
for (SelfPushItem pushItem : itemList) { for (SelfPushItem pushItem : itemList) {
if (AltTypeEnum.WECHAT.code.equals(selfPush.getAltType())){
sendSelfMsg(userId, altId, pushItem, uuid, itemList.indexOf(pushItem),itemList.size()); sendSelfMsg(userId, altId, pushItem, uuid, itemList.indexOf(pushItem),itemList.size());
} else if (AltTypeEnum.QQ.code.equals(selfPush.getAltType())){
sendSelfMsg4QQ(userId, altId, pushItem);
}
} }
} }
selfPushItemDao.updatePushStatusByPushId(PushStatusEnum.SUCCESS.value, pushId); selfPushItemDao.updatePushStatusByPushId(PushStatusEnum.SUCCESS.value, pushId);
...@@ -349,7 +355,11 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -349,7 +355,11 @@ public class SelfPushBizImpl implements SelfPushBiz {
String altId = bookGroupDTO.getWxId(); String altId = bookGroupDTO.getWxId();
String uuid= UUID.randomUUID().toString(); String uuid= UUID.randomUUID().toString();
for (SelfPushItem pushItem : itemList) { for (SelfPushItem pushItem : itemList) {
if (AltTypeEnum.WECHAT.code.equals(selfPush.getAltType())) {
sendSelfMsg(userId, altId, pushItem, uuid, itemList.indexOf(pushItem), itemList.size()); sendSelfMsg(userId, altId, pushItem, uuid, itemList.indexOf(pushItem), itemList.size());
}else if (AltTypeEnum.QQ.code.equals(selfPush.getAltType())){
sendSelfMsg4QQ(userId, altId, pushItem);
}
} }
} }
selfPushItemDao.updatePushStatusByPushId(PushStatusEnum.SUCCESS.value, pushId); selfPushItemDao.updatePushStatusByPushId(PushStatusEnum.SUCCESS.value, pushId);
...@@ -358,7 +368,43 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -358,7 +368,43 @@ public class SelfPushBizImpl implements SelfPushBiz {
} }
private void sendSelfMsg4QQ(String userId, String altId, SelfPushItem selfPushItem) {
if (StringUtil.isEmpty(userId) || StringUtil.isEmpty(altId)){
return;
}
if(pcloudRobotBiz.getUserTdState(altId, userId) == 1) {
return;
}
Integer itemType = selfPushItem.getItemType();
PrivateMsgSendVO privateMsgSendVO = new PrivateMsgSendVO();
privateMsgSendVO.setSenderQQCode(Long.valueOf(altId));
privateMsgSendVO.setReceiverQQCode(Long.valueOf(userId));
if (ItemTypeEnum.TEXT.value.equals(itemType)) {
// 构造一个文本消息
String message = new MessageBuilder().add(new ComponentText(selfPushItem.getTextContent())).toString();// 文本消息
privateMsgSendVO.setMessage(message);
wechatGroupConsr.sendMessage4QQ(privateMsgSendVO);
return;
}
if (ItemTypeEnum.IMAGE.value.equals(itemType)) {
// 构造一个图片消息
String message = new MessageBuilder().add(new ComponentImage(selfPushItem.getImageUrl())) .toString(); // 图片消息
privateMsgSendVO.setMessage(message);
wechatGroupConsr.sendMessage4QQ(privateMsgSendVO);
return;
}
if (ItemTypeEnum.AUDIO.value.equals(itemType)) {
Map<Long, ResourceDTO> map = resourceConsr.mapByIds(Arrays.asList(selfPushItem.getResourceId()));
ResourceDTO resourceDTO = map.get(selfPushItem.getResourceId());
if (resourceDTO != null && !StringUtil.isEmpty(resourceDTO.getFileUrl())) {
// 构造一个文件消息
String message = new MessageBuilder().add(new ComponentRecord(resourceDTO.getFileUrl(),false)).toString();
privateMsgSendVO.setMessage(message);
wechatGroupConsr.sendMessage4QQ(privateMsgSendVO);
}
return;
}
}
/** /**
* 群发项设置 * 群发项设置
...@@ -596,7 +642,7 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -596,7 +642,7 @@ public class SelfPushBizImpl implements SelfPushBiz {
} }
if (isXIAORUI){//小睿无扫码书刊标签 if (isXIAORUI){//小睿无扫码书刊标签
List<String> wxUserIds = pageBeanNew.getRecordList().stream().filter(s -> s.getWxUserId() != null).map(UserBookInfoVO::getWxUserId).distinct().collect(Collectors.toList()); List<String> wxUserIds = pageBeanNew.getRecordList().stream().filter(s -> s.getWxUserId() != null).map(UserBookInfoVO::getWxUserId).distinct().collect(Collectors.toList());
Map<String, GroupUserDTO> userDTOMap = wechatGroupConsr.mapWxUserInfoByWxIdList(wxUserIds); Map<String, GroupUserDTO> userDTOMap = wechatGroupConsr.mapWxUserInfoByWxIdListAndType(wxUserIds,selfPush.getAltType());
for (UserBookInfoVO userBookInfoVO : pageBeanNew.getRecordList()) { for (UserBookInfoVO userBookInfoVO : pageBeanNew.getRecordList()) {
if (!MapUtils.isEmpty(userDTOMap) && userDTOMap.containsKey(userBookInfoVO.getWxUserId())) { if (!MapUtils.isEmpty(userDTOMap) && userDTOMap.containsKey(userBookInfoVO.getWxUserId())) {
GroupUserDTO userDTO = userDTOMap.get(userBookInfoVO.getWxUserId()); GroupUserDTO userDTO = userDTOMap.get(userBookInfoVO.getWxUserId());
...@@ -622,44 +668,11 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -622,44 +668,11 @@ public class SelfPushBizImpl implements SelfPushBiz {
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())) { if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())) {
return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>()); return new PageBeanNew<>(currentPage, numPerPage, 0, new ArrayList<>());
} }
for (SelfPushRecordDTO dto:pageBeanNew.getRecordList()) { //填充群发时间
String realSendTime=""; setSelfPushTime(pageBeanNew.getRecordList());
if(dto.getPushType()!=null&&dto.getPushType()==1){ //填充群发人数和关联书刊
realSendTime=DateUtils.formatDate(dto.getStartTime(),"yyyy-MM-dd")+"至"+DateUtils.formatDate(dto.getEndTime(),"yyyy-MM-dd")+";";
realSendTime=realSendTime+"每天;"+dto.getPushSendTime();
dto.setRealSendTime(realSendTime);
}else if(dto.getPushType()!=null&&dto.getPushType()==2){
String weekDays = dto.getWeekDays();
realSendTime=DateUtils.formatDate(dto.getStartTime(),"yyyy-MM-dd")+"至"+DateUtils.formatDate(dto.getEndTime(),"yyyy-MM-dd")+";";
if(weekDays.contains("1")){
weekDays= weekDays.replace("1","周一");
}
if(weekDays.contains("2")){
weekDays= weekDays.replace("2","周二");
}
if(weekDays.contains("3")){
weekDays= weekDays.replace("3","周三");
}
if(weekDays.contains("4")){
weekDays= weekDays.replace("4","周四");
}
if(weekDays.contains("5")){
weekDays= weekDays.replace("5","周五");
}
if(weekDays.contains("6")){
weekDays= weekDays.replace("6","周六");
}
if(weekDays.contains("7")){
weekDays= weekDays.replace("7","周日");
}
realSendTime=realSendTime+weekDays+";"+dto.getPushSendTime();
dto.setRealSendTime(realSendTime);
}else{
dto.setRealSendTime(DateUtils.formatDate(dto.getSendTime(),"yyyy-MM-dd HH:mm:ss"));
}
}
fillPushItemsAndBookName(pageBeanNew.getRecordList()); fillPushItemsAndBookName(pageBeanNew.getRecordList());
//填充个人号信息、群发创建人信息
List<String> wxIds = pageBeanNew.getRecordList().stream().filter(s -> !StringUtil.isEmpty(s.getAltId())).map(SelfPushRecordDTO::getAltId).distinct().collect(Collectors.toList()); List<String> wxIds = pageBeanNew.getRecordList().stream().filter(s -> !StringUtil.isEmpty(s.getAltId())).map(SelfPushRecordDTO::getAltId).distinct().collect(Collectors.toList());
Map<String, GroupUserDTO> robotMap = new HashMap<>(); Map<String, GroupUserDTO> robotMap = new HashMap<>();
Map<String, RobotClassifyDTO> robotClassifyDTOMap =new HashMap<>(); Map<String, RobotClassifyDTO> robotClassifyDTOMap =new HashMap<>();
...@@ -667,18 +680,16 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -667,18 +680,16 @@ public class SelfPushBizImpl implements SelfPushBiz {
robotMap = wechatGroupConsr.mapRobotInfoByIdList(wxIds); robotMap = wechatGroupConsr.mapRobotInfoByIdList(wxIds);
robotClassifyDTOMap=pcloudRobotBiz.mapByIds4Classify(wxIds); robotClassifyDTOMap=pcloudRobotBiz.mapByIds4Classify(wxIds);
} }
List<Long> pcloudPartyIds = pageBeanNew.getRecordList().stream().filter(s->!StringUtil.isEmpty(s.getAltId())).map(SelfPushRecordDTO::getCreateUser).distinct().collect(Collectors.toList()); List<Long> pcloudPartyIds = pageBeanNew.getRecordList().stream().filter(s->!StringUtil.isEmpty(s.getAltId())).map(SelfPushRecordDTO::getCreateUser).distinct().collect(Collectors.toList());
Map<Long, UserLogin> loginMap = new HashMap<>(); Map<Long, UserLogin> loginMap = new HashMap<>();
if (!ListUtils.isEmpty(pcloudPartyIds)){ if (!ListUtils.isEmpty(pcloudPartyIds)){
for (Long id : pcloudPartyIds){ for (Long id : pcloudPartyIds){
if (id == 0L){ if (id != 0L){
continue;
}
UserLogin userLogin = partyConsr.getUserLoginInfoByPartyId(id,SystemCode.pcloud.code,"0"); UserLogin userLogin = partyConsr.getUserLoginInfoByPartyId(id,SystemCode.pcloud.code,"0");
loginMap.put(id,userLogin); loginMap.put(id,userLogin);
} }
} }
}
for (SelfPushRecordDTO dto : pageBeanNew.getRecordList()) { for (SelfPushRecordDTO dto : pageBeanNew.getRecordList()) {
if (!MapUtils.isEmpty(robotMap) && !StringUtil.isEmpty(dto.getAltId()) && robotMap.containsKey(dto.getAltId())) { if (!MapUtils.isEmpty(robotMap) && !StringUtil.isEmpty(dto.getAltId()) && robotMap.containsKey(dto.getAltId())) {
GroupUserDTO userDTO = robotMap.get(dto.getAltId()); GroupUserDTO userDTO = robotMap.get(dto.getAltId());
...@@ -702,6 +713,49 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -702,6 +713,49 @@ public class SelfPushBizImpl implements SelfPushBiz {
return pageBeanNew; return pageBeanNew;
} }
private void setSelfPushTime(List<SelfPushRecordDTO> recordList) {
if (ListUtils.isEmpty(recordList)){
return;
}
for (SelfPushRecordDTO dto:recordList) {
String realSendTime="";
if(dto.getPushType()!=null&&dto.getPushType()==1){
realSendTime=DateUtils.formatDate(dto.getStartTime(),"yyyy-MM-dd")+"至"+DateUtils.formatDate(dto.getEndTime(),"yyyy-MM-dd")+";";
realSendTime=realSendTime+"每天;"+dto.getPushSendTime();
dto.setRealSendTime(realSendTime);
}else if(dto.getPushType()!=null&&dto.getPushType()==2){
String weekDays = dto.getWeekDays();
realSendTime=DateUtils.formatDate(dto.getStartTime(),"yyyy-MM-dd")+"至"+DateUtils.formatDate(dto.getEndTime(),"yyyy-MM-dd")+";";
if(weekDays.contains("1")){
weekDays= weekDays.replace("1","周一");
}
if(weekDays.contains("2")){
weekDays= weekDays.replace("2","周二");
}
if(weekDays.contains("3")){
weekDays= weekDays.replace("3","周三");
}
if(weekDays.contains("4")){
weekDays= weekDays.replace("4","周四");
}
if(weekDays.contains("5")){
weekDays= weekDays.replace("5","周五");
}
if(weekDays.contains("6")){
weekDays= weekDays.replace("6","周六");
}
if(weekDays.contains("7")){
weekDays= weekDays.replace("7","周日");
}
realSendTime=realSendTime+weekDays+";"+dto.getPushSendTime();
dto.setRealSendTime(realSendTime);
}else{
dto.setRealSendTime(DateUtils.formatDate(dto.getSendTime(),"yyyy-MM-dd HH:mm:ss"));
}
}
}
private void fillPushItemsAndBookName(List<SelfPushRecordDTO> recordList) { private void fillPushItemsAndBookName(List<SelfPushRecordDTO> recordList) {
List<Long> pushIds=new ArrayList<>(); List<Long> pushIds=new ArrayList<>();
List<Long> bookGroupIds=new ArrayList<>(); List<Long> bookGroupIds=new ArrayList<>();
...@@ -742,7 +796,8 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -742,7 +796,8 @@ public class SelfPushBizImpl implements SelfPushBiz {
if (ListUtils.isEmpty(list)){ if (ListUtils.isEmpty(list)){
return; return;
} }
List<Long> resourceIds = list.stream().filter(s->s.getItemType().equals(ItemTypeEnum.RESOURCE.value)).map(SelfPushItem::getResourceId).distinct().collect(Collectors.toList()); List<Long> resourceIds = list.stream().filter(s->(s.getItemType().equals(ItemTypeEnum.RESOURCE.value) || s.getItemType().equals(ItemTypeEnum.AUDIO.value))).
map(SelfPushItem::getResourceId).distinct().collect(Collectors.toList());
Map<Long, ResourceDTO> resourceDTOMap=new HashMap<>(); Map<Long, ResourceDTO> resourceDTOMap=new HashMap<>();
if (!ListUtils.isEmpty(resourceIds)){ if (!ListUtils.isEmpty(resourceIds)){
resourceDTOMap = resourceConsr.mapByIds(resourceIds); resourceDTOMap = resourceConsr.mapByIds(resourceIds);
...@@ -774,6 +829,21 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -774,6 +829,21 @@ public class SelfPushBizImpl implements SelfPushBiz {
if (ItemTypeEnum.IMAGE.value.equals(selfPushItem.getItemType())){ if (ItemTypeEnum.IMAGE.value.equals(selfPushItem.getItemType())){
selfPushItem.setReplyType(ReplyTypeEnum.IMAGE.value); selfPushItem.setReplyType(ReplyTypeEnum.IMAGE.value);
} }
if (ItemTypeEnum.AUDIO.value.equals(selfPushItem.getItemType())){
selfPushItem.setReplyType(ReplyTypeEnum.AUDIO.value);
ResourceDTO resourceDTO = resourceDTOMap.get(selfPushItem.getResourceId());
if (resourceDTO!=null){
selfPushItem.setResourceName(resourceDTO.getResourceName());
selfPushItem.setResourceUrl(resourceDTO.getFileUrl());
selfPushItem.setResourceTypeCode(resourceDTO.getTypeCode());
selfPushItem.setResourceTypeName(resourceDTO.getTypeName());
selfPushItem.setFileType(resourceDTO.getFileType());
selfPushItem.setResourcePdfItems(resourceDTO.getResourcePdfItems());
selfPushItem.setResourceOfficeItemDTOs(resourceDTO.getResourceOfficeItemDTOs());
selfPushItem.setFileSize(resourceDTO.getFileSize());
}
}
} }
} }
...@@ -797,7 +867,7 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -797,7 +867,7 @@ public class SelfPushBizImpl implements SelfPushBiz {
} }
List<String> userIdList = selfPushUserDao.getUserIdListByPushId(pushId); List<String> userIdList = selfPushUserDao.getUserIdListByPushId(pushId);
if (selfPush.getSendAll() && !StringUtil.isEmpty(selfPush.getAltId())){//群发所有好友,更新发送好友列表 if (selfPush.getSendAll() && !StringUtil.isEmpty(selfPush.getAltId())){//群发所有好友,更新发送好友列表
userIdList = wechatGroupConsr.getFriendByRobotId(selfPush.getAltId()); userIdList = wechatGroupConsr.getFriendByRobotId(selfPush.getAltId(), selfPush.getAltType());
selfPushUserDao.deleteByPushId(pushId); selfPushUserDao.deleteByPushId(pushId);
setSelfPushUser(userIdList, selfPush.getCreateUser(), pushId); setSelfPushUser(userIdList, selfPush.getCreateUser(), pushId);
} }
...@@ -885,7 +955,11 @@ public class SelfPushBizImpl implements SelfPushBiz { ...@@ -885,7 +955,11 @@ public class SelfPushBizImpl implements SelfPushBiz {
if (pcloudRobot!=null){ if (pcloudRobot!=null){
//小睿 //小睿
altName=pcloudRobot.getNickName(); altName=pcloudRobot.getNickName();
altTypeName="小睿"; if (AltTypeEnum.WECHAT.code.equals(selfPush.getAltType())){
altTypeName = LargeTempletEnum.XIAORUI.name;
} else if (AltTypeEnum.QQ.code.equals(selfPush.getAltType())){
altTypeName = LargeTempletEnum.XIAORUI_QQ.name;
}
}else { }else {
//不是小睿 //不是小睿
Map<String, RobotBaseInfoDTO> mapRobotInfo = wechatGroupConsr.mapRobotInfo(Arrays.asList(altId)); Map<String, RobotBaseInfoDTO> mapRobotInfo = wechatGroupConsr.mapRobotInfo(Arrays.asList(altId));
......
...@@ -9,6 +9,7 @@ import com.pcloud.book.push.entity.Push; ...@@ -9,6 +9,7 @@ import com.pcloud.book.push.entity.Push;
import com.pcloud.book.push.entity.PushGroup; import com.pcloud.book.push.entity.PushGroup;
import com.pcloud.book.push.entity.PushItem; import com.pcloud.book.push.entity.PushItem;
import com.pcloud.book.push.entity.SelfPushItem; import com.pcloud.book.push.entity.SelfPushItem;
import com.pcloud.book.push.enums.AltTypeEnum;
import com.pcloud.book.push.enums.ItemTypeEnum; import com.pcloud.book.push.enums.ItemTypeEnum;
import com.pcloud.book.push.enums.PushTypeEnum; import com.pcloud.book.push.enums.PushTypeEnum;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
...@@ -308,6 +309,9 @@ public class PushCheck { ...@@ -308,6 +309,9 @@ public class PushCheck {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "请选择群发对象"); throw new BookBizException(BookBizException.PARAM_IS_NULL, "请选择群发对象");
} }
} }
if (null == addParamDTO.getAltType()){//默认微信发送
addParamDTO.setAltType(AltTypeEnum.WECHAT.code);
}
if (null == addParamDTO.getSendNow()) { if (null == addParamDTO.getSendNow()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少立即发送字段"); throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少立即发送字段");
} }
...@@ -333,8 +337,6 @@ public class PushCheck { ...@@ -333,8 +337,6 @@ public class PushCheck {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "自定义发送周机不能为空"); throw new BookBizException(BookBizException.PARAM_IS_NULL, "自定义发送周机不能为空");
} }
} }
} }
if (ListUtils.isEmpty(addParamDTO.getReplyParamDTOS())) { if (ListUtils.isEmpty(addParamDTO.getReplyParamDTOS())) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "发送消息为空"); throw new BookBizException(BookBizException.PARAM_IS_NULL, "发送消息为空");
...@@ -370,6 +372,9 @@ public class PushCheck { ...@@ -370,6 +372,9 @@ public class PushCheck {
if (ReplyTypeEnum.RESOURCE.value.equals(replyParamDTO.getReplyType()) && null == replyParamDTO.getResourceId()) { if (ReplyTypeEnum.RESOURCE.value.equals(replyParamDTO.getReplyType()) && null == replyParamDTO.getResourceId()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "发送消息项内容类型为文件时,文件id不能为空!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR, "发送消息项内容类型为文件时,文件id不能为空!");
} }
if (ReplyTypeEnum.AUDIO.value.equals(replyParamDTO.getReplyType()) && null == replyParamDTO.getResourceId()) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "发送消息项内容类型为语音时,文件id不能为空!");
}
//参数转换 //参数转换
List<SelfPushItem> items = paramChange(addParamDTO.getReplyParamDTOS()); List<SelfPushItem> items = paramChange(addParamDTO.getReplyParamDTOS());
...@@ -420,6 +425,10 @@ public class PushCheck { ...@@ -420,6 +425,10 @@ public class PushCheck {
item.setLinkUrl(paramDTO.getLinkUrl()); item.setLinkUrl(paramDTO.getLinkUrl());
item.setItemType(ItemTypeEnum.APP.value); item.setItemType(ItemTypeEnum.APP.value);
} }
if (ReplyTypeEnum.AUDIO.value.equals(paramDTO.getReplyType())){
item.setResourceId(paramDTO.getResourceId());
item.setItemType(ItemTypeEnum.AUDIO.value);
}
itemList.add(item); itemList.add(item);
} }
return itemList; return itemList;
......
...@@ -72,6 +72,9 @@ public class SelfPushAddParamDTO { ...@@ -72,6 +72,9 @@ public class SelfPushAddParamDTO {
* 是否发送所有好友 * 是否发送所有好友
*/ */
private Boolean sendAll; private Boolean sendAll;
/**
* 个人号类型(1微信2QQ)
*/
private Integer altType;
} }
...@@ -127,5 +127,8 @@ public class SelfPushRecordDTO extends BaseDto{ ...@@ -127,5 +127,8 @@ public class SelfPushRecordDTO extends BaseDto{
@ApiModelProperty("资源id") @ApiModelProperty("资源id")
private Long resourceId; private Long resourceId;
@ApiModelProperty("个人号分类")
private Integer groupRobotType;
} }
...@@ -11,6 +11,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -11,6 +11,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ApiModel("个人号群发") @ApiModel("个人号群发")
@Data
public class SelfPush extends BaseEntity{ public class SelfPush extends BaseEntity{
@ApiModelProperty("群发小号id") @ApiModelProperty("群发小号id")
...@@ -55,8 +56,6 @@ public class SelfPush extends BaseEntity{ ...@@ -55,8 +56,6 @@ public class SelfPush extends BaseEntity{
@ApiModelProperty("计划发送时间(不带日期)") @ApiModelProperty("计划发送时间(不带日期)")
private String pushSendTime; private String pushSendTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("发送时间") @ApiModelProperty("发送时间")
private Date sendTime; private Date sendTime;
...@@ -70,143 +69,7 @@ public class SelfPush extends BaseEntity{ ...@@ -70,143 +69,7 @@ public class SelfPush extends BaseEntity{
@ApiModelProperty("个人号发送项集合") @ApiModelProperty("个人号发送项集合")
private List<SelfPushItem> pushItems; private List<SelfPushItem> pushItems;
public Date getStartTime() { @ApiModelProperty("个人号类型(1微信2QQ)")
return startTime; private Integer altType;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public Integer getPushType() {
return pushType;
}
public void setPushType(Integer pushType) {
this.pushType = pushType;
}
public String getWeekDays() {
return weekDays;
}
public void setWeekDays(String weekDays) {
this.weekDays = weekDays;
}
public String getPushSendTime() {
return pushSendTime;
}
public void setPushSendTime(String pushSendTime) {
this.pushSendTime = pushSendTime;
}
public String getAltId() {
return altId;
}
public void setAltId(String altId) {
this.altId = altId;
}
public String getAltName() {
return altName;
}
public void setAltName(String altName) {
this.altName = altName;
}
public String getAltTypeName() {
return altTypeName;
}
public void setAltTypeName(String altTypeName) {
this.altTypeName = altTypeName;
}
public List<SelfPushItem> getPushItems() {
return pushItems;
}
public void setPushItems(List<SelfPushItem> pushItems) {
this.pushItems = pushItems;
}
public Long getCreateUser() {
return createUser;
}
public void setCreateUser(Long createUser) {
this.createUser = createUser;
}
@Override
public Date getCreateTime() {
return createTime;
}
@Override
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getUpdateUser() {
return updateUser;
}
public void setUpdateUser(Long updateUser) {
this.updateUser = updateUser;
}
@Override
public Date getUpdateTime() {
return updateTime;
}
@Override
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Boolean getSendNow() {
return sendNow;
}
public void setSendNow(Boolean sendNow) {
this.sendNow = sendNow;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public Long getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public Boolean getSendAll() {
return sendAll;
}
public void setSendAll(Boolean sendAll) {
this.sendAll = sendAll;
}
} }
\ No newline at end of file
package com.pcloud.book.push.enums;
/**
* 个人号类型
*/
public enum AltTypeEnum {
/**
* 1微信
*/
WECHAT(1),
/**
* 2 QQ
*/
QQ(2);
public Integer code;
AltTypeEnum(Integer code) {
this.code = code;
}
}
...@@ -27,6 +27,10 @@ public enum ItemTypeEnum { ...@@ -27,6 +27,10 @@ public enum ItemTypeEnum {
* 资源 * 资源
*/ */
RESOURCE(5), RESOURCE(5),
/**
* 语音
*/
AUDIO(6),
/** /**
* 小程序 * 小程序
......
...@@ -329,7 +329,7 @@ public class SelfPlanBizImpl implements SelfPlanBiz { ...@@ -329,7 +329,7 @@ public class SelfPlanBizImpl implements SelfPlanBiz {
PcloudRobot pcloudRobot = pcloudRobotBiz.getPcloudRobotByWxId(robotId); PcloudRobot pcloudRobot = pcloudRobotBiz.getPcloudRobotByWxId(robotId);
if (null != pcloudRobot) { if (null != pcloudRobot) {
PageBeanNew<String> wechatUserIdPage = wechatGroupConsr.listPageFriend(currentPage, numPerPage, PageBeanNew<String> wechatUserIdPage = wechatGroupConsr.listPageFriend(currentPage, numPerPage,
robotId, userSelectParamDTO.getUserQuery()); robotId, userSelectParamDTO.getUserQuery(), userSelectParamDTO.getGroupRobotType());
if (!ListUtils.isEmpty(wechatUserIdPage.getRecordList())) { if (!ListUtils.isEmpty(wechatUserIdPage.getRecordList())) {
List<String> wechatUserIds = wechatUserIdPage.getRecordList(); List<String> wechatUserIds = wechatUserIdPage.getRecordList();
Map<String, SelfPlanUserDto> selfPlanUserDtoMap = timeControlSelfPlanMapper.getSelfPlanUserDtoMap(wechatUserIds); Map<String, SelfPlanUserDto> selfPlanUserDtoMap = timeControlSelfPlanMapper.getSelfPlanUserDtoMap(wechatUserIds);
......
...@@ -16,10 +16,18 @@ ...@@ -16,10 +16,18 @@
<result column="welcome_duration" property="welcomeDuration" jdbcType="INTEGER" /> <result column="welcome_duration" property="welcomeDuration" jdbcType="INTEGER" />
<result column="group_robot_type" property="groupRobotType" jdbcType="INTEGER" /> <result column="group_robot_type" property="groupRobotType" jdbcType="INTEGER" />
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, wx_id, nick_name, head, qrcode_url, robot_type, keyword_classify_id, state, real_status, wake_up, unique_number,welcome_duration,group_robot_type id, wx_id, nick_name, head, qrcode_url, robot_type, keyword_classify_id, state, real_status, wake_up, unique_number,welcome_duration,group_robot_type
</sql> </sql>
<sql id="r_Base_Column_List" >
r.id, r.wx_id, r.nick_name, r.head, r.qrcode_url, r.robot_type, r.keyword_classify_id, r.state, r.real_status, r.wake_up,
r.unique_number,r.welcome_duration,r.group_robot_type
</sql>
<insert id="insert" parameterType="PcloudRobot" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="PcloudRobot" useGeneratedKeys="true" keyProperty="id">
insert into pcloud_robot ( insert into pcloud_robot (
wx_id, wx_id,
...@@ -342,6 +350,9 @@ ...@@ -342,6 +350,9 @@
'${item}' '${item}'
</foreach> </foreach>
</if> </if>
<if test="groupRobotType != null">
AND p.group_robot_type = #{groupRobotType}
</if>
</select> </select>
<select id="listNoClassifyRobot" resultMap="BaseResultMap"> <select id="listNoClassifyRobot" resultMap="BaseResultMap">
...@@ -384,4 +395,16 @@ ...@@ -384,4 +395,16 @@
GROUP BY CONCAT_WS("-",robot_type,group_robot_type) GROUP BY CONCAT_WS("-",robot_type,group_robot_type)
</select> </select>
<select id="getSelfRobotClassify" parameterType="string" resultType="com.pcloud.book.pcloudkeyword.facade.response.PcloudRobotResponseVO">
select
r.wx_id wxId,
r.nick_name nickName,
r.unique_number uniqueNum,
r.robot_type classifyId,
rc.classify_name classifyName
from pcloud_robot r
left join pcloud_robot_classify rc on r.robot_type = rc.id
where
r.wx_id = #{robotId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -126,7 +126,8 @@ ...@@ -126,7 +126,8 @@
p.push_send_time pushSendTime, p.push_send_time pushSendTime,
p.week_days weekDays, p.week_days weekDays,
p.push_type pushType, p.push_type pushType,
i.resource_id resourceId i.resource_id resourceId,
p.alt_type groupRobotType
FROM FROM
self_push_item i self_push_item i
LEFT JOIN self_push p ON i.push_id = p.id LEFT JOIN self_push p ON i.push_id = p.id
......
...@@ -17,23 +17,23 @@ ...@@ -17,23 +17,23 @@
<result column="push_type" property="pushType" jdbcType="BIT" /> <result column="push_type" property="pushType" jdbcType="BIT" />
<result column="week_days" property="weekDays" jdbcType="VARCHAR" /> <result column="week_days" property="weekDays" jdbcType="VARCHAR" />
<result column="push_send_time" property="pushSendTime" jdbcType="VARCHAR" /> <result column="push_send_time" property="pushSendTime" jdbcType="VARCHAR" />
<result column="alt_type" property="altType" jdbcType="INTEGER" />
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, alt_id, create_user, create_time, update_user, update_time, send_now, send_time, book_group_id, send_all,start_time,end_time, id, alt_id, create_user, create_time, update_user, update_time, send_now, send_time, book_group_id, send_all,start_time,end_time,
push_type,week_days,push_send_time push_type,week_days,push_send_time,alt_type
</sql> </sql>
<insert id="insert" parameterType="com.pcloud.book.push.entity.SelfPush" useGeneratedKeys="true" keyProperty="id"> <insert id="insert" parameterType="com.pcloud.book.push.entity.SelfPush" useGeneratedKeys="true" keyProperty="id">
insert into self_push (id, alt_id, create_user, insert into self_push (id, alt_id, create_user,
create_time, update_user, update_time, send_now, send_time, book_group_id, send_all,start_time,end_time, create_time, update_user, update_time, send_now, send_time, book_group_id, send_all,start_time,end_time,
push_type,week_days,push_send_time push_type,week_days,push_send_time,alt_type
) )
values (#{id,jdbcType=BIGINT}, #{altId,jdbcType=VARCHAR}, #{createUser,jdbcType=BIGINT}, values (#{id,jdbcType=BIGINT}, #{altId,jdbcType=VARCHAR}, #{createUser,jdbcType=BIGINT},
now(), #{updateUser,jdbcType=BIGINT}, now(), #{sendNow}, #{sendTime}, #{bookGroupId}, #{sendAll},#{startTime}, now(), #{updateUser,jdbcType=BIGINT}, now(), #{sendNow}, #{sendTime}, #{bookGroupId}, #{sendAll},#{startTime},
#{endTime},#{pushType},#{weekDays},#{pushSendTime} #{endTime},#{pushType},#{weekDays},#{pushSendTime}, #{altType}
) )
</insert> </insert>
......
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