colorBlock/build-templates/userData.groovy
YZ\249929363 4ca3daaa48 提交
2025-06-26 14:44:43 +08:00

97 lines
2.0 KiB
Groovy

const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
const _ = db.command
// 云函数入口函数
exports.main = async (event, context) => {
const { action, data } = event
const wxContext = cloud.getWXContext()
const openid = wxContext.OPENID
switch (action) {
case 'save':
return saveUserData(openid, data)
case 'read':
return readUserData(openid)
default:
return {
code: 400,
message: '不支持的操作类型'
}
}
}
// 存储用户数据
async function saveUserData(openid, data) {
try {
const userDataCollection = db.collection('userData')
const existingUser = await userDataCollection.where({
_openid: openid
}).get()
if (existingUser.data.length > 0) {
// 如果用户数据已存在,则更新数据
await userDataCollection.doc(existingUser.data[0]._id).update({
data: {
...data
}
})
return {
code: 200,
message: '用户数据更新成功'
}
} else {
// 如果用户数据不存在,则插入新数据
await userDataCollection.add({
data: {
_openid: openid,
...data
}
})
return {
code: 200,
message: '用户数据插入成功'
}
}
} catch (error) {
return {
code: 500,
message: '存储用户数据失败',
error
}
}
}
// 读取用户数据
async function readUserData(openid) {
try {
const userDataCollection = db.collection('userData')
const result = await userDataCollection.where({
_openid: openid
}).get()
if (result.data.length > 0) {
return {
code: 200,
message: '用户数据读取成功',
data: result.data[0]
}
} else {
return {
code: 404,
message: '未找到用户数据'
}
}
} catch (error) {
return {
code: 500,
message: '读取用户数据失败',
error
}
}
}