const cloud = require('wx-server-sdk'); cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); const db = cloud.database(); // 用户注册(首次微信登录时调用) // 处理:创建用户记录 + 上下级关系绑定 exports.main = async (event) => { const { referrerCode } = event; const { OPENID } = cloud.getWXContext(); try { // 检查用户是否已存在 const userRes = await db.collection('users').where({ _openid: OPENID, }).get(); if (userRes.data.length > 0) { return { code: 0, isNew: false, role: userRes.data[0].role || 'regular', message: '用户已存在', }; } // 解析上级 let invitedBy = null; if (referrerCode) { const refRes = await db.collection('users').where({ referralCode, }).get(); if (refRes.data.length > 0) { const refUser = refRes.data[0]; // 不能自己邀请自己 if (refUser._openid !== OPENID) { invitedBy = refUser._openid; // 更新上级的推广统计 const stats = refUser.referralStats || {}; await db.collection('users').doc(refUser._id).update({ data: { 'referralStats.directCount': (stats.directCount || 0) + 1, }, }); } } } // 创建新用户 const userData = { _openid: OPENID, role: 'regular', practitionerExpireAt: null, invitedBy, referralStats: { directCount: 0, indirectCount: 0, convertedCount: 0, }, createdAt: db.serverDate(), updatedAt: db.serverDate(), }; await db.collection('users').add({ data: userData }); return { code: 0, isNew: true, role: 'regular', hasReferrer: !!invitedBy, }; } catch (err) { return { code: 500, error: err.message }; } };