This commit is contained in:
18631081161 2026-01-25 19:23:48 +08:00
parent 5981038a0f
commit fe69ac4052
2 changed files with 39 additions and 0 deletions

View File

@ -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,

View File

@ -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();
}