refactor(ops): 优化ops repository数据访问层
This commit is contained in:
@@ -984,6 +984,26 @@ func buildOpsErrorLogsWhere(filter *service.OpsErrorLogFilter) (string, []any) {
|
|||||||
args = append(args, *resolvedFilter)
|
args = append(args, *resolvedFilter)
|
||||||
clauses = append(clauses, "COALESCE(resolved,false) = $"+itoa(len(args)))
|
clauses = append(clauses, "COALESCE(resolved,false) = $"+itoa(len(args)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// View filter: errors vs excluded vs all.
|
||||||
|
// Excluded = upstream 429/529 and business-limited (quota/concurrency/billing) errors.
|
||||||
|
view := ""
|
||||||
|
if filter != nil {
|
||||||
|
view = strings.ToLower(strings.TrimSpace(filter.View))
|
||||||
|
}
|
||||||
|
switch view {
|
||||||
|
case "", "errors":
|
||||||
|
clauses = append(clauses, "COALESCE(is_business_limited,false) = false")
|
||||||
|
clauses = append(clauses, "COALESCE(upstream_status_code, status_code, 0) NOT IN (429, 529)")
|
||||||
|
case "excluded":
|
||||||
|
clauses = append(clauses, "(COALESCE(is_business_limited,false) = true OR COALESCE(upstream_status_code, status_code, 0) IN (429, 529))")
|
||||||
|
case "all":
|
||||||
|
// no-op
|
||||||
|
default:
|
||||||
|
// treat unknown as default 'errors'
|
||||||
|
clauses = append(clauses, "COALESCE(is_business_limited,false) = false")
|
||||||
|
clauses = append(clauses, "COALESCE(upstream_status_code, status_code, 0) NOT IN (429, 529)")
|
||||||
|
}
|
||||||
if len(filter.StatusCodes) > 0 {
|
if len(filter.StatusCodes) > 0 {
|
||||||
args = append(args, pq.Array(filter.StatusCodes))
|
args = append(args, pq.Array(filter.StatusCodes))
|
||||||
clauses = append(clauses, "COALESCE(upstream_status_code, status_code, 0) = ANY($"+itoa(len(args))+")")
|
clauses = append(clauses, "COALESCE(upstream_status_code, status_code, 0) = ANY($"+itoa(len(args))+")")
|
||||||
|
|||||||
Reference in New Issue
Block a user