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

3.9 KiB
Raw Blame History

目标

  • 系统化梳理后端代码,识别并删除冗余设计与未使用模块
  • 保持现有功能与前端调用不受影响,提升可维护性与编译/测试稳定性

范围

  • 主要针对 Go 后端 (internal/*, router/*, repository/*)
  • 不改动数据库表结构与线上配置;仅移除未被调用的代码
  • 前端仅做轻微枚举对齐(可选),不影响现有页面

清理项

  1. 移除未使用的抽奖策略注册机制
  • 文件:internal/service/activity/strategy/strategy.go
  • 保留:ActivityDrawStrategy 接口(默认策略仍以接口类型返回)
  • 删除:registry 映射、Register/Get 方法(代码内无引用)
  • 影响评估:lottery_app.go 直接实例化 NewDefault,不依赖注册表;ichiban 专用策略走独立服务,不受影响
  1. 移除公会 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 的字符串名单不影响运行(仅按表名软删过滤)
  1. 移除管理端批量造数/批量删除用户接口(未被前端使用)
  • 路由:internal/router/router.go
    • POST /api/admin/batch_users(创建)
    • DELETE /api/admin/batch_users(删除)
  • 处理:删除对应 handler internal/api/admin/batch_users.go 和路由挂载
  • 保留其他批量接口(积分/优惠券/奖励)不变
  1. 移除“为指定用户签发 APP Token”管理端接口未被前端使用
  • 路由:POST /api/admin/users/:user_id/token
  • 文件:internal/api/admin/user_token_admin.go
  • 说明:仅测试/紧急用途,当前前端无调用;移除可减少安全面
  1. 保留 Prometheus 指标模块但不启用(仅在需要时开启)
  • 现状:internal/metrics/* 未被路由启用;保留代码与可选开关,不做删除
  • 若后续确认长期不使用,可二期移除并同步 go.mod 依赖精简
  1. 前端枚举对齐(可选)
  • 文件: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/*(确认哪些路由在用)

请确认以上清理方案,确认后我将按步骤执行、构建验证并提交变更说明。