Files
hms/crates/erp-server/src/handlers/analytics.rs
iven f0076aa240
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled
feat: Iteration 3 — 咨询轮询、统计概览、埋点后端
- consultation_service 支持 after_id 增量消息查询
- 小程序咨询详情页 8 秒轮询新消息
- 新增 DashboardStatsResp 综合统计端点 (/statistics/dashboard)
- 新增 /analytics/batch 埋点接收端点(日志记录模式)
2026-04-26 13:54:21 +08:00

35 lines
838 B
Rust

use axum::Json;
use serde::Deserialize;
use tracing;
use erp_core::types::ApiResponse;
#[derive(Debug, Deserialize)]
pub struct AnalyticsEvent {
pub event: String,
pub properties: Option<serde_json::Value>,
pub timestamp: Option<String>,
pub page: Option<String>,
}
#[derive(Debug, Deserialize)]
pub struct BatchRequest {
pub events: Vec<AnalyticsEvent>,
}
/// 接收小程序批量埋点事件。
/// 当前为日志记录模式 — 后续可接入 ClickHouse/PostgreSQL 分析表。
pub async fn batch(
Json(req): Json<BatchRequest>,
) -> Json<ApiResponse<()>> {
for evt in &req.events {
tracing::info!(
event = %evt.event,
page = ?evt.page,
properties = ?evt.properties,
"Analytics event received"
);
}
Json(ApiResponse::ok(()))
}