Commit 9d05c8c0 by 田超

Merge branch 'feature/1003754' into 'master'

feat: [1003754] 答案搜索全平台

See merge request rays/pcloud-book!1036
parents a4073cad c2cdabe1
...@@ -741,6 +741,27 @@ public class BookDto extends BaseDto { ...@@ -741,6 +741,27 @@ public class BookDto extends BaseDto {
@ApiModelProperty("出版社介绍") @ApiModelProperty("出版社介绍")
private String desc; private String desc;
@ApiModelProperty("是否配有答案")
private Boolean hasAnswer;
@ApiModelProperty("答案订阅状态")
private Boolean subscribeState;
public Boolean getSubscribeState() {
return subscribeState;
}
public void setSubscribeState(Boolean subscribeState) {
this.subscribeState = subscribeState;
}
public Boolean getHasAnswer() {
return hasAnswer;
}
public void setHasAnswer(Boolean hasAnswer) {
this.hasAnswer = hasAnswer;
}
public Integer getIsFuse() { public Integer getIsFuse() {
return isFuse; return isFuse;
} }
...@@ -2199,6 +2220,18 @@ public class BookDto extends BaseDto { ...@@ -2199,6 +2220,18 @@ public class BookDto extends BaseDto {
", areaLabelName='" + areaLabelName + '\'' + ", areaLabelName='" + areaLabelName + '\'' +
", volLabelName='" + volLabelName + '\'' + ", volLabelName='" + volLabelName + '\'' +
", isLibraryBook=" + isLibraryBook + ", isLibraryBook=" + isLibraryBook +
", isFuse=" + isFuse +
", person='" + person + '\'' +
", tmall='" + tmall + '\'' +
", tmallWord='" + tmallWord + '\'' +
", jd='" + jd + '\'' +
", dangdang='" + dangdang + '\'' +
", pinduoduo='" + pinduoduo + '\'' +
", weixin='" + weixin + '\'' +
", logo='" + logo + '\'' +
", desc='" + desc + '\'' +
", hasAnswer=" + hasAnswer +
", subscribeState=" + subscribeState +
'}'; '}';
} }
} }
...@@ -63,8 +63,7 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz { ...@@ -63,8 +63,7 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
AnswerSubscribe answerSubscribe = new AnswerSubscribe(); AnswerSubscribe answerSubscribe = new AnswerSubscribe();
BeanUtils.copyProperties(answerSubscribeDTO, answerSubscribe); BeanUtils.copyProperties(answerSubscribeDTO, answerSubscribe);
List<AnswerSubscribe> list = answerSubscribeDao.getRecordByUserBook(answerSubscribe); List<AnswerSubscribe> list = answerSubscribeDao.getRecordByUserBook(answerSubscribe);
Boolean hasAnswer = hasAnswer(answerSubscribe.getBookId(), answerSubscribe.getAdviserId(), answerSubscribe.getChannelId()); if (!ListUtils.isEmpty(list)) {
if (!ListUtils.isEmpty(list) || hasAnswer) {
return; return;
} }
answerSubscribeDao.insert(answerSubscribe); answerSubscribeDao.insert(answerSubscribe);
......
...@@ -25,6 +25,7 @@ import com.pcloud.book.book.vo.AgentBookStatsDetailVO; ...@@ -25,6 +25,7 @@ import com.pcloud.book.book.vo.AgentBookStatsDetailVO;
import com.pcloud.book.book.vo.ErpAdviserBookVO; import com.pcloud.book.book.vo.ErpAdviserBookVO;
import com.pcloud.book.book.vo.PcloudAdviserBookVO; import com.pcloud.book.book.vo.PcloudAdviserBookVO;
import com.pcloud.book.book.vo.QrCodeVO; import com.pcloud.book.book.vo.QrCodeVO;
import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -291,6 +292,14 @@ public interface BookAdviserBiz { ...@@ -291,6 +292,14 @@ public interface BookAdviserBiz {
void exportAgentBookStatsDetail(Long agentId, String name, Date startDate, Date endDate, Integer isRay); void exportAgentBookStatsDetail(Long agentId, String name, Date startDate, Date endDate, Integer isRay);
/**
* 查书刊配套答案
* @author:zhuyajie
* @date:2020/11/4 14:46
* * @param null
*/
List<BookServeDTO> getAnswerServesByBook(Long bookId, Long adviserId, Long channelId);
/** /**
* 购书流程获取书籍基本信息 * 购书流程获取书籍基本信息
* @param bookId * @param bookId
......
...@@ -645,7 +645,7 @@ public interface BookBiz { ...@@ -645,7 +645,7 @@ public interface BookBiz {
*/ */
List<Long> getBookIdsByIsbn(String isbn); List<Long> getBookIdsByIsbn(String isbn);
BookDto getAdviserBook(Long bookId, Long adviserId, Long channelId); BookDto getAdviserBook(Long bookId, Long adviserId, Long channelId, Long sceneId);
/** /**
* 批量更新质检书籍 * 批量更新质检书籍
...@@ -710,4 +710,11 @@ public interface BookBiz { ...@@ -710,4 +710,11 @@ public interface BookBiz {
BookDto getBaseById4Buy(Long bookId, Long adviserId, Long channelId); BookDto getBaseById4Buy(Long bookId, Long adviserId, Long channelId);
void fillAgentSale(List<BookDto> bookDtos); void fillAgentSale(List<BookDto> bookDtos);
/**
* 答案,搜索全平台书刊
* @author:zhuyajie
* @date:2020/11/4 14:13
* * @param null
*/
List<BookDto> getESAdviserBooks4Answer(Long wechatUserId, BookSearchParamVO bookSearchParamVO);
} }
...@@ -61,6 +61,7 @@ import com.pcloud.book.group.biz.BookGroupBiz; ...@@ -61,6 +61,7 @@ import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.dao.BookGroupDao; import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO; import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; 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.dao.RightsSettingDAO; import com.pcloud.book.rightsSetting.dao.RightsSettingDAO;
...@@ -75,6 +76,7 @@ import com.pcloud.common.core.aspect.ParamLog; ...@@ -75,6 +76,7 @@ import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.SceneCode; import com.pcloud.common.core.constant.SceneCode;
import com.pcloud.common.core.constant.SendType; import com.pcloud.common.core.constant.SendType;
import com.pcloud.common.core.constant.SystemCode; import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.enums.AppTypeEnum;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
...@@ -1963,4 +1965,17 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1963,4 +1965,17 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
return getAgentQuarterDigital(DateUtil.offsetMonth(date,-3)); return getAgentQuarterDigital(DateUtil.offsetMonth(date,-3));
} }
@Override
public List<BookServeDTO> getAnswerServesByBook(Long bookId, Long adviserId, Long channelId) {
List<BookServeDTO> answerList = new ArrayList<>();
List<BookServeDTO> bookServeVOS = bookGroupBiz.getBookAndBookGroupServeIds(adviserId, bookId, channelId);
bookGroupBiz.fillBookServe(bookServeVOS);
bookGroupBiz.removeCanNotBuy(bookServeVOS);
if (!ListUtils.isEmpty(bookServeVOS)) {
answerList = bookServeVOS.stream().
filter(s -> s.getServeName().contains("答案") || s.getFromType().equals(AppTypeEnum.ANSWER.value)).collect(Collectors.toList());
}
return answerList;
}
} }
...@@ -3,11 +3,10 @@ ...@@ -3,11 +3,10 @@
*/ */
package com.pcloud.book.book.biz.impl; package com.pcloud.book.book.biz.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto; import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto;
import com.pcloud.appcenter.app.dto.AppDto; import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO; import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
...@@ -15,6 +14,8 @@ import com.pcloud.appcenter.base.dto.AppPriceCacheDTO; ...@@ -15,6 +14,8 @@ import com.pcloud.appcenter.base.dto.AppPriceCacheDTO;
import com.pcloud.appcenter.base.exception.AppBizException; import com.pcloud.appcenter.base.exception.AppBizException;
import com.pcloud.appcenter.cache.service.AppPriceCacheService; import com.pcloud.appcenter.cache.service.AppPriceCacheService;
import com.pcloud.book.applet.biz.AppletBookClassifyBiz; import com.pcloud.book.applet.biz.AppletBookClassifyBiz;
import com.pcloud.book.applet.dao.AnswerSubscribeDao;
import com.pcloud.book.applet.entity.AnswerSubscribe;
import com.pcloud.book.applet.entity.AppletUserLabelRelation; import com.pcloud.book.applet.entity.AppletUserLabelRelation;
import com.pcloud.book.applet.enums.LabelTypeEnum; import com.pcloud.book.applet.enums.LabelTypeEnum;
import com.pcloud.book.base.enums.BookFreezeEnum; import com.pcloud.book.base.enums.BookFreezeEnum;
...@@ -98,6 +99,7 @@ import com.pcloud.book.group.dao.BookAppletSceneDao; ...@@ -98,6 +99,7 @@ import com.pcloud.book.group.dao.BookAppletSceneDao;
import com.pcloud.book.group.dao.BookGroupDao; import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dao.BookGroupServeDao; import com.pcloud.book.group.dao.BookGroupServeDao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.entity.BookAppletScene; import com.pcloud.book.group.entity.BookAppletScene;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
...@@ -135,6 +137,7 @@ import com.pcloud.resourcecenter.product.dto.ProductDto; ...@@ -135,6 +137,7 @@ import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.SpecificationDto; import com.pcloud.resourcecenter.product.dto.SpecificationDto;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto; import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.usercenter.party.agent.dto.SaleAgentDTO; import com.pcloud.usercenter.party.agent.dto.SaleAgentDTO;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -167,6 +170,9 @@ import java.util.concurrent.Executors; ...@@ -167,6 +170,9 @@ import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
/** /**
* @描述:书籍业务层接口实现类 * @描述:书籍业务层接口实现类
* @作者:songx * @作者:songx
...@@ -280,6 +286,8 @@ public class BookBizImpl implements BookBiz { ...@@ -280,6 +286,8 @@ public class BookBizImpl implements BookBiz {
private LabelConsr labelConsr; private LabelConsr labelConsr;
@Value("${system.env}") @Value("${system.env}")
private String envStr; private String envStr;
@Autowired
private AnswerSubscribeDao answerSubscribeDao;
/** /**
* 创建书籍,同时建立与编辑的推广关系 * 创建书籍,同时建立与编辑的推广关系
...@@ -2222,10 +2230,18 @@ public class BookBizImpl implements BookBiz { ...@@ -2222,10 +2230,18 @@ public class BookBizImpl implements BookBiz {
@ParamLog("获取书刊") @ParamLog("获取书刊")
@Override @Override
public BookDto getAdviserBook(Long bookId, Long adviserId, Long channelId) { public BookDto getAdviserBook(Long bookId, Long adviserId, Long channelId, Long sceneId) {
if (bookId==null){ if (bookId==null && null==sceneId){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数有误"); throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数有误");
} }
if (null != sceneId) {
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId);
if (null != qrcodeSceneDto) {
bookId = qrcodeSceneDto.getAdviserBookId();
channelId = qrcodeSceneDto.getChannelPartyId();
adviserId = qrcodeSceneDto.getCreatedByUserLogin();
}
}
if (adviserId==null||channelId==null||adviserId<=0||channelId<=0){ if (adviserId==null||channelId==null||adviserId<=0||channelId<=0){
return bookDao.getBaseById(bookId); return bookDao.getBaseById(bookId);
} }
...@@ -3399,4 +3415,46 @@ public class BookBizImpl implements BookBiz { ...@@ -3399,4 +3415,46 @@ public class BookBizImpl implements BookBiz {
} }
} }
} }
@Override
public List<BookDto> getESAdviserBooks4Answer(Long wechatUserId, BookSearchParamVO bookSearchParamVO) {
Long graLabelId = bookSearchParamVO.getGraLabelId();
Long subLabelId = bookSearchParamVO.getSubLabelId();
Long verLabelId = bookSearchParamVO.getVerLabelId();
Page<ESBookAndAdviser> esPage = esBookAndAdviserBiz.getESAdviserBooks4Answer(bookSearchParamVO.getGrayStatus(), bookSearchParamVO.getKeyword(),
graLabelId, subLabelId, verLabelId, 0, 3);
List<ESBookAndAdviser> esBookAndAdvisers = esPage.getContent();
if (ListUtils.isEmpty(esBookAndAdvisers)) {
return new ArrayList<>();
}
List<BookDto> bookDtos = changeToBookDto(esBookAndAdvisers);
fillOtherBookInfo(bookDtos);
for (BookDto bookDto : bookDtos) {
bookDto.setHasAnswer(false);
//标记是否有答案
List<BookServeDTO> bookServeVOS = bookGroupBiz.getBookAndBookGroupServeIds(bookDto.getAdviserId(), bookDto.getBookId(), bookDto.getChannelId());
bookGroupBiz.fillBookServe(bookServeVOS);
bookGroupBiz.removeCanNotBuy(bookServeVOS);
if (!ListUtils.isEmpty(bookServeVOS)) {
List<BookServeDTO> answerList = bookServeVOS.stream().
filter(s -> s.getServeName().contains("答案") || s.getFromType().equals(AppTypeEnum.ANSWER.value)).collect(Collectors.toList());
if (!ListUtils.isEmpty(answerList)) {
bookDto.setHasAnswer(true);
}
}
//订阅状态
Boolean subscribeState = false;
AnswerSubscribe answerSubscribe = new AnswerSubscribe();
answerSubscribe.setBookId(bookDto.getBookId());
answerSubscribe.setChannelId(bookDto.getChannelId());
answerSubscribe.setAdviserId(bookDto.getAdviserId());
answerSubscribe.setWechatUserId(wechatUserId);
List<AnswerSubscribe> list = answerSubscribeDao.getRecordByUserBook(answerSubscribe);
if (!ListUtils.isEmpty(list)) {
subscribeState = true;
}
bookDto.setSubscribeState(subscribeState);
}
return bookDtos;
}
} }
...@@ -288,4 +288,10 @@ public interface BookAdviserFacade { ...@@ -288,4 +288,10 @@ public interface BookAdviserFacade {
@RequestParam(value = "isRay", required = false) Integer isRay @RequestParam(value = "isRay", required = false) Integer isRay
) throws BizException; ) throws BizException;
@ApiOperation("获取配套答案")
@GetMapping("getAnswerServeByBook")
ResponseDto<?> getAnswerServesByBook(@RequestParam("bookId") Long bookId,
@RequestParam("adviserId") Long adviserId,
@RequestParam("channelId") Long channelId);
} }
...@@ -724,9 +724,10 @@ public interface BookFacade { ...@@ -724,9 +724,10 @@ public interface BookFacade {
@ApiOperation("获取书刊") @ApiOperation("获取书刊")
@GetMapping("getAdviserBook") @GetMapping("getAdviserBook")
ResponseDto<?> getAdviserBook( ResponseDto<?> getAdviserBook(
@RequestParam(value = "bookId") Long bookId, @RequestParam(value = "bookId", required = false) Long bookId,
@RequestParam(value = "adviserId") Long adviserId, @RequestParam(value = "adviserId", required = false) Long adviserId,
@RequestParam(value = "channelId") Long channelId @RequestParam(value = "channelId", required = false) Long channelId,
@RequestParam(value = "sceneId", required = false) Long sceneId
) throws BizException, PermissionException; ) throws BizException, PermissionException;
@ApiOperation(value = "批量更新质检书刊", httpMethod = "POST") @ApiOperation(value = "批量更新质检书刊", httpMethod = "POST")
......
...@@ -335,4 +335,11 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade { ...@@ -335,4 +335,11 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade {
} }
@Override
@GetMapping("getAnswerServesByBook")
public ResponseDto<?> getAnswerServesByBook(@RequestParam("bookId") Long bookId,
@RequestParam("adviserId") Long adviserId,
@RequestParam("channelId") Long channelId){
return new ResponseDto<>(bookAdviserBiz.getAnswerServesByBook(bookId, adviserId, channelId));
}
} }
...@@ -40,6 +40,7 @@ import com.pcloud.common.utils.string.StringUtil; ...@@ -40,6 +40,7 @@ import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.wechatgroup.message.enums.IsSystem; import com.pcloud.wechatgroup.message.enums.IsSystem;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -1004,11 +1005,12 @@ public class BookFacadeImpl implements BookFacade { ...@@ -1004,11 +1005,12 @@ public class BookFacadeImpl implements BookFacade {
@GetMapping("getAdviserBook") @GetMapping("getAdviserBook")
@Override @Override
public ResponseDto<?> getAdviserBook( public ResponseDto<?> getAdviserBook(
@RequestParam(value = "bookId") Long bookId, @RequestParam(value = "bookId",required = false) Long bookId,
@RequestParam(value = "adviserId") Long adviserId, @RequestParam(value = "adviserId", required = false) Long adviserId,
@RequestParam(value = "channelId") Long channelId @RequestParam(value = "channelId", required = false) Long channelId,
@RequestParam(value = "sceneId", required = false) Long sceneId
) throws BizException, PermissionException { ) throws BizException, PermissionException {
return new ResponseDto<>(bookBiz.getAdviserBook(bookId, adviserId, channelId)); return new ResponseDto<>(bookBiz.getAdviserBook(bookId, adviserId, channelId, sceneId));
} }
...@@ -1178,4 +1180,17 @@ public class BookFacadeImpl implements BookFacade { ...@@ -1178,4 +1180,17 @@ public class BookFacadeImpl implements BookFacade {
public ResponseDto<?> checkQrcodeDetail4Erp(@RequestParam(value = "url") String url) { public ResponseDto<?> checkQrcodeDetail4Erp(@RequestParam(value = "url") String url) {
return new ResponseDto<>(bookBiz.checkQrcodeDetail4Erp(url)); return new ResponseDto<>(bookBiz.checkQrcodeDetail4Erp(url));
} }
@ApiOperation("答案,搜索全平台书刊")
@PostMapping("getESAdviserBooks4Answer")
public ResponseDto<?> getESAdviserBooks4Answer(@CookieValue("userInfo") String userInfo, @RequestBody @ApiParam BookSearchParamVO bookSearchParamVO){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(bookBiz.getESAdviserBooks4Answer(wechatUserId,bookSearchParamVO));
}
@ApiOperation("审核通过的书刊标签")
@GetMapping("getBookLabelsAll")
public ResponseDto<?> getBookLabelsAll() throws BizException, PermissionException {
return new ResponseDto<>(bookBiz.getBookLabels(0L));
}
} }
...@@ -33,4 +33,9 @@ public class BookSearchParamVO { ...@@ -33,4 +33,9 @@ public class BookSearchParamVO {
private Integer isAdviserBook; private Integer isAdviserBook;
private Long agentId; private Long agentId;
private Long graLabelId;
private Long subLabelId;
private Long verLabelId;
} }
...@@ -22,4 +22,13 @@ public interface ESBookAndAdviserBiz { ...@@ -22,4 +22,13 @@ public interface ESBookAndAdviserBiz {
void deleteAdviserBooks4ES(); void deleteAdviserBooks4ES();
void deleteChoosedAdviserBooks4ES(String keyword); void deleteChoosedAdviserBooks4ES(String keyword);
/**
* 答案,搜索全平台书刊
* @author:zhuyajie
* @date:2020/11/4 13:52
* * @param null
*/
Page<ESBookAndAdviser> getESAdviserBooks4Answer(String grayStatus, String keyword, Long graLabelId, Long subLabelId, Long verLabelId,
Integer currentPage, Integer numPerPage);
} }
...@@ -213,6 +213,18 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -213,6 +213,18 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
.should(QueryBuilders.termQuery("isBookAdviserDelete", 0)) .should(QueryBuilders.termQuery("isBookAdviserDelete", 0))
.should(QueryBuilders.termQuery("isAdviserBook", 0)); .should(QueryBuilders.termQuery("isAdviserBook", 0));
// 审核通过之后屏蔽掉测试编辑的书刊 // 审核通过之后屏蔽掉测试编辑的书刊
BoolQueryBuilder adviserIdBuilder = getAdviserIdBuilder(grayStatus);
boolQueryBuilder.must(should);
boolQueryBuilder.must(should1);
boolQueryBuilder.must(adviserIdBuilder);
Sort sort=new Sort(Sort.Direction.DESC, "isAdviserBook","lastModifiedDate", "bookId");
PageRequest pageRequest = new PageRequest(currentPage, numPerPage,sort);
Page<ESBookAndAdviser> search = bookAndAdviserRepository.search(boolQueryBuilder, pageRequest);
return search;
}
BoolQueryBuilder getAdviserIdBuilder(String grayStatus){
// 审核通过之后屏蔽掉测试编辑的书刊
BoolQueryBuilder adviserIdBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder adviserIdBuilder = QueryBuilders.boolQuery();
if (YesOrNoEnums.YES.getCode().equals(grayStatus)) { if (YesOrNoEnums.YES.getCode().equals(grayStatus)) {
if ("test".equalsIgnoreCase(BookProps.getSystemEnv())) { if ("test".equalsIgnoreCase(BookProps.getSystemEnv())) {
...@@ -225,13 +237,7 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -225,13 +237,7 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
adviserIdBuilder = QueryBuilders.boolQuery().mustNot(QueryBuilders.termQuery("adviserId", 1362)); adviserIdBuilder = QueryBuilders.boolQuery().mustNot(QueryBuilders.termQuery("adviserId", 1362));
} }
} }
boolQueryBuilder.must(should); return adviserIdBuilder;
boolQueryBuilder.must(should1);
boolQueryBuilder.must(adviserIdBuilder);
Sort sort=new Sort(Sort.Direction.DESC, "isAdviserBook","lastModifiedDate", "bookId");
PageRequest pageRequest = new PageRequest(currentPage, numPerPage,sort);
Page<ESBookAndAdviser> search = bookAndAdviserRepository.search(boolQueryBuilder, pageRequest);
return search;
} }
@Override @Override
...@@ -254,27 +260,8 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -254,27 +260,8 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
BoolQueryBuilder must2 = QueryBuilders.boolQuery().filter(ListUtils.isEmpty(scecondTempletIds) ? QueryBuilders.boolQuery() : QueryBuilders.termsQuery("secondTempletId", scecondTempletIds)); BoolQueryBuilder must2 = QueryBuilders.boolQuery().filter(ListUtils.isEmpty(scecondTempletIds) ? QueryBuilders.boolQuery() : QueryBuilders.termsQuery("secondTempletId", scecondTempletIds));
BoolQueryBuilder should2 = QueryBuilders.boolQuery().should(must1).should(must2); BoolQueryBuilder should2 = QueryBuilders.boolQuery().should(must1).should(must2);
// 审核通过之后屏蔽掉测试编辑的书刊 // 审核通过之后屏蔽掉测试编辑的书刊
BoolQueryBuilder adviserIdBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder adviserIdBuilder = getAdviserIdBuilder(grayStatus);
if (YesOrNoEnums.YES.getCode().equals(grayStatus)) { boolQueryBuilder.must(adviserIdBuilder);
if ("test".equalsIgnoreCase(BookProps.getSystemEnv())) {
for (Long adviserId : BookConstant.TEST_ADVISERS){
adviserIdBuilder = QueryBuilders.boolQuery().mustNot(QueryBuilders.termQuery("adviserId", adviserId));
boolQueryBuilder.must(adviserIdBuilder);
}
}
if ("uat".equalsIgnoreCase(BookProps.getSystemEnv())) {
for (Long adviserId : BookConstant.UAT_ADVISERS){
adviserIdBuilder = QueryBuilders.boolQuery().mustNot(QueryBuilders.termQuery("adviserId", adviserId));
boolQueryBuilder.must(adviserIdBuilder);
}
}
if ("pro".equalsIgnoreCase(BookProps.getSystemEnv())) {
for (Long adviserId : BookConstant.PROD_ADVISERS){
adviserIdBuilder = QueryBuilders.boolQuery().mustNot(QueryBuilders.termQuery("adviserId", adviserId));
boolQueryBuilder.must(adviserIdBuilder);
}
}
}
boolQueryBuilder.must(should); boolQueryBuilder.must(should);
boolQueryBuilder.must(should1); boolQueryBuilder.must(should1);
if (!ListUtils.isEmpty(scecondTempletIds)) { if (!ListUtils.isEmpty(scecondTempletIds)) {
...@@ -331,4 +318,26 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -331,4 +318,26 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
return bookAndAdviserRepository.search(boolQueryBuilder, pageRequest); return bookAndAdviserRepository.search(boolQueryBuilder, pageRequest);
} }
@Override
public Page<ESBookAndAdviser> getESAdviserBooks4Answer(String grayStatus, String keyword, Long graLabelId, Long subLabelId, Long verLabelId, Integer currentPage, Integer numPerPage) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
.filter(QueryBuilders.termQuery("isBookDelete", 0))
.filter(QueryBuilders.termQuery("isBookAdviserDelete", 0))
.filter(null == graLabelId ? QueryBuilders.boolQuery() : QueryBuilders.termQuery("graLabelId", graLabelId))
.filter(null == subLabelId ? QueryBuilders.boolQuery() : QueryBuilders.termQuery("subLabelId", subLabelId))
.filter(null == verLabelId ? QueryBuilders.boolQuery() : QueryBuilders.termQuery("verLabelId", verLabelId));
BoolQueryBuilder should = QueryBuilders.boolQuery()
.should(StringUtil.isEmpty(keyword) ? QueryBuilders.boolQuery() : QueryBuilders.wildcardQuery("bookName", "*" + keyword + "*"))
.should(StringUtil.isEmpty(keyword) ? QueryBuilders.boolQuery() : QueryBuilders.wildcardQuery("isbn", "*" + keyword + "*"));
// 审核通过之后屏蔽掉测试编辑的书刊
BoolQueryBuilder adviserIdBuilder = getAdviserIdBuilder(grayStatus);
boolQueryBuilder.must(adviserIdBuilder);
boolQueryBuilder.must(should);
Sort sort = new Sort(Sort.Direction.DESC, "isFundSupport", "fundBookValue", "resourceCount", "isAdviserBook", "lastModifiedDate", "bookId");
PageRequest pageRequest = new PageRequest(currentPage, numPerPage, sort);
Page<ESBookAndAdviser> search = bookAndAdviserRepository.search(boolQueryBuilder, pageRequest);
return search;
}
} }
...@@ -5068,6 +5068,7 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -5068,6 +5068,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
} }
@Override
@ParamLog("移除不能购买的应用或作品") @ParamLog("移除不能购买的应用或作品")
public void removeCanNotBuy( List<BookServeDTO> list ) { public void removeCanNotBuy( List<BookServeDTO> list ) {
if (ListUtils.isEmpty(list)) { if (ListUtils.isEmpty(list)) {
......
...@@ -469,7 +469,7 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz { ...@@ -469,7 +469,7 @@ public class PcloudGroupActivityBizImpl implements PcloudGroupActivityBiz {
@Override @Override
public GroupActivity4AppletDTO getGroupActivity4Applet(Long rightSettingId, Long adviserId, Long bookId, Long channelId, Integer readType) { public GroupActivity4AppletDTO getGroupActivity4Applet(Long rightSettingId, Long adviserId, Long bookId, Long channelId, Integer readType) {
BookDto adviserBook = bookBiz.getAdviserBook(bookId, adviserId, channelId); BookDto adviserBook = bookBiz.getAdviserBook(bookId, adviserId, channelId, null);
BookDto dto = Optional.ofNullable(adviserBook).orElseThrow(() -> new BookBizException(BookBizException.ID_NOT_EXIST, "未找到相关书刊")); BookDto dto = Optional.ofNullable(adviserBook).orElseThrow(() -> new BookBizException(BookBizException.ID_NOT_EXIST, "未找到相关书刊"));
// 处理分类和标签 // 处理分类和标签
BaseTempletClassify baseTempletClassify = new BaseTempletClassify(); BaseTempletClassify baseTempletClassify = new BaseTempletClassify();
......
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