feat(database): 迁移统计数据查询到ClickHouse

- 添加ClickHouse数据源配置和相关依赖
- 实现ClickHouse统计查询服务和MySQL兜底方案
- 新增扫码统计、订单统计等数据查询接口
- 重构分销员数据统计逻辑,整合MySQL和ClickHouse数据源
- 更新应用配置文件以支持ClickHouse启用开关
- 修改分布式任务统计以支持跨库查询场景
This commit is contained in:
2026-01-04 10:34:17 +08:00
parent 32297dc29c
commit aec5e57df7
19 changed files with 944 additions and 20 deletions

View File

@@ -6,7 +6,10 @@ import com.ycwl.basic.model.pc.broker.resp.BrokerRecordRespVO;
import com.ycwl.basic.model.pc.broker.resp.DailySummaryRespVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
@@ -28,4 +31,11 @@ public interface BrokerRecordMapper {
int update(BrokerRecord brokerRecord);
List<DailySummaryRespVO> getDailySummaryByBrokerId(Long brokerId, Date startTime, Date endTime);
/**
* 按日期统计分销员订单数据(不含扫码统计,已迁移到 ClickHouse)
*/
List<HashMap<String, Object>> getDailyOrderStats(@Param("brokerId") Long brokerId,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime);
}

View File

@@ -4,6 +4,7 @@ import com.ycwl.basic.model.mobile.statistic.req.CommonQueryReq;
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
import com.ycwl.basic.model.mobile.statistic.resp.AppStatisticsFunnelVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
@@ -108,6 +109,18 @@ public interface StatisticsMapper {
List<HashMap<String, String>> scanCodeMemberChartByDate(CommonQueryReq query);
/**
* 统计分销员扫码次数
*/
Integer countBrokerScanCount(Long brokerId);
/**
* 按日期统计分销员扫码数据
*/
List<HashMap<String, Object>> getDailyScanStats(@Param("brokerId") Long brokerId,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime);
/**
* 统计订单数量和金额(包含推送订单和现场订单)
* @param query

View File

@@ -59,4 +59,16 @@ public interface TaskMapper {
List<TaskEntity> selectAllFailed();
TaskEntity listLastFaceTemplateTask(Long faceId, Long templateId);
/**
* 根据 face_id 列表统计已完成任务的用户数
* 用于 ClickHouse 迁移后的跨库统计
*/
Integer countCompletedTaskMembersByFaceIds(@Param("faceIds") List<String> faceIds);
/**
* 根据 face_id 列表统计已完成任务数
* 用于 ClickHouse 迁移后的跨库统计
*/
Integer countCompletedTasksByFaceIds(@Param("faceIds") List<String> faceIds);
}