fix(仓储): 修复查询关闭错误并迁移集成测试

修复 rows.Close 失败时的错误返回逻辑
迁移网关路由集成测试到 ent 事务基建
补齐仓储接口变更对应的测试桩方法
新增 backend/Makefile 统一测试命令
测试: GOTOOLCHAIN=go1.24.11 go test ./...
测试: golangci-lint run ./... --timeout=5m
测试: make test-integration
This commit is contained in:
yangjianbo
2025-12-30 16:41:45 +08:00
parent b6fec590a7
commit aacbc98aec
15 changed files with 123 additions and 110 deletions

View File

@@ -177,22 +177,27 @@ func (r *proxyRepository) CountAccountsByProxyID(ctx context.Context, proxyID in
}
// GetAccountCountsForProxies returns a map of proxy ID to account count for all proxies
func (r *proxyRepository) GetAccountCountsForProxies(ctx context.Context) (map[int64]int64, error) {
func (r *proxyRepository) GetAccountCountsForProxies(ctx context.Context) (counts map[int64]int64, err error) {
rows, err := r.sql.QueryContext(ctx, "SELECT proxy_id, COUNT(*) AS count FROM accounts WHERE proxy_id IS NOT NULL GROUP BY proxy_id")
if err != nil {
return nil, err
}
defer rows.Close()
defer func() {
if closeErr := rows.Close(); closeErr != nil && err == nil {
err = closeErr
counts = nil
}
}()
counts := make(map[int64]int64)
counts = make(map[int64]int64)
for rows.Next() {
var proxyID, count int64
if err := rows.Scan(&proxyID, &count); err != nil {
if err = rows.Scan(&proxyID, &count); err != nil {
return nil, err
}
counts[proxyID] = count
}
if err := rows.Err(); err != nil {
if err = rows.Err(); err != nil {
return nil, err
}
return counts, nil