# 代码库函数概览 ## server/common - `constants`: 存放全局常量,如 `RedisTokenPrefix`, `TokenHeader`, `StateActive` 等。 - `id_utils`: ID 生成工具,提供 `GenerateLongID()` 和 `GenerateStringID()`。 - `Response`: 统一的HTTP响应结构体 `{Code, Message, Data}`。 - `Success(c *gin.Context, data interface{})`: 发送成功响应。 - `Error(c *gin.Context, code int, msg string)`: 发送错误响应。 ## server/config - `LoadConfig()`: 加载配置。 - 优先级1:命令行参数 `-c` 或 `-config` 指定的文件。 - 优先级2:环境变量 `GO_ENV` 决定的文件(查找顺序:`./config.{env}.yaml` -> `config/config.{env}.yaml` -> `../config/config.{env}.yaml`)。 - `AppConfig`: 全局配置对象,包含 Log, Server, Database 等配置。 - `InitDB()`: 初始化GORM数据库连接,支持 SQL 日志配置(自动写入 `logs/sql-YYYY-MM-DD.log`)。 - `InitRedis()`: 初始化Redis客户端。 - `AppConfig`: 全局配置变量,包含 `Log`, `Security`, `RateLimit`, `Swagger`, `Database`, `Redis` 配置。 ## server/middleware - `AuthMiddleware`: JWT认证中间件。 - `SecurityMiddleware`: 安全校验中间件(请求头签名)。 - `RateLimitMiddleware`: 接口限流中间件。 - `CorsMiddleware`: 跨域资源共享中间件。 ## server/modules/yx - `YxSchoolMajorController`: 院校专业控制器。 - `YxHistoryMajorEnrollController`: 历年招生记录控制器。 - `YxCalculationMajorController`: 计算专业控制器。 - `YxUserScoreController`: 用户分数控制器。 - `YxVolunteerController`: 志愿控制器。 - `YxVolunteerRecordController`: 志愿明细控制器。 ## server/modules/yx/service - `YxCalculationMajorService`: - `BatchCreateBySchoolMajorDTO(tableName string, items []dto.SchoolMajorDTO, scoreID string)`: 根据 SchoolMajorDTO 列表批量创建计算专业数据,支持动态表名。 - `BatchCreate(tableName string, items []entity.YxCalculationMajor)`: 批量创建计算专业数据,支持动态表名。 ## server/modules/user/service - `UserScoreService`: - `GetActiveByID(userID string)`: 获取用户当前激活状态的成绩 VO。 - `GetByID(id string)`: 根据 ID 获取特定成绩 VO。 - `GetActiveScoreID(userID string)`: 获取用户当前激活的成绩ID。 - `UpdateFields(id string, fields map[string]interface{})`: 更新成绩字段。 - `Delete(id string)`: 删除成绩记录。 - `SaveUserScore(req *dto.SaveScoreRequest)`: 保存用户成绩,返回保存后的 VO。 - `ListByUser(userID string, page, size int)`: 分页获取用户的成绩列表。 - `UserScoreVO`: 用户成绩视图对象,包含基础信息、选课列表及子专业成绩映射。 ## server/modules/yx/service - `YxVolunteerService`: - `UpdateName(id, name, userID string)`: 编辑志愿单名称(权属校验)。 - `ListByUser(userID string, page, size int)`: 获取当前用户志愿单列表(关联成绩数据)。 - `DeleteVolunteer(...)`: 删除志愿单(级联删除计算表、成绩、明细)。 - `SwitchVolunteer(id, userID string, scoreService IScoreService)`: 切换当前志愿单(同步同步成绩状态)。