Files
soul-yongping/开发文档/8、部署/小程序调整说明.md

232 lines
5.5 KiB
Markdown
Raw Normal View History

# 小程序调整说明 - 新分销逻辑
## ✅ 已完成的调整
### 1. UI修改
**文件**: `miniprogram/pages/referral/referral.wxml`
**修改**: 删除"我的邀请码"卡片
```xml
<!-- ✅ 已删除 -->
<!-- <view class="invite-card">
<text class="invite-title">我的邀请码</text>
<text class="invite-code">{{referralCode}}</text>
</view> -->
```
---
## ✅ 无需调整的部分
### 1. 绑定逻辑app.js
**文件**: `miniprogram/app.js`
**当前逻辑**: ✅ 完全兼容新逻辑
```javascript
// 点击推荐链接时
handleReferralCode(options) {
// 1. 记录访问
this.recordReferralVisit(refCode)
// 2. 保存推荐码
wx.setStorageSync('referral_code', refCode)
// 3. 如果已登录,立即绑定
if (this.globalData.isLoggedIn) {
this.bindReferralCode(refCode) // 调用 /api/referral/bind
}
}
```
**为什么无需调整**
- 小程序只负责调用 `/api/referral/bind`
- 后端API已实现"立即切换"逻辑
- 无论是新绑定、续期还是切换,小程序无需感知
---
### 2. 支付逻辑pages/read/read.js
**文件**: `miniprogram/pages/read/read.js`
**当前逻辑**: ✅ 完全兼容新逻辑
```javascript
// 支付时
const referralCode = wx.getStorageSync('referral_code') || ''
await app.request('/api/miniprogram/pay', {
data: {
amount, // 原价(如 1.00
referralCode: referralCode || undefined
}
})
```
**为什么无需调整**
- 小程序传递原价和推荐码
- 后端自动计算折扣(如 5% off
- 微信支付弹窗会显示折后价(无需小程序干预)
---
### 3. 分销中心数据展示pages/referral/referral.js
**文件**: `miniprogram/pages/referral/referral.js`
**当前逻辑**: ✅ 完全兼容新逻辑
```javascript
// 数据来源
const res = await app.request('/api/referral/data?userId=' + userInfo.id)
// 展示数据
setData({
bindingCount, // 绑定中的人数
paidCount, // 已付款的人数
activeBindings, // 绑定中的用户列表
convertedBindings, // 已付款的用户列表
expiredBindings // 已过期的用户列表
})
```
**为什么无需调整**
- 后端API `/api/referral/data` 已适配新逻辑
- `convertedBindings` 现在返回 `status = 'active' AND purchase_count > 0`
- 小程序只是展示后端数据,无需改代码
---
## 🆕 可选增强功能
### 建议1: 显示购买次数
**当前显示**
```
用户A +¥0.90
已付款
```
**增强后显示**
```
用户A +¥1.80
已购2次
```
**实现方式**(可选):
#### 修改 WXML
```xml
<!-- 在 pages/referral/referral.wxml 的用户状态区域 -->
<view class="user-status">
<block wx:if="{{item.status === 'converted'}}">
<text class="status-amount">+¥{{item.commission}}</text>
<!-- 新增:显示购买次数 -->
<text class="status-order">已购{{item.purchaseCount || 1}}次</text>
</block>
</view>
```
#### 修改 JS
```javascript
// 在 pages/referral/referral.js 的 formatUser 函数中
const formatUser = (user, type) => {
return {
id: user.id,
nickname: user.nickname,
commission: (user.commission || 0).toFixed(2),
purchaseCount: user.purchaseCount || 0, // 新增
// ...
}
}
```
**是否需要**:根据产品需求决定
---
### 建议2: 显示"切换提示"
当用户点击新的推荐链接时,弹窗提示:
```javascript
// 在 app.js 的 bindReferralCode 函数中
async bindReferralCode(refCode) {
const res = await this.request('/api/referral/bind', {
method: 'POST',
data: { userId, referralCode: refCode }
})
// 新增:切换提示
if (res.success && res.action === 'switch') {
wx.showToast({
title: '已切换推荐人',
icon: 'success'
})
}
}
```
**是否需要**:可以让用户明确知道绑定关系已切换
---
### 建议3: 价格显示优化
**当前**:章节价格固定显示 1.00 元
**优化**:根据是否有推荐码,显示折后价
```javascript
// 在 pages/read/read.js 的 onLoad 或 onShow 中
async loadPriceWithDiscount() {
const referralCode = wx.getStorageSync('referral_code')
let displayPrice = this.data.section.price // 原价 1.00
if (referralCode) {
// 从配置获取折扣
const res = await app.request('/api/db/config?key=referral_config')
if (res.success && res.config?.userDiscount) {
const discount = res.config.userDiscount / 100
displayPrice = this.data.section.price * (1 - discount)
}
}
this.setData({
displayPrice: displayPrice.toFixed(2),
hasDiscount: referralCode ? true : false
})
}
```
**WXML显示**
```xml
<view class="price">
<text wx:if="{{hasDiscount}}" class="original-price">¥1.00</text>
<text class="current-price">¥{{displayPrice}}</text>
<text wx:if="{{hasDiscount}}" class="discount-tag">推荐优惠</text>
</view>
```
**是否需要**:可以让用户看到优惠,提升转化率
---
## 📋 小程序调整总结
### 必须调整(已完成)
- ✅ 删除"我的邀请码"卡片
### 无需调整(后端已兼容)
- ✅ 绑定逻辑app.js
- ✅ 支付逻辑pages/read/read.js
- ✅ 分销中心展示pages/referral/referral.js
### 可选增强(看产品需求)
- ⏸️ 显示购买次数
- ⏸️ 显示切换提示
- ⏸️ 显示折后价格
---
## ✅ 结论
**小程序端只需要已完成的1处修改删除邀请码卡片其他功能都通过后端API自动适配新逻辑无需额外调整**
如果你想要可选增强功能,告诉我具体要加哪个,我来帮你实现。