From 1c63ea1448b6fac211751af8562aef69f2a4ae64 Mon Sep 17 00:00:00 2001 From: erio Date: Tue, 7 Apr 2026 13:47:12 +0800 Subject: [PATCH] fix(channel): add missing features column to List query The paginated List query was selecting 9 columns but scanning 10 fields, missing c.features. GetByID and ListAll already included it correctly. --- backend/cmd/server/VERSION | 2 +- backend/internal/repository/channel_repo.go | 31 ++------------------- 2 files changed, 4 insertions(+), 29 deletions(-) diff --git a/backend/cmd/server/VERSION b/backend/cmd/server/VERSION index 1ebb081e..8b4a4750 100644 --- a/backend/cmd/server/VERSION +++ b/backend/cmd/server/VERSION @@ -1 +1 @@ -0.1.105.13 +0.1.108.73 diff --git a/backend/internal/repository/channel_repo.go b/backend/internal/repository/channel_repo.go index 710322fb..baad31f7 100644 --- a/backend/internal/repository/channel_repo.go +++ b/backend/internal/repository/channel_repo.go @@ -187,9 +187,9 @@ func (r *channelRepository) List(ctx context.Context, params pagination.Paginati // 查询 channel 列表 dataQuery := fmt.Sprintf( - `SELECT c.id, c.name, c.description, c.status, c.model_mapping, c.billing_model_source, c.restrict_models, c.created_at, c.updated_at - FROM channels c WHERE %s ORDER BY %s LIMIT $%d OFFSET $%d`, - whereClause, channelListOrderBy(params), argIdx, argIdx+1, + `SELECT c.id, c.name, c.description, c.status, c.model_mapping, c.billing_model_source, c.restrict_models, c.features, c.created_at, c.updated_at + FROM channels c WHERE %s ORDER BY c.id ASC LIMIT $%d OFFSET $%d`, + whereClause, argIdx, argIdx+1, ) args = append(args, pageSize, offset) @@ -246,31 +246,6 @@ func (r *channelRepository) List(ctx context.Context, params pagination.Paginati return channels, paginationResult, nil } -func channelListOrderBy(params pagination.PaginationParams) string { - sortBy := strings.ToLower(strings.TrimSpace(params.SortBy)) - sortOrder := strings.ToUpper(params.NormalizedSortOrder(pagination.SortOrderAsc)) - - var column string - switch sortBy { - case "": - column = "c.id" - sortOrder = "ASC" - case "id": - column = "c.id" - case "name": - column = "c.name" - case "status": - column = "c.status" - case "created_at": - column = "c.created_at" - default: - column = "c.id" - sortOrder = "ASC" - } - - return fmt.Sprintf("%s %s, c.id %s", column, sortOrder, sortOrder) -} - func (r *channelRepository) ListAll(ctx context.Context) ([]service.Channel, error) { rows, err := r.db.QueryContext(ctx, `SELECT id, name, description, status, model_mapping, billing_model_source, restrict_models, features, created_at, updated_at FROM channels ORDER BY id`,