Commit b9191630 by 裴大威

1000948

parent 9854407b
package com.pcloud.book.consumer.wechatgroup; package com.pcloud.book.consumer.wechatgroup;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.string.StringUtil;
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.RobotReplyDTO; import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
import com.pcloud.wechatgroup.group.service.GroupMemberService; import com.pcloud.wechatgroup.group.service.GroupMemberService;
import com.pcloud.wechatgroup.message.dto.GroupChatCountDTO; import com.pcloud.wechatgroup.message.dto.GroupChatCountDTO;
import com.pcloud.wechatgroup.message.service.MessageService; import com.pcloud.wechatgroup.message.service.MessageService;
import com.pcloud.wechatgroup.monitor.service.MonitorService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -23,38 +22,80 @@ import java.util.HashMap; ...@@ -23,38 +22,80 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Component("wechatGroupConsr") @Component("wechatGroupConsr")
public class WechatGroupConsr { public class WechatGroupConsr {
/**
* logger
*/
private static final Logger LOGGER = LoggerFactory.getLogger(ProductConsr.class);
@Autowired @Autowired
private GroupMemberService groupMemberService; private GroupMemberService groupMemberService;
@Autowired @Autowired
private MessageService messageService; private MessageService messageService;
@Autowired
private MonitorService monitorService;
/**
* 是否黑名单
*/
public Boolean isKickUser(String nickName, String wxGroupId) throws BizException {
log.info("【是否黑名单,<START>.[nickName]={}, wxGroupId:{}" , nickName, wxGroupId);
if (StringUtil.isBlank(nickName) || StringUtil.isBlank(wxGroupId)) {
return null;
}
try {
return ResponseHandleUtil.parseResponse(monitorService.isKickUser(nickName, wxGroupId), Boolean.class);
} catch (BizException e) {
log.warn("是否黑名单失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
log.error("是否黑名单.[isKickUser]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
} finally {
log.info("【是否黑名单,<END>");
}
}
/** /**
* 根据群号获取机器人微信号 * 根据群号获取机器人微信号
*/ */
public String getRobotIdByGroupId(String groupId) throws BizException { public String getRobotIdByGroupId(String groupId) throws BizException {
LOGGER.info("【根据群号获取机器人微信号,<START>.[groupId]=" + groupId + "]"); log.info("【根据群号获取机器人微信号,<START>.[groupId]=" + groupId + "]");
if (groupId == null) { if (groupId == null) {
return null; return null;
} }
try { try {
return ResponseHandleUtil.parseResponse(groupMemberService.getRobotIdByGroupId(groupId), String.class); return ResponseHandleUtil.parseResponse(groupMemberService.getRobotIdByGroupId(groupId), String.class);
} catch (BizException e) { } catch (BizException e) {
LOGGER.warn("根据群号获取机器人微信号失败:" + e.getMessage(), e); log.warn("根据群号获取机器人微信号失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
log.error("根据群号获取机器人微信号.[getRobotIdByGroupId]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
} finally {
log.info("【根据群号获取机器人微信号,<END>");
}
}
/**
* 根据昵称获取微信id
*/
public List<String> getWxUserIdsByNickName(String nickName) throws BizException {
log.info("【根据昵称获取微信id,<START>.[nickName]=" + nickName + "]");
if (StringUtil.isBlank(nickName)) {
return null;
}
try {
return ResponseHandleUtil.parseList(groupMemberService.getWxUserIdsByNickName(nickName), String.class);
} catch (BizException e) {
log.warn("根据昵称获取微信id失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage()); throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("根据群号获取机器人微信号.[getRobotIdByGroupId]:" + e.getMessage(), e); log.error("根据昵称获取微信id.[getWxUserIdsByNickName]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试"); throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
} finally { } finally {
LOGGER.info("【根据群号获取机器人微信号,<END>"); log.info("【根据昵称获取微信id,<END>");
} }
} }
...@@ -66,7 +107,7 @@ public class WechatGroupConsr { ...@@ -66,7 +107,7 @@ public class WechatGroupConsr {
try { try {
return ResponseHandleUtil.parseMapResponse(groupMemberService.mapGroupMemberStatisInfo(weixinGroupIds), String.class, GroupMemberStatisDTO.class); return ResponseHandleUtil.parseMapResponse(groupMemberService.mapGroupMemberStatisInfo(weixinGroupIds), String.class, GroupMemberStatisDTO.class);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取累计进群人数与今日进群人数.[listGroupMemberStatisInfo]:" + e.getMessage(), e); log.error("获取累计进群人数与今日进群人数.[listGroupMemberStatisInfo]:" + e.getMessage(), e);
} }
return null; return null;
} }
...@@ -79,7 +120,7 @@ public class WechatGroupConsr { ...@@ -79,7 +120,7 @@ public class WechatGroupConsr {
try { try {
return ResponseHandleUtil.parseMapResponse(messageService.getChatCountByGroup(groupQrcodeIds, bookGroupId), Long.class, GroupChatCountDTO.class); return ResponseHandleUtil.parseMapResponse(messageService.getChatCountByGroup(groupQrcodeIds, bookGroupId), Long.class, GroupChatCountDTO.class);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取活跃人数与总发言数.[getChatCountByGroup]:" + e.getMessage(), e); log.error("获取活跃人数与总发言数.[getChatCountByGroup]:" + e.getMessage(), e);
} }
return null; return null;
} }
...@@ -92,7 +133,7 @@ public class WechatGroupConsr { ...@@ -92,7 +133,7 @@ public class WechatGroupConsr {
try { try {
return ResponseHandleUtil.parseMapResponse(groupMemberService.mapOutGroupRate(wxGroupIds), String.class, BigDecimal.class); return ResponseHandleUtil.parseMapResponse(groupMemberService.mapOutGroupRate(wxGroupIds), String.class, BigDecimal.class);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取退群率失败.[mapOutGroupRate]:" + e.getMessage(), e); log.error("获取退群率失败.[mapOutGroupRate]:" + e.getMessage(), e);
} }
return null; return null;
} }
...@@ -102,7 +143,7 @@ public class WechatGroupConsr { ...@@ -102,7 +143,7 @@ public class WechatGroupConsr {
try { try {
groupMemberService.addGroupManagers(wxGroupId, altId); groupMemberService.addGroupManagers(wxGroupId, altId);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("上传群二维码时根据群ID添加群管理员(群主,机器人等)失败.[addGroupManagers]:" + e.getMessage(), e); log.error("上传群二维码时根据群ID添加群管理员(群主,机器人等)失败.[addGroupManagers]:" + e.getMessage(), e);
} }
} }
...@@ -112,7 +153,7 @@ public class WechatGroupConsr { ...@@ -112,7 +153,7 @@ public class WechatGroupConsr {
List<String> wxids = ResponseHandleUtil.parseListResponse(groupMemberService.listAllRobotWxId(), String.class); List<String> wxids = ResponseHandleUtil.parseListResponse(groupMemberService.listAllRobotWxId(), String.class);
return wxids; return wxids;
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取所有机器人微信号失败.[listAllRobotWxId]:" + e.getMessage(), e); log.error("获取所有机器人微信号失败.[listAllRobotWxId]:" + e.getMessage(), e);
} }
return null; return null;
} }
...@@ -122,7 +163,7 @@ public class WechatGroupConsr { ...@@ -122,7 +163,7 @@ public class WechatGroupConsr {
try { try {
groupMemberService.addFirstRobotReplyRecord(robotReplyDTO); groupMemberService.addFirstRobotReplyRecord(robotReplyDTO);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("设置第一个关键词回复失败.[addFirstRobotReplyRecord]:" + e.getMessage(), e); log.error("设置第一个关键词回复失败.[addFirstRobotReplyRecord]:" + e.getMessage(), e);
} }
} }
...@@ -131,7 +172,7 @@ public class WechatGroupConsr { ...@@ -131,7 +172,7 @@ public class WechatGroupConsr {
try { try {
return ResponseHandleUtil.parseResponse(groupMemberService.getRobotInfoByWxUserId(wxRobotId), GroupRobotDTO.class); return ResponseHandleUtil.parseResponse(groupMemberService.getRobotInfoByWxUserId(wxRobotId), GroupRobotDTO.class);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取机器人信息失败.[getRobotInfoByWxUserId]:" + e.getMessage(), e); log.error("获取机器人信息失败.[getRobotInfoByWxUserId]:" + e.getMessage(), e);
} }
return null; return null;
} }
...@@ -140,7 +181,7 @@ public class WechatGroupConsr { ...@@ -140,7 +181,7 @@ public class WechatGroupConsr {
* 根据群号获取群主微信号 * 根据群号获取群主微信号
*/ */
public String getMasterIdByGroupId(String groupId) throws BizException { public String getMasterIdByGroupId(String groupId) throws BizException {
LOGGER.info("【根据群号获取群主微信号,<START>.[groupId]=" + groupId + "]"); log.info("【根据群号获取群主微信号,<START>.[groupId]=" + groupId + "]");
String masterId = null; String masterId = null;
if (groupId == null) { if (groupId == null) {
return null; return null;
...@@ -149,13 +190,13 @@ public class WechatGroupConsr { ...@@ -149,13 +190,13 @@ public class WechatGroupConsr {
masterId = ResponseHandleUtil.parseResponse(groupMemberService.getMasterIdByGroupId(groupId), String.class); masterId = ResponseHandleUtil.parseResponse(groupMemberService.getMasterIdByGroupId(groupId), String.class);
return masterId; return masterId;
} catch (BizException e) { } catch (BizException e) {
LOGGER.warn("根据群号获取群主微信号失败:" + e.getMessage(), e); log.warn("根据群号获取群主微信号失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage()); throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("根据群号获取群主微信号.[getMasterIdByGroupId]:" + e.getMessage(), e); log.error("根据群号获取群主微信号.[getMasterIdByGroupId]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试"); throw new BookBizException(BookBizException.INVOKE_RES_ERROR, "服务内部错误,请稍后重试");
} finally { } finally {
LOGGER.info("【根据群号获取群主微信号,<END>--masterId=" + masterId); log.info("【根据群号获取群主微信号,<END>--masterId=" + masterId);
} }
} }
...@@ -165,7 +206,7 @@ public class WechatGroupConsr { ...@@ -165,7 +206,7 @@ public class WechatGroupConsr {
try { try {
map = ResponseHandleUtil.parseMapResponse(messageService.get7DayActiveUserCountByClassify(classifyIds), Long.class, Integer.class); map = ResponseHandleUtil.parseMapResponse(messageService.get7DayActiveUserCountByClassify(classifyIds), Long.class, Integer.class);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取最近7天活跃人数失败.[get7DayActiveUserCountByClassify]:" + e.getMessage(), e); log.error("获取最近7天活跃人数失败.[get7DayActiveUserCountByClassify]:" + e.getMessage(), e);
} }
if (map == null) { if (map == null) {
return new HashMap<>(); return new HashMap<>();
...@@ -183,7 +224,7 @@ public class WechatGroupConsr { ...@@ -183,7 +224,7 @@ public class WechatGroupConsr {
try { try {
map = ResponseHandleUtil.parseMapResponse(groupMemberService.getSendDailyRobotByGroupIds(weixinIds), String.class, String.class); map = ResponseHandleUtil.parseMapResponse(groupMemberService.getSendDailyRobotByGroupIds(weixinIds), String.class, String.class);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("根据群id集合批量获取发消息的小号.[getRobotIdByWeixinIdBatch]:" + e.getMessage(), e); log.error("根据群id集合批量获取发消息的小号.[getRobotIdByWeixinIdBatch]:" + e.getMessage(), e);
} }
if (map == null) { if (map == null) {
return new HashMap<>(); return new HashMap<>();
......
...@@ -215,6 +215,8 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz { ...@@ -215,6 +215,8 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
PushAddUserMessageDTO pushAddUserMessageDTO = new PushAddUserMessageDTO(); PushAddUserMessageDTO pushAddUserMessageDTO = new PushAddUserMessageDTO();
pushAddUserMessageDTO.setWeixinGroupId(weixinGroupId); pushAddUserMessageDTO.setWeixinGroupId(weixinGroupId);
pushAddUserMessageDTO.setTime(System.currentTimeMillis()); pushAddUserMessageDTO.setTime(System.currentTimeMillis());
pushAddUserMessageDTO.setNickName(nickName);
pushAddUserMessageDTO.setMemberCount(memberCount);
bookMQProducer.pushAddUserMessageTopic(pushAddUserMessageDTO); bookMQProducer.pushAddUserMessageTopic(pushAddUserMessageDTO);
} }
......
...@@ -2,36 +2,20 @@ package com.pcloud.book.group.dto; ...@@ -2,36 +2,20 @@ package com.pcloud.book.group.dto;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data;
/** /**
* @author lily * @author lily
* @date 2019/5/8 21:48 * @date 2019/5/8 21:48
*/ */
@Data
public class PushAddUserMessageDTO implements Serializable { public class PushAddUserMessageDTO implements Serializable {
private String weixinGroupId; private String weixinGroupId;
private Long time; private Long time;
public String getWeixinGroupId() { private Integer memberCount;
return weixinGroupId;
}
public void setWeixinGroupId(String weixinGroupId) {
this.weixinGroupId = weixinGroupId;
}
public Long getTime() {
return time;
}
public void setTime(Long time) { private String nickName;
this.time = time;
}
@Override
public String toString() {
return "PushAddUserMessageDTO{" +
"weixinGroupId='" + weixinGroupId + '\'' +
", time=" + time +
'}';
}
} }
package com.pcloud.book.keywords.biz; package com.pcloud.book.keywords.biz;
import com.pcloud.book.group.dto.PushAddUserMessageDTO;
import com.pcloud.book.keywords.vo.GuideVO; import com.pcloud.book.keywords.vo.GuideVO;
import com.pcloud.book.keywords.vo.SetGuideVO; import com.pcloud.book.keywords.vo.SetGuideVO;
import com.pcloud.book.keywords.vo.UpdateGuideVO; import com.pcloud.book.keywords.vo.UpdateGuideVO;
...@@ -42,5 +43,5 @@ public interface BookGuideBiz { ...@@ -42,5 +43,5 @@ public interface BookGuideBiz {
* @Desr: 推送欢迎语消息 * @Desr: 推送欢迎语消息
* @Date:2019/5/5 11:22 * @Date:2019/5/5 11:22
*/ */
void sendGuideMessage(String weixinGroupId); void sendGuideMessage(PushAddUserMessageDTO pushAddUserMessageDTO);
} }
package com.pcloud.book.keywords.biz.impl; package com.pcloud.book.keywords.biz.impl;
import com.google.common.collect.Maps;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.clock.check.BookClockCheck; import com.pcloud.book.clock.check.BookClockCheck;
import com.pcloud.book.clock.dao.BookClockKeywordDao; import com.pcloud.book.clock.dao.BookClockKeywordDao;
...@@ -14,6 +16,7 @@ import com.pcloud.book.group.dao.BookGroupDao; ...@@ -14,6 +16,7 @@ import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dao.GroupQrcodeDao; import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO; import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.PushAddUserMessageDTO;
import com.pcloud.book.group.entity.AppTouchRecord; import com.pcloud.book.group.entity.AppTouchRecord;
import com.pcloud.book.group.entity.GroupQrcode; import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.enums.TouchTypeEnum; import com.pcloud.book.group.enums.TouchTypeEnum;
...@@ -35,21 +38,28 @@ import com.pcloud.book.keywords.vo.UpdateGuideVO; ...@@ -35,21 +38,28 @@ import com.pcloud.book.keywords.vo.UpdateGuideVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto; 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.sdk.wxgroup.GroupInfoVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException; import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import lombok.extern.slf4j.Slf4j;
/** /**
* @author lily * @author lily
* @date 2019/4/23 15:47 * @date 2019/4/23 15:47
*/ */
@Slf4j
@Component("bookGuideBiz") @Component("bookGuideBiz")
public class BookGuideBizImpl implements BookGuideBiz { public class BookGuideBizImpl implements BookGuideBiz {
@Autowired @Autowired
...@@ -193,7 +203,8 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -193,7 +203,8 @@ public class BookGuideBizImpl implements BookGuideBiz {
@Override @Override
@ParamLog("推送欢迎语消息") @ParamLog("推送欢迎语消息")
public void sendGuideMessage(String weixinGroupId) { public void sendGuideMessage(PushAddUserMessageDTO pushAddUserMessageDTO) {
final String weixinGroupId = pushAddUserMessageDTO.getWeixinGroupId();
//通过群id获取对应基本信息 //通过群id获取对应基本信息
GroupClassifyQrcodeDTO classifyQrcodeInfo = bookGroupClassifyBiz.getClassifyQrcodeInfo(weixinGroupId); GroupClassifyQrcodeDTO classifyQrcodeInfo = bookGroupClassifyBiz.getClassifyQrcodeInfo(weixinGroupId);
if(classifyQrcodeInfo == null){ if(classifyQrcodeInfo == null){
...@@ -206,6 +217,36 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -206,6 +217,36 @@ public class BookGuideBizImpl implements BookGuideBiz {
//获取推送消息机器人 //获取推送消息机器人
String robotId = wechatGroupConsr.getRobotIdByGroupId(weixinGroupId); String robotId = wechatGroupConsr.getRobotIdByGroupId(weixinGroupId);
//String robotId = "wxid_e6zsl8oohcnl22"; //String robotId = "wxid_e6zsl8oohcnl22";
// 判断是否需要发送
boolean canSend = false;
// 查看群成员
GroupInfoVO groupInfoVO = WxGroupSDK.getGroupInfo(weixinGroupId, robotId);
if (!CollectionUtils.isEmpty(groupInfoVO.getIdList())) {
// 查看该用户weixinid
final List<String> nickName = wechatGroupConsr.getWxUserIdsByNickName(pushAddUserMessageDTO.getNickName());
if(!CollectionUtils.isEmpty(nickName)) {
final Map<String, Boolean> map = Maps.newHashMap();
for (String s : groupInfoVO.getIdList()) {
map.put(s, true);
}
for (String s : nickName) {
if (map.get(s)) {
// 若在群设置true
canSend = true;
break;
}
}
}
}
// 判断是否黑名单
final Boolean kickUser = wechatGroupConsr.isKickUser(pushAddUserMessageDTO.getNickName(), weixinGroupId);
log.info("[推送欢迎语消息]:pushAddUserMessageDTO:{},kickUser:{}", pushAddUserMessageDTO, kickUser);
// 在群,且非黑名单
canSend = canSend && !kickUser;
if (!canSend) {
log.info("[推送欢迎语消息]:不推送");
return;
}
List<ReplyMessageVO> replyMessages = null; List<ReplyMessageVO> replyMessages = null;
if (classifyGuide != null) { if (classifyGuide != null) {
replyMessages = bookGuideReplyDao.getReplyMessage(classifyGuide.getId()); replyMessages = bookGuideReplyDao.getReplyMessage(classifyGuide.getId());
...@@ -216,7 +257,7 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -216,7 +257,7 @@ public class BookGuideBizImpl implements BookGuideBiz {
AccountSettingDto wechatInfo = qrcodeSceneConsr.getWechatInfo(classifyQrcodeInfo.getChannelId()); AccountSettingDto wechatInfo = qrcodeSceneConsr.getWechatInfo(classifyQrcodeInfo.getChannelId());
//获取关键词信息(改成10个了) //获取关键词信息(改成10个了)
List<KeywordDTO> keywords = bookKeywordBiz.listFiveKeyword(classifyQrcodeInfo.getClassifyId(), classifyQrcodeInfo.getBookGroupId()); List<KeywordDTO> keywords = bookKeywordBiz.listFiveKeyword(classifyQrcodeInfo.getClassifyId(), classifyQrcodeInfo.getBookGroupId());
Boolean isHaveKeywords = ListUtils.isEmpty(keywords) ? false : true; Boolean isHaveKeywords = !ListUtils.isEmpty(keywords);
if (ListUtils.isEmpty(replyMessages)) { if (ListUtils.isEmpty(replyMessages)) {
//获取群名称 //获取群名称
GroupQrcodeBaseInfoVO groupInfo = groupQrcodeBiz.getBaseById(classifyQrcodeInfo.getGroupQrcodeId()); GroupQrcodeBaseInfoVO groupInfo = groupQrcodeBiz.getBaseById(classifyQrcodeInfo.getGroupQrcodeId());
...@@ -230,6 +271,7 @@ public class BookGuideBizImpl implements BookGuideBiz { ...@@ -230,6 +271,7 @@ public class BookGuideBizImpl implements BookGuideBiz {
//新增欢迎语应用触发记录 //新增欢迎语应用触发记录
addGuideAppTouchRecord(replyMessages,weixinGroupId,classifyQrcodeInfo.getBookGroupId(),classifyQrcodeInfo.getClassifyId()); addGuideAppTouchRecord(replyMessages,weixinGroupId,classifyQrcodeInfo.getBookGroupId(),classifyQrcodeInfo.getClassifyId());
} }
//获取关键词信息(改成10个了)
SendWeixinRequestTools.sendKeywordsInfo(keywords, robotId, weixinGroupId); SendWeixinRequestTools.sendKeywordsInfo(keywords, robotId, weixinGroupId);
if (bookGuide != null && bookGuide.getIsRecommend() != null && bookGuide.getIsRecommend() == 1) { if (bookGuide != null && bookGuide.getIsRecommend() != null && bookGuide.getIsRecommend() == 1) {
//推送公众号消息 //推送公众号消息
......
package com.pcloud.book.keywords.biz.impl; package com.pcloud.book.keywords.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.book.biz.BookKeywordWarehouseBiz; import com.pcloud.book.book.biz.BookKeywordWarehouseBiz;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr; import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.resource.ProductConsr; import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
...@@ -32,6 +34,7 @@ import com.pcloud.book.keywords.vo.ListKeywordVO; ...@@ -32,6 +34,7 @@ import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.book.keywords.vo.SetKeywordVO; import com.pcloud.book.keywords.vo.SetKeywordVO;
import com.pcloud.book.keywords.vo.SetRankVO; import com.pcloud.book.keywords.vo.SetRankVO;
import com.pcloud.book.keywords.vo.UpdateKeywordVO; import com.pcloud.book.keywords.vo.UpdateKeywordVO;
import com.pcloud.channelcenter.base.constants.ChannelEnum;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto; 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.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -40,6 +43,7 @@ import com.pcloud.common.utils.DateUtils; ...@@ -40,6 +43,7 @@ import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils; import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.wechatgroup.group.dto.RobotReplyDTO; import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -80,6 +84,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -80,6 +84,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
@Autowired @Autowired
private ProductConsr productConsr; private ProductConsr productConsr;
@Autowired @Autowired
private AppConsr appConsr;
@Autowired
private AppTouchRecordDao appTouchRecordDao; private AppTouchRecordDao appTouchRecordDao;
@Autowired @Autowired
private GroupQrcodeDao groupQrcodeDao; private GroupQrcodeDao groupQrcodeDao;
...@@ -162,7 +168,25 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -162,7 +168,25 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "该社群码不存在!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR, "该社群码不存在!");
} }
if (null != updateKeywordVO.getAddWarehouse() && 1 == updateKeywordVO.getAddWarehouse()) { if (null != updateKeywordVO.getAddWarehouse() && 1 == updateKeywordVO.getAddWarehouse()) {
this.bookKeywordDao.updateIsWarehouse(updateKeywordVO.getBookKeywordId()); SetKeywordVO v = new SetKeywordVO();
BeanUtils.copyProperties(updateKeywordVO, v);
if (ChannelEnum.APP.value.equals(updateKeywordVO.getServeType())) {
final AppDto baseById = appConsr.getBaseById(updateKeywordVO.getServeId());
if(null == baseById) {
throw new BookBizException(BookBizException.ID_NOT_EXIST, "应用不存在");
}
v.setTypeCode(baseById.getTypeCode());
}
if (ChannelEnum.PRODUCT.value.equals(updateKeywordVO.getServeType())) {
final ProductDto proBaseById = productConsr.getProBaseById(updateKeywordVO.getServeId());
if(null == proBaseById) {
throw new BookBizException(BookBizException.ID_NOT_EXIST, "作品不存在");
}
v.setTypeCode(proBaseById.getProductTypeCode());
}
v.setUserId(partyId);
final Long warehouseId = this.bookKeywordWarehouseBiz.addBookKeyword(v);
this.bookKeywordDao.updateIsWarehouse(updateKeywordVO.getBookKeywordId(), warehouseId);
} }
Keyword keyword = new Keyword(); Keyword keyword = new Keyword();
BeanUtils.copyProperties(updateKeywordVO, keyword); BeanUtils.copyProperties(updateKeywordVO, keyword);
...@@ -171,7 +195,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -171,7 +195,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
keywordDao.update(keyword); keywordDao.update(keyword);
//上架商品 //上架商品
List<Long> productIds = new ArrayList<>(); List<Long> productIds = new ArrayList<>();
if (ReplyTypeEnum.APP.value.equals(keyword.getReplyType()) && "PRODUCT".equalsIgnoreCase(keyword.getServeType())) { if (ReplyTypeEnum.APP.value.equals(keyword.getReplyType()) && ChannelEnum.PRODUCT.value.equalsIgnoreCase(keyword.getServeType())) {
productIds.add(keyword.getServeId()); productIds.add(keyword.getServeId());
} }
productConsr.productAutoOnShelves(bookGroupDTO.getChannelId(), productIds); productConsr.productAutoOnShelves(bookGroupDTO.getChannelId(), productIds);
......
...@@ -67,7 +67,7 @@ public interface BookKeywordDao extends BaseDao<BookKeyword> { ...@@ -67,7 +67,7 @@ public interface BookKeywordDao extends BaseDao<BookKeyword> {
* 更新仓库值 * 更新仓库值
* @param bookKeywordId * @param bookKeywordId
*/ */
void updateIsWarehouse(Long bookKeywordId); void updateIsWarehouse(Long bookKeywordId, Long warehouseId);
/** /**
* @Author:lili * @Author:lili
......
package com.pcloud.book.keywords.dao.impl; package com.pcloud.book.keywords.dao.impl;
import com.google.common.collect.Maps;
import com.pcloud.book.keywords.dao.BookKeywordDao; import com.pcloud.book.keywords.dao.BookKeywordDao;
import com.pcloud.book.keywords.dto.KeywordDTO; import com.pcloud.book.keywords.dto.KeywordDTO;
import com.pcloud.book.keywords.dto.ReplyKeywordDTO; import com.pcloud.book.keywords.dto.ReplyKeywordDTO;
...@@ -73,8 +75,11 @@ public class BookKeywordDaoImpl extends BaseDaoImpl<BookKeyword> implements Book ...@@ -73,8 +75,11 @@ public class BookKeywordDaoImpl extends BaseDaoImpl<BookKeyword> implements Book
} }
@Override @Override
public void updateIsWarehouse(Long bookKeywordId) { public void updateIsWarehouse(Long bookKeywordId, Long warehouseId) {
this.getSqlSession().update("updateIsWarehouse", bookKeywordId); final Map<String, Object> map = Maps.newHashMap();
map.put("bookKeywordId", bookKeywordId);
map.put("warehouseId", warehouseId);
this.getSqlSession().update("updateIsWarehouse", map);
} }
@Override @Override
......
...@@ -37,7 +37,7 @@ public class PushAddUserMessageListemer { ...@@ -37,7 +37,7 @@ public class PushAddUserMessageListemer {
if (time < 5000) { if (time < 5000) {
Thread.sleep(5000 - time); Thread.sleep(5000 - time);
} }
bookGuideBiz.sendGuideMessage(pushAddUserMessageDTO.getWeixinGroupId()); bookGuideBiz.sendGuideMessage(pushAddUserMessageDTO);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("发送欢迎语消息失败" + e.getMessage(), e); LOGGER.error("发送欢迎语消息失败" + e.getMessage(), e);
} }
......
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
</select> </select>
<update id="updateIsWarehouse" parameterType="long" > <update id="updateIsWarehouse" parameterType="long" >
update book_keyword set is_warehouse =1 where id = #{bookKeywordId} update book_keyword set is_warehouse = 1, warehouse_id = #{warehouseId} where id = #{bookKeywordId}
</update> </update>
<select id="getByBookKeyword" resultType="KeywordVO" parameterType="Long"> <select id="getByBookKeyword" resultType="KeywordVO" parameterType="Long">
......
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