## 目标 - 系统化梳理后端代码,识别并删除冗余设计与未使用模块 - 保持现有功能与前端调用不受影响,提升可维护性与编译/测试稳定性 ## 范围 - 主要针对 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/*`(确认哪些路由在用) 请确认以上清理方案,确认后我将按步骤执行、构建验证并提交变更说明。