This commit is contained in:
freedakgmail
2025-11-30 09:16:43 +08:00
parent b436ae0680
commit fd9c064749
227 changed files with 1251 additions and 912 deletions
+17 -24
View File
@@ -60,19 +60,20 @@ export async function GET(
return NextResponse.json({ error: "无权访问此家族树" }, { status: 403 })
}
// 获取家族树信息
const tree = await prisma.familyTree.findUnique({
where: { id: treeId },
select: { rootMemberId: true }
})
const members = await prisma.familyMember.findMany({
where: { treeId },
orderBy: [
{ generation: 'asc' },
{ createdAt: 'asc' }
]
})
// 并行获取家族树信息和成员数据
const [tree, members] = await Promise.all([
prisma.familyTree.findUnique({
where: { id: treeId },
select: { rootMemberId: true }
}),
prisma.familyMember.findMany({
where: { treeId },
orderBy: [
{ generation: 'asc' },
{ createdAt: 'asc' }
]
})
])
// 如果没有设置 rootMemberId,尝试找到第一代成员作为根
let rootId = tree?.rootMemberId
@@ -80,22 +81,14 @@ export async function GET(
const firstGenMember = members.find((m: any) => m.generation === 1)
if (firstGenMember) {
rootId = firstGenMember.id
// 更新家族树的 rootMemberId
await prisma.familyTree.update({
// 异步更新家族树的 rootMemberId(不阻塞响应)
prisma.familyTree.update({
where: { id: treeId },
data: { rootMemberId: firstGenMember.id }
})
}).catch(err => console.error('更新 rootMemberId 失败:', err))
}
}
console.log('👥 GET /api/trees/[treeId]/members 返回数据:', {
treeId,
userId: session.user.id,
membersCount: members.length,
rootId,
members: members.map(m => ({ id: m.id, fullName: m.fullName, generation: m.generation }))
})
return NextResponse.json({ members, rootId })
} catch (error) {
console.error("获取成员失败:", error)