题库导入功能完成,考试计划功能完成。
This commit is contained in:
@@ -83,6 +83,67 @@ export class AdminUserController {
|
||||
}
|
||||
}
|
||||
|
||||
// 更新用户信息
|
||||
static async updateUser(req: Request, res: Response) {
|
||||
try {
|
||||
const { id } = req.params;
|
||||
const { name, phone, password } = req.body;
|
||||
|
||||
const user = await UserModel.findById(id);
|
||||
if (!user) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: '用户不存在'
|
||||
});
|
||||
}
|
||||
|
||||
// 准备更新数据
|
||||
const updateData: Partial<{ name: string; phone: string; password: string }> = {};
|
||||
if (name !== undefined) updateData.name = name;
|
||||
if (phone !== undefined) updateData.phone = phone;
|
||||
if (password !== undefined) updateData.password = password;
|
||||
|
||||
// 更新用户
|
||||
const updatedUser = await UserModel.update(id, updateData);
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: updatedUser
|
||||
});
|
||||
} catch (error: any) {
|
||||
// 处理手机号已存在的错误
|
||||
if (error.message === '手机号已存在') {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '手机号已存在'
|
||||
});
|
||||
}
|
||||
|
||||
// 处理SQLITE_CONSTRAINT_UNIQUE错误
|
||||
if (error.code === 'SQLITE_CONSTRAINT_UNIQUE') {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '手机号已存在'
|
||||
});
|
||||
}
|
||||
|
||||
// 处理数据验证错误
|
||||
if (error.message.includes('姓名长度必须在2-20个字符之间') ||
|
||||
error.message.includes('手机号格式不正确')) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: error.message
|
||||
});
|
||||
}
|
||||
|
||||
// 处理其他错误
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: error.message || '更新用户失败'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
static async importUsers(req: Request, res: Response) {
|
||||
try {
|
||||
const file = (req as any).file;
|
||||
|
||||
Reference in New Issue
Block a user