This commit is contained in:
2026-06-25 18:24:29 +08:00
commit a1190d7d9a
90 changed files with 5459 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
// 云函数 login — 登录 + 首次建用户,返回 hasDog 决定跳建档/首页
// 契约见 docs/03-云函数设计.md §1
const cloud = require('wx-server-sdk');
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
const db = cloud.database();
exports.main = async (event, context) => {
const { OPENID } = cloud.getWXContext(); // 可信用户标识
const usersCol = db.collection('users');
const dogsCol = db.collection('dogs');
// 1. 查用户,不存在则建档
let userInfo;
const userRes = await usersCol.where({ _openid: OPENID }).limit(1).get();
if (userRes.data.length === 0) {
const now = Date.now();
const doc = {
_openid: OPENID,
nickname: '铲屎官',
avatar: '',
walkCount: 0,
joinedAt: now,
createdAt: now,
};
const addRes = await usersCol.add({ data: doc });
userInfo = { _id: addRes._id, ...doc };
} else {
userInfo = userRes.data[0];
}
// 2. 是否已有狗狗 → 决定前端跳建档(0b)还是首页(1)
const countRes = await dogsCol.where({ _openid: OPENID }).count();
const hasDog = countRes.total > 0;
return {
ok: true,
data: {
userInfo: {
openid: OPENID,
nickname: userInfo.nickname,
avatar: userInfo.avatar,
walkCount: userInfo.walkCount,
joinedAt: userInfo.joinedAt,
},
hasDog,
},
};
};