From 24f72091b3d18b43ee294d28751c21b265e5d396 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 4 Jan 2026 14:37:40 +0800 Subject: [PATCH] =?UTF-8?q?fix(stats):=20=E4=BF=AE=E5=A4=8D=E6=99=AF?= =?UTF-8?q?=E7=82=B9=E4=BA=BA=E8=84=B8=E8=AF=86=E5=88=AB=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修正了人脸上传统计查询中景点ID的过滤方式,从子查询改为直接解析params字段 - 移除了应用统计服务中的过期缓存逻辑 - 修复了任务完成用户统计的表关联错误,从task表改为member_video表进行统计 --- .../impl/ClickHouseStatsQueryServiceImpl.java | 18 ++++++------------ src/main/resources/mapper/TaskMapper.xml | 7 +++---- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/ycwl/basic/clickhouse/service/impl/ClickHouseStatsQueryServiceImpl.java b/src/main/java/com/ycwl/basic/clickhouse/service/impl/ClickHouseStatsQueryServiceImpl.java index df12d4da..f51ac016 100644 --- a/src/main/java/com/ycwl/basic/clickhouse/service/impl/ClickHouseStatsQueryServiceImpl.java +++ b/src/main/java/com/ycwl/basic/clickhouse/service/impl/ClickHouseStatsQueryServiceImpl.java @@ -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(" "); } diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml index 1398a362..f4d90460 100644 --- a/src/main/resources/mapper/TaskMapper.xml +++ b/src/main/resources/mapper/TaskMapper.xml @@ -154,10 +154,9 @@