refactor: overhaul homepage and app structure
Simplify homepage, show chapter counts, display directory, trim bottom nav, in-page match feature, move marketing content, and enhance "My" page. #VERCEL_SKIP Co-authored-by: undefined <undefined+undefined@users.noreply.github.com>
This commit is contained in:
@@ -38,7 +38,7 @@
|
||||
|
||||
### 3.2 进度可视化 (Mermaid Gantt)
|
||||
*(AI 自动根据执行表生成)*
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
gantt
|
||||
title 项目进度甘特图
|
||||
dateFormat YYYY-MM-DD
|
||||
@@ -47,7 +47,7 @@ gantt
|
||||
section 开发阶段
|
||||
后端开发 :active, b1, after a1, 10d
|
||||
前端对接 : b2, after b1, 5d
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
## 4. AI 协作指令 (Commands)
|
||||
**角色**:你是我(卡若)的项目经理。
|
||||
|
||||
@@ -231,7 +231,7 @@
|
||||
|
||||
**部署步骤:**
|
||||
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# 1. 安装Vercel CLI
|
||||
npm install -g vercel
|
||||
|
||||
@@ -240,7 +240,7 @@ vercel login
|
||||
|
||||
# 3. 部署到生产环境
|
||||
vercel --prod
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**环境变量配置(在Vercel Dashboard):**
|
||||
- `ALIPAY_PARTNER_ID`=2088511801157159
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
4. **输出文档**:按“五行营销”结构生成详细需求文档。
|
||||
|
||||
### 示例 Mermaid
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
mindmap
|
||||
root((云阿米巴私域))
|
||||
流量端
|
||||
@@ -56,4 +56,4 @@ mindmap
|
||||
分润端
|
||||
自动计算
|
||||
提现管理
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
### 3. 首页完全对齐H5 ✅
|
||||
**小程序首页现在100%对齐H5设计**:
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
┌────────────────────────────────┐
|
||||
│ 🎉 Soul · 派对房 │
|
||||
├────────────────────────────────┤
|
||||
@@ -83,12 +83,12 @@
|
||||
│ 💰 分享赚佣金 │
|
||||
│ 推荐好友购买,最高90%佣金 │
|
||||
└────────────────────────────────┘
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 4. 数据精准对齐 ✅
|
||||
**所有数据来源于book文件夹**:
|
||||
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"书名": "一场SOUL的创业实验场",
|
||||
"价格": "¥9.9",
|
||||
@@ -100,7 +100,7 @@
|
||||
"作者": "卡若",
|
||||
"直播时间": "06:00-09:00"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**数据验证**:
|
||||
- ✅ 扫描book文件夹:64章
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
### 书籍结构(64章)
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
序言(1章)
|
||||
├─ 序言|为什么我每天早上6点在Soul开播?
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
└─ 尾声|这本书的真实目的
|
||||
|
||||
总计:64章
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -223,7 +223,7 @@
|
||||
## 🚀 部署信息
|
||||
|
||||
### 小程序
|
||||
```
|
||||
\`\`\`
|
||||
AppID:wx0976665c3a3d5a7c
|
||||
版本:v1.3.1
|
||||
大小:72.7 KB
|
||||
@@ -233,15 +233,15 @@ AppID:wx0976665c3a3d5a7c
|
||||
完美版本:首页完全对齐H5设计,
|
||||
64章精准数据,寻找合作伙伴功能,
|
||||
界面100%统一
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### H5
|
||||
```
|
||||
\`\`\`
|
||||
地址:http://localhost:3000
|
||||
状态:✅ 正常运行
|
||||
API:✅ 返回64章数据
|
||||
同步:✅ 实时同步支持
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -313,14 +313,14 @@ API:✅ 返回64章数据
|
||||
|
||||
### 3. 配色方案
|
||||
**统一的视觉语言**:
|
||||
```css
|
||||
\`\`\`css
|
||||
主色:#30D158(绿色)
|
||||
辅色:#00E5FF(青色)
|
||||
背景:#000000(纯黑)
|
||||
文字:#FFFFFF(白色)
|
||||
半透明:rgba(255, 255, 255, 0.05-0.8)
|
||||
渐变:#30D158 → #00E5FF
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -364,7 +364,7 @@ API:✅ 返回64章数据
|
||||
## 🔧 技术实现
|
||||
|
||||
### 章节同步系统
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# 扫描book文件夹
|
||||
node scripts/sync-book-content.js
|
||||
|
||||
@@ -375,10 +375,10 @@ public/book-chapters.json (64章)
|
||||
GET /api/book/all-chapters → 返回64章
|
||||
POST /api/book/sync → 触发同步
|
||||
GET /api/book/sync → 查询状态
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 数据流转
|
||||
```
|
||||
\`\`\`
|
||||
book文件夹(64个.md文件)
|
||||
↓
|
||||
sync-book-content.js(扫描脚本)
|
||||
@@ -388,15 +388,15 @@ public/book-chapters.json(数据文件)
|
||||
/api/book/all-chapters(API接口)
|
||||
↓
|
||||
小程序/H5(界面展示)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 离线支持
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 优先级
|
||||
1. 从API获取最新数据
|
||||
2. 失败则读取本地缓存
|
||||
3. 缓存也没有则使用模拟数据
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -408,11 +408,11 @@ public/book-chapters.json(数据文件)
|
||||
3. ✅ 找到 v1.3.1(72.7 KB)
|
||||
4. ✅ 点击「提交审核」
|
||||
5. ✅ 填写版本说明:
|
||||
```
|
||||
\`\`\`
|
||||
完美版本:首页完全对齐H5设计,
|
||||
64章精准数据,寻找合作伙伴功能,
|
||||
界面100%统一
|
||||
```
|
||||
\`\`\`
|
||||
6. ✅ 选择服务类目:教育 → 在线教育
|
||||
7. ✅ 提交审核
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
**功能目标**: 3秒内让用户知道这是什么书,并产生购买欲望
|
||||
|
||||
**布局结构**:
|
||||
```
|
||||
\`\`\`
|
||||
[Hero区域]
|
||||
- 书籍封面 (3D效果)
|
||||
- 标题:《一场Soul的创业实验》
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
[底部导航栏]
|
||||
- 首页 | 目录 | 我的
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**交互细节**:
|
||||
- 向下滚动时,顶部导航栏自动隐藏
|
||||
@@ -74,7 +74,7 @@
|
||||
**功能目标**: 清晰展示书籍结构,引导用户阅读
|
||||
|
||||
**布局结构**:
|
||||
```
|
||||
\`\`\`
|
||||
[顶部]
|
||||
- 返回按钮
|
||||
- 标题:目录
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
第二篇 | 真实的行业
|
||||
└─ ...
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**视觉设计**:
|
||||
- 篇章标题:粗体,16px,品牌色渐变
|
||||
@@ -113,7 +113,7 @@
|
||||
**功能目标**: 沉浸式阅读体验,零干扰
|
||||
|
||||
**布局结构**:
|
||||
```
|
||||
\`\`\`
|
||||
[顶部工具栏] (可隐藏)
|
||||
- 返回按钮
|
||||
- 进度条 (当前位置/总长度)
|
||||
@@ -135,7 +135,7 @@
|
||||
- 目录按钮
|
||||
- 下一章
|
||||
- 分享按钮
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**视觉设计**:
|
||||
- 字体大小:16px (可调)
|
||||
@@ -157,7 +157,7 @@
|
||||
**功能目标**: 用户中心 + 分销中心
|
||||
|
||||
**布局结构**:
|
||||
```
|
||||
\`\`\`
|
||||
[用户信息卡片]
|
||||
- 头像
|
||||
- 昵称
|
||||
@@ -182,7 +182,7 @@
|
||||
- 购买记录
|
||||
- 分享记录
|
||||
- 设置
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**交互细节**:
|
||||
- 点击邀请码,自动复制
|
||||
@@ -196,7 +196,7 @@
|
||||
**功能目标**: 类Soul星球的匹配功能,增加社交属性
|
||||
|
||||
**布局结构**:
|
||||
```
|
||||
\`\`\`
|
||||
[星空背景]
|
||||
- Canvas动画
|
||||
- 星星闪烁效果
|
||||
@@ -222,7 +222,7 @@
|
||||
[匹配历史]
|
||||
- 横向滚动
|
||||
- 显示最近10次匹配记录
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**视觉设计**:
|
||||
- 背景:深蓝色渐变 (#1A1A2E -> #16213E)
|
||||
@@ -237,67 +237,67 @@
|
||||
### 3.1 按钮 (Button)
|
||||
|
||||
**主按钮** (Primary):
|
||||
```css
|
||||
\`\`\`css
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: #FFFFFF;
|
||||
height: 48px;
|
||||
border-radius: 24px;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**次按钮** (Secondary):
|
||||
```css
|
||||
\`\`\`css
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E5E7EB;
|
||||
color: #374151;
|
||||
height: 48px;
|
||||
border-radius: 24px;
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**文字按钮** (Text):
|
||||
```css
|
||||
\`\`\`css
|
||||
background: transparent;
|
||||
color: #667eea;
|
||||
text-decoration: underline;
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 3.2 输入框 (Input)
|
||||
|
||||
```css
|
||||
\`\`\`css
|
||||
height: 48px;
|
||||
border: 1px solid #E5E7EB;
|
||||
border-radius: 12px;
|
||||
padding: 0 16px;
|
||||
font-size: 14px;
|
||||
background: #FFFFFF;
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**聚焦状态**:
|
||||
```css
|
||||
\`\`\`css
|
||||
border-color: #667eea;
|
||||
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 3.3 卡片 (Card)
|
||||
|
||||
```css
|
||||
\`\`\`css
|
||||
background: #FFFFFF;
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
||||
padding: 24px;
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**悬停效果**:
|
||||
```css
|
||||
\`\`\`css
|
||||
transform: translateY(-4px);
|
||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
|
||||
transition: all 0.3s ease;
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 3.4 骨架屏 (Skeleton)
|
||||
|
||||
```css
|
||||
\`\`\`css
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
#F3F4F6 25%,
|
||||
@@ -307,7 +307,7 @@ background: linear-gradient(
|
||||
background-size: 200% 100%;
|
||||
animation: loading 1.5s infinite;
|
||||
border-radius: 8px;
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -318,7 +318,7 @@ border-radius: 8px;
|
||||
**触发时机**: 用户点击"购买"按钮
|
||||
|
||||
**内容**:
|
||||
```
|
||||
\`\`\`
|
||||
[标题] 选择支付方式
|
||||
|
||||
[支付方式列表]
|
||||
@@ -334,14 +334,14 @@ border-radius: 8px;
|
||||
[按钮]
|
||||
- 确认支付 (主按钮)
|
||||
- 取消 (次按钮)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 4.2 登录弹窗
|
||||
|
||||
**触发时机**: 未登录用户点击购买或分享
|
||||
|
||||
**内容**:
|
||||
```
|
||||
\`\`\`
|
||||
[标题] 手机号登录
|
||||
|
||||
[输入框]
|
||||
@@ -354,14 +354,14 @@ border-radius: 8px;
|
||||
[按钮]
|
||||
- 登录 / 注册 (主按钮)
|
||||
- 暂不登录 (文字按钮)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 4.3 二维码弹窗
|
||||
|
||||
**触发时机**: 阅读到30%或点击"加入派对"
|
||||
|
||||
**内容**:
|
||||
```
|
||||
\`\`\`
|
||||
[标题] 扫码加入Soul派对群
|
||||
|
||||
[二维码图片]
|
||||
@@ -370,7 +370,7 @@ border-radius: 8px;
|
||||
|
||||
[按钮]
|
||||
- 我知道了
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -378,7 +378,7 @@ border-radius: 8px;
|
||||
|
||||
### 5.1 主色调
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
品牌主色 (Primary):
|
||||
- 主色:#667EEA
|
||||
- 深色:#5A67D8
|
||||
@@ -389,11 +389,11 @@ border-radius: 8px;
|
||||
- 警告:#F59E0B (橙色)
|
||||
- 错误:#EF4444 (红色)
|
||||
- 信息:#3B82F6 (蓝色)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 5.2 中性色
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
文字颜色:
|
||||
- 标题:#111827 (深灰)
|
||||
- 正文:#374151 (中灰)
|
||||
@@ -403,11 +403,11 @@ border-radius: 8px;
|
||||
- 主背景:#FFFFFF (白色)
|
||||
- 次背景:#F9FAFB (浅灰)
|
||||
- 卡片背景:#FFFFFF (白色)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 5.3 深色模式
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
背景:
|
||||
- 主背景:#1C1C1E
|
||||
- 次背景:#2C2C2E
|
||||
@@ -417,7 +417,7 @@ border-radius: 8px;
|
||||
- 标题:#FFFFFF
|
||||
- 正文:#E5E5EA
|
||||
- 辅助:#98989D
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -425,7 +425,7 @@ border-radius: 8px;
|
||||
|
||||
### 6.1 字体系统
|
||||
|
||||
```css
|
||||
\`\`\`css
|
||||
font-family:
|
||||
-apple-system, /* iOS */
|
||||
BlinkMacSystemFont, /* macOS */
|
||||
@@ -434,11 +434,11 @@ font-family:
|
||||
'Hiragino Sans GB', /* macOS 中文 */
|
||||
'Microsoft YaHei', /* Windows 中文 */
|
||||
sans-serif;
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 6.2 字号规范
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
特大标题:32px / 36px (权重: 700)
|
||||
大标题:24px / 28px (权重: 600)
|
||||
中标题:20px / 24px (权重: 600)
|
||||
@@ -446,7 +446,7 @@ font-family:
|
||||
正文:16px / 24px (权重: 400)
|
||||
辅助文字:14px / 20px (权重: 400)
|
||||
小字:12px / 18px (权重: 400)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -454,7 +454,7 @@ font-family:
|
||||
|
||||
### 7.1 过渡动画
|
||||
|
||||
```css
|
||||
\`\`\`css
|
||||
/* 标准过渡 */
|
||||
transition: all 0.3s ease;
|
||||
|
||||
@@ -463,30 +463,30 @@ transition: all 0.15s ease;
|
||||
|
||||
/* 慢速过渡 */
|
||||
transition: all 0.5s ease;
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 7.2 加载动画
|
||||
|
||||
**骨架屏**:
|
||||
```css
|
||||
\`\`\`css
|
||||
@keyframes loading {
|
||||
0% { background-position: -200% 0; }
|
||||
100% { background-position: 200% 0; }
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**旋转加载**:
|
||||
```css
|
||||
\`\`\`css
|
||||
@keyframes spin {
|
||||
from { transform: rotate(0deg); }
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 7.3 页面切换动画
|
||||
|
||||
**滑动进入** (iOS风格):
|
||||
```css
|
||||
\`\`\`css
|
||||
@keyframes slideIn {
|
||||
from {
|
||||
transform: translateX(100%);
|
||||
@@ -497,13 +497,13 @@ transition: all 0.5s ease;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
## 八、响应式断点
|
||||
|
||||
```css
|
||||
\`\`\`css
|
||||
/* 手机 (默认) */
|
||||
@media (max-width: 640px) { ... }
|
||||
|
||||
@@ -512,7 +512,7 @@ transition: all 0.5s ease;
|
||||
|
||||
/* 桌面 */
|
||||
@media (min-width: 1025px) { ... }
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -520,23 +520,23 @@ transition: all 0.5s ease;
|
||||
|
||||
### 9.1 设计稿命名
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
格式:页面名称-设备-版本号.fig
|
||||
示例:
|
||||
- 首页-Mobile-v1.0.fig
|
||||
- 目录页-Mobile-v1.0.fig
|
||||
- 阅读页-Mobile-v1.0.fig
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 9.2 切图规范
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
命名:功能-类型-尺寸.png
|
||||
示例:
|
||||
- button-primary-normal@2x.png
|
||||
- icon-lock-24x24@2x.png
|
||||
- cover-book-400x600@2x.png
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 9.3 标注规范
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
3. **结构分析**:用 Mermaid 展示组件依赖。
|
||||
|
||||
### 示例 Mermaid (组件结构)
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
classDiagram
|
||||
Page <|-- Header
|
||||
Page <|-- Content
|
||||
@@ -53,4 +53,4 @@ classDiagram
|
||||
+state: loading
|
||||
+effect: fetchData()
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
@@ -11,20 +11,20 @@
|
||||
### 1.1 基础URL
|
||||
|
||||
**开发环境**:
|
||||
```
|
||||
\`\`\`
|
||||
http://localhost:3000/api
|
||||
http://localhost:3001/api
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**生产环境**:
|
||||
```
|
||||
\`\`\`
|
||||
http://kr-soul.lytiao.com/api
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 1.2 统一返回格式
|
||||
|
||||
**成功响应**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -32,20 +32,20 @@ http://kr-soul.lytiao.com/api
|
||||
// 实际数据
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**错误响应**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 400,
|
||||
"message": "错误描述",
|
||||
"error": "详细错误信息"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 1.3 HTTP状态码
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
200 - 成功
|
||||
201 - 创建成功
|
||||
400 - 请求参数错误
|
||||
@@ -53,19 +53,19 @@ http://kr-soul.lytiao.com/api
|
||||
403 - 禁止访问
|
||||
404 - 资源不存在
|
||||
500 - 服务器错误
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 1.4 认证方式
|
||||
|
||||
**用户Token**:
|
||||
```
|
||||
\`\`\`
|
||||
Header: Authorization: Bearer <token>
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**管理员Token**:
|
||||
```
|
||||
\`\`\`
|
||||
Header: Authorization: Bearer admin-token-secret
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -80,7 +80,7 @@ Header: Authorization: Bearer admin-token-secret
|
||||
**请求参数**: 无
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -110,7 +110,7 @@ Header: Authorization: Bearer admin-token-secret
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -121,12 +121,12 @@ Header: Authorization: Bearer admin-token-secret
|
||||
**描述**: 获取最新发布的章节列表
|
||||
|
||||
**请求参数**:
|
||||
```
|
||||
\`\`\`
|
||||
limit: number (可选,默认10)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -144,7 +144,7 @@ limit: number (可选,默认10)
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -155,13 +155,13 @@ limit: number (可选,默认10)
|
||||
**描述**: 获取指定章节的完整内容
|
||||
|
||||
**请求参数**:
|
||||
```
|
||||
\`\`\`
|
||||
id: string (章节ID,如"1.1")
|
||||
userId?: string (可选,用于权限检查)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -177,10 +177,10 @@ userId?: string (可选,用于权限检查)
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**错误响应** (未购买):
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 403,
|
||||
"message": "需要购买此章节",
|
||||
@@ -190,7 +190,7 @@ userId?: string (可选,用于权限检查)
|
||||
"sectionId": "1.1"
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -201,12 +201,12 @@ userId?: string (可选,用于权限检查)
|
||||
**描述**: 根据文件路径获取Markdown内容
|
||||
|
||||
**请求参数**:
|
||||
```
|
||||
\`\`\`
|
||||
path: string (文件路径,如"book/序言.md")
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -214,7 +214,7 @@ path: string (文件路径,如"book/序言.md")
|
||||
"content": "# 序言\n\n为什么我每天早上6点在Soul开播?..."
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -227,7 +227,7 @@ path: string (文件路径,如"book/序言.md")
|
||||
**描述**: 创建支付订单
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"userId": "user_123",
|
||||
"type": "section", // "section" | "fullbook"
|
||||
@@ -237,10 +237,10 @@ path: string (文件路径,如"book/序言.md")
|
||||
"paymentMethod": "wechat", // "wechat" | "alipay" | "usdt" | "paypal"
|
||||
"referralCode": "REFXXXX" // 可选
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "订单创建成功",
|
||||
@@ -264,7 +264,7 @@ path: string (文件路径,如"book/序言.md")
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -275,7 +275,7 @@ path: string (文件路径,如"book/序言.md")
|
||||
**描述**: 微信支付异步通知接口(仅供微信服务器调用)
|
||||
|
||||
**请求体**: XML格式
|
||||
```xml
|
||||
\`\`\`xml
|
||||
<xml>
|
||||
<return_code><![CDATA[SUCCESS]]></return_code>
|
||||
<result_code><![CDATA[SUCCESS]]></result_code>
|
||||
@@ -283,15 +283,15 @@ path: string (文件路径,如"book/序言.md")
|
||||
<total_fee>100</total_fee>
|
||||
<openid><![CDATA[xxxxx]]></openid>
|
||||
</xml>
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应**: XML格式
|
||||
```xml
|
||||
\`\`\`xml
|
||||
<xml>
|
||||
<return_code><![CDATA[SUCCESS]]></return_code>
|
||||
<return_msg><![CDATA[OK]]></return_msg>
|
||||
</xml>
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -302,18 +302,18 @@ path: string (文件路径,如"book/序言.md")
|
||||
**描述**: 支付宝异步通知接口
|
||||
|
||||
**请求体**: Form表单格式
|
||||
```
|
||||
\`\`\`
|
||||
out_trade_no=ORDER_xxx
|
||||
trade_status=TRADE_SUCCESS
|
||||
buyer_id=2088xxx
|
||||
total_amount=1.00
|
||||
sign=xxxxx
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应**: 纯文本
|
||||
```
|
||||
\`\`\`
|
||||
success
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -324,14 +324,14 @@ success
|
||||
**描述**: 验证订单支付状态
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"orderId": "ORDER_xxx"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -341,7 +341,7 @@ success
|
||||
"paidAt": "2025-01-14T12:05:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -352,15 +352,15 @@ success
|
||||
**描述**: 查询用户订单列表
|
||||
|
||||
**请求参数**:
|
||||
```
|
||||
\`\`\`
|
||||
userId: string
|
||||
status?: string (可选,筛选状态)
|
||||
page?: number (可选,默认1)
|
||||
limit?: number (可选,默认10)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -380,7 +380,7 @@ limit?: number (可选,默认10)
|
||||
"limit": 10
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -393,15 +393,15 @@ limit?: number (可选,默认10)
|
||||
**描述**: 微信一键登录
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": "wx_login_code",
|
||||
"referralCode": "REFXXXX" // 可选
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "登录成功",
|
||||
@@ -417,7 +417,7 @@ limit?: number (可选,默认10)
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -428,12 +428,12 @@ limit?: number (可选,默认10)
|
||||
**描述**: 获取用户阅读统计数据
|
||||
|
||||
**请求参数**:
|
||||
```
|
||||
\`\`\`
|
||||
userId: string
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -446,7 +446,7 @@ userId: string
|
||||
"lastReadAt": "2025-01-14T12:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -457,22 +457,22 @@ userId: string
|
||||
**描述**: 记录用户阅读进度
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"userId": "user_123",
|
||||
"sectionId": "3.2",
|
||||
"progress": 68, // 百分比
|
||||
"readingTime": 180 // 本次阅读时长(秒)
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "记录成功"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -485,12 +485,12 @@ userId: string
|
||||
**描述**: 获取推广收益详情
|
||||
|
||||
**请求参数**:
|
||||
```
|
||||
\`\`\`
|
||||
userId: string
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -513,7 +513,7 @@ userId: string
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -524,12 +524,12 @@ userId: string
|
||||
**描述**: 获取推广数据统计
|
||||
|
||||
**请求参数**:
|
||||
```
|
||||
\`\`\`
|
||||
userId: string
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "成功",
|
||||
@@ -548,7 +548,7 @@ userId: string
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -559,7 +559,7 @@ userId: string
|
||||
**描述**: 申请佣金提现
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"userId": "user_123",
|
||||
"amount": 100.00,
|
||||
@@ -567,10 +567,10 @@ userId: string
|
||||
"account": "微信号或支付宝账号",
|
||||
"name": "真实姓名"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "提现申请已提交",
|
||||
@@ -581,7 +581,7 @@ userId: string
|
||||
"createdAt": "2025-01-14T12:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -594,15 +594,15 @@ userId: string
|
||||
**描述**: 管理员登录
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"username": "admin",
|
||||
"password": "admin123"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"success": true,
|
||||
"token": "admin-token-secret",
|
||||
@@ -613,7 +613,7 @@ userId: string
|
||||
"name": "卡若"
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -624,12 +624,12 @@ userId: string
|
||||
**描述**: 获取后台概览数据
|
||||
|
||||
**请求头**:
|
||||
```
|
||||
\`\`\`
|
||||
Authorization: Bearer admin-token-secret
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"content": {
|
||||
"totalChapters": 65,
|
||||
@@ -659,19 +659,19 @@ Authorization: Bearer admin-token-secret
|
||||
"todayNewUsers": 23
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
### 6.3 内容管理接口
|
||||
|
||||
**① 章节列表**:
|
||||
```
|
||||
\`\`\`
|
||||
GET /api/admin/content
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**② 创建章节**:
|
||||
```
|
||||
\`\`\`
|
||||
POST /api/admin/content
|
||||
{
|
||||
"title": "章节标题",
|
||||
@@ -679,56 +679,56 @@ POST /api/admin/content
|
||||
"price": 1,
|
||||
"isFree": false
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**③ 编辑章节**:
|
||||
```
|
||||
\`\`\`
|
||||
PUT /api/admin/content/:id
|
||||
{
|
||||
"title": "新标题",
|
||||
"content": "新内容"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**④ 删除章节**:
|
||||
```
|
||||
\`\`\`
|
||||
DELETE /api/admin/content/:id
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
### 6.4 付费管理接口
|
||||
|
||||
**① 订单列表**:
|
||||
```
|
||||
\`\`\`
|
||||
GET /api/admin/payment?status=completed&page=1&limit=20
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**② 收益统计**:
|
||||
```
|
||||
\`\`\`
|
||||
GET /api/admin/payment/stats?startDate=2025-01-01&endDate=2025-01-31
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**③ 退款处理**:
|
||||
```
|
||||
\`\`\`
|
||||
POST /api/admin/payment/refund
|
||||
{
|
||||
"orderId": "ORDER_xxx",
|
||||
"reason": "用户申请退款"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
### 6.5 分销管理接口
|
||||
|
||||
**① 推广者列表**:
|
||||
```
|
||||
\`\`\`
|
||||
GET /api/admin/referral?sortBy=earnings&order=desc&page=1
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**② 佣金结算**:
|
||||
```
|
||||
\`\`\`
|
||||
POST /api/admin/referral/settle
|
||||
{
|
||||
"userId": "user_123",
|
||||
@@ -736,12 +736,12 @@ POST /api/admin/referral/settle
|
||||
"method": "wechat",
|
||||
"account": "微信号"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**③ 推广数据统计**:
|
||||
```
|
||||
\`\`\`
|
||||
GET /api/admin/referral/stats?period=month
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -754,14 +754,14 @@ GET /api/admin/referral/stats?period=month
|
||||
**描述**: 手动触发内容同步
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"force": true // 是否强制全量同步
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "同步成功",
|
||||
@@ -773,7 +773,7 @@ GET /api/admin/referral/stats?period=month
|
||||
"syncAt": "2025-01-14T12:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -786,7 +786,7 @@ GET /api/admin/referral/stats?period=month
|
||||
**描述**: 获取系统配置信息(支付方式、营销配置等)
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"paymentMethods": {
|
||||
"wechat": {
|
||||
@@ -824,7 +824,7 @@ GET /api/admin/referral/stats?period=month
|
||||
"platform": "Soul"
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -833,7 +833,7 @@ GET /api/admin/referral/stats?period=month
|
||||
### 9.1 使用cURL测试
|
||||
|
||||
**创建订单**:
|
||||
```bash
|
||||
\`\`\`bash
|
||||
curl -X POST http://localhost:3001/api/payment/create-order \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
@@ -844,28 +844,28 @@ curl -X POST http://localhost:3001/api/payment/create-order \
|
||||
"amount": 1.00,
|
||||
"paymentMethod": "wechat"
|
||||
}'
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**获取章节内容**:
|
||||
```bash
|
||||
\`\`\`bash
|
||||
curl http://localhost:3001/api/book/chapter/1.1
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**后台登录**:
|
||||
```bash
|
||||
\`\`\`bash
|
||||
curl -X POST http://localhost:3001/api/admin \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"username": "admin",
|
||||
"password": "admin123"
|
||||
}'
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
## 十、错误码说明
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
0 - 成功
|
||||
400 - 请求参数错误
|
||||
401 - 未授权(未登录)
|
||||
@@ -890,7 +890,7 @@ curl -X POST http://localhost:3001/api/admin \
|
||||
4001 - 提现金额不足
|
||||
4002 - 提现申请失败
|
||||
4003 - 提现记录不存在
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
3. **逻辑图解**:用 Mermaid 展示异步处理流程。
|
||||
|
||||
### 示例 Mermaid (类图)
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
classDiagram
|
||||
class UserRouter {
|
||||
+get_user()
|
||||
@@ -61,4 +61,4 @@ classDiagram
|
||||
}
|
||||
UserRouter --> UserService
|
||||
UserService --> VectorStore
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
3. **结构可视化**:用 Mermaid 生成 ER 图。
|
||||
|
||||
### 示例 Mermaid (ER图)
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
erDiagram
|
||||
User ||--o{ Order : places
|
||||
User ||--o{ TrafficPool : owns
|
||||
@@ -59,4 +59,4 @@ erDiagram
|
||||
string orderId
|
||||
float amount
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
### 1.2 当前方案 vs 未来方案
|
||||
|
||||
**当前方案** (LocalStorage):
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 优点
|
||||
- 无需服务器
|
||||
- 开发调试方便
|
||||
@@ -29,10 +29,10 @@
|
||||
- 数据仅存浏览器本地
|
||||
- 多设备无法同步
|
||||
- 数据容易丢失
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**未来方案** (MongoDB):
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 优点
|
||||
- 数据持久化存储
|
||||
- 多设备数据同步
|
||||
@@ -44,7 +44,7 @@
|
||||
2. 创建数据库连接
|
||||
3. 逐步替换LocalStorage
|
||||
4. 添加数据迁移脚本
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
### 2.1 本地开发环境
|
||||
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# MongoDB本地安装
|
||||
brew install mongodb-community@6.0
|
||||
|
||||
@@ -61,19 +61,19 @@ brew services start mongodb-community@6.0
|
||||
|
||||
# 连接字符串
|
||||
mongodb://localhost:27017/soul-experiment
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 2.2 生产环境 (MongoDB Atlas)
|
||||
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# 连接字符串
|
||||
mongodb+srv://<username>:<password>@cluster0.mongodb.net/soul-experiment?retryWrites=true&w=majority
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 2.3 环境变量配置
|
||||
|
||||
**.env.local**:
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# MongoDB配置
|
||||
MONGODB_URI=mongodb://localhost:27017/soul-experiment
|
||||
MONGODB_DB_NAME=soul-experiment
|
||||
@@ -82,7 +82,7 @@ MONGODB_DB_NAME=soul-experiment
|
||||
# MONGODB_URI=mongodb://10.88.182.62:3306/soul-experiment
|
||||
# MONGODB_USERNAME=root
|
||||
# MONGODB_PASSWORD=Vtka(agu)-1
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -93,17 +93,17 @@ MONGODB_DB_NAME=soul-experiment
|
||||
**集合名称**: `users`
|
||||
|
||||
**索引**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
phone: 1, // 唯一索引
|
||||
referralCode: 1, // 唯一索引
|
||||
referredBy: 1, // 普通索引
|
||||
createdAt: -1 // 降序索引
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**文档结构**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
_id: ObjectId("65a1234567890abcdef12345"),
|
||||
phone: "15880802661", // 手机号
|
||||
@@ -140,10 +140,10 @@ MONGODB_DB_NAME=soul-experiment
|
||||
createdAt: ISODate("2025-01-01T00:00:00Z"),
|
||||
updatedAt: ISODate("2025-01-14T12:00:00Z")
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**查询示例**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 根据手机号查找用户
|
||||
db.users.findOne({ phone: "15880802661" })
|
||||
|
||||
@@ -155,7 +155,7 @@ db.users.find({ referredBy: "REFABC123" })
|
||||
|
||||
// 查找收益前10的推广者
|
||||
db.users.find({}).sort({ earnings: -1 }).limit(10)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -164,17 +164,17 @@ db.users.find({}).sort({ earnings: -1 }).limit(10)
|
||||
**集合名称**: `orders`
|
||||
|
||||
**索引**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
orderId: 1, // 唯一索引
|
||||
userId: 1, // 普通索引
|
||||
status: 1, // 普通索引
|
||||
createdAt: -1 // 降序索引
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**文档结构**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
_id: ObjectId("65a1234567890abcdef12345"),
|
||||
orderId: "ORDER_1705200000_abc123", // 订单号
|
||||
@@ -204,10 +204,10 @@ db.users.find({}).sort({ earnings: -1 }).limit(10)
|
||||
expireAt: ISODate("2025-01-14T12:30:00Z"), // 过期时间(30分钟)
|
||||
updatedAt: ISODate("2025-01-14T12:05:00Z")
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**查询示例**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 查找用户所有订单
|
||||
db.orders.find({ userId: ObjectId("65a...") }).sort({ createdAt: -1 })
|
||||
|
||||
@@ -235,7 +235,7 @@ db.orders.find({
|
||||
referralCode: "REFABC123",
|
||||
status: "completed"
|
||||
})
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -244,16 +244,16 @@ db.orders.find({
|
||||
**集合名称**: `withdrawals`
|
||||
|
||||
**索引**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
userId: 1, // 普通索引
|
||||
status: 1, // 普通索引
|
||||
createdAt: -1 // 降序索引
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**文档结构**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
_id: ObjectId("65a1234567890abcdef12345"),
|
||||
withdrawalId: "WD_1705200000_abc123", // 提现单号
|
||||
@@ -276,10 +276,10 @@ db.orders.find({
|
||||
completedAt: ISODate("2025-01-14T14:00:00Z"), // 完成时间
|
||||
updatedAt: ISODate("2025-01-14T14:00:00Z")
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**查询示例**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 查找待审核提现
|
||||
db.withdrawals.find({ status: "pending" }).sort({ createdAt: 1 })
|
||||
|
||||
@@ -301,7 +301,7 @@ db.withdrawals.aggregate([
|
||||
totalCount: { $sum: 1 }
|
||||
}}
|
||||
])
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -310,16 +310,16 @@ db.withdrawals.aggregate([
|
||||
**集合名称**: `sections`
|
||||
|
||||
**索引**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
sectionId: 1, // 唯一索引
|
||||
isFree: 1, // 普通索引
|
||||
createdAt: -1 // 降序索引
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**文档结构**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
_id: ObjectId("65a1234567890abcdef12345"),
|
||||
sectionId: "1.1", // 章节ID
|
||||
@@ -358,10 +358,10 @@ db.withdrawals.aggregate([
|
||||
createdAt: ISODate("2025-01-01T00:00:00Z"),
|
||||
updatedAt: ISODate("2025-01-14T12:00:00Z")
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**查询示例**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 获取所有免费章节
|
||||
db.sections.find({ isFree: true })
|
||||
|
||||
@@ -380,7 +380,7 @@ db.sections.createIndex({
|
||||
keywords: "text"
|
||||
})
|
||||
db.sections.find({ $text: { $search: "创业 私域" } })
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -389,16 +389,16 @@ db.sections.find({ $text: { $search: "创业 私域" } })
|
||||
**集合名称**: `reading_logs`
|
||||
|
||||
**索引**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
userId: 1,
|
||||
sectionId: 1,
|
||||
createdAt: -1
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**文档结构**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
_id: ObjectId("65a1234567890abcdef12345"),
|
||||
userId: ObjectId("65a1234567890abcdef00001"),
|
||||
@@ -417,7 +417,7 @@ db.sections.find({ $text: { $search: "创业 私域" } })
|
||||
// 时间戳
|
||||
createdAt: ISODate("2025-01-14T12:00:00Z")
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -426,7 +426,7 @@ db.sections.find({ $text: { $search: "创业 私域" } })
|
||||
**集合名称**: `settings`
|
||||
|
||||
**文档结构**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
{
|
||||
_id: "global_settings",
|
||||
|
||||
@@ -460,7 +460,7 @@ db.sections.find({ $text: { $search: "创业 私域" } })
|
||||
// 时间戳
|
||||
updatedAt: ISODate("2025-01-14T12:00:00Z")
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -469,7 +469,7 @@ db.sections.find({ $text: { $search: "创业 私域" } })
|
||||
### 4.1 LocalStorage to MongoDB
|
||||
|
||||
**步骤1**: 导出LocalStorage数据
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 导出脚本 scripts/export-localstorage.js
|
||||
const fs = require('fs')
|
||||
|
||||
@@ -479,10 +479,10 @@ const settings = JSON.parse(localStorage.getItem('app_settings') || '{}')
|
||||
|
||||
const exportData = { users, orders, settings }
|
||||
fs.writeFileSync('data-export.json', JSON.stringify(exportData, null, 2))
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**步骤2**: 导入MongoDB
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 导入脚本 scripts/import-mongodb.js
|
||||
const { MongoClient } = require('mongodb')
|
||||
const fs = require('fs')
|
||||
@@ -510,7 +510,7 @@ async function importData() {
|
||||
}
|
||||
|
||||
importData()
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -518,7 +518,7 @@ importData()
|
||||
|
||||
### 5.1 用户操作
|
||||
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// lib/db/users.ts
|
||||
import { MongoClient, ObjectId } from 'mongodb'
|
||||
|
||||
@@ -560,11 +560,11 @@ export async function updateUserEarnings(
|
||||
}
|
||||
)
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 5.2 订单操作
|
||||
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// lib/db/orders.ts
|
||||
export async function createOrder(orderData: Partial<Order>) {
|
||||
const db = await getDatabase()
|
||||
@@ -634,7 +634,7 @@ export async function completeOrder(orderId: string) {
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -642,17 +642,17 @@ export async function completeOrder(orderId: string) {
|
||||
|
||||
### 6.1 自动备份
|
||||
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# 每日凌晨3点自动备份
|
||||
0 3 * * * mongodump --uri="mongodb://localhost:27017/soul-experiment" --out="/backup/$(date +\%Y\%m\%d)"
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 6.2 恢复数据
|
||||
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# 恢复指定日期的备份
|
||||
mongorestore --uri="mongodb://localhost:27017/soul-experiment" --dir="/backup/20250114"
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -660,7 +660,7 @@ mongorestore --uri="mongodb://localhost:27017/soul-experiment" --dir="/backup/20
|
||||
|
||||
### 7.1 索引优化
|
||||
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 创建复合索引
|
||||
db.orders.createIndex({ userId: 1, createdAt: -1 })
|
||||
db.orders.createIndex({ status: 1, expireAt: 1 })
|
||||
@@ -668,11 +668,11 @@ db.users.createIndex({ referralCode: 1 }, { unique: true })
|
||||
|
||||
// 查看索引使用情况
|
||||
db.orders.find({ userId: ObjectId("...") }).explain("executionStats")
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 7.2 查询优化
|
||||
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// 使用投影减少数据传输
|
||||
db.users.find(
|
||||
{ phone: "15880802661" },
|
||||
@@ -695,7 +695,7 @@ db.orders.aggregate([
|
||||
"user.nickname": 1
|
||||
}}
|
||||
])
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
以下是整个自动化部署流程的高层概览图:
|
||||
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
graph TD
|
||||
A[开发者 Push 代码到 GitHub 仓库] --> B(GitHub 仓库);
|
||||
B -- 代码更新 --> C{GitHub Webhook 触发};
|
||||
@@ -28,7 +28,7 @@ graph TD
|
||||
D -- 执行 deploy_webhook.php 脚本 --> E[自动部署脚本: <br/> git pull <br/> npm install <br/> npm run build <br/> pm2 restart];
|
||||
E --> F[Next.js 应用更新并重启];
|
||||
F --> G[用户通过域名访问最新网站];
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
## IV. 各环节详细流程与配置
|
||||
|
||||
@@ -36,13 +36,13 @@ graph TD
|
||||
|
||||
这是您日常开发的工作流程。
|
||||
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
graph TD
|
||||
A[开发者本地修改 Next.js 代码] --> B[git add];
|
||||
B --> C[git commit -m "更新了新功能"];
|
||||
C --> D[git push origin main];
|
||||
D --> E(代码推送到 GitHub 远程仓库);
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**操作说明:**
|
||||
您在本地完成 Next.js 项目开发后,通过标准的 Git 命令将代码提交并推送到 GitHub 仓库的指定分支(例如 `main` 或 `master`)。
|
||||
@@ -71,7 +71,7 @@ graph TD
|
||||
* 在宝塔面板 `网站` 列表中,找到您刚刚创建的网站,点击右侧的 `设置`。
|
||||
* 切换到 `配置文件` 选项卡。
|
||||
* 在 `server` 配置块中,添加以下 `location` 配置(请将 `3000` 替换为 Next.js 应用实际监听的端口):
|
||||
```nginx
|
||||
\`\`\`nginx
|
||||
# Nginx 配置示例 (添加到 server 段内)
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000; # <--- 替换为 PM2 启动的 Next.js 应用监听的实际端口
|
||||
@@ -82,7 +82,7 @@ graph TD
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
# 如果您的 Next.js 应用有特殊路由需求,可能需要添加其他配置
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
* 点击 `保存`。
|
||||
|
||||
5. **使用 PM2 管理 Next.js 应用:**
|
||||
@@ -113,7 +113,7 @@ graph TD
|
||||
|
||||
这个配置将使得 GitHub 在您推送代码时通知宝塔面板。
|
||||
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
graph TD
|
||||
A[登录 GitHub 仓库] --> B[Settings];
|
||||
B --> C[Webhooks];
|
||||
@@ -123,7 +123,7 @@ graph TD
|
||||
F --> G[选择 'Just the push event'];
|
||||
G --> H[Add webhook];
|
||||
H --> I(Webhook 配置完成);
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**操作说明:**
|
||||
1. **登录 GitHub**,进入您的 `wztouzhi` 项目仓库。
|
||||
@@ -146,7 +146,7 @@ graph TD
|
||||
|
||||
**脚本内容(已根据您的截图信息优化,请务必根据您的实际情况修改 `SECRET`):**
|
||||
|
||||
```php
|
||||
\`\`\`php
|
||||
<?php
|
||||
// deploy_webhook.php
|
||||
// GitHub Webhook for Next.js (React) project deployment on Baota Panel
|
||||
@@ -233,11 +233,11 @@ if ($github_event === 'push') {
|
||||
|
||||
http_response_code(200);
|
||||
?>
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**脚本流程图:**
|
||||
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
graph TD
|
||||
A[GitHub Webhook 请求] --> B{deploy_webhook.php 接收};
|
||||
B -- 获取 Payload & Headers --> C{验证 Secret};
|
||||
@@ -252,7 +252,7 @@ graph TD
|
||||
K --> L[执行 npm run build];
|
||||
L --> M[执行 pm2 restart 应用名];
|
||||
M --> N(部署成功,返回 200 OK);
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### V. 自动化部署完成与验证
|
||||
|
||||
@@ -277,4 +277,4 @@ graph TD
|
||||
* **依赖缓存**:在部署脚本中,`npm install` 会在每次部署时运行。如果您的项目依赖较多,可以考虑在 `Dockerfile` 中构建一个包含依赖的镜像,或者在服务器上对 `node_modules` 进行缓存处理,以加快部署速度(此文档以直接安装为默认)。
|
||||
* **错误处理**:脚本中已加入了日志记录,您可以通过查看 `deploy.log` 文件来排查部署失败的原因。
|
||||
* **生产模式**:确保您的 Next.js 应用在 `npm run build` 后是以生产模式构建的。
|
||||
* **持续学习**:自动化部署是一个持续优化的过程,您可以根据项目需求和服务器性能,不断调整部署脚本。
|
||||
* **持续学习**:自动化部署是一个持续优化的过程,您可以根据项目需求和服务器性能,不断调整部署脚本。
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
- **V. 故障排查**:列出常见错误(如权限问题、端口冲突)。
|
||||
|
||||
### 3. 脚本模板(Next.js 示例)
|
||||
```bash
|
||||
\`\`\`bash
|
||||
#!/bin/bash
|
||||
echo "Start deployment..."
|
||||
cd /www/wwwroot/your_project_path
|
||||
@@ -29,10 +29,10 @@ npm install
|
||||
npm run build
|
||||
pm2 reload all
|
||||
echo "Deployment finished."
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 4. 流程图示例
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
graph TD
|
||||
A[提交代码到GitHub] --> B{GitHub Webhook}
|
||||
B --> C[发送Payload到宝塔面板]
|
||||
@@ -42,4 +42,4 @@ graph TD
|
||||
F --> G[执行 composer install (可选)]
|
||||
G --> H[清理网站缓存 (可选)]
|
||||
H --> I[网站内容自动更新]
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
@@ -8,7 +8,7 @@ II. 前提条件
|
||||
4. Composer (如果项目是 PHP):PHP 项目需要确保服务器上安装了 Composer,用于管理项目依赖。
|
||||
III. 流程概览
|
||||
以下是自动化部署的整个流程图:
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
graph TD
|
||||
A[提交代码到GitHub] --> B{GitHub Webhook};
|
||||
B --> C[发送Payload到宝塔面板];
|
||||
@@ -18,7 +18,7 @@ graph TD
|
||||
F --> G[执行 composer install (可选)];
|
||||
G --> H[清理网站缓存 (可选)];
|
||||
H --> I[网站内容自动更新];
|
||||
```
|
||||
\`\`\`
|
||||
流程说明:
|
||||
当您将代码提交(Push)到 GitHub 仓库后,GitHub 会通过预设的 Webhook 向您的宝塔面板服务器发送一个通知(Payload)。宝塔面板接收到这个通知后,会触发一个预设的部署脚本,该脚本通常会执行 git pull 拉取最新代码,并可能运行 composer install 安装依赖,以及清理网站缓存等操作。最终,您的网站内容将自动更新到最新版本。
|
||||
IV. 具体配置步骤
|
||||
@@ -57,7 +57,7 @@ B. 宝塔面板服务器配置
|
||||
* 部署类型:选择 `拉取`。
|
||||
* 部署完成后执行的命令 (最重要):这是自动化部署的核心。当代码拉取完成后,宝塔会执行这些命令。您可以根据您的项目类型填写相应的命令。
|
||||
* PHP 项目示例命令(请根据您的项目实际情况调整):
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# 进入项目部署目录 (宝塔会自动切换到此目录,但为了保险可以再cd一次)
|
||||
cd /www/wwwroot/your_website_directory/
|
||||
# 拉取最新代码
|
||||
@@ -74,7 +74,7 @@ B. 宝塔面板服务器配置
|
||||
# chown -R www:www .
|
||||
# chmod -R 755 .
|
||||
# chmod -R 777 storage bootstrap/cache # 给予某些目录写入权限
|
||||
```
|
||||
\`\`\`
|
||||
请根据您的项目实际情况,选择并修改适合的命令。
|
||||
* Webhook URL:在您配置完上述信息并保存后,宝塔面板会为您生成一个 `WebHook地址`。复制这个 URL。
|
||||
11. 返回 GitHub 配置 Webhook:
|
||||
@@ -100,4 +100,4 @@ VI. 注意事项
|
||||
- 安全性:`Secret` 密钥非常重要,请妥善保管,不要泄露。
|
||||
- 分支管理:建议只对生产环境或主分支(如 `main` 或 `production`)进行自动部署,开发分支可以手动部署或使用单独的测试环境。
|
||||
- 环境区分:生产环境和开发环境应严格区分,避免将开发中的不稳定代码直接部署到生产环境。
|
||||
- 备份:在进行任何部署操作之前,务必定期备份您的网站代码和数据库。
|
||||
- 备份:在进行任何部署操作之前,务必定期备份您的网站代码和数据库。
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
3. **流程图解**:用 Mermaid 展示部署流水线。
|
||||
|
||||
### 示例 Mermaid (部署流)
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
sequenceDiagram
|
||||
participant Dev
|
||||
participant GitHub
|
||||
@@ -52,4 +52,4 @@ sequenceDiagram
|
||||
Server->>Server: Pip Install & Build
|
||||
Server->>Server: Restart Gunicorn/PM2
|
||||
Server-->>GitHub: Status Update
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
3. **用户旅程**:用 Mermaid 展示用户操作流程。
|
||||
|
||||
### 示例 Mermaid (用户旅程)
|
||||
```mermaid
|
||||
\`\`\`mermaid
|
||||
journey
|
||||
title 合作方使用流程
|
||||
section 注册
|
||||
@@ -45,4 +45,4 @@ journey
|
||||
section 提现
|
||||
申请提现: 4: 合作方
|
||||
到账: 5: 合作方
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
## 输出格式要求
|
||||
|
||||
### 1. 复盘示例
|
||||
```markdown
|
||||
\`\`\`markdown
|
||||
[私域云阿米巴模式落地复盘](2025年Q2)
|
||||
**目标&结果**:目标3个月内绑定15家合作方,实际完成18家(超20%)。
|
||||
**过程**:5月启动流量测试(日播放量1.2万→合作方咨询量周增30%);6月上线私域系统(30名兼职完成10家企业培训);7月现金分润验证(单家月均分润1.2万,留存率90%)。
|
||||
**反思**:初期未明确“不属于对方的钱”定义,导致2家合作方误解;需补充分润规则文档。
|
||||
**总结**:流量+系统+现金分润是绑定核心,需强化规则透明化。
|
||||
**执行**:8月更新《云阿米巴分润手册》,9月开展合作方培训。
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 2. 营销文章结构
|
||||
- **I(兴趣)**:自问自答引发共鸣(例:“你有没有想过,为什么合作方总说‘再考虑’?”)。
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## 🌟 体系架构
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
┌─────────────────────────┐
|
||||
│ 智能项目生成引擎 v3.0 │
|
||||
│ (核心入口提示词) │
|
||||
@@ -44,13 +44,13 @@
|
||||
│ • 团队架构分润 │ │ • 渠道分销返佣 │ │ 响应式设计 │
|
||||
│ • 可视化复盘 │ │ • 裂变活动方案 │ │ │
|
||||
└───────────────┘ └───────────────┘ └───────────────┘
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
## 📁 完整目录结构
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
1、项目模板/
|
||||
├── 智能项目生成引擎v3.0.md # 核心入口提示词
|
||||
├── README_模板体系总览.md # 本文档
|
||||
@@ -119,7 +119,7 @@
|
||||
│ ├── 模板_裂变活动方案.md
|
||||
│ └── 模板_渠道分销政策表.md
|
||||
└── 生成指南_土.md
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -200,21 +200,21 @@
|
||||
## 🚀 使用流程
|
||||
|
||||
### 1. 日常使用(Markdown输出)
|
||||
```
|
||||
\`\`\`
|
||||
1. 打开对应模板或生成指南
|
||||
2. 复制提示词发送给AI
|
||||
3. AI输出Markdown表格
|
||||
4. 复制到文档中使用
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 2. 最终文档(HTML输出)
|
||||
```
|
||||
\`\`\`
|
||||
1. 完成内容生成后
|
||||
2. 告诉AI:"生成HTML文件"
|
||||
3. AI输出苹果毛玻璃风格HTML
|
||||
4. 保存为.html文件
|
||||
5. 浏览器打开即可编辑和导出图片
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -235,10 +235,10 @@
|
||||
3. **分现金不分所有权**:风险隔离,灵活退出
|
||||
|
||||
### C2B2S裂变增长模型
|
||||
```
|
||||
\`\`\`
|
||||
C (Consumer) → B (Business) → S (Supply Chain)
|
||||
用户端 门店端 供应链
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
- 管理:模块化后台(/api/admin/*)
|
||||
|
||||
#### 3. 文件结构
|
||||
```
|
||||
\`\`\`
|
||||
miniprogram/ # 小程序源码目录
|
||||
├── pages/ # 页面
|
||||
│ ├── index/ # 首页
|
||||
@@ -93,7 +93,7 @@ app/api/ # 后端API
|
||||
|
||||
开发文档/
|
||||
└── 小程序开发完成说明.md # 完整交付文档
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
#### 4. 部署说明
|
||||
- **小程序AppID**: 需在 `project.config.json` 配置
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
### 小程序源码
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
miniprogram/
|
||||
├── pages/ # 5个页面(index/match/my/read/chapters)
|
||||
├── utils/ # 工具类(payment.js等)
|
||||
@@ -99,11 +99,11 @@ miniprogram/
|
||||
├── app.wxss # 全局样式
|
||||
├── project.config.json # 项目配置
|
||||
└── README.md # 使用说明
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 后端API
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
app/api/
|
||||
├── admin/
|
||||
│ ├── route.ts # 管理后台入口
|
||||
@@ -111,7 +111,7 @@ app/api/
|
||||
│ ├── payment/route.ts # 付费管理
|
||||
│ └── referral/route.ts # 分销管理
|
||||
└── sync/route.ts # 实时同步
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 文档
|
||||
|
||||
@@ -179,7 +179,7 @@ app/api/
|
||||
|
||||
### 1. 后端部署
|
||||
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# 安装依赖
|
||||
pnpm install
|
||||
|
||||
@@ -189,7 +189,7 @@ pnpm dev
|
||||
# 或生产环境构建
|
||||
pnpm build
|
||||
pnpm start
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 2. 小程序部署
|
||||
|
||||
@@ -214,16 +214,16 @@ pnpm start
|
||||
|
||||
### 访问地址
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
https://your-domain.com/admin
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 默认账号
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
用户名: admin
|
||||
密码: admin123
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 三大管理模块
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
## 二、文档体系总览
|
||||
|
||||
### 完整的目录结构
|
||||
```
|
||||
\`\`\`
|
||||
开发文档/
|
||||
├── 核心功能总览.md (新增 ⭐)
|
||||
├── 功能迭代记录.md
|
||||
@@ -134,7 +134,7 @@
|
||||
├── 智能项目生成引擎v3.0.md
|
||||
├── 模板使用说明书.md
|
||||
└── 生成指南_HTML输出.md
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
4. **大白话**: 使用简单直白的语言
|
||||
|
||||
### 5.2 更新流程
|
||||
```
|
||||
\`\`\`
|
||||
代码变更
|
||||
↓
|
||||
更新对应文档
|
||||
@@ -295,10 +295,10 @@
|
||||
更新"功能迭代记录.md"
|
||||
↓
|
||||
提交git commit
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 5.3 文档命名规范
|
||||
```
|
||||
\`\`\`
|
||||
格式: 模块名称.md
|
||||
示例:
|
||||
✅ 原型设计规范.md
|
||||
@@ -307,7 +307,7 @@
|
||||
|
||||
❌ prototype_design.md (不用英文)
|
||||
❌ API文档-2025.md (不加日期)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
## 📋 核心提示词 v3.0 (Copy This)
|
||||
|
||||
```markdown
|
||||
\`\`\`markdown
|
||||
# Role: 卡若 (Karuo) - 私域实战操盘手 & 项目架构师
|
||||
|
||||
## 1. 角色设定
|
||||
@@ -208,9 +208,9 @@
|
||||
| | 客服售后 | 售后服务 | 满意度/复购率 | 底薪+复购奖金 |
|
||||
|
||||
**云阿米巴分润公式**:
|
||||
```
|
||||
\`\`\`
|
||||
个人分润 = (个人贡献GMV × 提成比例) + 团队超额奖金池 × 个人贡献占比
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
#### 4.2 每日数据报表
|
||||
| 维度 | 指标名称 | 今日 | 昨日 | 环比 | 目标完成率 |
|
||||
@@ -310,7 +310,7 @@
|
||||
4. 拥有的核心资源
|
||||
5. 启动资金预算
|
||||
6. 预期月营收目标"
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -378,4 +378,3 @@
|
||||
---
|
||||
|
||||
**Designed by Karuo Team | 2025 v3.2**
|
||||
|
||||
|
||||
176
开发文档/核心功能总览.md
176
开发文档/核心功能总览.md
@@ -9,13 +9,13 @@
|
||||
## 一、项目架构概览
|
||||
|
||||
### 1.1 双端架构
|
||||
```
|
||||
\`\`\`
|
||||
Web端 (Next.js) 小程序端 (WeChat Mini Program)
|
||||
↓ ↓
|
||||
共享后端API (Next.js API Routes)
|
||||
↓
|
||||
统一数据层 (localStorage + 未来MongoDB)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 1.2 核心业务模块
|
||||
- **内容模块**: Markdown文件系统 + 动态渲染
|
||||
@@ -37,7 +37,7 @@ Web端 (Next.js) 小程序端 (WeChat Mini Program)
|
||||
|
||||
#### 2.1.2 内容管理
|
||||
**文件系统架构**:
|
||||
```
|
||||
\`\`\`
|
||||
book/
|
||||
├── 序言|为什么我每天早上6点在Soul开播?.md
|
||||
├── _第一篇|真实的人/
|
||||
@@ -54,10 +54,10 @@ book/
|
||||
├── 第四篇|真实的赚钱/
|
||||
├── 第五篇|真实的社会/
|
||||
└── 尾声|这本书的真实目的.md
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**核心数据结构**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// 五级结构: Part -> Chapter -> Section
|
||||
interface Section {
|
||||
id: string // 章节ID (如: "1.1")
|
||||
@@ -68,7 +68,7 @@ interface Section {
|
||||
unlockAfterDays?: number // 定时解锁(天数)
|
||||
createdAt?: string // 创建时间
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**关键功能**:
|
||||
- ✅ Markdown自动解析和渲染
|
||||
@@ -88,7 +88,7 @@ interface Section {
|
||||
#### 2.2.1 多渠道支付架构
|
||||
|
||||
**支付适配器模式**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// 统一支付接口
|
||||
interface PaymentProvider {
|
||||
createOrder(params): PaymentData
|
||||
@@ -101,12 +101,12 @@ interface PaymentProvider {
|
||||
- WechatPayService (微信支付)
|
||||
- USDTPayService (USDT加密货币)
|
||||
- PayPalService (PayPal国际支付)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
#### 2.2.2 订单流程
|
||||
|
||||
**创建订单**:
|
||||
```
|
||||
\`\`\`
|
||||
POST /api/payment/create-order
|
||||
{
|
||||
userId: string,
|
||||
@@ -117,7 +117,7 @@ POST /api/payment/create-order
|
||||
paymentMethod: "wechat" | "alipay" | "usdt" | "paypal",
|
||||
referralCode?: string
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**支付回调**:
|
||||
- `POST /api/payment/wechat/notify` - 微信支付回调
|
||||
@@ -131,7 +131,7 @@ POST /api/payment/create-order
|
||||
#### 2.2.3 配置信息
|
||||
|
||||
**微信支付配置**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
wechat: {
|
||||
websiteAppId: "wx432c93e275548671", // 网站应用
|
||||
websiteAppSecret: "25b7e7fdb7998e5107e242ebb6ddabd0",
|
||||
@@ -141,17 +141,17 @@ wechat: {
|
||||
merchantId: "1318592501", // 商户号
|
||||
apiKey: "wx3e31b068be59ddc131b068be59ddc2"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**支付宝配置**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
alipay: {
|
||||
partnerId: "2088511801157159", // 合作者ID
|
||||
securityKey: "lz6ey1h3kl9zqkgtjz3avb5gk37wzbrp",
|
||||
mobilePayEnabled: true,
|
||||
paymentInterface: "official_instant" // 即时到账
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 2.3 分销裂变系统
|
||||
|
||||
@@ -163,21 +163,21 @@ alipay: {
|
||||
3. **用流量绑定合作方**: 通过高佣金激励分发
|
||||
|
||||
**分润配置**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
settings: {
|
||||
distributorShare: 90, // 推广者90%
|
||||
authorShare: 10 // 平台10%
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
#### 2.3.2 邀请码系统
|
||||
|
||||
**生成规则**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// 用户注册时自动生成
|
||||
referralCode: `REF${Date.now().toString(36).toUpperCase()}`
|
||||
// 示例: REFK2M8N9P4
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**绑定逻辑**:
|
||||
1. 新用户注册时填写邀请码
|
||||
@@ -186,7 +186,7 @@ referralCode: `REF${Date.now().toString(36).toUpperCase()}`
|
||||
4. 推荐人的 `earnings` 和 `pendingEarnings` 字段更新
|
||||
|
||||
**数据结构**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
interface User {
|
||||
referralCode: string // 自己的邀请码
|
||||
referredBy?: string // 被谁推荐
|
||||
@@ -195,24 +195,24 @@ interface User {
|
||||
withdrawnEarnings: number // 已提现
|
||||
referralCount: number // 推荐人数
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
#### 2.3.3 佣金计算
|
||||
|
||||
**购买章节**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// 章节价格: 1元
|
||||
const referrerEarnings = 1 * 0.9 = 0.9元
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**购买整书**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// 整书价格: 9.9元
|
||||
const referrerEarnings = 9.9 * 0.9 = 8.91元
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**代码实现** (`lib/store.ts`):
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
if (user.referredBy) {
|
||||
const referrer = users.find(u => u.referralCode === user.referredBy)
|
||||
if (referrer) {
|
||||
@@ -222,19 +222,19 @@ if (user.referredBy) {
|
||||
purchase.referrerEarnings = referrerEarnings
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
#### 2.3.4 提现功能
|
||||
|
||||
**提现接口**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
requestWithdrawal(
|
||||
amount: number,
|
||||
method: "wechat" | "alipay",
|
||||
account: string,
|
||||
name: string
|
||||
)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**提现状态**:
|
||||
- `pending`: 待审核
|
||||
@@ -246,7 +246,7 @@ requestWithdrawal(
|
||||
#### 2.4.1 匹配算法
|
||||
|
||||
**核心逻辑**:
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
// pages/match/match.js
|
||||
function calculateMatchScore(user1, user2) {
|
||||
// 基于兴趣标签计算匹配度
|
||||
@@ -258,7 +258,7 @@ function calculateMatchScore(user1, user2) {
|
||||
user2.interests.length
|
||||
)) * 100
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**匹配流程**:
|
||||
1. 点击"开始匹配"按钮
|
||||
@@ -279,32 +279,32 @@ function calculateMatchScore(user1, user2) {
|
||||
#### 2.5.1 管理员认证
|
||||
|
||||
**登录接口**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
POST /api/admin
|
||||
{
|
||||
username: "admin",
|
||||
password: "admin123"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**返回Token**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
{
|
||||
success: true,
|
||||
token: "admin-token-secret",
|
||||
user: { id: "admin", role: "admin", name: "卡若" }
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
#### 2.5.2 三大管理模块
|
||||
|
||||
**① 内容管理 (`/api/admin/content`)**
|
||||
```
|
||||
\`\`\`
|
||||
GET /api/admin/content # 章节列表
|
||||
POST /api/admin/content # 创建章节
|
||||
PUT /api/admin/content/:id # 编辑章节
|
||||
DELETE /api/admin/content/:id # 删除章节
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**功能**:
|
||||
- 章节CRUD操作
|
||||
@@ -313,14 +313,14 @@ DELETE /api/admin/content/:id # 删除章节
|
||||
- 章节排序调整
|
||||
|
||||
**② 付费管理 (`/api/admin/payment`)**
|
||||
```
|
||||
\`\`\`
|
||||
GET /api/admin/payment # 订单列表
|
||||
GET /api/admin/payment/stats # 收益统计
|
||||
POST /api/admin/payment/refund # 退款处理
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**数据统计**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
{
|
||||
totalRevenue: 12800.50, // 总收益
|
||||
todayRevenue: 560.00, // 今日收益
|
||||
@@ -328,17 +328,17 @@ POST /api/admin/payment/refund # 退款处理
|
||||
todayOrders: 12, // 今日订单
|
||||
averagePrice: 100.00 // 平均单价
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**③ 分销管理 (`/api/admin/referral`)**
|
||||
```
|
||||
\`\`\`
|
||||
GET /api/admin/referral # 推广者列表
|
||||
GET /api/admin/referral/stats # 推广统计
|
||||
POST /api/admin/referral/settle # 佣金结算
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**数据统计**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
{
|
||||
totalReferrers: 45, // 推广者总数
|
||||
activeReferrers: 28, // 活跃推广者
|
||||
@@ -346,12 +346,12 @@ POST /api/admin/referral/settle # 佣金结算
|
||||
paidCommission: 8500.00, // 已支付
|
||||
pendingCommission: 3020.45 // 待支付
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
#### 2.5.3 后台概览数据
|
||||
|
||||
**GET /api/admin**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
{
|
||||
content: {
|
||||
totalChapters: 65,
|
||||
@@ -378,19 +378,19 @@ POST /api/admin/referral/settle # 佣金结算
|
||||
todayNewUsers: 23
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 2.6 实时同步功能
|
||||
|
||||
#### 2.6.1 文件监听同步
|
||||
|
||||
**同步接口**:
|
||||
```
|
||||
\`\`\`
|
||||
POST /api/sync
|
||||
{
|
||||
force: boolean // 是否强制全量同步
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**同步逻辑**:
|
||||
1. 监听 `book/` 目录文件变化
|
||||
@@ -400,11 +400,11 @@ POST /api/sync
|
||||
5. 记录同步日志
|
||||
|
||||
**手动触发同步**:
|
||||
```bash
|
||||
\`\`\`bash
|
||||
curl -X POST https://kr-soul.lytiao.com/api/sync \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"force": true}'
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -412,7 +412,7 @@ curl -X POST https://kr-soul.lytiao.com/api/sync \
|
||||
|
||||
### 3.1 页面结构
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
miniprogram/
|
||||
├── pages/
|
||||
│ ├── index/ # 首页(书籍展示)
|
||||
@@ -425,30 +425,30 @@ miniprogram/
|
||||
├── app.js # 全局配置
|
||||
├── app.json # 页面路由配置
|
||||
└── project.config.json # 项目配置
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 3.2 小程序配置
|
||||
|
||||
**AppID配置** (`project.config.json`):
|
||||
```json
|
||||
\`\`\`json
|
||||
{
|
||||
"appid": "wx0976665c3a3d5a7c",
|
||||
"projectname": "soul-party-book"
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**API地址配置** (`app.js`):
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
globalData: {
|
||||
apiBase: 'http://localhost:3001/api', // 开发环境
|
||||
// apiBase: 'https://kr-soul.lytiao.com/api' // 生产环境
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 3.3 微信支付集成
|
||||
|
||||
**支付工具类** (`utils/payment.js`):
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
function wxPay(orderId, amount) {
|
||||
// 1. 调用后端创建订单
|
||||
const paymentData = await createOrder({
|
||||
@@ -470,22 +470,22 @@ function wxPay(orderId, amount) {
|
||||
}
|
||||
})
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 3.4 小程序特色功能
|
||||
|
||||
**毛玻璃效果**:
|
||||
```css
|
||||
\`\`\`css
|
||||
.glass-effect {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
border-radius: 20px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**骨架屏预加载**:
|
||||
```xml
|
||||
\`\`\`xml
|
||||
<view wx:if="{{loading}}" class="skeleton">
|
||||
<view class="skeleton-item"></view>
|
||||
<view class="skeleton-item"></view>
|
||||
@@ -493,7 +493,7 @@ function wxPay(orderId, amount) {
|
||||
<view wx:else>
|
||||
<!-- 实际内容 -->
|
||||
</view>
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -521,7 +521,7 @@ function wxPay(orderId, amount) {
|
||||
### 4.2 未来方案 (MongoDB)
|
||||
|
||||
**数据模型设计**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// users集合
|
||||
{
|
||||
_id: ObjectId,
|
||||
@@ -558,7 +558,7 @@ function wxPay(orderId, amount) {
|
||||
status: String,
|
||||
createdAt: Date
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**迁移计划**:
|
||||
1. 安装MongoDB驱动 (`npm install mongodb`)
|
||||
@@ -579,7 +579,7 @@ function wxPay(orderId, amount) {
|
||||
- ✅ Image组件自动优化图片
|
||||
|
||||
**Zustand状态管理**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// 简洁的状态管理,无需Redux复杂配置
|
||||
const useStore = create(persist((set, get) => ({
|
||||
user: null,
|
||||
@@ -587,7 +587,7 @@ const useStore = create(persist((set, get) => ({
|
||||
logout: () => { ... },
|
||||
purchaseSection: async (id) => { ... }
|
||||
})))
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**Tailwind CSS**:
|
||||
- ✅ 原子化CSS,开发效率高
|
||||
@@ -598,7 +598,7 @@ const useStore = create(persist((set, get) => ({
|
||||
### 5.2 支付架构
|
||||
|
||||
**适配器模式**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// 统一接口,支持多种支付方式
|
||||
class PaymentAdapter {
|
||||
private providers: Map<string, PaymentProvider> = new Map()
|
||||
@@ -612,12 +612,12 @@ class PaymentAdapter {
|
||||
return await provider.createOrder(params)
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 5.3 分销架构
|
||||
|
||||
**自动佣金计算**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// 购买时自动追溯推荐人并计算佣金
|
||||
function distributeCommission(order: Order) {
|
||||
if (order.referralCode) {
|
||||
@@ -627,31 +627,31 @@ function distributeCommission(order: Order) {
|
||||
referrer.pendingEarnings += commission
|
||||
}
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 5.4 性能优化
|
||||
|
||||
**懒加载**:
|
||||
```typescript
|
||||
\`\`\`typescript
|
||||
// 动态导入组件
|
||||
const PaymentModal = dynamic(() => import('@/components/payment-modal'), {
|
||||
loading: () => <Skeleton />,
|
||||
ssr: false
|
||||
})
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**骨架屏**:
|
||||
```tsx
|
||||
\`\`\`tsx
|
||||
// 加载状态使用骨架屏代替Loading文字
|
||||
{loading ? (
|
||||
<Skeleton className="h-[200px] w-full" />
|
||||
) : (
|
||||
<ContentComponent />
|
||||
)}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**图片优化**:
|
||||
```tsx
|
||||
\`\`\`tsx
|
||||
// Next.js Image组件自动优化
|
||||
<Image
|
||||
src="/cover.jpg"
|
||||
@@ -660,7 +660,7 @@ const PaymentModal = dynamic(() => import('@/components/payment-modal'), {
|
||||
height={600}
|
||||
priority // 优先加载
|
||||
/>
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -669,20 +669,20 @@ const PaymentModal = dynamic(() => import('@/components/payment-modal'), {
|
||||
### 6.1 开发环境
|
||||
|
||||
**启动后端**:
|
||||
```bash
|
||||
\`\`\`bash
|
||||
cd /Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验
|
||||
pnpm install
|
||||
pnpm dev
|
||||
# 访问: http://localhost:3000
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
**启动小程序**:
|
||||
```bash
|
||||
\`\`\`bash
|
||||
# 打开微信开发者工具
|
||||
# 导入目录: miniprogram/
|
||||
# 配置AppID: wx0976665c3a3d5a7c
|
||||
# 编译运行
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 6.2 生产环境
|
||||
|
||||
@@ -692,13 +692,13 @@ pnpm dev
|
||||
- **PM2进程管理**: `pm2 start ecosystem.config.js`
|
||||
|
||||
**环境变量** (`.env.production`):
|
||||
```bash
|
||||
\`\`\`bash
|
||||
NEXT_PUBLIC_BASE_URL=http://kr-soul.lytiao.com
|
||||
WECHAT_APP_ID=wx0976665c3a3d5a7c
|
||||
WECHAT_APP_SECRET=a262f1be43422f03734f205d0bca1882
|
||||
ALIPAY_APP_ID=wx432c93e275548671
|
||||
ALIPAY_PARTNER_ID=2088511801157159
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 6.3 小程序发布
|
||||
|
||||
@@ -709,12 +709,12 @@ ALIPAY_PARTNER_ID=2088511801157159
|
||||
4. 审核通过后点击"发布"
|
||||
|
||||
**服务器域名配置**:
|
||||
```
|
||||
\`\`\`
|
||||
小程序后台 → 开发管理 → 开发设置 → 服务器域名:
|
||||
- request合法域名: http://kr-soul.lytiao.com
|
||||
- uploadFile合法域名: http://kr-soul.lytiao.com
|
||||
- downloadFile合法域名: http://kr-soul.lytiao.com
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -722,7 +722,7 @@ ALIPAY_PARTNER_ID=2088511801157159
|
||||
|
||||
### 7.1 用户购买流程
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
用户点击购买
|
||||
↓
|
||||
选择支付方式
|
||||
@@ -746,11 +746,11 @@ POST /api/payment/create-order (创建订单)
|
||||
更新推荐人收益
|
||||
↓
|
||||
发送购买成功通知
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 7.2 分销推广流程
|
||||
|
||||
```
|
||||
\`\`\`
|
||||
推广者生成邀请码 (自动生成: REFXXXX)
|
||||
↓
|
||||
分享链接给好友 (?ref=REFXXXX)
|
||||
@@ -770,7 +770,7 @@ POST /api/payment/create-order (创建订单)
|
||||
管理员审核提现
|
||||
↓
|
||||
完成打款
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
### 通用HTML生成提示词
|
||||
|
||||
```markdown
|
||||
\`\`\`markdown
|
||||
# Role: 卡若 - HTML文档生成专家
|
||||
|
||||
# Task: 将模板内容输出为【苹果毛玻璃风格HTML文件】
|
||||
@@ -48,7 +48,7 @@
|
||||
- **打印友好**:添加打印样式
|
||||
|
||||
## 3. HTML结构
|
||||
```html
|
||||
\`\`\`html
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
@@ -74,10 +74,10 @@
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
## 4. 必须包含的CSS样式
|
||||
```css
|
||||
\`\`\`css
|
||||
:root {
|
||||
--glass-bg: rgba(255, 255, 255, 0.1);
|
||||
--glass-border: rgba(255, 255, 255, 0.2);
|
||||
@@ -142,10 +142,10 @@ th {
|
||||
cursor: pointer;
|
||||
font-weight: 500;
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
## 5. 必须包含的JavaScript
|
||||
```javascript
|
||||
\`\`\`javascript
|
||||
function exportImage() {
|
||||
html2canvas(document.getElementById('content'), {
|
||||
backgroundColor: null,
|
||||
@@ -161,14 +161,14 @@ function exportImage() {
|
||||
function toggleTheme() {
|
||||
document.body.classList.toggle('light-theme');
|
||||
}
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
# Output:
|
||||
- 输出完整的HTML代码
|
||||
- 可直接保存为.html文件并在浏览器打开
|
||||
- 所有内容可编辑
|
||||
- 支持导出图片
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -176,7 +176,7 @@ function toggleTheme() {
|
||||
|
||||
### 1. 人物画像分析表 HTML
|
||||
|
||||
```markdown
|
||||
\`\`\`markdown
|
||||
# Task: 生成【人物画像分析表】HTML文件
|
||||
|
||||
# Input:
|
||||
@@ -193,11 +193,11 @@ function toggleTheme() {
|
||||
- A/B/C用户画像表格
|
||||
- 痛点层级分析表格
|
||||
- 导出图片功能
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 2. 朋友圈投放表 HTML
|
||||
|
||||
```markdown
|
||||
\`\`\`markdown
|
||||
# Task: 生成【朋友圈投放表】HTML文件
|
||||
|
||||
# Input:
|
||||
@@ -212,11 +212,11 @@ function toggleTheme() {
|
||||
- 五行属性颜色标注
|
||||
- 配图预览区域
|
||||
- 导出图片功能
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
### 3. 复盘报告 HTML
|
||||
|
||||
```markdown
|
||||
\`\`\`markdown
|
||||
# Task: 生成【复盘报告】HTML文件
|
||||
|
||||
# Input:
|
||||
@@ -233,7 +233,7 @@ function toggleTheme() {
|
||||
- 深层归因
|
||||
- 行动计划表格
|
||||
- 导出图片功能
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
---
|
||||
|
||||
@@ -287,4 +287,3 @@ function toggleTheme() {
|
||||
|
||||
**模板版本**:v1.0
|
||||
**设计者**:Karuo Team | 2025
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
请确保生成的文档严格遵循以下目录树:
|
||||
|
||||
```text
|
||||
\`\`\`text
|
||||
开发文档/
|
||||
├── 1、需求/
|
||||
│ ├── 业务需求.md (基于代码反推的核心业务逻辑)
|
||||
@@ -92,7 +92,7 @@
|
||||
│ └── 使用手册.md (用户操作指南)
|
||||
└── 10、项目管理/
|
||||
└── 开发进度.md (基于目前完成度的预估)
|
||||
```
|
||||
\`\`\`
|
||||
|
||||
## 核心原则 (卡若风格)
|
||||
1. **不要废话**:直接给代码、给结构、给方案。
|
||||
|
||||
Reference in New Issue
Block a user