index.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // 云函数入口文件
  2. const cloud = require('wx-server-sdk')
  3. cloud.init()
  4. const db = cloud.database()
  5. // 云函数入口函数
  6. exports.main = async (event, context) => {
  7. const {
  8. OPENID
  9. } = cloud.getWXContext()
  10. if (event.pub_id) {
  11. const messages = await db.collection('message')
  12. .aggregate()
  13. .match({
  14. pub_id: event.pub_id
  15. })
  16. .sort({
  17. publish_time: -1
  18. })
  19. .skip(event.page_token)
  20. .limit(event.page_size)
  21. .end()
  22. return {
  23. list: messages.list,
  24. next_page_token: event.page_token + messages.list.length,
  25. status: 'OK'
  26. }
  27. } else {
  28. const messages = await db.collection('message')
  29. .aggregate()
  30. .sort({
  31. publish_time: -1
  32. })
  33. .skip(event.page_token)
  34. .limit(event.page_size)
  35. .lookup({
  36. from: 'publisher',
  37. localField: 'pub_id',
  38. foreignField: '_id',
  39. as: 'publisher'
  40. })
  41. .end()
  42. for (let i = 0; i < messages.list.length; i++) {
  43. messages.list[i].publisher = messages.list[i].publisher[0]
  44. }
  45. return {
  46. list: messages.list,
  47. next_page_token: event.page_token + messages.list.length,
  48. status: 'OK'
  49. }
  50. }
  51. }