Files
WebWork/backend/controllers/teacherController.js
祀梦 b9a975004b feat: 实现成绩管理系统核心功能
添加响应工具、错误处理中间件和数据库模型
创建用户、学生、课程和成绩相关服务
实现管理员、教师和学生控制器的基本功能
重构路由处理并优化数据库查询
2025-12-21 22:10:48 +08:00

42 lines
1.7 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 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;