feat(platform): filter vehicles by missing source

This commit is contained in:
lingniu
2026-07-04 05:28:29 +08:00
parent ef35137236
commit 999d58da1d
6 changed files with 131 additions and 0 deletions

View File

@@ -84,6 +84,10 @@ func buildVehicleCoverageSQL(query url.Values) SQLQuery {
case "multi":
having = append(having, "COUNT(DISTINCT s.protocol) > 1")
}
if missingProtocol := strings.TrimSpace(query.Get("missingProtocol")); missingProtocol != "" {
having = append(having, "COUNT(DISTINCT CASE WHEN s.protocol = ? THEN s.protocol END) = 0")
args = append(args, missingProtocol)
}
switch strings.TrimSpace(query.Get("online")) {
case "online":
having = append(having, "COUNT(DISTINCT CASE WHEN s.updated_at >= DATE_SUB(NOW(), INTERVAL 1 MINUTE) THEN s.protocol END) > 0")
@@ -167,6 +171,10 @@ func buildVehicleCoverageSummarySQL(query url.Values) SQLQuery {
case "multi":
having = append(having, "COUNT(DISTINCT s.protocol) > 1")
}
if missingProtocol := strings.TrimSpace(query.Get("missingProtocol")); missingProtocol != "" {
having = append(having, "COUNT(DISTINCT CASE WHEN s.protocol = ? THEN s.protocol END) = 0")
args = append(args, missingProtocol)
}
switch strings.TrimSpace(query.Get("online")) {
case "online":
having = append(having, "COUNT(DISTINCT CASE WHEN s.updated_at >= DATE_SUB(NOW(), INTERVAL 1 MINUTE) THEN s.protocol END) > 0")