Commit af5e9a50 by 阮思源

Merge branch 'feat-1002621' into 'master'

1002621 小睿小程序二期-新用户注册进入小程序流程功能

See merge request rays/pcloud-book!593
parents 9c387ba8 569a85dc
...@@ -2,6 +2,7 @@ package com.pcloud.book.book.biz; ...@@ -2,6 +2,7 @@ package com.pcloud.book.book.biz;
import com.pcloud.book.book.entity.HotBook; import com.pcloud.book.book.entity.HotBook;
import com.pcloud.book.book.entity.SearchRecord; import com.pcloud.book.book.entity.SearchRecord;
import com.pcloud.book.book.vo.BookSearchTopVO;
import com.pcloud.book.book.vo.SearchBookVO; import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -22,13 +23,15 @@ public interface SearchBiz { ...@@ -22,13 +23,15 @@ public interface SearchBiz {
PageBeanNew<SearchRecord> getSearchRecordList(String content, Long bookId, Long agentId, Integer currentPage, Integer numPerPage); PageBeanNew<SearchRecord> getSearchRecordList(String content, Long bookId, Long agentId, Integer currentPage, Integer numPerPage);
PageBeanNew<SearchRecord> getUserSearchList4H5(String wxId, Integer currentPage, Integer numPerPage); PageBeanNew<SearchRecord> getUserSearchList4H5(String wxId, Long wechatUserId, Integer currentPage, Integer numPerPage);
void deleteUserSearchList4H5(String wxId); void deleteUserSearchList4H5(String wxId, Long wechatUserId);
void exportSearchList(String systemCode, Long partyId, String content); void exportSearchList(String systemCode, Long partyId, String content);
void exportSearchRecordList(String systemCode, Long partyId, String content, Long bookId, Long agentId); void exportSearchRecordList(String systemCode, Long partyId, String content, Long bookId, Long agentId);
List<String> getBookSearchUserList4H5(Long bookId); List<String> getBookSearchUserList4H5(Long bookId);
List<BookSearchTopVO> getBookSearchTop(Integer top);
} }
...@@ -2,10 +2,13 @@ package com.pcloud.book.book.biz.impl; ...@@ -2,10 +2,13 @@ package com.pcloud.book.book.biz.impl;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.SearchBiz; import com.pcloud.book.book.biz.SearchBiz;
import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dao.HotBookDao; import com.pcloud.book.book.dao.HotBookDao;
import com.pcloud.book.book.dao.SearchRecordDao; import com.pcloud.book.book.dao.SearchRecordDao;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.HotBook; import com.pcloud.book.book.entity.HotBook;
import com.pcloud.book.book.entity.SearchRecord; import com.pcloud.book.book.entity.SearchRecord;
import com.pcloud.book.book.vo.BookSearchTopVO;
import com.pcloud.book.book.vo.SearchBookVO; import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.book.consumer.common.ExportConsr; import com.pcloud.book.consumer.common.ExportConsr;
import com.pcloud.book.consumer.message.MessageConsr; import com.pcloud.book.consumer.message.MessageConsr;
...@@ -53,6 +56,8 @@ public class SearchBizImpl implements SearchBiz { ...@@ -53,6 +56,8 @@ public class SearchBizImpl implements SearchBiz {
private ExportConsr exportConsr; private ExportConsr exportConsr;
@Autowired @Autowired
private MessageConsr messageConsr; private MessageConsr messageConsr;
@Autowired
private BookDao bookDao;
@ParamLog("创建热门书") @ParamLog("创建热门书")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -125,12 +130,12 @@ public class SearchBizImpl implements SearchBiz { ...@@ -125,12 +130,12 @@ public class SearchBizImpl implements SearchBiz {
if (searchRecord==null){ if (searchRecord==null){
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"参数为空!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR,"参数为空!");
} }
if (StringUtil.isEmpty(searchRecord.getWxId())){
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"wxId不能为空!");
}
if (StringUtil.isEmpty(searchRecord.getContent())){ if (StringUtil.isEmpty(searchRecord.getContent())){
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"内容不能为空!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR,"内容不能为空!");
} }
if (searchRecord.getContent().length()>50){
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"内容长度不能超过!");
}
searchRecordDao.insert(searchRecord); searchRecordDao.insert(searchRecord);
} }
...@@ -273,6 +278,25 @@ public class SearchBizImpl implements SearchBiz { ...@@ -273,6 +278,25 @@ public class SearchBizImpl implements SearchBiz {
return headPics; return headPics;
} }
@ParamLog("获取用户搜索书籍前几")
@Override
public List<BookSearchTopVO> getBookSearchTop(Integer top) {
if (top==null||top<=0){
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"参数有误!");
}
List<BookSearchTopVO> list = searchRecordDao.getBookSearchTop(top);
if (!ListUtils.isEmpty(list)){
List<Long> bookIds=list.stream().filter(s->s.getBookId()!=null).map(BookSearchTopVO::getBookId).collect(Collectors.toList());
Map<Long, BookDto> map = bookDao.getMapByIds(bookIds);
for (BookSearchTopVO vo:list){
if (map.get(vo.getBookId())!=null){
vo.setCoverImg(map.get(vo.getBookId()).getCoverImg());
}
}
}
return list;
}
@ParamLog("导出") @ParamLog("导出")
private void exportSRL(List<SearchRecord> list, String systemCode, Long partyId) { private void exportSRL(List<SearchRecord> list, String systemCode, Long partyId) {
if (ListUtils.isEmpty(list)) { if (ListUtils.isEmpty(list)) {
...@@ -310,24 +334,30 @@ public class SearchBizImpl implements SearchBiz { ...@@ -310,24 +334,30 @@ public class SearchBizImpl implements SearchBiz {
@ParamLog("获取用户最近搜索列表H5") @ParamLog("获取用户最近搜索列表H5")
@Override @Override
public PageBeanNew<SearchRecord> getUserSearchList4H5(String wxId, Integer currentPage, Integer numPerPage) { public PageBeanNew<SearchRecord> getUserSearchList4H5(String wxId, Long wechatUserId, Integer currentPage, Integer numPerPage) {
if (currentPage==null||currentPage<0||numPerPage==null||numPerPage<=0){ if (currentPage==null||currentPage<0||numPerPage==null||numPerPage<=0){
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"分页参数有误!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR,"分页参数有误!");
} }
Map<String,Object> map=new HashMap<>(); Map<String,Object> map=new HashMap<>();
map.put("wxId",wxId); map.put("wxId",wxId);
PageBeanNew<SearchRecord> page = searchRecordDao.listPageNew(new PageParam(currentPage, numPerPage), map, "getUserSearchList4H5"); map.put("wechatUserId",wechatUserId);
PageBeanNew<SearchRecord> page = searchRecordDao.listPageNew(new PageParam(currentPage, numPerPage), map, "getUserSearchList4H5","countUserSearchList4H5");
return page; return page;
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ParamLog("删除用户搜索记录H5") @ParamLog("删除用户搜索记录H5")
@Override @Override
public void deleteUserSearchList4H5(String wxId) { public void deleteUserSearchList4H5(String wxId, Long wechatUserId) {
if (StringUtil.isEmpty(wxId)){ if (StringUtil.isEmpty(wxId)&&wechatUserId==null){
throw new BookBizException(BookBizException.PARAM_IS_ERROR,"参数有误!"); throw new BookBizException(BookBizException.PARAM_IS_ERROR,"参数有误!");
} }
searchRecordDao.updateUserDeleteByWxId(wxId,true); if (!StringUtil.isEmpty(wxId)){
searchRecordDao.updateUserDeleteByWxId(wxId,true);
}
if (wechatUserId!=null){
searchRecordDao.updateUserDeleteByWechatUserId(wechatUserId,true);
}
} }
@ParamLog("填充出版社和用户信息") @ParamLog("填充出版社和用户信息")
......
package com.pcloud.book.book.dao; package com.pcloud.book.book.dao;
import com.pcloud.book.book.entity.SearchRecord; import com.pcloud.book.book.entity.SearchRecord;
import com.pcloud.book.book.vo.BookSearchTopVO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List; import java.util.List;
...@@ -11,4 +12,8 @@ public interface SearchRecordDao extends BaseDao<SearchRecord> { ...@@ -11,4 +12,8 @@ public interface SearchRecordDao extends BaseDao<SearchRecord> {
List<String> getRecent5WxIds(Long bookId); List<String> getRecent5WxIds(Long bookId);
void updateUserDeleteByWxId(String wxId, Boolean userDelete); void updateUserDeleteByWxId(String wxId, Boolean userDelete);
List<BookSearchTopVO> getBookSearchTop(Integer top);
void updateUserDeleteByWechatUserId(Long wechatUserId, Boolean userDelete);
} }
...@@ -2,6 +2,7 @@ package com.pcloud.book.book.dao.impl; ...@@ -2,6 +2,7 @@ package com.pcloud.book.book.dao.impl;
import com.pcloud.book.book.dao.SearchRecordDao; import com.pcloud.book.book.dao.SearchRecordDao;
import com.pcloud.book.book.entity.SearchRecord; import com.pcloud.book.book.entity.SearchRecord;
import com.pcloud.book.book.vo.BookSearchTopVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -29,4 +30,19 @@ public class SearchRecordDaoImpl extends BaseDaoImpl<SearchRecord> implements Se ...@@ -29,4 +30,19 @@ public class SearchRecordDaoImpl extends BaseDaoImpl<SearchRecord> implements Se
map.put("userDelete",userDelete); map.put("userDelete",userDelete);
super.getSqlSession().update(super.getStatement("updateUserDeleteByWxId"),map); super.getSqlSession().update(super.getStatement("updateUserDeleteByWxId"),map);
} }
@Override
public List<BookSearchTopVO> getBookSearchTop(Integer top) {
Map<String,Object> map=new HashMap<>();
map.put("top",top);
return super.getSqlSession().selectList(super.getStatement("getBookSearchTop"),map);
}
@Override
public void updateUserDeleteByWechatUserId(Long wechatUserId, Boolean userDelete) {
Map<String,Object> map=new HashMap<>();
map.put("wechatUserId",wechatUserId);
map.put("userDelete",userDelete);
super.getSqlSession().update(super.getStatement("updateUserDeleteByWechatUserId"),map);
}
} }
...@@ -27,6 +27,9 @@ public class SearchRecord extends BaseEntity { ...@@ -27,6 +27,9 @@ public class SearchRecord extends BaseEntity {
@ApiModelProperty("用户wxId") @ApiModelProperty("用户wxId")
private String wxId; private String wxId;
@ApiModelProperty("微信id")
private Long wechatUserId;
@ApiModelProperty("头像") @ApiModelProperty("头像")
private String headUrl; private String headUrl;
......
...@@ -100,7 +100,8 @@ public interface SearchFacade { ...@@ -100,7 +100,8 @@ public interface SearchFacade {
@ApiOperation("获取用户最近搜索列表H5") @ApiOperation("获取用户最近搜索列表H5")
@GetMapping("getUserSearchList4H5") @GetMapping("getUserSearchList4H5")
ResponseDto<?> getUserSearchList4H5( ResponseDto<?> getUserSearchList4H5(
@RequestParam("wxId" ) @ApiParam("用户id") String wxId, @RequestParam(value = "wxId", required = false) @ApiParam("用户id") String wxId,
@RequestParam(value = "wechatUserId", required = false) @ApiParam("微信id") Long wechatUserId,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage, @RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页条数") Integer numPerPage @RequestParam("numPerPage") @ApiParam("每页条数") Integer numPerPage
) throws BizException, PermissionException; ) throws BizException, PermissionException;
...@@ -108,7 +109,8 @@ public interface SearchFacade { ...@@ -108,7 +109,8 @@ public interface SearchFacade {
@ApiOperation("删除用户搜索记录H5") @ApiOperation("删除用户搜索记录H5")
@GetMapping("deleteUserSearchList4H5") @GetMapping("deleteUserSearchList4H5")
ResponseDto<?> deleteUserSearchList4H5( ResponseDto<?> deleteUserSearchList4H5(
@RequestParam("wxId" ) @ApiParam("用户id") String wxId @RequestParam(value = "wxId", required = false) @ApiParam("用户id") String wxId,
@RequestParam(value = "wechatUserId", required = false) @ApiParam("微信id") Long wechatUserId
) throws BizException, PermissionException; ) throws BizException, PermissionException;
@ApiOperation("获取搜索书籍的用户H5") @ApiOperation("获取搜索书籍的用户H5")
...@@ -117,4 +119,10 @@ public interface SearchFacade { ...@@ -117,4 +119,10 @@ public interface SearchFacade {
@RequestParam("bookId" ) @ApiParam("书id") Long bookId @RequestParam("bookId" ) @ApiParam("书id") Long bookId
) throws BizException, PermissionException; ) throws BizException, PermissionException;
@ApiOperation("获取用户搜索书籍前几")
@GetMapping("getBookSearchTop")
ResponseDto<?> getBookSearchTop(
@RequestParam("top" ) @ApiParam("前几") Integer top
) throws BizException, PermissionException;
} }
...@@ -177,20 +177,22 @@ public class SearchFacadeImpl implements SearchFacade { ...@@ -177,20 +177,22 @@ public class SearchFacadeImpl implements SearchFacade {
@GetMapping("getUserSearchList4H5") @GetMapping("getUserSearchList4H5")
@Override @Override
public ResponseDto<?> getUserSearchList4H5( public ResponseDto<?> getUserSearchList4H5(
@RequestParam("wxId" ) @ApiParam("用户id") String wxId, @RequestParam(value = "wxId", required = false) @ApiParam("用户id") String wxId,
@RequestParam(value = "wechatUserId", required = false) @ApiParam("微信id") Long wechatUserId,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage, @RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页条数") Integer numPerPage @RequestParam("numPerPage") @ApiParam("每页条数") Integer numPerPage
) throws BizException, PermissionException { ) throws BizException, PermissionException {
return new ResponseDto<>(searchBiz.getUserSearchList4H5(wxId, currentPage,numPerPage)); return new ResponseDto<>(searchBiz.getUserSearchList4H5(wxId, wechatUserId, currentPage,numPerPage));
} }
@ApiOperation("删除用户搜索记录H5") @ApiOperation("删除用户搜索记录H5")
@GetMapping("deleteUserSearchList4H5") @GetMapping("deleteUserSearchList4H5")
@Override @Override
public ResponseDto<?> deleteUserSearchList4H5( public ResponseDto<?> deleteUserSearchList4H5(
@RequestParam("wxId" ) @ApiParam("用户id") String wxId @RequestParam(value = "wxId", required = false) @ApiParam("用户id") String wxId,
@RequestParam(value = "wechatUserId", required = false) @ApiParam("微信id") Long wechatUserId
) throws BizException, PermissionException { ) throws BizException, PermissionException {
searchBiz.deleteUserSearchList4H5(wxId); searchBiz.deleteUserSearchList4H5(wxId,wechatUserId);
return new ResponseDto<>(); return new ResponseDto<>();
} }
...@@ -202,4 +204,13 @@ public class SearchFacadeImpl implements SearchFacade { ...@@ -202,4 +204,13 @@ public class SearchFacadeImpl implements SearchFacade {
) throws BizException, PermissionException { ) throws BizException, PermissionException {
return new ResponseDto<>(searchBiz.getBookSearchUserList4H5(bookId)); return new ResponseDto<>(searchBiz.getBookSearchUserList4H5(bookId));
} }
@ApiOperation("获取用户搜索书籍前几")
@GetMapping("getBookSearchTop")
@Override
public ResponseDto<?> getBookSearchTop(
@RequestParam("top" ) @ApiParam("前几") Integer top
) throws BizException, PermissionException {
return new ResponseDto<>(searchBiz.getBookSearchTop(top));
}
} }
package com.pcloud.book.book.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
@ApiModel("获取搜索前几书VO")
public class BookSearchTopVO {
@ApiModelProperty("书籍id")
private Long bookId;
@ApiModelProperty("书名")
private String bookName;
@ApiModelProperty("书封面")
private String coverImg;
@ApiModelProperty("出版社id")
private Long agentId;
@ApiModelProperty("出版社名称")
private String agentName;
}
...@@ -6,6 +6,7 @@ import com.pcloud.book.cultivate.dto.FishBallConversionDTO; ...@@ -6,6 +6,7 @@ import com.pcloud.book.cultivate.dto.FishBallConversionDTO;
import com.pcloud.book.cultivate.dto.FishBallPickDTO; import com.pcloud.book.cultivate.dto.FishBallPickDTO;
import com.pcloud.book.cultivate.dto.SkillUseDTO; import com.pcloud.book.cultivate.dto.SkillUseDTO;
import com.pcloud.book.cultivate.entity.Cultivate; import com.pcloud.book.cultivate.entity.Cultivate;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.book.cultivate.entity.CultivateRecord; import com.pcloud.book.cultivate.entity.CultivateRecord;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify; import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.book.personal.dto.PersonalMedalRecordDto; import com.pcloud.book.personal.dto.PersonalMedalRecordDto;
...@@ -46,4 +47,8 @@ public interface CultivateBiz { ...@@ -46,4 +47,8 @@ public interface CultivateBiz {
List<PersonalMedalRecordDto> getUserMedalList(Long wechatUserId); List<PersonalMedalRecordDto> getUserMedalList(Long wechatUserId);
Integer getResidueLightTime(Long cultivateId); Integer getResidueLightTime(Long cultivateId);
Long createCultivateBookUser(CultivateBookUser cultivateBookUser);
CultivateBookUser getLastCultivateBookUser(Long wechatUserId);
} }
...@@ -5,11 +5,13 @@ import com.pcloud.book.base.exception.BookBizException; ...@@ -5,11 +5,13 @@ import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.reader.ReaderConsr; import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.cultivate.biz.CultivateBiz; import com.pcloud.book.cultivate.biz.CultivateBiz;
import com.pcloud.book.cultivate.constant.CultivateConstant; import com.pcloud.book.cultivate.constant.CultivateConstant;
import com.pcloud.book.cultivate.dao.CultivateBookUserDao;
import com.pcloud.book.cultivate.dao.CultivateDao; import com.pcloud.book.cultivate.dao.CultivateDao;
import com.pcloud.book.cultivate.dao.CultivateRecordDao; import com.pcloud.book.cultivate.dao.CultivateRecordDao;
import com.pcloud.book.cultivate.dao.CultivateRobotClassifyDao; import com.pcloud.book.cultivate.dao.CultivateRobotClassifyDao;
import com.pcloud.book.cultivate.dto.*; import com.pcloud.book.cultivate.dto.*;
import com.pcloud.book.cultivate.entity.Cultivate; import com.pcloud.book.cultivate.entity.Cultivate;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.book.cultivate.entity.CultivateRecord; import com.pcloud.book.cultivate.entity.CultivateRecord;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify; import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.book.cultivate.enums.CultivateChangeTypeEnum; import com.pcloud.book.cultivate.enums.CultivateChangeTypeEnum;
...@@ -38,6 +40,7 @@ import com.pcloud.common.page.PageParam; ...@@ -38,6 +40,7 @@ import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils; import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.facade.shareimage.dto.HtmlDto; import com.pcloud.facade.shareimage.dto.HtmlDto;
import com.pcloud.facade.shareimage.facade.Htm2ImgService; import com.pcloud.facade.shareimage.facade.Htm2ImgService;
import com.pcloud.readercenter.wechat.entity.WechatUser; import com.pcloud.readercenter.wechat.entity.WechatUser;
...@@ -79,6 +82,8 @@ public class CultivateBizImpl implements CultivateBiz { ...@@ -79,6 +82,8 @@ public class CultivateBizImpl implements CultivateBiz {
@Autowired @Autowired
private PersonalMedalBiz personalMedalBiz; private PersonalMedalBiz personalMedalBiz;
@Autowired
private CultivateBookUserDao cultivateBookUserDao;
...@@ -569,6 +574,35 @@ public class CultivateBizImpl implements CultivateBiz { ...@@ -569,6 +574,35 @@ public class CultivateBizImpl implements CultivateBiz {
return time; return time;
} }
@ParamLog("小睿养成读者喜好书籍")
@Transactional(rollbackFor = Exception.class)
@Override
public Long createCultivateBookUser(CultivateBookUser cultivateBookUser) {
if (cultivateBookUser==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数为空!");
}
if (cultivateBookUser.getWechatUserId()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"wechatUserId参数为空!");
}
if (StringUtil.isEmpty(cultivateBookUser.getBookName())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"书名参数为空!");
}
if (cultivateBookUser.getReadType()==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"阅读类型参数为空!");
}
cultivateBookUserDao.insert(cultivateBookUser);
return cultivateBookUser.getId();
}
@ParamLog("获取最后一次小睿养成读者喜好书籍")
@Override
public CultivateBookUser getLastCultivateBookUser(Long wechatUserId) {
if (wechatUserId==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数为空!");
}
return cultivateBookUserDao.getLastCultivateBookUser(wechatUserId);
}
@Override @Override
@ParamLog("分享") @ParamLog("分享")
public String shareMedal(Long wechatUserId) { public String shareMedal(Long wechatUserId) {
......
package com.pcloud.book.cultivate.dao;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.common.core.dao.BaseDao;
public interface CultivateBookUserDao extends BaseDao<CultivateBookUser> {
CultivateBookUser getLastCultivateBookUser(Long wechatUserId);
}
package com.pcloud.book.cultivate.dao.impl;
import com.pcloud.book.cultivate.dao.CultivateBookUserDao;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
@Component("cultivateBookUserDao")
public class CultivateBookUserDaoImpl extends BaseDaoImpl<CultivateBookUser> implements CultivateBookUserDao {
@Override
public CultivateBookUser getLastCultivateBookUser(Long wechatUserId) {
return super.getSqlSession().selectOne(getStatement("getLastCultivateBookUser"),wechatUserId);
}
}
package com.pcloud.book.cultivate.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小睿养成读者喜好书籍")
public class CultivateBookUser extends BaseEntity {
@ApiModelProperty("用户id")
private Long wechatUserId;
@ApiModelProperty("书名")
private String bookName;
@ApiModelProperty("阅读类型:1轻松阅读,2高效阅读,3深度阅读")
private Integer readType;
}
package com.pcloud.book.cultivate.enums;
public enum ReadTypeEnum {
/**
* 轻松阅读
*/
QS_READ(1),
/**
* 高效阅读
*/
GX_READ(2),
/**
* 深度阅读
*/
SD_READ(3);
public final Integer value;
ReadTypeEnum(Integer value) {
this.value = value;
}
}
...@@ -7,6 +7,7 @@ import com.pcloud.book.cultivate.dto.EnergyConsumptionDTO; ...@@ -7,6 +7,7 @@ import com.pcloud.book.cultivate.dto.EnergyConsumptionDTO;
import com.pcloud.book.cultivate.dto.FishBallConversionDTO; import com.pcloud.book.cultivate.dto.FishBallConversionDTO;
import com.pcloud.book.cultivate.dto.FishBallPickDTO; import com.pcloud.book.cultivate.dto.FishBallPickDTO;
import com.pcloud.book.cultivate.dto.SkillUseDTO; import com.pcloud.book.cultivate.dto.SkillUseDTO;
import com.pcloud.book.cultivate.entity.CultivateBookUser;
import com.pcloud.book.cultivate.entity.CultivateRobotClassify; import com.pcloud.book.cultivate.entity.CultivateRobotClassify;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
...@@ -156,5 +157,21 @@ public class CultivateFacade { ...@@ -156,5 +157,21 @@ public class CultivateFacade {
return new ResponseDto<>(cultivateBiz.getResidueLightTime(cultivateId)); return new ResponseDto<>(cultivateBiz.getResidueLightTime(cultivateId));
} }
@ApiOperation("小睿养成读者喜好书籍")
@PostMapping("/createCultivateBookUser")
public ResponseDto<?> createCultivateBookUser(
@RequestBody CultivateBookUser cultivateBookUser
) throws BizException, PermissionException {
return new ResponseDto<>(cultivateBiz.createCultivateBookUser(cultivateBookUser));
}
@ApiOperation("获取最后一次小睿养成读者喜好书籍")
@GetMapping("/getLastCultivateBookUser")
public ResponseDto<?> getLastCultivateBookUser(
@RequestParam("wechatUserId") Long wechatUserId
) throws BizException, PermissionException {
return new ResponseDto<>(cultivateBiz.getLastCultivateBookUser(wechatUserId));
}
} }
...@@ -672,7 +672,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz { ...@@ -672,7 +672,11 @@ public class BookKeywordBizImpl implements BookKeywordBiz {
searchRecord.setWxId(userWxId); searchRecord.setWxId(userWxId);
Long agentId=adviserConsr.getAgentIdByAdviser(bookDto.getAdviserId()); Long agentId=adviserConsr.getAgentIdByAdviser(bookDto.getAdviserId());
searchRecord.setAgentId(agentId); searchRecord.setAgentId(agentId);
searchRecordDao.insert(searchRecord); if (searchRecord.getContent().length()>50){
log.error("长度大于50"+bookName);
}else {
searchRecordDao.insert(searchRecord);
}
} }
} }
......
...@@ -2114,7 +2114,7 @@ ...@@ -2114,7 +2114,7 @@
1=1 1=1
AND A.IS_MAIN_EDITOR = 1 AND A.IS_MAIN_EDITOR = 1
<if test="keyword != null"> <if test="keyword != null">
AND (B.BOOK_NAME LIKE CONCAT('%', #{keyword}, '%')) AND (B.BOOK_NAME LIKE CONCAT('%', #{keyword}, '%') or B.ISBN LIKE CONCAT(#{keyword},'%'))
</if> </if>
<if test="templetId != null"> <if test="templetId != null">
AND AND
......
...@@ -8,13 +8,14 @@ ...@@ -8,13 +8,14 @@
<result column="book_id" property="bookId" jdbcType="BIGINT" /> <result column="book_id" property="bookId" jdbcType="BIGINT" />
<result column="agent_id" property="agentId" jdbcType="BIGINT" /> <result column="agent_id" property="agentId" jdbcType="BIGINT" />
<result column="wx_id" property="wxId" jdbcType="VARCHAR" /> <result column="wx_id" property="wxId" jdbcType="VARCHAR" />
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT" />
<result column="hot_book_id" property="hotBookId" jdbcType="BIGINT" /> <result column="hot_book_id" property="hotBookId" jdbcType="BIGINT" />
<result column="user_delete" property="userDelete" jdbcType="BOOLEAN" /> <result column="user_delete" property="userDelete" jdbcType="BOOLEAN" />
<result column="create_time" property="createTime" jdbcType="INTEGER" /> <result column="create_time" property="createTime" jdbcType="INTEGER" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,content,book_id,agent_id,wx_id,hot_book_id,user_delete,create_time id,content,book_id,agent_id,wx_id,wechat_user_id,hot_book_id,user_delete,create_time
</sql> </sql>
<insert id="insert" parameterType="com.pcloud.book.book.entity.SearchRecord" useGeneratedKeys="true" <insert id="insert" parameterType="com.pcloud.book.book.entity.SearchRecord" useGeneratedKeys="true"
...@@ -25,6 +26,7 @@ ...@@ -25,6 +26,7 @@
book_id, book_id,
agent_id, agent_id,
wx_id, wx_id,
wechat_user_id,
hot_book_id, hot_book_id,
create_time create_time
</trim> </trim>
...@@ -33,6 +35,7 @@ ...@@ -33,6 +35,7 @@
#{bookId,jdbcType=BIGINT}, #{bookId,jdbcType=BIGINT},
#{agentId,jdbcType=BIGINT}, #{agentId,jdbcType=BIGINT},
#{wxId,jdbcType=VARCHAR}, #{wxId,jdbcType=VARCHAR},
#{wechatUserId,jdbcType=BIGINT},
#{hotBookId,jdbcType=BIGINT}, #{hotBookId,jdbcType=BIGINT},
NOW() NOW()
</trim> </trim>
...@@ -66,12 +69,49 @@ ...@@ -66,12 +69,49 @@
</select> </select>
<select id="getUserSearchList4H5" parameterType="map" resultMap="BaseResultMap"> <select id="getUserSearchList4H5" parameterType="map" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> select
from search_record <include refid="Base_Column_List"/>
where wx_id=#{wxId} FROM
and user_delete=0 search_record
group by content WHERE
order by create_time desc id IN (
SELECT
MAX(id)
FROM
search_record
WHERE user_delete = 0
<if test="wxId!=null">
and wx_id = #{wxId}
</if>
<if test="wechatUserId!=null">
and wechat_user_id = #{wechatUserId}
</if>
GROUP BY
content
) ORDER by id DESC
</select>
<select id="countUserSearchList4H5" parameterType="map" resultType="integer">
select
count(1)
FROM
search_record
WHERE
id IN (
SELECT
MAX(id)
FROM
search_record
WHERE user_delete = 0
<if test="wxId!=null">
and wx_id = #{wxId}
</if>
<if test="wechatUserId!=null">
and wechat_user_id = #{wechatUserId}
</if>
GROUP BY
content
)
</select> </select>
<delete id="deleteByWxId" parameterType="string" > <delete id="deleteByWxId" parameterType="string" >
...@@ -92,4 +132,23 @@ ...@@ -92,4 +132,23 @@
where wx_id=#{wxId} where wx_id=#{wxId}
</update> </update>
<select id="getBookSearchTop" parameterType="map" resultType="com.pcloud.book.book.vo.BookSearchTopVO">
select
content bookName,
book_id bookId,
agent_id agentId
from search_record
where book_id is not null
and agent_id is not null
group by book_id,agent_id
order by count(1) desc
limit #{top}
</select>
<update id="updateUserDeleteByWechatUserId" parameterType="map" >
update search_record
set user_delete=#{userDelete}
where wechat_user_id=#{wechatUserId}
</update>
</mapper> </mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pcloud.book.cultivate.dao.impl.CultivateBookUserDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.cultivate.entity.CultivateBookUser" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT" />
<result column="book_name" property="bookName" jdbcType="VARCHAR" />
<result column="read_type" property="readType" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, wechat_user_id, book_name, read_type, create_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.cultivate.entity.CultivateBookUser" useGeneratedKeys="true" keyProperty="id">
insert into cultivate_book_user
(
wechat_user_id,
book_name,
read_type,
create_time
)
values (
#{wechatUserId},
#{bookName},
#{readType},
NOW()
)
</insert>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from
cultivate_book_user
where id=#{id}
</select>
<select id="getLastCultivateBookUser" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from
cultivate_book_user
where wechat_user_id=#{wechatUserId}
order by create_time desc limit 1
</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