5.5 KiB
5.5 KiB
小程序调整说明 - 新分销逻辑
✅ 已完成的调整
1. UI修改
文件: miniprogram/pages/referral/referral.wxml
修改: 删除"我的邀请码"卡片
<!-- ✅ 已删除 -->
<!-- <view class="invite-card">
<text class="invite-title">我的邀请码</text>
<text class="invite-code">{{referralCode}}</text>
</view> -->
✅ 无需调整的部分
1. 绑定逻辑(app.js)
文件: miniprogram/app.js
当前逻辑: ✅ 完全兼容新逻辑
// 点击推荐链接时
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
当前逻辑: ✅ 完全兼容新逻辑
// 支付时
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
当前逻辑: ✅ 完全兼容新逻辑
// 数据来源
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
<!-- 在 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
// 在 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: 显示"切换提示"
当用户点击新的推荐链接时,弹窗提示:
// 在 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 元
优化:根据是否有推荐码,显示折后价
// 在 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显示:
<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自动适配新逻辑,无需额外调整!
如果你想要可选增强功能,告诉我具体要加哪个,我来帮你实现。