dd
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
// 云函数入口文件
|
||||
const cloud = require('wx-server-sdk');
|
||||
|
||||
const user_db_name = "cocos_users";
|
||||
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); // 使用当前云环境
|
||||
|
||||
// 云函数入口函数
|
||||
exports.main = async (event, context) => {
|
||||
let cmd = event.cmd;
|
||||
if (cmd == null) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: "no cmd!"
|
||||
};
|
||||
}
|
||||
|
||||
const wxContext = cloud.getWXContext();
|
||||
const db = cloud.database({
|
||||
env: cloud.DYNAMIC_CURRENT_ENV,
|
||||
throwOnNotFound: false
|
||||
});
|
||||
const _ = db.command;
|
||||
|
||||
if (cmd === "login") {
|
||||
let user = await getOrCreaterUser(db, wxContext.OPENID);
|
||||
return {
|
||||
code: 200,
|
||||
data: user,
|
||||
};
|
||||
} else if (cmd === "save") {
|
||||
let data = event.data;
|
||||
let user = await getOrCreaterUser(db, wxContext.OPENID);
|
||||
let saveDataRes = await db.collection(user_db_name).doc(user._id).update({
|
||||
data: {
|
||||
game_data: _.set(data)
|
||||
}
|
||||
});
|
||||
|
||||
console.log("Save data:", saveDataRes, data);
|
||||
if (saveDataRes?.stats?.updated >= 1) {
|
||||
return {
|
||||
code: 200,
|
||||
data: saveDataRes
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
code: -1,
|
||||
msg: `Save fail, ${JSON.stringify(saveDataRes)}`
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
code: -2,
|
||||
msg: `Unknow cmd: ${event?.cmd}`,
|
||||
};
|
||||
};
|
||||
|
||||
async function getOrCreaterUser(db, openid) {
|
||||
try {
|
||||
let res = await db.collection(user_db_name).where({ _openid: openid }).get();
|
||||
let userData = null;
|
||||
if (res == null || res.data == null || res.data.length <= 0) {
|
||||
userData = {
|
||||
_openid: openid,
|
||||
regist_time: Date.now(),
|
||||
};
|
||||
let addResult = await db.collection(user_db_name).add({
|
||||
data: userData
|
||||
});
|
||||
userData._id = addResult._id;
|
||||
} else {
|
||||
userData = res.data[0];
|
||||
}
|
||||
return userData;
|
||||
} catch (err) {
|
||||
console.error(`Get or create user err`, err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user