golang-yitisheng-server/project_doing.md

59 lines
3.5 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.

# 项目过程记录
## 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` 对象。