import { NextRequest, NextResponse } from 'next/server'; import { getServerSession } from 'next-auth'; import { authOptions } from '@/lib/auth'; import { prisma } from '@/lib/prisma'; import { getEmployeeByUserId } from '@/lib/employee-directory'; // GET - 获取当前用户信息(账号字段 + 权威人员档案合并) export async function GET(request: NextRequest) { try { const session = await getServerSession(authOptions); const userId = session?.user ? (session.user as any).id : undefined; if (!userId) { return NextResponse.json({ error: '未登录' }, { status: 401 }); } const user = await prisma.user.findUnique({ where: { id: userId }, select: { id: true, username: true, email: true, avatar: true, realName: true, phone: true, createdAt: true, }, }); if (!user) { return NextResponse.json({ error: '用户不存在' }, { status: 404 }); } // 权威人员档案(钉钉绑定 → HR 花名册视图);未绑定者为 null const employee = await getEmployeeByUserId(user.id); return NextResponse.json({ ...user, // 旧 department 字符串已淘汰,不再返回 employee: employee ? { displayName: employee.displayName, realName: employee.realName, flowerName: employee.flowerName, jobNumber: employee.jobNumber, departmentPath: employee.departmentPath, positionTitle: employee.positionTitle, positionLevel: employee.positionLevel, levelType: employee.levelType, managerName: employee.managerName, employmentStatus: employee.employmentStatus, } : null, }); } catch (error) { console.error('[UserProfile] GET error:', error); return NextResponse.json( { error: '获取用户信息失败' }, { status: 500 } ); } }