|
|
@@ -51,6 +51,7 @@ public class AnalyticsService {
|
|
|
|
|
|
// ==================== 埋点查询 ====================
|
|
|
|
|
|
+ /** 列表(精简字段,不含 event_data / page_url / referrer / user_agent) */
|
|
|
public Map<String, Object> queryEvents(String eventType, String startDate, String endDate,
|
|
|
int page, int pageSize) {
|
|
|
Instant startTime = parseDate(startDate);
|
|
|
@@ -79,13 +80,9 @@ public class AnalyticsService {
|
|
|
.map(e -> {
|
|
|
Map<String, Object> m = new LinkedHashMap<>();
|
|
|
m.put("id", e.getId());
|
|
|
- m.put("user_key", e.getUserKey());
|
|
|
m.put("event_type", e.getEventType());
|
|
|
- m.put("event_data", e.getEventData());
|
|
|
- m.put("page_url", e.getPageUrl());
|
|
|
- m.put("referrer", e.getReferrer());
|
|
|
+ m.put("user_key", e.getUserKey());
|
|
|
m.put("ip", e.getIp());
|
|
|
- m.put("user_agent", e.getUserAgent());
|
|
|
m.put("created_at", e.getCreatedAt());
|
|
|
return m;
|
|
|
})
|
|
|
@@ -99,6 +96,24 @@ public class AnalyticsService {
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
+ /** 详情(返回全部字段) */
|
|
|
+ public Map<String, Object> getEventDetail(long id) {
|
|
|
+ var opt = repo.findById(id);
|
|
|
+ if (opt.isEmpty()) return Map.of();
|
|
|
+ var e = opt.get();
|
|
|
+ Map<String, Object> m = new LinkedHashMap<>();
|
|
|
+ m.put("id", e.getId());
|
|
|
+ m.put("user_key", e.getUserKey());
|
|
|
+ m.put("event_type", e.getEventType());
|
|
|
+ m.put("event_data", e.getEventData());
|
|
|
+ m.put("page_url", e.getPageUrl());
|
|
|
+ m.put("referrer", e.getReferrer());
|
|
|
+ m.put("ip", e.getIp());
|
|
|
+ m.put("user_agent", e.getUserAgent());
|
|
|
+ m.put("created_at", e.getCreatedAt());
|
|
|
+ return m;
|
|
|
+ }
|
|
|
+
|
|
|
private Instant parseDate(String date) {
|
|
|
if (date == null || date.isBlank()) return null;
|
|
|
return LocalDate.parse(date).atStartOfDay(ZoneOffset.UTC).toInstant();
|