From e77956ea1136d60a0564e21c35cbc3a08fa289ef Mon Sep 17 00:00:00 2001 From: bookerzhao Date: Tue, 9 Jul 2024 20:30:25 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=A2=9E=E5=8A=A0=E4=BA=91=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quickstartFunctions/config.json | 7 +++ .../createCollection/index.js | 56 +++++++++++++++++++ .../fetchGoodsList/index.js | 11 ++++ .../quickstartFunctions/genMpQrcode/index.js | 18 ++++++ .../getMiniProgramCode/index.js | 20 +++++++ .../quickstartFunctions/getOpenId/index.js | 17 ++++++ cloudfunctions/quickstartFunctions/index.js | 31 ++++++++++ .../quickstartFunctions/package.json | 14 +++++ .../quickstartFunctions/selectRecord/index.js | 12 ++++ .../quickstartFunctions/sumRecord/index.js | 18 ++++++ .../quickstartFunctions/updateRecord/index.js | 32 +++++++++++ 11 files changed, 236 insertions(+) create mode 100644 cloudfunctions/quickstartFunctions/config.json create mode 100644 cloudfunctions/quickstartFunctions/createCollection/index.js create mode 100644 cloudfunctions/quickstartFunctions/fetchGoodsList/index.js create mode 100644 cloudfunctions/quickstartFunctions/genMpQrcode/index.js create mode 100644 cloudfunctions/quickstartFunctions/getMiniProgramCode/index.js create mode 100644 cloudfunctions/quickstartFunctions/getOpenId/index.js create mode 100644 cloudfunctions/quickstartFunctions/index.js create mode 100644 cloudfunctions/quickstartFunctions/package.json create mode 100644 cloudfunctions/quickstartFunctions/selectRecord/index.js create mode 100644 cloudfunctions/quickstartFunctions/sumRecord/index.js create mode 100644 cloudfunctions/quickstartFunctions/updateRecord/index.js diff --git a/cloudfunctions/quickstartFunctions/config.json b/cloudfunctions/quickstartFunctions/config.json new file mode 100644 index 0000000..41a485c --- /dev/null +++ b/cloudfunctions/quickstartFunctions/config.json @@ -0,0 +1,7 @@ +{ + "permissions": { + "openapi": [ + "wxacode.get" + ] + } +} \ No newline at end of file diff --git a/cloudfunctions/quickstartFunctions/createCollection/index.js b/cloudfunctions/quickstartFunctions/createCollection/index.js new file mode 100644 index 0000000..75a40b9 --- /dev/null +++ b/cloudfunctions/quickstartFunctions/createCollection/index.js @@ -0,0 +1,56 @@ +const cloud = require('wx-server-sdk'); + +cloud.init({ + env: cloud.DYNAMIC_CURRENT_ENV +}); + +const db = cloud.database(); + +// 创建集合云函数入口函数 +exports.main = async (event, context) => { + try { + // 创建集合 + await db.createCollection('sales'); + await db.collection('sales').add({ + // data 字段表示需新增的 JSON 数据 + data: { + region: '华东', + city: '上海', + sales: 11 + } + }); + await db.collection('sales').add({ + // data 字段表示需新增的 JSON 数据 + data: { + region: '华东', + city: '南京', + sales: 11 + } + }); + await db.collection('sales').add({ + // data 字段表示需新增的 JSON 数据 + data: { + region: '华南', + city: '广州', + sales: 22 + } + }); + await db.collection('sales').add({ + // data 字段表示需新增的 JSON 数据 + data: { + region: '华南', + city: '深圳', + sales: 22 + } + }); + return { + success: true + }; + } catch (e) { + // 这里catch到的是该collection已经存在,从业务逻辑上来说是运行成功的,所以catch返回success给前端,避免工具在前端抛出异常 + return { + success: true, + data: 'create collection success' + }; + } +}; diff --git a/cloudfunctions/quickstartFunctions/fetchGoodsList/index.js b/cloudfunctions/quickstartFunctions/fetchGoodsList/index.js new file mode 100644 index 0000000..02647cb --- /dev/null +++ b/cloudfunctions/quickstartFunctions/fetchGoodsList/index.js @@ -0,0 +1,11 @@ +const cloud = require('wx-server-sdk'); +cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); +exports.main = async (event, context) => { + return { + dataList: [ + { _id: '1', title: '微信气泡徽章', price: 1800 }, + { _id: '2', title: '微信地球鼠标垫', price: 5800 }, + { _id: '3', title: '微信黄脸大贴纸', price: 500 } + ], + } +}; \ No newline at end of file diff --git a/cloudfunctions/quickstartFunctions/genMpQrcode/index.js b/cloudfunctions/quickstartFunctions/genMpQrcode/index.js new file mode 100644 index 0000000..4abd7e0 --- /dev/null +++ b/cloudfunctions/quickstartFunctions/genMpQrcode/index.js @@ -0,0 +1,18 @@ +const cloud = require('wx-server-sdk'); +cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); + +exports.main = async (event, context) => { + const pagePath = event.pagePath; + // 获取小程序二维码的buffer + const resp = await cloud.openapi.wxacode.get({ + path: pagePath, + }); + const { buffer } = resp; + // 将图片上传云存储空间 + const upload = await cloud.uploadFile({ + cloudPath: String(pagePath).replaceAll('/', '_') + '.png', + fileContent: buffer + }); + return upload.fileID; +}; + \ No newline at end of file diff --git a/cloudfunctions/quickstartFunctions/getMiniProgramCode/index.js b/cloudfunctions/quickstartFunctions/getMiniProgramCode/index.js new file mode 100644 index 0000000..08e1a82 --- /dev/null +++ b/cloudfunctions/quickstartFunctions/getMiniProgramCode/index.js @@ -0,0 +1,20 @@ +const cloud = require('wx-server-sdk'); + +cloud.init({ + env: cloud.DYNAMIC_CURRENT_ENV +}); + +// 获取小程序二维码云函数入口函数 +exports.main = async (event, context) => { + // 获取小程序二维码的buffer + const resp = await cloud.openapi.wxacode.get({ + path: 'pages/index/index' + }); + const { buffer } = resp; + // 将图片上传云存储空间 + const upload = await cloud.uploadFile({ + cloudPath: 'code.png', + fileContent: buffer + }); + return upload.fileID; +}; diff --git a/cloudfunctions/quickstartFunctions/getOpenId/index.js b/cloudfunctions/quickstartFunctions/getOpenId/index.js new file mode 100644 index 0000000..94b7b94 --- /dev/null +++ b/cloudfunctions/quickstartFunctions/getOpenId/index.js @@ -0,0 +1,17 @@ +const cloud = require('wx-server-sdk'); + +cloud.init({ + env: cloud.DYNAMIC_CURRENT_ENV +}); + +// 获取openId云函数入口函数 +exports.main = async (event, context) => { + // 获取基础信息 + const wxContext = cloud.getWXContext(); + + return { + openid: wxContext.OPENID, + appid: wxContext.APPID, + unionid: wxContext.UNIONID, + }; +}; diff --git a/cloudfunctions/quickstartFunctions/index.js b/cloudfunctions/quickstartFunctions/index.js new file mode 100644 index 0000000..4d5e339 --- /dev/null +++ b/cloudfunctions/quickstartFunctions/index.js @@ -0,0 +1,31 @@ +const getOpenId = require('./getOpenId/index'); +const getMiniProgramCode = require('./getMiniProgramCode/index'); +const createCollection = require('./createCollection/index'); +const selectRecord = require('./selectRecord/index'); +const updateRecord = require('./updateRecord/index'); +const sumRecord = require('./sumRecord/index'); +const fetchGoodsList = require('./fetchGoodsList/index'); +const genMpQrcode = require('./genMpQrcode/index'); + +// 云函数入口函数 +exports.main = async (event, context) => { + switch (event.type) { + case 'getOpenId': + return await getOpenId.main(event, context); + case 'getMiniProgramCode': + return await getMiniProgramCode.main(event, context); + case 'createCollection': + return await createCollection.main(event, context); + case 'selectRecord': + return await selectRecord.main(event, context); + case 'updateRecord': + return await updateRecord.main(event, context); + case 'sumRecord': + return await sumRecord.main(event, context); + case 'fetchGoodsList': + return await fetchGoodsList.main(event, context); + case 'genMpQrcode': + return await genMpQrcode.main(event, context); + } +}; + diff --git a/cloudfunctions/quickstartFunctions/package.json b/cloudfunctions/quickstartFunctions/package.json new file mode 100644 index 0000000..4350dbb --- /dev/null +++ b/cloudfunctions/quickstartFunctions/package.json @@ -0,0 +1,14 @@ +{ + "name": "quickstartFunctions", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "wx-server-sdk": "~2.4.0" + } +} diff --git a/cloudfunctions/quickstartFunctions/selectRecord/index.js b/cloudfunctions/quickstartFunctions/selectRecord/index.js new file mode 100644 index 0000000..c7848a7 --- /dev/null +++ b/cloudfunctions/quickstartFunctions/selectRecord/index.js @@ -0,0 +1,12 @@ +const cloud = require('wx-server-sdk'); + +cloud.init({ + env: cloud.DYNAMIC_CURRENT_ENV +}); +const db = cloud.database(); + +// 查询数据库集合云函数入口函数 +exports.main = async (event, context) => { + // 返回数据库查询结果 + return await db.collection('sales').get(); +}; diff --git a/cloudfunctions/quickstartFunctions/sumRecord/index.js b/cloudfunctions/quickstartFunctions/sumRecord/index.js new file mode 100644 index 0000000..dfdc293 --- /dev/null +++ b/cloudfunctions/quickstartFunctions/sumRecord/index.js @@ -0,0 +1,18 @@ +const cloud = require('wx-server-sdk'); + +cloud.init({ + env: cloud.DYNAMIC_CURRENT_ENV +}); +const db = cloud.database(); +const $ = db.command.aggregate; + +// 聚合记录云函数入口函数 +exports.main = async (event, context) => { + // 返回数据库聚合结果 + return db.collection('sales').aggregate() + .group({ + _id: '$region', + sum: $.sum('$sales') + }) + .end(); +}; diff --git a/cloudfunctions/quickstartFunctions/updateRecord/index.js b/cloudfunctions/quickstartFunctions/updateRecord/index.js new file mode 100644 index 0000000..2ce3ad0 --- /dev/null +++ b/cloudfunctions/quickstartFunctions/updateRecord/index.js @@ -0,0 +1,32 @@ +const cloud = require('wx-server-sdk'); + +cloud.init({ + env: cloud.DYNAMIC_CURRENT_ENV +}); +const db = cloud.database(); + +// 修改数据库信息云函数入口函数 +exports.main = async (event, context) => { + try { + // 遍历修改数据库信息 + for (let i = 0; i < event.data.length; i++) { + await db.collection('sales').where({ + _id: event.data[i]._id + }) + .update({ + data: { + sales: event.data[i].sales + }, + }); + } + return { + success: true, + data: event.data + }; + } catch (e) { + return { + success: false, + errMsg: e + }; + } +};