refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
3.9 KiB
3.9 KiB
目标
- 系统化梳理后端代码,识别并删除冗余设计与未使用模块
- 保持现有功能与前端调用不受影响,提升可维护性与编译/测试稳定性
范围
- 主要针对 Go 后端 (
internal/*,router/*,repository/*) - 不改动数据库表结构与线上配置;仅移除未被调用的代码
- 前端仅做轻微枚举对齐(可选),不影响现有页面
清理项
- 移除未使用的抽奖策略注册机制
- 文件:
internal/service/activity/strategy/strategy.go - 保留:
ActivityDrawStrategy接口(默认策略仍以接口类型返回) - 删除:
registry映射、Register/Get方法(代码内无引用) - 影响评估:
lottery_app.go直接实例化NewDefault,不依赖注册表;ichiban专用策略走独立服务,不受影响
- 移除公会 Guild 相关 DAO/Model(已无引用)
- 文件:
internal/repository/mysql/dao/guild*.gen.gointernal/repository/mysql/dao/guild_contribute_logs.gen.gointernal/repository/mysql/model/guild*.gen.gointernal/repository/mysql/model/guild_contribute_logs.gen.go
- 依据:全局检索无业务层或接口层引用,仅残留表定义
- 处理:删除生成文件;保留
TracePlugin.softDeleteTables的字符串名单不影响运行(仅按表名软删过滤)
- 移除管理端批量造数/批量删除用户接口(未被前端使用)
- 路由:
internal/router/router.goPOST /api/admin/batch_users(创建)DELETE /api/admin/batch_users(删除)
- 处理:删除对应 handler
internal/api/admin/batch_users.go和路由挂载 - 保留其他批量接口(积分/优惠券/奖励)不变
- 移除“为指定用户签发 APP Token”管理端接口(未被前端使用)
- 路由:
POST /api/admin/users/:user_id/token - 文件:
internal/api/admin/user_token_admin.go - 说明:仅测试/紧急用途,当前前端无调用;移除可减少安全面
- 保留 Prometheus 指标模块但不启用(仅在需要时开启)
- 现状:
internal/metrics/*未被路由启用;保留代码与可选开关,不做删除 - 若后续确认长期不使用,可二期移除并同步
go.mod依赖精简
- 前端枚举对齐(可选)
- 文件:
web/admin/src/api/dashboard.ts - 内容:
TodoTaskType包含JOIN_GUILD(服务端已改为undrawn代办);如需对齐,移除或改为服务端实际值
验收标准
- 编译通过:
go build ./...无错误 - 单测通过:现有测试(如
ichiban_test.go)通过 - API 回归:管理端/APP端核心路由不变(产品、活动、奖励、抽奖、支付、称号、道具卡、系统配置)
- 前端联调:
web/admin/src/api/*所引用的后端路由均可正常返回
执行步骤
- 删除策略注册表(保留接口)
- 删除 Guild 相关
dao/与model/生成文件 - 删除
batch_users.go及其路由挂载 - 删除
user_token_admin.go及其路由挂载 - 本地编译与单测(构建/测试)
- 运行服务做核心接口冒烟(活动、商品、支付、任务中心、称号/卡券)
- 更新
.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/*(确认哪些路由在用)
请确认以上清理方案,确认后我将按步骤执行、构建验证并提交变更说明。