From 81acf7d06b389ed6acd297a3a357befd322de2a6 Mon Sep 17 00:00:00 2001 From: MicroMilo Date: Mon, 29 May 2023 19:38:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B6=88=E6=81=AF=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E4=BA=91=E5=87=BD=E6=95=B0=E4=BB=A5=E5=8F=8Atoken=20s?= =?UTF-8?q?chema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloudfunctions/uni-cloud-push/index.js | 53 ++++++++++--------- .../database/mustgo-registration.schema.json | 6 +++ .../database/mustgo-token.schema.json | 36 +++++++++++++ 3 files changed, 71 insertions(+), 24 deletions(-) create mode 100644 alpha/admin/uniCloud-aliyun/database/mustgo-token.schema.json diff --git a/alpha/admin/uniCloud-aliyun/cloudfunctions/uni-cloud-push/index.js b/alpha/admin/uniCloud-aliyun/cloudfunctions/uni-cloud-push/index.js index 01b330a..f536f01 100644 --- a/alpha/admin/uniCloud-aliyun/cloudfunctions/uni-cloud-push/index.js +++ b/alpha/admin/uniCloud-aliyun/cloudfunctions/uni-cloud-push/index.js @@ -1,31 +1,36 @@ // 简单的使用示例 'use strict'; exports.main = async (event, context) => { - let body = event; - // if (event.isBase64Encoded) { - // body = Buffer.from(body); - // } + const db = uniCloud.database() + const regsTable = db.collection('mustgo-registration') + const res = await regsTable.where( + owner_id: event.uid, + notified: false + ).get() - // if (!body) { - // return { - // message: 'no body' - // }; - // } - - const param = JSON.parse(body); - - // 云函数是通用的,和项目没有直接的关系。通过传递 appId,可以为多个项目进行推送 + let arr = new Array + let list = new Array + arr = res.data + for (var i = 0; i < arr.length; i++) { + const teamActivityTable = db.collection('mustgo-team-activity') + const title = await teamActivityTable.where( + _id: arr[i]["team_activity_id"] + ).get() + list.push(title.data.title) + } + const uniPush = uniCloud.getPushManager({ - appId: param.appId - }); - - return await uniPush.sendMessage({ - "push_clientid": param.push_clientid, - "title": param.title, - "content": param.content, - "payload": param.payload, - "force_notification": true, - "request_id": param.request_id, - "badge": param.badge + appId: "__UNI__AAFC50C" }); + for (var i = 0; i < list.length; i ++) { + await uniPush.sendMessage({ + "push_clientid": event.push_clientid, + "title": "小队活动即将开始", + "content": "您报名的" + list[i] + "小队活动即将开始,快来看看吧~", + "payload": event.payload, + "force_notification": true, + "request_id": event.request_id, + "badge": event.badge + }); + } }; \ No newline at end of file diff --git a/alpha/admin/uniCloud-aliyun/database/mustgo-registration.schema.json b/alpha/admin/uniCloud-aliyun/database/mustgo-registration.schema.json index 2316886..d201d61 100644 --- a/alpha/admin/uniCloud-aliyun/database/mustgo-registration.schema.json +++ b/alpha/admin/uniCloud-aliyun/database/mustgo-registration.schema.json @@ -23,6 +23,12 @@ "foreignKey": "mustgo-user._id", "title": "用户id", "description": "报名者id" + }, + "notified": { + "bsonType": "bool", + "title": "是否发送消息提醒", + "description": "消息提醒", + "defaultValue": false } } } \ No newline at end of file diff --git a/alpha/admin/uniCloud-aliyun/database/mustgo-token.schema.json b/alpha/admin/uniCloud-aliyun/database/mustgo-token.schema.json new file mode 100644 index 0000000..f630604 --- /dev/null +++ b/alpha/admin/uniCloud-aliyun/database/mustgo-token.schema.json @@ -0,0 +1,36 @@ +// 文档教程: https://uniapp.dcloud.net.cn/uniCloud/schema +{ + "bsonType": "object", + "required": [], + "permission": { + "read": true, + "create": true, + "update": true, + "delete": true + }, + "properties": { + "_id": { + "description": "ID,系统自动生成" + }, + "uid": { + "bsonType": "string", + "title": "用户id", + "description": "用户id" + }, + "cid": { + "bsonType": "string", + "title": "客户端 id", + "description": "客户端 id" + }, + "token": { + "bsonType": "string", + "title": "token", + "description": "token" + }, + "expire": { + "bsonType": "timestamp", + "title": "过期时间", + "description": "过期时间" + } + } +} \ No newline at end of file -- GitLab