// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() const openid = wxContext.OPENID // 查找是否已存在用户 const userRes = await db.collection('users').where({ _openid: openid }).get() let user if (userRes.data.length > 0) { // 已存在,更新登录时间(如果传了头像昵称也一并更新) user = userRes.data[0] const updateData = { lastLoginTime: db.serverDate() } if (event.avatarUrl) updateData.avatarUrl = event.avatarUrl if (event.nickName) updateData.nickName = event.nickName await db.collection('users').doc(user._id).update({ data: updateData }) // 合并最新数据返回 if (event.avatarUrl) user.avatarUrl = event.avatarUrl if (event.nickName) user.nickName = event.nickName } else { // 新用户,创建记录 const addRes = await db.collection('users').add({ data: { _openid: openid, avatarUrl: event.avatarUrl || '', nickName: event.nickName || '', createTime: db.serverDate(), lastLoginTime: db.serverDate() } }) user = { _id: addRes._id, _openid: openid, avatarUrl: event.avatarUrl || '', nickName: event.nickName || '' } } return { openid: openid, appid: wxContext.APPID, unionid: wxContext.UNIONID, userInfo: user } }