MatchMaster/server/laf-cloud/functions/setUserLevel.ts
WIN-GKKD951VVMJ\Administrator e9ec02be41 更新服务器代码
2026-09-01 14:08:37 +08:00

63 lines
2.1 KiB
TypeScript

import cloud from '@lafjs/cloud'
const db = cloud.database();
import Utils from "@/Utils";
export default async function (ctx: FunctionContext) {
const action = ctx.body.action;
const uid = ctx.body.uid;
let dbname = "users";
const gameName = ctx.body.gameName;
if (gameName == "iaa") {
dbname = "usersAd";
}
if (!action) {
return { code: 0, data: null, msg: "未获取到action" };
}
if (!uid) {
return { code: 0, data: null, msg: "未获取到uid" };
}
let res = await db.collection(dbname).where({ _id: uid }).getOne();
const token1 = ctx.body.token;
if (res.data && res.data.token) {
let istoken = Utils.checkToken(token1, res.data.token);
if (!istoken) {
return { code: 0, data: null, msg: "token校验失败" };
}
}
let endLevelNum1 = res.data?.endLevelNum;
switch (action) {
case 'save':
let userLevel = ctx.body.userLevel;
if (!userLevel) {
return { code: 0, data: null, msg: "未获取到userLevel" };
};
userLevel = Number(userLevel);
let endLevelNum = ctx.body.endLevelNum;
if (!endLevelNum) {
endLevelNum = 0;
}
if (endLevelNum < Number(endLevelNum1)) {
return { code: 1, data: { userLevel: userLevel, endLevelNum: endLevelNum1 }, msg: "用户数据更新成功" };
}
endLevelNum = Number(endLevelNum);
if (endLevelNum - Number(endLevelNum1) > 20) {
console.error((endLevelNum - Number(endLevelNum1)) + " 有作弊嫌疑 :" + uid);
return;
}
let totalLevel = userLevel + (endLevelNum / 10000)
await db.collection(dbname).where({ _id: uid }).update({ userLevel: userLevel, endLevelNum: endLevelNum, totalLevel: totalLevel });
return { code: 1, data: { userLevel: userLevel, endLevelNum: endLevelNum }, msg: "用户数据更新成功" }
case 'read':
let userLevel1 = res.data?.userLevel;
//let endLevelNum1=res.data?.endLevelNum;
return {
code: 1, data: { userLevel: userLevel1, endLevelNum: endLevelNum1 }, msg: "成功"
}
default:
return {
code: 400,
message: '无效的操作类型,请使用 save 或 read'
}
}
}