59 lines
3.5 KiB
Markdown
59 lines
3.5 KiB
Markdown
# 项目过程记录
|
||
|
||
## 2025-12-17
|
||
### [任务执行] 初始化模块 yitisheng/yx_user_score
|
||
- **操作目标**: 创建新的业务模块目录,并准备实现用户分数和志愿管理功能。
|
||
- **影响范围**: `server/modules/yitisheng/yx_user_score/`
|
||
- **修改前记录**: 项目中暂无此模块。
|
||
|
||
### [任务执行] 修正模块路径并实现 CRUD
|
||
- **操作目标**: 根据 Task3.md 要求,将 yx_user_score, yx_volunteer, yx_volunteer_record 实现于 modules/yx/ 下。
|
||
- **影响范围**: `server/modules/yx/`
|
||
- **修改结果**:
|
||
- 删除了错误的 `modules/yitisheng` 目录(尝试删除)。
|
||
- 在 `modules/yx` 下实现了 Entity, Mapper, Service, Controller。
|
||
- 更新了 `main.go` 注册路由。
|
||
|
||
### [任务执行] 增加 Swagger 文档访问密码验证
|
||
- **操作目标**: 为 Swagger 文档接口添加 Basic Auth 验证,防止未授权访问。
|
||
- **影响范围**: `server/config/config.go`, `server/main.go`
|
||
- **修改前记录**: Swagger 接口公开,无验证。
|
||
- **修改结果**:
|
||
- `server/config/config.go`: 新增 `SwaggerConfig` 配置项 (默认 admin/password)。
|
||
- `server/main.go`: 为 `/swagger` 路由组添加了 `gin.BasicAuth` 中间件。
|
||
|
||
### [任务执行] 解决本地调试 CORS 问题
|
||
- **操作目标**: 允许前端 Vue3 项目跨域调用后端接口。
|
||
- **影响范围**: `server/middleware/cors.go`, `server/main.go`
|
||
- **修改前记录**: 后端未配置 CORS,前端跨域请求被拦截。
|
||
- **修改结果**:
|
||
- `server/middleware/cors.go`: 创建了 CORS 中间件,允许 `Origin` 头部指定的来源,并放行 `OPTIONS` 请求。
|
||
- `server/main.go`: 全局注册了 CORS 中间件。
|
||
|
||
### [任务执行] 实现用户成绩保存接口
|
||
- **操作目标**: 根据 Task4.md 要求,实现用户成绩信息的保存接口,并包含特定的业务校验逻辑。
|
||
- **影响范围**: `server/modules/yx/controller/yx_user_score_controller.go`
|
||
- **修改前记录**: `YxUserScoreController` 仅有基本的 CRUD 接口。
|
||
- **修改结果**:
|
||
- 定义了 `SaveScoreRequest` 结构体,包含严格的字段校验逻辑(文理分科、科目限制、成绩范围等)。
|
||
- 实现了 `SaveUserScore` 方法,处理 DTO 到 Entity 的转换(包括科目列表拼接、子专业成绩映射)。
|
||
- 注册了 `POST /yx-user-scores/save-score` 路由。
|
||
|
||
### [任务执行] 重构 DTO 代码结构
|
||
- **操作目标**: 将 `SaveScoreRequest` 结构体从 Controller 中分离到独立的 DTO 包中。
|
||
- **影响范围**: `server/modules/yx/dto/yx_user_score_dto.go`, `server/modules/yx/controller/yx_user_score_controller.go`
|
||
- **修改前记录**: DTO 结构体直接定义在 Controller 文件中。
|
||
- **修改结果**:
|
||
- 创建了 `server/modules/yx/dto/` 目录。
|
||
- 将 `SaveScoreRequest` 及其校验逻辑移动到 `yx_user_score_dto.go`。
|
||
- Controller 改为引用 `dto` 包。
|
||
|
||
### [任务执行] 处理 UserScoreVO 信息转换
|
||
- **操作目标**: 在 `UserScoreService` 中实现 Entity 到 VO 的转换,并完善 `UserScoreVO` 定义。
|
||
- **影响范围**: `server/modules/user/vo/user_score_vo.go`, `server/modules/user/service/user_score_service.go`
|
||
- **修改前记录**: `UserScoreVO` 为空,`GetActiveByID` 返回原始 Entity。
|
||
- **修改结果**:
|
||
- 定义了 `UserScoreVO` 结构体,其字段设计参考了 `SaveScoreRequest`。
|
||
- 在 `UserScoreService` 中实现了 `convertEntityToVo` 私有方法,处理了逗号分隔字符串到切片的转换,以及具体分数字段到 Map 的映射。
|
||
- 更新 `GetActiveByID` 返回 `UserScoreVO` 对象。
|