guoziyun 9 mesiacov pred
rodič
commit
f6fe9ac2aa

+ 20 - 20
oms/dist/src/services/messageRecordService.js

@@ -62,14 +62,14 @@ class MessageRecordService {
         return await messageRecordModel_1.MessageRecord.findByIdAndUpdate(recordId, updateData, { new: true });
     }
     /**
-     * 获取整体消息推送统计数据(含实际点击率)
+     * 获取整体消息推送统计数据(含用户点击率)
      */
     async getOverallStatistics(startDate, endDate, strategyName) {
         const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
         return this.getStatisticsByGroup(matchConditions, []);
     }
     /**
-     * 按活动获取消息统计数据(含实际点击率)
+     * 按活动获取消息统计数据(含用户点击率)
      */
     async getStatisticsByActivity(startDate, endDate) {
         const matchConditions = this.buildMatchConditions(startDate, endDate);
@@ -77,7 +77,7 @@ class MessageRecordService {
         return this.getStatisticsByGroup(matchConditions, groupFields, { deliveredRate: -1 });
     }
     /**
-     * 按策略获取消息统计数据(含实际点击率)
+     * 按策略获取消息统计数据(含用户点击率)
      */
     async getStatisticsByStrategy(startDate, endDate, strategyName) {
         const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
@@ -85,7 +85,7 @@ class MessageRecordService {
         return this.getStatisticsByGroup(matchConditions, groupFields, { clickThroughRate: -1 });
     }
     /**
-     * 按模板获取消息统计数据(含实际点击率)
+     * 按模板获取消息统计数据(含用户点击率)
      */
     async getStatisticsByTemplate(startDate, endDate, strategyName) {
         const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
@@ -93,7 +93,7 @@ class MessageRecordService {
         return this.getStatisticsByGroup(matchConditions, groupFields, { clickThroughRate: -1 });
     }
     /**
-     * 按国家代码获取消息统计数据(含实际点击率)
+     * 按国家代码获取消息统计数据(含用户点击率)
      */
     async getStatisticsByCc(startDate, endDate, strategyName) {
         const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
@@ -101,7 +101,7 @@ class MessageRecordService {
         return this.getStatisticsByGroup(matchConditions, groupFields, { totalRecords: -1 });
     }
     /**
-     * 按图片 URL 获取消息统计数据(含实际点击率)
+     * 按图片 URL 获取消息统计数据(含用户点击率)
      */
     async getStatisticsByImage(startDate, endDate, strategyName) {
         const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
@@ -109,37 +109,37 @@ class MessageRecordService {
         return this.getStatisticsByGroup(matchConditions, groupFields, { clickThroughRate: -1 });
     }
     /**
-     * 按时间维度的趋势分析,每日统计(含实际点击率)
+     * 按时间维度的趋势分析,每日统计(含用户点击率)
      */
     async getDailySentTrends(startDate, endDate, strategyName) {
         return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, []);
     }
     /**
-     * 按国家代码和时间维度获取每日统计数据(含实际点击率)
+     * 按国家代码和时间维度获取每日统计数据(含用户点击率)
      */
     async getDailyTrendsByCc(cc, startDate, endDate, strategyName) {
         return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, [{ cc }]);
     }
     /**
-     * 按策略名称和时间维度获取每日统计数据(含实际点击率)
+     * 按策略名称和时间维度获取每日统计数据(含用户点击率)
      */
     async getDailyTrendsByStrategy(strategyName, startDate, endDate) {
         return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, [{ strategyName }]);
     }
     /**
-     * 按模板ID和时间维度获取每日统计数据(含实际点击率)
+     * 按模板ID和时间维度获取每日统计数据(含用户点击率)
      */
     async getDailyTrendsByTemplate(templateName, startDate, endDate, strategyName) {
         return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, [{ templateName }]);
     }
     /**
-     * 按图片URL和时间维度获取每日统计数据(含实际点击率)
+     * 按图片URL和时间维度获取每日统计数据(含用户点击率)
      */
     async getDailyTrendsByImage(image, startDate, endDate, strategyName) {
         return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, [{ image }]);
     }
     /**
-     * 按多个维度获取消息推送统计数据(含实际点击率)
+     * 按多个维度获取消息推送统计数据(含用户点击率)
      */
     async getMultiDimensionalStatistics(filters) {
         try {
@@ -186,7 +186,7 @@ class MessageRecordService {
                     ...this.getStatusAggregationFields(), // 包含人次+人数统计
                 },
             });
-            // 计算比率并格式化输出(含实际点击率)
+            // 计算比率并格式化输出(含用户点击率)
             pipeline.push({
                 $project: this.getStatisticsProjectFields(["date", "templateName", "strategyName", "cc", "image"]),
             });
@@ -285,7 +285,7 @@ class MessageRecordService {
         };
     }
     /**
-     * 获取统计结果投影字段(含实际点击率)
+     * 获取统计结果投影字段(含用户点击率)
      */
     getStatisticsProjectFields(idFields) {
         const project = { _id: 0 };
@@ -299,7 +299,7 @@ class MessageRecordService {
                 project[field] = `$_id.${field}`;
             }
         });
-        // 统计字段:包含原有人次指标 + 新增人数指标 + 实际点击率
+        // 统计字段:包含原有人次指标 + 新增人数指标 + 用户点击率
         return {
             ...project,
             // 原有人次指标
@@ -329,7 +329,7 @@ class MessageRecordService {
             tokenInvalidationRate: {
                 $cond: [{ $eq: ["$totalRecords", 0] }, 0, { $divide: ["$failed", "$totalRecords"] }],
             },
-            // 新增:实际点击率(人数维度)
+            // 新增:用户点击率(人数维度)
             actualClickThroughRate: {
                 $cond: [
                     { $eq: ["$displayedUsers", 0] }, // 避免除以0
@@ -340,7 +340,7 @@ class MessageRecordService {
         };
     }
     /**
-     * 按分组获取统计数据的通用方法(支持实际点击率)
+     * 按分组获取统计数据的通用方法(支持用户点击率)
      */
     async getStatisticsByGroup(matchConditions, groupFields = [], sortOrder = { _id: 1 }) {
         try {
@@ -380,7 +380,7 @@ class MessageRecordService {
                     ...this.getStatusAggregationFields(), // 包含人次+人数统计
                 },
             });
-            // 计算比率并格式化输出(含实际点击率)
+            // 计算比率并格式化输出(含用户点击率)
             pipeline.push({
                 $project: this.getStatisticsProjectFields(groupFields),
             });
@@ -395,7 +395,7 @@ class MessageRecordService {
         }
     }
     /**
-     * 按维度获取每日趋势的通用方法(支持实际点击率)
+     * 按维度获取每日趋势的通用方法(支持用户点击率)
      */
     async getDailyTrendsByDimensions(startDate, endDate, strategyName, extraConditions = []) {
         try {
@@ -436,7 +436,7 @@ class MessageRecordService {
                     ...this.getStatusAggregationFields(), // 包含人次+人数统计
                 },
             });
-            // 计算比率并格式化输出(含实际点击率)
+            // 计算比率并格式化输出(含用户点击率)
             pipeline.push({
                 $project: {
                     _id: 0,

+ 1 - 1
oms/public/app/index.html

@@ -9,5 +9,5 @@
   <style>body,html{width:100%;height:100%}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}body{margin:0;color:#000000d9;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-variant:tabular-nums;line-height:1.5715;background-color:#fff;font-feature-settings:"tnum"}html{--antd-wave-shadow-color:#1890ff;--scroll-bar:0}</style><link rel="stylesheet" href="styles-LXBSU6DF.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-LXBSU6DF.css"></noscript></head>
   <body>
     <app-root></app-root>
-  <script src="polyfills-B6TNHZQ6.js" type="module"></script><script src="main-2UCT5JIU.js" type="module"></script></body>
+  <script src="polyfills-B6TNHZQ6.js" type="module"></script><script src="main-HI6ED422.js" type="module"></script></body>
 </html>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
oms/public/app/main-HI6ED422.js


+ 20 - 20
oms/src/services/messageRecordService.ts

@@ -81,7 +81,7 @@ export class MessageRecordService {
   }
 
   /**
-   * 获取整体消息推送统计数据(含实际点击率)
+   * 获取整体消息推送统计数据(含用户点击率)
    */
   public async getOverallStatistics(startDate?: Date, endDate?: Date, strategyName?: string) {
     const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
@@ -89,7 +89,7 @@ export class MessageRecordService {
   }
 
   /**
-   * 按活动获取消息统计数据(含实际点击率)
+   * 按活动获取消息统计数据(含用户点击率)
    */
   public async getStatisticsByActivity(startDate?: Date, endDate?: Date) {
     const matchConditions = this.buildMatchConditions(startDate, endDate);
@@ -98,7 +98,7 @@ export class MessageRecordService {
   }
 
   /**
-   * 按策略获取消息统计数据(含实际点击率)
+   * 按策略获取消息统计数据(含用户点击率)
    */
   public async getStatisticsByStrategy(startDate?: Date, endDate?: Date, strategyName?: string) {
     const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
@@ -107,7 +107,7 @@ export class MessageRecordService {
   }
 
   /**
-   * 按模板获取消息统计数据(含实际点击率)
+   * 按模板获取消息统计数据(含用户点击率)
    */
   public async getStatisticsByTemplate(startDate?: Date, endDate?: Date, strategyName?: string) {
     const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
@@ -116,7 +116,7 @@ export class MessageRecordService {
   }
 
   /**
-   * 按国家代码获取消息统计数据(含实际点击率)
+   * 按国家代码获取消息统计数据(含用户点击率)
    */
   public async getStatisticsByCc(startDate?: Date, endDate?: Date, strategyName?: string) {
     const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
@@ -125,7 +125,7 @@ export class MessageRecordService {
   }
 
   /**
-   * 按图片 URL 获取消息统计数据(含实际点击率)
+   * 按图片 URL 获取消息统计数据(含用户点击率)
    */
   public async getStatisticsByImage(startDate?: Date, endDate?: Date, strategyName?: string) {
     const matchConditions = this.buildMatchConditions(startDate, endDate, strategyName);
@@ -134,42 +134,42 @@ export class MessageRecordService {
   }
 
   /**
-   * 按时间维度的趋势分析,每日统计(含实际点击率)
+   * 按时间维度的趋势分析,每日统计(含用户点击率)
    */
   public async getDailySentTrends(startDate?: Date, endDate?: Date, strategyName?: string) {
     return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, []);
   }
 
   /**
-   * 按国家代码和时间维度获取每日统计数据(含实际点击率)
+   * 按国家代码和时间维度获取每日统计数据(含用户点击率)
    */
   public async getDailyTrendsByCc(cc: string, startDate?: Date, endDate?: Date, strategyName?: string) {
     return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, [{ cc }]);
   }
 
   /**
-   * 按策略名称和时间维度获取每日统计数据(含实际点击率)
+   * 按策略名称和时间维度获取每日统计数据(含用户点击率)
    */
   public async getDailyTrendsByStrategy(strategyName: string, startDate?: Date, endDate?: Date) {
     return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, [{ strategyName }]);
   }
 
   /**
-   * 按模板ID和时间维度获取每日统计数据(含实际点击率)
+   * 按模板ID和时间维度获取每日统计数据(含用户点击率)
    */
   public async getDailyTrendsByTemplate(templateName: string, startDate?: Date, endDate?: Date, strategyName?: string) {
     return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, [{ templateName }]);
   }
 
   /**
-   * 按图片URL和时间维度获取每日统计数据(含实际点击率)
+   * 按图片URL和时间维度获取每日统计数据(含用户点击率)
    */
   public async getDailyTrendsByImage(image: string, startDate?: Date, endDate?: Date, strategyName?: string) {
     return this.getDailyTrendsByDimensions(startDate, endDate, strategyName, [{ image }]);
   }
 
   /**
-   * 按多个维度获取消息推送统计数据(含实际点击率)
+   * 按多个维度获取消息推送统计数据(含用户点击率)
    */
   public async getMultiDimensionalStatistics(filters: { startDate?: Date; endDate?: Date; templateName?: string; strategyName?: string; cc?: string; image?: string }) {
     try {
@@ -219,7 +219,7 @@ export class MessageRecordService {
         },
       });
 
-      // 计算比率并格式化输出(含实际点击率)
+      // 计算比率并格式化输出(含用户点击率)
       pipeline.push({
         $project: this.getStatisticsProjectFields(["date", "templateName", "strategyName", "cc", "image"]),
       });
@@ -332,7 +332,7 @@ export class MessageRecordService {
   }
 
   /**
-   * 获取统计结果投影字段(含实际点击率)
+   * 获取统计结果投影字段(含用户点击率)
    */
   private getStatisticsProjectFields(idFields: string[]) {
     const project: any = { _id: 0 };
@@ -349,7 +349,7 @@ export class MessageRecordService {
       }
     });
 
-    // 统计字段:包含原有人次指标 + 新增人数指标 + 实际点击率
+    // 统计字段:包含原有人次指标 + 新增人数指标 + 用户点击率
     return {
       ...project,
       // 原有人次指标
@@ -382,7 +382,7 @@ export class MessageRecordService {
         $cond: [{ $eq: ["$totalRecords", 0] }, 0, { $divide: ["$failed", "$totalRecords"] }],
       },
 
-      // 新增:实际点击率(人数维度)
+      // 新增:用户点击率(人数维度)
       actualClickThroughRate: {
         $cond: [
           { $eq: ["$displayedUsers", 0] }, // 避免除以0
@@ -394,7 +394,7 @@ export class MessageRecordService {
   }
 
   /**
-   * 按分组获取统计数据的通用方法(支持实际点击率)
+   * 按分组获取统计数据的通用方法(支持用户点击率)
    */
   private async getStatisticsByGroup(matchConditions: any, groupFields: string[] = [], sortOrder: any = { _id: 1 }) {
     try {
@@ -440,7 +440,7 @@ export class MessageRecordService {
         },
       });
 
-      // 计算比率并格式化输出(含实际点击率)
+      // 计算比率并格式化输出(含用户点击率)
       pipeline.push({
         $project: this.getStatisticsProjectFields(groupFields),
       });
@@ -457,7 +457,7 @@ export class MessageRecordService {
   }
 
   /**
-   * 按维度获取每日趋势的通用方法(支持实际点击率)
+   * 按维度获取每日趋势的通用方法(支持用户点击率)
    */
   private async getDailyTrendsByDimensions(startDate?: Date, endDate?: Date, strategyName?: string, extraConditions: any[] = []) {
     try {
@@ -505,7 +505,7 @@ export class MessageRecordService {
         },
       });
 
-      // 计算比率并格式化输出(含实际点击率)
+      // 计算比率并格式化输出(含用户点击率)
       pipeline.push({
         $project: {
           _id: 0,

+ 10 - 10
omsapp/src/app/pages/message-dashboard.component.html

@@ -82,7 +82,7 @@
 
         <div nz-col [nzSpan]="4">
           <nz-statistic
-            nzTitle="实际点击率"
+            nzTitle="用户点击率"
             [nzValue]="
               formatPercentage(overallStats.actualClickThroughRate || 0)
             "
@@ -183,7 +183,7 @@
             </div>
             <div>
               <span class="legend-line" style="border-color: #fb56fb"></span>
-              实际点击率
+              用户点击率
             </div>
           </div>
         </nz-card>
@@ -364,7 +364,7 @@
                 </span>
               </th>
               <th (click)="sortStrategyTable('actualClickThroughRate')">
-                实际点击率
+                用户点击率
                 <span *ngIf="strategySortField === 'actualClickThroughRate'">
                   <i
                     nz-icon
@@ -459,7 +459,7 @@
                           <th>送达率</th>
                           <th>展示率</th>
                           <th>点击率</th>
-                          <th>实际点击率</th>
+                          <th>用户点击率</th>
                           <th>失败率</th>
                         </tr>
                       </thead>
@@ -680,7 +680,7 @@
                 </span>
               </th>
               <th (click)="sortTemplateTable('actualClickThroughRate')">
-                实际点击率
+                用户点击率
                 <span *ngIf="templateSortField === 'actualClickThroughRate'">
                   <i
                     nz-icon
@@ -775,7 +775,7 @@
                           <th>送达率</th>
                           <th>展示率</th>
                           <th>点击率</th>
-                          <th>实际点击率</th>
+                          <th>用户点击率</th>
                           <th>失败率</th>
                         </tr>
                       </thead>
@@ -970,7 +970,7 @@
                 </span>
               </th>
               <th (click)="sortCcTable('actualClickThroughRate')">
-                实际点击率
+                用户点击率
                 <span *ngIf="ccSortField === 'actualClickThroughRate'">
                   <i
                     nz-icon
@@ -1052,7 +1052,7 @@
                           <th>送达率</th>
                           <th>展示率</th>
                           <th>点击率</th>
-                          <th>实际点击率</th>
+                          <th>用户点击率</th>
                           <th>失败率</th>
                         </tr>
                       </thead>
@@ -1259,7 +1259,7 @@
                 </span>
               </th>
               <th (click)="sortImageTable('actualClickThroughRate')">
-                实际点击率
+                用户点击率
                 <span *ngIf="imageSortField === 'actualClickThroughRate'">
                   <i
                     nz-icon
@@ -1357,7 +1357,7 @@
                           <th>展示率</th>
                           <th>点击率</th>
 
-                          <th>实际点击率</th>
+                          <th>用户点击率</th>
                           <th>失败率</th>
                         </tr>
                       </thead>

+ 1 - 1
omsapp/src/app/pages/message-dashboard.component.ts

@@ -190,7 +190,7 @@ export class MessageDashboardComponent implements OnInit {
         pointHoverRadius: 6,
       },
       {
-        label: '实际点击率',
+        label: '用户点击率',
         data: [],
         borderColor: '#fb56fb',
         backgroundColor: 'transparent',

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov