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

@@ -3,7 +3,42 @@ const router = express.Router();
const AdminController = require('../controllers/adminController');
const { requireAuth, requireRole } = require('../middleware/auth');
router.get('/stats', requireAuth, requireRole(['admin']), AdminController.getStats);
router.get('/users', requireAuth, requireRole(['admin']), AdminController.getUsers);
router.post('/users', requireAuth, requireRole(['admin']), AdminController.createUser);
router.put('/users/:id', requireAuth, requireRole(['admin']), AdminController.updateUser);
router.delete('/users/:id', requireAuth, requireRole(['admin']), AdminController.deleteUser);
// Student Management
router.get('/students', requireAuth, requireRole(['admin']), AdminController.getStudents);
router.post('/students', requireAuth, requireRole(['admin']), AdminController.createStudent);
router.put('/students/:id', requireAuth, requireRole(['admin']), AdminController.updateStudent);
router.delete('/students/:id', requireAuth, requireRole(['admin']), AdminController.deleteStudent);
// Teacher Management
router.get('/teachers', requireAuth, requireRole(['admin']), AdminController.getTeachers);
router.post('/teachers', requireAuth, requireRole(['admin']), AdminController.createTeacher);
router.put('/teachers/:id', requireAuth, requireRole(['admin']), AdminController.updateTeacher);
router.delete('/teachers/:id', requireAuth, requireRole(['admin']), AdminController.deleteTeacher);
// Grade Statistics
router.get('/grade-stats', requireAuth, requireRole(['admin']), AdminController.getGradeStats);
// System Settings
router.get('/settings', requireAuth, requireRole(['admin']), AdminController.getSettings);
router.post('/settings', requireAuth, requireRole(['admin']), AdminController.saveSettings);
// Data Maintenance
router.post('/maintenance/backup', requireAuth, requireRole(['admin']), AdminController.backupDatabase);
router.post('/maintenance/clear-cache', requireAuth, requireRole(['admin']), AdminController.clearCache);
router.post('/maintenance/reset-passwords', requireAuth, requireRole(['admin']), AdminController.resetStudentPasswords);
// Data Export
router.get('/export/students', requireAuth, requireRole(['admin']), AdminController.exportStudents);
router.get('/export/teachers', requireAuth, requireRole(['admin']), AdminController.exportTeachers);
router.get('/export/grades', requireAuth, requireRole(['admin']), AdminController.exportGrades);
// Operation Logs
router.get('/logs', requireAuth, requireRole(['admin']), AdminController.getOperationLogs);
module.exports = router;