first commit

This commit is contained in:
2025-06-05 23:05:33 +08:00
parent 6c50403cf6
commit 2da15fa933
67 changed files with 19905 additions and 1935 deletions

View File

@@ -0,0 +1,57 @@
//src\pages\api\users\[id].ts
import type { NextApiRequest, NextApiResponse } from 'next';
import { User } from '@/models';
import connectDB from '@/utils/ConnectDB';
import { IUser } from '@/models/types'; // 导入 IUser 接口类型
import bcrypt from 'bcryptjs';
const handler = async (req: NextApiRequest, res: NextApiResponse) => {
const { query: { id }, method } = req;
switch (method) {
case 'GET':
try {
const user = await User.findById(id).populate('团队').populate('角色') as IUser; // 断言为 IUser 类型
if (!user) {
return res.status(404).json({ message: '未找到用户' });
}
res.status(200).json(user);
} catch (error) {
res.status(500).json({ message: '服务器错误' });
}
break;
case 'PUT':
try {
const { , , , , , , , unionid, openid, } = req.body as IUser; // 断言为 IUser 类型
const updateData = { , , , , , , , unionid, openid } as IUser; // 断言为 IUser 类型
// 只有当密码字段存在且非空时,才进行更新密码操作
if () {
updateData. = await bcrypt.hash(, 10);
}
const updatedUser = await User.findByIdAndUpdate(id, updateData, { new: true }) as IUser; // 断言为 IUser 类型
if (!updatedUser) {
return res.status(404).json({ message: '未找到用户' });
}
res.status(200).json({ message: '用户更新成功', user: updatedUser });
} catch (error) {
res.status(400).json({ message: '更新用户失败' });
}
break;
case 'DELETE':
try {
const deletedUser = await User.findByIdAndDelete(id);
if (!deletedUser) {
return res.status(404).json({ message: '未找到用户' });
}
res.status(200).json({ message: '用户删除成功' });
} catch (error) {
res.status(500).json({ message: '服务器错误' });
}
break;
default:
res.setHeader('Allow', ['GET', 'PUT', 'DELETE']);
res.status(405).end(`不允许 ${method} 方法`);
}
};
export default connectDB(handler);