Initial Commit
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
// 云函数入口文件
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user