bindbox-game/.trae/documents/后端代码清理与冗余设计删除.md
邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

71 lines
3.9 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.

## 目标
- 系统化梳理后端代码,识别并删除冗余设计与未使用模块
- 保持现有功能与前端调用不受影响,提升可维护性与编译/测试稳定性
## 范围
- 主要针对 Go 后端 (`internal/*`, `router/*`, `repository/*`)
- 不改动数据库表结构与线上配置;仅移除未被调用的代码
- 前端仅做轻微枚举对齐(可选),不影响现有页面
## 清理项
1. 移除未使用的抽奖策略注册机制
- 文件:`internal/service/activity/strategy/strategy.go`
- 保留:`ActivityDrawStrategy` 接口(默认策略仍以接口类型返回)
- 删除:`registry` 映射、`Register`/`Get` 方法(代码内无引用)
- 影响评估:`lottery_app.go` 直接实例化 `NewDefault`,不依赖注册表;`ichiban` 专用策略走独立服务,不受影响
2. 移除公会 Guild 相关 DAO/Model已无引用
- 文件:
- `internal/repository/mysql/dao/guild*.gen.go`
- `internal/repository/mysql/dao/guild_contribute_logs.gen.go`
- `internal/repository/mysql/model/guild*.gen.go`
- `internal/repository/mysql/model/guild_contribute_logs.gen.go`
- 依据:全局检索无业务层或接口层引用,仅残留表定义
- 处理:删除生成文件;保留 `TracePlugin.softDeleteTables` 的字符串名单不影响运行(仅按表名软删过滤)
3. 移除管理端批量造数/批量删除用户接口(未被前端使用)
- 路由:`internal/router/router.go`
- `POST /api/admin/batch_users`(创建)
- `DELETE /api/admin/batch_users`(删除)
- 处理:删除对应 handler `internal/api/admin/batch_users.go` 和路由挂载
- 保留其他批量接口(积分/优惠券/奖励)不变
4. 移除“为指定用户签发 APP Token”管理端接口未被前端使用
- 路由:`POST /api/admin/users/:user_id/token`
- 文件:`internal/api/admin/user_token_admin.go`
- 说明:仅测试/紧急用途,当前前端无调用;移除可减少安全面
5. 保留 Prometheus 指标模块但不启用(仅在需要时开启)
- 现状:`internal/metrics/*` 未被路由启用;保留代码与可选开关,不做删除
- 若后续确认长期不使用,可二期移除并同步 `go.mod` 依赖精简
6. 前端枚举对齐(可选)
- 文件:`web/admin/src/api/dashboard.ts`
- 内容:`TodoTaskType` 包含 `JOIN_GUILD`(服务端已改为 `undrawn` 代办);如需对齐,移除或改为服务端实际值
## 验收标准
- 编译通过:`go build ./...` 无错误
- 单测通过:现有测试(如 `ichiban_test.go`)通过
- API 回归:管理端/APP端核心路由不变产品、活动、奖励、抽奖、支付、称号、道具卡、系统配置
- 前端联调:`web/admin/src/api/*` 所引用的后端路由均可正常返回
## 执行步骤
1. 删除策略注册表(保留接口)
2. 删除 Guild 相关 `dao/``model/` 生成文件
3. 删除 `batch_users.go` 及其路由挂载
4. 删除 `user_token_admin.go` 及其路由挂载
5. 本地编译与单测(构建/测试)
6. 运行服务做核心接口冒烟(活动、商品、支付、任务中心、称号/卡券)
7. 更新 `.trae/documents/全面代码清理与优化计划.md` 标注已清理项与影响范围
## 风险与回滚
- 若前端/运营依赖被误删接口:通过 Git 回滚对应文件与路由挂载即可恢复
- `Guild` 表仍在数据库中:删除 DAO/Model 不影响其他代码;如未来需要,可通过代码生成器补回
## 代码参考
- 路由文件:`internal/router/router.go:106-108`, `internal/router/router.go:149`
- 策略接口与实现:`internal/service/activity/strategy/strategy.go`, `internal/service/activity/strategy/default.go`, `internal/service/activity/ichiban_slots_service.go`
- 测试用例:`internal/service/activity/strategy/ichiban_test.go`
- 前端调用示例:`web/admin/src/api/*`(确认哪些路由在用)
请确认以上清理方案,确认后我将按步骤执行、构建验证并提交变更说明。