63 lines
2.1 KiB
TypeScript
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)>10){
|
|
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'
|
|
}
|
|
}
|
|
}
|