Commit a45775e1 by 阮思源

1002404 非关键词回复支持按类回复

parent 31235a35
......@@ -149,7 +149,7 @@ public interface BookKeywordBiz {
/**
* 非关键词响应
*/
void sendPcloudNotKeyWord(String userWxId, String ip, Integer code, String robotId,Long pcloudClassifyId);
void sendPcloudNotKeyWord(String userWxId, String ip, Integer code, String robotId,Long pcloudClassifyId, Integer userMessageType);
/**
* 缄默处理
......
......@@ -53,6 +53,7 @@ import com.pcloud.book.keywords.dto.KeywordStatisticsDTO;
import com.pcloud.book.keywords.dto.ReplyKeywordDTO;
import com.pcloud.book.keywords.dto.ServiceResourceDTO;
import com.pcloud.book.keywords.entity.*;
import com.pcloud.book.keywords.enums.MessageTypeEnum;
import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.keywords.vo.DeleteKeywordVO;
import com.pcloud.book.keywords.vo.KeywordVO;
......@@ -737,7 +738,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
}else {
//非关键词响应
sendPcloudNotKeyWord(userWxId,ip,code,robotId,pcloudClassifyId);
sendPcloudNotKeyWord(userWxId,ip,code,robotId,pcloudClassifyId, MessageTypeEnum.TEXT.value);
}
}
......@@ -1049,7 +1050,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
@ParamLog("非关键词响应")
@Override
public void sendPcloudNotKeyWord(String userWxId, String ip, Integer code, String robotId,Long pcloudClassifyId) {
public void sendPcloudNotKeyWord(String userWxId, String ip, Integer code, String robotId,Long pcloudClassifyId, Integer userMessageType) {
//1min不重复回复
String key ="BOOK:PCLOUD_NOT_KEYWORD:"+ userWxId +"-" + robotId +"-" + pcloudClassifyId;
String redisContent = JedisClusterUtils.getJson(key, String.class);
......@@ -1059,7 +1060,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
JedisClusterUtils.setJson(key, userWxId, 60);
}
//走非关键词
List<PcloudNotKeyword> notKeywords = pcloudNotKeywordDao.getPcloudNotKeywordList(pcloudClassifyId);
List<PcloudNotKeyword> notKeywords = pcloudNotKeywordDao.getPcloudNotKeywordListByMessageType(pcloudClassifyId,userMessageType);
if (!ListUtils.isEmpty(notKeywords)){
for (PcloudNotKeyword pcloudNotKeyword : notKeywords){
List<PcloudKeywordReply> replies = pcloudKeywordReplyDao.getByRelevance(RelevanceTypeEnum.NOT_KEYWORD.value, pcloudNotKeyword.getId());
......
package com.pcloud.book.keywords.enums;
public enum MessageTypeEnum {
//1文本,2图片,3表情,4语音,5视频,6定位,7名片,8文件,9系统消息,10小程序,11链接
TEXT(1),
IMG(2),
EMOJI(3),
VOICE(4),
VIDEO(5),
LOCATION(6),
BUSINESSCARD(7),
FILE(8),
SYSTEM(9),
WEAPP(10),
LINK(11);
public final Integer value;
private MessageTypeEnum(Integer value) {
this.value = value;
}
}
......@@ -59,7 +59,7 @@ public class WxGroupSendNotTextListener {
return;
}
Long pcloudClassifyId=robotClassify.getKeywordClassifyId();
bookKeywordBiz.sendPcloudNotKeyWord(userWxId,ip,code,robotId,pcloudClassifyId);
bookKeywordBiz.sendPcloudNotKeyWord(userWxId,ip,code,robotId,pcloudClassifyId,sendNotTextDTO.getMessageType());
}
} catch (Exception e) {
......
......@@ -26,4 +26,6 @@ public interface PcloudNotKeywordDao extends BaseDao<PcloudNotKeyword> {
* @return
*/
public List<PcloudNotKeyword> getPcloudNotKeywordList(Long keywordClassifyId);
List<PcloudNotKeyword> getPcloudNotKeywordListByMessageType(Long keywordClassifyId,Integer userMessageType);
}
......@@ -28,4 +28,12 @@ public class PcloudNotKeywordDaoImpl extends BaseDaoImpl<PcloudNotKeyword> imple
map.put("keywordClassifyId", keywordClassifyId);
return getSessionTemplate().selectList(getStatement("getPcloudNotKeywordList"), map);
}
@Override
public List<PcloudNotKeyword> getPcloudNotKeywordListByMessageType(Long keywordClassifyId, Integer userMessageType) {
Map<String,Object> map = new HashMap<>();
map.put("keywordClassifyId", keywordClassifyId);
map.put("userMessageType", userMessageType);
return getSessionTemplate().selectList(getStatement("getPcloudNotKeywordListByMessageType"), map);
}
}
......@@ -82,4 +82,5 @@ public class PcloudKeywordReply extends BaseEntity {
@ApiModelProperty("描述")
private String description;
}
......@@ -23,4 +23,7 @@ public class PcloudNotKeyword extends BaseEntity {
@ApiModelProperty("回复列表")
private List<PcloudKeywordReply> pcloudKeywordReplies;
@ApiModelProperty("消息类型:1文本,2图片,3表情,4语音,5视频,6定位,7名片,8文件,9系统消息,10小程序,11链接")
private Integer userMessageType;
}
......@@ -7,11 +7,12 @@
<result column="method" property="method" jdbcType="INTEGER"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="create_user" property="createUser" jdbcType="BIGINT"/>
<result column="user_message_type" property="userMessageType" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id, keyword_classify_id,method, create_time, create_user
id, keyword_classify_id,method, create_time, create_user,user_message_type
</sql>
<delete id="deleteById" parameterType="long">
......@@ -25,13 +26,15 @@
keyword_classify_id,
method,
create_time,
create_user
create_user,
user_message_type
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{keywordClassifyId,jdbcType=BIGINT},
#{method,jdbcType=INTEGER},
NOW(),
#{createUser}
#{createUser},
#{userMessageType,jdbcType=INTEGER}
</trim>
</insert>
......@@ -44,6 +47,9 @@
<if test="method != null">
method = #{method,jdbcType=INTEGER},
</if>
<if test="userMessageType != null">
user_message_type = #{userMessageType,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
......@@ -80,4 +86,16 @@
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT}
</delete>
<select id="getPcloudNotKeywordListByMessageType" parameterType="map" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
pcloud_not_keyword
WHERE
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT}
and user_message_type=#{userMessageType}
ORDER BY
id DESC
</select>
</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