- 新增成绩分析页面,包含GPA趋势图、成绩分布图和学分进度 - 实现学生密码修改功能,包括前端表单和后端验证逻辑 - 添加课程类别分析功能,展示不同类别课程的GPA表现 - 优化学生仪表板和课程页面导航链接 - 增加数据加载状态提示和错误处理
78 lines
2.6 KiB
JavaScript
78 lines
2.6 KiB
JavaScript
const StudentService = require('../services/studentService');
|
|
const { success, error } = require('../utils/response');
|
|
|
|
class StudentController {
|
|
static async getCourses(req, res) {
|
|
try {
|
|
const userId = req.session.user.id;
|
|
const data = await StudentService.getStudentCourses(userId);
|
|
success(res, data);
|
|
} catch (err) {
|
|
if (err.message === '学生信息不存在') {
|
|
return error(res, err.message, 404);
|
|
}
|
|
console.error('Get Courses Error:', err);
|
|
error(res, '服务器错误');
|
|
}
|
|
}
|
|
|
|
static async getCourseDetails(req, res) {
|
|
try {
|
|
const courseId = req.params.id;
|
|
const data = await StudentService.getCourseDetails(courseId);
|
|
success(res, data);
|
|
} catch (err) {
|
|
if (err.message === '课程不存在') {
|
|
return error(res, err.message, 404);
|
|
}
|
|
console.error('Get Course Details Error:', err);
|
|
error(res, '服务器错误');
|
|
}
|
|
}
|
|
|
|
static async getGrades(req, res) {
|
|
try {
|
|
const userId = req.session.user.id;
|
|
const data = await StudentService.getStudentGrades(userId);
|
|
success(res, data);
|
|
} catch (err) {
|
|
if (err.message === '学生信息不存在') {
|
|
return error(res, err.message, 404);
|
|
}
|
|
console.error('Get Grades Error:', err);
|
|
error(res, '服务器错误');
|
|
}
|
|
}
|
|
|
|
static async getGradeDetails(req, res) {
|
|
try {
|
|
const scoreId = req.params.id;
|
|
const userId = req.session.user.id;
|
|
const grade = await StudentService.getGradeDetails(scoreId, userId);
|
|
success(res, { grade });
|
|
} catch (err) {
|
|
if (err.message === '成绩不存在') {
|
|
return error(res, err.message, 404);
|
|
}
|
|
console.error('Get Grade Details Error:', err);
|
|
error(res, '服务器错误');
|
|
}
|
|
}
|
|
|
|
static async getGradeStatistics(req, res) {
|
|
try {
|
|
const userId = req.session.user.id;
|
|
const data = await StudentService.getGradeStatistics(userId);
|
|
success(res, data);
|
|
} catch (err) {
|
|
if (err.message === '学生信息不存在') {
|
|
return error(res, err.message, 404);
|
|
}
|
|
console.error('Get Grade Statistics Error:', err);
|
|
error(res, '服务器错误');
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = StudentController;
|