bindbox-game/.trae/documents/后台管理接口审计与无用代码清理.md
邹方成 8141a47690
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
feat(称号系统): 新增称号管理功能与抽奖效果集成
- 新增系统称号模板与效果配置表及相关CRUD接口
- 实现用户称号分配与抽奖效果应用逻辑
- 优化抽奖接口支持用户ID参数以应用称号效果
- 新增称号管理前端页面与分配功能
- 修复Windows时区错误与JSON字段初始化问题
- 移除无用管理接口代码并更新文档说明
2025-11-16 11:37:40 +08:00

5.2 KiB
Raw Blame History

后台管理接口审计与无用代码清理

目标

  • 全面梳理管理端(/api/admin/*)后端接口与前端页面调用关系,排除 App 端接口
  • 标注未被前端使用的管理端接口与文件,制定安全清理方案

范围

  • 后端:internal/router/router.go 管理端分组与 internal/api/admin/*
  • 前端:web/admin/src/api/*web/admin/src/views/* 中使用的管理端接口
  • 排除:/api/app/* 与模板系统管理接口(/api/user/*, /api/role/*, /api/v3/system/menus/simple

关键发现

  • 路由注册位置:internal/router/router.go 管理端非鉴权与鉴权分组

    • 非鉴权:
      • GET /api/admin/license/status(内联处理器)· internal/router/router.go:53
      • POST /api/admin/loginLogin() · internal/router/router.go:57internal/api/admin/login.go
    • 鉴权组主要接口(节选,完整见路由文件):
      • 活动与期次/奖励/随机承诺/抽奖:/api/admin/activities/* · internal/router/router.go:72-90
      • 抽奖凭据:GET /draw_receipts/:draw_idGET /draw_receipts/log/:log_id · internal/router/router.go:91-92
      • 批量用户:POST/DELETE /batch_users · internal/router/router.go:93-94
      • 工会:/guilds/* · internal/router/router.go:96-100
      • 商品与分类:/product_categories/*/products/* · internal/router/router.go:103-110
      • 轮播图:/banners/* · internal/router/router.go:113-116
      • 玩家:/users/*(邀请、订单、优惠券、积分、库存、道具卡、奖励发放)· internal/router/router.go:119-129,141
      • 系统道具卡/优惠券:/system_item_cards/*/system_coupons/* · internal/router/router.go:132-140
  • 示例后端处理函数位置:

    • 抽奖凭据:GetDrawReceipt()GetDrawReceiptByLogID() · internal/api/admin/draw_receipt.go:31-75,77-121
  • 前端管理端接口使用(以 VITE_API_URL=/api 为前缀,url: 'admin/...'/api/admin/...

    • 登录:POST admin/login · web/admin/src/api/auth.ts:11
    • 活动/期次/奖励/随机承诺/抽奖:admin/activities/* · web/admin/src/api/adminActivities.ts:13,29,33,37,47,57,68,75,93,112,133,140,146,159,172,188,210,247,274,299,323,347
    • 批量用户:admin/batch_users · web/admin/src/api/adminActivities.ts:220,227
    • 抽奖凭据:admin/draw_receipts/:idadmin/draw_receipts/log/:log_id · web/admin/src/api/adminActivities.ts:299,323
    • 玩家管理:admin/users/*(邀请、订单、优惠券、积分、余额、库存、道具卡、奖励发放)· web/admin/src/api/player-manage.ts:25,48,81,106,130,157,188,198,210,220,239
    • 轮播图:admin/banners/* · web/admin/src/api/banner.ts:14,26,39,43
    • 商品与分类:admin/product_categories/*admin/products/* · web/admin/src/api/product.ts:15,22,32,38,63,76,90,94
    • 系统道具卡/优惠券:admin/system_item_cards/*admin/system_coupons/* · web/admin/src/api/itemCards.ts:81,86,92,96,101web/admin/src/api/coupons.ts:59,64,70,74
    • 工会管理(管理端):admin/guilds/*、成员:admin/guilds/:guild_id/members · web/admin/src/api/adminGuild.ts:12,27,31,35web/admin/src/api/guild.ts:61

待清理项(未发现前端使用)

  • GET /api/admin/license/status · internal/router/router.go:53(前端无调用)
  • 管理员账号维护接口:
    • POST /api/admin/create · internal/router/router.go:66internal/api/admin/admin_create.go
    • PUT /api/admin/:id · internal/router/router.go:67internal/api/admin/admin_modify.go
    • POST /api/admin/delete · internal/router/router.go:68internal/api/admin/admin_delete.go
    • GET /api/admin/list · internal/router/router.go:69internal/api/admin/admin_list.go
  • 以上清单根据前端 web/admin/src/api/* 的全面检索得出;如后续发现隐藏使用,则可回滚。

实施步骤

  1. 冻结与确认
    • 在代码评审中确认上述待清理项确实不需要;标注使用范围仅限管理端
  2. 路由层清理
    • internal/router/router.go 删除或注释未用路由注册行:53, 66-69
    • 核对编译影响:移除后需同时删除对应 handler 引用,避免未引用编译警告
  3. 处理器与文件清理
    • 删除对应的处理器文件:internal/api/admin/admin_create.goadmin_modify.goadmin_delete.goadmin_list.go
    • license/status 为内联处理器,无独立文件,仅移除路由与调用
  4. 依赖与构建
    • 执行模块级编译,确保无引用残留(如 admin.New 构造体内未使用成员)
    • 运行单元/集成用例(如存在),并做最小回归:登录、活动、玩家、商品、运营、工会等主流程
  5. 文档与变更说明
    • 记录变更影响范围与回滚策略,标注接口移除清单

验收标准

  • 管理端页面所有功能可正常使用与构建通过
  • 删除的接口在全仓内无调用引用(前端/后端均为 0
  • 关键页面 API 映射完整且无 404/500

回滚方案

  • 路由注册保留注释备份;如发现遗漏使用,按文件恢复并重新注册路由

下一步请求

  • 若确认以上清理项与步骤,开始实施清理并提交差异,附带验证报告与引用检索证明