feat: Admin 徽章定义 CRUD 与限定颁发收回
SSR /admin/badges 复用 UpsertDef/AwardLimited/Revoke,并新增 DeleteDef;指针指向 media。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -131,8 +131,8 @@
|
||||
- [x] 积分解锁分成:读者付全额,作者约 70% — 门控 unlock 服务
|
||||
- [ ] 短龄同 IP 互刷拒绝分成
|
||||
- [ ] Exp → 等级 Lv1–10
|
||||
- [ ] 自动徽章(注册天数 / 获赞 / 创作分成)
|
||||
- [ ] 限定徽章:管理员定义与授予/撤销
|
||||
- [ ] 自动徽章(注册天数 / 获赞 / 创作分成)— 种子定义 + `EvaluateAuto` 已有;Admin 可改定义,独立调度 UI 未做
|
||||
- [x] 限定徽章:管理员定义与授予/撤销 — SSR `/admin/badges`
|
||||
- [x] 管理员调整积分、设定认证(免审)— SSR `/admin/users`(等级设定 UI 未做,仅只读展示 Lv)
|
||||
|
||||
---
|
||||
|
||||
@@ -53,10 +53,11 @@
|
||||
| `/admin/pages` | 站点单页 CRUD / 发布 | 已迁 |
|
||||
| `/admin/reports` | 举报处理 | 已迁 |
|
||||
| `/admin/users` | 用户列表、禁言、认证、调积分 | 已迁 |
|
||||
| `/admin/badges` | 徽章定义 CRUD、限定颁发/收回 | 已迁 |
|
||||
| `/admin/trash` | 帖回收站 | 已迁 |
|
||||
| `/admin/login` | 重定向前台登录 | 已迁 |
|
||||
|
||||
未迁(原 SPA):badges / media / 完整 Limits 等。
|
||||
未迁(原 SPA):media / 完整 Limits 等。
|
||||
|
||||
---
|
||||
|
||||
@@ -194,8 +195,8 @@
|
||||
| Posts | 审核通过/拒绝 — SSR `/admin/moderation`;置顶/版顶/精华/锁编/锁评/软删 — 帖详情 Admin 条;回收站恢复/清除 — SSR `/admin/trash` |
|
||||
| Comments | 审核 — SSR `/admin/moderation`;修订查看未迁 |
|
||||
| Reports | 处理动作:dismiss / resolve / reject_post / reject_comment — SSR `/admin/reports` |
|
||||
| Users | 搜索;禁言;认证;设等级;调积分;授徽章 |
|
||||
| Badges | 定义自动/限定徽章 |
|
||||
| Users | 搜索;禁言;认证;调积分 — SSR `/admin/users`(设等级 / 授徽章挂在徽章页) |
|
||||
| Badges | 定义自动/限定徽章;颁发/收回限定 — SSR `/admin/badges` |
|
||||
| Media | 分类浏览;批量删 |
|
||||
| Settings | Tab:论坛限制、侧栏组件、伪静态、邮件、OIDC+客户端、Gitea、存储、品牌、敏感词、备份 — SSR `/admin/settings` 已迁品牌/限流/侧栏/敏感词/邮件/SQLite 备份(OIDC/Gitea/存储/伪静态未迁) |
|
||||
|
||||
|
||||
@@ -12,15 +12,15 @@
|
||||
|
||||
| 项 | 值 |
|
||||
|----|-----|
|
||||
| **上一刀** | Admin `/admin/users`(禁言 / 认证 / 调积分) |
|
||||
| **下一刀** | **Admin `/admin/badges`**(徽章定义 CRUD + 授予/撤销) |
|
||||
| **上一刀** | Admin `/admin/badges`(定义 CRUD + 限定颁发/收回) |
|
||||
| **下一刀** | **Admin `/admin/media`**(媒体列表 / 删除) |
|
||||
| **工作区** | 应干净;有未提交改动时先处理再开新刀 |
|
||||
|
||||
---
|
||||
|
||||
## 一句话状态
|
||||
|
||||
论坛核心闭环(安装、认证、Feed、五种帖类型、评论、私信、友链、审核、回收站、基础设置、备份)**已迁完**。余量主要是 Admin 用户/徽章/媒体、成长体系、OIDC/存储产品化与体验打磨。
|
||||
论坛核心闭环(安装、认证、Feed、五种帖类型、评论、私信、友链、审核、回收站、基础设置、备份)**已迁完**。Admin 用户与徽章已齐;余量主要是媒体、成长体系、OIDC/存储产品化与体验打磨。
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
@@ -60,12 +60,13 @@ flowchart LR
|
||||
| settings:品牌、限流、敏感词、SMTP、侧栏、SQLite 备份 | 已迁 |
|
||||
| friend-links / pages | 已迁 |
|
||||
| **users**(禁言 / 认证 / 调积分) | **已迁** |
|
||||
| **badges / media** | **未迁** |
|
||||
| **badges**(定义 CRUD + 限定颁发/收回) | **已迁** |
|
||||
| **media** | **未迁** |
|
||||
| settings:OIDC / Gitea / 存储 / 伪静态 Tab | **未迁** |
|
||||
|
||||
### 近期提交(摘)
|
||||
|
||||
`poll` → SQLite 备份 → 友链复检 → `question` → `bounty` → `lottery` → **Admin users**
|
||||
`lottery` → Admin users → **Admin badges**
|
||||
|
||||
---
|
||||
|
||||
@@ -79,12 +80,12 @@ flowchart LR
|
||||
### P1 — 推荐刀序(服务层多半已齐)
|
||||
|
||||
1. ~~Admin 用户~~ ✓
|
||||
2. **Admin 徽章** ← 当前指针
|
||||
3. Admin 媒体列表/删除
|
||||
2. ~~Admin 徽章~~ ✓
|
||||
3. **Admin 媒体** ← 当前指针
|
||||
|
||||
### P2 — 成长与防刷
|
||||
|
||||
- Exp → Lv1–10、自动徽章、短龄同 IP 互刷拒绝分成(`02` §H)
|
||||
- Exp → Lv1–10、自动徽章调度 UI、短龄同 IP 互刷拒绝分成(`02` §H)
|
||||
|
||||
### P3 — 体验 / 编辑器(可砍或长期)
|
||||
|
||||
@@ -108,29 +109,33 @@ flowchart LR
|
||||
| ✓ | 五种帖类型 + 备份/复检 + §O 勾选 | 核心闭环 |
|
||||
| ✓ | 本文 `09` | 可查阅进度 |
|
||||
| ✓ | Admin `/admin/users` | 禁言/认证/调积分 |
|
||||
| → | Admin `/admin/badges` | 徽章 CRUD + 授予 |
|
||||
| 4 | Admin `/admin/media` | 媒体列表删除 |
|
||||
| ✓ | Admin `/admin/badges` | 徽章 CRUD + 授予 |
|
||||
| → | Admin `/admin/media` | 媒体列表删除 |
|
||||
| 5 | 等级/自动徽章 **或** 防刷分成 | 按当时偏好 |
|
||||
| … | P3 / 后置 | 需明确点名再开 |
|
||||
|
||||
---
|
||||
|
||||
## 下一刀实现提纲:Admin 徽章
|
||||
## 下一刀实现提纲:Admin 媒体
|
||||
|
||||
> 确认「继续」后实现限定徽章定义与授予/撤销;复用 `services/badge.go`。
|
||||
> 确认「继续」后实现媒体库列表与删除;对齐既有上传/存储服务。
|
||||
|
||||
### 范围(草案)
|
||||
|
||||
- `GET/POST /admin/badges`:徽章定义列表与创建/编辑/删除
|
||||
- 授予/撤销:挂在用户页或徽章详情(`GrantBadge` / 撤销)
|
||||
- 回写 `02` §H 限定徽章;指针 → media
|
||||
- `GET /admin/media`:按时间分页列表(缩略图 / 路径 / 引用粗览)
|
||||
- `POST /admin/media/:id/delete`:删库文件 + 记录
|
||||
- 回写 `02` / `06`;指针 → 成长或按偏好
|
||||
|
||||
### 不做
|
||||
|
||||
自动徽章规则引擎(P2)、等级设定 UI。
|
||||
S3 热切换产品化、全站未引用扫描清理器。
|
||||
|
||||
---
|
||||
|
||||
## 已完成:Admin 徽章
|
||||
|
||||
见 [plans/admin-badges.md](plans/admin-badges.md);路由 `/admin/badges` + award / revoke。
|
||||
|
||||
## 已完成:Admin 用户管理
|
||||
|
||||
见 [plans/admin-users.md](plans/admin-users.md);路由 `/admin/users` + ban / verify / points。
|
||||
|
||||
22
docs/rebuild-spec/plans/admin-badges.md
Normal file
22
docs/rebuild-spec/plans/admin-badges.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Admin 徽章管理(SSR)— 实现计划
|
||||
|
||||
> 状态:已完成(SSR `/admin/badges`)
|
||||
> 分支:`rebuild/gitea-ssr`
|
||||
|
||||
## 范围
|
||||
|
||||
| 能力 | 服务 | 路由 |
|
||||
|------|------|------|
|
||||
| 列表(含停用) | `BadgeService.ListDefs(true)` | `GET /admin/badges` |
|
||||
| 创建/更新定义 | `UpsertDef` | `POST /admin/badges`、`POST /admin/badges/:id` |
|
||||
| 删除定义 | `DeleteDef`(清 `user_badges`) | `POST /admin/badges/:id/delete` |
|
||||
| 颁发限定 | `AwardLimited` | `POST /admin/badges/award` |
|
||||
| 收回 | `Revoke` | `POST /admin/badges/revoke` |
|
||||
|
||||
## 不做
|
||||
|
||||
自动徽章规则引擎调度 UI(P2,服务层 `EvaluateAuto` 仍可被触发)、等级设定。
|
||||
|
||||
## 验证
|
||||
|
||||
`build.bat`;冒烟:创建限定徽章 → 颁发给用户 → 收回 → 删除。
|
||||
Reference in New Issue
Block a user