From 83515f81b677d415274194b3a6765b2e2453fbab Mon Sep 17 00:00:00 2001 From: Rou <76741805+Rou325@users.noreply.github.com> Date: Wed, 9 Sep 2026 21:56:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(admin):=20=E6=A8=A1=E5=9E=8B=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=20-=20=E6=8C=89=E4=B8=8A=E6=B8=B8=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=20ID=20=E5=8E=BB=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/service/channel_models.go | 5 +++-- web/src/pages/admin/components/channel-model-manager.tsx | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/internal/service/channel_models.go b/backend/internal/service/channel_models.go index 02cdc4a1b..37c83d80f 100644 --- a/backend/internal/service/channel_models.go +++ b/backend/internal/service/channel_models.go @@ -178,7 +178,7 @@ func (s *Service) FetchAdminChannelModels(ctx context.Context, actor *model.User if idErr != nil { return nil, idErr } - missing = append(missing, model.ChannelModel{ID: modelID, ChannelID: channelID, ModelKey: name, DisplayName: name, BillingMode: "fixed_request", Enabled: false, PriceVersion: 1}) + missing = append(missing, model.ChannelModel{ID: modelID, ChannelID: channelID, ModelKey: name, ProviderModelKey: name, DisplayName: name, BillingMode: "fixed_request", Enabled: false, PriceVersion: 1}) } added, err := s.repo.CreateMissingChannelModels(missing) if err != nil { @@ -249,7 +249,8 @@ func (s *Service) ImportAdminChannelModels(ctx context.Context, actor *model.Use } known := make(map[string]struct{}, len(existing)) for _, item := range existing { - known[channelModelCatalogKey(item.ModelKey)] = struct{}{} + providerKey := firstNonEmpty(item.ProviderModelKey, item.ModelKey) + known[channelModelCatalogKey(providerKey)] = struct{}{} } retired := retiredChannelModelKeys(channel.RetiredModelsJSON) missing := make([]model.ChannelModel, 0, len(chosen)) diff --git a/web/src/pages/admin/components/channel-model-manager.tsx b/web/src/pages/admin/components/channel-model-manager.tsx index e78d71e32..1b7b57e39 100644 --- a/web/src/pages/admin/components/channel-model-manager.tsx +++ b/web/src/pages/admin/components/channel-model-manager.tsx @@ -231,7 +231,7 @@ export function ChannelModelManager({ channel, onClose, onChanged }: { channel: return true; }); const pagedItems = filteredItems.slice((page - 1) * pageSize, page * pageSize); - const existingFetchModelKeys = new Set(items.map((item) => normalizeFetchModelKey(item.modelKey))); + const existingFetchModelKeys = new Set(items.flatMap((item) => [item.modelKey, item.providerModelKey].filter(Boolean).map(normalizeFetchModelKey))); const selectedNewFetchModels = selectedFetchModels.filter((name) => !existingFetchModelKeys.has(normalizeFetchModelKey(name))); const selectedExistingFetchCount = selectedFetchModels.length - selectedNewFetchModels.length; const allFetchModelsSelected = fetchPreviewModels.length > 0 && fetchPreviewModels.every((name) => selectedFetchModels.includes(name));