Commit 40642092 by 高鹏

Merge branch 'feat-1002282' into 'master'

平台端关键词

See merge request rays/pcloud-book!365
parents 3dc69f86 7bc9851e
......@@ -60,6 +60,17 @@ import com.pcloud.book.keywords.vo.QrWeixinParam;
import com.pcloud.book.keywords.vo.SetKeywordVO;
import com.pcloud.book.keywords.vo.SetRankVO;
import com.pcloud.book.keywords.vo.UpdateKeywordVO;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordClassifyDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordReplyDao;
import com.pcloud.book.pcloudkeyword.dao.PcloudNotKeywordDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeyword;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply;
import com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword;
import com.pcloud.book.pcloudkeyword.enums.KeywordTypeEnum;
import com.pcloud.book.pcloudkeyword.enums.MethodEnum;
import com.pcloud.book.pcloudkeyword.enums.RelevanceTypeEnum;
import com.pcloud.book.reading.biz.ReadingActivityBiz;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.constants.ChannelEnum;
......@@ -110,6 +121,7 @@ import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.TreeSet;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
......@@ -188,6 +200,14 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
private NotKeywordTemplateDao notKeywordTemplateDao;
@Autowired
private NotKeywordItemDao notKeywordItemDao;
@Autowired
private PcloudKeywordDao pcloudKeywordDao;
@Autowired
private PcloudKeywordReplyDao pcloudKeywordReplyDao;
@Autowired
private PcloudNotKeywordDao pcloudNotKeywordDao;
@Autowired
private PcloudKeywordClassifyDao pcloudKeywordClassifyDao;
/**
* 字符串切割长度
*/
......@@ -520,6 +540,19 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
this.sendKeywordMessageToGroup(sendTextDTO);
return;
}
//TODO 判断是否是平台端配置的小号,因为还没有上,先写死,关闭
Boolean isPcloudRobot=false;
if ("test".equalsIgnoreCase(envStr) && "wxid_zus32xb5ukjn22".equals(sendTextDTO.getWxId())){
isPcloudRobot = true;
}
if ("uat".equalsIgnoreCase(envStr) && "wxid_fadtd2q58njx12".equals(sendTextDTO.getWxId())){
isPcloudRobot = true;
}
if (isPcloudRobot){
sendPcloudKeyword(sendTextDTO);
return;
}
if (SendMessageTypeEnum.SELF.getCode().equals(sendTextDTO.getCode())) {
// 小睿对话索要出版社信息
boolean _continue = replySelfKeywordTemplate(sendTextDTO);
......@@ -618,6 +651,122 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
return false;
}
@ParamLog("发送平台端小号的")
private void sendPcloudKeyword(SendTextDTO sendTextDTO) {
String userWxId = sendTextDTO.getWechatUserId();
String ip = sendTextDTO.getIp();
Integer code = sendTextDTO.getCode();
String robotId = sendTextDTO.getWxId();
//TODO 获取小号对应的分类Id,个人号配置该没有,先写,后面改
Long pcloudClassifyId=1L;
PcloudKeywordClassify pcloudKeywordClassify = pcloudKeywordClassifyDao.getById(pcloudClassifyId);
if (null == pcloudKeywordClassify || !pcloudKeywordClassify.getOpen()){//分类未启用
return;
}
String content=sendTextDTO.getTextContent();
//根据关键词分类和关键词查询关键词
//精准
PcloudKeyword pcloudKeyword=pcloudKeywordDao.getByClassifyIdAndName(KeywordTypeEnum.ACCURATE.value,pcloudClassifyId,content);
if (pcloudKeyword==null){
//模糊
pcloudKeyword=pcloudKeywordDao.getByClassifyIdAndName(KeywordTypeEnum.LIKE.value,pcloudClassifyId,content);
}
if (pcloudKeyword!=null){
//走关键词
List<PcloudKeywordReply> replies = pcloudKeywordReplyDao.getByRelevance(RelevanceTypeEnum.KEYWORD.value, pcloudKeyword.getId());
if (MethodEnum.RANDOM.value.equals(pcloudKeyword.getMethod())){
int a= (int) Math.floor(Math.random()*replies.size());
replies=Arrays.asList(replies.get(a));
}
for (PcloudKeywordReply reply:replies){
sendPcloudKeywordReply(reply, robotId, userWxId, ip, code);
}
}else {
//走非关键词
List<PcloudNotKeyword> notKeywords = pcloudNotKeywordDao.getPcloudNotKeywordList(pcloudClassifyId);
if (!ListUtils.isEmpty(notKeywords)){
for (PcloudNotKeyword pcloudNotKeyword : notKeywords){
List<PcloudKeywordReply> replies = pcloudKeywordReplyDao.getByRelevance(RelevanceTypeEnum.NOT_KEYWORD.value, pcloudNotKeyword.getId());
if (ListUtils.isEmpty(replies)){
continue;
}
if (MethodEnum.RANDOM.value.equals(pcloudNotKeyword.getMethod())){
replies = Arrays.asList(replies.get(new Random().nextInt(replies.size())));
}
for (PcloudKeywordReply reply:replies){
sendPcloudKeywordReply(reply, robotId, userWxId, ip, code);
}
}
}
}
}
@ParamLog("平台端个人号关键词回复")
public void sendPcloudKeywordReply(PcloudKeywordReply reply, String robotId, String userWxId, String ip, Integer code){
Integer type = reply.getType();
if (ReplyTypeEnum.TEXT.value.equals(type)) {
SendTextMessageVO sendTextMessageVO = new SendTextMessageVO();
sendTextMessageVO.setContent(reply.getContent());
sendTextMessageVO.setAltId(robotId);
sendTextMessageVO.setWxGroupId(userWxId);
sendTextMessageVO.setIp(ip);
sendTextMessageVO.setCode(code);
WxGroupSDK.sendTextMessage(sendTextMessageVO);
}
if (ReplyTypeEnum.IMAGE.value.equals(type)) {
SendPicMessageVO sendPicMessageVO = new SendPicMessageVO();
sendPicMessageVO.setWxGroupId(userWxId);
sendPicMessageVO.setAltId(robotId);
sendPicMessageVO.setPicUrl(reply.getPicUrl());
sendPicMessageVO.setIp(ip);
sendPicMessageVO.setCode(code);
WxGroupSDK.sendPicMessage(sendPicMessageVO);
}
if (ReplyTypeEnum.APP.value.equals(type)) {
if (AppAndProductTypeEnum.APP.value.equals(reply.getServeType())) {
AppDto appDto = appConsr.getBaseById(reply.getServeId());
if (appDto != null) {
AccountSettingDto accountSettingDto = qrcodeSceneConsr.getWechatInfo(appDto.getChannelId());
// 处理链接地址
String endUrl = reply.getLinkUrl() + "&wxId=" + userWxId + "&robotWxId=" + robotId;
String linkUrl = SendWeixinRequestTools.splitUrl(accountSettingDto, endUrl);
String resultUrl = UrlUtils.getShortUrl4Own(linkUrl);
SendArticleMessageVO sendArticleMessageVO = new SendArticleMessageVO();
sendArticleMessageVO.setCode(code);
sendArticleMessageVO.setAltId(robotId);
sendArticleMessageVO.setDescription(appDto.getDetail());
sendArticleMessageVO.setWxGroupId(userWxId);
sendArticleMessageVO.setLinkUrl(resultUrl);
sendArticleMessageVO.setPicUrl(appDto.getSquareImg());
sendArticleMessageVO.setTitle(appDto.getTitle());
sendArticleMessageVO.setIp(ip);
WxGroupSDK.sendArticleMessage(sendArticleMessageVO);
}
}
}
if (ReplyTypeEnum.RESOURCE.value.equals(type)) {
SendFileVO sendFileVO = new SendFileVO();
Map<Long, ResourceDTO> map = resourceConsr.mapByIds(Arrays.asList(reply.getResourceId()));
ResourceDTO resourceDTO = map.get(reply.getResourceId());
if (resourceDTO != null) {
sendFileVO.setFileUrl(resourceDTO.getFileUrl());
String fileName = resourceDTO.getResourceName();
String fileType = resourceDTO.getFileType();
log.info("fileName="+fileName+"+fileType+"+fileType);
if (fileName.contains(fileType)){//去掉后缀
fileName = fileName.substring(0, fileName.indexOf(fileType)-1);
}
log.info("fileName="+fileName);
sendFileVO.setFileName(fileName);
}
sendFileVO.setIp(ip);
sendFileVO.setAltId(robotId);
sendFileVO.setWxId(userWxId);
WxGroupSDK.sendFile(sendFileVO);
}
}
@ParamLog("回复新版关键词")
private void replySelfKeyword(SendTextDTO sendTextDTO) {
String content = sendTextDTO.getTextContent();
......
package com.pcloud.book.pcloudkeyword.biz;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeyword;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword;
public interface PcloudKeywordBiz {
void createPcloudKeyword(PcloudKeyword pcloudKeyword);
void updatePcloudKeyword(PcloudKeyword pcloudKeyword);
PcloudKeyword getPcloudKeyword(Long id);
PageBeanNew<PcloudKeyword> getPcloudKeywordList(Long keywordClassifyId, String name, Integer currentPage, Integer numPerPage);
void deletePcloudKeyword(Long id);
/**
* 新增非关键词回复
* @return
*/
Long insertNotKeyword(PcloudNotKeyword pcloudNotKeyword);
/**
* 修改费关键词
*/
void updateNotKeyword(PcloudNotKeyword pcloudNotKeyword);
/**
* 删除非关键词
* @param id
*/
void deletePcloudNotKeyword(Long id);
/**
* 根据id查非关键词
* @param id
* @return
*/
public PcloudNotKeyword getNotKeywordById(Long id);
/**
* 非关键词列表
* @param keywordClassifyId
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<PcloudNotKeyword> getPcloudNotKeywordList(Long keywordClassifyId, Integer currentPage, Integer numPerPage);
/**
* 根据分类删除关键词
* @param id
*/
void deleteByKeywordClassifyId(Long id);
}
package com.pcloud.book.pcloudkeyword.biz;
import com.pcloud.book.pcloudkeyword.dto.PcloudKeywordClassifyDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
public interface PcloudKeywordClassifyBiz {
/**
* 新增
* @param pcloudKeywordClassify
*/
public Long insert(PcloudKeywordClassify pcloudKeywordClassify);
/**
* 修改
* @param pcloudKeywordClassify
*/
public void update(PcloudKeywordClassify pcloudKeywordClassify);
/**
* 删除
* @param id
*/
public void deleteById(Long id);
/**
* 更新启用状态
* @param id
* @param open
*/
public void updateOpenStateById(Long id, Boolean open);
/**
* 查询
* @param classify
* @return
*/
List<PcloudKeywordClassifyDTO> list(String classify);
}
package com.pcloud.book.pcloudkeyword.biz.impl;
import com.pcloud.book.pcloudkeyword.biz.PcloudKeywordBiz;
import com.pcloud.book.pcloudkeyword.biz.PcloudKeywordClassifyBiz;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordClassifyDao;
import com.pcloud.book.pcloudkeyword.dto.PcloudKeywordClassifyDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component("pcloudKeywordClassifyBiz")
public class PcloudKeywordClassifyBizImpl implements PcloudKeywordClassifyBiz {
@Autowired
private PcloudKeywordClassifyDao pcloudKeywordClassifyDao;
@Autowired
private PcloudKeywordBiz pcloudKeywordBiz;
@Override
public Long insert(PcloudKeywordClassify pcloudKeywordClassify) {
pcloudKeywordClassifyDao.insert(pcloudKeywordClassify);
Long id = pcloudKeywordClassify.getId();
return id;
}
@Override
public void update(PcloudKeywordClassify pcloudKeywordClassify) {
pcloudKeywordClassifyDao.update(pcloudKeywordClassify);
}
@Override
public void deleteById(Long id) {
pcloudKeywordClassifyDao.setDeleteById(id);
//删除关键词
pcloudKeywordBiz.deleteByKeywordClassifyId(id);
}
@Override
public void updateOpenStateById(Long id, Boolean open) {
pcloudKeywordClassifyDao.updateOpenById(id, open);
}
@Override
public List<PcloudKeywordClassifyDTO> list(String classify){
List<PcloudKeywordClassifyDTO> list = pcloudKeywordClassifyDao.list(classify);
return list;
}
}
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.entity.PcloudKeyword;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordName;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply;
import com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.string.StringUtil;
import org.springframework.stereotype.Component;
import java.util.List;
@Component("pcloudKeywordCheck")
public class PcloudKeywordCheck {
@ParamLog("新增关键词校验")
public void createPcloudKeywordCheck(PcloudKeyword pcloudKeyword) {
if (pcloudKeyword==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数为空!");
}
if (pcloudKeyword.getMethod()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"方式1全部回复,2随机回复为空!");
}
if (pcloudKeyword.getType()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"类型1:精准,2模糊为空!");
}
if (pcloudKeyword.getKeywordClassifyId()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"分类为空!");
}
if (ListUtils.isEmpty(pcloudKeyword.getPcloudKeywordNames())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"名称为空!");
}
if (ListUtils.isEmpty(pcloudKeyword.getPcloudKeywordReplies())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"回复为空!");
}
for (PcloudKeywordName name:pcloudKeyword.getPcloudKeywordNames()){
if (name==null|| StringUtil.isEmpty(name.getName())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"名称为空!");
}
}
replyCheck(pcloudKeyword.getPcloudKeywordReplies());
}
private void replyCheck(List<PcloudKeywordReply> replyList){
for (PcloudKeywordReply reply:replyList){
if (reply==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"回复为空!");
}
if (reply.getType()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"回复类型为空!");
}
if (ReplyTypeEnum.TEXT.value.equals(reply.getType())&&StringUtil.isEmpty(reply.getContent())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"回复内容为空!");
}
if (ReplyTypeEnum.IMAGE.value.equals(reply.getType())&&StringUtil.isEmpty(reply.getPicUrl())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"回复内容为空!");
}
if (ReplyTypeEnum.APP.value.equals(reply.getType())
&&(StringUtil.isEmpty(reply.getServeType())||reply.getServeId()==null)){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"回复应用类型或应用id为空!");
}
if (ReplyTypeEnum.RESOURCE.value.equals(reply.getType())&&reply.getResourceId()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"回复资源id为空!");
}
}
}
@ParamLog("修改关键词校验")
public void updatePcloudKeywordCheck(PcloudKeyword pcloudKeyword) {
if (pcloudKeyword==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数为空!");
}
if (pcloudKeyword.getId()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"id为空!");
}
createPcloudKeywordCheck(pcloudKeyword);
}
/**
* 非关键词新增校验
* @param pcloudNotKeyword
*/
public void createPcloudNotKeywordCheck(PcloudNotKeyword pcloudNotKeyword) {
if (pcloudNotKeyword==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数为空!");
}
if (pcloudNotKeyword.getMethod()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"方式1全部回复,2随机回复为空!");
}
if (pcloudNotKeyword.getKeywordClassifyId()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"分类为空!");
}
if (ListUtils.isEmpty(pcloudNotKeyword.getPcloudKeywordReplies())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"回复为空!");
}
replyCheck(pcloudNotKeyword.getPcloudKeywordReplies());
}
/**
* 非关键词修改校验
* @param pcloudNotKeyword
*/
public void updateNotPcloudKeywordCheck(PcloudNotKeyword pcloudNotKeyword) {
if (pcloudNotKeyword==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数为空!");
}
if (pcloudNotKeyword.getId()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"id为空!");
}
createPcloudNotKeywordCheck(pcloudNotKeyword);
}
}
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudkeyword.dto.PcloudKeywordClassifyDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
*平台端个人号关键词分类
*/
public interface PcloudKeywordClassifyDao extends BaseDao<PcloudKeywordClassify> {
/**
* 删除
* @param id
*/
public void setDeleteById(Long id);
/**
* 更新启用状态
* @param id
* @param open
*/
public void updateOpenById(Long id, Boolean open);
/**
* 列表
* @param classify
* @return
*/
List<PcloudKeywordClassifyDTO> list(String classify);
}
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeyword;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface PcloudKeywordDao extends BaseDao<PcloudKeyword> {
List<Long> getIdsByClassifyId(Long keywordClassifyId);
void deleteByClassifyId(Long keywordClassifyId);
PcloudKeyword getByClassifyIdAndName(Integer type, Long pcloudClassifyId, String name);
}
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordName;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface PcloudKeywordNameDao extends BaseDao<PcloudKeywordName> {
Integer batchInsert(List<PcloudKeywordName> list);
void deleteByPcloudKeywordId(Long id);
List<PcloudKeywordName> getByPcloudKeywordId(Long pcloudKeywordId);
List<PcloudKeywordName> getByPcloudKeywordIds(List<Long> pcloudKeywordIds);
void deleteByKeywordIds(List<Long> pcloudKeywordIds);
}
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface PcloudKeywordReplyDao extends BaseDao<PcloudKeywordReply> {
Integer batchInsert(List<PcloudKeywordReply> list);
void deleteByRelevance(Integer relevanceType,Long relevanceId);
List<PcloudKeywordReply> getByRelevance(Integer relevanceType, Long relevanceId);
List<PcloudKeywordReply> getByRelevances(Integer relevanceType, List<Long> relevanceIds);
void deleteByRelevanceIds(Integer relevanceType, List<Long> relevanceIds);
}
package com.pcloud.book.pcloudkeyword.dao;
import com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface PcloudNotKeywordDao extends BaseDao<PcloudNotKeyword> {
/**
* 根据分类id查非关键词id
* @param keywordClassifyId
* @return
*/
List<Long> getIdsByClassifyId(Long keywordClassifyId);
/**
* 根据分类id删除
* @param keywordClassifyId
*/
public void deleteByClassifyId(Long keywordClassifyId);
/**
* 根据分类id查询
* @param keywordClassifyId
* @return
*/
public List<PcloudNotKeyword> getPcloudNotKeywordList(Long keywordClassifyId);
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordClassifyDao;
import com.pcloud.book.pcloudkeyword.dto.PcloudKeywordClassifyDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*平台端个人号关键词分类
*/
@Component("pcloudKeywordClassifyDao")
public class PcloudKeywordClassifyDaoImpl extends BaseDaoImpl<PcloudKeywordClassify> implements PcloudKeywordClassifyDao {
@Override
public void setDeleteById(Long id) {
getSessionTemplate().update(getStatement("setDeleteById"), id);
}
@Override
public void updateOpenById(Long id, Boolean open) {
Map<String,Object> map = new HashMap<>();
map.put("id",id);
map.put("open",open);
getSessionTemplate().update(getStatement("updateOpenById"),map);
}
@Override
public List<PcloudKeywordClassifyDTO> list(String classify) {
Map<String,Object> map = new HashMap<>();
map.put("classify", classify);
return getSessionTemplate().selectList(getStatement("list"), map);
}
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeyword;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component("pcloudKeywordDao")
public class PcloudKeywordDaoImpl extends BaseDaoImpl<PcloudKeyword> implements PcloudKeywordDao {
@Override
public List<Long> getIdsByClassifyId(Long keywordClassifyId) {
return getSessionTemplate().selectList(getStatement("getIdsByClassifyId"), keywordClassifyId);
}
@Override
public void deleteByClassifyId(Long keywordClassifyId) {
getSessionTemplate().delete(getStatement("deleteByClassifyId"), keywordClassifyId);
}
@Override
public PcloudKeyword getByClassifyIdAndName(Integer type, Long pcloudClassifyId, String name) {
Map<String,Object> map=new HashMap<>();
map.put("type",type);
map.put("pcloudClassifyId",pcloudClassifyId);
map.put("name",name);
return getSessionTemplate().selectOne(getStatement("getByClassifyIdAndName"), map);
}
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordNameDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordName;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component("pcloudKeywordNameDao")
public class PcloudKeywordNameDaoImpl extends BaseDaoImpl<PcloudKeywordName> implements PcloudKeywordNameDao {
@Override
public Integer batchInsert(List<PcloudKeywordName> list) {
return super.getSqlSession().insert(getStatement("batchInsert"), list);
}
@Override
public void deleteByPcloudKeywordId(Long pcloudKeywordId) {
super.getSqlSession().delete(getStatement("deleteByPcloudKeywordId"), pcloudKeywordId);
}
@Override
public List<PcloudKeywordName> getByPcloudKeywordId(Long pcloudKeywordId) {
Map<String,Object> map=new HashMap<>();
map.put("pcloudKeywordId",pcloudKeywordId);
return super.getSqlSession().selectList(getStatement("getByPcloudKeywordId"), map);
}
@Override
public List<PcloudKeywordName> getByPcloudKeywordIds(List<Long> pcloudKeywordIds) {
Map<String,Object> map=new HashMap<>();
map.put("pcloudKeywordIds",pcloudKeywordIds);
return super.getSqlSession().selectList(getStatement("getByPcloudKeywordIds"), map);
}
@Override
public void deleteByKeywordIds(List<Long> pcloudKeywordIds) {
Map<String,Object> map=new HashMap<>();
map.put("pcloudKeywordIds",pcloudKeywordIds);
getSessionTemplate().delete(getStatement("deleteByKeywordIds"), map);
}
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.pcloud.book.pcloudkeyword.dao.PcloudKeywordReplyDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component("pcloudKeywordReplyDao")
public class PcloudKeywordReplyDaoImpl extends BaseDaoImpl<PcloudKeywordReply> implements PcloudKeywordReplyDao {
@Override
public Integer batchInsert(List<PcloudKeywordReply> list) {
return super.getSqlSession().insert(getStatement("batchInsert"), list);
}
@Override
public void deleteByRelevance(Integer relevanceType, Long relevanceId) {
Map<String,Object> map=new HashMap<>();
map.put("relevanceType",relevanceType);
map.put("relevanceId",relevanceId);
super.getSqlSession().delete(getStatement("deleteByRelevance"), map);
}
@Override
public List<PcloudKeywordReply> getByRelevance(Integer relevanceType, Long relevanceId) {
Map<String,Object> map=new HashMap<>();
map.put("relevanceType",relevanceType);
map.put("relevanceId",relevanceId);
return super.getSqlSession().selectList(getStatement("getByRelevance"), map);
}
@Override
public List<PcloudKeywordReply> getByRelevances(Integer relevanceType, List<Long> relevanceIds) {
Map<String,Object> map=new HashMap<>();
map.put("relevanceType",relevanceType);
map.put("relevanceIds",relevanceIds);
return super.getSqlSession().selectList(getStatement("getByRelevances"), map);
}
@Override
public void deleteByRelevanceIds(Integer relevanceType, List<Long> relevanceIds) {
Map<String,Object> map=new HashMap<>();
map.put("relevanceType",relevanceType);
map.put("relevanceIds",relevanceIds);
getSessionTemplate().delete(getStatement("deleteByRelevanceIds"), map);
}
}
package com.pcloud.book.pcloudkeyword.dao.impl;
import com.pcloud.book.pcloudkeyword.dao.PcloudNotKeywordDao;
import com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component("pcloudNotKeywordDao")
public class PcloudNotKeywordDaoImpl extends BaseDaoImpl<PcloudNotKeyword> implements PcloudNotKeywordDao {
@Override
public List<Long> getIdsByClassifyId(Long keywordClassifyId) {
return getSessionTemplate().selectList(getStatement("getIdsByClassifyId"), keywordClassifyId);
}
@Override
public void deleteByClassifyId(Long keywordClassifyId) {
getSessionTemplate().delete(getStatement("deleteByClassifyId"), keywordClassifyId);
}
@Override
public List<PcloudNotKeyword> getPcloudNotKeywordList(Long keywordClassifyId) {
Map<String,Object> map = new HashMap<>();
map.put("keywordClassifyId", keywordClassifyId);
return getSessionTemplate().selectList(getStatement("getPcloudNotKeywordList"), map);
}
}
package com.pcloud.book.pcloudkeyword.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.wechatgroup.base.dto.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("全平台关键词分类")
public class PcloudKeywordClassifyDTO extends BaseDTO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("分类")
private String keywordClassify;
@ApiModelProperty("是否启用")
private Boolean open;
@ApiModelProperty("创建人")
private Long createUser;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
@ApiModelProperty("创建时间")
private Date createTime;
}
package com.pcloud.book.pcloudkeyword.entity;
import com.pcloud.common.entity.BaseEntity;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("全平台关键词")
public class PcloudKeyword extends BaseEntity {
@ApiModelProperty("类型1:精准,2模糊")
private Integer type;
@ApiModelProperty("方式1全部回复,2随机回复")
private Integer method;
@ApiModelProperty("关键词分类id")
private Long keywordClassifyId;
@ApiModelProperty("回复列表")
private List<PcloudKeywordReply> pcloudKeywordReplies;
@ApiModelProperty("名称列表")
private List<PcloudKeywordName> pcloudKeywordNames;
}
package com.pcloud.book.pcloudkeyword.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
@ApiModel("全平台关键词分类")
public class PcloudKeywordClassify extends BaseEntity {
@ApiModelProperty("分类")
private String keywordClassify;
@ApiModelProperty("是否启用")
private Boolean open;
@ApiModelProperty("是否删除")
private Boolean isDelete;
@ApiModelProperty("创建人")
private Long createUser;
@ApiModelProperty("修改人")
private Long updateUser;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
@ApiModelProperty("创建时间")
private Date createTime;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
@ApiModelProperty("修改时间")
private Date updateTime;
}
package com.pcloud.book.pcloudkeyword.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("全平台关键词名称")
@Data
public class PcloudKeywordName extends BaseEntity {
@ApiModelProperty("关键词id")
private Long pcloudKeywordId;
@ApiModelProperty("名称")
private String name;
}
package com.pcloud.book.pcloudkeyword.entity;
import com.pcloud.common.entity.BaseEntity;
import com.pcloud.contentcenter.resource.dto.ResourceOfficeItemDTO;
import com.pcloud.contentcenter.resource.dto.ResourcePdfItemDTO;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("关键词和非关键词回复")
public class PcloudKeywordReply extends BaseEntity {
@ApiModelProperty("类型 1 文字 2 图片 3 链接 4应用 5素材")
private Integer type;
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("图片地址")
private String picUrl;
@ApiModelProperty("应用或作品id")
private Long serveId;
@ApiModelProperty("应用或作品类型")
private String serveType;
@ApiModelProperty("链接地址")
private String linkUrl;
@ApiModelProperty("资源id")
private Long resourceId;
@ApiModelProperty("关联类型1关键词,2非关键词")
private Integer relevanceType;
@ApiModelProperty("关联的关键词或非关键词id")
private Long relevanceId;
@ApiModelProperty("应用或作品图片")
private String servePic;
@ApiModelProperty("应用或作品名称")
private String serveName;
@ApiModelProperty("应用或作品类型名称")
private String serveTypeName;
@ApiModelProperty("应用或作品类型编码")
private String serveTypeCode;
@ApiModelProperty("资源链接")
private String resourceUrl;
@ApiModelProperty("资源名称")
private String resourceName;
@ApiModelProperty("资源类型编码")
private String resourceTypeCode;
@ApiModelProperty("资源类型名称")
private String resourceTypeName;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("pdf转码后的单张图片集合")
private List<ResourcePdfItemDTO> resourcePdfItems;
@ApiModelProperty("文件转码后的单张图片集合")
private List<ResourceOfficeItemDTO> resourceOfficeItemDTOs;
@ApiModelProperty("文件大小")
private Long fileSize;
}
package com.pcloud.book.pcloudkeyword.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("全平台非关键词")
public class PcloudNotKeyword extends BaseEntity {
@ApiModelProperty("方式1全部回复,2随机回复")
private Integer method;
@ApiModelProperty("关键词分类id")
private Long keywordClassifyId;
@ApiModelProperty("创建人")
private Long createUser;
@ApiModelProperty("回复列表")
private List<PcloudKeywordReply> pcloudKeywordReplies;
}
package com.pcloud.book.pcloudkeyword.enums;
public enum KeywordTypeEnum {
/**
* 精准
*/
ACCURATE(1),
/**
* 随机回复
*/
LIKE(2);
/**
* 值
*/
public final Integer value;
KeywordTypeEnum(Integer value) {
this.value = value;
}
}
package com.pcloud.book.pcloudkeyword.enums;
public enum MethodEnum {
/**
* 1全部回复,
*/
ALL(1),
/**
* 2随机回复
*/
RANDOM(2);
/**
* 值
*/
public final Integer value;
MethodEnum(Integer value) {
this.value = value;
}
}
package com.pcloud.book.pcloudkeyword.enums;
public enum RelevanceTypeEnum {
/**
* 关键词
*/
KEYWORD(1),
/**
* 非关键词
*/
NOT_KEYWORD(2);
/**
* 值
*/
public final Integer value;
RelevanceTypeEnum(Integer value) {
this.value = value;
}
}
package com.pcloud.book.pcloudkeyword.facade;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.pcloudkeyword.biz.PcloudKeywordBiz;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeyword;
import com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.book.pcloudkeyword.biz.PcloudKeywordClassifyBiz;
import com.pcloud.book.pcloudkeyword.dto.PcloudKeywordClassifyDTO;
import com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify;
import com.pcloud.common.utils.string.StringUtil;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import java.util.List;
@Api("全平台关键词")
@RestController("pcloudKeywordFacade")
@RequestMapping("pcloudKeyword")
public class PcloudKeywordFacade {
@Autowired
private PcloudKeywordBiz pcloudKeywordBiz;
@Autowired
private PcloudKeywordClassifyBiz pcloudKeywordClassifyBiz;
@ApiOperation("新增关键词分类")
@PostMapping("insertClassify")
public ResponseDto<?> insertClassify(@RequestHeader("token") String token, @RequestBody @ApiParam PcloudKeywordClassify pcloudKeywordClassify) throws PermissionException {
Long partyId = (Long) SessionUtil.getVlaue(token,SessionUtil.PARTY_ID);
if (null == pcloudKeywordClassify || StringUtil.isEmpty(pcloudKeywordClassify.getKeywordClassify()) || null == pcloudKeywordClassify.getOpen()){
throw new BookBizException(BookBizException.FILED_NULL,"缺少参数");
}
pcloudKeywordClassify.setCreateUser(partyId);
return new ResponseDto<>(pcloudKeywordClassifyBiz.insert(pcloudKeywordClassify));
}
@ApiOperation("修改关键词分类")
@PostMapping("updateClassify")
public ResponseDto<?> updateClassify(@RequestHeader("token") String token, @RequestBody @ApiParam PcloudKeywordClassify pcloudKeywordClassify) throws PermissionException {
Long partyId = (Long) SessionUtil.getVlaue(token,SessionUtil.PARTY_ID);
if (null == pcloudKeywordClassify || null == pcloudKeywordClassify.getId()){
throw new BookBizException(BookBizException.FILED_NULL,"缺少参数id");
}
if (StringUtil.isEmpty(pcloudKeywordClassify.getKeywordClassify()) || null == pcloudKeywordClassify.getOpen()){
throw new BookBizException(BookBizException.FILED_NULL,"缺少参数");
}
pcloudKeywordClassify.setUpdateUser(partyId);
pcloudKeywordClassifyBiz.update(pcloudKeywordClassify);
return new ResponseDto<>();
}
@ApiOperation("删除关键词分类")
@GetMapping("deleteClassifyById")
public ResponseDto<?> deleteClassifyById(@RequestHeader("token") String token, @RequestParam("id") @ApiParam("id")Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == id){
throw new BookBizException(BookBizException.FILED_NULL,"缺少参数id");
}
pcloudKeywordClassifyBiz.deleteById(id);
return new ResponseDto<>();
}
@ApiOperation("修改关键词分类启用状态")
@GetMapping("updateClassifyOpen")
public ResponseDto<?> updateClassifyOpen(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("id") Long id, @RequestParam("open") @ApiParam("启用状态") Boolean open) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == id || null == open){
throw new BookBizException(BookBizException.FILED_NULL,"缺少参数");
}
pcloudKeywordClassifyBiz.updateOpenStateById(id, open);
return new ResponseDto<>();
}
@ApiOperation("关键词分类列表")
@GetMapping("listKeywordClassify")
public ResponseDto<List<PcloudKeywordClassifyDTO>> listKeywordClassify(
@RequestHeader("token") String token,
@RequestParam(value = "classify", required = false) @ApiParam("分类名模糊查询") String classify) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
List<PcloudKeywordClassifyDTO> list = pcloudKeywordClassifyBiz.list(classify);
return new ResponseDto<>(list);
}
@ApiOperation("新增平台端关键词")
@PostMapping("createPcloudKeyword")
ResponseDto<?> createPcloudKeyword(
@RequestHeader("token") String token,
@RequestBody @ApiParam("平台端关键词") PcloudKeyword pcloudKeyword
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudKeywordBiz.createPcloudKeyword(pcloudKeyword);
return new ResponseDto<>();
}
@ApiOperation("修改平台端关键词")
@PostMapping("updatePcloudKeyword")
ResponseDto<?> updatePcloudKeyword(
@RequestHeader("token") String token,
@RequestBody @ApiParam("平台端关键词") PcloudKeyword pcloudKeyword
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudKeywordBiz.updatePcloudKeyword(pcloudKeyword);
return new ResponseDto<>();
}
@ApiOperation("获取平台端关键词")
@GetMapping("getPcloudKeyword")
ResponseDto<?> getPcloudKeyword(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("平台端关键词") Long id
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(pcloudKeywordBiz.getPcloudKeyword(id));
}
@ApiOperation("获取平台端关键词")
@GetMapping("getPcloudKeywordList")
ResponseDto<?> getPcloudKeywordList(
@RequestHeader("token") String token,
@RequestParam("keywordClassifyId") @ApiParam("平台端关键词分类id") Long keywordClassifyId,
@RequestParam(value = "name", required = false) @ApiParam("平台端关键词名称") String name,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(pcloudKeywordBiz.getPcloudKeywordList(keywordClassifyId, name, currentPage,numPerPage));
}
@ApiOperation("删除平台端关键词")
@GetMapping("deletePcloudKeyword")
ResponseDto<?> deletePcloudKeyword(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("平台端关键词") Long id
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudKeywordBiz.deletePcloudKeyword(id);
return new ResponseDto<>();
}
@ApiOperation("新增非关键词")
@PostMapping("insertNotKeyword")
public ResponseDto<?> insertNotKeyword(@RequestHeader("token") String token, @RequestBody @ApiParam PcloudNotKeyword pcloudNotKeyword) throws PermissionException {
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudNotKeyword.setCreateUser(partyId);
Long id = pcloudKeywordBiz.insertNotKeyword(pcloudNotKeyword);
return new ResponseDto<>(id);
}
@ApiOperation("修改非关键词")
@PostMapping("updateNotKeyword")
public ResponseDto<?> updateNotKeyword(@RequestHeader("token") String token, @RequestBody @ApiParam PcloudNotKeyword pcloudNotKeyword) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
pcloudKeywordBiz.updateNotKeyword(pcloudNotKeyword);
return new ResponseDto<>();
}
@ApiOperation("删除非关键词")
@GetMapping("deleteNotKeywordById")
public ResponseDto<?> deleteNotKeywordById(@RequestHeader("token") String token,@RequestParam("id") Long id) throws PermissionException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
pcloudKeywordBiz.deletePcloudNotKeyword(id);
return new ResponseDto<>();
}
@ApiOperation("根据id查询非关键词")
@GetMapping("getNotKeywordById")
public ResponseDto<?> getNotKeywordById(@RequestHeader("token") String token,@RequestParam("id") Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
return new ResponseDto<>(pcloudKeywordBiz.getNotKeywordById(id));
}
@ApiOperation("获取平台端非关键词")
@GetMapping("getPcloudNotKeywordList")
ResponseDto<?> getPcloudNotKeywordList(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("平台端关键词分类id") Long keywordClassifyId,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage
) throws BizException, PermissionException{
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(pcloudKeywordBiz.getPcloudNotKeywordList(keywordClassifyId, currentPage,numPerPage));
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.pcloudkeyword.dao.impl.PcloudKeywordDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.pcloudkeyword.entity.PcloudKeyword">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="keyword_classify_id" property="keywordClassifyId" jdbcType="BIGINT"/>
<result column="type" property="type" jdbcType="INTEGER"/>
<result column="method" property="method" jdbcType="INTEGER"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, keyword_classify_id, type,method, create_time
</sql>
<delete id="deleteById" parameterType="long">
delete from pcloud_keyword where id=#{id}
</delete>
<insert id="insert" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudKeyword" useGeneratedKeys="true"
keyProperty="id">
insert into pcloud_keyword
<trim prefix="(" suffix=")" suffixOverrides=",">
keyword_classify_id,
type,
method,
create_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{keywordClassifyId,jdbcType=BIGINT},
#{type,jdbcType=INTEGER},
#{method,jdbcType=INTEGER},
NOW()
</trim>
</insert>
<update id="update" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudKeyword">
update pcloud_keyword
<set>
<if test="keywordClassifyId != null">
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT},
</if>
<if test="type != null">
type = #{type,jdbcType=INTEGER},
</if>
<if test="method != null">
method = #{method,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_keyword
where id=#{id}
</select>
<select id="getPcloudKeywordList" parameterType="map" resultMap="BaseResultMap">
select
t1.id, t1.keyword_classify_id, t1.type,t1.method, t1.create_time
from pcloud_keyword t1
inner join pcloud_keyword_name t2 on t1.id=t2.pcloud_keyword_id
where t1.keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT}
<if test="name!=null">
and t2.name like concat('%', #{name}, '%')
</if>
group by t1.id
</select>
<select id="getIdsByClassifyId" parameterType="long" resultType="long">
SELECT
id
FROM
pcloud_keyword
WHERE
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT}
</select>
<delete id="deleteByClassifyId" parameterType="long">
delete FROM
pcloud_keyword
WHERE
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT}
</delete>
<select id="getByClassifyIdAndName" parameterType="map" resultMap="BaseResultMap">
select t1.id, t1.keyword_classify_id, t1.type,t1.method, t1.create_time
from pcloud_keyword t1
inner join pcloud_keyword_name t2 on t1.id=t2.pcloud_keyword_id
where t1.keyword_classify_id=#{pcloudClassifyId}
and t1.type=#{type}
<if test="type==1">
and t2.name=#{name}
</if>
<if test="type==2">
and t2.name like concat('%', #{name}, '%')
</if>
group by t1.id
limit 1
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.pcloudkeyword.dao.impl.PcloudKeywordClassifyDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="keyword_classify" property="keywordClassify" jdbcType="VARCHAR"/>
<result column="open" property="open" jdbcType="BOOLEAN"/>
<result column="is_delete" property="isDelete" jdbcType="BOOLEAN"/>
<result column="create_user" property="createUser" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_user" property="updateUser" jdbcType="BIGINT"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, keyword_classify, open, is_delete, create_user, create_time, update_user, update_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify" useGeneratedKeys="true"
keyProperty="id">
insert into pcloud_keyword_classify
<trim prefix="(" suffix=")" suffixOverrides=",">
keyword_classify,
open,
is_delete,
create_user,
create_time,
update_user,
update_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{keywordClassify,jdbcType=VARCHAR},
#{open},
0,
#{createUser,jdbcType=BIGINT},
NOW(),
#{createUser,jdbcType=BIGINT},
NOW()
</trim>
</insert>
<update id="update" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudKeywordClassify">
update pcloud_keyword_classify
<set>
<if test="keywordClassify != null">
keyword_classify = #{keywordClassify,jdbcType=VARCHAR},
</if>
<if test="open != null">
open = #{open},
</if>
<if test="updateUser != null">
update_user = #{updateUser,jdbcType=BIGINT},
</if>
update_time = NOW(),
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="setDeleteById" parameterType="long">
update pcloud_keyword_classify
set is_delete = 1,
update_time = NOW()
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateOpenById" parameterType="map">
update pcloud_keyword_classify
set open = #{open},
update_time = NOW()
where id = #{id,jdbcType=BIGINT}
</update>
<select id="list" parameterType="map" resultType="com.pcloud.book.pcloudkeyword.dto.PcloudKeywordClassifyDTO">
select
id id,
keyword_classify keywordClassify,
open open,
create_user createUser,
create_time createTime
from pcloud_keyword_classify
where is_delete = 0
<if test="classify != null">
and keyword_classify like concat("%", #{classify}, "%")
</if>
order by id desc
</select>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"></include>
from pcloud_keyword_classify
where id = #{id,jdbcType=BIGINT}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.pcloudkeyword.dao.impl.PcloudKeywordNameDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.pcloudkeyword.entity.PcloudKeywordName">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="pcloud_keyword_id" property="pcloudKeywordId" jdbcType="BIGINT"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, pcloud_keyword_id, name, create_time
</sql>
<delete id="deleteById" parameterType="long">
delete from pcloud_keyword_name where id=#{id}
</delete>
<insert id="insert" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudKeywordName" useGeneratedKeys="true"
keyProperty="id">
insert into pcloud_keyword_name
<trim prefix="(" suffix=")" suffixOverrides=",">
pcloud_keyword_id,
name,
create_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{pcloudKeywordId,jdbcType=BIGINT},
#{name,jdbcType=VARCHAR},
NOW()
</trim>
</insert>
<!--批量插入-->
<insert id="batchInsert" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudKeywordName" useGeneratedKeys="true" keyProperty="id">
insert into pcloud_keyword_name (
pcloud_keyword_id,
name,
create_time
) values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.pcloudKeywordId,jdbcType=BIGINT},
#{item.name,jdbcType=VARCHAR},
NOW()
)
</foreach>
</insert>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_keyword_name
where id=#{id}
</select>
<delete id="deleteByPcloudKeywordId" parameterType="long">
delete from pcloud_keyword_name
where pcloud_keyword_id=#{pcloudKeywordId}
</delete>
<select id="getByPcloudKeywordId" parameterType="map" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_keyword_name
where pcloud_keyword_id=#{pcloudKeywordId}
</select>
<select id="getByPcloudKeywordIds" parameterType="map" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_keyword_name
where pcloud_keyword_id in
<foreach collection="pcloudKeywordIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
</select>
<delete id="deleteByKeywordIds" parameterType="map">
delete FROM
pcloud_keyword_name
where pcloud_keyword_id in
<foreach collection="pcloudKeywordIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
</delete>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.pcloudkeyword.dao.impl.PcloudKeywordReplyDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="type" property="type" jdbcType="INTEGER"/>
<result column="content" property="content" jdbcType="VARCHAR"/>
<result column="pic_url" property="picUrl" jdbcType="VARCHAR"/>
<result column="serve_id" property="serveId" jdbcType="BIGINT"/>
<result column="serve_type" property="serveType" jdbcType="VARCHAR"/>
<result column="link_url" property="linkUrl" jdbcType="VARCHAR"/>
<result column="resource_id" property="resourceId" jdbcType="BIGINT"/>
<result column="relevance_type" property="relevanceType" jdbcType="INTEGER"/>
<result column="relevance_id" property="relevanceId" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
</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
</sql>
<delete id="deleteById" parameterType="long">
delete from pcloud_keyword_name where id=#{id}
</delete>
<insert id="insert" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply" useGeneratedKeys="true"
keyProperty="id">
insert into pcloud_keyword_reply
<trim prefix="(" suffix=")" suffixOverrides=",">
type,
content,
pic_url,
serve_id,
serve_type,
link_url,
resource_id,
relevance_type,
relevance_id,
create_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{type,jdbcType=INTEGER},
#{content,jdbcType=VARCHAR},
#{picUrl,jdbcType=VARCHAR},
#{serveId,jdbcType=BIGINT},
#{serveType,jdbcType=VARCHAR},
#{linkUrl,jdbcType=VARCHAR},
#{resourceId,jdbcType=BIGINT},
#{relevanceType,jdbcType=INTEGER},
#{relevanceId,jdbcType=BIGINT},
NOW()
</trim>
</insert>
<!--批量插入-->
<insert id="batchInsert" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudKeywordReply" useGeneratedKeys="true" keyProperty="id">
insert into pcloud_keyword_reply (
type,
content,
pic_url,
serve_id,
serve_type,
link_url,
resource_id,
relevance_type,
relevance_id,
create_time
) values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.type,jdbcType=INTEGER},
#{item.content,jdbcType=VARCHAR},
#{item.picUrl,jdbcType=VARCHAR},
#{item.serveId,jdbcType=BIGINT},
#{item.serveType,jdbcType=VARCHAR},
#{item.linkUrl,jdbcType=VARCHAR},
#{item.resourceId,jdbcType=BIGINT},
#{item.relevanceType,jdbcType=INTEGER},
#{item.relevanceId,jdbcType=BIGINT},
NOW()
)
</foreach>
</insert>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_keyword_reply
where id=#{id}
</select>
<delete id="deleteByRelevance" parameterType="map">
delete from pcloud_keyword_reply
where relevance_id=#{relevanceId}
and relevance_type=#{relevanceType}
</delete>
<select id="getByRelevance" parameterType="map" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_keyword_reply
where relevance_id=#{relevanceId}
and relevance_type=#{relevanceType}
</select>
<select id="getByRelevances" parameterType="map" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_keyword_reply
where relevance_id in
<foreach collection="relevanceIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
and relevance_type=#{relevanceType}
</select>
<delete id="deleteByRelevanceIds" parameterType="map">
delete from pcloud_keyword_reply
where relevance_id in
<foreach collection="relevanceIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
and relevance_type=#{relevanceType}
</delete>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.pcloudkeyword.dao.impl.PcloudNotKeywordDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="keyword_classify_id" property="keywordClassifyId" jdbcType="BIGINT"/>
<result column="method" property="method" jdbcType="INTEGER"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="create_user" property="createUser" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
id, keyword_classify_id,method, create_time, create_user
</sql>
<delete id="deleteById" parameterType="long">
delete from pcloud_not_keyword where id=#{id}
</delete>
<insert id="insert" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword" useGeneratedKeys="true"
keyProperty="id">
insert into pcloud_not_keyword
<trim prefix="(" suffix=")" suffixOverrides=",">
keyword_classify_id,
method,
create_time,
create_user
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{keywordClassifyId,jdbcType=BIGINT},
#{method,jdbcType=INTEGER},
NOW(),
#{createUser}
</trim>
</insert>
<update id="update" parameterType="com.pcloud.book.pcloudkeyword.entity.PcloudNotKeyword">
update pcloud_not_keyword
<set>
<if test="keywordClassifyId != null">
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT},
</if>
<if test="method != null">
method = #{method,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from pcloud_not_keyword
where id=#{id}
</select>
<select id="getPcloudNotKeywordList" parameterType="map" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM
pcloud_not_keyword
WHERE
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT}
ORDER BY
id DESC
</select>
<select id="getIdsByClassifyId" resultType="long" parameterType="long">
SELECT id
FROM
pcloud_not_keyword
WHERE
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT}
</select>
<delete id="deleteByClassifyId" parameterType="long">
delete FROM
pcloud_not_keyword
WHERE
keyword_classify_id = #{keywordClassifyId,jdbcType=BIGINT}
</delete>
</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