Files
WebWork/backend/controllers/teacherController.js
祀梦 b1da021185 feat: 实现教师资料更新、操作日志和系统设置功能
新增教师资料更新功能,包括个人信息修改和密码更新
添加操作日志记录系统,记录用户关键操作
实现系统设置模块,支持动态配置系统参数
重构数据库模型,新增教师表和系统设置表
优化成绩录入逻辑,支持平时分、期中和期末成绩计算
添加数据导出功能,支持学生、教师和成绩数据导出
完善管理员后台,增加统计图表和操作日志查看
2025-12-22 23:30:01 +08:00

104 lines
3.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const TeacherService = require('../services/teacherService');
const { success, error } = require('../utils/response');
class TeacherController {
static async getCourses(req, res) {
try {
const teacherId = req.session.user.id; // 注意:这里假设 user.id 就是 teacher_id需要根据 users 表设计确认
// 在之前的 SQL 中courses.teacher_id 是 INT而 users.id 是 VARCHAR。
// 这里可能存在类型不匹配的问题。
// 假设 users 表中 id 既是学号/工号,也是关联键。
// 实际上,之前的 teacher.js 中是直接用 req.session.user.id 查询。
const courses = await TeacherService.getCourses(teacherId);
success(res, { courses });
} catch (err) {
console.error('Get Courses Error:', err);
error(res, '服务器错误');
}
}
static async getClasses(req, res) {
try {
const classes = await TeacherService.getClasses();
success(res, { classes });
} catch (err) {
console.error('Get Classes Error:', err);
error(res, '服务器错误');
}
}
static async getMyClasses(req, res) {
try {
const teacherId = req.session.user.id;
const classes = await TeacherService.getTeacherClasses(teacherId);
success(res, { classes });
} catch (err) {
console.error('Get My Classes Error:', err);
error(res, '服务器错误');
}
}
static async createCourse(req, res) {
try {
const teacherId = req.session.user.id;
const courseId = await TeacherService.createCourse(teacherId, req.body);
success(res, { courseId }, '课程创建成功');
} catch (err) {
console.error('Create Course Error:', err);
error(res, '服务器错误');
}
}
static async updateCourse(req, res) {
try {
const teacherId = req.session.user.id;
const courseId = req.params.id;
await TeacherService.updateCourse(teacherId, courseId, req.body);
success(res, null, '课程更新成功');
} catch (err) {
if (err.message === '无权修改该课程或课程不存在') {
return error(res, err.message, 403);
}
console.error('Update Course Error:', err);
error(res, '服务器错误');
}
}
static async getGrades(req, res) {
try {
const teacherId = req.session.user.id;
const filters = {
courseId: req.query.courseId,
studentName: req.query.studentName
};
const grades = await TeacherService.getGrades(teacherId, filters);
success(res, { grades });
} catch (err) {
console.error('Get Grades Error:', err);
error(res, '服务器错误');
}
}
static async addScore(req, res) {
try {
const teacherId = req.session.user.id;
const { studentId, courseId, score } = req.body;
if (!studentId || !courseId || score === undefined) {
return error(res, '请填写必填字段', 400);
}
const gradeId = await TeacherService.addScore(teacherId, req.body);
success(res, { gradeId }, '成绩录入成功');
} catch (err) {
if (err.message === '学生不存在' || err.message === '该学生此课程成绩已存在') {
return error(res, err.message, 400);
}
console.error('Add Score Error:', err);
error(res, '服务器错误');
}
}
}
module.exports = TeacherController;