Commit b9191630 by 裴大威

1000948

parent 9854407b
......@@ -215,6 +215,8 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
PushAddUserMessageDTO pushAddUserMessageDTO = new PushAddUserMessageDTO();
pushAddUserMessageDTO.setWeixinGroupId(weixinGroupId);
pushAddUserMessageDTO.setTime(System.currentTimeMillis());
pushAddUserMessageDTO.setNickName(nickName);
pushAddUserMessageDTO.setMemberCount(memberCount);
bookMQProducer.pushAddUserMessageTopic(pushAddUserMessageDTO);
}
......
......@@ -2,36 +2,20 @@ package com.pcloud.book.group.dto;
import java.io.Serializable;
import lombok.Data;
/**
* @author lily
* @date 2019/5/8 21:48
*/
@Data
public class PushAddUserMessageDTO implements Serializable {
private String weixinGroupId;
private Long time;
public String getWeixinGroupId() {
return weixinGroupId;
}
public void setWeixinGroupId(String weixinGroupId) {
this.weixinGroupId = weixinGroupId;
}
public Long getTime() {
return time;
}
private Integer memberCount;
public void setTime(Long time) {
this.time = time;
}
private String nickName;
@Override
public String toString() {
return "PushAddUserMessageDTO{" +
"weixinGroupId='" + weixinGroupId + '\'' +
", time=" + time +
'}';
}
}
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.SetGuideVO;
import com.pcloud.book.keywords.vo.UpdateGuideVO;
......@@ -42,5 +43,5 @@ public interface BookGuideBiz {
* @Desr: 推送欢迎语消息
* @Date:2019/5/5 11:22
*/
void sendGuideMessage(String weixinGroupId);
void sendGuideMessage(PushAddUserMessageDTO pushAddUserMessageDTO);
}
package com.pcloud.book.keywords.biz.impl;
import com.google.common.collect.Maps;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.clock.check.BookClockCheck;
import com.pcloud.book.clock.dao.BookClockKeywordDao;
......@@ -14,6 +16,7 @@ import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dto.BookGroupDTO;
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.GroupQrcode;
import com.pcloud.book.group.enums.TouchTypeEnum;
......@@ -35,21 +38,28 @@ import com.pcloud.book.keywords.vo.UpdateGuideVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog;
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.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
/**
* @author lily
* @date 2019/4/23 15:47
*/
@Slf4j
@Component("bookGuideBiz")
public class BookGuideBizImpl implements BookGuideBiz {
@Autowired
......@@ -193,7 +203,8 @@ public class BookGuideBizImpl implements BookGuideBiz {
@Override
@ParamLog("推送欢迎语消息")
public void sendGuideMessage(String weixinGroupId) {
public void sendGuideMessage(PushAddUserMessageDTO pushAddUserMessageDTO) {
final String weixinGroupId = pushAddUserMessageDTO.getWeixinGroupId();
//通过群id获取对应基本信息
GroupClassifyQrcodeDTO classifyQrcodeInfo = bookGroupClassifyBiz.getClassifyQrcodeInfo(weixinGroupId);
if(classifyQrcodeInfo == null){
......@@ -206,6 +217,36 @@ public class BookGuideBizImpl implements BookGuideBiz {
//获取推送消息机器人
String robotId = wechatGroupConsr.getRobotIdByGroupId(weixinGroupId);
//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;
if (classifyGuide != null) {
replyMessages = bookGuideReplyDao.getReplyMessage(classifyGuide.getId());
......@@ -216,7 +257,7 @@ public class BookGuideBizImpl implements BookGuideBiz {
AccountSettingDto wechatInfo = qrcodeSceneConsr.getWechatInfo(classifyQrcodeInfo.getChannelId());
//获取关键词信息(改成10个了)
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)) {
//获取群名称
GroupQrcodeBaseInfoVO groupInfo = groupQrcodeBiz.getBaseById(classifyQrcodeInfo.getGroupQrcodeId());
......@@ -230,6 +271,7 @@ public class BookGuideBizImpl implements BookGuideBiz {
//新增欢迎语应用触发记录
addGuideAppTouchRecord(replyMessages,weixinGroupId,classifyQrcodeInfo.getBookGroupId(),classifyQrcodeInfo.getClassifyId());
}
//获取关键词信息(改成10个了)
SendWeixinRequestTools.sendKeywordsInfo(keywords, robotId, weixinGroupId);
if (bookGuide != null && bookGuide.getIsRecommend() != null && bookGuide.getIsRecommend() == 1) {
//推送公众号消息
......
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.book.biz.BookKeywordWarehouseBiz;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
......@@ -32,6 +34,7 @@ import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.book.keywords.vo.SetKeywordVO;
import com.pcloud.book.keywords.vo.SetRankVO;
import com.pcloud.book.keywords.vo.UpdateKeywordVO;
import com.pcloud.channelcenter.base.constants.ChannelEnum;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew;
......@@ -40,6 +43,7 @@ import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
import org.springframework.beans.BeanUtils;
......@@ -80,6 +84,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
@Autowired
private ProductConsr productConsr;
@Autowired
private AppConsr appConsr;
@Autowired
private AppTouchRecordDao appTouchRecordDao;
@Autowired
private GroupQrcodeDao groupQrcodeDao;
......@@ -162,7 +168,25 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "该社群码不存在!");
}
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();
BeanUtils.copyProperties(updateKeywordVO, keyword);
......@@ -171,7 +195,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
keywordDao.update(keyword);
//上架商品
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());
}
productConsr.productAutoOnShelves(bookGroupDTO.getChannelId(), productIds);
......
......@@ -67,7 +67,7 @@ public interface BookKeywordDao extends BaseDao<BookKeyword> {
* 更新仓库值
* @param bookKeywordId
*/
void updateIsWarehouse(Long bookKeywordId);
void updateIsWarehouse(Long bookKeywordId, Long warehouseId);
/**
* @Author:lili
......
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.dto.KeywordDTO;
import com.pcloud.book.keywords.dto.ReplyKeywordDTO;
......@@ -73,8 +75,11 @@ public class BookKeywordDaoImpl extends BaseDaoImpl<BookKeyword> implements Book
}
@Override
public void updateIsWarehouse(Long bookKeywordId) {
this.getSqlSession().update("updateIsWarehouse", bookKeywordId);
public void updateIsWarehouse(Long bookKeywordId, Long warehouseId) {
final Map<String, Object> map = Maps.newHashMap();
map.put("bookKeywordId", bookKeywordId);
map.put("warehouseId", warehouseId);
this.getSqlSession().update("updateIsWarehouse", map);
}
@Override
......
......@@ -37,7 +37,7 @@ public class PushAddUserMessageListemer {
if (time < 5000) {
Thread.sleep(5000 - time);
}
bookGuideBiz.sendGuideMessage(pushAddUserMessageDTO.getWeixinGroupId());
bookGuideBiz.sendGuideMessage(pushAddUserMessageDTO);
} catch (Exception e) {
LOGGER.error("发送欢迎语消息失败" + e.getMessage(), e);
}
......
......@@ -163,7 +163,7 @@
</select>
<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>
<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