| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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 };
- }
- };
|