golang-yitisheng-server/project_codebase.md

55 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 代码库函数概览
## 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)`: 切换当前志愿单(同步同步成绩状态)。