Files
soul-yongping/开发文档/8、部署/小程序调整说明.md
2026-02-09 15:09:29 +08:00

232 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 小程序调整说明 - 新分销逻辑
## ✅ 已完成的调整
### 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自动适配新逻辑无需额外调整**
如果你想要可选增强功能,告诉我具体要加哪个,我来帮你实现。