- 后端: users表新增VIP字段, 4个VIP API (purchase/status/profile/members) - 后端: hot接口改按user_tracks阅读量排序 - 后端: orders表支持vip产品类型, migrate新增vip_fields迁移 - 小程序「我的」: 推广中心改为我的收益, 头像VIP标识, VIP入口卡片 - 小程序「我的」: 最近阅读显示真实章节名称 - 小程序首页: 去掉内容概览, 新增创业老板排行(4列网格) - 小程序首页: 精选推荐从hot接口获取, goToRead增加track记录 - 新增页面: VIP详情页, 会员详情页 - 开发文档精简为10个标准目录, 创建SKILL.md, 需求日志规范化 Co-authored-by: Cursor <cursoragent@cursor.com>
94 lines
3.6 KiB
Markdown
94 lines
3.6 KiB
Markdown
# 内容创建问题修复说明
|
||
|
||
> 问题:souladmin 添加内容后显示「创建成功」,但目录和数据库未增加,前端也未显示。
|
||
|
||
## 根因分析
|
||
|
||
1. **两套后台数据源不一致**
|
||
- souladmin.quwanzhi.com 调用 soulapi.quwanzhi.com(Go API)
|
||
- soul.quwanzhi.com/admin 使用 Next.js API,list 此前仅从 bookData(静态)读取
|
||
- 新建章节写入数据库,但 list 不查库,导致新建内容不显示
|
||
|
||
2. **PUT 创建未完整支持 partId/chapterId**
|
||
- 新建章节时 partId、chapterId、partTitle、chapterTitle 未正确写入数据库
|
||
|
||
## 已做修复
|
||
|
||
### 1. 修改 `/api/db/book` list 接口
|
||
- **原逻辑**:仅从 bookData 读取
|
||
- **现逻辑**:优先从数据库 chapters 表读取,再与 bookData 合并
|
||
- **效果**:新建章节会立即出现在列表中
|
||
|
||
### 2. 修改 PUT 接口支持新建章节
|
||
- 支持 body 传入 `partId`、`chapterId`、`partTitle`、`chapterTitle`、`isFree`
|
||
- 新建章节能正确写入数据库
|
||
|
||
### 3. 在 book-data 中新增 9.15
|
||
- 章节 ID: 9.15
|
||
- 标题: 第102场|今年第一个红包你发给谁
|
||
- 文件: book/第四篇|真实的赚钱/第9章|我在Soul上亲访的赚钱案例/9.15 第102场|今年第一个红包你发给谁.md
|
||
|
||
### 4. soul-admin 改用 soul.quwanzhi.com 作为 API
|
||
- 修改 soul-admin 的 API 基址:soulapi → soul.quwanzhi.com
|
||
- 在 Next.js 中为 souladmin.quwanzhi.com 配置 CORS
|
||
|
||
## 部署步骤
|
||
|
||
### 步骤 1:部署 soul 主站(小型宝塔)
|
||
|
||
```bash
|
||
cd /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验
|
||
# 按 .cursorrules 中的流程执行
|
||
pnpm build
|
||
# 然后执行部署脚本
|
||
```
|
||
|
||
### 步骤 2:同步 9.15 到数据库
|
||
|
||
部署后访问 soul.quwanzhi.com/admin,在内容管理页面点击「同步到数据库」,将包含 9.15 的 bookData 同步进库。
|
||
|
||
### 步骤 3:部署修改后的 soul-admin(KR 宝塔)
|
||
|
||
```bash
|
||
# 将 一场soul的创业实验-永平 中的 soul-admin/dist 上传到 KR 宝塔
|
||
cd /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平
|
||
tar -czf soul-admin-dist.tar.gz soul-admin/dist
|
||
sshpass -p 'Zhiqun1984' scp -P 22022 soul-admin-dist.tar.gz root@43.139.27.93:/tmp/
|
||
sshpass -p 'Zhiqun1984' ssh -p 22022 root@43.139.27.93 "
|
||
cd /www/wwwroot/自营/soul-admin
|
||
rm -rf dist.bak
|
||
mv dist dist.bak 2>/dev/null || true
|
||
tar -xzf /tmp/soul-admin-dist.tar.gz -C .
|
||
rm /tmp/soul-admin-dist.tar.gz
|
||
"
|
||
```
|
||
|
||
### 步骤 4:校验
|
||
|
||
1. 打开 souladmin.quwanzhi.com/content
|
||
2. 新建章节,确认创建后列表中立即出现
|
||
3. 刷新 soul.quwanzhi.com 主站,确认新章节可读
|
||
|
||
## 注意事项
|
||
|
||
- souladmin 现改为调用 soul.quwanzhi.com,不再调用 soulapi(Go),需确保 soul 主站可用
|
||
- 若仍需使用 Go API,需在 soul-api 源码中修复 list/create 逻辑
|
||
|
||
---
|
||
|
||
## 内容上传 API(供科室/Skill 调用)
|
||
|
||
- **地址**:`POST /api/content/upload`
|
||
- **Content-Type**:`application/json`
|
||
- **Body 字段**:
|
||
- `title`(必填):节标题
|
||
- `price`:定价,默认 1
|
||
- `content`:正文(Markdown 或 HTML)
|
||
- `format`:`markdown` | `html`,默认 `markdown`
|
||
- `images`:图片 URL 数组;正文中可用 `{{image_0}}`、`{{image_1}}` 占位,会替换为对应图片的 Markdown 图链
|
||
- `partId`、`partTitle`、`chapterId`、`chapterTitle`:归属篇/章,可选
|
||
- `isFree`:是否免费,默认 false
|
||
- `sectionId`:指定节 ID,不传则自动生成(如 `upload.标题slug.时间戳`)
|
||
- **返回**:`{ success, id, message, title, price, isFree, wordCount }`
|
||
- 写入数据库 `chapters` 表,list/目录会从库中读取并去重显示。
|