index.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const cloud = require('wx-server-sdk');
  2. cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
  3. const db = cloud.database();
  4. exports.main = async (event) => {
  5. const { OPENID } = cloud.getWXContext();
  6. try {
  7. const userRes = await db.collection('users').where({
  8. _openid: OPENID,
  9. }).get();
  10. if (userRes.data.length === 0) {
  11. return { isValid: false };
  12. }
  13. const user = userRes.data[0];
  14. const now = Date.now();
  15. const isPractitioner = user.practitionerExpireAt
  16. && new Date(user.practitionerExpireAt).getTime() > now;
  17. return {
  18. isValid: true,
  19. role: isPractitioner ? 'practitioner' : 'regular',
  20. expireAt: user.practitionerExpireAt || null,
  21. referralCode: user.referralCode || null,
  22. referralStats: user.referralStats || {
  23. directCount: 0,
  24. indirectCount: 0,
  25. convertedCount: 0,
  26. },
  27. userInfo: {
  28. name: user.nickName || '',
  29. createdAt: user.createdAt,
  30. },
  31. };
  32. } catch (err) {
  33. return { isValid: false, error: err.message };
  34. }
  35. };