Commit b9191630 by 裴大威

1000948

parent 9854407b
...@@ -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