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!] }