From dfd21aad5cbcdec14280f2fbf33dd2f49400c9b0 Mon Sep 17 00:00:00 2001 From: Bivekich Date: Thu, 3 Jul 2025 15:35:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D1=8F=20ssd=20=D0=B2=20=D1=82=D0=B8=D0=BF=D1=8B=20GraphQ?= =?UTF-8?q?L=20=D0=B8=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=20=D1=80=D0=B5=D0=B7=D0=BE=D0=BB=D0=B2=D0=B5=D1=80=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BA=D0=B0=D1=82=D0=B5=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=B8=20=D1=83=D0=B7=D0=BB=D0=BE=D0=B2.=20=D0=A0=D0=B5=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D0=BB=D0=BE?= =?UTF-8?q?=D0=B3=D0=B8=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=83=D0=B7=D0=BB=D0=BE=D0=B2=20=D0=B2=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B8=20=D0=BE=D1=82=20=D0=BD=D0=B0=D0=BB=D0=B8=D1=87=D0=B8?= =?UTF-8?q?=D1=8F=20categoryId=20=D0=B8=20SSD,=20=D1=87=D1=82=D0=BE=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B2=D1=8B=D1=88=D0=B0=D0=B5=D1=82=20=D0=B3=D0=B8?= =?UTF-8?q?=D0=B1=D0=BA=D0=BE=D1=81=D1=82=D1=8C=20=D0=B8=20=D0=BD=D0=B0?= =?UTF-8?q?=D0=B4=D0=B5=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=B2=D0=B7?= =?UTF-8?q?=D0=B0=D0=B8=D0=BC=D0=BE=D0=B4=D0=B5=D0=B9=D1=81=D1=82=D0=B2?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=81=20API.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/graphql/resolvers.ts | 58 +++++++++++++++++++++++++++++++++++- src/lib/graphql/typeDefs.ts | 3 ++ 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/src/lib/graphql/resolvers.ts b/src/lib/graphql/resolvers.ts index 6edb0a8..9a44227 100644 --- a/src/lib/graphql/resolvers.ts +++ b/src/lib/graphql/resolvers.ts @@ -1825,7 +1825,63 @@ export const resolvers = { ssdLength: ssd?.length }) - const result = await laximoService.getListUnits(catalogCode, vehicleId, ssd, categoryId) + let result: any[] = [] + + // Если есть categoryId, то мы ищем узлы в конкретной категории + if (categoryId) { + console.log('🔧 Поиск узлов в категории:', categoryId) + + // Для обычных категорий НЕ используем SSD - он нужен только для быстрых групп + try { + console.log('🔧 Пробуем ListUnits БЕЗ SSD для обычной категории...') + result = await laximoService.getListUnits(catalogCode, vehicleId, undefined, categoryId) + console.log('✅ Получено узлов в категории:', result.length) + } catch (error: any) { + console.log('⚠️ Ошибка ListUnits без SSD:', error.message) + + // Если и без SSD не работает, пробуем получить категории вместо узлов + try { + console.log('🔧 Пробуем получить подкатегории...') + result = await laximoService.getListCategories(catalogCode, vehicleId, undefined) + // Фильтруем только подкатегории данной категории, если есть parent-child связи + console.log('✅ Получено подкатегорий:', result.length) + } catch (categoriesError: any) { + console.log('⚠️ Ошибка получения подкатегорий:', categoriesError.message) + } + } + } else { + // Если categoryId нет, получаем список всех категорий + console.log('🔧 Получаем список всех категорий...') + try { + result = await laximoService.getListCategories(catalogCode, vehicleId, ssd) + + // Если получили категории, используем SSD из первой категории для получения узлов + if (result.length > 0 && result[0].ssd) { + console.log('🔧 Найден SSD в категориях, пробуем получить узлы...') + const categorySsd = result[0].ssd + console.log('🔑 SSD из категории:', categorySsd.substring(0, 30) + '...') + + // Пробуем получить узлы для первой категории с найденным SSD + try { + const unitsResult = await laximoService.getListUnits(catalogCode, vehicleId, categorySsd, result[0].quickgroupid) + if (unitsResult.length > 0) { + console.log('✅ Получены узлы с SSD из категории:', unitsResult.length) + result = unitsResult + } + } catch (error: any) { + console.log('⚠️ Ошибка получения узлов с SSD из категории:', error.message) + } + } + } catch (error: any) { + console.log('⚠️ Ошибка ListCategories:', error.message) + // Пробуем без SSD + if (ssd) { + console.log('🔧 Пробуем ListCategories без SSD...') + result = await laximoService.getListCategories(catalogCode, vehicleId, undefined) + } + } + } + console.log('✅ GraphQL Resolver - получено узлов каталога:', result?.length || 0) if (result && result.length > 0) { diff --git a/src/lib/graphql/typeDefs.ts b/src/lib/graphql/typeDefs.ts index 891053d..29adde7 100644 --- a/src/lib/graphql/typeDefs.ts +++ b/src/lib/graphql/typeDefs.ts @@ -1394,6 +1394,7 @@ export const typeDefs = gql` code: String imageurl: String largeimageurl: String + ssd: String } type LaximoQuickGroupsResponse { @@ -1414,6 +1415,7 @@ export const typeDefs = gql` description: String imageurl: String largeimageurl: String + ssd: String details: [LaximoDetail!] attributes: [LaximoDetailAttribute!] } @@ -1554,6 +1556,7 @@ export const typeDefs = gql` description: String imageurl: String largeimageurl: String + ssd: String attributes: [LaximoDetailAttribute!] }