|
|
@@ -407,18 +407,15 @@
|
|
|
|
|
|
**种子会员定义:**
|
|
|
|
|
|
-种子会员 = 通过扫描**创始人码**注册并付费成为能量师的用户。创始人码 = **没有推荐人的能量师**(`invitedBy IS NULL` 且 `vipType='practitioner'`)的推广码。
|
|
|
-
|
|
|
-> 即:用户 U 的直接推荐人 A 满足 `A.invitedBy IS NULL AND A.vipType='practitioner'` 时,U 扫的是创始人码。
|
|
|
+种子会员 = 在种子价**有效期内**且**名额未满**时,以种子价(¥1,314)付费成为能量师的用户。
|
|
|
|
|
|
**验收标准:**
|
|
|
|
|
|
1. 用户在支付页看到的价格由后端接口 `POST /api/pricing/current` 返回,前端不做判断
|
|
|
-2. `isSeedPrice = true` 需**同时满足三重条件**:
|
|
|
- - **条件① 注册渠道**:用户的直接推荐人(`invitedBy`)是创始人(`invitedBy IS NULL AND vipType='practitioner'`)的自然注册用户(无推荐人,`invitedBy IS NULL`)**不享受种子价**
|
|
|
- - **条件② 有效期**:当前时间 ≤ `sys_config.pricing.practitioner.seed_period_end`(种子价有效期截止时间)
|
|
|
- - **条件③ 名额**:已通过创始人码付费的能量师记录数 < `sys_config.pricing.practitioner.seed_limit`(默认 300)
|
|
|
-3. 三个条件任一不满足 → `isSeedPrice = false`,返回标准价
|
|
|
+2. `isSeedPrice = true` 需**同时满足两个条件**:
|
|
|
+ - **条件① 有效期**:当前时间 ≤ `sys_config.pricing.practitioner.seed_period_end`(种子价有效期截止时间)
|
|
|
+ - **条件② 名额**:已以种子价付费的能量师记录数 < `sys_config.pricing.practitioner.seed_limit`(默认 300)
|
|
|
+3. 两个条件任一不满足 → `isSeedPrice = false`,返回标准价
|
|
|
4. 种子价名额计数方式:统计 `orders` 表中 `product_type='practitioner'` AND `status='paid'` AND `is_seed_price=true` 的记录数
|
|
|
5. 订单创建时将种子价状态锁定(`is_seed_price` 写入订单,不因后续条件变化而改变)
|
|
|
6. 有效期过期后,即使名额未满,所有新用户看到标准价
|
|
|
@@ -475,7 +472,7 @@
|
|
|
4. 升级价格 < 0(理论极限)→ 按 ¥0.01 收取
|
|
|
5. 升级后 `vipType` 从 `'annual'` 变更为 `'practitioner'`
|
|
|
6. 升级后 `vipEndTime` 按能量师续费规则处理(在原能量师到期日 +365天,不叠加年费剩余天数)
|
|
|
-7. 升级不享受种子价(种子价仅限通过创始人码首次购买 practitioner,见 US-4.2)
|
|
|
+7. 升级不享受种子价(种子价仅限首次购买 practitioner,见 US-4.2)
|
|
|
8. 升级后推广码不变(如之前已有推广码)
|
|
|
|
|
|
**验收标准(前端流程):**
|
|
|
@@ -1398,8 +1395,8 @@ CREATE TABLE `sys_config` (
|
|
|
"seedPrice": 131400, // pricing.practitioner.seed(分)
|
|
|
"standardPrice": 198600, // pricing.practitioner.standard(分)
|
|
|
"annualFee": 13100, // pricing.annual(分)
|
|
|
- "isSeedPrice": true, // 当前用户是否能享受种子价(三重条件判断)
|
|
|
- "seedReason": "eligible", // "eligible"=三条件均满足 | "not_founder_code"=非创始人码 | "expired"=有效期已过 | "quota_full"=名额已满 | "no_referrer"=无推荐人(自然注册)
|
|
|
+ "isSeedPrice": true, // 当前用户是否能享受种子价(双条件判断)
|
|
|
+ "seedReason": "eligible", // "eligible"=双条件均满足 | "expired"=有效期已过 | "quota_full"=名额已满
|
|
|
"remainingSeats": 298, // 种子名额余量
|
|
|
"seedLimit": 300, // 名额上限
|
|
|
"seedPeriodEnd": "2027-05-31T23:59:59" // 种子价有效期截止时间
|
|
|
@@ -1407,12 +1404,10 @@ CREATE TABLE `sys_config` (
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-10. `isSeedPrice` 的计算逻辑(三重条件,全部满足才为 `true`):
|
|
|
- - 条件①:当前用户的直接推荐人(`invitedBy`)存在,且该推荐人 `invitedBy IS NULL AND vipType='practitioner'`(即推荐人是创始人)
|
|
|
- - 条件②:当前时间 ≤ `pricing.practitioner.seed_period_end`
|
|
|
- - 条件③:已通过创始人码付费的能量师数 < `seedLimit`(统计 `orders` 中 `product_type='practitioner'` AND `status='paid'` AND `is_seed_price=true` 的记录数)
|
|
|
- - 自然注册用户(`invitedBy IS NULL`)→ 条件①不满足 → `isSeedPrice=false`
|
|
|
- - `seedReason` 字段用于前端展示不同提示文案(如"种子价已过期"、"种子名额已满"、"需通过创始人邀请注册"等)
|
|
|
+10. `isSeedPrice` 的计算逻辑(双条件,全部满足才为 `true`):
|
|
|
+ - 条件①:当前时间 ≤ `pricing.practitioner.seed_period_end`
|
|
|
+ - 条件②:已以种子价付费的能量师数 < `seedLimit`(统计 `orders` 中 `product_type='practitioner'` AND `status='paid'` AND `is_seed_price=true` 的记录数)
|
|
|
+ - `seedReason` 字段用于前端展示不同提示文案(如"种子价已过期"、"种子名额已满"等)
|
|
|
|
|
|
**管理后台页面(`src/views/settings/index.vue`):**
|
|
|
11. 左侧菜单新增"系统配置"入口,路由 `/settings`,图标 ⚙️
|
|
|
@@ -1427,7 +1422,7 @@ CREATE TABLE `sys_config` (
|
|
|
16. 修改数量时,"已使用"比例随之动态变化
|
|
|
17. 种子价有效期使用 `el-date-picker`(datetime 类型),显示格式 `YYYY-MM-DD HH:mm:ss`,存储格式为 ISO 8601 字符串
|
|
|
18. 有效期下方显示当前状态:"🟢 有效期剩余 XX 天" 或 "🔴 已过期"(根据当前时间与 `seed_period_end` 比较)
|
|
|
-19. 定价卡片顶部注释:"种子价三重条件:①扫创始人码注册 ②在有效期内 ③名额未满,三者同时满足才生效"
|
|
|
+19. 定价卡片顶部注释:"种子价双条件:①在有效期内 ②名额未满,两者同时满足才生效"
|
|
|
|
|
|
**B端佣金配置卡片:**
|
|
|
17. **三个输入项**:
|
|
|
@@ -1586,7 +1581,7 @@ settings/index.vue
|
|
|
│ ├── el-form-item: 能量师标准价 → el-input-number(...)
|
|
|
│ ├── el-form-item: 种子价名额上限 → el-input-number(min=1, max=99999, step=50)
|
|
|
│ ├── el-form-item: 种子价有效期 → el-date-picker(type="datetime", format="YYYY-MM-DD HH:mm:ss")
|
|
|
-│ ├── 注记:种子价三重条件(创始人码+有效期+名额)
|
|
|
+│ ├── 注记:种子价双条件(有效期+名额)
|
|
|
│ ├── el-form-item: C端年费 → el-input-number(...)
|
|
|
│ └── el-form-item: 超级会员年费 → el-input-number(min=0, max=999999, step=100)
|
|
|
├── el-card (B端佣金配置)
|
|
|
@@ -1732,7 +1727,7 @@ INSERT INTO `sys_config` (`config_key`, `config_value`, `description`, `value_ty
|
|
|
**前端页面:**
|
|
|
3. 表格列:ID、订单号、用户ID、产品类型("能量师" / "年费")、金额(¥格式)、种子价标记、状态(已支付/待支付)、支付时间
|
|
|
4. 产品类型使用 el-tag 展示:能量师→蓝色,年费→绿色
|
|
|
-5. 种子价订单显示 🌱 种子 el-tag(橙色),hover 提示"通过创始人码注册"
|
|
|
+5. 种子价订单显示 🌱 种子 el-tag(橙色),hover 提示"种子价购买"
|
|
|
6. 状态使用 el-tag:已支付→success,待支付→warning
|
|
|
7. 表格上方的工具栏包含两个筛选器:
|
|
|
- 产品类型:el-select(全部 / 能量师 / C端年费)
|
|
|
@@ -2074,7 +2069,7 @@ US-9.2 申请能量师出方案
|
|
|
|
|
|
6. 超级会员(`vipType='super_annual'`)看到"升级能量师"入口
|
|
|
7. 升级定价:
|
|
|
- - 种子价判断:若满足三重条件(创始人码+有效期+名额)→ 种子价 ¥1,314;否则标准价 ¥1,986
|
|
|
+ - 种子价判断:若满足双条件(有效期+名额)→ 种子价 ¥1,314;否则标准价 ¥1,986
|
|
|
- 年费剩余价值:(¥1,314 ÷ 365)× 剩余天数
|
|
|
- 应付 = 能量师价格 − 超级会员剩余价值
|
|
|
8. 升级订单标记 `isUpgrade=true`,`originalProductType='super_member'`
|
|
|
@@ -3053,7 +3048,7 @@ AI问答互动 3轮/天 不限 不限
|
|
|
```
|
|
|
用户点击"开通能量师"
|
|
|
│
|
|
|
-├─ 通过创始人码注册 + 有效期内 + 名额未满 → 种子价 ¥1,314
|
|
|
+├─ 有效期内 + 名额未满 → 种子价 ¥1,314
|
|
|
├─ 其他情况 → 标准价 ¥1,986
|
|
|
├─ 微信支付 → vipType → 'practitioner', vipEndTime → +365天
|
|
|
├─ 推广码自动生成(若首次付费)
|
|
|
@@ -3073,7 +3068,7 @@ AI问答互动 3轮/天 不限 不限
|
|
|
|------|---------|--------------|
|
|
|
| 分销产品 | 仅 C端年费 | C端年费 + 能量师年费 |
|
|
|
| 佣金模式 | 比例(40%+5%) | 比例 + 固定(¥500+¥100) |
|
|
|
-| 种子价资格 | ❌ | ✅(需扫创始人码+有效期内+名额未满) |
|
|
|
+| 种子价资格 | ❌ | ✅(有效期内+名额未满) |
|
|
|
| 客户管理 | ❌ 不需要 | ✅ 批注+标签 |
|
|
|
| 使用场景 | 自己看命理 | 为客户解读 |
|
|
|
|