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 { action } = event if (action === 'profile') { const users = await db.collection('users').where({ openid }).get() if (users.data.length === 0) return { code: 1001, message: '用户不存在' } const user = users.data[0] const binds = await db.collection('bindings').where({ openid, status: 'active' }).count() return { code: 0, data: { user_id: user._id, nickname: user.nickname || '用户' + openid.slice(-4), avatar_url: user.avatar_url || '', phone: user.phone || '', gender: user.gender || 0, device_count: binds.total, created_at: user.created_at } } } if (action === 'update') { const updates = {} if (event.data.nickname) updates.nickname = event.data.nickname if (event.data.avatar_url) updates.avatar_url = event.data.avatar_url if (event.data.gender !== undefined) updates.gender = event.data.gender await db.collection('users').where({ openid }).update({ data: updates }) return { code: 0, data: {} } } return { code: -1, message: '未知操作' } }