|
@@ -184,7 +184,7 @@ public class FlowPoolService {
|
|
|
List<FlowPoolVideoInfo> allDouHotVideo = this.findAllDouHotVideoFromFlowPool();
|
|
|
log.info("[DouHot video size]: {}", allDouHotVideo.size());
|
|
|
|
|
|
- // 获取视频对应的可分发数量
|
|
|
+ // 获取视频对应的可分发数量, videoId-flowpool -> viewCnt
|
|
|
Map<String, Integer> videoAndDistributeCountMap = this.findDouHotVideoDistributeCount(allDouHotVideo);
|
|
|
log.info("[DouHot view distribute count size]: {}", videoAndDistributeCountMap.size());
|
|
|
|
|
@@ -198,15 +198,18 @@ public class FlowPoolService {
|
|
|
|
|
|
Map<String, List<FlowPoolVideoInfo>> provinceAndVideoListMap = new HashMap<>(allVideoAndProvinceMap.size());
|
|
|
|
|
|
- // 获取省份与对应视频的映射
|
|
|
+ // 获取省份与对应视频的映射, 省份 -> [视频信息列表]
|
|
|
Map<Long, List<FlowPoolVideoInfo>> videoIdList = allDouHotVideo.stream()
|
|
|
.collect(Collectors.groupingBy(FlowPoolVideoInfo::getVideoId));
|
|
|
+
|
|
|
for (Map.Entry<Long, Map<String, Double>> entry : allVideoAndProvinceMap.entrySet()) {
|
|
|
Long videoId = entry.getKey();
|
|
|
Set<String> provinceList = entry.getValue().keySet();
|
|
|
for (String province : provinceList) {
|
|
|
- List<FlowPoolVideoInfo> flowPoolVideoInfos = provinceAndVideoListMap.computeIfAbsent(province, s -> new ArrayList<>());
|
|
|
- flowPoolVideoInfos.addAll(videoIdList.get(videoId));
|
|
|
+ if (videoIdList.containsKey(videoId)) {
|
|
|
+ List<FlowPoolVideoInfo> flowPoolVideoInfos = provinceAndVideoListMap.computeIfAbsent(province, s -> new ArrayList<>());
|
|
|
+ flowPoolVideoInfos.addAll(videoIdList.get(videoId));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
provinceAndVideoListMap.forEach((key, value) -> log.info("[DouHot province video size]: province: {}, video size: {}", key, value.size()));
|
|
@@ -289,7 +292,7 @@ public class FlowPoolService {
|
|
|
|
|
|
private List<FlowPoolVideoInfo> findAllDouHotVideoFromFlowPool() {
|
|
|
List<FlowPoolVideoInfo> result = new ArrayList<>();
|
|
|
- int pageNum = 0;
|
|
|
+ int pageNum = 1;
|
|
|
while (true) {
|
|
|
JSONObject paramJson = new JSONObject();
|
|
|
paramJson.put("flowPoolId", douHotFlowPoolId);
|