Files
SharedClassManager/backend-go/internal/handler/super_admin_handler.go
canglan d6dec878bd feat: 多班级版 v2.0 - Go后端重写 + 43轮代码审查
- 后端从 Python FastAPI 重写为 Go Gin(端口 56789)
- 多班级完全隔离
- 超级管理员独立登录
- 课代表作业管理、排行榜分项排行
- 角色加减分上下限可配置
- 家长改密功能(可开关)
- 周度/月度重置功能
- MySQL 5.7 兼容
- 43轮代码审查+全部修复
- Apache 2.0 许可证
2026-06-22 10:06:10 +08:00

57 lines
1.5 KiB
Go

// ===========================================
// 多班级版班级管理系统 - Go 后端
//
// 开发者: Canglan
// 联系方式: admin@sea-studio.top
// 版权归属: Sea Network Technology Studio
// 许可证: Apache License 2.0
//
// 版权所有 © Sea Network Technology Studio
// ===========================================
package handler
import (
"github.com/gin-gonic/gin"
"hz-gitea.sea-studio.top/canglan/SharedClassManager/internal/schema"
"hz-gitea.sea-studio.top/canglan/SharedClassManager/internal/service"
"hz-gitea.sea-studio.top/canglan/SharedClassManager/pkg/response"
)
// SuperAdminHandler 超级管理员处理器
type SuperAdminHandler struct {
superAdminService *service.SuperAdminService
}
// NewSuperAdminHandler 创建超级管理员处理器
func NewSuperAdminHandler(superAdminService *service.SuperAdminService) *SuperAdminHandler {
return &SuperAdminHandler{superAdminService: superAdminService}
}
// Login 超级管理员登录
func (h *SuperAdminHandler) Login(c *gin.Context) {
var req schema.LoginRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.BadRequest(c, "参数错误")
return
}
ip := c.ClientIP()
userAgent := c.GetHeader("User-Agent")
result, err := h.superAdminService.Login(req.Username, req.Password, ip, userAgent)
if err != nil {
response.InternalError(c, err.Error())
return
}
success, ok := result["success"].(bool)
if !ok || !success {
msg, _ := result["message"].(string)
response.Unauthorized(c, msg)
return
}
response.Success(c, result, "登录成功")
}