Commit 079bba7c by 田超

Merge branch 'revert-93d27934' into 'master'

Revert "Merge branch 'feature/1004412' into 'master'"

See merge request rays/pcloud-book!1224
parents 93d27934 c1a7c45e
...@@ -19,8 +19,23 @@ import com.pcloud.book.book.biz.BookLabelBiz; ...@@ -19,8 +19,23 @@ import com.pcloud.book.book.biz.BookLabelBiz;
import com.pcloud.book.book.biz.BookQrcodeWxworkBiz; import com.pcloud.book.book.biz.BookQrcodeWxworkBiz;
import com.pcloud.book.book.constant.BookConstant; import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.dao.BookAdviserDao; import com.pcloud.book.book.dao.BookAdviserDao;
import com.pcloud.book.book.dto.*; import com.pcloud.book.book.dto.AdviserBookInfoDTO;
import com.pcloud.book.book.dto.AppBookRequestDTO; import com.pcloud.book.book.dto.AdviserManageDto;
import com.pcloud.book.book.dto.AviserBookInfoParam;
import com.pcloud.book.book.dto.BookAdviserDto;
import com.pcloud.book.book.dto.BookCountAndAdviserIdDTO;
import com.pcloud.book.book.dto.BookCountByAdvisersDto;
import com.pcloud.book.book.dto.BookCountDto;
import com.pcloud.book.book.dto.BookDataStatisticsDTO;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.BookQrcodeStatisticsDTO;
import com.pcloud.book.book.dto.BookResourceStatisticsDTO;
import com.pcloud.book.book.dto.BookRightsSettingDTO;
import com.pcloud.book.book.dto.BookVarietyStatsDto;
import com.pcloud.book.book.dto.BookVarietyStatsRequestDto;
import com.pcloud.book.book.dto.ERPPublishNumDTO;
import com.pcloud.book.book.dto.ErpBookInfoDTO;
import com.pcloud.book.book.dto.QrcodeStatisticsDTO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookAdviser; import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.enums.BookQrcodeType; import com.pcloud.book.book.enums.BookQrcodeType;
...@@ -66,10 +81,6 @@ import com.pcloud.book.rightsSetting.biz.RightsSettingBiz; ...@@ -66,10 +81,6 @@ 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;
import com.pcloud.book.rightsSetting.dto.RightsSettingDto; import com.pcloud.book.rightsSetting.dto.RightsSettingDto;
import com.pcloud.book.rightsSetting.dto.RightsSettingQueryDTO;
import com.pcloud.book.rightsSetting.entity.RightsSetting;
import com.pcloud.book.rightsSetting.entity.RightsSettingNow;
import com.pcloud.book.rightsSetting.entity.RightsSettingTitle;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.exceptions.ChannelBizException; import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.channelcenter.qrcode.dto.AdviserQrcodeSceneDTO; import com.pcloud.channelcenter.qrcode.dto.AdviserQrcodeSceneDTO;
...@@ -78,7 +89,6 @@ import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto; ...@@ -78,7 +89,6 @@ import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.common.constant.CacheConstant; import com.pcloud.common.constant.CacheConstant;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.ProductTypeConstant; import com.pcloud.common.core.constant.ProductTypeConstant;
import com.pcloud.common.core.constant.RedisKeyConstant;
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;
...@@ -104,7 +114,6 @@ import com.pcloud.wechatgroup.group.dto.GroupUserCountDTO; ...@@ -104,7 +114,6 @@ import com.pcloud.wechatgroup.group.dto.GroupUserCountDTO;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -1082,9 +1091,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1082,9 +1091,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
throw new BookBizException(BookBizException.ERROR, "参数为空"); throw new BookBizException(BookBizException.ERROR, "参数为空");
} }
//type 代表的是过滤二维码。如果是0,展示所有的二维码。如果是1(展示没有资源的码。但是要过滤小睿教育的书的非公众号二维码) //type 代表的是过滤二维码。如果是0,展示所有的二维码。如果是1(展示没有资源的码。但是要过滤小睿教育的书的非公众号二维码)
//获取rays码的权益书。一本书的权益书都一样
Integer rightsettingCounts = getRightsettingCounts(bookId, adviserId, channelId); List<Long> xiaoRuiEducation = channelConsr.isXiaoRuiEducation(Lists.newArrayList(bookId));
List<Long> xiaoRuiEducation = channelConsr.isXiaoRuiEducation(Lists.newArrayList(bookId));
//BookAdviserDto bookAdviserDto = bookAdviserDao.getBase(bookId, channelId, adviserId); //BookAdviserDto bookAdviserDto = bookAdviserDao.getBase(bookId, channelId, adviserId);
//现在一本书下面可以配多个跳小睿的码 //现在一本书下面可以配多个跳小睿的码
List<BookGroupDTO> bookGroupDTOList=bookGroupDao.getDTOByBookIdList(bookId, channelId, adviserId); List<BookGroupDTO> bookGroupDTOList=bookGroupDao.getDTOByBookIdList(bookId, channelId, adviserId);
...@@ -1101,11 +1109,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1101,11 +1109,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
Map<Long, BookGroupServeCountDTO> robotMap =CollUtil.isEmpty(robotList) ? new HashMap<>() : bookGroupServeDao.mapGroupQrcodeServeCount(robotList); Map<Long, BookGroupServeCountDTO> robotMap =CollUtil.isEmpty(robotList) ? new HashMap<>() : bookGroupServeDao.mapGroupQrcodeServeCount(robotList);
//(**不包括群二维码)小睿二维码下资源数量 //(**不包括群二维码)小睿二维码下资源数量
Map<Long, BookGroupServeCountDTO> xiaoruiMap =CollUtil.isEmpty(xiaoruiList) ? new HashMap<>() : bookGroupServeDao.mapXiaoRuiGroupQrcodeServeCount(xiaoruiList); Map<Long, BookGroupServeCountDTO> xiaoruiMap =CollUtil.isEmpty(xiaoruiList) ? new HashMap<>() : bookGroupServeDao.mapXiaoRuiGroupQrcodeServeCount(xiaoruiList);
//计算码的销售额
List<Long> bookGroupIds =CollUtil.isEmpty(bookGroupDTOList) ? new ArrayList<>() : bookGroupDTOList.stream().filter(a -> null != a.getId()).map(a -> a.getId()).distinct().collect(Collectors.toList());
Map<Long, BigDecimal> groupListSaleInfoMap = tradeConsr.getGroupListSaleInfo(bookGroupIds);
List<QrCodeVO> qrCodeVOS = new ArrayList<>(); List<QrCodeVO> qrCodeVOS = new ArrayList<>();
QrCodeVO qrCodeVO; QrCodeVO qrCodeVO;
for (BookGroupDTO bookGroupDTO : bookGroupDTOList) { for (BookGroupDTO bookGroupDTO : bookGroupDTOList) {
...@@ -1116,8 +1119,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1116,8 +1119,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
qrCodeVO.setRightsCount(0); qrCodeVO.setRightsCount(0);
qrCodeVO.setSceneId(bookGroupDTO.getId()); qrCodeVO.setSceneId(bookGroupDTO.getId());
qrCodeVO.setJoinGroupType(bookGroupDTO.getJoinGroupType()); qrCodeVO.setJoinGroupType(bookGroupDTO.getJoinGroupType());
qrCodeVO.setRightsCount(0);
qrCodeVO.setSaleMoney(new BigDecimal(0));
if(JoinGroupTypeEnum.GROUP_QRCODE.getCode().equals(bookGroupDTO.getJoinGroupType())){ if(JoinGroupTypeEnum.GROUP_QRCODE.getCode().equals(bookGroupDTO.getJoinGroupType())){
if(CollUtil.isNotEmpty(groupQrCodeMap) && groupQrCodeMap.containsKey(bookGroupDTO.getId())){ if(CollUtil.isNotEmpty(groupQrCodeMap) && groupQrCodeMap.containsKey(bookGroupDTO.getId())){
BookGroupServeCountDTO bookGroupServeCountDTO = groupQrCodeMap.get(bookGroupDTO.getId()); BookGroupServeCountDTO bookGroupServeCountDTO = groupQrCodeMap.get(bookGroupDTO.getId());
...@@ -1137,14 +1138,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1137,14 +1138,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
} }
} }
//小睿的码才有权益
if(JoinGroupTypeEnum.XIAORUI.getCode().equals(bookGroupDTO.getJoinGroupType())){
qrCodeVO.setRightsCount(rightsettingCounts);
}
//设置销售额
if(CollUtil.isNotEmpty(groupListSaleInfoMap) && groupListSaleInfoMap.containsKey(bookGroupDTO.getId())){
qrCodeVO.setSaleMoney(groupListSaleInfoMap.get(bookGroupDTO.getId()));
}
qrCodeVO.setCodeType("group"); qrCodeVO.setCodeType("group");
qrCodeVO.setXiaoRuiEducation(false); qrCodeVO.setXiaoRuiEducation(false);
if(CollUtil.isNotEmpty(xiaoRuiEducation) && xiaoRuiEducation.contains(bookId)){ if(CollUtil.isNotEmpty(xiaoRuiEducation) && xiaoRuiEducation.contains(bookId)){
...@@ -1205,8 +1198,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1205,8 +1198,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
List<Long> sceneIds = qrcodeSceneDtos.stream().map(x -> x.getSceneId()).collect(Collectors.toList()); List<Long> sceneIds = qrcodeSceneDtos.stream().map(x -> x.getSceneId()).collect(Collectors.toList());
// 企业微信群资源数 // 企业微信群资源数
Map<Long, BookGroupServeCountDTO> bookQrcodeWxworkMap = bookQrcodeWxworkBiz.mapWxWorkServeCount4SceneIds(sceneIds, BookQrcodeType.OFFICIAL_ACCOUNTS.getCode()); Map<Long, BookGroupServeCountDTO> bookQrcodeWxworkMap = bookQrcodeWxworkBiz.mapWxWorkServeCount4SceneIds(sceneIds, BookQrcodeType.OFFICIAL_ACCOUNTS.getCode());
//计算码的销售额
Map<Long, BigDecimal> sceneListSaleInfoMap = tradeConsr.getSceneListSaleInfo(sceneIds);
for (QrcodeSceneDto e : qrcodeSceneDtos) { for (QrcodeSceneDto e : qrcodeSceneDtos) {
QrCodeVO qrCodeVO1 = new QrCodeVO(); QrCodeVO qrCodeVO1 = new QrCodeVO();
qrCodeVO1.setQrCodeName(e.getSceneName()); qrCodeVO1.setQrCodeName(e.getSceneName());
...@@ -1220,10 +1211,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1220,10 +1211,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
qrCodeVO1.setXiaoRuiEducation(true); qrCodeVO1.setXiaoRuiEducation(true);
} }
qrCodeVO1.setSceneId(e.getSceneId()); qrCodeVO1.setSceneId(e.getSceneId());
qrCodeVO1.setSaleMoney(new BigDecimal(0));
if(CollUtil.isNotEmpty(sceneListSaleInfoMap) && sceneListSaleInfoMap.containsKey(e.getSceneId())){
qrCodeVO1.setSaleMoney(sceneListSaleInfoMap.get(e.getSceneId()));
}
qrCodeVOS.add(qrCodeVO1); qrCodeVOS.add(qrCodeVO1);
} }
} }
...@@ -1250,34 +1237,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1250,34 +1237,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
return new PageBeanNew<>(currentPage, numPerPage,qrCodeVOS.size(), record); return new PageBeanNew<>(currentPage, numPerPage,qrCodeVOS.size(), record);
} }
private Integer getRightsettingCounts(Long bookId, Long adviserId, Long channelId) { @Override
Long rightsSettingId = bookGroupBiz.getRightsSettingId4Book(adviserId, channelId, bookId);
int i=0;
if(null!=rightsSettingId){
RightsSettingQueryDTO rightsSettingQueryDTO=new RightsSettingQueryDTO();
rightsSettingQueryDTO.setAdviserId(adviserId);
rightsSettingQueryDTO.setBookId(bookId);
rightsSettingQueryDTO.setChannelId(channelId);
rightsSettingQueryDTO.setRightsSettingTypes(Lists.newArrayList(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19));
rightsSettingQueryDTO.setRightsSettingId(rightsSettingId);
RightsSetting rightsSetting = rightsSettingBiz.getRightsSettingItemsByTypeListNew(rightsSettingQueryDTO);
if(null!=rightsSetting && null!=rightsSetting.getRightsSettingNow()){
RightsSettingNow rightsSettingNow = rightsSetting.getRightsSettingNow();
if(CollUtil.isNotEmpty(rightsSettingNow.getRightsSettingTitles())){
for (RightsSettingTitle rightsSettingTitle : rightsSettingNow.getRightsSettingTitles()) {
if(CollUtil.isEmpty(rightsSettingTitle.getRightsSettingItemList())){
continue;
}
i+=rightsSettingTitle.getRightsSettingItemList().size();
}
}
}
}
return i;
}
@Override
public Map<String, BookResourceStatisticsDTO> mapResourceTotalCount(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds){ public Map<String, BookResourceStatisticsDTO> mapResourceTotalCount(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds){
Map<String, BookResourceStatisticsDTO> mapBookResourceStatistics = new HashMap<>(); Map<String, BookResourceStatisticsDTO> mapBookResourceStatistics = new HashMap<>();
if(CollectionUtils.isEmpty(adviserIds) || CollectionUtils.isEmpty(bookIds) || CollectionUtils.isEmpty(channelIds)){ if(CollectionUtils.isEmpty(adviserIds) || CollectionUtils.isEmpty(bookIds) || CollectionUtils.isEmpty(channelIds)){
...@@ -1382,8 +1342,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1382,8 +1342,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
bookResourceStatisticsDTO.setServeCount(bookResourceStatisticsDTO.getServeCount() + qrcodeMessageDTO.getServeCount()); bookResourceStatisticsDTO.setServeCount(bookResourceStatisticsDTO.getServeCount() + qrcodeMessageDTO.getServeCount());
bookResourceStatisticsDTO.setQrcodeCount(bookResourceStatisticsDTO.getQrcodeCount() + qrcodeMessageDTO.getQrcodeCount()); bookResourceStatisticsDTO.setQrcodeCount(bookResourceStatisticsDTO.getQrcodeCount() + qrcodeMessageDTO.getQrcodeCount());
bookResourceStatisticsDTO.setModernBookServeCount(bookResourceStatisticsDTO.getServeCount() + qrcodeMessageDTO.getServeCount());
bookResourceStatisticsDTO.setModernBookQrcodeCount(bookResourceStatisticsDTO.getQrcodeCount() + qrcodeMessageDTO.getQrcodeCount());
} }
if(bookGroupServeCountDTO != null){ if(bookGroupServeCountDTO != null){
if(StringUtil.isEmpty(bookResourceStatisticsDTO.getBookChannelAdviserId())){ if(StringUtil.isEmpty(bookResourceStatisticsDTO.getBookChannelAdviserId())){
...@@ -1432,21 +1390,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1432,21 +1390,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
@Override @Override
public Map<Long, BookAdviserDto> getOneMainBooks(List<Long> bookIds4Agent) {
return bookAdviserDao.getOneMainBooks(bookIds4Agent);
}
@Override
public Integer getBookCountByAgentAndTime(Long agentId, String startTime, String endTime) {
List<Long> adviserIds = adviserConsr.getByAgentId(agentId);
Integer bookCount = 0;
if (!ListUtils.isEmpty(adviserIds)) {
bookCount = bookAdviserDao.getBookCountByTime(adviserIds, startTime, endTime);
}
return bookCount;
}
@Override
public Map<String, BookDataStatisticsDTO> mapBookDataStatistics(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds) { public Map<String, BookDataStatisticsDTO> mapBookDataStatistics(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds) {
if(CollectionUtils.isEmpty(adviserIds) || CollectionUtils.isEmpty(bookIds) || CollectionUtils.isEmpty(channelIds)){ if(CollectionUtils.isEmpty(adviserIds) || CollectionUtils.isEmpty(bookIds) || CollectionUtils.isEmpty(channelIds)){
throw new ChannelBizException(ChannelBizException.FILED_NULL, "adviserIds、bookIds、channelIds 参数为空!"); throw new ChannelBizException(ChannelBizException.FILED_NULL, "adviserIds、bookIds、channelIds 参数为空!");
...@@ -1494,6 +1437,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1494,6 +1437,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} catch (InterruptedException | ExecutionException | TimeoutException e) { } catch (InterruptedException | ExecutionException | TimeoutException e) {
LOGGER.error("获取社群码扫码次数/人数错误: {}==", e); LOGGER.error("获取社群码扫码次数/人数错误: {}==", e);
} }
for (BookGroupDTO bookGroupDTO : bookGroupList) { for (BookGroupDTO bookGroupDTO : bookGroupList) {
GroupUserCountDTO groupUserCountDTO = scanCountByGroup.get(bookGroupDTO.getId()); GroupUserCountDTO groupUserCountDTO = scanCountByGroup.get(bookGroupDTO.getId());
bookDataStatisticsDTO = new BookDataStatisticsDTO(); bookDataStatisticsDTO = new BookDataStatisticsDTO();
...@@ -1513,7 +1457,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1513,7 +1457,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
resultMap.put(bookDataStatisticsDTO.getBookChannelAdviserId(), bookDataStatisticsDTO); resultMap.put(bookDataStatisticsDTO.getBookChannelAdviserId(), bookDataStatisticsDTO);
} }
} }
// 综合 // 综合
for (BrowseCacheRecordDto browseCacheRecordDto : bookScanAndUv.values()) { for (BrowseCacheRecordDto browseCacheRecordDto : bookScanAndUv.values()) {
String bookChannelAdviserId = browseCacheRecordDto.getJournalId() + "_" + browseCacheRecordDto.getChannelId() + "_" + browseCacheRecordDto.getAdviserId(); String bookChannelAdviserId = browseCacheRecordDto.getJournalId() + "_" + browseCacheRecordDto.getChannelId() + "_" + browseCacheRecordDto.getAdviserId();
...@@ -1559,6 +1502,16 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1559,6 +1502,16 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
@Override @Override
public Integer getBookCountByAgentAndTime(Long agentId, String startTime, String endTime) {
List<Long> adviserIds = adviserConsr.getByAgentId(agentId);
Integer bookCount = 0;
if (!ListUtils.isEmpty(adviserIds)) {
bookCount = bookAdviserDao.getBookCountByTime(adviserIds, startTime, endTime);
}
return bookCount;
}
@Override
public Map<String, BookQrcodeStatisticsDTO> mapBookQrcodeStatistics(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds) { public Map<String, BookQrcodeStatisticsDTO> mapBookQrcodeStatistics(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds) {
Map<String, BookQrcodeStatisticsDTO> resultMap = new HashMap<>(); Map<String, BookQrcodeStatisticsDTO> resultMap = new HashMap<>();
BookQrcodeStatisticsDTO bookQrcodeStatisticsDTO; BookQrcodeStatisticsDTO bookQrcodeStatisticsDTO;
...@@ -1723,6 +1676,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1723,6 +1676,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
return new PageBeanNew(currentPage, numPerPage, qrcodeSceneDtoList.size(),qrcodeSceneDtoList.stream().skip(currentPage * numPerPage).limit(numPerPage).collect(Collectors.toList())); return new PageBeanNew(currentPage, numPerPage, qrcodeSceneDtoList.size(),qrcodeSceneDtoList.stream().skip(currentPage * numPerPage).limit(numPerPage).collect(Collectors.toList()));
} }
@Override @Override
public Map<String, Object> getRayBookCountAndRate(Boolean showRate) { public Map<String, Object> getRayBookCountAndRate(Boolean showRate) {
Map<String, Object> map = Maps.newHashMap(); Map<String, Object> map = Maps.newHashMap();
...@@ -1743,7 +1697,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1743,7 +1697,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
return map; return map;
} }
@Override @Override
public Integer getIsRui(Long adviserId, Long bookId, Long channelId) { public Integer getIsRui(Long adviserId, Long bookId, Long channelId) {
return bookAdviserDao.getIsRui(adviserId, bookId, channelId); return bookAdviserDao.getIsRui(adviserId, bookId, channelId);
...@@ -1772,8 +1725,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1772,8 +1725,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
return pageBeanNew; return pageBeanNew;
} }
@Override @Override
public Map<String, BookAdviserDto> getBookInfoByBookIds(List<Long> bookIds, List<Long> adviserIds, List<Long> channelIds) { public Map<String, BookAdviserDto> getBookInfoByBookIds(List<Long> bookIds, List<Long> adviserIds, List<Long> channelIds) {
if(CollectionUtils.isEmpty(bookIds) || CollectionUtils.isEmpty(adviserIds) || CollectionUtils.isEmpty(channelIds)){ if(CollectionUtils.isEmpty(bookIds) || CollectionUtils.isEmpty(adviserIds) || CollectionUtils.isEmpty(channelIds)){
return new HashMap<>(); return new HashMap<>();
} }
...@@ -1789,7 +1742,12 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1789,7 +1742,12 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
resultMap.put(bookAdviserChannelId, bookAdviserDto); resultMap.put(bookAdviserChannelId, bookAdviserDto);
} }
return resultMap; return resultMap;
}
@Override
public BookAdviserDto getBookByBookIdAdviserId(Long bookId, Long adviserId){
return bookAdviserDao.getBookByBookIdAdviserId(bookId,adviserId);
} }
@Override @Override
...@@ -1820,22 +1778,33 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1820,22 +1778,33 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
dtos.add(statsDTO); dtos.add(statsDTO);
} }
}); });
// 分析引擎获取非社群书统计结果 // 分析引擎获取非社群书统计结果
List<BookBrowseAndScanStatsDTO> browseAndScanStats = new ArrayList<>(); List<BookBrowseAndScanStatsDTO> browseAndScanStats = browseRecordConsr.getBookBrowseAndScanStats(dtos);
CompletableFuture<List<BookBrowseAndScanStatsDTO>> browseAndScanStatsFuture = CompletableFuture.supplyAsync(() -> browseRecordConsr.getBookBrowseAndScanStats(dtos));
// 微信群获取社群书统计结果 // 微信群获取社群书统计结果
List<GroupScanUserStatsDTO> bookGroupScanStats = new ArrayList<>(); List<GroupScanUserStatsDTO> bookGroupScanStats = wechatGroupConsr.getBookGroupScanStats(adviserIds);
CompletableFuture<List<GroupScanUserStatsDTO>> bookGroupScanStatsFuture = CompletableFuture.supplyAsync(() -> wechatGroupConsr.getBookGroupScanStats(adviserIds));
// 查询印册量 // 查询印册量
List<ERPPublishNumDTO> finalPublishNumDto = new ArrayList<>(); List<ERPPublishNumDTO> finalPublishNumDto = new ArrayList<>();
List<ERPPublishNumDTO> dataFromDB = bookAdviserDao.getErpPublishNumQueryParams(adviserIds); List<ERPPublishNumDTO> dataFromDB = bookAdviserDao.getErpPublishNumQueryParams(adviserIds);
CompletableFuture<List<ERPPublishNumDTO>> dataFromErpFuture = null;
if (CollUtil.isNotEmpty(dataFromDB)) { if (CollUtil.isNotEmpty(dataFromDB)) {
dataFromErpFuture = CompletableFuture.supplyAsync(() -> erpConsr.getBookExpectPublishNum(dataFromDB)); List<ERPPublishNumDTO> dataFromErp = erpConsr.getBookExpectPublishNum(dataFromDB);
// 根据ERP填充数据
finalPublishNumDto = dataFromErp.stream().map(
// 匹配 adviserId channelId bookId
erpData -> dataFromDB.stream().filter(
dbData -> Objects.equals(dbData.getAdviserId(), erpData.getAdviserId())
&& Objects.equals(dbData.getBookId(), erpData.getBookId())
&& Objects.equals(dbData.getChannelId(), erpData.getChannelId())
).findFirst().map(
// 填充印册量
dbData -> {
dbData.setExpectPublishNum(erpData.getExpectPublishNum());
return dbData;
}
).orElse(null)
).collect(Collectors.toList());
} }
// 组装数据 // 组装数据
...@@ -1857,22 +1826,17 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1857,22 +1826,17 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
setVarietyLastQuarter((int) collect.stream().filter(x -> getAgentQuarterDigital(x.getCreatedDate()) == getAgentLastQuarterDigital(new Date())).map(BookAdviserDto::getBookId).distinct().count()); setVarietyLastQuarter((int) collect.stream().filter(x -> getAgentQuarterDigital(x.getCreatedDate()) == getAgentLastQuarterDigital(new Date())).map(BookAdviserDto::getBookId).distinct().count());
} }
try { if (CollUtil.isNotEmpty(browseAndScanStats)){
browseAndScanStats = browseAndScanStatsFuture.get();
} catch (InterruptedException | ExecutionException e) {
LOGGER.error("分析引擎获取非社群书统计结果 失败,err:{}", e.getMessage(), e);
}
if (CollUtil.isNotEmpty(browseAndScanStats)) {
List<BookBrowseAndScanStatsDTO> scanStatsDTOS = browseAndScanStats.stream().filter(x -> map.get(agentId).contains(x.getAdviserId())).collect(Collectors.toList()); List<BookBrowseAndScanStatsDTO> scanStatsDTOS = browseAndScanStats.stream().filter(x -> map.get(agentId).contains(x.getAdviserId())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(scanStatsDTOS)) { if (CollUtil.isNotEmpty(scanStatsDTOS)) {
// 累计扫码量 // 累计扫码量
varietyStatsDto.setScanTotal(scanStatsDTOS.stream().filter(x -> Objects.nonNull(x.getBookScanTotal())).mapToInt(BookBrowseAndScanStatsDTO::getBookScanTotal).sum()); varietyStatsDto.setScanTotal(scanStatsDTOS.stream().filter(x->Objects.nonNull(x.getBookScanTotal())).mapToInt(BookBrowseAndScanStatsDTO::getBookScanTotal).sum());
// 累计扫码人数 // 累计扫码人数
varietyStatsDto.setScanUserTotal(scanStatsDTOS.stream().filter(x -> Objects.nonNull(x.getBookScanUserTotal())).mapToInt(BookBrowseAndScanStatsDTO::getBookScanUserTotal).sum()); varietyStatsDto.setScanUserTotal(scanStatsDTOS.stream().filter(x->Objects.nonNull(x.getBookScanUserTotal())).mapToInt(BookBrowseAndScanStatsDTO::getBookScanUserTotal).sum());
// 累计浏览量 // 累计浏览量
varietyStatsDto.setBrowseTotal(scanStatsDTOS.stream().filter(x -> Objects.nonNull(x.getBookBrowseTotal())).mapToInt(BookBrowseAndScanStatsDTO::getBookBrowseTotal).sum()); varietyStatsDto.setBrowseTotal(scanStatsDTOS.stream().filter(x->Objects.nonNull(x.getBookBrowseTotal())).mapToInt(BookBrowseAndScanStatsDTO::getBookBrowseTotal).sum());
// 累计浏览人数 // 累计浏览人数
varietyStatsDto.setBrowseUserTotal(scanStatsDTOS.stream().filter(x -> Objects.nonNull(x.getBookBrowseUserTotal())).mapToInt(BookBrowseAndScanStatsDTO::getBookBrowseUserTotal).sum()); varietyStatsDto.setBrowseUserTotal(scanStatsDTOS.stream().filter(x->Objects.nonNull(x.getBookBrowseUserTotal())).mapToInt(BookBrowseAndScanStatsDTO::getBookBrowseUserTotal).sum());
// 筛选本季度数据 // 筛选本季度数据
...@@ -1880,7 +1844,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1880,7 +1844,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
x -> Objects.nonNull(x.getBookScanTotal()) && StrUtil.isNotBlank(x.getDateStr()) x -> Objects.nonNull(x.getBookScanTotal()) && StrUtil.isNotBlank(x.getDateStr())
&& getAgentQuarterDigital(DateUtil.parse(x.getDateStr(), "yyyyMM").toJdkDate()) == getAgentQuarterDigital(new Date()) && getAgentQuarterDigital(DateUtil.parse(x.getDateStr(), "yyyyMM").toJdkDate()) == getAgentQuarterDigital(new Date())
).collect(Collectors.toList()); ).collect(Collectors.toList());
if (CollUtil.isNotEmpty(thisQuarterCollect)) { if (CollUtil.isNotEmpty(thisQuarterCollect)){
// 本季度扫码量 // 本季度扫码量
varietyStatsDto.setScanThisQuarter(thisQuarterCollect.stream().mapToInt(BookBrowseAndScanStatsDTO::getBookScanTotal).sum()); varietyStatsDto.setScanThisQuarter(thisQuarterCollect.stream().mapToInt(BookBrowseAndScanStatsDTO::getBookScanTotal).sum());
// 本季度扫码人数 // 本季度扫码人数
...@@ -1897,7 +1861,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1897,7 +1861,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
x -> Objects.nonNull(x.getBookScanTotal()) && StrUtil.isNotBlank(x.getDateStr()) x -> Objects.nonNull(x.getBookScanTotal()) && StrUtil.isNotBlank(x.getDateStr())
&& getAgentQuarterDigital(DateUtil.parse(x.getDateStr(), "yyyyMM").toJdkDate()) == getAgentLastQuarterDigital(new Date()) && getAgentQuarterDigital(DateUtil.parse(x.getDateStr(), "yyyyMM").toJdkDate()) == getAgentLastQuarterDigital(new Date())
).collect(Collectors.toList()); ).collect(Collectors.toList());
if (CollUtil.isNotEmpty(lastQuarterCollect)) { if (CollUtil.isNotEmpty(lastQuarterCollect)){
// 上季度扫码量 // 上季度扫码量
varietyStatsDto.setScanLastQuarter(lastQuarterCollect.stream().mapToInt(BookBrowseAndScanStatsDTO::getBookScanTotal).sum()); varietyStatsDto.setScanLastQuarter(lastQuarterCollect.stream().mapToInt(BookBrowseAndScanStatsDTO::getBookScanTotal).sum());
// 上季度扫码人数 // 上季度扫码人数
...@@ -1910,11 +1874,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1910,11 +1874,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
} }
try {
bookGroupScanStats = bookGroupScanStatsFuture.get();
} catch (InterruptedException | ExecutionException e) {
LOGGER.error("微信群获取社群书统计结果 失败,err:{}", e.getMessage(), e);
}
if (CollUtil.isNotEmpty(bookGroupScanStats)) { if (CollUtil.isNotEmpty(bookGroupScanStats)) {
List<GroupScanUserStatsDTO> statsDTOS = bookGroupScanStats.stream().filter(x -> map.get(agentId).contains(x.getAdviserId())).collect(Collectors.toList()); List<GroupScanUserStatsDTO> statsDTOS = bookGroupScanStats.stream().filter(x -> map.get(agentId).contains(x.getAdviserId())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(statsDTOS)) { if (CollUtil.isNotEmpty(statsDTOS)) {
...@@ -1974,31 +1933,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1974,31 +1933,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
} }
if (CollUtil.isNotEmpty(dataFromDB) && Objects.nonNull(dataFromErpFuture)) {
List<ERPPublishNumDTO> dataFromErp = new ArrayList<>();
try {
dataFromErp = dataFromErpFuture.get();
} catch (InterruptedException | ExecutionException e) {
LOGGER.error("获取ERP图书统计信息失败,err:{}", e.getMessage(), e);
}
if (CollUtil.isNotEmpty(dataFromErp)) {
// 根据ERP填充数据
finalPublishNumDto = dataFromErp.stream().map(
// 匹配 adviserId channelId bookId
erpData -> dataFromDB.stream().filter(
dbData -> Objects.equals(dbData.getAdviserId(), erpData.getAdviserId())
&& Objects.equals(dbData.getBookId(), erpData.getBookId())
&& Objects.equals(dbData.getChannelId(), erpData.getChannelId())
).findFirst().map(
// 填充印册量
dbData -> {
dbData.setExpectPublishNum(erpData.getExpectPublishNum());
return dbData;
}
).orElse(null)
).collect(Collectors.toList());
}
}
// 统计印册量 // 统计印册量
if (CollUtil.isNotEmpty(finalPublishNumDto)) { if (CollUtil.isNotEmpty(finalPublishNumDto)) {
...@@ -2027,17 +1962,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -2027,17 +1962,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
public PageBeanNew<AgentBookStatsDetailVO> getAgentBookStatsDetail(Long agentId, String name, Date startDate, Date endDate, public PageBeanNew<AgentBookStatsDetailVO> getAgentBookStatsDetail(Long agentId, String name, Date startDate, Date endDate,
Integer isRay, Integer currentPage, Integer numPerPage) { Integer isRay, Integer currentPage, Integer numPerPage) {
String cacheKey = String.format("%s_AGENT_BOOK_STATS_DETAIL_%s:%s:%s:%s:%s:%s:%s", CacheConstant.BOOK, agentId, name, startDate, endDate, isRay, currentPage, numPerPage); String cacheKey = String.format("%s_AGENT_BOOK_STATS_DETAIL_%s:%s:%s:%s:%s:%s:%s", CacheConstant.BOOK, agentId, name, startDate, endDate, isRay, currentPage, numPerPage);
synchronized (this){
// 测试环境 2s内点击3次 清除缓存
Long incr = JedisClusterUtils.incr("CLICK_COUNT:" + cacheKey);
if (incr==1){
JedisClusterUtils.expire("CLICK_COUNT:" + cacheKey,2);
}else if (incr>2){
JedisClusterUtils.del("CLICK_COUNT:" + cacheKey);
JedisClusterUtils.del(cacheKey);
}
}
String cache = JedisClusterUtils.get(cacheKey); String cache = JedisClusterUtils.get(cacheKey);
if (StrUtil.isNotBlank(cache)){ if (StrUtil.isNotBlank(cache)){
PageBeanNew<AgentBookStatsDetailVO> pageBeanNew = JSONObject.parseObject(cache, new TypeReference<PageBeanNew<AgentBookStatsDetailVO>>() {}); PageBeanNew<AgentBookStatsDetailVO> pageBeanNew = JSONObject.parseObject(cache, new TypeReference<PageBeanNew<AgentBookStatsDetailVO>>() {});
...@@ -2345,12 +2269,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -2345,12 +2269,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
return getAgentQuarterDigital(DateUtil.offsetMonth(date,-3)); return getAgentQuarterDigital(DateUtil.offsetMonth(date,-3));
} }
@Override
public BookAdviserDto getBookByBookIdAdviserId(Long bookId, Long adviserId){
return bookAdviserDao.getBookByBookIdAdviserId(bookId,adviserId);
}
@Override @Override
public List<BookServeDTO> getAnswerServesByBook(Long bookId, Long adviserId, Long channelId) { public List<BookServeDTO> getAnswerServesByBook(Long bookId, Long adviserId, Long channelId) {
List<BookServeDTO> answerList = new ArrayList<>(); List<BookServeDTO> answerList = new ArrayList<>();
...@@ -2455,31 +2373,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -2455,31 +2373,6 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
return bookAdviserDao.getLatestAdviserBookByIsbn(isbn); return bookAdviserDao.getLatestAdviserBookByIsbn(isbn);
} }
@Override
public List<BookAdviser> getRightBook(List appIds) {
if (CollUtil.isEmpty(appIds)) return new ArrayList<>();
return bookAdviserDao.getRightBook(appIds);
}
@Override
public void selectAppBookExport(List<AppBookRequestDTO> appBookRequestDTOS) {
//erp查询立项书
//查询AppId
//查询公众号下配置应用的书
//查询社群码下配置应用的书
//查询权益下配置应用的书
//查询RAYS体验社下的编辑ID
return;
}
private void setBookInfo4Erp(List<ErpAdviserBookVO> bookVOS) { private void setBookInfo4Erp(List<ErpAdviserBookVO> bookVOS) {
List<Long> adviserIds = bookVOS.stream().filter(s -> s.getAdviserId() != null).map(ErpAdviserBookVO::getAdviserId).distinct().collect(Collectors.toList()); List<Long> adviserIds = bookVOS.stream().filter(s -> s.getAdviserId() != null).map(ErpAdviserBookVO::getAdviserId).distinct().collect(Collectors.toList());
List<Long> channelIds = bookVOS.stream().filter(s -> s.getChannelId() != null).map(ErpAdviserBookVO::getChannelId).distinct().collect(Collectors.toList()); List<Long> channelIds = bookVOS.stream().filter(s -> s.getChannelId() != null).map(ErpAdviserBookVO::getChannelId).distinct().collect(Collectors.toList());
...@@ -2530,7 +2423,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -2530,7 +2423,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
if(CollUtil.isEmpty(bookServesListDTOS)) return new BookServeInfo(); if(CollUtil.isEmpty(bookServesListDTOS)) return new BookServeInfo();
Long maxId = bookServesListDTOS.stream().filter(Objects::nonNull).map(BookServesListDTO::getBookAdviserId).max(Long::compareTo).orElse(0L); Long maxId = bookServesListDTOS.stream().filter(Objects::nonNull).map(BookServesListDTO::getBookAdviserId).max(Long::compareTo).orElse(0L);
String key = UUID.randomUUID().toString(); String key = UUID.randomUUID().toString();
JedisClusterUtils.set(key,String.valueOf(maxId)); JedisClusterUtils.set(key,String.valueOf(maxId), 2 * 60 * 60);
BookServeInfo bookServeInfo = new BookServeInfo(); BookServeInfo bookServeInfo = new BookServeInfo();
bookServeInfo.setCursor(key); bookServeInfo.setCursor(key);
...@@ -2691,72 +2584,4 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -2691,72 +2584,4 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
return list; return list;
} }
@Override
@ParamLog("根据agentId获取书籍id")
public void getBookIdsByAgentId(Long agentId) {
if (null == agentId) {
return;
}
List<Long> adviserIds = adviserConsr.getByAgentId(agentId);
if (ListUtils.isEmpty(adviserIds)) {
return;
}
String key = CacheConstant.BOOK + "BOOKIDS4AGENT:" + agentId;
//为空的话从数据库查询并缓存5分钟
if (StringUtil.isEmpty(JedisClusterUtils.get(key))) {
List<ERPPublishNumDTO> erpPublishNumQueryParams = bookAdviserDao.getErpPublishNumQueryParams(adviserIds);
if (ListUtils.isEmpty(erpPublishNumQueryParams)) {
return;
}
Integer expireTime = 60 * 5;
JedisClusterUtils.setJsonList(key, erpPublishNumQueryParams, expireTime);
}
}
@Override
public List<Long> getBooksByAgentToken(Long agentId, int index) {
if (null == agentId) {
return new ArrayList<>();
}
List<Long> result = new ArrayList<>();
String key = CacheConstant.BOOK + "BOOKIDS4AGENT:" + agentId;
if (StringUtil.isEmpty(JedisClusterUtils.get(key))) {
List<Long> adviserIds = adviserConsr.getByAgentId(agentId);
List<ERPPublishNumDTO> erpPublishNumQueryParams = bookAdviserDao.getErpPublishNumQueryParams(adviserIds);
if (ListUtils.isEmpty(erpPublishNumQueryParams)) {
return new ArrayList<>();
}
Integer expireTime = 60 * 5;
JedisClusterUtils.setJsonList(key, erpPublishNumQueryParams, expireTime);
}else{
List<ERPPublishNumDTO> bookList = JedisClusterUtils.getJsonList(key, ERPPublishNumDTO.class);
List<ERPPublishNumDTO> booksByIndex = getBooksByIndex(index, bookList);
for (ERPPublishNumDTO erpPublishNumDTO : booksByIndex) {
result.add(erpPublishNumDTO.getBookId());
}
}
return result;
}
private static List<ERPPublishNumDTO>getBooksByIndex(int index,List<ERPPublishNumDTO>source){
if(source==null){
return new ArrayList<>();
}
List<ERPPublishNumDTO> result = new ArrayList<>();
if((index-1)*500>source.size()){
return result;
}else{
for(int i=index*500;i<(index+1)*500;i++){
if(source.size()>=i) {
result.add(source.get(i));
}else {
break;
}
}
}
return result;
}
} }
package com.pcloud.book.book.vo; package com.pcloud.book.book.vo;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -29,7 +27,4 @@ public class QrCodeVO { ...@@ -29,7 +27,4 @@ public class QrCodeVO {
@ApiModelProperty("公众号码id") @ApiModelProperty("公众号码id")
private Long sceneId; private Long sceneId;
@ApiModelProperty("销售额")
private BigDecimal saleMoney;
} }
...@@ -278,38 +278,4 @@ public class TradeConsr { ...@@ -278,38 +278,4 @@ public class TradeConsr {
} }
return new ArrayList<>(); return new ArrayList<>();
} }
/**
* 获取rays码销售额
* @param bookGroupIds
* @return
*/
public Map<Long, BigDecimal> getGroupListSaleInfo(List<Long> bookGroupIds) {
if (CollUtil.isEmpty(bookGroupIds)) {
return new HashMap<>();
}
try {
return ResponseHandleUtil.parseMap(orderFormService.getGroupListSaleInfo(bookGroupIds), Long.class,BigDecimal.class);
} catch (Exception e) {
LOGGER.error("查询rays码销售额失败.[getGroupListSaleInfo]:{}", e.getMessage(), e);
}
return new HashMap<>();
}
/**
* 获取二维码销售额
* @param sceneIds
* @return
*/
public Map<Long, BigDecimal> getSceneListSaleInfo(List<Long> sceneIds) {
if (CollUtil.isEmpty(sceneIds)) {
return new HashMap<>();
}
try {
return ResponseHandleUtil.parseMap(orderFormService.getSceneListSaleInfo(sceneIds), Long.class,BigDecimal.class);
} catch (Exception e) {
LOGGER.error("查询二维码销售额失败.[getSceneListSaleInfo]:{}", e.getMessage(), e);
}
return new HashMap<>();
}
} }
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