Files
WebWork/backend/controllers/studentController.js
祀梦 16802c85e5 feat(学生): 添加成绩分析功能及密码修改功能
- 新增成绩分析页面,包含GPA趋势图、成绩分布图和学分进度
- 实现学生密码修改功能,包括前端表单和后端验证逻辑
- 添加课程类别分析功能,展示不同类别课程的GPA表现
- 优化学生仪表板和课程页面导航链接
- 增加数据加载状态提示和错误处理
2025-12-22 21:07:21 +08:00

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;