# 代码库函数概览

## 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。
  - `SaveUserScore(req *dto.SaveScoreRequest)`: 保存用户成绩，返回保存后的 VO。
  - `ListByUser(userID string, page, size int)`: 分页获取用户的成绩列表。
 - `UserScoreVO`: 用户成绩视图对象，包含基础信息、选课列表及子专业成绩映射。
