You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
store_node/cloudfunctions/updateUserInfo/index.js

98 lines
2.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// 云函数 updateUserInfo
const cloud = require('wx-server-sdk');
// 初始化cloud
cloud.init({
env: 'cloud1-5gqeisa06659849a'
});
const db = cloud.database();
exports.main = async (event, context) => {
console.log('updateUserInfo 云函数开始执行,参数 event:', event);
const wxContext = cloud.getWXContext();
const openid = wxContext.OPENID; // 获取用户的openid
console.log('获取到的 openid:', openid);
if (!openid) {
console.warn('未获取到用户身份信息');
return {
success: false,
message: '未获取到用户身份信息'
};
}
const { userInfo } = event;
console.log('接收到的 userInfo:', userInfo);
if (!userInfo) {
console.warn('未提供用户信息');
return {
success: false,
message: '未提供用户信息'
};
}
try {
// 检查用户是否已存在
const userCheck = await db.collection('users').where({
openid: openid
}).get();
console.log('数据库查询结果:', userCheck);
if (userCheck.data.length === 0) {
// 用户不存在,创建新用户
const addRes = await db.collection('users').add({
data: {
openid: openid,
nickName: userInfo.nickName || '宿小君用户',
avatarUrl: userInfo.avatarUrl || '',
gender: userInfo.gender || 0,
createTime: db.serverDate(),
updateTime: db.serverDate(),
balance: 0, // 初始余额
credit: 100, // 初始信用分
secondhandCount: 0 // 二手交易完成数
}
});
console.log('新用户创建成功记录ID:', addRes._id);
return {
success: true,
message: '用户创建成功',
isNewUser: true
};
} else {
// 用户已存在,更新信息
const updateRes = await db.collection('users').where({
openid: openid
}).update({
data: {
nickName: userInfo.nickName,
avatarUrl: userInfo.avatarUrl,
gender: userInfo.gender,
updateTime: db.serverDate()
}
});
console.log('用户信息更新成功,更新结果:', updateRes);
return {
success: true,
message: '用户信息更新成功',
isNewUser: false
};
}
} catch (err) {
console.error('更新用户信息失败', err);
return {
success: false,
message: '更新用户信息失败',
error: err.message
};
}
};