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

50 lines
1.6 KiB
JavaScript

const Course = require('../models/Course');
const Score = require('../models/Score');
const Student = require('../models/Student');
class TeacherService {
static async getCourses(teacherId) {
return await Course.findByTeacherId(teacherId);
}
static async addScore(teacherId, scoreData) {
const { studentId, courseId, score } = scoreData;
// 验证学生
const student = await Student.findById(studentId);
if (!student) {
throw new Error('学生不存在');
}
// 验证课程(可选:验证是否是该教师的课程)
// const course = await Course.findById(courseId);
// 检查重复
const existingScore = await Score.findByStudentAndCourse(studentId, courseId);
if (existingScore) {
throw new Error('该学生此课程成绩已存在');
}
// 计算绩点和等级
const numericScore = parseFloat(score);
let gradePoint = 0;
let gradeLevel = 'F';
if (numericScore >= 90) { gradePoint = 4.0; gradeLevel = 'A'; }
else if (numericScore >= 80) { gradePoint = 3.0; gradeLevel = 'B'; }
else if (numericScore >= 70) { gradePoint = 2.0; gradeLevel = 'C'; }
else if (numericScore >= 60) { gradePoint = 1.0; gradeLevel = 'D'; }
const fullScoreData = {
...scoreData,
teacherId,
gradePoint,
gradeLevel
};
const gradeId = await Score.create(fullScoreData);
return gradeId;
}
}
module.exports = TeacherService;