const cloud = require('wx-server-sdk'); cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); const db = cloud.database(); exports.main = async (event) => { const { OPENID } = cloud.getWXContext(); try { const userRes = await db.collection('users').where({ _openid: OPENID, }).get(); if (userRes.data.length === 0) { return { isValid: false }; } const user = userRes.data[0]; const now = Date.now(); const isPractitioner = user.practitionerExpireAt && new Date(user.practitionerExpireAt).getTime() > now; return { isValid: true, role: isPractitioner ? 'practitioner' : 'regular', expireAt: user.practitionerExpireAt || null, referralCode: user.referralCode || null, referralStats: user.referralStats || { directCount: 0, indirectCount: 0, convertedCount: 0, }, userInfo: { name: user.nickName || '', createdAt: user.createdAt, }, }; } catch (err) { return { isValid: false, error: err.message }; } };