Commit 2968ae3e by 郑永强

【1002273】与小睿对话记录用户书刊并索要出版社信息

parent 46c8a8c3
......@@ -251,4 +251,10 @@ public interface BookService {
@RequestParam(value = "keyword") String keyword,
@RequestParam(value = "adviserId") Long adviserId
) throws BizException;
@ApiOperation("根据书名模糊匹配,获得所有book_id")
@RequestMapping(value = "/getBookIdsByBookName", method = RequestMethod.GET)
ResponseEntity<ResponseDto<List<Long>>> getBookIdsByBookName(
@RequestParam(value = "bookName") String bookName
) throws BizException;
}
......@@ -605,4 +605,10 @@ public interface BookBiz {
*/
void exportBookIncomeDetail(Map<String, Object> paramMap, Long agentId, Long partyId, String systemCode);
/**
* 根据书名模糊匹配,获得所有book_id
* @param bookName
* @return
*/
List<Long> getBookIdsByBookName(String bookName);
}
......@@ -1898,4 +1898,24 @@ public class BookBizImpl implements BookBiz {
}
});
}
@ParamLog("根据书名模糊匹配,获得所有book_id")
@Override
public List<Long> getBookIdsByBookName(String bookName) {
LOGGER.info("根据书名模糊匹配,获得所有book_id,<START>.[bookName]=" + bookName);
if (StringUtil.isEmpty(bookName)) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "请输入书名");
}
List<Long> bookIds;
try {
bookIds = bookDao.getBookIdsByBookName(bookName);
if (bookIds == null) {
bookIds = Lists.newArrayList();
}
} catch (Exception e) {
LOGGER.error("根据书名模糊匹配,获得所有book_id,<ERROR>.[getBookIdsByBookName]:" + e.getMessage(), e);
throw BizException.DB_SELECT_IS_FAIL;
}
return bookIds;
}
}
......@@ -320,4 +320,11 @@ public interface BookDao extends BaseDao<Book> {
List<BookSaleVO> listIncomePage4Agent(Map<String,Object> paramMap);
Long countIncomePage4Agent(Map<String, Object> paramMap);
/**
* 模糊匹配书名 限制50条
* @param bookName
* @return
*/
List<Long> getBookIdsByBookName(String bookName);
}
......@@ -314,4 +314,11 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
public Long countIncomePage4Agent(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("countIncomePage4Agent"), paramMap);
}
@Override
public List<Long> getBookIdsByBookName(String bookName) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("bookName", bookName);
return super.getSqlSession().selectList(getStatement("getBookIdsByBookName"),paramMap);
}
}
......@@ -201,4 +201,13 @@ public class BookServiceImpl implements BookService {
) throws BizException {
return ResponseHandleUtil.toResponse(bookBiz.getIdsByNameOrISBN(keyword, adviserId));
}
@ApiOperation("根据书名模糊匹配,获得所有book_id")
@RequestMapping(value = "/getBookIdsByBookName", method = RequestMethod.GET)
@Override
public ResponseEntity<ResponseDto<List<Long>>> getBookIdsByBookName(
@RequestParam(value = "bookName") String bookName
) throws BizException {
return ResponseHandleUtil.toResponse(bookBiz.getBookIdsByBookName(bookName));
}
}
......@@ -4,6 +4,7 @@
package com.pcloud.book.consumer.user;
import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.channelcenter.wechat.service.MessageService;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
......@@ -31,6 +32,8 @@ public class ChannelConsr {
@Autowired
private ChannelService channelService;
@Autowired
private MessageService messageService;
/**
* 获取渠道名称
......@@ -124,4 +127,18 @@ public class ChannelConsr {
}
}
/**
* 根据bookIds获取资源数
* @param bookIds
* @return
*/
public Integer getMessageCountByBookIds(List<Long> bookIds){
LOGGER.info("根据bookIds获取资源数,<START>.[bookIds]=" + bookIds.toString());
try {
return ResponseHandleUtil.parseResponse(messageService.getMessageCountByBookIds(bookIds), Integer.class);
} catch (Exception e) {
LOGGER.error("获取代理下已经审核通过的运营id.[getApproveIdList]:" + e.getMessage(), e);
throw new ChannelBizException(ChannelBizException.PARAM_IS_NULL, "运营不存在");
}
}
}
package com.pcloud.book.keywords.biz;
import com.pcloud.book.keywords.dto.SelfRobotBookRecordDTO;
import com.pcloud.book.keywords.entity.SelfRobotKeyword;
import com.pcloud.book.keywords.vo.GuideWordVO;
import com.pcloud.book.keywords.vo.LabelVO;
......@@ -38,4 +39,8 @@ public interface SelfRobotKeywordBiz {
void sendWhenNoReply(Integer id, String robotId, String wxUserId);
List<SelfRobotKeyword> getListByBookGroupId(Long bookGroupId);
PageBeanNew<SelfRobotBookRecordDTO> getSelfRobotBookRecordList(Integer currentPage, Integer numPerPage);
void exportSelfRobotBookRecord(Long partyId);
}
......@@ -5,11 +5,14 @@ import com.google.common.collect.Maps;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookKeywordWarehouseBiz;
import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dto.BookGuideDelayDto;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.live.LiveCons;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.BookGroupAppBiz;
import com.pcloud.book.group.biz.BookGroupBiz;
......@@ -94,6 +97,7 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
......@@ -170,6 +174,15 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
@Autowired
private SelfRobotKeywordReplyDao selfRobotKeywordReplyDao;
@Autowired
private BookDao bookDao;
@Autowired
private SelfRobotKeywordReplyTemplateDao selfRobotKeywordReplyTemplateDao;
@Autowired
private ChannelConsr channelConsr;
@Autowired
private SelfRobotBookRecordDao selfRobotBookRecordDao;
@Autowired
private ReadingActivityBiz readingActivityBiz;
@Autowired
private NotKeywordTemplateDao notKeywordTemplateDao;
......@@ -508,6 +521,9 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
return;
}
if (SendMessageTypeEnum.SELF.getCode().equals(sendTextDTO.getCode())) {
// 小睿对话索要出版社信息
boolean _continue = replySelfKeywordTemplate(sendTextDTO);
if(_continue) {
dealBookGroupCipher(sendTextDTO);
//判断是否为某个群分类名称
inviteToGroupByKeyword(sendTextDTO);
......@@ -517,6 +533,90 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
replySelfKeyword(sendTextDTO);
}
}
}
@ParamLog("小睿根据书名推送匹配的资源")
private boolean replySelfKeywordTemplate(SendTextDTO sendTextDTO) {
String content = sendTextDTO.getTextContent();
String redisKey = "replySelfKeywordTemplate:"+sendTextDTO.getWxId()+":"+sendTextDTO.getWechatUserId();
List<SelfRobotKeywordReplyTemplate> replyTemplateList = selfRobotKeywordReplyTemplateDao.getList();
// 解析出《》的书名
Pattern pattern = Pattern.compile("《(.*?)》");
Matcher matcher = pattern.matcher(content);
// 如果匹配不到,在匹配出版社
if (!matcher.find() || matcher.group(1).trim().isEmpty()) {
// 解析出版社 出版社:
int index = content.indexOf("出版社:");
// 再匹配不到,直接返回,并走接下来的逻辑
if(index == -1) {
index = content.indexOf("出版社:");
if(index == -1)
return true;
}
String agentName = content.substring(index + 4);
if(StringUtil.isNotNull(agentName)){
// 从redis取出书名
String bookName = JedisClusterUtils.get(redisKey);
// 删掉书名
JedisClusterUtils.del(redisKey);
if(StringUtil.isNotNull(bookName)){
// 将书的信息录入
SelfRobotBookRecord selfRobotBookRecord = new SelfRobotBookRecord();
selfRobotBookRecord.setWxUserId(sendTextDTO.getWechatUserId());
selfRobotBookRecord.setAltId(sendTextDTO.getWxId());
selfRobotBookRecord.setBookName(bookName);
selfRobotBookRecord.setStatus(2);
selfRobotBookRecord.setAgentName(agentName);
selfRobotBookRecordDao.insert(selfRobotBookRecord);
}
Optional<SelfRobotKeywordReplyTemplate> replyTemplate = replyTemplateList.stream().filter(x -> x.getStatus().equals(2)).findFirst();
sendText(sendTextDTO, replyTemplate.get().getReplyContentTemplate());
}
}
String bookName = matcher.group(1).trim();
// 根据书名查询到 bookIds
List<Long> bookIds = bookDao.getBookIdsByBookName(bookName);
if(ListUtils.isEmpty(bookIds)){
// 将书名写入redis暂存
JedisClusterUtils.set(redisKey, bookName);
// 如果bookIds没有值,则回复模板状态3
// 呃,小睿刚才仔细的找了下,发现书刊的配套资源我这边还没有呢,要不等小睿看完整理好后再给你吧
Optional<SelfRobotKeywordReplyTemplate> replyTemplate = replyTemplateList.stream().filter(x -> x.getStatus().equals(3)).findFirst();
sendText(sendTextDTO, replyTemplate.get().getReplyContentTemplate().replace("${bookName}",bookName));
} else {
// 根据bookIds查询资源数;
Integer totalCount = channelConsr.getMessageCountByBookIds(bookIds);
if(totalCount > 0){
// 信息录入
SelfRobotBookRecord selfRobotBookRecord = new SelfRobotBookRecord();
selfRobotBookRecord.setWxUserId(sendTextDTO.getWechatUserId());
selfRobotBookRecord.setAltId(sendTextDTO.getWxId());
selfRobotBookRecord.setBookName(bookName);
selfRobotBookRecord.setStatus(3);
selfRobotBookRecordDao.insert(selfRobotBookRecord);
// 如果有书有资源,则转换链接,并推送链接给用户
Map<String,String> paramMap = new HashMap<>();
paramMap.put("wxId",sendTextDTO.getWechatUserId());
paramMap.put("robotWxId",sendTextDTO.getWxId());
paramMap.put("bookName",URLEncoder.encode(bookName));
Optional<SelfRobotKeywordReplyTemplate> replyTemplate = replyTemplateList.stream().filter(x -> x.getStatus().equals(4)).findFirst();
sendText(sendTextDTO,appendUrlParams(replyTemplate.get().getReplyContentTemplate(),paramMap));
} else{
// 信息录入
SelfRobotBookRecord selfRobotBookRecord = new SelfRobotBookRecord();
selfRobotBookRecord.setWxUserId(sendTextDTO.getWechatUserId());
selfRobotBookRecord.setAltId(sendTextDTO.getWxId());
selfRobotBookRecord.setBookName(bookName);
selfRobotBookRecord.setStatus(1);
selfRobotBookRecordDao.insert(selfRobotBookRecord);
// 如果有书但没有资源,则回复模板状态1
Optional<SelfRobotKeywordReplyTemplate> replyTemplate = replyTemplateList.stream().filter(x -> x.getStatus().equals(1)).findFirst();
sendText(sendTextDTO, replyTemplate.get().getReplyContentTemplate().replace("${bookName}",bookName));
}
}
return false;
}
@ParamLog("回复新版关键词")
private void replySelfKeyword(SendTextDTO sendTextDTO) {
......
package com.pcloud.book.keywords.biz.impl;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.advertising.dto.AdvertisingSpaceDTO;
import com.pcloud.book.advertising.dto.GroupTagDTO;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.common.ExportConsr;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
......@@ -15,9 +19,12 @@ import com.pcloud.book.group.entity.WeixinQrcodeGeneration;
import com.pcloud.book.group.enums.AppAndProductTypeEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.keywords.biz.SelfRobotKeywordBiz;
import com.pcloud.book.keywords.dao.SelfRobotBookRecordDao;
import com.pcloud.book.keywords.dao.SelfRobotGuideDao;
import com.pcloud.book.keywords.dao.SelfRobotKeywordDao;
import com.pcloud.book.keywords.dao.SelfRobotKeywordReplyDao;
import com.pcloud.book.keywords.dto.SelfRobotBookRecordDTO;
import com.pcloud.book.keywords.entity.SelfRobotBookRecord;
import com.pcloud.book.keywords.entity.SelfRobotGuide;
import com.pcloud.book.keywords.entity.SelfRobotKeyword;
import com.pcloud.book.keywords.mapper.TempRobotSkillDao;
......@@ -31,8 +38,13 @@ import com.pcloud.book.keywords.vo.SelfRobotReplyVO;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.biz.MessageBiz;
import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.core.dto.SendNotifyDto;
import com.pcloud.common.core.enums.NotifyOriginTypeEnum;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.string.StringUtil;
......@@ -40,21 +52,21 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserDTO;
import com.pcloud.wechatgroup.timecontrol.dto.LabelDto;
import com.pcloud.wechatgroup.timecontrol.dto.TaskDto;
import com.pcloud.wechatgroup.timecontrol.service.TimeControlTaskService;
import com.sdk.wxgroup.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -63,6 +75,7 @@ import java.util.stream.Collectors;
* @Date 2019/12/30 11:35
**/
@Component("selfRobotKeywordBiz")
@Slf4j
public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
@Autowired
......@@ -91,6 +104,12 @@ public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
private WeixinQrcodeGenerationDao weixinQrcodeGenerationDao;
@Autowired
private SelfRobotGuideDao selfRobotGuideDao;
@Autowired
private SelfRobotBookRecordDao selfRobotBookRecordDao;
@Autowired
private ExportConsr exportConsr;
@Autowired
private MessageBiz messageBiz;
@Transactional(rollbackFor = Exception.class)
@ParamLog("批量新增个人号关键词")
......@@ -700,4 +719,117 @@ public class SelfRobotKeywordBizImpl implements SelfRobotKeywordBiz {
}
}
}
@Override
public PageBeanNew<SelfRobotBookRecordDTO> getSelfRobotBookRecordList(Integer currentPage, Integer numPerPage) {
PageBeanNew<SelfRobotBookRecordDTO> pageBeanNew = selfRobotBookRecordDao.listPageNew(new PageParam(currentPage, numPerPage), null, "getSelfRobotBookRecordList");
List<SelfRobotBookRecordDTO> recordList = pageBeanNew.getRecordList();
if(!ListUtils.isEmpty(recordList)){
List<String> collect = recordList.stream().map(x -> x.getWxUserId()).distinct().collect(Collectors.toList());
Map<String, GroupUserDTO> userDTOMap = wechatGroupConsr.mapWxUserInfoByWxIdList(collect);
if(MapUtils.isNotEmpty(userDTOMap)){
GroupUserDTO groupUserDTO;
for (SelfRobotBookRecordDTO selfRobotBookRecordDTO : recordList){
//用户信息
if (userDTOMap.containsKey(selfRobotBookRecordDTO.getWxUserId())) {
groupUserDTO = userDTOMap.get(selfRobotBookRecordDTO.getWxUserId());
selfRobotBookRecordDTO.setNickName(groupUserDTO.getNickName());
selfRobotBookRecordDTO.setHeadPic(groupUserDTO.getHeadPic());
selfRobotBookRecordDTO.setSex(groupUserDTO.getSex());
}
}
}
}
return pageBeanNew;
}
@Override
public void exportSelfRobotBookRecord(Long partyId) {
List<SelfRobotBookRecordDTO> list = selfRobotBookRecordDao.getAllSelfRobotBookRecordList();
if(ListUtils.isEmpty(list)) {
return;
}
List<String> collect = list.stream().map(x -> x.getWxUserId()).distinct().collect(Collectors.toList());
Map<String, GroupUserDTO> userDTOMap = wechatGroupConsr.mapWxUserInfoByWxIdList(collect);
if(MapUtils.isNotEmpty(userDTOMap)){
GroupUserDTO groupUserDTO;
for (SelfRobotBookRecordDTO selfRobotBookRecordDTO : list){
//用户信息
if (userDTOMap.containsKey(selfRobotBookRecordDTO.getWxUserId())) {
groupUserDTO = userDTOMap.get(selfRobotBookRecordDTO.getWxUserId());
selfRobotBookRecordDTO.setNickName(groupUserDTO.getNickName());
selfRobotBookRecordDTO.setHeadPic(groupUserDTO.getHeadPic());
selfRobotBookRecordDTO.setSex(groupUserDTO.getSex());
}
}
}
ThreadPoolUtils.EXPORT_THREAD_POOL.execute(() -> {
String fileName = "用户书刊信息收录导出_" + DateUtils.getShortDateStr();
String zipTitle = "用户书刊信息收录导出__" + DateUtils.getShortDateStr();
Boolean isSuccess = true;
String fileUrl = "";
try {
fileUrl = getExcelUrl4SelfRobotBookRecord(list, fileName);
} catch (Exception e) {
log.error("生成导出文件失败" + e.getMessage(), e);
isSuccess = false;
}
// 发送消息
if (isSuccess) {
sendNotify(partyId, fileUrl, zipTitle);
}
});
}
/**
* 发送站内信
*/
private void sendNotify(Long partyId, String fileUrl, String fileName) {
JSONObject content = new JSONObject();
content.put("commitTime", DateUtils.formatDate(new Date()));
content.put("type", "书刊收录信息导出");
SendNotifyDto sendNotifyDto = new SendNotifyDto();
sendNotifyDto.setCreatedTime(new Date());
sendNotifyDto.setFromId(partyId);
sendNotifyDto.setToId(partyId);
sendNotifyDto.setNotifyContent(content.toJSONString());
sendNotifyDto.setSystemCode(SystemCode.pcloud.code);
sendNotifyDto.setTypeCode("wechat_learn_export");
sendNotifyDto.setResourceId(fileUrl);
sendNotifyDto.setFileName(fileName);
sendNotifyDto.setOriginType(NotifyOriginTypeEnum.BOOK_GROUP.value);
try {
messageBiz.sendLetter(sendNotifyDto);
} catch (Exception e) {
log.error("【站内信(消)】发送站内信.[sendLetter]:" + e.getMessage(), e);
}
}
private String getExcelUrl4SelfRobotBookRecord(List<SelfRobotBookRecordDTO> list, String fileName) {
// 字段名
String[] rowsName = {"编号","读者信息", "书刊名称", "出版社", "书刊状态", "读者输入时间"};
List<Object[]> dataList = new ArrayList<>();
Object[] objs;
for (int i = 0; i < list.size(); i++) {
SelfRobotBookRecordDTO selfRobotBookRecordDTO = list.get(i);
objs = new Object[rowsName.length];
objs[0] = i + 1;
objs[1] = !StringUtil.isEmpty(selfRobotBookRecordDTO.getNickName()) ? selfRobotBookRecordDTO.getNickName() : "--";
objs[2] = !StringUtil.isEmpty(selfRobotBookRecordDTO.getBookName()) ? selfRobotBookRecordDTO.getBookName() : "--";
objs[3] = !StringUtil.isEmpty(selfRobotBookRecordDTO.getAgentName()) ? selfRobotBookRecordDTO.getAgentName() : "--";
String bookStatus = null;
switch (selfRobotBookRecordDTO.getStatus()){
case 1 : bookStatus = "已收录未配置资源";break;
case 2 : bookStatus = "未收录";break;
case 3 : bookStatus = "已收录有资源";
}
objs[4] = !StringUtil.isEmpty(bookStatus) ? bookStatus : "--";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
objs[5] = (selfRobotBookRecordDTO.getCreateTime() != null ? simpleDateFormat.format(selfRobotBookRecordDTO.getCreateTime()) : "--");
dataList.add(objs);
}
String fileUrl = exportConsr.exportExcel(fileName, rowsName, dataList);
return fileUrl;
}
}
package com.pcloud.book.keywords.dao;
import com.pcloud.book.keywords.dto.SelfRobotBookRecordDTO;
import com.pcloud.book.keywords.entity.SelfRobotBookRecord;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface SelfRobotBookRecordDao extends BaseDao<SelfRobotBookRecord> {
List<SelfRobotBookRecordDTO> getAllSelfRobotBookRecordList();
}
package com.pcloud.book.keywords.dao;
import com.pcloud.book.keywords.entity.SelfRobotKeywordReplyTemplate;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @Description
* @Author zhengyongqiang
* @Date 2020/02/05 22:10
**/
public interface SelfRobotKeywordReplyTemplateDao extends BaseDao<SelfRobotKeywordReplyTemplate> {
List<SelfRobotKeywordReplyTemplate> getList();
}
package com.pcloud.book.keywords.dao.impl;
import com.pcloud.book.keywords.dao.SelfRobotBookRecordDao;
import com.pcloud.book.keywords.dto.SelfRobotBookRecordDTO;
import com.pcloud.book.keywords.entity.SelfRobotBookRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository("selfRobotBookRecordDao")
public class SelfRobotBookRecordDaoImpl extends BaseDaoImpl<SelfRobotBookRecord> implements SelfRobotBookRecordDao {
@Override
public List<SelfRobotBookRecordDTO> getAllSelfRobotBookRecordList() {
return getSqlSession().selectList(getStatement("getAllSelfRobotBookRecordList"));
}
}
package com.pcloud.book.keywords.dao.impl;
import com.pcloud.book.keywords.dao.SelfRobotKeywordReplyTemplateDao;
import com.pcloud.book.keywords.entity.SelfRobotKeywordReplyTemplate;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Description
* @Author zhengyongqiang
* @Date 2020/02/05 23:59
**/
@Component("selfRobotKeywordReplyTemplateDao")
public class SelfRobotKeywordReplyTemplateDaoImpl extends BaseDaoImpl<SelfRobotKeywordReplyTemplate> implements SelfRobotKeywordReplyTemplateDao {
@Override
public List<SelfRobotKeywordReplyTemplate> getList() {
return getSessionTemplate().selectList(getStatement("getList"));
}
}
package com.pcloud.book.keywords.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Description
* @Author zhengyongqiang
* @Date 2020/02/06 12:10
**/
@Data
public class SelfRobotBookRecordDTO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("社群码id")
private Long bookGroupId;
@ApiModelProperty("用户id")
private String wxUserId;
@ApiModelProperty("机器人id")
private String altId;
@ApiModelProperty("书名")
private String bookName;
@ApiModelProperty("出版社名称")
private String agentName;
@ApiModelProperty("状态")
private Integer status;
@ApiModelProperty("头像")
private String headPic;
@ApiModelProperty("昵称")
private String nickName;
@ApiModelProperty("性别")
private Integer sex;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
package com.pcloud.book.keywords.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author zhengyongqiang
* @Date 2020/02/06 12:10
**/
@Data
@ApiModel("个人号关键词回复模板")
public class SelfRobotBookRecord extends BaseEntity {
private static final long serialVersionUID = 982575139118784017L;
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("社群码id")
private Long bookGroupId;
@ApiModelProperty("用户id")
private String wxUserId;
@ApiModelProperty("机器人id")
private String altId;
@ApiModelProperty("书名")
private String bookName;
@ApiModelProperty("出版社名称")
private String agentName;
@ApiModelProperty("状态")
private Integer status;
}
package com.pcloud.book.keywords.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Description
* @Author zhengyongqiang
* @Date 2020/02/05 22:10
**/
@Data
@ApiModel("个人号关键词回复模板")
public class SelfRobotKeywordReplyTemplate extends BaseEntity {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("内容")
private String replyContentTemplate;
@ApiModelProperty("状态")
private Integer status;
}
......@@ -121,4 +121,16 @@ public interface SelfRobotKeywordFacade {
@ApiOperation(value = "用户点击引导语未操作时,主动回复", httpMethod = "GET")
@GetMapping("sendWhenNoReply")
ResponseDto<?> sendWhenNoReply(Integer id, String robotId, String wxUserId);
@ApiOperation("获取个人号图书信息记录列表")
@GetMapping("getSelfRobotBookRecordList")
ResponseDto<?> getSelfRobotBookRecordList(
@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage
) throws BizException, PermissionException;
@ApiOperation("书刊信息收录导出")
@GetMapping("exportSelfRobotBookRecord")
ResponseDto<?> exportSelfRobotBookRecord(@RequestHeader("token") String token) throws BizException, PermissionException;
}
......@@ -184,4 +184,19 @@ public class SelfRobotKeywordFacadeImpl implements SelfRobotKeywordFacade {
return new ResponseDto<>();
}
@Override
public ResponseDto<?> getSelfRobotBookRecordList(@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage
) throws BizException, PermissionException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(selfRobotKeywordBiz.getSelfRobotBookRecordList(currentPage,numPerPage));
}
@Override
public ResponseDto<?> exportSelfRobotBookRecord(@RequestHeader("token") String token) throws BizException, PermissionException {
Long partyId = (Long)SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
selfRobotKeywordBiz.exportSelfRobotBookRecord(partyId);
return new ResponseDto<>();
}
}
......@@ -2013,4 +2013,14 @@
BF.BOOK_FUND_ID IS NOT NULL
</if>
</select>
<select id="getBookIdsByBookName" parameterType="map" resultType="long">
SELECT DISTINCT a.BOOK_ID
FROM
book_adviser a
INNER JOIN book b ON a.BOOK_ID = b.BOOK_ID AND a.IS_DELETE = 0 AND b.IS_DELETE = 0
WHERE
b.BOOK_NAME LIKE CONCAT('%',#{bookName},'%')
LIMIT 0,50
</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.keywords.dao.impl.SelfRobotBookRecordDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.keywords.entity.SelfRobotBookRecord">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="book_group_id" property="bookGroupId" jdbcType="BIGINT"/>
<result column="wx_user_id" property="wxUserId" jdbcType="VARCHAR"/>
<result column="alt_id" property="altId" jdbcType="VARCHAR"/>
<result column="book_name" property="bookName" jdbcType="VARCHAR"/>
<result column="agent_name" property="agentName" jdbcType="VARCHAR"/>
<result column="status" property="status" jdbcType="INTEGER"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, book_group_id, wx_user_id, alt_id, book_name, agent_name, status, create_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.keywords.entity.SelfRobotBookRecord" useGeneratedKeys="true"
keyProperty="id">
insert into self_robot_book_record
<trim prefix="(" suffix=")" suffixOverrides=",">
book_group_id,
wx_user_id,
alt_id,
book_name,
agent_name,
status,
create_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{bookGroupId,jdbcType=BIGINT},
#{wxUserId,jdbcType=VARCHAR},
#{altId,jdbcType=VARCHAR},
#{bookName,jdbcType=VARCHAR},
#{agentName,jdbcType=VARCHAR},
#{status,jdbcType=INTEGER},
NOW()
</trim>
</insert>
<select id="getSelfRobotBookRecordList" resultType="com.pcloud.book.keywords.dto.SelfRobotBookRecordDTO">
SELECT id,book_group_id bookGroupId,wx_user_id wxUserId,alt_id altId,book_name bookName,agent_name agentName, status, create_time createTime
FROM self_robot_book_record
ORDER BY id DESC
</select>
<select id="getAllSelfRobotBookRecordList" resultType="com.pcloud.book.keywords.dto.SelfRobotBookRecordDTO">
SELECT id,book_group_id bookGroupId,wx_user_id wxUserId,alt_id altId,book_name bookName,agent_name agentName, status, create_time createTime
FROM self_robot_book_record
ORDER BY id DESC
</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.keywords.dao.impl.SelfRobotKeywordReplyTemplateDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.keywords.entity.SelfRobotKeywordReplyTemplate">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="reply_content_template" property="replyContentTemplate" jdbcType="VARCHAR"/>
<result column="status" property="status" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id, reply_content_template, status
</sql>
<select id="getList" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from self_robot_keyword_reply_template
</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