|
@@ -228,10 +228,13 @@ public class RecallService implements ApplicationContextAware {
|
|
|
Collectors.groupingBy(Article::getGhId, Collectors.toMap(Article::getAppMsgId, o -> o)));
|
|
|
// 获取发布账号 位置历史均值
|
|
|
List<AccountAvgInfo> accountAvgInfoList = accountAvgInfoRepository.getAllByGhIdIn(ghIds);
|
|
|
- Map<String, Map<String, Map<String, AccountAvgInfo>>> accountAvgInfoIndexMap = accountAvgInfoList.stream().collect(
|
|
|
- Collectors.groupingBy(AccountAvgInfo::getUpdateTime, Collectors.groupingBy(AccountAvgInfo::getGhId,
|
|
|
+ Map<String, Map<String, Map<String, AccountAvgInfo>>> accountAvgInfoIndexMap = accountAvgInfoList.stream()
|
|
|
+ .filter(o -> Objects.nonNull(o.getReadAvg()) && o.getReadAvg() > 0 && o.getFans() > 1000)
|
|
|
+ .collect(Collectors.groupingBy(AccountAvgInfo::getGhId, Collectors.groupingBy(AccountAvgInfo::getUpdateTime,
|
|
|
Collectors.toMap(AccountAvgInfo::getPosition, o -> o))));
|
|
|
- Map<String, Map<String, AccountAvgInfo>> firstIndexAvgInfoMap = accountAvgInfoList.stream().filter(o -> "1".equals(o.getPosition()))
|
|
|
+ Map<String, Map<String, AccountAvgInfo>> firstIndexAvgInfoMap = accountAvgInfoList.stream()
|
|
|
+ .filter(o -> "1".equals(o.getPosition()))
|
|
|
+ .filter(o -> Objects.nonNull(o.getReadAvg()) && o.getReadAvg() > 0 && o.getFans() > 1000)
|
|
|
.collect(Collectors.groupingBy(AccountAvgInfo::getGhId, Collectors.toMap(AccountAvgInfo::getUpdateTime, o -> o)));
|
|
|
for (Content content : contentList) {
|
|
|
List<Article> hisArticles = new ArrayList<>();
|
|
@@ -266,15 +269,17 @@ public class RecallService implements ApplicationContextAware {
|
|
|
article.setArticleDetailInfoList(articleDetailInfoMap.get(hisArticle.getWxSn()));
|
|
|
// 设置账号位置阅读均值
|
|
|
int avgViewCount = 0;
|
|
|
+ Map<String, Map<String, AccountAvgInfo>> dateAvgMap = accountAvgInfoIndexMap.get(hisArticle.getGhId());
|
|
|
String hisPublishDate = DateUtils.timestampToYMDStr(article.getUpdateTime(), "yyyy-MM-dd");
|
|
|
- List<String> avgMapDateList = new ArrayList<>(accountAvgInfoIndexMap.keySet());
|
|
|
- hisPublishDate = DateUtils.findNearestDate(avgMapDateList, hisPublishDate, "yyyy-MM-dd");
|
|
|
- Map<String, Map<String, AccountAvgInfo>> dateAvgMap = accountAvgInfoIndexMap.get(hisPublishDate);
|
|
|
- Map<String, AccountAvgInfo> indexMap = dateAvgMap.get(hisArticle.getGhId());
|
|
|
- if (Objects.nonNull(indexMap) && indexMap.containsKey(hisArticle.getItemIndex().toString())) {
|
|
|
- article.setInnerAccount(true);
|
|
|
- avgViewCount = Optional.ofNullable(indexMap.get(hisArticle.getItemIndex().toString()).getReadAvg())
|
|
|
- .orElse(0.0).intValue();
|
|
|
+ if (Objects.nonNull(dateAvgMap)) {
|
|
|
+ List<String> avgMapDateList = new ArrayList<>(dateAvgMap.keySet());
|
|
|
+ hisPublishDate = DateUtils.findNearestDate(avgMapDateList, hisPublishDate, "yyyy-MM-dd");
|
|
|
+ Map<String, AccountAvgInfo> indexMap = dateAvgMap.get(hisPublishDate);
|
|
|
+ if (Objects.nonNull(indexMap) && indexMap.containsKey(hisArticle.getItemIndex().toString())) {
|
|
|
+ article.setInnerAccount(true);
|
|
|
+ avgViewCount = Optional.ofNullable(indexMap.get(hisArticle.getItemIndex().toString()).getReadAvg())
|
|
|
+ .orElse(0.0).intValue();
|
|
|
+ }
|
|
|
}
|
|
|
article.setAvgViewCount(avgViewCount);
|
|
|
if (Objects.nonNull(article.getAvgViewCount()) && article.getAvgViewCount() > 0
|