邀请分享
This commit is contained in:
parent
fe69ac4052
commit
a19eeb2382
|
|
@ -26,11 +26,6 @@ const wechatLogin = async (req, res) => {
|
||||||
|
|
||||||
const { code, userInfo, invitationCode } = req.body;
|
const { code, userInfo, invitationCode } = req.body;
|
||||||
|
|
||||||
console.log('=== WeChat Login Request ===');
|
|
||||||
console.log('Code:', code);
|
|
||||||
console.log('InvitationCode:', invitationCode);
|
|
||||||
console.log('UserInfo:', userInfo);
|
|
||||||
|
|
||||||
// Extract device info from request
|
// Extract device info from request
|
||||||
const deviceInfo = {
|
const deviceInfo = {
|
||||||
ipAddress: req.ip || req.connection.remoteAddress,
|
ipAddress: req.ip || req.connection.remoteAddress,
|
||||||
|
|
@ -46,10 +41,6 @@ const wechatLogin = async (req, res) => {
|
||||||
deviceInfo
|
deviceInfo
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log('=== Login Result ===');
|
|
||||||
console.log('User ID:', result.user.id);
|
|
||||||
console.log('User invitedBy:', result.user.invitedBy);
|
|
||||||
|
|
||||||
return sendSuccess(res, {
|
return sendSuccess(res, {
|
||||||
user: {
|
user: {
|
||||||
id: result.user.id,
|
id: result.user.id,
|
||||||
|
|
|
||||||
|
|
@ -89,10 +89,6 @@ const wechatLogin = async (code, userInfo = {}, invitationCode = null, deviceInf
|
||||||
console.error('Failed to get default avatar config:', e);
|
console.error('Failed to get default avatar config:', e);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('=== Creating New User ===');
|
|
||||||
console.log('OpenId:', openId);
|
|
||||||
console.log('InvitationCode received:', invitationCode);
|
|
||||||
|
|
||||||
// Create new user
|
// Create new user
|
||||||
const userData = {
|
const userData = {
|
||||||
wechatOpenId: openId,
|
wechatOpenId: openId,
|
||||||
|
|
@ -104,18 +100,14 @@ const wechatLogin = async (code, userInfo = {}, invitationCode = null, deviceInf
|
||||||
// Handle invitation
|
// Handle invitation
|
||||||
let inviterId = null;
|
let inviterId = null;
|
||||||
if (invitationCode) {
|
if (invitationCode) {
|
||||||
console.log('Looking for inviter with code:', invitationCode);
|
|
||||||
const inviter = await User.findOne({ where: { invitationCode } });
|
const inviter = await User.findOne({ where: { invitationCode } });
|
||||||
console.log('Inviter found:', inviter ? inviter.id : 'NOT FOUND');
|
|
||||||
if (inviter) {
|
if (inviter) {
|
||||||
userData.invitedBy = inviter.id;
|
userData.invitedBy = inviter.id;
|
||||||
inviterId = inviter.id;
|
inviterId = inviter.id;
|
||||||
console.log('Setting invitedBy to:', inviter.id);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
user = await User.create(userData);
|
user = await User.create(userData);
|
||||||
console.log('New user created:', user.id, 'invitedBy:', user.invitedBy);
|
|
||||||
|
|
||||||
// Record invitation relationship
|
// Record invitation relationship
|
||||||
if (inviterId) {
|
if (inviterId) {
|
||||||
|
|
@ -126,33 +118,11 @@ const wechatLogin = async (code, userInfo = {}, invitationCode = null, deviceInf
|
||||||
registeredAt: new Date(),
|
registeredAt: new Date(),
|
||||||
rewardStatus: 'pending',
|
rewardStatus: 'pending',
|
||||||
});
|
});
|
||||||
console.log('Invitation record created');
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Update existing user info if provided
|
// Update existing user info if provided
|
||||||
if (userInfo.nickname) user.nickname = userInfo.nickname;
|
if (userInfo.nickname) user.nickname = userInfo.nickname;
|
||||||
if (userInfo.avatar) user.avatar = userInfo.avatar;
|
if (userInfo.avatar) user.avatar = userInfo.avatar;
|
||||||
|
|
||||||
// Handle invitation for existing user who hasn't been invited yet
|
|
||||||
if (invitationCode && !user.invitedBy) {
|
|
||||||
const inviter = await User.findOne({ where: { invitationCode } });
|
|
||||||
if (inviter && inviter.id !== user.id) {
|
|
||||||
// Bind invitation relationship
|
|
||||||
user.invitedBy = inviter.id;
|
|
||||||
|
|
||||||
// Record invitation relationship
|
|
||||||
await Invitation.create({
|
|
||||||
inviterId: inviter.id,
|
|
||||||
inviteeId: user.id,
|
|
||||||
invitationCode,
|
|
||||||
registeredAt: new Date(),
|
|
||||||
rewardStatus: 'pending',
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(`User ${user.id} bound to inviter ${inviter.id} via code ${invitationCode}`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
await user.save();
|
await user.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,6 @@
|
||||||
// 小程序码的 scene 格式为 "inviteCode=XXXXXX"
|
// 小程序码的 scene 格式为 "inviteCode=XXXXXX"
|
||||||
if (options && options.scene) {
|
if (options && options.scene) {
|
||||||
const scene = decodeURIComponent(options.scene)
|
const scene = decodeURIComponent(options.scene)
|
||||||
console.log('小程序码 scene:', scene)
|
|
||||||
// 解析 scene 参数
|
// 解析 scene 参数
|
||||||
const params = {}
|
const params = {}
|
||||||
scene.split('&').forEach(item => {
|
scene.split('&').forEach(item => {
|
||||||
|
|
@ -99,7 +98,6 @@
|
||||||
|
|
||||||
// 保存邀请码
|
// 保存邀请码
|
||||||
if (inviteCode) {
|
if (inviteCode) {
|
||||||
console.log('收到邀请码:', inviteCode)
|
|
||||||
// 保存邀请码到全局数据,登录时使用
|
// 保存邀请码到全局数据,登录时使用
|
||||||
const app = getApp()
|
const app = getApp()
|
||||||
if (app && app.globalData) {
|
if (app && app.globalData) {
|
||||||
|
|
|
||||||
|
|
@ -107,16 +107,13 @@
|
||||||
// 获取邀请码(从全局数据或本地存储)
|
// 获取邀请码(从全局数据或本地存储)
|
||||||
let invitationCode = ''
|
let invitationCode = ''
|
||||||
const app = getApp()
|
const app = getApp()
|
||||||
|
|
||||||
if (app && app.globalData && app.globalData.inviteCode) {
|
if (app && app.globalData && app.globalData.inviteCode) {
|
||||||
invitationCode = app.globalData.inviteCode
|
invitationCode = app.globalData.inviteCode
|
||||||
} else {
|
} else {
|
||||||
invitationCode = uni.getStorageSync('inviteCode') || ''
|
invitationCode = uni.getStorageSync('inviteCode') || ''
|
||||||
}
|
}
|
||||||
|
|
||||||
if (invitationCode) {
|
|
||||||
console.log('使用邀请码登录:', invitationCode)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 调用后端登录接口(带邀请码)
|
// 调用后端登录接口(带邀请码)
|
||||||
const appserver = new AppServer();
|
const appserver = new AppServer();
|
||||||
const data = await appserver.WechatLogin(loginRes.code, invitationCode);
|
const data = await appserver.WechatLogin(loginRes.code, invitationCode);
|
||||||
|
|
|
||||||
|
|
@ -376,14 +376,10 @@
|
||||||
// 微信小程序分享配置
|
// 微信小程序分享配置
|
||||||
onShareAppMessage() {
|
onShareAppMessage() {
|
||||||
const inviteCode = this.commissionStats.invitationCode || ''
|
const inviteCode = this.commissionStats.invitationCode || ''
|
||||||
// 使用应用logo作为分享图片
|
|
||||||
// 注意:微信小程序分享图片支持本地路径和网络路径(https)
|
|
||||||
// 开发环境下http图片可能无法显示,使用本地图片作为备选
|
|
||||||
let shareImage = '/static/new_bg1.png'
|
let shareImage = '/static/new_bg1.png'
|
||||||
if (this.appLogo && this.appLogo.startsWith('http')) {
|
if (this.appLogo && this.appLogo.startsWith('http')) {
|
||||||
shareImage = this.appLogo
|
shareImage = this.appLogo
|
||||||
}
|
}
|
||||||
console.log('分享图片路径:', shareImage, 'appLogo:', this.appLogo)
|
|
||||||
return {
|
return {
|
||||||
title: '邀请你加入,一起赚佣金!',
|
title: '邀请你加入,一起赚佣金!',
|
||||||
path: `/pages/index/index?inviteCode=${inviteCode}`,
|
path: `/pages/index/index?inviteCode=${inviteCode}`,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user