From fe69ac40525799239e4e1fc0a49451e86ed02d6b Mon Sep 17 00:00:00 2001 From: 18631081161 <2088094923@qq.com> Date: Sun, 25 Jan 2026 19:23:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/controllers/authController.js | 9 +++++++ backend/src/services/authService.js | 30 +++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/backend/src/controllers/authController.js b/backend/src/controllers/authController.js index 591ad41..2d9df9f 100644 --- a/backend/src/controllers/authController.js +++ b/backend/src/controllers/authController.js @@ -26,6 +26,11 @@ const wechatLogin = async (req, res) => { 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 const deviceInfo = { ipAddress: req.ip || req.connection.remoteAddress, @@ -41,6 +46,10 @@ const wechatLogin = async (req, res) => { deviceInfo ); + console.log('=== Login Result ==='); + console.log('User ID:', result.user.id); + console.log('User invitedBy:', result.user.invitedBy); + return sendSuccess(res, { user: { id: result.user.id, diff --git a/backend/src/services/authService.js b/backend/src/services/authService.js index b7b44af..70c274c 100644 --- a/backend/src/services/authService.js +++ b/backend/src/services/authService.js @@ -89,6 +89,10 @@ const wechatLogin = async (code, userInfo = {}, invitationCode = null, deviceInf 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 const userData = { wechatOpenId: openId, @@ -100,14 +104,18 @@ const wechatLogin = async (code, userInfo = {}, invitationCode = null, deviceInf // Handle invitation let inviterId = null; if (invitationCode) { + console.log('Looking for inviter with code:', invitationCode); const inviter = await User.findOne({ where: { invitationCode } }); + console.log('Inviter found:', inviter ? inviter.id : 'NOT FOUND'); if (inviter) { userData.invitedBy = inviter.id; inviterId = inviter.id; + console.log('Setting invitedBy to:', inviter.id); } } user = await User.create(userData); + console.log('New user created:', user.id, 'invitedBy:', user.invitedBy); // Record invitation relationship if (inviterId) { @@ -118,11 +126,33 @@ const wechatLogin = async (code, userInfo = {}, invitationCode = null, deviceInf registeredAt: new Date(), rewardStatus: 'pending', }); + console.log('Invitation record created'); } } else { // Update existing user info if provided if (userInfo.nickname) user.nickname = userInfo.nickname; 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(); }