Commit 768ab440 by 朱亚洁

feat:[1004039]系列书切换,增加出版社和序号限定

parent 484c2c74
...@@ -3567,7 +3567,7 @@ public class BookBizImpl implements BookBiz { ...@@ -3567,7 +3567,7 @@ public class BookBizImpl implements BookBiz {
List<Long> adviserIds = adviserConsr.getByAgentId(seriesBook.getAgentId()); List<Long> adviserIds = adviserConsr.getByAgentId(seriesBook.getAgentId());
Integer currentPage = 0; Integer currentPage = 0;
Integer numPerPage = 50; Integer numPerPage = 50;
Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getAdviserBooks4SeriesBook(keywordList, currentPage, numPerPage, adviserIds, seriesBook.getAgentId(), null, graLabelId); Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getAdviserBooks4SeriesBook(keywordList, currentPage, numPerPage, adviserIds, seriesBook.getAgentId(), null, graLabelId, seriesBook.getSerialNumber());
List<ESBookAndAdviser> esBookAndAdvisers = esPage.getContent(); List<ESBookAndAdviser> esBookAndAdvisers = esPage.getContent();
if (ListUtils.isEmpty(esBookAndAdvisers)) { if (ListUtils.isEmpty(esBookAndAdvisers)) {
return new ArrayList<>(); return new ArrayList<>();
...@@ -3600,28 +3600,41 @@ public class BookBizImpl implements BookBiz { ...@@ -3600,28 +3600,41 @@ public class BookBizImpl implements BookBiz {
} }
List<String> keywordList = new ArrayList<>(); List<String> keywordList = new ArrayList<>();
Long seriesBookId = null; Long seriesBookId = null;
String serialNumber = null;
for (SeriesBook seriesBook:seriesBooks){ for (SeriesBook seriesBook:seriesBooks){
String[] keywords = seriesBook.getSeriesBookKeyword().split(" "); String[] keywords = seriesBook.getSeriesBookKeyword().split(" ");
Boolean hasKeyword = true; Boolean hasKeyword = true;
//关键词匹配
for (String keyword:keywords){ for (String keyword:keywords){
if (!book.getBookName().contains(keyword)){ if (!book.getBookName().contains(keyword)){
hasKeyword = false; hasKeyword = false;
break; break;
} }
} }
//书刊序号匹配
if (!StringUtil.isEmpty(seriesBook.getSerialNumber())) {
if (StringUtil.isEmpty(book.getSerialNumber()) || !book.getSerialNumber().trim().equals(seriesBook.getSerialNumber())) {
hasKeyword = false;
}
}
if (hasKeyword){ if (hasKeyword){
isSeriesBook = true; isSeriesBook = true;
seriesBookId = seriesBook.getId(); seriesBookId = seriesBook.getId();
keywordList = Arrays.asList(keywords); keywordList = Arrays.asList(keywords);
serialNumber = seriesBook.getSerialNumber();
break; break;
} }
} }
if (isSeriesBook){ if (isSeriesBook){
List<Long> adviserIds = adviserConsr.getByAgentId(agentId); List<Long> adviserIds = adviserConsr.getByAgentId(agentId);
Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getAdviserBooks4SeriesBook(keywordList, 0, 50, adviserIds, agentId, null, bookAdviserDto.getGraLabelId()); Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getAdviserBooks4SeriesBook(keywordList, 0, 50, adviserIds, agentId, null, bookAdviserDto.getGraLabelId(), serialNumber);
List<ESBookAndAdviser> esBookAndAdvisers = esPage.getContent(); List<ESBookAndAdviser> esBookAndAdvisers = esPage.getContent();
List<Long> subjectLabels = new ArrayList<>();
if (!ListUtils.isEmpty(esBookAndAdvisers)) {
subjectLabels = esBookAndAdvisers.stream().filter(s->s.getSubLabelId()>0).map(ESBookAndAdviser::getSubLabelId).distinct().collect(Collectors.toList());
}
//无系列书或只有一本,不展示切换 //无系列书或只有一本,不展示切换
if (ListUtils.isEmpty(esBookAndAdvisers) || esBookAndAdvisers.size()==1) { if (ListUtils.isEmpty(esBookAndAdvisers) || esBookAndAdvisers.size()==1 || ListUtils.isEmpty(subjectLabels)) {
isSeriesBook = false; isSeriesBook = false;
} else { } else {
map.put("seriesBookId", seriesBookId); map.put("seriesBookId", seriesBookId);
...@@ -3646,7 +3659,7 @@ public class BookBizImpl implements BookBiz { ...@@ -3646,7 +3659,7 @@ public class BookBizImpl implements BookBiz {
List<Long> adviserIds = adviserConsr.getByAgentId(seriesBook.getAgentId()); List<Long> adviserIds = adviserConsr.getByAgentId(seriesBook.getAgentId());
Integer currentPage = 0; Integer currentPage = 0;
Integer numPerPage = 50; Integer numPerPage = 50;
Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getAdviserBooks4SeriesBook(keywordList, currentPage, numPerPage, adviserIds, seriesBook.getAgentId(), subLabelId, graLabelId); Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getAdviserBooks4SeriesBook(keywordList, currentPage, numPerPage, adviserIds, seriesBook.getAgentId(), subLabelId, graLabelId, seriesBook.getSerialNumber());
List<ESBookAndAdviser> esBookAndAdvisers = esPage.getContent(); List<ESBookAndAdviser> esBookAndAdvisers = esPage.getContent();
if (ListUtils.isEmpty(esBookAndAdvisers)) { if (ListUtils.isEmpty(esBookAndAdvisers)) {
return new ArrayList<>(); return new ArrayList<>();
......
...@@ -17,6 +17,8 @@ public class SeriesBook extends BaseEntity { ...@@ -17,6 +17,8 @@ public class SeriesBook extends BaseEntity {
@ApiModelProperty("系列书关键词") @ApiModelProperty("系列书关键词")
private String seriesBookKeyword; private String seriesBookKeyword;
@ApiModelProperty("书刊序号")
private String serialNumber;
} }
...@@ -37,5 +37,5 @@ public interface ESBookAndAdviserBiz { ...@@ -37,5 +37,5 @@ public interface ESBookAndAdviserBiz {
* @date:2020/11/23 17:26 * @date:2020/11/23 17:26
* * @param null * * @param null
*/ */
Page<ESBookAndAdviser> getAdviserBooks4SeriesBook(List<String> keywords, Integer currentPage, Integer numPerPage, List<Long> adviserIds, Long agentId, Long subLabelId, Long graLabelId); Page<ESBookAndAdviser> getAdviserBooks4SeriesBook(List<String> keywords, Integer currentPage, Integer numPerPage, List<Long> adviserIds, Long agentId, Long subLabelId, Long graLabelId, String serialNumber);
} }
...@@ -2,6 +2,7 @@ package com.pcloud.book.es.biz.impl; ...@@ -2,6 +2,7 @@ package com.pcloud.book.es.biz.impl;
import com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto; import com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto;
import com.pcloud.book.applet.biz.AppletUserBookcaseBiz; import com.pcloud.book.applet.biz.AppletUserBookcaseBiz;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.constant.BookConstant; import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.dao.BookDao; import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dto.ErpBookApprovalDTO; import com.pcloud.book.book.dto.ErpBookApprovalDTO;
...@@ -13,6 +14,7 @@ import com.pcloud.book.es.biz.ESBookAndAdviserBiz; ...@@ -13,6 +14,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.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.rightsSetting.biz.RightsSettingBiz; import com.pcloud.book.rightsSetting.biz.RightsSettingBiz;
import com.pcloud.book.rightsSetting.constants.RightsSettingConstant; import com.pcloud.book.rightsSetting.constants.RightsSettingConstant;
import com.pcloud.book.rightsSetting.dto.RightsSettingDto; import com.pcloud.book.rightsSetting.dto.RightsSettingDto;
...@@ -79,6 +81,8 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -79,6 +81,8 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
private ErpConsr erpConsr; private ErpConsr erpConsr;
@Autowired @Autowired
private RightsSettingBiz rightsSettingBiz; private RightsSettingBiz rightsSettingBiz;
@Autowired
private BookBiz bookBiz;
@ParamLog("导入全部book和bookAdviser") @ParamLog("导入全部book和bookAdviser")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -179,14 +183,19 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -179,14 +183,19 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
bookAndAdviser.setIsApproval(erpBookApprovalMap.get(key).getIsApproval()); bookAndAdviser.setIsApproval(erpBookApprovalMap.get(key).getIsApproval());
} }
//权益 //权益
Long rightsSettingId = 0L;
Integer joinGroupType = bookAndAdviser.getJoinGroupType();
if (null != joinGroupType && JoinGroupTypeEnum.XIAORUI.getCode().equals(joinGroupType)){
Long adviserId = Long.valueOf(bookAndAdviser.getAdviserId()); Long adviserId = Long.valueOf(bookAndAdviser.getAdviserId());
Long bookId = Long.valueOf(bookAndAdviser.getBookId()); Long bookId = Long.valueOf(bookAndAdviser.getBookId());
Long channelId = Long.valueOf(bookAndAdviser.getChannelId()); Long channelId = Long.valueOf(bookAndAdviser.getChannelId());
Long rightsSettingId = 0L;
if (adviserId>0 && bookId>0 && channelId>0){ if (adviserId>0 && bookId>0 && channelId>0){
RightsSettingDto rightsSettingDto = rightsSettingBiz.getRightsSettingByBookId4AppletHome(bookId,adviserId,channelId); RightsSettingDto rightsSettingDto = rightsSettingBiz.getRightsSettingByBookId4AppletHome(bookId,adviserId,channelId);
if (null != rightsSettingDto && null != rightsSettingDto.getId()){ if (null != rightsSettingDto && null != rightsSettingDto.getId()){
rightsSettingId = rightsSettingDto.getId(); rightsSettingId = rightsSettingDto.getId();
} else {
rightsSettingId = bookBiz.getDefaultRightsSettingId();
}
} }
} }
bookAndAdviser.setRightsSettingId(rightsSettingId); bookAndAdviser.setRightsSettingId(rightsSettingId);
...@@ -408,7 +417,7 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -408,7 +417,7 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
@Override @Override
public Page<ESBookAndAdviser> getAdviserBooks4SeriesBook(List<String> keywords, Integer currentPage, Integer numPerPage, List<Long> adviserIds, public Page<ESBookAndAdviser> getAdviserBooks4SeriesBook(List<String> keywords, Integer currentPage, Integer numPerPage, List<Long> adviserIds,
Long agentId, Long subLabelId, Long graLabelId) { Long agentId, Long subLabelId, Long graLabelId, String serialNumber) {
//k12教育分类校验 //k12教育分类校验
List<Long> templetIds = Arrays.asList(RightsSettingConstant.K12_VERSION_ID); List<Long> templetIds = Arrays.asList(RightsSettingConstant.K12_VERSION_ID);
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery() BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
...@@ -423,6 +432,11 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -423,6 +432,11 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
BoolQueryBuilder should = QueryBuilders.boolQuery().should(StringUtil.isEmpty(keyword) ? QueryBuilders.boolQuery() : QueryBuilders.wildcardQuery("bookName", "*" + keyword + "*")); BoolQueryBuilder should = QueryBuilders.boolQuery().should(StringUtil.isEmpty(keyword) ? QueryBuilders.boolQuery() : QueryBuilders.wildcardQuery("bookName", "*" + keyword + "*"));
boolQueryBuilder.must(should); boolQueryBuilder.must(should);
} }
//书刊序号
if (!StringUtil.isEmpty(serialNumber)){
BoolQueryBuilder should = QueryBuilders.boolQuery().should(QueryBuilders.termQuery("serialNumber", serialNumber.trim()));
boolQueryBuilder.must(should);
}
//编辑书 //编辑书
BoolQueryBuilder should1 = QueryBuilders.boolQuery().should(QueryBuilders.termQuery("isAdviserBook",1)); BoolQueryBuilder should1 = QueryBuilders.boolQuery().should(QueryBuilders.termQuery("isAdviserBook",1));
boolQueryBuilder.must(should1); boolQueryBuilder.must(should1);
......
...@@ -165,5 +165,8 @@ public class ESBookAndAdviser { ...@@ -165,5 +165,8 @@ public class ESBookAndAdviser {
* 权益id * 权益id
*/ */
private Long rightsSettingId; private Long rightsSettingId;
/**
* 书刊序号
*/
private String serialNumber;
} }
...@@ -2337,7 +2337,8 @@ ...@@ -2337,7 +2337,8 @@
IF(A.vol_label_id is NULL, 0, A.vol_label_id) volLabelId, IF(A.vol_label_id is NULL, 0, A.vol_label_id) volLabelId,
G.id bookGroupId, G.id bookGroupId,
G.join_group_type joinGroupType, G.join_group_type joinGroupType,
IF((BF.BOOK_FUND_ID>0 OR f.IS_FREEZE = 1),1,0) isFundSupport IF((BF.BOOK_FUND_ID>0 OR f.IS_FREEZE = 1),1,0) isFundSupport,
b.SERIAL_NUMBER serialNumber
FROM FROM
BOOK B BOOK B
LEFT JOIN BOOK_ADVISER A ON A.BOOK_ID = B.BOOK_ID and A.IS_MAIN_EDITOR=1 LEFT JOIN BOOK_ADVISER A ON A.BOOK_ID = B.BOOK_ID and A.IS_MAIN_EDITOR=1
...@@ -2374,7 +2375,8 @@ ...@@ -2374,7 +2375,8 @@
IF(A.vol_label_id is NULL, 0, A.vol_label_id) volLabelId, IF(A.vol_label_id is NULL, 0, A.vol_label_id) volLabelId,
G.id bookGroupId, G.id bookGroupId,
G.join_group_type joinGroupType, G.join_group_type joinGroupType,
IF((BF.BOOK_FUND_ID>0 OR f.IS_FREEZE = 1),1,0) isFundSupport IF((BF.BOOK_FUND_ID>0 OR f.IS_FREEZE = 1),1,0) isFundSupport,
b.SERIAL_NUMBER serialNumber
FROM FROM
BOOK B BOOK B
LEFT JOIN BOOK_ADVISER A ON A.BOOK_ID = B.BOOK_ID and A.IS_MAIN_EDITOR=1 LEFT JOIN BOOK_ADVISER A ON A.BOOK_ID = B.BOOK_ID and A.IS_MAIN_EDITOR=1
......
...@@ -7,10 +7,11 @@ ...@@ -7,10 +7,11 @@
<result column="agent_id" property="agentId" jdbcType="BIGINT" /> <result column="agent_id" property="agentId" jdbcType="BIGINT" />
<result column="series_book_keyword" property="seriesBookKeyword" jdbcType="VARCHAR" /> <result column="series_book_keyword" property="seriesBookKeyword" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="serial_number" property="serialNumber" jdbcType="VARCHAR" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,agent_id,series_book_keyword,create_time id,agent_id,series_book_keyword, create_time, serial_number
</sql> </sql>
<insert id="insert" parameterType="com.pcloud.book.book.entity.HotBook" useGeneratedKeys="true" <insert id="insert" parameterType="com.pcloud.book.book.entity.HotBook" useGeneratedKeys="true"
...@@ -19,12 +20,14 @@ ...@@ -19,12 +20,14 @@
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
agent_id, agent_id,
series_book_keyword, series_book_keyword,
create_time create_time,
serial_number
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
#{agentId,jdbcType=BIGINT}, #{agentId,jdbcType=BIGINT},
#{seriesBookKeyword,jdbcType=INTEGER}, #{seriesBookKeyword,jdbcType=INTEGER},
NOW() NOW(),
#{serialNumber}
</trim> </trim>
</insert> </insert>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment