feat: 多班级版 v2.0 - Go后端重写 + 43轮代码审查

- 后端从 Python FastAPI 重写为 Go Gin(端口 56789)
- 多班级完全隔离
- 超级管理员独立登录
- 课代表作业管理、排行榜分项排行
- 角色加减分上下限可配置
- 家长改密功能(可开关)
- 周度/月度重置功能
- MySQL 5.7 兼容
- 43轮代码审查+全部修复
- Apache 2.0 许可证
This commit is contained in:
2026-06-22 10:06:10 +08:00
parent 4084afc53c
commit d6dec878bd
214 changed files with 12622 additions and 9725 deletions

View File

@@ -1,11 +1,11 @@
<?php
/**
* 班级操行分管理系统 - 登录入口
* 多班级版班级管理系统 - 登录入口
*
* 开发者: Canglan
* 联系方式: admin@sea-studio.top
* 版权归属: Sea Network Technology Studio
* 许可证: MIT License
* 许可证: Apache License 2.0
*
* 版权所有 © Sea Network Technology Studio
*/
@@ -16,7 +16,8 @@ if (isset($_SESSION['user_id']) && isset($_SESSION['user_type'])) {
$redirect = [
'student' => '/student/dashboard.php',
'parent' => '/parent/dashboard.php',
'admin' => '/admin/dashboard.php'
'admin' => '/admin/dashboard.php',
'super_admin' => '/admin/dashboard.php'
];
header("Location: " . ($redirect[$_SESSION['user_type']] ?? '/index.php'));
exit();
@@ -27,14 +28,14 @@ if (isset($_SESSION['user_id']) && isset($_SESSION['user_type'])) {
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title><?php echo SITE_NAME; ?> - 登录</title>
<title><?php echo htmlspecialchars(SITE_NAME, ENT_QUOTES, 'UTF-8'); ?> - 登录</title>
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<div class="login-container">
<div class="login-header">
<h1><?php echo SITE_NAME; ?></h1>
<p>学生 / 家长 / 管理 统一登录</p>
<h1><?php echo htmlspecialchars(SITE_NAME, ENT_QUOTES, 'UTF-8'); ?></h1>
<p>学生 / 家长 / 管理 统一登录</p>
</div>
<form id="loginForm" class="login-form">
@@ -59,9 +60,9 @@ if (isset($_SESSION['user_id']) && isset($_SESSION['user_type'])) {
</div>
<script>
window.API_BASE_URL = '<?php echo API_BASE_URL; ?>';
window.JWT_STORAGE_KEY = '<?php echo JWT_STORAGE_KEY; ?>';
window.USER_STORAGE_KEY = '<?php echo USER_STORAGE_KEY; ?>';
window.API_BASE_URL = <?php echo json_encode(API_BASE_URL); ?>;
window.JWT_STORAGE_KEY = <?php echo json_encode(JWT_STORAGE_KEY); ?>;
window.USER_STORAGE_KEY = <?php echo json_encode(USER_STORAGE_KEY); ?>;
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
@@ -105,7 +106,9 @@ if (isset($_SESSION['user_id']) && isset($_SESSION['user_type'])) {
username: userData.username,
real_name: userData.real_name,
role: userData.role || '',
student_id: userData.student_id || null
student_id: userData.student_id || null,
class_id: userData.class_id || null,
class_name: userData.class_name || ''
})
});