66 lines
1.7 KiB
TypeScript
66 lines
1.7 KiB
TypeScript
import { NextRequest, NextResponse } from 'next/server'
|
|
import { prisma } from '@/lib/prisma'
|
|
|
|
export async function POST(request: NextRequest) {
|
|
try {
|
|
const { userId, department } = await request.json()
|
|
|
|
if (!userId || !department) {
|
|
return NextResponse.json(
|
|
{ success: false, message: '缺少必要参数' },
|
|
{ status: 400 }
|
|
)
|
|
}
|
|
|
|
console.log('完善用户信息(选择部门):', { userId, department })
|
|
|
|
// 获取当前钉钉用户信息
|
|
const currentUser = await prisma.user.findUnique({
|
|
where: { id: userId }
|
|
})
|
|
|
|
if (!currentUser) {
|
|
return NextResponse.json(
|
|
{ success: false, message: '用户不存在' },
|
|
{ status: 404 }
|
|
)
|
|
}
|
|
|
|
// 直接更新部门信息(用户名已在登录时设置)
|
|
const user = await prisma.user.update({
|
|
where: { id: userId },
|
|
data: {
|
|
department,
|
|
}
|
|
})
|
|
|
|
console.log('用户信息更新成功:', user.username)
|
|
|
|
// 返回用户信息(不包含敏感信息)
|
|
return NextResponse.json({
|
|
success: true,
|
|
message: '信息完善成功',
|
|
user: {
|
|
id: user.id,
|
|
username: user.username,
|
|
email: user.email,
|
|
realName: user.realName,
|
|
avatar: user.avatar,
|
|
role: user.role,
|
|
department: user.department,
|
|
isActive: user.isActive
|
|
}
|
|
})
|
|
|
|
} catch (error: any) {
|
|
console.error('完善用户信息失败:', error)
|
|
return NextResponse.json(
|
|
{
|
|
success: false,
|
|
message: error.message || '信息提交失败,请稍后再试'
|
|
},
|
|
{ status: 500 }
|
|
)
|
|
}
|
|
}
|