topfans/backend/services/statisticService/service
zerosaturation dd9952ccc9 feat(statistic): T9-T12 dashboard 7 RPCs (Provider + Materializer + Service + Cache)
- StatisticInternalProvider: TrackEvent/BatchTrackEvent
- StatisticCombinedProvider: all 9 RPCs (7 dashboard + 2 event) on single service
- materializer: 4 MV REFRESH CONCURRENTLY + pg_try_advisory_lock + refresh_log
- dashboard_repo: 7 aggregation SQLs (week_rank / 7d curve / top5 / level dist / upgrade progress)
- dashboard_service: 7 RPCs with Redis 5min TTL + cache miss protection (1min empty)
- Cache wrapper: JSON serialize + format dash:{rpc}:{starID}:{userID}
- main.go: integrated workers + Dubbo triple server :20009
- cross-service userService.GetFanProfile (for crystal_balance)
- client/user_rpc_client.go

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 17:20:53 +08:00
..
cache.go feat(statistic): T9-T12 dashboard 7 RPCs (Provider + Materializer + Service + Cache) 2026-06-08 17:20:53 +08:00
dashboard_service.go feat(statistic): T9-T12 dashboard 7 RPCs (Provider + Materializer + Service + Cache) 2026-06-08 17:20:53 +08:00
event_service_test.go feat(statistic): T4-T8 event collection framework (Event + Sink + Repo + Service + Workers) 2026-06-08 17:20:53 +08:00
event_service.go feat(statistic): T4-T8 event collection framework (Event + Sink + Repo + Service + Workers) 2026-06-08 17:20:53 +08:00