Files
soul-yongping/.cursor/meeting/2026-03-05_超级个体解锁眼睛需求分析.md

79 lines
2.7 KiB
Markdown
Raw Normal View History

# 需求分析 - 超级个体解锁眼睛交互改造
## 基本信息
- **时间**2026-03-05
- **需求来源**:用户反馈
- **涉及页面**`miniprogram/pages/member-detail/member-detail`
---
## 一、需求描述
超级个体详情页点击「解锁眼睛」图标时,需调整交互逻辑:
| 原逻辑 | 新逻辑 |
|--------|--------|
| 弹窗「成为VIP会员并完成匹配后即可查看完整联系方式」→ 确认跳转**找伙伴/匹配页** | **不跳转匹配页**;未登录先登录;已登录按权益处理 |
### 新逻辑细则
1. **未登录**:弹窗「请先登录」→ 确认跳转「我的」页,用户登录后再返回操作
2. **已登录**
- **VIP 会员**`hasFullBook`):直接解锁,可无限次解锁任意超级个体
- **非 VIP**:每人 **1 次免费解锁**,第 2 次起弹窗「免费次数已用完,开通 VIP¥1980/年)可无限解锁」→ 确认跳转 **VIP 会员页**1980 付款页)
---
## 二、已实现修改(小程序端)
### 修改文件
- `miniprogram/pages/member-detail/member-detail.js`
### 实现要点
1. **解锁状态存储**(本地 `wx.setStorageSync`
- Key`member_unlocks_{userId}`
- 值:已解锁的 `memberId` 数组
- 用于判断是否已解锁、是否已用掉免费次数
2. **`unlockContact()` 流程**
```
点击眼睛
→ 未登录Modal「需要登录」→ 去登录 → switchTab 我的
→ 已登录 + VIP直接解锁并写入存储
→ 已登录 + 非VIP + 首次:免费解锁并写入存储
→ 已登录 + 非VIP + 非首次Modal「去开通」→ navigateTo VIP 页
```
3. **`enrichAndFormat``contactUnlocked` / `wechatUnlocked`**
- 原:仅 `isMatched`(匹配过的人)
- 现:`isMatched || localUnlocked`(本地解锁列表也视为已解锁)
---
## 三、后续可选优化(后端/管理端)
### 1. 后端持久化(可选)
当前免费次数与解锁记录存于**本地**,换设备或清缓存会丢失。若需跨设备、防作弊,可:
- 新增接口:`POST /api/miniprogram/member/unlock`
- 入参:`memberId``userId`
- 逻辑:校验免费次数 / VIP 权益,记录解锁关系
- 小程序改为调用该接口,成功后更新本地展示
### 2. 管理端统计(可选)
- 统计「超级个体联系方式解锁」次数
- 按用户、按超级个体维度统计
---
## 四、验收要点
- [ ] 未登录点击眼睛 → 弹窗「需要登录」→ 确认跳转「我的」
- [ ] 已登录 + 非 VIP + 首次 → 免费解锁,展示完整联系方式
- [ ] 已登录 + 非 VIP + 第 2 次起 → 弹窗「去开通」→ 确认跳转 VIP 页¥1980
- [ ] 已登录 + VIP → 直接解锁,不限次数
- [ ] 不跳转匹配页