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

## 目标
- 全面梳理管理端（`/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

## 回滚方案
- 路由注册保留注释备份；如发现遗漏使用，按文件恢复并重新注册路由

## 下一步请求
- 若确认以上清理项与步骤，开始实施清理并提交差异，附带验证报告与引用检索证明