index.js 1020 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. const message = await db.collection('message')
  11. .aggregate()
  12. .match({
  13. _id: event.msg_id
  14. })
  15. .lookup({
  16. from: 'publisher',
  17. localField: 'pub_id',
  18. foreignField: '_id',
  19. as: 'publisher'
  20. })
  21. .end()
  22. if (message.list.length !== 1) {
  23. return {
  24. errMsg: '信息不存在',
  25. status: 'ERR'
  26. }
  27. }
  28. message.list[0].publisher = message.list[0].publisher[0]
  29. message.list[0].favorite = (await db.collection('favorite')
  30. .where({
  31. user_id: OPENID,
  32. msg_id: event.msg_id
  33. })
  34. .count()).total === 1
  35. await db.collection('read')
  36. .add({
  37. data: {
  38. user_id: OPENID,
  39. msg_id: event.msg_id || '',
  40. read_time: new Date()
  41. }
  42. })
  43. return {
  44. data: message.list[0],
  45. status: 'OK'
  46. }
  47. }