|
@@ -278,74 +278,17 @@ public class DataDashboardService {
|
|
|
// result
|
|
|
List<NewSortStrategyExport> result = new ArrayList<>();
|
|
|
for (Article article : articleList) {
|
|
|
+ NewSortStrategyExport obj = new NewSortStrategyExport();
|
|
|
List<ArticleDetailInfo> articleDetailInfos = articleDetailInfoMap.get(article.getWxSn());
|
|
|
- if (CollectionUtils.isEmpty(articleDetailInfos)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
+ setObjArticleDetailInfo(article, obj, articleDetailInfos);
|
|
|
Article firstArticle = articleMap.get(article.getGhId()).get(article.getAppMsgId()).get(1);
|
|
|
Map<String, String> dateStrategy = sortStrategyMap.get(article.getGhId());
|
|
|
- Date minDate = articleDetailInfos.stream().map(ArticleDetailInfo::getRecallDt).min(Date::compareTo).orElse(new Date());
|
|
|
- Date secondDate = articleDetailInfos.stream().map(ArticleDetailInfo::getRecallDt).filter(o -> o.after(minDate)).min(Date::compareTo).orElse(new Date());
|
|
|
- Date thirdDate = articleDetailInfos.stream().map(ArticleDetailInfo::getRecallDt).filter(o -> o.after(secondDate)).min(Date::compareTo).orElse(new Date());
|
|
|
- int sumFirstLevel = 0;
|
|
|
- int sumFission0 = 0;
|
|
|
- int sumFission1 = 0;
|
|
|
- int sumFission2 = 0;
|
|
|
- int sumSecondFirstLevel = 0;
|
|
|
- int sumSecondFission0 = 0;
|
|
|
- int sumSecondFission1 = 0;
|
|
|
- int sumSecondFission2 = 0;
|
|
|
- int sumThirdFirstLevel = 0;
|
|
|
- int sumThirdFission0 = 0;
|
|
|
- int sumThirdFission1 = 0;
|
|
|
- int sumThirdFission2 = 0;
|
|
|
- for (ArticleDetailInfo articleDetailInfo : articleDetailInfos) {
|
|
|
- if (articleDetailInfo.getRecallDt().equals(minDate)) {
|
|
|
- sumFirstLevel += Optional.ofNullable(articleDetailInfo.getFirstLevel()).orElse(0);
|
|
|
- sumFission0 += Optional.ofNullable(articleDetailInfo.getFission0()).orElse(0);
|
|
|
- sumFission1 += Optional.ofNullable(articleDetailInfo.getFission1()).orElse(0);
|
|
|
- sumFission2 += Optional.ofNullable(articleDetailInfo.getFission2()).orElse(0);
|
|
|
- }
|
|
|
- if (articleDetailInfo.getRecallDt().equals(secondDate)) {
|
|
|
- sumSecondFirstLevel += Optional.ofNullable(articleDetailInfo.getFirstLevel()).orElse(0);
|
|
|
- sumSecondFission0 += Optional.ofNullable(articleDetailInfo.getFission0()).orElse(0);
|
|
|
- sumSecondFission1 += Optional.ofNullable(articleDetailInfo.getFission1()).orElse(0);
|
|
|
- sumSecondFission2 += Optional.ofNullable(articleDetailInfo.getFission2()).orElse(0);
|
|
|
- }
|
|
|
- if (articleDetailInfo.getRecallDt().equals(thirdDate)) {
|
|
|
- sumThirdFirstLevel += Optional.ofNullable(articleDetailInfo.getFirstLevel()).orElse(0);
|
|
|
- sumThirdFission0 += Optional.ofNullable(articleDetailInfo.getFission0()).orElse(0);
|
|
|
- sumThirdFission1 += Optional.ofNullable(articleDetailInfo.getFission1()).orElse(0);
|
|
|
- sumThirdFission2 += Optional.ofNullable(articleDetailInfo.getFission2()).orElse(0);
|
|
|
- }
|
|
|
- }
|
|
|
AccountAvgInfo avgInfo = getAccountAvgInfo(accountAvgInfoIndexMap, article.getGhId(),
|
|
|
article.getUpdateTime(), article.getItemIndex());
|
|
|
AccountAvgInfo firstAvgInfo = getAccountAvgInfo(accountAvgInfoIndexMap, article.getGhId(),
|
|
|
article.getUpdateTime(), 1);
|
|
|
String date = DateUtils.timestampToYMDStr(article.getUpdateTime(), "yyyyMMdd");
|
|
|
- NewSortStrategyExport obj = new NewSortStrategyExport();
|
|
|
- obj.setGhId(article.getGhId());
|
|
|
- obj.setAccountName(article.getAccountName());
|
|
|
- obj.setTitle(article.getTitle());
|
|
|
- obj.setLink(article.getContentUrl());
|
|
|
- obj.setPosition(article.getItemIndex());
|
|
|
- obj.setViewCount(article.getShowViewCount());
|
|
|
- obj.setDateStr(date);
|
|
|
- obj.setPublishTime(DateUtils.timestampToYMDStr(article.getUpdateTime(), "HH:mm:ss"));
|
|
|
- obj.setFirstLevel(sumFirstLevel);
|
|
|
- obj.setFission0(sumFission0);
|
|
|
- obj.setFission1(sumFission1);
|
|
|
- obj.setFission2(sumFission2);
|
|
|
- obj.setSecondFirstLevel(sumSecondFirstLevel);
|
|
|
- obj.setSecondFission0(sumSecondFission0);
|
|
|
- obj.setSecondFission1(sumSecondFission1);
|
|
|
- obj.setSecondFission2(sumSecondFission2);
|
|
|
- obj.setThirdFirstLevel(sumThirdFirstLevel);
|
|
|
- obj.setThirdFission0(sumThirdFission0);
|
|
|
- obj.setThirdFission1(sumThirdFission1);
|
|
|
- obj.setThirdFission2(sumThirdFission2);
|
|
|
- obj.setWxSn(article.getWxSn());
|
|
|
+ setObjBaseInfo(article, obj, date);
|
|
|
if (Objects.nonNull(firstArticle)) {
|
|
|
obj.setFirstViewCount(firstArticle.getShowViewCount());
|
|
|
}
|
|
@@ -355,34 +298,8 @@ public class DataDashboardService {
|
|
|
if (Objects.nonNull(dateStrategy)) {
|
|
|
obj.setStrategy(dateStrategy.get(date));
|
|
|
}
|
|
|
- if (Objects.nonNull(avgInfo)) {
|
|
|
- obj.setAccountMode(avgInfo.getAccountMode());
|
|
|
- obj.setAccountSource(avgInfo.getAccountSource());
|
|
|
- obj.setAccountType(avgInfo.getAccountType());
|
|
|
- obj.setAccountStatus(avgInfo.getAccountStatus());
|
|
|
- obj.setBusinessType(AccountBusinessTypeEnum.from(avgInfo.getBusinessType()).getDescription());
|
|
|
- obj.setFans(avgInfo.getFans());
|
|
|
- obj.setAvgViewCount(avgInfo.getReadAvg());
|
|
|
- if (avgInfo.getReadAvg() > 0) {
|
|
|
- obj.setReadRate((article.getShowViewCount() * 1.0) / avgInfo.getReadAvg());
|
|
|
- obj.setFission0ReadAvgRate((sumFission0 * 1.0) / avgInfo.getReadAvg());
|
|
|
- obj.setFission0ReadAvg100Rate((sumFission0 * 1.0) / (avgInfo.getReadAvg() + 100));
|
|
|
- obj.setFission0ReadAvg500Rate((sumFission0 * 1.0) / (avgInfo.getReadAvg() + 500));
|
|
|
- obj.setFission0ReadAvg1000Rate((sumFission0 * 1.0) / (avgInfo.getReadAvg() + 1000));
|
|
|
- }
|
|
|
- if (avgInfo.getFans() > 0) {
|
|
|
- obj.setReadFansRate((article.getShowViewCount() * 1.0) / avgInfo.getFans());
|
|
|
- }
|
|
|
- }
|
|
|
- if (sumFirstLevel > 0) {
|
|
|
- obj.setFission0FirstRate((sumFission0 * 1.0) / sumFirstLevel);
|
|
|
- }
|
|
|
- if (article.getShowViewCount() > 0) {
|
|
|
- obj.setFirstReadRate((sumFirstLevel * 1.0) / article.getShowViewCount());
|
|
|
- }
|
|
|
- if (sumFission0 > 0) {
|
|
|
- obj.setFission1Fission0Rate((sumFission1 * 1.0) / sumFission0);
|
|
|
- }
|
|
|
+ setObjAvgInfo(article, obj, avgInfo);
|
|
|
+ setObjHisRateInfo(article, obj, hisArticleMap, accountAvgInfoIndexMap, hisArticleDetailInfoMap);
|
|
|
result.add(obj);
|
|
|
// aigc 数据
|
|
|
PublishAccount publishAccount = publishAccountMap.get(article.getGhId());
|
|
@@ -459,45 +376,6 @@ public class DataDashboardService {
|
|
|
if (Objects.nonNull(sourceProducePlan)) {
|
|
|
obj.setSourceProducePlanName(sourceProducePlan.getName());
|
|
|
}
|
|
|
- List<Article> hisArticles = hisArticleMap.getOrDefault(article.getTitle(), new ArrayList<>());
|
|
|
- hisArticles = hisArticles.stream().filter(o -> o.getUpdateTime() < (article.getUpdateTime() - 3600 * 8)
|
|
|
- && (1 == o.getItemIndex() || 2 == o.getItemIndex())
|
|
|
- && !ScoreStrategy.hisContentLateFilter(o.getUpdateTime())).collect(Collectors.toList());
|
|
|
- Integer readCount = 0;
|
|
|
- Double readAvgCount = 0.0;
|
|
|
- int firstCount = 0;
|
|
|
- int fission0Count = 0;
|
|
|
- for (Article hisArticle : hisArticles) {
|
|
|
- readCount += hisArticle.getShowViewCount();
|
|
|
- AccountAvgInfo accountAvgInfo = getAccountAvgInfo(accountAvgInfoIndexMap, hisArticle.getGhId(),
|
|
|
- hisArticle.getUpdateTime(), hisArticle.getItemIndex());
|
|
|
- if (Objects.nonNull(accountAvgInfo)) {
|
|
|
- readAvgCount += accountAvgInfo.getReadAvg();
|
|
|
- }
|
|
|
- List<ArticleDetailInfo> hisADIList = hisArticleDetailInfoMap.get(hisArticle.getWxSn());
|
|
|
- if (CollectionUtil.isNotEmpty(hisADIList)) {
|
|
|
- Date hisMinDate = hisADIList.stream().map(ArticleDetailInfo::getRecallDt).min(Date::compareTo).orElse(new Date());
|
|
|
- for (ArticleDetailInfo articleDetailInfo : hisADIList) {
|
|
|
- if (articleDetailInfo.getRecallDt().equals(hisMinDate)) {
|
|
|
- if (Objects.nonNull(articleDetailInfo.getFirstLevel())) {
|
|
|
- firstCount += articleDetailInfo.getFirstLevel();
|
|
|
- }
|
|
|
- if (Objects.nonNull(articleDetailInfo.getFission0())) {
|
|
|
- fission0Count += articleDetailInfo.getFission0();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (readAvgCount > 0) {
|
|
|
- obj.setHisReadRate(readCount / readAvgCount);
|
|
|
- }
|
|
|
- if (readCount > 0) {
|
|
|
- obj.setHisFirstReadRate(firstCount / (double) readCount);
|
|
|
- }
|
|
|
- if (firstCount > 0) {
|
|
|
- obj.setHisFission0FirstRate(fission0Count / (double) firstCount);
|
|
|
- }
|
|
|
}
|
|
|
result.sort(Comparator.comparing(NewSortStrategyExport::getDateStr).reversed()
|
|
|
.thenComparing(NewSortStrategyExport::getGhId).thenComparing(NewSortStrategyExport::getPosition));
|
|
@@ -516,6 +394,151 @@ public class DataDashboardService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ private void setObjHisRateInfo(Article article, NewSortStrategyExport obj,
|
|
|
+ Map<String, List<Article>> hisArticleMap,
|
|
|
+ Map<String, Map<String, Map<String, AccountAvgInfo>>> accountAvgInfoIndexMap,
|
|
|
+ Map<String, List<ArticleDetailInfo>> hisArticleDetailInfoMap) {
|
|
|
+ List<Article> hisArticles = hisArticleMap.getOrDefault(article.getTitle(), new ArrayList<>());
|
|
|
+ hisArticles = hisArticles.stream().filter(o -> o.getUpdateTime() < (article.getUpdateTime() - 3600 * 8)
|
|
|
+ && (1 == o.getItemIndex() || 2 == o.getItemIndex())
|
|
|
+ && !ScoreStrategy.hisContentLateFilter(o.getUpdateTime())).collect(Collectors.toList());
|
|
|
+ Integer readCount = 0;
|
|
|
+ Double readAvgCount = 0.0;
|
|
|
+ int firstCount = 0;
|
|
|
+ int fission0Count = 0;
|
|
|
+ for (Article hisArticle : hisArticles) {
|
|
|
+ readCount += hisArticle.getShowViewCount();
|
|
|
+ AccountAvgInfo accountAvgInfo = getAccountAvgInfo(accountAvgInfoIndexMap, hisArticle.getGhId(),
|
|
|
+ hisArticle.getUpdateTime(), hisArticle.getItemIndex());
|
|
|
+ if (Objects.nonNull(accountAvgInfo)) {
|
|
|
+ readAvgCount += accountAvgInfo.getReadAvg();
|
|
|
+ }
|
|
|
+ List<ArticleDetailInfo> hisADIList = hisArticleDetailInfoMap.get(hisArticle.getWxSn());
|
|
|
+ if (CollectionUtil.isNotEmpty(hisADIList)) {
|
|
|
+ Date hisMinDate = hisADIList.stream().map(ArticleDetailInfo::getRecallDt).min(Date::compareTo).orElse(new Date());
|
|
|
+ for (ArticleDetailInfo articleDetailInfo : hisADIList) {
|
|
|
+ if (articleDetailInfo.getRecallDt().equals(hisMinDate)) {
|
|
|
+ if (Objects.nonNull(articleDetailInfo.getFirstLevel())) {
|
|
|
+ firstCount += articleDetailInfo.getFirstLevel();
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(articleDetailInfo.getFission0())) {
|
|
|
+ fission0Count += articleDetailInfo.getFission0();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (readAvgCount > 0) {
|
|
|
+ obj.setHisReadRate(readCount / readAvgCount);
|
|
|
+ }
|
|
|
+ if (readCount > 0) {
|
|
|
+ obj.setHisFirstReadRate(firstCount / (double) readCount);
|
|
|
+ }
|
|
|
+ if (firstCount > 0) {
|
|
|
+ obj.setHisFission0FirstRate(fission0Count / (double) firstCount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void setObjBaseInfo(Article article, NewSortStrategyExport obj, String date) {
|
|
|
+ obj.setGhId(article.getGhId());
|
|
|
+ obj.setAccountName(article.getAccountName());
|
|
|
+ obj.setTitle(article.getTitle());
|
|
|
+ obj.setLink(article.getContentUrl());
|
|
|
+ obj.setPosition(article.getItemIndex());
|
|
|
+ obj.setViewCount(article.getShowViewCount());
|
|
|
+ obj.setDateStr(date);
|
|
|
+ obj.setPublishTime(DateUtils.timestampToYMDStr(article.getUpdateTime(), "HH:mm:ss"));
|
|
|
+ obj.setWxSn(article.getWxSn());
|
|
|
+ }
|
|
|
+
|
|
|
+ private void setObjArticleDetailInfo(Article article, NewSortStrategyExport obj, List<ArticleDetailInfo> articleDetailInfos) {
|
|
|
+ if (CollectionUtils.isNotEmpty(articleDetailInfos)) {
|
|
|
+ Date publishDate = DateUtils.getStartDateOfDay(article.getUpdateTime());
|
|
|
+ articleDetailInfos = articleDetailInfos.stream().filter(o -> !o.getRecallDt().before(publishDate))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Date minDate = articleDetailInfos.stream().map(ArticleDetailInfo::getRecallDt).min(Date::compareTo).orElse(new Date());
|
|
|
+ Date secondDate = articleDetailInfos.stream().map(ArticleDetailInfo::getRecallDt).filter(o -> o.after(minDate)).min(Date::compareTo).orElse(new Date());
|
|
|
+ Date thirdDate = articleDetailInfos.stream().map(ArticleDetailInfo::getRecallDt).filter(o -> o.after(secondDate)).min(Date::compareTo).orElse(new Date());
|
|
|
+ int sumFirstLevel = 0;
|
|
|
+ int sumFission0 = 0;
|
|
|
+ int sumFission1 = 0;
|
|
|
+ int sumFission2 = 0;
|
|
|
+ int sumSecondFirstLevel = 0;
|
|
|
+ int sumSecondFission0 = 0;
|
|
|
+ int sumSecondFission1 = 0;
|
|
|
+ int sumSecondFission2 = 0;
|
|
|
+ int sumThirdFirstLevel = 0;
|
|
|
+ int sumThirdFission0 = 0;
|
|
|
+ int sumThirdFission1 = 0;
|
|
|
+ int sumThirdFission2 = 0;
|
|
|
+ for (ArticleDetailInfo articleDetailInfo : articleDetailInfos) {
|
|
|
+ if (articleDetailInfo.getRecallDt().equals(minDate)) {
|
|
|
+ sumFirstLevel += Optional.ofNullable(articleDetailInfo.getFirstLevel()).orElse(0);
|
|
|
+ sumFission0 += Optional.ofNullable(articleDetailInfo.getFission0()).orElse(0);
|
|
|
+ sumFission1 += Optional.ofNullable(articleDetailInfo.getFission1()).orElse(0);
|
|
|
+ sumFission2 += Optional.ofNullable(articleDetailInfo.getFission2()).orElse(0);
|
|
|
+ }
|
|
|
+ if (articleDetailInfo.getRecallDt().equals(secondDate)) {
|
|
|
+ sumSecondFirstLevel += Optional.ofNullable(articleDetailInfo.getFirstLevel()).orElse(0);
|
|
|
+ sumSecondFission0 += Optional.ofNullable(articleDetailInfo.getFission0()).orElse(0);
|
|
|
+ sumSecondFission1 += Optional.ofNullable(articleDetailInfo.getFission1()).orElse(0);
|
|
|
+ sumSecondFission2 += Optional.ofNullable(articleDetailInfo.getFission2()).orElse(0);
|
|
|
+ }
|
|
|
+ if (articleDetailInfo.getRecallDt().equals(thirdDate)) {
|
|
|
+ sumThirdFirstLevel += Optional.ofNullable(articleDetailInfo.getFirstLevel()).orElse(0);
|
|
|
+ sumThirdFission0 += Optional.ofNullable(articleDetailInfo.getFission0()).orElse(0);
|
|
|
+ sumThirdFission1 += Optional.ofNullable(articleDetailInfo.getFission1()).orElse(0);
|
|
|
+ sumThirdFission2 += Optional.ofNullable(articleDetailInfo.getFission2()).orElse(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ obj.setFirstLevel(sumFirstLevel);
|
|
|
+ obj.setFission0(sumFission0);
|
|
|
+ obj.setFission1(sumFission1);
|
|
|
+ obj.setFission2(sumFission2);
|
|
|
+ obj.setSecondFirstLevel(sumSecondFirstLevel);
|
|
|
+ obj.setSecondFission0(sumSecondFission0);
|
|
|
+ obj.setSecondFission1(sumSecondFission1);
|
|
|
+ obj.setSecondFission2(sumSecondFission2);
|
|
|
+ obj.setThirdFirstLevel(sumThirdFirstLevel);
|
|
|
+ obj.setThirdFission0(sumThirdFission0);
|
|
|
+ obj.setThirdFission1(sumThirdFission1);
|
|
|
+ obj.setThirdFission2(sumThirdFission2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void setObjAvgInfo(Article article, NewSortStrategyExport obj, AccountAvgInfo avgInfo) {
|
|
|
+ if (Objects.nonNull(avgInfo)) {
|
|
|
+ obj.setAccountMode(avgInfo.getAccountMode());
|
|
|
+ obj.setAccountSource(avgInfo.getAccountSource());
|
|
|
+ obj.setAccountType(avgInfo.getAccountType());
|
|
|
+ obj.setAccountStatus(avgInfo.getAccountStatus());
|
|
|
+ obj.setBusinessType(AccountBusinessTypeEnum.from(avgInfo.getBusinessType()).getDescription());
|
|
|
+ obj.setFans(avgInfo.getFans());
|
|
|
+ obj.setAvgViewCount(avgInfo.getReadAvg());
|
|
|
+ if (avgInfo.getReadAvg() > 0) {
|
|
|
+ obj.setReadRate((article.getShowViewCount() * 1.0) / avgInfo.getReadAvg());
|
|
|
+ if (Objects.nonNull(obj.getFission0())) {
|
|
|
+ obj.setFission0ReadAvgRate((obj.getFission0() * 1.0) / avgInfo.getReadAvg());
|
|
|
+ obj.setFission0ReadAvg100Rate((obj.getFission0() * 1.0) / (avgInfo.getReadAvg() + 100));
|
|
|
+ obj.setFission0ReadAvg500Rate((obj.getFission0() * 1.0) / (avgInfo.getReadAvg() + 500));
|
|
|
+ obj.setFission0ReadAvg1000Rate((obj.getFission0() * 1.0) / (avgInfo.getReadAvg() + 1000));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (avgInfo.getFans() > 0) {
|
|
|
+ obj.setReadFansRate((article.getShowViewCount() * 1.0) / avgInfo.getFans());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(obj.getFirstLevel()) && obj.getFirstLevel() > 0 && Objects.nonNull(obj.getFission0())) {
|
|
|
+ obj.setFission0FirstRate((obj.getFission0() * 1.0) / obj.getFirstLevel());
|
|
|
+ }
|
|
|
+ if (article.getShowViewCount() > 0 && Objects.nonNull(obj.getFirstLevel())) {
|
|
|
+ obj.setFirstReadRate((obj.getFirstLevel() * 1.0) / article.getShowViewCount());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(obj.getFission0()) && obj.getFission0() > 0 && Objects.nonNull(obj.getFission1())) {
|
|
|
+ obj.setFission1Fission0Rate((obj.getFission1() * 1.0) / obj.getFission0());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private Map<String, ProducePlan> getTitleSourceProducePlanMap(List<String> titleList) {
|
|
|
List<ProduceContentDTO> sourceProduceContentList = new ArrayList<>();
|
|
|
for (List<String> partitions : Lists.partition(titleList, 1000)) {
|
|
@@ -983,94 +1006,14 @@ public class DataDashboardService {
|
|
|
Map<String, Map<String, Map<String, AccountAvgInfo>>> accountAvgInfoIndexMap) {
|
|
|
List<NewSortStrategyExport> result = new ArrayList<>();
|
|
|
for (Article article : todayPublish) {
|
|
|
+ NewSortStrategyExport obj = new NewSortStrategyExport();
|
|
|
List<ArticleDetailInfo> articleDetailInfos = articleDetailInfoMap.get(article.getWxSn());
|
|
|
- if (CollectionUtils.isEmpty(articleDetailInfos)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- Date minDate = articleDetailInfos.stream().map(ArticleDetailInfo::getRecallDt).min(Date::compareTo).orElse(new Date());
|
|
|
- Date secondDate = articleDetailInfos.stream().map(ArticleDetailInfo::getRecallDt).filter(o -> o.after(minDate)).min(Date::compareTo).orElse(new Date());
|
|
|
- Date thirdDate = articleDetailInfos.stream().map(ArticleDetailInfo::getRecallDt).filter(o -> o.after(secondDate)).min(Date::compareTo).orElse(new Date());
|
|
|
- int sumFirstLevel = 0;
|
|
|
- int sumFission0 = 0;
|
|
|
- int sumFission1 = 0;
|
|
|
- int sumFission2 = 0;
|
|
|
- int sumSecondFirstLevel = 0;
|
|
|
- int sumSecondFission0 = 0;
|
|
|
- int sumSecondFission1 = 0;
|
|
|
- int sumSecondFission2 = 0;
|
|
|
- int sumThirdFirstLevel = 0;
|
|
|
- int sumThirdFission0 = 0;
|
|
|
- int sumThirdFission1 = 0;
|
|
|
- int sumThirdFission2 = 0;
|
|
|
- for (ArticleDetailInfo articleDetailInfo : articleDetailInfos) {
|
|
|
- if (articleDetailInfo.getRecallDt().equals(minDate)) {
|
|
|
- sumFirstLevel += Optional.ofNullable(articleDetailInfo.getFirstLevel()).orElse(0);
|
|
|
- sumFission0 += Optional.ofNullable(articleDetailInfo.getFission0()).orElse(0);
|
|
|
- sumFission1 += Optional.ofNullable(articleDetailInfo.getFission1()).orElse(0);
|
|
|
- sumFission2 += Optional.ofNullable(articleDetailInfo.getFission2()).orElse(0);
|
|
|
- }
|
|
|
- if (articleDetailInfo.getRecallDt().equals(secondDate)) {
|
|
|
- sumSecondFirstLevel += Optional.ofNullable(articleDetailInfo.getFirstLevel()).orElse(0);
|
|
|
- sumSecondFission0 += Optional.ofNullable(articleDetailInfo.getFission0()).orElse(0);
|
|
|
- sumSecondFission1 += Optional.ofNullable(articleDetailInfo.getFission1()).orElse(0);
|
|
|
- sumSecondFission2 += Optional.ofNullable(articleDetailInfo.getFission2()).orElse(0);
|
|
|
- }
|
|
|
- if (articleDetailInfo.getRecallDt().equals(thirdDate)) {
|
|
|
- sumThirdFirstLevel += Optional.ofNullable(articleDetailInfo.getFirstLevel()).orElse(0);
|
|
|
- sumThirdFission0 += Optional.ofNullable(articleDetailInfo.getFission0()).orElse(0);
|
|
|
- sumThirdFission1 += Optional.ofNullable(articleDetailInfo.getFission1()).orElse(0);
|
|
|
- sumThirdFission2 += Optional.ofNullable(articleDetailInfo.getFission2()).orElse(0);
|
|
|
- }
|
|
|
- }
|
|
|
+ setObjArticleDetailInfo(article, obj, articleDetailInfos);
|
|
|
AccountAvgInfo avgInfo = getAccountAvgInfo(accountAvgInfoIndexMap, article.getGhId(),
|
|
|
article.getUpdateTime(), article.getItemIndex());
|
|
|
String date = DateUtils.timestampToYMDStr(article.getUpdateTime(), "yyyyMMdd");
|
|
|
- NewSortStrategyExport obj = new NewSortStrategyExport();
|
|
|
- obj.setGhId(article.getGhId());
|
|
|
- obj.setAccountName(article.getAccountName());
|
|
|
- obj.setTitle(article.getTitle());
|
|
|
- obj.setLink(article.getContentUrl());
|
|
|
- obj.setPosition(article.getItemIndex());
|
|
|
- obj.setViewCount(article.getShowViewCount());
|
|
|
- obj.setDateStr(date);
|
|
|
- obj.setFirstLevel(sumFirstLevel);
|
|
|
- obj.setFission0(sumFission0);
|
|
|
- obj.setFission1(sumFission1);
|
|
|
- obj.setFission2(sumFission2);
|
|
|
- obj.setSecondFirstLevel(sumSecondFirstLevel);
|
|
|
- obj.setSecondFission0(sumSecondFission0);
|
|
|
- obj.setSecondFission1(sumSecondFission1);
|
|
|
- obj.setSecondFission2(sumSecondFission2);
|
|
|
- obj.setThirdFirstLevel(sumThirdFirstLevel);
|
|
|
- obj.setThirdFission0(sumThirdFission0);
|
|
|
- obj.setThirdFission1(sumThirdFission1);
|
|
|
- obj.setThirdFission2(sumThirdFission2);
|
|
|
- obj.setWxSn(article.getWxSn());
|
|
|
- if (Objects.nonNull(avgInfo)) {
|
|
|
- obj.setAccountMode(avgInfo.getAccountMode());
|
|
|
- obj.setAccountSource(avgInfo.getAccountSource());
|
|
|
- obj.setAccountType(avgInfo.getAccountType());
|
|
|
- obj.setAccountStatus(avgInfo.getAccountStatus());
|
|
|
- obj.setBusinessType(AccountBusinessTypeEnum.from(avgInfo.getBusinessType()).getDescription());
|
|
|
- obj.setFans(avgInfo.getFans());
|
|
|
- obj.setAvgViewCount(avgInfo.getReadAvg());
|
|
|
- if (avgInfo.getReadAvg() > 0) {
|
|
|
- obj.setReadRate((article.getShowViewCount() * 1.0) / avgInfo.getReadAvg());
|
|
|
- obj.setFission0ReadAvgRate((sumFission0 * 1.0) / avgInfo.getReadAvg());
|
|
|
- }
|
|
|
- if (avgInfo.getFans() > 0) {
|
|
|
- obj.setReadFansRate((article.getShowViewCount() * 1.0) / avgInfo.getFans());
|
|
|
- }
|
|
|
- }
|
|
|
- if (sumFirstLevel > 0) {
|
|
|
- obj.setFission0FirstRate((sumFission0 * 1.0) / sumFirstLevel);
|
|
|
- }
|
|
|
- if (article.getShowViewCount() > 0) {
|
|
|
- obj.setFirstReadRate((sumFirstLevel * 1.0) / article.getShowViewCount());
|
|
|
- }
|
|
|
- if (sumFission0 > 0) {
|
|
|
- obj.setFission1Fission0Rate((sumFission1 * 1.0) / sumFission0);
|
|
|
- }
|
|
|
+ setObjBaseInfo(article, obj, date);
|
|
|
+ setObjAvgInfo(article, obj, avgInfo);
|
|
|
result.add(obj);
|
|
|
}
|
|
|
return result;
|
|
@@ -1115,6 +1058,7 @@ public class DataDashboardService {
|
|
|
item.setAverageViewToBaseRatio(item.getRedundantViewCount() / (double) item.getRedundantViewBase());
|
|
|
}
|
|
|
List<ArticleDetailInfo> articleDetailInfos = articleDetailInfoMap.get(publish.getWxSn());
|
|
|
+
|
|
|
if (CollectionUtils.isEmpty(articleDetailInfos)) {
|
|
|
continue;
|
|
|
}
|