Commit ca1ef6ce by 阮思源

C1001733 1v1模式优化,缩短路径

parent c4fafc09
...@@ -247,4 +247,5 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> { ...@@ -247,4 +247,5 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
List<ClassifyQrcodeVO> getQrcodeByClassifyId(Long classifyId); List<ClassifyQrcodeVO> getQrcodeByClassifyId(Long classifyId);
List<GroupQrcode> getListByBookGroupIds(List<Long> bookGroupIds);
} }
...@@ -29,4 +29,6 @@ public interface JoinGroupCipherDao extends BaseDao<JoinGroupCipher> { ...@@ -29,4 +29,6 @@ public interface JoinGroupCipherDao extends BaseDao<JoinGroupCipher> {
BigDecimal getPayPrice(String wxId, Long qrcodeId); BigDecimal getPayPrice(String wxId, Long qrcodeId);
JoinGroupCipher getByCondition(Long wechatUserId, Long bookGroupId, Integer type); JoinGroupCipher getByCondition(Long wechatUserId, Long bookGroupId, Integer type);
List<JoinGroupCipher> getListByAltIdAndWxIdAndType(String robotId, String userWxId, Integer code);
} }
...@@ -227,6 +227,11 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou ...@@ -227,6 +227,11 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
} }
@Override @Override
public List<GroupQrcode> getListByBookGroupIds(List<Long> bookGroupIds) {
return this.getSqlSession().selectList(this.getStatement("getListByBookGroupIds"), bookGroupIds);
}
@Override
public List<Long> getIdsByBookId(Long bookId) { public List<Long> getIdsByBookId(Long bookId) {
return getSessionTemplate().selectList(getStatement("getIdsByBookId"), bookId); return getSessionTemplate().selectList(getStatement("getIdsByBookId"), bookId);
} }
......
...@@ -78,4 +78,13 @@ public class JoinGroupCipherDaoImpl extends BaseDaoImpl<JoinGroupCipher> impleme ...@@ -78,4 +78,13 @@ public class JoinGroupCipherDaoImpl extends BaseDaoImpl<JoinGroupCipher> impleme
map.put("type",type); map.put("type",type);
return this.getSqlSession().selectOne(this.getStatement("getByCondition"), map); return this.getSqlSession().selectOne(this.getStatement("getByCondition"), map);
} }
@Override
public List<JoinGroupCipher> getListByAltIdAndWxIdAndType(String robotId, String userWxId, Integer type) {
Map<String,Object> map=new HashMap<>();
map.put("robotId",robotId);
map.put("userWxId",userWxId);
map.put("type",type);
return this.getSqlSession().selectOne(this.getStatement("getListByAltIdAndWxIdAndType"), map);
}
} }
...@@ -18,11 +18,14 @@ import com.pcloud.book.group.dao.AppTouchRecordDao; ...@@ -18,11 +18,14 @@ import com.pcloud.book.group.dao.AppTouchRecordDao;
import com.pcloud.book.group.dao.BookGroupClassifyDao; import com.pcloud.book.group.dao.BookGroupClassifyDao;
import com.pcloud.book.group.dao.BookGroupDao; 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.dao.JoinGroupCipherDao;
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.JoinGroupCipherDTO; import com.pcloud.book.group.dto.JoinGroupCipherDTO;
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.entity.JoinGroupCipher;
import com.pcloud.book.group.enums.CipherTypeEnum;
import com.pcloud.book.group.enums.QrcodeStatusEnum; import com.pcloud.book.group.enums.QrcodeStatusEnum;
import com.pcloud.book.group.enums.TouchTypeEnum; import com.pcloud.book.group.enums.TouchTypeEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools; import com.pcloud.book.group.tools.SendWeixinRequestTools;
...@@ -69,6 +72,7 @@ import com.pcloud.resourcecenter.product.dto.ProductTypeDto; ...@@ -69,6 +72,7 @@ import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
import com.pcloud.wechatgroup.group.dto.RobotReplyDTO; import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
import com.pcloud.wechatgroup.message.dto.SendTextDTO; import com.pcloud.wechatgroup.message.dto.SendTextDTO;
import com.sdk.wxgroup.ChangeNameVO; import com.sdk.wxgroup.ChangeNameVO;
import com.sdk.wxgroup.SendGroupInviteVO;
import com.sdk.wxgroup.SendMessageTypeEnum; import com.sdk.wxgroup.SendMessageTypeEnum;
import com.sdk.wxgroup.WxGroupSDK; import com.sdk.wxgroup.WxGroupSDK;
...@@ -134,6 +138,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -134,6 +138,8 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
private BookGroupBiz bookGroupBiz; private BookGroupBiz bookGroupBiz;
@Autowired @Autowired
private GroupQrcodeBiz groupQrcodeBiz; private GroupQrcodeBiz groupQrcodeBiz;
@Autowired
private JoinGroupCipherDao joinGroupCipherDao;
@Override @Override
@ParamLog("新增关键词") @ParamLog("新增关键词")
...@@ -456,6 +462,14 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -456,6 +462,14 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
this.sendKeywordMessageToGroup(sendTextDTO); this.sendKeywordMessageToGroup(sendTextDTO);
return; return;
} }
if (SendMessageTypeEnum.SELF.getCode().equals(sendTextDTO.getCode())) {
//根据机器人id和wxId和类型获取暗号信息
List<JoinGroupCipher> joinGroupCiphers = joinGroupCipherDao.getListByAltIdAndWxIdAndType(robotId, userWxId, CipherTypeEnum.BOOK_GROUP_CIPHER.code);
if (!ListUtils.isEmpty(joinGroupCiphers)) {
inviteToGroupByKeyword(sendTextDTO, joinGroupCiphers);
}
}
//个人机器人接收消息的时候,weixinGroupId就是userWxId,也就是用户的id,robotId是接收的机器人的id //个人机器人接收消息的时候,weixinGroupId就是userWxId,也就是用户的id,robotId是接收的机器人的id
//简单过滤非关键词的词 //简单过滤非关键词的词
if (StringUtil.isEmpty(content) || content.length() > 20) { if (StringUtil.isEmpty(content) || content.length() > 20) {
...@@ -563,6 +577,28 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -563,6 +577,28 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
} }
} }
@ParamLog("根据关键词判断关键词是否为1V1社群群名称")
private void inviteToGroupByKeyword(SendTextDTO sendTextDTO, List<JoinGroupCipher> joinGroupCiphers) {
List<Long> bookGroupIds = joinGroupCiphers.stream().filter(s -> s.getBookGroupId() != null).map(JoinGroupCipher::getBookGroupId).collect(Collectors.toList());
if (!ListUtils.isEmpty(bookGroupIds)) {
List<GroupQrcode> groupQrcodes = groupQrcodeDao.getListByBookGroupIds(bookGroupIds);
if (!ListUtils.isEmpty(groupQrcodes)){
for (GroupQrcode groupQrcode:groupQrcodes){
if (groupQrcode.getGroupName().equals(sendTextDTO.getTextContent())){
//发送邀请入群
SendGroupInviteVO sendGroupInviteVO = new SendGroupInviteVO();
sendGroupInviteVO.setAltId(sendTextDTO.getWxId());
sendGroupInviteVO.setWxId(sendTextDTO.getWechatUserId());
sendGroupInviteVO.setWxGroupId(groupQrcode.getWeixinGroupId());
sendGroupInviteVO.setIp(sendTextDTO.getIp());
WxGroupSDK.sendGroupInvite(sendGroupInviteVO);
log.info("[同意加好友发送欢迎语] 发送进群链接 sendGroupInviteVO:{}", sendGroupInviteVO);
}
}
}
}
}
private boolean insertBookKeywordRecord(String weixinGroupId, String userWxId, ReplyKeywordDTO replyKeywordDTO, GroupClassifyQrcodeDTO dto, String redisContent) { private boolean insertBookKeywordRecord(String weixinGroupId, String userWxId, ReplyKeywordDTO replyKeywordDTO, GroupClassifyQrcodeDTO dto, String redisContent) {
if (redisContent != null) { if (redisContent != null) {
insertBookKeywordRecord(dto, replyKeywordDTO.getKeywordId(), userWxId, weixinGroupId, false); insertBookKeywordRecord(dto, replyKeywordDTO.getKeywordId(), userWxId, weixinGroupId, false);
......
...@@ -664,4 +664,34 @@ ...@@ -664,4 +664,34 @@
from book_group_qrcode where classify_id = #{classifyId} and is_delete = 0 from book_group_qrcode where classify_id = #{classifyId} and is_delete = 0
</select> </select>
<!--根据社群码id集合获取-->
<select id="getListByBookGroupIds" parameterType="list" resultMap="BaseResultMap">
SELECT
t.id,
t.classify_id,
t.group_name,
t.group_seq,
t.user_number,
t.weixin_qrcode_id,
t.weixin_group_id,
t.qrcode_url,
t.use_state,
t.qrcode_state,
t.create_user,
t.create_time,
t.update_time,
t.is_delete,
t.riddle_open
FROM
book_group_qrcode t
INNER JOIN book_group_classify t1 ON t.classify_id = t1.id
WHERE
t1.book_group_id IN
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
AND t.is_delete = 0
AND t1.is_delete = 0
GROUP BY t.id
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -117,4 +117,14 @@ ...@@ -117,4 +117,14 @@
book_group_id=#{bookGroupId} and book_group_id=#{bookGroupId} and
type=#{type} type=#{type}
</select> </select>
<!--根据用户微信id、机器人id、类型获取暗号集合-->
<select id="getListByAltIdAndWxIdAndType" parameterType="map" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from join_group_cipher
where wx_id=#{userWxId} and
alt_id=#{robotId} and
type=#{type}
</select>
</mapper> </mapper>
\ No newline at end of file
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