fix(stats): 修复景点人脸识别统计数据查询逻辑

- 修正了人脸上传统计查询中景点ID的过滤方式,从子查询改为直接解析params字段
- 移除了应用统计服务中的过期缓存逻辑
- 修复了任务完成用户统计的表关联错误,从task表改为member_video表进行统计
This commit is contained in:
2026-01-04 14:37:40 +08:00
parent cc62fb4c18
commit 24f72091b3
2 changed files with 9 additions and 16 deletions

View File

@@ -86,11 +86,9 @@ public class ClickHouseStatsQueryServiceImpl implements StatsQueryService {
sql.append("SELECT toInt32(uniqExact(s.member_id)) AS count ");
sql.append("FROM t_stats_record r ");
sql.append("INNER JOIN t_stats s ON r.trace_id = s.trace_id ");
sql.append("WHERE r.trace_id IN (");
appendEnterScenicTraceIdSubQuery(sql, query.getScenicId(), query.getStartTime(), query.getEndTime());
sql.append(") ");
sql.append("AND r.action = 'LOAD' ");
sql.append("WHERE r.action = 'LOAD' ");
sql.append("AND r.identifier = 'pages/videoSynthesis/buy' ");
sql.append("AND JSONExtractString(r.params, 'scenicId') = '").append(query.getScenicId()).append("' ");
sql.append("AND JSONExtractString(r.params, 'share') = '' ");
if (query.getStartTime() != null) {
sql.append("AND r.create_time >= ").append(formatDateTime(query.getStartTime())).append(" ");
@@ -150,10 +148,8 @@ public class ClickHouseStatsQueryServiceImpl implements StatsQueryService {
sql.append("SELECT toInt32(uniqExact(s.member_id)) AS count ");
sql.append("FROM t_stats_record r ");
sql.append("INNER JOIN t_stats s ON r.trace_id = s.trace_id ");
sql.append("WHERE r.trace_id IN (");
appendEnterScenicTraceIdSubQuery(sql, query.getScenicId(), query.getStartTime(), query.getEndTime());
sql.append(") ");
sql.append("AND r.action = 'FACE_UPLOAD' ");
sql.append("WHERE r.action = 'FACE_UPLOAD' ");
sql.append("AND JSONExtractString(r.params, 'scenicId') = '").append(query.getScenicId()).append("' ");
if (query.getStartTime() != null) {
sql.append("AND s.create_time >= ").append(formatDateTime(query.getStartTime())).append(" ");
}
@@ -168,10 +164,8 @@ public class ClickHouseStatsQueryServiceImpl implements StatsQueryService {
StringBuilder sql = new StringBuilder();
sql.append("SELECT DISTINCT r.identifier FROM t_stats_record r ");
sql.append("INNER JOIN t_stats s ON r.trace_id = s.trace_id ");
sql.append("WHERE r.trace_id IN (");
appendEnterScenicTraceIdSubQuery(sql, query.getScenicId(), query.getStartTime(), query.getEndTime());
sql.append(") ");
sql.append("AND r.action = 'FACE_UPLOAD' ");
sql.append("WHERE r.action = 'FACE_UPLOAD' ");
sql.append("AND JSONExtractString(r.params, 'scenicId') = '").append(query.getScenicId()).append("' ");
if (query.getStartTime() != null) {
sql.append("AND s.create_time >= ").append(formatDateTime(query.getStartTime())).append(" ");
}