|
@@ -48,11 +48,11 @@ public class AnalyticsService {
|
|
|
.build();
|
|
.build();
|
|
|
repo.save(event);
|
|
repo.save(event);
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
- log.warn("鍩嬬偣鍐欏叆澶辫触: type={}, error={}", eventType, e.getMessage());
|
|
|
|
|
|
|
+ log.warn("埋点写入失败: type={}, error={}", eventType, e.getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // ==================== 鍩嬬偣浜嬩欢鍒楄〃 ====================
|
|
|
|
|
|
|
+ // ==================== 埋点事件列表 ====================
|
|
|
|
|
|
|
|
public Map<String, Object> queryEvents(String eventType, String startDate, String endDate,
|
|
public Map<String, Object> queryEvents(String eventType, String startDate, String endDate,
|
|
|
int page, int pageSize) {
|
|
int page, int pageSize) {
|
|
@@ -103,12 +103,14 @@ public class AnalyticsService {
|
|
|
return m;
|
|
return m;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // ==================== 姒傝鏁板瓧 ====================
|
|
|
|
|
|
|
+ // ==================== 概览数字 ====================
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 缁熻姒傝
|
|
|
|
|
|
|
+ * 统计概览
|
|
|
* @param range today | yesterday | week | total | custom
|
|
* @param range today | yesterday | week | total | custom
|
|
|
- * @param startDate custom 鐨勮捣濮嬫棩鏈燂紙yyyy-MM-dd锛夛紝浠?range=custom 鏃剁敓鏁? * @param endDate custom 鐨勭粨鏉熸棩鏈燂紙yyyy-MM-dd锛夛紝浠?range=custom 鏃剁敓鏁? */
|
|
|
|
|
|
|
+ * @param startDate custom 的起始日期(yyyy-MM-dd),仅 range=custom 时生效
|
|
|
|
|
+ * @param endDate custom 的结束日期(yyyy-MM-dd),仅 range=custom 时生效
|
|
|
|
|
+ */
|
|
|
public Map<String, Object> queryOverview(String range, String startDate, String endDate) {
|
|
public Map<String, Object> queryOverview(String range, String startDate, String endDate) {
|
|
|
if (range == null || range.isBlank()) {
|
|
if (range == null || range.isBlank()) {
|
|
|
range = "total";
|
|
range = "total";
|
|
@@ -162,9 +164,9 @@ public class AnalyticsService {
|
|
|
return overview;
|
|
return overview;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // ==================== 缁村害鍒嗛〉缁熻 ====================
|
|
|
|
|
|
|
+ // ==================== 维度分页统计 ====================
|
|
|
|
|
|
|
|
- /** 鍒嗛〉缁村害缁熻锛歩p / url / type / user / user_ip */
|
|
|
|
|
|
|
+ /** 分页维度统计:ip / url / type / user / user_ip */
|
|
|
public Map<String, Object> queryDimension(String dimension, String startDate, String endDate,
|
|
public Map<String, Object> queryDimension(String dimension, String startDate, String endDate,
|
|
|
int page, int pageSize) {
|
|
int page, int pageSize) {
|
|
|
Instant startTime = parseDate(startDate) != null ? parseDate(startDate) : Instant.EPOCH;
|
|
Instant startTime = parseDate(startDate) != null ? parseDate(startDate) : Instant.EPOCH;
|