feat: 实现教师资料更新、操作日志和系统设置功能

新增教师资料更新功能,包括个人信息修改和密码更新
添加操作日志记录系统,记录用户关键操作
实现系统设置模块,支持动态配置系统参数
重构数据库模型,新增教师表和系统设置表
优化成绩录入逻辑,支持平时分、期中和期末成绩计算
添加数据导出功能,支持学生、教师和成绩数据导出
完善管理员后台,增加统计图表和操作日志查看
This commit is contained in:
祀梦
2025-12-22 23:30:01 +08:00
parent 16802c85e5
commit b1da021185
43 changed files with 7860 additions and 2835 deletions

View File

@@ -2,10 +2,15 @@ const db = require('../config/database');
class Course {
static async findByTeacherId(teacherId) {
return await db.query(
'SELECT * FROM courses WHERE teacher_id = ? ORDER BY course_code',
[teacherId]
);
const sql = `
SELECT c.*, cl.class_name,
(SELECT COUNT(*) FROM students s WHERE s.class = cl.class_name) as student_count
FROM courses c
LEFT JOIN classes cl ON c.class_id = cl.id
WHERE c.teacher_id = ?
ORDER BY c.course_code
`;
return await db.query(sql, [teacherId]);
}
static async findById(id) {
@@ -37,6 +42,28 @@ class Course {
`;
return await db.query(sql, [studentId]);
}
static async getClasses() {
return await db.query('SELECT * FROM classes');
}
static async create(data) {
const { course_name, course_code, credit, teacher_id, semester, class_id, category } = data;
const sql = `INSERT INTO courses (course_name, course_code, credit, teacher_id, semester, class_id, category) VALUES (?, ?, ?, ?, ?, ?, ?)`;
const result = await db.query(sql, [course_name, course_code, credit, teacher_id, semester, class_id, category]);
return result.insertId;
}
static async update(id, data) {
const { course_name, course_code, credit, semester, class_id } = data;
const sql = `
UPDATE courses
SET course_name = ?, course_code = ?, credit = ?, semester = ?, class_id = ?
WHERE id = ?
`;
const result = await db.query(sql, [course_name, course_code, credit, semester, class_id, id]);
return result.affectedRows > 0;
}
}
module.exports = Course;