Commit 1c5c6b02 by zhuyajie

关键词回复增加链接

parent ad84cd84
......@@ -733,7 +733,7 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(code);
sendArticleMessageVO.setAltId(robotId);
sendArticleMessageVO.setDescription(appDto.getDetail());
sendArticleMessageVO.setDescription(appDto.getTypeName());
sendArticleMessageVO.setWxGroupId(userWxId);
sendArticleMessageVO.setLinkUrl(resultUrl);
sendArticleMessageVO.setPicUrl(appDto.getSquareImg());
......@@ -763,6 +763,18 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
sendFileVO.setWxId(userWxId);
WxGroupSDK.sendFile(sendFileVO);
}
if (ReplyTypeEnum.LINK.value.equals(type)) {
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(code);
sendArticleMessageVO.setAltId(robotId);
sendArticleMessageVO.setDescription(reply.getDescription());
sendArticleMessageVO.setWxGroupId(userWxId);
sendArticleMessageVO.setLinkUrl(reply.getLinkUrl());
sendArticleMessageVO.setPicUrl(reply.getPicUrl());
sendArticleMessageVO.setTitle(reply.getContent());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
}
}
@ParamLog("回复新版关键词")
......
......@@ -3,6 +3,7 @@ package com.pcloud.book.pcloudkeyword.check;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordNameDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeyword;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordName;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply;
......@@ -11,16 +12,34 @@ import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.string.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
@Component("pcloudKeywordCheck")
public class PcloudKeywordCheck {
@Autowired
private PcloudKeywordNameDao pcloudKeywordNameDao;
@ParamLog("新增关键词校验")
public void createPcloudKeywordCheck(PcloudKeyword pcloudKeyword) {
baseCheck(pcloudKeyword);
List<String> names = pcloudKeywordNameDao.getNameListByClassifyId(pcloudKeyword.getKeywordClassifyId(), null);
for (PcloudKeywordName name:pcloudKeyword.getPcloudKeywordNames()){
if (name==null|| StringUtil.isEmpty(name.getName())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"名称为空!");
}
if (!ListUtils.isEmpty(names) && names.contains(name.getName())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"关键词“"+name.getName()+"”已存在");
}
}
replyCheck(pcloudKeyword.getPcloudKeywordReplies());
}
private void baseCheck(PcloudKeyword pcloudKeyword){
if (pcloudKeyword==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数为空!");
}
......@@ -44,9 +63,11 @@ public class PcloudKeywordCheck {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"名称为空!");
}
}
replyCheck(pcloudKeyword.getPcloudKeywordReplies());
List<String> names = pcloudKeyword.getPcloudKeywordNames().stream().filter(s->s.getName()!=null).map(PcloudKeywordName::getName).distinct().collect(Collectors.toList());
if (names.size()< pcloudKeyword.getPcloudKeywordNames().size()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"关键词重复");
}
}
private void replyCheck(List<PcloudKeywordReply> replyList){
for (PcloudKeywordReply reply:replyList){
if (reply==null){
......@@ -68,6 +89,9 @@ public class PcloudKeywordCheck {
if (ReplyTypeEnum.RESOURCE.value.equals(reply.getType())&&reply.getResourceId()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"回复资源id为空!");
}
if (ReplyTypeEnum.LINK.value.equals(reply.getType()) && StringUtil.isEmpty(reply.getLinkUrl())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "链接地址不能为空!");
}
}
}
......@@ -79,7 +103,17 @@ public class PcloudKeywordCheck {
if (pcloudKeyword.getId()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"id为空!");
}
createPcloudKeywordCheck(pcloudKeyword);
baseCheck(pcloudKeyword);
List<String> names = pcloudKeywordNameDao.getNameListByClassifyId(pcloudKeyword.getKeywordClassifyId(), pcloudKeyword.getId());
for (PcloudKeywordName name:pcloudKeyword.getPcloudKeywordNames()){
if (name==null|| StringUtil.isEmpty(name.getName())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"名称为空!");
}
if (!ListUtils.isEmpty(names) && names.contains(name.getName())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"关键词“"+name.getName()+"”已存在");
}
}
replyCheck(pcloudKeyword.getPcloudKeywordReplies());
}
/**
......
......@@ -16,4 +16,12 @@ public interface PcloudKeywordNameDao extends BaseDao<PcloudKeywordName> {
List<PcloudKeywordName> getByPcloudKeywordIds(List<Long> pcloudKeywordIds);
void deleteByKeywordIds(List<Long> pcloudKeywordIds);
/**
* 根据分类查名称
* @param keywordClassifyId
* @param keywordId,不包含的关键词
* @return
*/
List<String> getNameListByClassifyId(Long keywordClassifyId, Long keywordId);
}
......@@ -44,4 +44,12 @@ public class PcloudKeywordNameDaoImpl extends BaseDaoImpl<PcloudKeywordName> imp
getSessionTemplate().delete(getStatement("deleteByKeywordIds"), map);
}
@Override
public List<String> getNameListByClassifyId(Long keywordClassifyId, Long keywordId) {
Map<String,Object> map=new HashMap<>();
map.put("keywordId", keywordId);
map.put("keywordClassifyId", keywordClassifyId);
return getSessionTemplate().selectList(getStatement("getNameListByClassifyId"), map);
}
}
......@@ -77,4 +77,6 @@ public class PcloudKeywordReply extends BaseEntity {
@ApiModelProperty("文件大小")
private Long fileSize;
@ApiModelProperty("描述")
private String description;
}
......@@ -83,4 +83,16 @@
</foreach>
</delete>
<select id="getNameListByClassifyId" parameterType="map" resultType="string">
SELECT
n.`name`
FROM
pcloud_keyword_name n
LEFT JOIN pcloud_keyword k ON n.pcloud_keyword_id = k.id
WHERE
k.keyword_classify_id = #{keywordClassifyId}
<if test=" keywordId != null">
AND k.id != #{keywordId}
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -13,11 +13,12 @@
<result column="relevance_type" property="relevanceType" jdbcType="INTEGER"/>
<result column="relevance_id" property="relevanceId" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="description" property="description" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id, type, content, pic_url, serve_id, serve_type, link_url, resource_id, relevance_type, relevance_id, create_time
id, type, content, pic_url, serve_id, serve_type, link_url, resource_id, relevance_type, relevance_id, create_time,description
</sql>
<delete id="deleteById" parameterType="long">
......@@ -37,7 +38,8 @@
resource_id,
relevance_type,
relevance_id,
create_time
create_time,
description
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{type,jdbcType=INTEGER},
......@@ -49,7 +51,8 @@
#{resourceId,jdbcType=BIGINT},
#{relevanceType,jdbcType=INTEGER},
#{relevanceId,jdbcType=BIGINT},
NOW()
NOW(),
#{description}
</trim>
</insert>
......@@ -65,7 +68,8 @@
resource_id,
relevance_type,
relevance_id,
create_time
create_time,
description
) values
<foreach collection="list" item="item" index="index" separator=",">
(
......@@ -78,7 +82,8 @@
#{item.resourceId,jdbcType=BIGINT},
#{item.relevanceType,jdbcType=INTEGER},
#{item.relevanceId,jdbcType=BIGINT},
NOW()
NOW(),
#{item.description}
)
</foreach>
</insert>
......
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