| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // 云函数入口文件
- const cloud = require('wx-server-sdk')
- cloud.init()
- const db = cloud.database()
- const _ = db.command
- const $ = db.command.aggregate
- // 云函数入口函数
- exports.main = async (event, context) => {
- const {
- OPENID
- } = cloud.getWXContext()
- try {
- await db.collection('message')
- .doc(event.msg_id)
- .get()
- } catch (err) {
- return {
- errMsg: '信息不存在',
- status: 'ERR'
- }
- }
- const read_check = await db.collection('read')
- .aggregate()
- .match(_.expr($.and([
- $.eq(['$user_id', OPENID]),
- $.eq(['$msg_id', event.msg_id]),
- $.lt([$.subtract([new Date(), '$read_time']), 1000 * 60 * 30])
- ])))
- .end()
- if (read_check.list.length !== 0) {
- return {
- errMsg: '30分钟内只算一次阅读量',
- status: 'ERR'
- }
- }
- const read = await db.collection('read')
- .add({
- data: {
- user_id: OPENID,
- msg_id: event.msg_id || '',
- read_time: new Date()
- }
- })
- return {
- _id: read._id,
- status: 'OK'
- }
- }
|