index.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const cloud = require('wx-server-sdk');
  2. cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
  3. const db = cloud.database();
  4. // 获取当前用户的佣金概览和明细
  5. exports.main = async (event) => {
  6. const { OPENID } = cloud.getWXContext();
  7. try {
  8. const commRes = await db.collection('commissions').where({
  9. toUser: OPENID,
  10. }).orderBy('createdAt', 'desc').get();
  11. const commissions = commRes.data || [];
  12. let totalAmount = 0;
  13. let availableAmount = 0;
  14. let pendingAmount = 0;
  15. commissions.forEach(c => {
  16. totalAmount += c.amount || 0;
  17. if (c.status === 'available') {
  18. availableAmount += c.amount;
  19. } else if (c.status === 'pending') {
  20. pendingAmount += c.amount;
  21. }
  22. });
  23. // 格式化输出
  24. const list = commissions.slice(0, 50).map(c => ({
  25. commissionId: c._id,
  26. level: c.level,
  27. amount: c.amount,
  28. status: c.status,
  29. sourceName: c.sourceName || '用户',
  30. createdAt: c.createdAt,
  31. }));
  32. return {
  33. totalAmount,
  34. availableAmount,
  35. pendingAmount,
  36. commissions: list,
  37. };
  38. } catch (err) {
  39. return { error: err.message, totalAmount: 0, availableAmount: 0, pendingAmount: 0, commissions: [] };
  40. }
  41. };