From 32b2c23a04de26d96d4f6ef347978fd3eff07579 Mon Sep 17 00:00:00 2001 From: pham Date: Wed, 22 Apr 2026 11:58:17 +0800 Subject: [PATCH] chore: ignore local artifacts and remove dead api key trend impl --- .gitignore | 19 ++++++ backend/internal/repository/usage_log_repo.go | 58 ------------------- 2 files changed, 19 insertions(+), 58 deletions(-) diff --git a/.gitignore b/.gitignore index 1a92ea3e..9bc9ec0b 100644 --- a/.gitignore +++ b/.gitignore @@ -85,6 +85,11 @@ temp/ .cache/ .dev/ .serena/ +.omc/ +.workbuddy/ +backend/.omc/ +frontend/.omc/ +backend/cmd/server/.omc/ # =================== # 构建产物 @@ -134,4 +139,18 @@ docs/* frontend/coverage/ aicodex output/ +backend/dump.rdb +test-reports/ +config_final*.txt +config_test_output.txt +config_test_result*.txt +handler_final*.txt +handler_test*.txt +mid_test.txt +middleware_test.txt +new_domain_tests.txt +setup_test.txt +test_build_errors.txt +test_config_results.txt +backend/test_*.txt diff --git a/backend/internal/repository/usage_log_repo.go b/backend/internal/repository/usage_log_repo.go index 3ba2191e..89314a78 100644 --- a/backend/internal/repository/usage_log_repo.go +++ b/backend/internal/repository/usage_log_repo.go @@ -2134,64 +2134,6 @@ type UserUsageTrendPoint = usagestats.UserUsageTrendPoint type UserSpendingRankingItem = usagestats.UserSpendingRankingItem type UserSpendingRankingResponse = usagestats.UserSpendingRankingResponse -// APIKeyUsageTrendPoint represents API key usage trend data point -type APIKeyUsageTrendPoint = usagestats.APIKeyUsageTrendPoint - -// GetAPIKeyUsageTrend returns usage trend data grouped by API key and date -func (r *usageLogRepository) GetAPIKeyUsageTrend(ctx context.Context, startTime, endTime time.Time, granularity string, limit int) (results []APIKeyUsageTrendPoint, err error) { - dateFormat := safeDateFormat(granularity) - - query := fmt.Sprintf(` - WITH top_keys AS ( - SELECT api_key_id - FROM usage_logs - WHERE created_at >= $1 AND created_at < $2 - GROUP BY api_key_id - ORDER BY SUM(input_tokens + output_tokens + cache_creation_tokens + cache_read_tokens) DESC - LIMIT $3 - ) - SELECT - TO_CHAR(u.created_at, '%s') as date, - u.api_key_id, - COALESCE(k.name, '') as key_name, - COUNT(*) as requests, - COALESCE(SUM(u.input_tokens + u.output_tokens + u.cache_creation_tokens + u.cache_read_tokens), 0) as tokens - FROM usage_logs u - LEFT JOIN api_keys k ON u.api_key_id = k.id - WHERE u.api_key_id IN (SELECT api_key_id FROM top_keys) - AND u.created_at >= $4 AND u.created_at < $5 - GROUP BY date, u.api_key_id, k.name - ORDER BY date ASC, tokens DESC - `, dateFormat) - - rows, err := r.sql.QueryContext(ctx, query, startTime, endTime, limit, startTime, endTime) - if err != nil { - return nil, err - } - defer func() { - // 保持主错误优先;仅在无错误时回传 Close 失败。 - // 同时清空返回值,避免误用不完整结果。 - if closeErr := rows.Close(); closeErr != nil && err == nil { - err = closeErr - results = nil - } - }() - - results = make([]APIKeyUsageTrendPoint, 0) - for rows.Next() { - var row APIKeyUsageTrendPoint - if err = rows.Scan(&row.Date, &row.APIKeyID, &row.KeyName, &row.Requests, &row.Tokens); err != nil { - return nil, err - } - results = append(results, row) - } - if err = rows.Err(); err != nil { - return nil, err - } - - return results, nil -} - // GetUserUsageTrend returns usage trend data grouped by user and date func (r *usageLogRepository) GetUserUsageTrend(ctx context.Context, startTime, endTime time.Time, granularity string, limit int) (results []UserUsageTrendPoint, err error) { dateFormat := safeDateFormat(granularity)