fix(alerts): 修复检测IP冲突时 db.func 误用导致立即检测500

detect_ip_conflicts 误用 db.func.count/db.func.distinct,而 func 是
SQLAlchemy 模块属性而非 Session 方法,触发 AttributeError 使
/alerts/detect/run 返回500(前端弹'请求失败')。

改为 from sqlalchemy import func 后使用 func.count/func.distinct
This commit is contained in:
Your Name
2026-08-12 11:01:03 +08:00
parent 8775c9836d
commit 5369d8d6e5
+2 -1
View File
@@ -1,5 +1,6 @@
from typing import List, Dict, Any, Optional
from sqlalchemy.orm import Session
from sqlalchemy import func
from datetime import datetime, timedelta
import logging
import json
@@ -80,7 +81,7 @@ class AlertService:
subquery = db.query(
ARPEntry.ip_address
).group_by(ARPEntry.ip_address).having(
db.func.count(db.func.distinct(ARPEntry.mac_address)) > 1
func.count(func.distinct(ARPEntry.mac_address)) > 1
).subquery()
conflict_entries = db.query(ARPEntry).filter(