# 后台管理接口审计与无用代码清理 ## 目标 - 全面梳理管理端(`/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/login` → `Login()` · `internal/router/router.go:57`,`internal/api/admin/login.go` - 鉴权组主要接口(节选,完整见路由文件): - 活动与期次/奖励/随机承诺/抽奖:`/api/admin/activities/*` · `internal/router/router.go:72-90` - 抽奖凭据:`GET /draw_receipts/:draw_id`、`GET /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/:id`、`admin/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,101`,`web/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,35`,`web/admin/src/api/guild.ts:61` ## 待清理项(未发现前端使用) - `GET /api/admin/license/status` · `internal/router/router.go:53`(前端无调用) - 管理员账号维护接口: - `POST /api/admin/create` · `internal/router/router.go:66`,`internal/api/admin/admin_create.go` - `PUT /api/admin/:id` · `internal/router/router.go:67`,`internal/api/admin/admin_modify.go` - `POST /api/admin/delete` · `internal/router/router.go:68`,`internal/api/admin/admin_delete.go` - `GET /api/admin/list` · `internal/router/router.go:69`,`internal/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.go`、`admin_modify.go`、`admin_delete.go`、`admin_list.go` - 若 `license/status` 为内联处理器,无独立文件,仅移除路由与调用 4. 依赖与构建 - 执行模块级编译,确保无引用残留(如 `admin.New` 构造体内未使用成员) - 运行单元/集成用例(如存在),并做最小回归:登录、活动、玩家、商品、运营、工会等主流程 5. 文档与变更说明 - 记录变更影响范围与回滚策略,标注接口移除清单 ## 验收标准 - 管理端页面所有功能可正常使用与构建通过 - 删除的接口在全仓内无调用引用(前端/后端均为 0) - 关键页面 API 映射完整且无 404/500 ## 回滚方案 - 路由注册保留注释备份;如发现遗漏使用,按文件恢复并重新注册路由 ## 下一步请求 - 若确认以上清理项与步骤,开始实施清理并提交差异,附带验证报告与引用检索证明