Explorar o código

中间指标 fix

wangyunpeng hai 1 mes
pai
achega
d06a118c84

+ 34 - 51
long-article-recommend-service/src/main/java/com/tzld/longarticle/recommend/server/service/recommend/DataDashboardService.java

@@ -1224,6 +1224,24 @@ public class DataDashboardService {
             titles.add(data.getTitle());
             poolTitles.add(data.getTitle());
         }
+        // 处理均值
+        for (IntermediateIndicatorsExport item : result) {
+            // 发布未来表现
+            item.setT1DayAverageViewToBaseRatio(item.getT1DayAverageViewToBaseRatio() / item.getActualArticleReleaseCount());
+            item.setT1DayAverageMiniAppOpenRate(item.getT1DayAverageMiniAppOpenRate() / item.getActualArticleReleaseCount());
+            item.setT1DayAverageT0FissionRate(item.getT1DayAverageT0FissionRate() / item.getActualArticleReleaseCount());
+            item.setT1DayAverageFirstLayerFissionToViewBaseRatio(item.getT1DayAverageFirstLayerFissionToViewBaseRatio() / item.getActualArticleReleaseCount());
+            item.setT2DayAverageViewToBaseRatio(item.getT2DayAverageViewToBaseRatio() / item.getActualArticleReleaseCount());
+            item.setT2DayAverageT0FissionRate(item.getT2DayAverageT0FissionRate() / item.getActualArticleReleaseCount());
+            item.setT2DayAverageFirstLayerFissionToViewBaseRatio(item.getT2DayAverageFirstLayerFissionToViewBaseRatio() / item.getActualArticleReleaseCount());
+            // 发布依赖表现
+            item.setAverageMiniAppOpenRate(item.getAverageMiniAppOpenRate() / item.getActualArticleReleaseCount());
+            item.setAverageT0FissionRate(item.getAverageT0FissionRate() / item.getActualArticleReleaseCount());
+            item.setAverageFirstLayerFissionToViewBaseRatio(item.getAverageFirstLayerFissionToViewBaseRatio() / item.getActualArticleReleaseCount());
+            item.setFirstExplorationIntervalAvg(item.getFirstExplorationIntervalAvg() / item.getActualArticleReleaseCount());
+            // 发布表现
+            item.setAccountArticleRelevanceAvg(item.getAccountArticleRelevanceAvg() / item.getActualArticleReleaseCount());
+        }
 
         return result;
     }
@@ -1319,62 +1337,40 @@ public class DataDashboardService {
         item.setT2DayViewBase(item.getViewBase());
         item.setT1DayViewCount(item.getViewCount());
         item.setT2DayViewCount(item.getViewCount());
-        double t1DayAverageViewToBaseRatio = item.getT1DayAverageViewToBaseRatio();
         if (data.getViewCount() > 0 && Objects.nonNull(data.getAvgViewCount()) && data.getAvgViewCount() > 0) {
             double t1DayViewToBaseRatio = data.getViewCount() / data.getAvgViewCount();
-            t1DayAverageViewToBaseRatio = (t1DayAverageViewToBaseRatio * (item.getActualArticleReleaseCount() - 1)
-                    + t1DayViewToBaseRatio) / item.getActualArticleReleaseCount();
+            item.setT1DayAverageViewToBaseRatio(item.getT1DayAverageViewToBaseRatio() + t1DayViewToBaseRatio);
         }
-        item.setT1DayAverageViewToBaseRatio(t1DayAverageViewToBaseRatio);
-        double t1DayAverageMiniAppOpenRate = item.getT1DayAverageMiniAppOpenRate();
         if (data.getSecondFirstLevel() > 0 && Objects.nonNull(data.getAvgViewCount()) && data.getAvgViewCount() > 0) {
             double t1DayMiniAppOpenRate = data.getSecondFirstLevel() / data.getAvgViewCount();
-            t1DayAverageMiniAppOpenRate = (t1DayAverageMiniAppOpenRate * (item.getActualArticleReleaseCount() - 1)
-                    + t1DayMiniAppOpenRate) / item.getActualArticleReleaseCount();
+            item.setT1DayAverageMiniAppOpenRate(item.getT1DayAverageMiniAppOpenRate() + t1DayMiniAppOpenRate);
         }
-        item.setT1DayAverageMiniAppOpenRate(t1DayAverageMiniAppOpenRate);
-        double t1DayAverageT0FissionRate = item.getT1DayAverageT0FissionRate();
         if (data.getSecondFission0() > 0 && data.getSecondFirstLevel() > 0) {
             double t1DayT0FissionRate = data.getSecondFission0() / (double) data.getSecondFirstLevel();
-            t1DayAverageT0FissionRate = (t1DayAverageT0FissionRate * (item.getActualArticleReleaseCount() - 1)
-                    + t1DayT0FissionRate) / item.getActualArticleReleaseCount();
+            item.setT1DayAverageT0FissionRate(item.getT1DayAverageT0FissionRate() + t1DayT0FissionRate);
         }
-        item.setT1DayAverageT0FissionRate(t1DayAverageT0FissionRate);
-        double t1DayAverageFirstLayerFissionToViewBaseRatio = item.getT1DayAverageFirstLayerFissionToViewBaseRatio();
         if (data.getSecondFission0() > 0 && Objects.nonNull(data.getAvgViewCount()) && data.getAvgViewCount() > 0) {
             double t1DayFirstLayerFissionToViewBaseRatio = data.getSecondFission0() / data.getAvgViewCount();
-            t1DayAverageFirstLayerFissionToViewBaseRatio = (t1DayAverageFirstLayerFissionToViewBaseRatio * (item.getActualArticleReleaseCount() - 1)
-                    + t1DayFirstLayerFissionToViewBaseRatio) / item.getActualArticleReleaseCount();
+            item.setT1DayAverageFirstLayerFissionToViewBaseRatio(item.getT1DayAverageFirstLayerFissionToViewBaseRatio()
+                    + t1DayFirstLayerFissionToViewBaseRatio);
         }
-        item.setT1DayAverageFirstLayerFissionToViewBaseRatio(t1DayAverageFirstLayerFissionToViewBaseRatio);
-        double t2DayAverageViewToBaseRatio = item.getT2DayAverageViewToBaseRatio();
         if (data.getViewCount() > 0 && Objects.nonNull(data.getAvgViewCount()) && data.getAvgViewCount() > 0) {
             double t2DayViewToBaseRatio = data.getViewCount() / data.getAvgViewCount();
-            t2DayAverageViewToBaseRatio = (t2DayAverageViewToBaseRatio * (item.getActualArticleReleaseCount() - 1)
-                    + t2DayViewToBaseRatio) / item.getActualArticleReleaseCount();
+            item.setT2DayAverageViewToBaseRatio(item.getT2DayAverageViewToBaseRatio() + t2DayViewToBaseRatio);
         }
-        item.setT2DayAverageViewToBaseRatio(t2DayAverageViewToBaseRatio);
-        double t2DayAverageMiniAppOpenRate = item.getT2DayAverageMiniAppOpenRate();
         if (data.getThirdFirstLevel() > 0 && Objects.nonNull(data.getAvgViewCount()) && data.getAvgViewCount() > 0) {
             double t2DayMiniAppOpenRate = data.getThirdFirstLevel() / data.getAvgViewCount();
-            t2DayAverageMiniAppOpenRate = (t2DayAverageMiniAppOpenRate * (item.getActualArticleReleaseCount() - 1)
-                    + t2DayMiniAppOpenRate) / item.getActualArticleReleaseCount();
+            item.setT2DayAverageMiniAppOpenRate(item.getT2DayAverageMiniAppOpenRate() + t2DayMiniAppOpenRate);
         }
-        item.setT2DayAverageMiniAppOpenRate(t2DayAverageMiniAppOpenRate);
-        double t2DayAverageT0FissionRate = item.getT2DayAverageT0FissionRate();
         if (data.getThirdFission0() > 0 && data.getSecondFirstLevel() > 0) {
             double t2DayT0FissionRate = data.getThirdFission0() / (double) data.getSecondFirstLevel();
-            t2DayAverageT0FissionRate = (t2DayAverageT0FissionRate * (item.getActualArticleReleaseCount() - 1)
-                    + t2DayT0FissionRate) / item.getActualArticleReleaseCount();
+            item.setT2DayAverageT0FissionRate(item.getT2DayAverageT0FissionRate() + t2DayT0FissionRate);
         }
-        item.setT2DayAverageT0FissionRate(t2DayAverageT0FissionRate);
-        double t2DayAverageFirstLayerFissionToViewBaseRatio = item.getT2DayAverageFirstLayerFissionToViewBaseRatio();
         if (data.getThirdFission0() > 0 && Objects.nonNull(data.getAvgViewCount()) && data.getAvgViewCount() > 0) {
             double t2DayFirstLayerFissionToViewBaseRatio = data.getThirdFission0() / data.getAvgViewCount();
-            t2DayAverageFirstLayerFissionToViewBaseRatio = (t2DayAverageFirstLayerFissionToViewBaseRatio * (item.getActualArticleReleaseCount() - 1)
-                    + t2DayFirstLayerFissionToViewBaseRatio) / item.getActualArticleReleaseCount();
+            item.setT2DayAverageFirstLayerFissionToViewBaseRatio(item.getT2DayAverageFirstLayerFissionToViewBaseRatio()
+                    + t2DayFirstLayerFissionToViewBaseRatio);
         }
-        item.setT2DayAverageFirstLayerFissionToViewBaseRatio(t2DayAverageFirstLayerFissionToViewBaseRatio);
 
 //        item.setT3DayViewCount(item.getT3DayViewCount());
 //        item.setT3DayFirstLayerUV(item.getT3DayFirstLayerUV());
@@ -1493,27 +1489,19 @@ public class DataDashboardService {
             }
             item.setRedundantFirstLayerUV(item.getRedundantFirstLayerUV() + sumFirstLevel);
             item.setRedundantT0FissionUV(item.getRedundantT0FissionUV() + sumFission0);
-            double averageMiniAppOpenRate = item.getAverageMiniAppOpenRate();
             if (item.getRedundantFirstLayerUV() > 0 && item.getRedundantViewCount() > 0) {
                 double miniAppOpenRate = item.getRedundantFirstLayerUV() / (double) item.getRedundantViewCount();
-                averageMiniAppOpenRate = (averageMiniAppOpenRate * (item.getActualArticleReleaseCount() - 1)
-                        + miniAppOpenRate) / item.getActualArticleReleaseCount();
+                item.setAverageMiniAppOpenRate(item.getAverageMiniAppOpenRate() + miniAppOpenRate);
             }
-            item.setAverageMiniAppOpenRate(averageMiniAppOpenRate);
-            double averageT0FissionRate = item.getAverageT0FissionRate();
             if (item.getRedundantT0FissionUV() > 0 && item.getRedundantFirstLayerUV() > 0) {
                 double t0FissionRate = item.getRedundantT0FissionUV() / (double) item.getRedundantFirstLayerUV();
-                averageT0FissionRate = (averageT0FissionRate * (item.getActualArticleReleaseCount() - 1)
-                        + t0FissionRate) / item.getActualArticleReleaseCount();
+                item.setAverageT0FissionRate(item.getAverageT0FissionRate() + t0FissionRate);
             }
-            item.setAverageT0FissionRate(averageT0FissionRate);
-            double averageFirstLayerFissionToViewBaseRatio = item.getAverageFirstLayerFissionToViewBaseRatio();
             if (item.getRedundantViewBase() > 0 && item.getRedundantT0FissionUV() > 0) {
                 double firstLayerFissionToViewBaseRatio = item.getRedundantT0FissionUV() / (double) item.getRedundantViewBase();
-                averageFirstLayerFissionToViewBaseRatio = (averageFirstLayerFissionToViewBaseRatio *
-                        (item.getActualArticleReleaseCount() - 1) + firstLayerFissionToViewBaseRatio) / item.getActualArticleReleaseCount();
+                item.setAverageFirstLayerFissionToViewBaseRatio(item.getAverageFirstLayerFissionToViewBaseRatio()
+                        + firstLayerFissionToViewBaseRatio);
             }
-            item.setAverageFirstLayerFissionToViewBaseRatio(averageFirstLayerFissionToViewBaseRatio);
             Map<String, Map<Integer, List<PublishSortLog>>> dateSortMap = publishSortLogMap.get(publish.getGhId());
             if (Objects.nonNull(dateSortMap)) {
                 String publishDateStr = DateUtils.timestampToYMDStr(publish.getPublishTimestamp(), "yyyyMMdd");
@@ -1542,11 +1530,8 @@ public class DataDashboardService {
             }
         }
         if (hisMinDate > 0) {
-            double firstExplorationIntervalAvg = Double.isNaN(item.getFirstExplorationIntervalAvg()) ? 0.0 : item.getFirstExplorationIntervalAvg();
             double explorationInterval = (article.getPublishTimestamp() - hisMinDate) / 86400.0;
-            firstExplorationIntervalAvg = (firstExplorationIntervalAvg * (item.getActualArticleReleaseCount() - 1)
-                    + explorationInterval) / item.getActualArticleReleaseCount();
-            item.setFirstExplorationIntervalAvg(firstExplorationIntervalAvg);
+            item.setFirstExplorationIntervalAvg(item.getFirstExplorationIntervalAvg() + explorationInterval);
         }
         scoreHisPublishTimeMap.put(type, scorePublishTime);
     }
@@ -1592,7 +1577,6 @@ public class DataDashboardService {
                 if (CollectionUtil.isNotEmpty(logs)) {
                     for (PublishSortLog log : logs) {
                         if (log.getTitle().equals(data.getTitle())) {
-                            double scoreAvg = item.getAccountArticleRelevanceAvg();
                             double score = 0.0;
                             if (Objects.nonNull(log.getScore())) {
                                 JSONObject scoreMap = JSONObject.parseObject(log.getScoreMap());
@@ -1600,8 +1584,7 @@ public class DataDashboardService {
                                     score = scoreMap.getDoubleValue("SimilarityStrategy");
                                 }
                             }
-                            scoreAvg = (scoreAvg * (item.getActualArticleReleaseCount() - 1) + score) / item.getActualArticleReleaseCount();
-                            item.setAccountArticleRelevanceAvg(scoreAvg);
+                            item.setAccountArticleRelevanceAvg(item.getAccountArticleRelevanceAvg() + score);
                             break;
                         }
                     }