Files
soul/开发文档/内容创建问题修复说明.md

94 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 内容创建问题修复说明
> 问题souladmin 添加内容后显示「创建成功」,但目录和数据库未增加,前端也未显示。
## 根因分析
1. **两套后台数据源不一致**
- souladmin.quwanzhi.com 调用 soulapi.quwanzhi.comGo API
- soul.quwanzhi.com/admin 使用 Next.js APIlist 此前仅从 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-adminKR 宝塔)
```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不再调用 soulapiGo需确保 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/目录会从库中读取并去重显示。