import { NextResponse } from 'next/server'; import { mainPrisma } from '@/lib/db'; import { getAdminSession } from '@/lib/auth'; export async function GET( request: Request, { params }: { params: Promise<{ projectCode: string }> } ) { try { const session = await getAdminSession(); const { projectCode } = await params; if (!session) { return NextResponse.json( { error: '未登录' }, { status: 401 } ); } // 获取项目信息 const project = await mainPrisma.project.findUnique({ where: { code: projectCode }, }); if (!project) { return NextResponse.json( { error: '项目不存在' }, { status: 404 } ); } // 检查权限 const admin = await mainPrisma.admin.findUnique({ where: { id: session.id }, include: { adminProjects: true, }, }); if (!admin) { return NextResponse.json( { error: '管理员不存在' }, { status: 404 } ); } // 超管可以访问所有项目 if (!admin.isSuperAdmin) { const hasAccess = admin.adminProjects.some( (ap: { projectId: string }) => ap.projectId === project.id ); if (!hasAccess) { return NextResponse.json( { error: '无权访问此项目' }, { status: 403 } ); } } // 返回项目信息(不包含敏感的数据库连接信息) return NextResponse.json({ id: project.id, code: project.code, name: project.name, description: project.description, isActive: project.isActive, createdAt: project.createdAt, }); } catch (error) { console.error('获取项目信息失败:', error); return NextResponse.json( { error: '服务器错误' }, { status: 500 } ); } }