| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- // 云函数入口文件
- const cloud = require('wx-server-sdk')
- cloud.init()
- const db = cloud.database()
- const _ = db.command
- // 云函数入口函数
- exports.main = async (event, context) => {
- const {
- OPENID
- } = cloud.getWXContext()
- if (event.msg_id) {
- const questions = await db.collection('question')
- .aggregate()
- .match({
- msg_id: event.msg_id,
- answer: _.neq('')
- })
- .sort({
- rank: 1
- })
- .skip(event.page_token)
- .limit(event.page_size)
- .end()
- return {
- list: questions.list,
- next_page_token: event.page_token + questions.list.length,
- status: 'OK'
- }
- } else if (event.pub_id) {
- const questions = await db.collection('question')
- .aggregate()
- .lookup({
- from: 'message',
- localField: 'msg_id',
- foreignField: '_id',
- as: 'message'
- })
- .unwind('$message')
- .lookup({
- from: 'publisher',
- localField: 'message.pub_id',
- foreignField: '_id',
- as: 'message.publisher'
- })
- .unwind('$message.publisher')
- .match({
- 'message.publisher._id': event.pub_id
- })
- .sort({
- question_time: -1
- })
- .skip(event.page_token)
- .limit(event.page_size)
- .end()
- return {
- list: questions.list,
- next_page_token: event.page_token + questions.list.length,
- status: 'OK'
- }
- } else {
- const questions = await db.collection('question')
- .aggregate()
- .match({
- user_id: OPENID
- })
- .sort({
- question_time: -1
- })
- .skip(event.page_token)
- .limit(event.page_size)
- .lookup({
- from: 'message',
- localField: 'msg_id',
- foreignField: '_id',
- as: 'message'
- })
- .unwind('$message')
- .end()
- return {
- list: questions.list,
- next_page_token: event.page_token + questions.list.length,
- status: 'OK'
- }
- }
- }
|