// 云函数 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 }; } };