Commit 77b1b3de by 朱亚洁

feat:[1003901]系列书推荐

parent 614d55e3
...@@ -18,6 +18,8 @@ import com.pcloud.book.book.dto.QrcodeServeDto; ...@@ -18,6 +18,8 @@ import com.pcloud.book.book.dto.QrcodeServeDto;
import com.pcloud.book.book.dto.RelateAdviserVO; import com.pcloud.book.book.dto.RelateAdviserVO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookLabel; import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.book.entity.SeriesBookRecord;
import com.pcloud.book.book.vo.BookLabelVO;
import com.pcloud.book.book.vo.BookQualifyVO; import com.pcloud.book.book.vo.BookQualifyVO;
import com.pcloud.book.book.vo.BookSaleVO; import com.pcloud.book.book.vo.BookSaleVO;
import com.pcloud.book.book.vo.ListNoAuthBookParam; import com.pcloud.book.book.vo.ListNoAuthBookParam;
...@@ -717,4 +719,34 @@ public interface BookBiz { ...@@ -717,4 +719,34 @@ public interface BookBiz {
* * @param null * * @param null
*/ */
PageBeanNew<BookDto> getESAdviserBooks4Answer(Long wechatUserId, BookSearchParamVO bookSearchParamVO); PageBeanNew<BookDto> getESAdviserBooks4Answer(Long wechatUserId, BookSearchParamVO bookSearchParamVO);
/**
* 系列书学科列表
* @author:zhuyajie
* @date:2020/11/23 15:46
* * @param null
*/
List<BookLabelVO> getSubjectLabelList4SeriesBook(Long seriesBookId);
/**
* 是否是系列书
* @author:zhuyajie
* @date:2020/11/23 17:07
* * @param null
*/
Map<String, Object> isSeriesBook(Long bookId, Long adviserId, Long channelId);
/**
* 根据学科查系列书
* @author:zhuyajie
* @date:2020/11/23 19:19
* * @param null
*/
List<BookDto> getSeriesBookList(Long seriesBookId, Long subLabelId);
/**
* 系列书查询记录
* @author:zhuyajie
* @date:2020/11/25 10:23
* * @param null
*/
void addSeriesBookRecord(SeriesBookRecord seriesBookRecord);
} }
...@@ -57,4 +57,12 @@ public interface BookLabelBiz { ...@@ -57,4 +57,12 @@ public interface BookLabelBiz {
String name, String startTime, String endTime, Integer auditState); String name, String startTime, String endTime, Integer auditState);
Map<Long,String> getLabelMapByIds(List<Long> labelIds); Map<Long,String> getLabelMapByIds(List<Long> labelIds);
/**
* 查标签列表
* @author:zhuyajie
* @date:2020/11/23 16:03
* * @param null
*/
List<BookLabelVO> getLabelByIds(List<Long> labelIds);
} }
...@@ -28,6 +28,7 @@ import com.pcloud.book.book.biz.BookAppBiz; ...@@ -28,6 +28,7 @@ import com.pcloud.book.book.biz.BookAppBiz;
import com.pcloud.book.book.biz.BookBiz; import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.biz.BookFreezeBiz; import com.pcloud.book.book.biz.BookFreezeBiz;
import com.pcloud.book.book.biz.BookFundBiz; import com.pcloud.book.book.biz.BookFundBiz;
import com.pcloud.book.book.biz.BookLabelBiz;
import com.pcloud.book.book.biz.BookProductBiz; import com.pcloud.book.book.biz.BookProductBiz;
import com.pcloud.book.book.biz.BookResourceBiz; import com.pcloud.book.book.biz.BookResourceBiz;
import com.pcloud.book.book.biz.BookSerialNumberBiz; import com.pcloud.book.book.biz.BookSerialNumberBiz;
...@@ -38,6 +39,8 @@ import com.pcloud.book.book.dao.BookDao; ...@@ -38,6 +39,8 @@ import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dao.BookLabelDao; import com.pcloud.book.book.dao.BookLabelDao;
import com.pcloud.book.book.dao.BookRaysClassifyDao; import com.pcloud.book.book.dao.BookRaysClassifyDao;
import com.pcloud.book.book.dao.QrcodeSceneErpDao; import com.pcloud.book.book.dao.QrcodeSceneErpDao;
import com.pcloud.book.book.dao.SeriesBookDao;
import com.pcloud.book.book.dao.SeriesBookRecordDao;
import com.pcloud.book.book.dto.AdviserBookInfoDTO; import com.pcloud.book.book.dto.AdviserBookInfoDTO;
import com.pcloud.book.book.dto.BookAdviserDto; import com.pcloud.book.book.dto.BookAdviserDto;
import com.pcloud.book.book.dto.BookAdviserUpdateTimeDTO; import com.pcloud.book.book.dto.BookAdviserUpdateTimeDTO;
...@@ -63,8 +66,11 @@ import com.pcloud.book.book.entity.BookAdviserErp; ...@@ -63,8 +66,11 @@ import com.pcloud.book.book.entity.BookAdviserErp;
import com.pcloud.book.book.entity.BookLabel; import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.book.entity.BookSerialNumber; import com.pcloud.book.book.entity.BookSerialNumber;
import com.pcloud.book.book.entity.QrcodeSceneErp; import com.pcloud.book.book.entity.QrcodeSceneErp;
import com.pcloud.book.book.entity.SeriesBook;
import com.pcloud.book.book.entity.SeriesBookRecord;
import com.pcloud.book.book.set.BookSet; import com.pcloud.book.book.set.BookSet;
import com.pcloud.book.book.tools.BookTools; import com.pcloud.book.book.tools.BookTools;
import com.pcloud.book.book.vo.BookLabelVO;
import com.pcloud.book.book.vo.BookQualifyVO; import com.pcloud.book.book.vo.BookQualifyVO;
import com.pcloud.book.book.vo.BookSaleVO; import com.pcloud.book.book.vo.BookSaleVO;
import com.pcloud.book.book.vo.ListNoAuthBookParam; import com.pcloud.book.book.vo.ListNoAuthBookParam;
...@@ -289,6 +295,12 @@ public class BookBizImpl implements BookBiz { ...@@ -289,6 +295,12 @@ public class BookBizImpl implements BookBiz {
private String envStr; private String envStr;
@Autowired @Autowired
private AnswerSubscribeDao answerSubscribeDao; private AnswerSubscribeDao answerSubscribeDao;
@Autowired
private BookLabelBiz bookLabelBiz;
@Autowired
private SeriesBookDao seriesBookDao;
@Autowired
private SeriesBookRecordDao seriesBookRecordDao;
/** /**
* 创建书籍,同时建立与编辑的推广关系 * 创建书籍,同时建立与编辑的推广关系
...@@ -3465,4 +3477,105 @@ public class BookBizImpl implements BookBiz { ...@@ -3465,4 +3477,105 @@ public class BookBizImpl implements BookBiz {
PageBeanNew<BookDto> page = new PageBeanNew<>(currentPage, numPerPage, (int) esPage.getTotalElements(), bookDtos); PageBeanNew<BookDto> page = new PageBeanNew<>(currentPage, numPerPage, (int) esPage.getTotalElements(), bookDtos);
return page; return page;
} }
@Override
public List<BookLabelVO> getSubjectLabelList4SeriesBook(Long seriesBookId) {
SeriesBook seriesBook = seriesBookDao.getById(seriesBookId);
if (null == seriesBook){
return new ArrayList<>();
}
//系列书关键词
String[] keywords = seriesBook.getSeriesBookKeyword().split(" ");
List<String> keywordList = new ArrayList<String>(Arrays.asList(keywords));
//编辑id
List<Long> adviserIds = adviserConsr.getByAgentId(seriesBook.getAgentId());
Integer currentPage = 0;
Integer numPerPage = 50;
Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getAdviserBooks4SeriesBook(keywordList, currentPage, numPerPage, adviserIds, seriesBook.getAgentId(), null);
List<ESBookAndAdviser> esBookAndAdvisers = esPage.getContent();
if (ListUtils.isEmpty(esBookAndAdvisers)) {
return new ArrayList<>();
}
List<Long> subjectLabels = esBookAndAdvisers.stream().filter(s->s.getSubLabelId()!=null).map(ESBookAndAdviser::getSubLabelId).distinct().collect(Collectors.toList());
List<BookLabelVO> bookLabelList = bookLabelBiz.getLabelByIds(subjectLabels);
return bookLabelList;
}
@Override
public Map<String, Object> isSeriesBook(Long bookId, Long adviserId, Long channelId) {
Map<String, Object> map = new HashMap<>();
Boolean isSeriesBook = false;
map.put("isSeriesBook", isSeriesBook);
BookDto book = bookBiz.getBaseById(bookId);
if (null == book || StringUtil.isEmpty(book.getBookName())){
return map;
}
BookAdviserDto bookAdviserDto = bookAdviserDao.getBase(bookId, adviserId, channelId);
if (null == bookAdviserDto){
return map;
}
Long agentId = adviserConsr.getAgentIdByAdviser(adviserId);
if (null == agentId){
return map;
}
List<SeriesBook> seriesBooks = seriesBookDao.getSeriesBookByAgent(agentId);
if (ListUtils.isEmpty(seriesBooks)) {
return map;
}
for (SeriesBook seriesBook:seriesBooks){
String[] keywords = seriesBook.getSeriesBookKeyword().split(" ");
Boolean hasKeyword = true;
for (String keyword:keywords){
if (!book.getBookName().contains(keyword)){
hasKeyword = false;
break;
}
}
if (hasKeyword){
isSeriesBook = true;
map.put("seriesBookId", seriesBook.getId());
}
}
if (isSeriesBook){
map.put("subLabelId", bookAdviserDto.getSubLabelId());
}
map.put("isSeriesBook", isSeriesBook);
return map;
}
@Override
public List<BookDto> getSeriesBookList(Long seriesBookId, Long subLabelId) {
SeriesBook seriesBook = seriesBookDao.getById(seriesBookId);
if (null == seriesBook){
return new ArrayList<>();
}
//系列书关键词
String[] keywords = seriesBook.getSeriesBookKeyword().split(" ");
List<String> keywordList = new ArrayList<String>(Arrays.asList(keywords));
//编辑id
List<Long> adviserIds = adviserConsr.getByAgentId(seriesBook.getAgentId());
Integer currentPage = 0;
Integer numPerPage = 50;
Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getAdviserBooks4SeriesBook(keywordList, currentPage, numPerPage, adviserIds, seriesBook.getAgentId(), subLabelId);
List<ESBookAndAdviser> esBookAndAdvisers = esPage.getContent();
if (ListUtils.isEmpty(esBookAndAdvisers)) {
return new ArrayList<>();
}
List<BookDto> bookDtos = changeToBookDto(esBookAndAdvisers);
fillOtherBookInfo(bookDtos);
fillBookInfo(bookDtos);
return bookDtos;
}
@Override
public void addSeriesBookRecord(SeriesBookRecord seriesBookRecord){
if (null == seriesBookRecord.getRecordType() || null == seriesBookRecord.getBookId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数缺失");
}
//操作类型(1分类点击2打卡按钮3保存海报按钮4返回首页按钮)
ThreadPoolUtils.OTHER_THREAD_POOL.execute(()->{
seriesBookRecordDao.insert(seriesBookRecord);
});
}
} }
...@@ -15,7 +15,9 @@ import com.pcloud.common.utils.ListUtils; ...@@ -15,7 +15,9 @@ import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils; import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto; import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -154,4 +156,20 @@ public class BookLabelBizImpl implements BookLabelBiz { ...@@ -154,4 +156,20 @@ public class BookLabelBizImpl implements BookLabelBiz {
Map<Long, String> map = labelList.stream().collect(Collectors.toMap(a -> a.getId(), a -> a.getName(), (k1, k2) -> (k2))); Map<Long, String> map = labelList.stream().collect(Collectors.toMap(a -> a.getId(), a -> a.getName(), (k1, k2) -> (k2)));
return map; return map;
} }
@Override
public List<BookLabelVO> getLabelByIds(List<Long> labelIds) {
List<BookLabel> labelList = bookLabelDao.getByLabelIds(labelIds);
if (ListUtils.isEmpty(labelList)) {
return new ArrayList<>();
}
List<BookLabelVO> labelVOS = new ArrayList<>();
for (BookLabel bookLabel : labelList) {
BookLabelVO bookLabelVO = new BookLabelVO();
BeanUtils.copyProperties(bookLabel, bookLabelVO);
bookLabelVO.setLabelId(bookLabel.getId());
labelVOS.add(bookLabelVO);
}
return labelVOS;
}
} }
package com.pcloud.book.book.dao;
import com.pcloud.book.book.entity.SeriesBook;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface SeriesBookDao extends BaseDao<SeriesBook> {
/**
* 根据书名和出版社查系列书
* @author:zhuyajie
* @date:2020/11/23 17:41
* * @param null
*/
List<SeriesBook> getSeriesBookByAgent(Long agentId);
}
package com.pcloud.book.book.dao;
import com.pcloud.book.book.entity.SeriesBookRecord;
import com.pcloud.common.core.dao.BaseDao;
/**
* 系列书查询记录(SeriesBookRecord)表数据库访问层
*
* @author makejava
* @since 2020-11-25 10:04:59
*/
public interface SeriesBookRecordDao extends BaseDao<SeriesBookRecord>{
}
\ No newline at end of file
package com.pcloud.book.book.dao.impl;
import com.pcloud.book.book.dao.SeriesBookDao;
import com.pcloud.book.book.entity.SeriesBook;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName com.pcloud.book.book.dao.impl.SeriesBookDaoImpl
* @Author zhuyajie
* @Description 系列书
* @Date 2020/11/23 17:15
* @Version 1.0
**/
@Component
public class SeriesBookDaoImpl extends BaseDaoImpl<SeriesBook> implements SeriesBookDao {
@Override
public List<SeriesBook> getSeriesBookByAgent(Long agentId) {
return getSessionTemplate().selectList(getStatement("getSeriesBookByAgent"), agentId);
}
}
package com.pcloud.book.book.dao.impl;
import com.pcloud.book.book.dao.SeriesBookRecordDao;
import com.pcloud.book.book.entity.SeriesBookRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
/**
* @ClassName com.pcloud.book.book.dao.impl.SeriesBookRecordDaoImpl
* @Author zhuyajie
* @Description
* @Date 2020/11/25 10:07
* @Version 1.0
**/
@Component
public class SeriesBookRecordDaoImpl extends BaseDaoImpl<SeriesBookRecord> implements SeriesBookRecordDao {
}
package com.pcloud.book.book.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("系列书")
public class SeriesBook extends BaseEntity {
@ApiModelProperty("出版社id")
private Long agentId;
@ApiModelProperty("系列书关键词")
private String seriesBookKeyword;
}
package com.pcloud.book.book.entity;
import com.pcloud.common.entity.BaseEntity;
import lombok.Data;
/**
* 系列书查询记录(SeriesBookRecord)实体类
*
* @author makejava
* @since 2020-11-25 10:04:59
*/
@Data
public class SeriesBookRecord extends BaseEntity {
private static final long serialVersionUID = -52773084357050050L;
/**
* 主键
*/
private Long id;
/**
* 用户id
*/
private Long userId;
private Long seriesBookId;
/**
* 书刊id
*/
private Long bookId;
/**
* 渠道id
*/
private Long channelId;
/**
* 编辑id
*/
private Long adviserId;
/**
* 操作类型(1曝光2点击)
*/
private Integer recordType;
}
\ No newline at end of file
...@@ -14,6 +14,7 @@ import com.pcloud.book.book.dto.BookDto; ...@@ -14,6 +14,7 @@ import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.CreateBookVO; import com.pcloud.book.book.dto.CreateBookVO;
import com.pcloud.book.book.dto.RelateAdviserVO; import com.pcloud.book.book.dto.RelateAdviserVO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.SeriesBookRecord;
import com.pcloud.book.book.facade.BookFacade; import com.pcloud.book.book.facade.BookFacade;
import com.pcloud.book.book.vo.BookQualifyVO; import com.pcloud.book.book.vo.BookQualifyVO;
import com.pcloud.book.book.vo.ListNoAuthBookParam; import com.pcloud.book.book.vo.ListNoAuthBookParam;
...@@ -1193,4 +1194,33 @@ public class BookFacadeImpl implements BookFacade { ...@@ -1193,4 +1194,33 @@ public class BookFacadeImpl implements BookFacade {
public ResponseDto<?> getBookLabelsAll() throws BizException, PermissionException { public ResponseDto<?> getBookLabelsAll() throws BizException, PermissionException {
return new ResponseDto<>(bookBiz.getBookLabels(0L)); return new ResponseDto<>(bookBiz.getBookLabels(0L));
} }
@ApiOperation("系列书学科列表")
@GetMapping("getSubjectLabelList4SeriesBook")
public ResponseDto<?> getSubjectLabelList4SeriesBook(@RequestParam("seriesBookId") Long seriesBookId){
return new ResponseDto<>(bookBiz.getSubjectLabelList4SeriesBook(seriesBookId));
}
@ApiOperation("是否是系列书")
@GetMapping("isSeriesBook")
public ResponseDto<?> isSeriesBook(@RequestParam("bookId") Long bookId,
@RequestParam("adviserId") Long adviserId,
@RequestParam("channelId") Long channelId){
return new ResponseDto<>(bookBiz.isSeriesBook(bookId, adviserId, channelId));
}
@ApiOperation("根据学科查系列书")
@GetMapping("getSeriesBookList")
public ResponseDto<?> getSeriesBookList(@RequestParam("seriesBookId") Long seriesBookId, @RequestParam("subLabelId") Long subLabelId){
return new ResponseDto<>(bookBiz.getSeriesBookList(seriesBookId, subLabelId));
}
@ApiOperation("系列书查询记录埋点")
@PostMapping("addSeriesBookRecord")
public ResponseDto<?> addSeriesBookRecord(@CookieValue("userInfo") String userInfo, @RequestBody SeriesBookRecord seriesBookRecord){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
seriesBookRecord.setUserId(wechatUserId);
bookBiz.addSeriesBookRecord(seriesBookRecord);
return new ResponseDto<>();
}
} }
...@@ -31,4 +31,11 @@ public interface ESBookAndAdviserBiz { ...@@ -31,4 +31,11 @@ public interface ESBookAndAdviserBiz {
*/ */
Page<ESBookAndAdviser> getESAdviserBooks4Answer(String grayStatus, String keyword, Long graLabelId, Long subLabelId, Long verLabelId, Page<ESBookAndAdviser> getESAdviserBooks4Answer(String grayStatus, String keyword, Long graLabelId, Long subLabelId, Long verLabelId,
Integer currentPage, Integer numPerPage, List<Long> templetIds); Integer currentPage, Integer numPerPage, List<Long> templetIds);
/**
* 系列书搜索
* @author:zhuyajie
* @date:2020/11/23 17:26
* * @param null
*/
Page<ESBookAndAdviser> getAdviserBooks4SeriesBook(List<String> keywords, Integer currentPage, Integer numPerPage, List<Long> adviserIds, Long agentId, Long subLabelId);
} }
...@@ -11,6 +11,7 @@ import com.pcloud.book.es.biz.ESBookAndAdviserBiz; ...@@ -11,6 +11,7 @@ import com.pcloud.book.es.biz.ESBookAndAdviserBiz;
import com.pcloud.book.es.entity.ESBookAndAdviser; import com.pcloud.book.es.entity.ESBookAndAdviser;
import com.pcloud.book.es.repository.BookAndAdviserRepository; import com.pcloud.book.es.repository.BookAndAdviserRepository;
import com.pcloud.book.group.biz.BookGroupBiz; import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.rightsSetting.constants.RightsSettingConstant;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.book.util.common.YesOrNoEnums; import com.pcloud.book.util.common.YesOrNoEnums;
import com.pcloud.book.util.properties.BookProps; import com.pcloud.book.util.properties.BookProps;
...@@ -34,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -34,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
...@@ -341,4 +343,29 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -341,4 +343,29 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
return search; return search;
} }
@Override
public Page<ESBookAndAdviser> getAdviserBooks4SeriesBook(List<String> keywords, Integer currentPage, Integer numPerPage, List<Long> adviserIds,
Long agentId, Long subLabelId) {
//k12教育分类校验
List<Long> templetIds = Arrays.asList(RightsSettingConstant.K12_VERSION_ID);
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
.filter(QueryBuilders.termQuery("isBookDelete", 0))
.filter(QueryBuilders.termQuery("isBookAdviserDelete", 0))
.filter(null == agentId ? QueryBuilders.boolQuery() : QueryBuilders.termsQuery("adviserId", adviserIds))
.filter(null == subLabelId ? QueryBuilders.boolQuery() : QueryBuilders.termQuery("subLabelId", subLabelId))
.filter(ListUtils.isEmpty(templetIds) ? QueryBuilders.boolQuery() : QueryBuilders.termsQuery("templetId", templetIds));
BoolQueryBuilder should = QueryBuilders.boolQuery();
for (String keyword:keywords){
should.should(StringUtil.isEmpty(keyword) ? QueryBuilders.boolQuery() : QueryBuilders.wildcardQuery("bookName", "*" + keyword + "*"));
}
BoolQueryBuilder should1 = QueryBuilders.boolQuery()
.should(QueryBuilders.termQuery("isAdviserBook",1));
boolQueryBuilder.must(should);
boolQueryBuilder.must(should1);
Sort sort = new Sort(Sort.Direction.DESC, "lastModifiedDate", "bookId");
PageRequest pageRequest = new PageRequest(currentPage, numPerPage, sort);
Page<ESBookAndAdviser> search = bookAndAdviserRepository.search(boolQueryBuilder, pageRequest);
return search;
}
} }
<?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.book.dao.impl.SeriesBookDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.book.entity.SeriesBook">
<id column="id" property="id" jdbcType="BIGINT" />
<result column="agent_id" property="agentId" jdbcType="BIGINT" />
<result column="series_book_keyword" property="seriesBookKeyword" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List">
id,agent_id,series_book_keyword,create_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.book.entity.HotBook" useGeneratedKeys="true"
keyProperty="id">
insert into series_book
<trim prefix="(" suffix=")" suffixOverrides=",">
agent_id,
series_book_keyword,
create_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{agentId,jdbcType=BIGINT},
#{seriesBookKeyword,jdbcType=INTEGER},
NOW()
</trim>
</insert>
<delete id="deleteById" parameterType="long">
delete from series_book
where id=#{id}
</delete>
<select id="getById" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM series_book
WHERE id=#{id}
</select>
<select id="getSeriesBookByAgent" resultMap="BaseResultMap" parameterType="long">
SELECT <include refid="Base_Column_List"/>
FROM series_book
WHERE agent_id=#{agentId}
ORDER BY LENGTH(series_book_keyword) 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" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcloud.book.book.dao.impl.SeriesBookRecordDaoImpl">
<resultMap type="com.pcloud.book.book.entity.SeriesBookRecord" id="SeriesBookRecordMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="userId" column="user_id" jdbcType="INTEGER"/>
<result property="seriesBookId" column="series_book_id" jdbcType="INTEGER"/>
<result property="bookId" column="book_id" jdbcType="INTEGER"/>
<result property="channelId" column="channel_id" jdbcType="INTEGER"/>
<result property="adviserId" column="adviser_id" jdbcType="INTEGER"/>
<result property="recordType" column="record_type" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap>
<!--查询单个-->
<select id="getById" resultMap="SeriesBookRecordMap">
select
id, user_id, series_book_id, book_id, channel_id, adviser_id, record_type, create_time
from book.series_book_record
where id = #{id}
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.series_book_record(user_id, series_book_id, book_id, channel_id, adviser_id, record_type, create_time)
values (#{userId}, #{seriesBookId}, #{bookId}, #{channelId}, #{adviserId}, #{recordType}, now())
</insert>
<!--通过主键修改数据-->
<update id="update">
update book.series_book_record
<set>
<if test="userId != null">
user_id = #{userId},
</if>
<if test="seriesBookId != null">
series_book_id = #{seriesBookId},
</if>
<if test="bookId != null">
book_id = #{bookId},
</if>
<if test="channelId != null">
channel_id = #{channelId},
</if>
<if test="adviserId != null">
adviser_id = #{adviserId},
</if>
<if test="recordType != null">
record_type = #{recordType},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from book.series_book_record where id = #{id}
</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