156 lines
3.8 KiB
Markdown
156 lines
3.8 KiB
Markdown
|
|
# 状态管理说明
|
|||
|
|
|
|||
|
|
## Zustand Store 结构
|
|||
|
|
|
|||
|
|
文件位置:`lib/store.ts`
|
|||
|
|
|
|||
|
|
## 核心数据类型
|
|||
|
|
|
|||
|
|
### User 用户
|
|||
|
|
```typescript
|
|||
|
|
interface User {
|
|||
|
|
id: string
|
|||
|
|
phone: string
|
|||
|
|
nickname: string
|
|||
|
|
isAdmin: boolean
|
|||
|
|
purchasedSections: string[] // 已购章节ID列表
|
|||
|
|
hasFullBook: boolean // 是否购买全书
|
|||
|
|
referralCode: string // 推荐码
|
|||
|
|
referredBy?: string // 被谁推荐
|
|||
|
|
earnings: number // 累计收益
|
|||
|
|
pendingEarnings: number // 待结算收益
|
|||
|
|
withdrawnEarnings: number // 已提现收益
|
|||
|
|
referralCount: number // 推荐人数
|
|||
|
|
createdAt: string
|
|||
|
|
wechat?: string // 绑定的微信号
|
|||
|
|
alipay?: string // 绑定的支付宝
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Purchase 购买记录
|
|||
|
|
```typescript
|
|||
|
|
interface Purchase {
|
|||
|
|
id: string
|
|||
|
|
userId: string
|
|||
|
|
type: "section" | "fullbook"
|
|||
|
|
sectionId?: string
|
|||
|
|
sectionTitle?: string
|
|||
|
|
amount: number
|
|||
|
|
status: "pending" | "completed" | "failed"
|
|||
|
|
paymentMethod?: string
|
|||
|
|
referrerEarnings?: number
|
|||
|
|
createdAt: string
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Withdrawal 提现记录
|
|||
|
|
```typescript
|
|||
|
|
interface Withdrawal {
|
|||
|
|
id: string
|
|||
|
|
userId: string
|
|||
|
|
amount: number
|
|||
|
|
method: "wechat" | "alipay"
|
|||
|
|
account: string
|
|||
|
|
name: string
|
|||
|
|
status: "pending" | "approved" | "rejected" | "completed"
|
|||
|
|
createdAt: string
|
|||
|
|
processedAt?: string
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Settings 系统设置
|
|||
|
|
```typescript
|
|||
|
|
interface Settings {
|
|||
|
|
distributorShare: number // 分销比例(90%)
|
|||
|
|
authorShare: number // 作者比例(10%)
|
|||
|
|
paymentMethods: PaymentAccountConfig
|
|||
|
|
sectionPrice: number // 单章价格
|
|||
|
|
baseBookPrice: number // 全书基础价格
|
|||
|
|
pricePerSection: number // 每章价格
|
|||
|
|
authorInfo: {
|
|||
|
|
name: string
|
|||
|
|
description: string
|
|||
|
|
liveTime: string
|
|||
|
|
platform: string
|
|||
|
|
}
|
|||
|
|
// ... 其他配置
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Store Actions
|
|||
|
|
|
|||
|
|
### 用户相关
|
|||
|
|
```typescript
|
|||
|
|
login(phone: string, code: string): Promise<boolean>
|
|||
|
|
logout(): void
|
|||
|
|
register(phone: string, nickname: string, referralCode?: string): Promise<boolean>
|
|||
|
|
updateUser(userId: string, updates: Partial<User>): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 购买相关
|
|||
|
|
```typescript
|
|||
|
|
purchaseSection(sectionId: string, sectionTitle?: string, paymentMethod?: string): Promise<boolean>
|
|||
|
|
purchaseFullBook(paymentMethod?: string): Promise<boolean>
|
|||
|
|
hasPurchased(sectionId: string): boolean
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 提现相关
|
|||
|
|
```typescript
|
|||
|
|
requestWithdrawal(amount: number, method: string, account: string, name: string): void
|
|||
|
|
processWithdrawal(withdrawalId: string, approved: boolean): void
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 数据查询
|
|||
|
|
```typescript
|
|||
|
|
getAllUsers(): User[]
|
|||
|
|
getAllPurchases(): Purchase[]
|
|||
|
|
getAllWithdrawals(): Withdrawal[]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 状态流转图
|
|||
|
|
|
|||
|
|
### 用户状态
|
|||
|
|
```
|
|||
|
|
未登录 ─────▶ 登录中 ─────▶ 已登录
|
|||
|
|
│ │
|
|||
|
|
│ ▼
|
|||
|
|
│ 使用功能
|
|||
|
|
│ │
|
|||
|
|
│ ▼
|
|||
|
|
└◀────────────────────── 退出登录
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 购买状态
|
|||
|
|
```
|
|||
|
|
浏览内容 ─────▶ 点击购买 ─────▶ 选择支付方式
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
完成购买 ◀───── 支付成功 ◀───── 扫码支付
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
解锁内容
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 分销绑定状态
|
|||
|
|
```
|
|||
|
|
访客访问 ─────▶ 绑定期30天 ─────▶ 访客付款
|
|||
|
|
(?ref=xxx) │ │
|
|||
|
|
│ ▼
|
|||
|
|
│ 推广者获得90%
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
30天未付款
|
|||
|
|
│
|
|||
|
|
▼
|
|||
|
|
自动解绑
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## localStorage 持久化
|
|||
|
|
|
|||
|
|
Store使用 `persist` 中间件持久化到 localStorage:
|
|||
|
|
- key: `soul-startup-experiment`
|
|||
|
|
- 包含:user, purchases, withdrawals, settings
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
*文档版本:v2.0 | 更新日期:2026-01-18*
|