Commit 90f59724 by 田超

Merge branch 'feature/1005266' into 'master'

feat: [1005266] 修复出版社首页流量统计报错

See merge request rays/pcloud-book!1382
parents 6c1ed044 60ed35ba
...@@ -130,6 +130,7 @@ import com.pcloud.resourcecenter.product.dto.ProductLabelDto; ...@@ -130,6 +130,7 @@ import com.pcloud.resourcecenter.product.dto.ProductLabelDto;
import com.pcloud.resourcecenter.product.dto.ProductTypeDto; import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto; import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.usercenter.user.entity.UserLogin; import com.pcloud.usercenter.user.entity.UserLogin;
import com.pcloud.wechatgroup.group.dto.BookGroupScanStatisticsDTO;
import com.pcloud.wechatgroup.group.dto.GroupScanUserStatsDTO; import com.pcloud.wechatgroup.group.dto.GroupScanUserStatsDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserCountDTO; import com.pcloud.wechatgroup.group.dto.GroupUserCountDTO;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
...@@ -2018,9 +2019,27 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -2018,9 +2019,27 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
}); });
// 分析引擎获取非社群书统计结果 // 分析引擎获取非社群书统计结果
List<BookBrowseAndScanStatsDTO> browseAndScanStats = browseRecordConsr.getBookBrowseAndScanStats(dtos); List<BookBrowseAndScanStatsDTO> browseAndScanStats = browseRecordConsr.getBookBrowseAndScanStats(dtos);
Integer maxCount = 100;
Integer pageCount = 0;
List<GroupScanUserStatsDTO> bookGroupScanStats = new ArrayList<>();
// 微信群获取社群书统计结果 // 微信群获取社群书统计结果
List<GroupScanUserStatsDTO> bookGroupScanStats = wechatGroupConsr.getBookGroupScanStats(adviserIds); if (adviserIds.size() > maxCount) {
//超过500, 则分批查询
while (true) {
Integer endCount = maxCount * (pageCount + 1);
List<Long> subList = adviserIds.subList(pageCount * maxCount, adviserIds.size() < endCount ? adviserIds.size() : endCount);
List<GroupScanUserStatsDTO> subBookGroupScanStats = wechatGroupConsr.getBookGroupScanStats(subList);
if (!ListUtils.isEmpty(subBookGroupScanStats)) {
bookGroupScanStats.addAll(subBookGroupScanStats);
}
if (subList.size() < maxCount){
break;
}
pageCount++;
}
} else {
bookGroupScanStats = wechatGroupConsr.getBookGroupScanStats(adviserIds);
}
// 查询印册量 // 查询印册量
List<ERPPublishNumDTO> finalPublishNumDto = new ArrayList<>(); List<ERPPublishNumDTO> finalPublishNumDto = new ArrayList<>();
......
...@@ -6807,14 +6807,32 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -6807,14 +6807,32 @@ public class BookGroupBizImpl implements BookGroupBiz {
List<Long> bookGroupIds = bookGroupDTOS.stream().filter(Objects::nonNull).map(BookGroupDTO::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); List<Long> bookGroupIds = bookGroupDTOS.stream().filter(Objects::nonNull).map(BookGroupDTO::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
if (CollUtil.isEmpty(bookGroupIds)) return new ArrayList<>(); if (CollUtil.isEmpty(bookGroupIds)) return new ArrayList<>();
Integer maxCount = 500;
Integer pageCount = 0;
List<BookGroupScanStatisticsDTO> bookGroupScanStatistics = new ArrayList<>();
BookGroupScanStatisticsReqDTO bookGroupScanStatisticsReqDTO = new BookGroupScanStatisticsReqDTO(); BookGroupScanStatisticsReqDTO bookGroupScanStatisticsReqDTO = new BookGroupScanStatisticsReqDTO();
bookGroupScanStatisticsReqDTO.setBookGroupIds(bookGroupIds);
bookGroupScanStatisticsReqDTO.setStart(reqDTO.getStart()); bookGroupScanStatisticsReqDTO.setStart(reqDTO.getStart());
bookGroupScanStatisticsReqDTO.setEnd(reqDTO.getEnd()); bookGroupScanStatisticsReqDTO.setEnd(reqDTO.getEnd());
List<BookGroupScanStatisticsDTO> bookGroupScanStatistics = wechatGroupConsr.getBookGroupScanStatistics(bookGroupScanStatisticsReqDTO); if (bookGroupIds.size() > maxCount) {
//超过500, 则分批查询
while (true) {
Integer endCount = maxCount * (pageCount + 1);
List<Long> subList = bookGroupIds.subList(pageCount * maxCount, bookGroupIds.size() < endCount ? bookGroupIds.size() : endCount);
bookGroupScanStatisticsReqDTO.setBookGroupIds(subList);
List<BookGroupScanStatisticsDTO> subBookGroupScanStatistics = wechatGroupConsr.getBookGroupScanStatistics(bookGroupScanStatisticsReqDTO);
if (!ListUtils.isEmpty(subBookGroupScanStatistics)) {
bookGroupScanStatistics.addAll(subBookGroupScanStatistics);
}
if (subList.size() < maxCount){
break;
}
pageCount++;
}
} else {
bookGroupScanStatisticsReqDTO.setBookGroupIds(bookGroupIds);
bookGroupScanStatistics = wechatGroupConsr.getBookGroupScanStatistics(bookGroupScanStatisticsReqDTO);
}
if (CollUtil.isEmpty(bookGroupScanStatistics)) return new ArrayList<>(); if (CollUtil.isEmpty(bookGroupScanStatistics)) return new ArrayList<>();
Map<Long, BookGroupScanStatisticsDTO> statisticsDTOMap = bookGroupScanStatistics.stream().filter(x -> Map<Long, BookGroupScanStatisticsDTO> statisticsDTOMap = bookGroupScanStatistics.stream().filter(x ->
ObjectUtil.isAllNotEmpty(x, x.getBookGroupId())).collect(Collectors.toMap(BookGroupScanStatisticsDTO::getBookGroupId, Function.identity())); ObjectUtil.isAllNotEmpty(x, x.getBookGroupId())).collect(Collectors.toMap(BookGroupScanStatisticsDTO::getBookGroupId, Function.identity()));
......
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