4.9 KiB
4.9 KiB
项目过程记录
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对象。
- 定义了
[任务执行] 增加用户成绩分页列表接口
- 操作目标: 在
UserScoreController和UserScoreService中增加获取当前用户所有成绩的分页列表接口。 - 影响范围:
server/modules/user/service/user_score_service.go,server/modules/user/controller/user_score_controller.go - 修改前记录: 仅支持获取当前激活的单条成绩。
- 修改结果:
- 在
UserScoreService中实现了ListByUser方法,支持分页查询并返回 VO 列表。 - 在
UserScoreController中增加了List方法,并注册了GET /user/score/list路由。
- 在
[任务执行] 统一管理 Redis Key 及全局常量
- 操作目标: 创建专门存放 Redis Key 和业务常量的地方,并重构相关代码以引用这些常量。
- 影响范围:
server/common/constants.go,server/modules/system/service/sys_user_service.go,server/middleware/auth.go,server/common/context.go - 修改前记录: 常量散落在各个业务文件和中间件中,存在硬编码和重复定义。
- 修改结果:
- 创建了
server/common/constants.go,集中管理 Redis 前缀、Token 请求头、业务状态码等。 - 重构了
SysUserService,使用common.RedisTokenPrefix和common.RedisTokenExpire。 - 重构了
AuthMiddleware,使用common.TokenHeader和common.ContextUserKey。 - 清理了
common/context.go中的重复定义。
- 创建了