# 小程序调整说明 - 新分销逻辑 ## ✅ 已完成的调整 ### 1. UI修改 **文件**: `miniprogram/pages/referral/referral.wxml` **修改**: 删除"我的邀请码"卡片 ```xml ``` --- ## ✅ 无需调整的部分 ### 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 +¥{{item.commission}} 已购{{item.purchaseCount || 1}}次 ``` #### 修改 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 ¥1.00 ¥{{displayPrice}} 推荐优惠 ``` **是否需要**:可以让用户看到优惠,提升转化率 --- ## 📋 小程序调整总结 ### 必须调整(已完成) - ✅ 删除"我的邀请码"卡片 ### 无需调整(后端已兼容) - ✅ 绑定逻辑(app.js) - ✅ 支付逻辑(pages/read/read.js) - ✅ 分销中心展示(pages/referral/referral.js) ### 可选增强(看产品需求) - ⏸️ 显示购买次数 - ⏸️ 显示切换提示 - ⏸️ 显示折后价格 --- ## ✅ 结论 **小程序端只需要已完成的1处修改(删除邀请码卡片),其他功能都通过后端API自动适配新逻辑,无需额外调整!** 如果你想要可选增强功能,告诉我具体要加哪个,我来帮你实现。