Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
- 新增系统称号模板与效果配置表及相关CRUD接口 - 实现用户称号分配与抽奖效果应用逻辑 - 优化抽奖接口支持用户ID参数以应用称号效果 - 新增称号管理前端页面与分配功能 - 修复Windows时区错误与JSON字段初始化问题 - 移除无用管理接口代码并更新文档说明
73 lines
5.2 KiB
Markdown
73 lines
5.2 KiB
Markdown
# 后台管理接口审计与无用代码清理
|
||
|
||
## 目标
|
||
- 全面梳理管理端(`/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
|
||
|
||
## 回滚方案
|
||
- 路由注册保留注释备份;如发现遗漏使用,按文件恢复并重新注册路由
|
||
|
||
## 下一步请求
|
||
- 若确认以上清理项与步骤,开始实施清理并提交差异,附带验证报告与引用检索证明 |