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