Commit 14a94b29 by 阮思源

Merge branch 'feat-1002404' into 'master'

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

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