index.js 833 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // 云函数入口文件
  2. const cloud = require('wx-server-sdk')
  3. cloud.init()
  4. const db = cloud.database()
  5. // 云函数入口函数
  6. exports.main = async (event, context) => {
  7. let {
  8. OPENID
  9. } = cloud.getWXContext()
  10. try {
  11. const message = await db.collection('message')
  12. .aggregate()
  13. .match({
  14. _id: event.msg_id
  15. })
  16. .lookup({
  17. from: 'publisher',
  18. localField: 'pub_id',
  19. foreignField: '_id',
  20. as: 'publisher'
  21. })
  22. .end()
  23. if (message.list.length !== 1) {
  24. throw 'error'
  25. }
  26. await db.collection('read')
  27. .add({
  28. data: {
  29. user_id: OPENID,
  30. msg_id: event.msg_id || '',
  31. read_time: new Date()
  32. }
  33. })
  34. return message
  35. } catch (err) {
  36. return {
  37. errMsg: 'no such message'
  38. }
  39. }
  40. }