import { NextRequest, NextResponse } from 'next/server'; import { getServerSession } from 'next-auth'; import { authOptions } from '@/lib/auth'; import { prisma } from '@/lib/prisma'; // GET /api/users/list - 获取用户列表(用于下拉选择) export async function GET(request: NextRequest) { try { const session = await getServerSession(authOptions); if (!session?.user) { return NextResponse.json({ error: '请先登录' }, { status: 401 }); } // 只返回人员选择器实际需要的最小字段,避免向普通登录用户暴露邮箱等信息。 const users = await prisma.user.findMany({ where: { isActive: true, status: 'active', archivedAt: null, }, select: { id: true, username: true, realName: true, }, orderBy: { username: 'asc', }, }); // 返回用户列表,优先显示真实姓名 const userList = users.map(user => ({ id: user.id, username: user.username, displayName: user.realName || user.username, })); return NextResponse.json(userList, { status: 200 }); } catch (error) { console.error('Error fetching users:', error); return NextResponse.json({ error: '获取用户列表失败' }, { status: 500 }); } }