新增消息趋势分析

This commit is contained in:
liuwei
2025-05-29 09:03:48 +08:00
parent 3c08352dd9
commit b93d217101
3 changed files with 192 additions and 0 deletions
+34
View File
@@ -208,3 +208,37 @@ class MessageStorageDB(BaseDBOperator):
# 使用已有的日志记录方式
print(f"更新消息图片路径出错: {e}")
return False
def get_hourly_message_trend(self, group_id: str = None, days: int = 1) -> List[Dict]:
"""获取指定群组的按小时消息趋势数据
Args:
group_id: 群组ID,如果为None则获取所有群组的数据
days: 获取最近几天的数据,默认1天
Returns:
包含小时和消息数量的列表
"""
sql = """
SELECT
DATE_FORMAT(timestamp, '%Y-%m-%d %H:00') as hour_slot,
COUNT(*) as message_count
FROM messages
WHERE timestamp >= DATE_SUB(NOW(), INTERVAL %s DAY)
"""
params = [days]
# 如果指定了群组ID,则添加群组筛选条件
if group_id:
sql += "AND group_id = %s "
params.append(group_id)
# 按小时分组并排序
sql += """
GROUP BY hour_slot
ORDER BY hour_slot
"""
return self.execute_query(sql, tuple(params)) or []