Commit ce11193e by 田超

Merge branch 'feature/1004545' into 'master'

feat:[1004545] 超级搜索

See merge request rays/pcloud-book!1274
parents 3e673c2f 6645d234
...@@ -42,6 +42,26 @@ public class AdviserBookInfoDTO extends BaseDto { ...@@ -42,6 +42,26 @@ public class AdviserBookInfoDTO extends BaseDto {
private Long bookGroupId; private Long bookGroupId;
private Long bookAdviserId;
private String uniqueNumber;
public String getUniqueNumber() {
return uniqueNumber;
}
public void setUniqueNumber(String uniqueNumber) {
this.uniqueNumber = uniqueNumber;
}
public Long getBookAdviserId() {
return bookAdviserId;
}
public void setBookAdviserId(Long bookAdviserId) {
this.bookAdviserId = bookAdviserId;
}
public Long getBookId() { public Long getBookId() {
return bookId; return bookId;
} }
......
...@@ -13,6 +13,36 @@ public class BookNameUpdateDTO implements Serializable { ...@@ -13,6 +13,36 @@ public class BookNameUpdateDTO implements Serializable {
private Long bookId; private Long bookId;
private Long adviserId;
private Long channelId;
private Long adviserBookId;
public Long getAdviserBookId() {
return adviserBookId;
}
public void setAdviserBookId(Long adviserBookId) {
this.adviserBookId = adviserBookId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public String getBookName() { public String getBookName() {
return bookName; return bookName;
} }
......
...@@ -20,6 +20,7 @@ import com.pcloud.book.book.entity.BookAdviser; ...@@ -20,6 +20,7 @@ import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.group.dto.BookAppletSceneDTO; import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
...@@ -196,4 +197,12 @@ public interface BookAdviserService { ...@@ -196,4 +197,12 @@ public interface BookAdviserService {
ResponseEntity<ResponseDto<Integer>> getBookIsOpenCatalog(@RequestParam("bookId") Long bookId, ResponseEntity<ResponseDto<Integer>> getBookIsOpenCatalog(@RequestParam("bookId") Long bookId,
@RequestParam("channelId") Long channelId, @RequestParam("channelId") Long channelId,
@RequestParam("adviserId") Long adviserId) throws BizException; @RequestParam("adviserId") Long adviserId) throws BizException;
@GetMapping("getAllAdviserBook")
@ApiOperation("获取所有编辑书籍")
ResponseEntity<ResponseDto<PageBeanNew<AdviserBookInfoDTO>>> getAllAdviserBook(@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage);
@PostMapping("getBookMapByAdviserBookIds")
ResponseEntity<ResponseDto<Map<Long, BookDto>>> getBookMapByAdviserBookIds(@RequestBody List<Long> adviserBookIds);
} }
...@@ -272,4 +272,9 @@ public interface BookGroupService { ...@@ -272,4 +272,9 @@ public interface BookGroupService {
@ApiOperation("自有码配置的资源列表") @ApiOperation("自有码配置的资源列表")
@PostMapping("mapSceneServeList") @PostMapping("mapSceneServeList")
ResponseEntity<ResponseDto<Map<Long, List<BookGroupServeDTO>>>> mapSceneServeList(@RequestBody List<Long> sceneIds); ResponseEntity<ResponseDto<Map<Long, List<BookGroupServeDTO>>>> mapSceneServeList(@RequestBody List<Long> sceneIds);
@GetMapping("getAllRaysScene")
@ApiOperation("获取所有编辑书籍")
ResponseEntity<ResponseDto<PageBeanNew<BookGroupDTO>>> getAllRaysScene(@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage);
} }
...@@ -34,6 +34,7 @@ import com.pcloud.book.group.dto.BookServeDTO; ...@@ -34,6 +34,7 @@ import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO; import com.pcloud.channelcenter.qrcode.vo.BookQrcodeVO;
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 org.springframework.data.domain.Page;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -404,4 +405,19 @@ public interface BookAdviserBiz { ...@@ -404,4 +405,19 @@ public interface BookAdviserBiz {
* * @param null * * @param null
*/ */
void updateOpenCatalogState(Long bookId, Long adviserId, Long channelId, Integer isOpenCatalog); void updateOpenCatalogState(Long bookId, Long adviserId, Long channelId, Integer isOpenCatalog);
/**
* 获取所有数据
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<AdviserBookInfoDTO> getAllAdviserBook(Integer currentPage, Integer numPerPage);
/**
* 获取编辑书刊
* @param adviserBookIds
* @return
*/
Map<Long, BookDto> getBookMapByAdviserBookIds(List<Long> adviserBookIds);
} }
...@@ -82,6 +82,7 @@ import com.pcloud.book.group.dto.BookServeLabelDTO; ...@@ -82,6 +82,7 @@ import com.pcloud.book.group.dto.BookServeLabelDTO;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.enums.AppAndProductTypeEnum; import com.pcloud.book.group.enums.AppAndProductTypeEnum;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.mq.producer.UpdateSuperSearchProducer;
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.dao.RightsSettingDAO; import com.pcloud.book.rightsSetting.dao.RightsSettingDAO;
...@@ -251,6 +252,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -251,6 +252,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
private BookGroupServeDao bookGroupServeDao; private BookGroupServeDao bookGroupServeDao;
@Autowired @Autowired
private ResourcePageBiz resourcePageBiz; private ResourcePageBiz resourcePageBiz;
@Autowired
private UpdateSuperSearchProducer searchProducer;
@Override @Override
public List<BookDto> listByAdviserId(Long adviserId) { public List<BookDto> listByAdviserId(Long adviserId) {
...@@ -847,6 +850,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -847,6 +850,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} else { } else {
deleteBook4ViceAdviser(bookId,adviserId,channelId); deleteBook4ViceAdviser(bookId,adviserId,channelId);
} }
//更新超级搜索es
searchProducer.deleteBook(bookId, adviserId, channelId);
} }
...@@ -3091,4 +3096,14 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -3091,4 +3096,14 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
public void updateOpenCatalogState(Long bookId, Long adviserId, Long channelId, Integer isOpenCatalog) { public void updateOpenCatalogState(Long bookId, Long adviserId, Long channelId, Integer isOpenCatalog) {
bookAdviserDao.updateOpenCatalogState(bookId, adviserId, channelId, isOpenCatalog); bookAdviserDao.updateOpenCatalogState(bookId, adviserId, channelId, isOpenCatalog);
} }
@Override
public PageBeanNew<AdviserBookInfoDTO> getAllAdviserBook(Integer currentPage, Integer numPerPage) {
return bookAdviserDao.listPageNew(new PageParam(currentPage, numPerPage),new HashMap<>(),"getAllAdviserBook");
}
@Override
public Map<Long, BookDto> getBookMapByAdviserBookIds(List<Long> adviserBookIds) {
return bookAdviserDao.getBookMapByAdviserBookIds(adviserBookIds);
}
} }
...@@ -3,10 +3,13 @@ ...@@ -3,10 +3,13 @@
*/ */
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 cn.hutool.core.map.MapUtil;
import cn.hutool.http.HttpUtil;
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.BookScanStatistics4OfficialAccountsDTO; import com.pcloud.analysisengine.qrcode.dto.BookScanStatistics4OfficialAccountsDTO;
import com.pcloud.analysisengine.qrcode.dto.BookScanStatistics4OfficialAccountsReqDTO; import com.pcloud.analysisengine.qrcode.dto.BookScanStatistics4OfficialAccountsReqDTO;
import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto; import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto;
...@@ -137,6 +140,7 @@ import com.pcloud.book.group.entity.BookGroup; ...@@ -137,6 +140,7 @@ import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.mq.producer.BookMQProducer; import com.pcloud.book.mq.producer.BookMQProducer;
import com.pcloud.book.mq.producer.UpdateSuperSearchProducer;
import com.pcloud.book.rightsSetting.constants.RightsSettingConstant; import com.pcloud.book.rightsSetting.constants.RightsSettingConstant;
import com.pcloud.book.rightsSetting.dao.RightsNowItemDao; import com.pcloud.book.rightsSetting.dao.RightsNowItemDao;
import com.pcloud.book.rightsSetting.mapper.RightsSettingBookRelationMapper; import com.pcloud.book.rightsSetting.mapper.RightsSettingBookRelationMapper;
...@@ -173,7 +177,6 @@ import com.pcloud.resourcecenter.product.dto.ProductDto; ...@@ -173,7 +177,6 @@ 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;
...@@ -211,11 +214,6 @@ import java.util.function.Function; ...@@ -211,11 +214,6 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.http.HttpUtil;
/** /**
* @描述:书籍业务层接口实现类 * @描述:书籍业务层接口实现类
* @作者:songx * @作者:songx
...@@ -352,6 +350,8 @@ public class BookBizImpl implements BookBiz { ...@@ -352,6 +350,8 @@ public class BookBizImpl implements BookBiz {
private TradeConsr tradeConsr; private TradeConsr tradeConsr;
@Autowired @Autowired
private BookLinkDao bookLinkDao; private BookLinkDao bookLinkDao;
@Autowired
private UpdateSuperSearchProducer searchProducer;
/** /**
* 创建书籍,同时建立与编辑的推广关系 * 创建书籍,同时建立与编辑的推广关系
*/ */
...@@ -1727,6 +1727,8 @@ public class BookBizImpl implements BookBiz { ...@@ -1727,6 +1727,8 @@ public class BookBizImpl implements BookBiz {
bookGroupBiz.linkBookGroup(book.getBookId(), book.getBookGroupId(), book.getCreatedUser()); bookGroupBiz.linkBookGroup(book.getBookId(), book.getBookGroupId(), book.getCreatedUser());
} }
bookDto.setIsDelete(null == dtoByBookId ? 1 : dtoByBookId.getIsDelete() ? 1 : 0); bookDto.setIsDelete(null == dtoByBookId ? 1 : dtoByBookId.getIsDelete() ? 1 : 0);
//更新超级搜索es
searchProducer.createBook(book.getBookAdviserId());
return bookDto; return bookDto;
} }
...@@ -1755,6 +1757,8 @@ public class BookBizImpl implements BookBiz { ...@@ -1755,6 +1757,8 @@ public class BookBizImpl implements BookBiz {
bookGroupBiz.updateBookGroupRaysClassify(book); bookGroupBiz.updateBookGroupRaysClassify(book);
insertEdition(book.getLastModifiedUser(),book.getEdition(),book.getBookId()); insertEdition(book.getLastModifiedUser(),book.getEdition(),book.getBookId());
LOGGER.info("修改图书基本信息与类型[END]"); LOGGER.info("修改图书基本信息与类型[END]");
//更新超级搜索es
searchProducer.updateBook(book);
// 异步发起书刊推荐超级作者资源计算 // 异步发起书刊推荐超级作者资源计算
ThreadPoolUtils.OTHER_THREAD_POOL.execute(() -> { ThreadPoolUtils.OTHER_THREAD_POOL.execute(() -> {
......
...@@ -324,4 +324,6 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> { ...@@ -324,4 +324,6 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
List<ERPPublishNumDTO> getErpPublishNumQueryParamsByMonth(List<Long> adviserIds, int month); List<ERPPublishNumDTO> getErpPublishNumQueryParamsByMonth(List<Long> adviserIds, int month);
void updateOpenCatalogState(Long bookId, Long adviserId, Long channelId, Integer isOpenCatalog); void updateOpenCatalogState(Long bookId, Long adviserId, Long channelId, Integer isOpenCatalog);
Map<Long, BookDto> getBookMapByAdviserBookIds(List<Long> adviserBookIds);
} }
...@@ -358,6 +358,12 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book ...@@ -358,6 +358,12 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
} }
@Override @Override
public Map<Long, BookDto> getBookMapByAdviserBookIds(List<Long> adviserBookIds) {
return getSessionTemplate().selectMap(getStatement("getBookMapByAdviserBookIds"), adviserBookIds, "bookAdviserId");
}
@Override
public List<AgentBookStatsDetailVO> getAgentBookStatsDetail(List<ErpBookInfoDTO> raysBookIds, Integer isRay, String name, List<Long> advisers) { public List<AgentBookStatsDetailVO> getAgentBookStatsDetail(List<ErpBookInfoDTO> raysBookIds, Integer isRay, String name, List<Long> advisers) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
if (StrUtil.isNotBlank(name) && name.startsWith("BK")){ if (StrUtil.isNotBlank(name) && name.startsWith("BK")){
......
...@@ -23,7 +23,9 @@ import com.pcloud.book.book.service.BookAdviserService; ...@@ -23,7 +23,9 @@ import com.pcloud.book.book.service.BookAdviserService;
import com.pcloud.book.group.dto.BookAppletSceneDTO; import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -227,4 +229,17 @@ public class BookAdviserServiceImpl implements BookAdviserService { ...@@ -227,4 +229,17 @@ public class BookAdviserServiceImpl implements BookAdviserService {
} }
return ResponseHandleUtil.toResponse(isOpenCatalog); return ResponseHandleUtil.toResponse(isOpenCatalog);
} }
@GetMapping("getAllAdviserBook")
@Override
public ResponseEntity<ResponseDto<PageBeanNew<AdviserBookInfoDTO>>> getAllAdviserBook(@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage) {
return ResponseHandleUtil.toResponse(bookAdviserBiz.getAllAdviserBook(currentPage, numPerPage));
}
@PostMapping("getBookMapByAdviserBookIds")
@Override
public ResponseEntity<ResponseDto<Map<Long, BookDto>>> getBookMapByAdviserBookIds(@RequestBody List<Long> adviserBookIds) {
return ResponseHandleUtil.toResponse(bookAdviserBiz.getBookMapByAdviserBookIds(adviserBookIds));
}
} }
...@@ -26,6 +26,7 @@ import com.pcloud.book.rightsSetting.dto.RightsSettingDto; ...@@ -26,6 +26,7 @@ import com.pcloud.book.rightsSetting.dto.RightsSettingDto;
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;
import com.pcloud.common.constant.CacheConstant;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.enums.AppTypeEnum; import com.pcloud.common.enums.AppTypeEnum;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
...@@ -51,6 +52,7 @@ import org.springframework.data.domain.PageRequest; ...@@ -51,6 +52,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import redis.clients.jedis.JedisCluster;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -345,6 +347,10 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -345,6 +347,10 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
boolQueryBuilder.must(adviserIdBuilder); boolQueryBuilder.must(adviserIdBuilder);
//屏蔽指定书籍
BoolQueryBuilder bookBuilder = getBookBuilder();
boolQueryBuilder.must(bookBuilder);
if (isIsbn(keyword)) { if (isIsbn(keyword)) {
boolQueryBuilder.must(QueryBuilders.termsQuery("isbn", keyword)); boolQueryBuilder.must(QueryBuilders.termsQuery("isbn", keyword));
} else if (StringUtils.isNotBlank(keyword)) { } else if (StringUtils.isNotBlank(keyword)) {
...@@ -405,7 +411,9 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -405,7 +411,9 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
// 审核通过之后屏蔽掉测试编辑的书刊 // 审核通过之后屏蔽掉测试编辑的书刊
BoolQueryBuilder adviserIdBuilder = getAdviserIdBuilder(grayStatus); BoolQueryBuilder adviserIdBuilder = getAdviserIdBuilder(grayStatus);
//屏蔽指定书籍
BoolQueryBuilder bookBuilder = getBookBuilder();
boolQueryBuilder.must(bookBuilder);
boolQueryBuilder.must(adviserIdBuilder); boolQueryBuilder.must(adviserIdBuilder);
if (isIsbn(keyword)) { if (isIsbn(keyword)) {
...@@ -439,6 +447,18 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz { ...@@ -439,6 +447,18 @@ public class ESBookAndAdviserBizImpl implements ESBookAndAdviserBiz {
return search; return search;
} }
private BoolQueryBuilder getBookBuilder() {
String ignorBookKey = CacheConstant.BOOK + "ignorBookKey";
List<Long> bookIds = JedisClusterUtils.getJsonList(ignorBookKey, Long.class);
if (ListUtils.isEmpty(bookIds)) {
bookIds = Lists.newArrayList(5920573L,5934953L,5920574L,5934954L);
JedisClusterUtils.setJsonList(ignorBookKey,bookIds,3600 * 24);
}
BoolQueryBuilder mustNot = QueryBuilders.boolQuery().mustNot(QueryBuilders.termsQuery("id", bookIds));
return mustNot;
}
@Override @Override
public void deleteAdviserBooks4ES() { public void deleteAdviserBooks4ES() {
Page<ESBookAndAdviser> search = getEsBookAndAdvisers(); Page<ESBookAndAdviser> search = getEsBookAndAdvisers();
......
...@@ -1088,4 +1088,9 @@ public interface BookGroupBiz { ...@@ -1088,4 +1088,9 @@ public interface BookGroupBiz {
* * @param null * * @param null
*/ */
void updateBookGroupSeq(Long bookGroupId, Integer seq); void updateBookGroupSeq(Long bookGroupId, Integer seq);
/**
*获取所有rays码
*/
PageBeanNew<BookGroupDTO> getAllRaysScene(Integer currentPage, Integer numPerPage);
} }
...@@ -199,6 +199,7 @@ import com.pcloud.book.keywords.dto.KeywordDTO; ...@@ -199,6 +199,7 @@ import com.pcloud.book.keywords.dto.KeywordDTO;
import com.pcloud.book.keywords.enums.ReplyTypeEnum; import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.keywords.vo.ListKeywordVO; import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.book.mapper.clickhouse.BookMapper; import com.pcloud.book.mapper.clickhouse.BookMapper;
import com.pcloud.book.mq.producer.UpdateSuperSearchProducer;
import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz; import com.pcloud.book.pcloudkeyword.biz.PcloudRobotBiz;
import com.pcloud.book.pcloudkeyword.entity.PcloudRobot; import com.pcloud.book.pcloudkeyword.entity.PcloudRobot;
import com.pcloud.book.push.enums.AltTypeEnum; import com.pcloud.book.push.enums.AltTypeEnum;
...@@ -507,6 +508,8 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -507,6 +508,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
private BookMapper bookMapper; private BookMapper bookMapper;
@Autowired @Autowired
private ResourcePageBiz resourcePageBiz; private ResourcePageBiz resourcePageBiz;
@Autowired
private UpdateSuperSearchProducer searchProducer;
private static final ThreadPoolExecutor PLATFORM_STATISTICS_EXPORT_THREAD = new ThreadPoolExecutor(2, 2, private static final ThreadPoolExecutor PLATFORM_STATISTICS_EXPORT_THREAD = new ThreadPoolExecutor(2, 2,
0, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), 0, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),
...@@ -732,7 +735,13 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -732,7 +735,13 @@ public class BookGroupBizImpl implements BookGroupBiz {
return null; return null;
} }
List<BookGroupDTO> list = bookGroupDao.getDTOByIds(bookGroupIds); List<BookGroupDTO> list = bookGroupDao.getDTOByIds(bookGroupIds);
if (ListUtils.isEmpty(list)) {
return new HashMap<>();
}
List<Long> bookIds = list.stream().map(BookGroupDTO::getBookId).collect(Collectors.toList()); List<Long> bookIds = list.stream().map(BookGroupDTO::getBookId).collect(Collectors.toList());
if (ListUtils.isEmpty(bookIds)) {
return new HashMap<>();
}
Map<Long, BookDto> mapByIds = bookDao.getMapByIds(bookIds); Map<Long, BookDto> mapByIds = bookDao.getMapByIds(bookIds);
if (ListUtils.isEmpty(list)) { if (ListUtils.isEmpty(list)) {
return null; return null;
...@@ -1080,6 +1089,8 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -1080,6 +1089,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
bookGroup.setGroupQrcodeUrl(qrcode); bookGroup.setGroupQrcodeUrl(qrcode);
bookGroup.setBackgroundType(bookGroup.getBackgroundType()); bookGroup.setBackgroundType(bookGroup.getBackgroundType());
bookGroupDao.update(bookGroup); bookGroupDao.update(bookGroup);
//更新至超级搜索
searchProducer.update(bookGroup.getId());
} }
/** /**
...@@ -1940,6 +1951,8 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -1940,6 +1951,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
bookGroupDao.deleteByBookGroupId(bookGroupId); bookGroupDao.deleteByBookGroupId(bookGroupId);
bookAppletSceneDao.deleteByBookGroupId(bookGroupId); bookAppletSceneDao.deleteByBookGroupId(bookGroupId);
//更新至超级搜索中
searchProducer.delete(bookGroupId);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -6213,6 +6226,8 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -6213,6 +6226,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
BookGroup bookGroup = this.createBookGroupAfterCreateBook(bookId,channelId,adviserId,null, null,joinGroupType,jumpType,bookGroupCreateDTO.getJumpUrl()); BookGroup bookGroup = this.createBookGroupAfterCreateBook(bookId,channelId,adviserId,null, null,joinGroupType,jumpType,bookGroupCreateDTO.getJumpUrl());
bookGroupCreateDTO.setId(bookGroup.getId()); bookGroupCreateDTO.setId(bookGroup.getId());
this.updateBookGroup(bookGroupCreateDTO); this.updateBookGroup(bookGroupCreateDTO);
//更新至超级搜索
searchProducer.create(bookGroup.getId());
return bookGroup; return bookGroup;
} }
...@@ -6767,6 +6782,11 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -6767,6 +6782,11 @@ public class BookGroupBizImpl implements BookGroupBiz {
} }
@Override @Override
public PageBeanNew<BookGroupDTO> getAllRaysScene(Integer currentPage, Integer numPerPage) {
return bookGroupDao.listPageNew(new PageParam(currentPage, numPerPage), new HashMap<>(),"getAllRaysScene");
}
@Override
public List<BookGroupScanStatisticsRespDTO> getBookGroupScanStatistics(BookGroupScanStatisticsRequestDTO reqDTO) { public List<BookGroupScanStatisticsRespDTO> getBookGroupScanStatistics(BookGroupScanStatisticsRequestDTO reqDTO) {
if (ObjectUtil.hasEmpty(reqDTO, reqDTO.getBookIds(), reqDTO.getAdviserIds(), reqDTO.getChannelIds(), reqDTO.getStart(), reqDTO.getEnd())) if (ObjectUtil.hasEmpty(reqDTO, reqDTO.getBookIds(), reqDTO.getAdviserIds(), reqDTO.getChannelIds(), reqDTO.getStart(), reqDTO.getEnd()))
return new ArrayList<>(); return new ArrayList<>();
......
...@@ -9,8 +9,8 @@ import com.pcloud.book.group.dto.BookGroup4CatalogDTO; ...@@ -9,8 +9,8 @@ import com.pcloud.book.group.dto.BookGroup4CatalogDTO;
import com.pcloud.book.group.dto.BookGroupCountDTO; import com.pcloud.book.group.dto.BookGroupCountDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO; import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO;
import com.pcloud.book.group.dto.BookGroupScanStatisticsRespDTO;
import com.pcloud.book.group.dto.BookGroupScanStatisticsRequestDTO; import com.pcloud.book.group.dto.BookGroupScanStatisticsRequestDTO;
import com.pcloud.book.group.dto.BookGroupScanStatisticsRespDTO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO; import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.dto.BookGroupServeDTO; import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.dto.BookServeQueryDTO; import com.pcloud.book.group.dto.BookServeQueryDTO;
...@@ -36,9 +36,10 @@ import com.pcloud.common.page.PageBeanNew; ...@@ -36,9 +36,10 @@ import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.utils.BeanUtils; import com.pcloud.common.utils.BeanUtils;
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.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 io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -54,9 +55,6 @@ import java.util.List; ...@@ -54,9 +55,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Random; import java.util.Random;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/** /**
* Description 社群书内部接口实现类 * Description 社群书内部接口实现类
* Created by PENG on 2019/5/14. * Created by PENG on 2019/5/14.
...@@ -471,4 +469,11 @@ public class BookGroupServiceImpl implements BookGroupService { ...@@ -471,4 +469,11 @@ public class BookGroupServiceImpl implements BookGroupService {
public ResponseEntity<ResponseDto<Map<Long, List<BookGroupServeDTO>>>> mapSceneServeList(@RequestBody List<Long> sceneIds) { public ResponseEntity<ResponseDto<Map<Long, List<BookGroupServeDTO>>>> mapSceneServeList(@RequestBody List<Long> sceneIds) {
return ResponseHandleUtil.toResponse(resourcePageBiz.mapSceneServeList(sceneIds)); return ResponseHandleUtil.toResponse(resourcePageBiz.mapSceneServeList(sceneIds));
} }
@GetMapping("getAllRaysScene")
@ApiOperation("获取所有rays码")
public ResponseEntity<ResponseDto<PageBeanNew<BookGroupDTO>>> getAllRaysScene(@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage){
return ResponseHandleUtil.toResponse(bookGroupBiz.getAllRaysScene(currentPage, numPerPage));
}
} }
package com.pcloud.book.mq.producer;
import com.pcloud.book.book.biz.BookAdviserBiz;
import com.pcloud.book.book.dto.BookAdviserDto;
import com.pcloud.book.book.dto.BookNameUpdateDTO;
import com.pcloud.book.book.entity.Book;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.common.core.biz.UpdateSuperSearchQueueBiz;
import com.pcloud.common.core.constant.UpdateSuperSearchCode;
import com.pcloud.common.core.dto.UpdateSuperSearchMQDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class UpdateSuperSearchProducer {
@Autowired
private UpdateSuperSearchQueueBiz updateSuperSearchQueueBiz;
@Autowired
private BookAdviserBiz bookAdviserBiz;
public void createBook(Long bookAdviserId) {
log.info("编辑创建图书新增超级搜索数据:{}", bookAdviserId);
if (null == bookAdviserId) {
return;
}
ThreadPoolUtils.UPDATE_SUPER_SEARCH_POOL.execute(() -> {
UpdateSuperSearchMQDTO updateSuperSearchMQDTO = UpdateSuperSearchMQDTO.builder()
.superSearchCode(UpdateSuperSearchCode.BOOK_CREATE)
.resourceId(bookAdviserId)
.build();
updateSuperSearchQueueBiz.sendMessageQueue(updateSuperSearchMQDTO);
});
}
public void deleteBook(Long bookId, Long adviserId, Long channelId) {
log.info("编辑删除图书新增超级搜索数据bookId:{},adviserId:{},channelId:{}", bookId, adviserId, channelId);
if (null == bookId || null == adviserId || null == channelId) {
return;
}
ThreadPoolUtils.UPDATE_SUPER_SEARCH_POOL.execute(() -> {
BookAdviserDto bookAdviserDto = bookAdviserBiz.getBase(bookId, channelId, adviserId);
if (null == bookAdviserDto || null == bookAdviserDto.getBookAdviserId()) {
return;
}
UpdateSuperSearchMQDTO updateSuperSearchMQDTO = UpdateSuperSearchMQDTO.builder()
.superSearchCode(UpdateSuperSearchCode.BOOK_DELETE)
.resourceId(bookAdviserDto.getBookAdviserId())
.build();
updateSuperSearchQueueBiz.sendMessageQueue(updateSuperSearchMQDTO);
});
}
public void updateBook(Book book) {
log.info("编辑更新图书新增超级搜索数据book:{} ",book.getBookId());
ThreadPoolUtils.UPDATE_SUPER_SEARCH_POOL.execute(() -> {
BookAdviserDto bookAdviserDto = bookAdviserBiz.getBase(book.getBookId(),book.getChannelId(), book.getLastModifiedUser());
if (null == bookAdviserDto || null == bookAdviserDto.getBookAdviserId()) {
return;
}
UpdateSuperSearchMQDTO updateSuperSearchMQDTO = UpdateSuperSearchMQDTO.builder()
.superSearchCode(UpdateSuperSearchCode.BOOK_UPDATE)
.resourceId(bookAdviserDto.getBookAdviserId())
.build();
updateSuperSearchQueueBiz.sendMessageQueue(updateSuperSearchMQDTO);
});
}
public void create(Long id) {
log.info("编辑创建新增超级搜索数据:{}", id);
if (null == id) {
return;
}
ThreadPoolUtils.UPDATE_SUPER_SEARCH_POOL.execute(() -> {
UpdateSuperSearchMQDTO updateSuperSearchMQDTO = UpdateSuperSearchMQDTO.builder()
.superSearchCode(UpdateSuperSearchCode.GROUP_QRCODE_CREATE)
.resourceId(id)
.build();
updateSuperSearchQueueBiz.sendMessageQueue(updateSuperSearchMQDTO);
});
}
public void delete(Long id) {
log.info("编辑删除新增超级搜索数据sceneId:{}", id);
if (null == id) {
return;
}
ThreadPoolUtils.UPDATE_SUPER_SEARCH_POOL.execute(() -> {
UpdateSuperSearchMQDTO updateSuperSearchMQDTO = UpdateSuperSearchMQDTO.builder()
.superSearchCode(UpdateSuperSearchCode.GROUP_QRCODE_DELETE)
.resourceId(id)
.build();
updateSuperSearchQueueBiz.sendMessageQueue(updateSuperSearchMQDTO);
});
}
public void update(Long id) {
log.info("编辑更新新增超级搜索数据:{} ",id);
ThreadPoolUtils.UPDATE_SUPER_SEARCH_POOL.execute(() -> {
if (null == id) {
return;
}
UpdateSuperSearchMQDTO updateSuperSearchMQDTO = UpdateSuperSearchMQDTO.builder()
.superSearchCode(UpdateSuperSearchCode.GROUP_QRCODE_UPDATE)
.resourceId(id)
.build();
updateSuperSearchQueueBiz.sendMessageQueue(updateSuperSearchMQDTO);
});
}
}
...@@ -75,5 +75,11 @@ public class ThreadPoolUtils { ...@@ -75,5 +75,11 @@ public class ThreadPoolUtils {
public static final ExecutorService SMALL_THREAD_POOL = new ThreadPoolExecutor(8, 8, 0L, TimeUnit.SECONDS, public static final ExecutorService SMALL_THREAD_POOL = new ThreadPoolExecutor(8, 8, 0L, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(), new ThreadFactoryBuilder().setNameFormat("small-pool-%d").build(), new ThreadPoolExecutor.CallerRunsPolicy()); new LinkedBlockingQueue<>(), new ThreadFactoryBuilder().setNameFormat("small-pool-%d").build(), new ThreadPoolExecutor.CallerRunsPolicy());
/**
* 超级搜索更新线程
*/
public static final ThreadPoolExecutor UPDATE_SUPER_SEARCH_POOL = new ThreadPoolExecutor(8, 8, 0, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(), new ThreadFactoryBuilder().setNameFormat("update_super_search-pool-%d").build(), new ThreadPoolExecutor.CallerRunsPolicy());
} }
...@@ -1174,4 +1174,51 @@ ...@@ -1174,4 +1174,51 @@
CHANNEL_ID = #{channelId, jdbcType=BIGINT} CHANNEL_ID = #{channelId, jdbcType=BIGINT}
</update> </update>
<select id="getAllAdviserBook" resultType="com.pcloud.book.book.dto.AdviserBookInfoDTO">
SELECT
BOOK_ADVISER_ID bookAdviserId,
BOOK_NAME bookName,
b.isbn,
b.serial_number serialNumber,
b.unique_number uniqueNumber,
a.CREATED_DATE createdDate,
a.LAST_MODIFIED_DATE lastModifiedDate,
a.book_id bookId,
a.adviser_Id adviserId,
a.channel_Id channelId
FROM
book_adviser a LEFT JOIN book b on a.BOOK_ID = b.BOOK_ID
WHERE
a.IS_DELETE = 0
and
b.is_delete = 0
</select>
<select id="getBookMapByAdviserBookIds" parameterType="list" resultMap="com.pcloud.book.book.dao.impl.BookDaoImpl.bookMap">
SELECT
a.BOOK_ID,
a.CHANNEL_ID,
a.ADVISER_ID,
b.BOOK_NAME,
b.COVER_IMG,
b.isbn,
b.SERIAL_NUMBER,
b.unique_number,
a.CREATED_DATE,
a.LAST_MODIFIED_DATE,
a.BOOK_ADVISER_ID
FROM
book_adviser a
INNER JOIN book b ON a.BOOK_ID = b.BOOK_ID
AND b.IS_DELETE = 0
WHERE
a.IS_DELETE = 0
and
BOOK_ADVISER_ID in
<foreach collection="list" separator="," open="(" close=")" index="index" item="item">
#{item}
</foreach>
</select>
</mapper> </mapper>
...@@ -1368,6 +1368,15 @@ ...@@ -1368,6 +1368,15 @@
AND b.create_user = ${adviserId} AND b.create_user = ${adviserId}
</select> </select>
<select id="getAllRaysScene" resultMap="BookGroupDTO">
select
<include refid="Base_Column_List"/>
from
book_group
where
is_delete = 0
</select>
<update id="updateBookGroupSeq" parameterType="map"> <update id="updateBookGroupSeq" parameterType="map">
UPDATE book_group UPDATE book_group
SET seq = #{seq} SET seq = #{seq}
......
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