feat: SSR 内容门控与积分钱包/签到抽奖
闭合积分解锁经济闭环:锁定壳与 unlock,以及 profile 钱包流水与每日签到/抽奖 PRG。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
- [ ] 列表样式可配:`title` | `excerpt` | `thumbnail`
|
||||
- [ ] 搜索:关键词、标签、作者、仅标题(`title_only`)
|
||||
- [ ] 右栏:热门帖、标签云、最新评论、最新用户、友链(可开关排序)
|
||||
- [ ] 登录用户右栏/侧边:签到与抽奖入口
|
||||
- [ ] 登录用户右栏/侧边:签到与抽奖入口(入口暂在 `/profile` 钱包区)
|
||||
- [ ] 下拉刷新(移动端)
|
||||
- [ ] 可选伪静态:`/post/123.html` 等形式(后缀后台可配)
|
||||
- [x] 404 页
|
||||
@@ -35,7 +35,7 @@
|
||||
- [ ] 忘记密码:邮箱验证码 + 重置
|
||||
- [x] 注册配置:邮件就绪时强制验证码;安装后开放注册(不依赖 SMTP)
|
||||
- [x] ~~首个用户自动成为管理员~~ → 改为仅 `/install` 创建管理员
|
||||
- [x] 个人中心:改昵称、签名、密码、上传头像 — SSR `/profile`(裁剪未做)
|
||||
- [x] 个人中心:改昵称、签名、密码、上传头像、积分钱包/签到/抽奖 — SSR `/profile`(裁剪未做)
|
||||
- [x] 个人活动统计:帖数、评数、收藏数、获赞 — `/profile` + `/user/:id`
|
||||
- [x] 公开用户主页 `/user/:id`(无邮箱)
|
||||
- [x] 禁言用户无法使用需登录写接口(中间件 + compose 门控)
|
||||
@@ -87,13 +87,13 @@
|
||||
|
||||
## E. 内容门控
|
||||
|
||||
- [ ] 编辑器可插入「登录可见」块
|
||||
- [ ] 编辑器可插入「回复可见」块
|
||||
- [ ] 编辑器可插入「积分可见」块(可设价格)
|
||||
- [ ] 未登录:遮盖 members-only 与 reply-only 正文,保留长度提示
|
||||
- [ ] 已登录未回复:遮盖 reply-only(作者与管理员始终可见)
|
||||
- [ ] 积分块:未解锁遮盖;`POST .../unlock` 扣积分并返回 inner HTML
|
||||
- [ ] 搜索 / SEO 出口对门控内容做红action,不泄露正文
|
||||
- [x] 编辑器可插入「登录可见」块 — compose 工具栏
|
||||
- [x] 编辑器可插入「回复可见」块 — compose 工具栏
|
||||
- [x] 编辑器可插入「积分可见」块(可设价格)— compose 工具栏 + prompt
|
||||
- [x] 未登录:遮盖 members-only 与 reply-only 正文,保留长度提示 — 锁定壳 UI
|
||||
- [x] 已登录未回复:遮盖 reply-only(作者与管理员始终可见)
|
||||
- [x] 积分块:未解锁遮盖;`POST /post/:id/unlock` 扣积分并返回 inner HTML
|
||||
- [x] 搜索 / SEO 出口对门控内容做红action,不泄露正文(既有)
|
||||
|
||||
---
|
||||
|
||||
@@ -125,10 +125,10 @@
|
||||
|
||||
## H. 积分、签到、抽奖、徽章、等级
|
||||
|
||||
- [ ] 积分流水查询
|
||||
- [ ] 每日签到:基础 5,连签每日 +1,封顶 15
|
||||
- [ ] 每日抽奖:奖池加权(0/2/5/10/20),成本 0
|
||||
- [ ] 积分解锁分成:读者付全额,作者约 70%
|
||||
- [x] 积分流水查询 — SSR `/profile` 钱包近 N 条
|
||||
- [x] 每日签到:基础 5,连签每日 +1,封顶 15 — `POST /profile/checkin`
|
||||
- [x] 每日抽奖:奖池加权(0/2/5/10/20),成本 0 — `POST /profile/lottery`
|
||||
- [x] 积分解锁分成:读者付全额,作者约 70% — 门控 unlock 服务
|
||||
- [ ] 短龄同 IP 互刷拒绝分成
|
||||
- [ ] Exp → 等级 Lv1–10
|
||||
- [ ] 自动徽章(注册天数 / 获赞 / 创作分成)
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
| `/` | Feed | 已迁 |
|
||||
| `/board/:id` | 板块 Feed | 已迁 |
|
||||
| `/post/:id` | 帖详情 + 评论/赞/藏 | 已迁 |
|
||||
| `/compose` | 发帖(normal;Markdown textarea + 图片上传) | 已迁 |
|
||||
| `/compose` | 发帖(normal;textarea + 图片 + 门控插入) | 已迁 |
|
||||
| `/post/:id/edit` | 编辑帖 | 已迁 |
|
||||
| `/profile` | 个人中心(资料/密码/头像;无钱包/裁剪) | 已迁 |
|
||||
| `/user/:id` | 公开用户页 | 已迁 |
|
||||
@@ -137,7 +137,7 @@
|
||||
|
||||
| 模块 | 行为 |
|
||||
|------|------|
|
||||
| 门控块 | 锁定态显示长度/价格;解锁按钮调 API 后替换 inner HTML |
|
||||
| 门控块 | 锁定壳 UI(长度/价格/引导);`POST /post/:id/unlock` 返回 inner HTML 后替换 |
|
||||
| 投票卡 | 选选项提交;显示百分比;作者可结束 |
|
||||
| 悬赏条 | 显示积分与状态;采纳按钮在他人评论上;退款按钮按规则禁用并提示 |
|
||||
| 抽奖卡 | 显示参与人数;开奖;中奖名单 |
|
||||
@@ -161,7 +161,8 @@
|
||||
- 资料编辑、密码、头像直传(**本迭代无裁剪器**)— SSR `/profile`
|
||||
- 公开页:签名、等级/积分只读、统计、最近帖 — SSR `/user/:id`(无邮箱)
|
||||
- 收藏列表 — SSR `/favorites`
|
||||
- 积分钱包面板(流水、签到)、徽章展示:**未迁**
|
||||
- 积分钱包面板(余额、近 N 条流水、签到/抽奖表单 PRG)— SSR `/profile`;导航展示当前积分
|
||||
- 徽章展示:**未迁**
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -81,9 +81,10 @@ web_src/ → public/assets/
|
||||
|
||||
### 已迁路径(摘要)
|
||||
|
||||
公开写:`/install`、`/login`、`/logout`、`/register`、`/compose`、`/post/:id/edit`、帖详情评论/赞/藏。
|
||||
公开写:`/install`、`/login`、`/logout`、`/register`、`/compose`(含门控插入)、`/post/:id/edit`、帖详情评论/赞/藏、积分解锁 `POST /post/:id/unlock`。
|
||||
|
||||
个人闭环:`/profile`(昵称/签名/密码/头像)、`/user/:id`、`/favorites`。
|
||||
个人闭环:`/profile`(昵称/签名/密码/头像、积分钱包/签到/抽奖)、`/user/:id`、`/favorites`。
|
||||
`POST /profile/checkin`、`POST /profile/lottery`(CSRF + PRG)。
|
||||
|
||||
私信:`/messages`、`/messages/with/:peerId`(系统 peer=0 只读;打开会话标已读)。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user